Mostrando las entradas con la etiqueta Servidor. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Servidor. Mostrar todas las entradas

Consejos basicos de seguridad en servidores.

17.10.09

Pequenos consejos basicos de seguridad en servidores, que muchos suelen olvidar o no prestar atencion.


Administración segura en sistemas informáticos.

  • Utilizar el usuario root o administrador solo cuando sea necesario.
  • Correcta gestion de las Actualizaciones, parches, hotfixes, service pack, BIOS y firmware.
  • Deshabilitar servicios y funciones que no se utilicen.
  • Remplazar aplicaciones por versiones mas seguras.
  • Un usuario debe tener los privilegios mínimos necesarios para realizar sus tareas sin problema.
  • Mantener buena politica y reglas en los firewall.
  • Tener control de integridad sobre los archivos.
  • Buena política de cuentas y contraseñas.
  • Auditoria de log (Registros).
  • Correcta políticas de copias de seguridad.
  • Asegurar (hardening) todos los servicios del servidor.

Jhyx

Servidor de Slackware 13 con lighttpd (1/4)

14.10.09

Servidor de Slackware 13. (Parte 1/4)

Lighttpd es un servidor web ligero y por que usar lighttpd? por ser rápido, flexible y por consumir muy poco de cpu, mem, etc...

Esta optimizado, es software libre y es mucho mas rápido que cualquier otro servidor web. Si tienes problemas de picos y/o cargas en tu servidor deberías probar este....

El servidor web lighttpd, no esta incluido en los cd pero lo puedes descargar de su pagina oficial.

Si estas en un servidor y lo mas seguro es que no tenga entorno gráfico pero necesitas descargar un programa de una pagina.

Puedes usar "links" un navegador web basado en texto el cual puedes usar tranquilamente desde la consola.

#installpkg /mnt/cdrom/slackware/n/links-2.2-i486-1.txz
O
#slackpkg install links

Y lo ejecutamos y vamos a "download"
#links lighttpd.net

Nos descargamos el archivo, lo guardamos en /tmp nos salimos con la letra "q" y nos dirigimos a /tmp
#cd /tmp

Si se lo bajaron como "tar.bz2"
#tar xvjf lighttpd-1.4.22.tar.bz2

Si fue con tar.gz
#tar xvzf lighttpd-1.4.22.tar.gz

Podemos hacer la instalación por medio de subversión (svn). slackware/d/subversion-1.6.4-i486-1.txz
#svn checkout svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x/
#cd lighttpd-1.4.x
#./autogen.sh

Para tener la version actualizada, la siguiente ocacion que lo vallas a instalar.
#svn update (Desde dentro de la carpeta lighttpd-1.4.x)
#./autogen.sh

Entramos a la carpeta y recuerden revisar el INSTALL y el README para saber que necesita el programa para ser compilado o agregarles funciones extras.
#cd lighttpd-1.4.22

#./configure --help (si necesitan alguna opcion)
#./configure

Si nos da un error por falta de una libreria, la podemos buscar así
#find /mnt/cdrom/slackware -name *mpfr*

Y la instalamos
#installpkg /mnt/cdrom/slackware/l/mpfr-2.3.1-i486-1.txz

Seguimos con la instalacion
#make
#make install

Creamos el usuario y grupo para lighttpd
#groupadd lighttpd
#useradd -g lighttpd -d /var/www -s /bin/false lighttpd

Creamos las carpetas para los "log" y donde se alojaran las paginas.
#mkdir /var/log/lighttpd
#mkdir -p /var/www/servers

Cambiamos permisos.
#chown lighttpd:lighttpd /var/www/server
#chown lighttpd:lighttpd /var/log/lighttpd

Ahora copiamos el archivo de configuración a donde ustedes quieran ubicada en:
"lighttpd-1.4.22/tests/lighttpd.conf"

#cp /tmp/lighttpd-1.4.22/tests/lighttpd.conf /tmp/

Podemos bajarnos una tambien de la pagina oficinal
http://redmine.lighttpd.net/repositories/entry/lighttpd/branches/lighttpd-1.4.x/doc/lighttpd.conf

Aqui vemos que significan cada una de las opciones del archivo de configuracion.
http://redmine.lighttpd.net/projects/1/wiki/Docs:ConfigurationOptions

Las opciones del archivo de configuración que tenemos que tomar en cuenta son las siguientes, el resto de configuración ya depende de los requerimientos del usuario.

#########################################################
server.document-root = /var/www/
server.port = 80
server.username = "lighttpd"
server.groupname = "lighttpd"
server.pid-file = "/var/run/lighttpd.pid"
server.breakagelog = /var/log/lighttpd/breakage.log
server.errorlog = /var/log/lighttpd/error.log
accesslog.filename = /var/log/lighttpd/access.log
index-file.names = ("index.php", "index.html", "index.htm", "default.htm")

################# Para poder usar el PHP ##################
 )
fastcgi.server = ( ".php" => ((
                        "bin-path" => "/usr/bin/php-cgi",
                        "socket" => "/tmp/php.socket"
                )))
################# Los modulos requeridos ##################
server.modules           = (
                             "mod_auth",
                             "mod_access",
                             "mod_accesslog",
                             "mod_rewrite",
                             "mod_fastcgi",
 )
########################################################

En "/usr/bin/php-cgi" es la dirección del archivo binario, para saber donde esta lo pueden buscar con "slocate", "which", "whereis".

De todas maneras copio el archivo de configuración que yo use para la practica ("lighttpd.conf"). Preferiblemente no se copien el archivo de configuración del blog (opción copiar y pegar) algunas ocasiones se agrega "basura" al archivo de configuración y les va a dar error y no van a saber que es.

Ahora probemos la configuración con el siguiente comando. Y debería de volver si todo esta bien "Syntax OK"
#lighttpd -t -f /tmp/lighttpd.conf

Si todo va bien lo ejecutamos con -D es para que no se valla al background, para detenerlo usamos "Ctrl+c".
#lighttpd -D -f /tmp/lighttpd.conf

Si les da error revisen los log ubicados como lo hayan configurado. En este ejemplo.
#tailf -f /var/log/lighttpd/error.log

Si ya hicimos todas las pruebas y esta bien nuestro servidor agregamos una linea para que cargue el servicio al prender el servidor. (El archivo de configuración lo pueden mover donde gusten)
#nano /etc/rc.d/rc.local

Escribimos esta linea dentro del archivo "rc.local"
/usr/local/sbin/lighttpd -f /tmp/lighttpd.conf

Donde se encuentra ubicado el binario (/usr/local/sbin/lighttpd) y el archivo de configuración  (lighttpd.conf)

Eso es todo...

Jhyx

Servidor de Slackware 13 con Mysql (3/4)

12.10.09

Servidor de Slackware 13. (Parte 3/4)

Instalar y configurar Slackware con Mysql.

Montar el dvd: (Si no lo esta)
#mount /dev/cdrom /mnt/cdrom

Instalar:
#installpkg /mnt/cdrom/slackware/ap/mysql-5.0.84-i486-1.txz
O
#slackpkg install mysql

Configuración:
Dar permisos de ejecución (si no lo tiene) al archivo "/etc/rc.d/rc.mysqld" para que cargue al inicio del sistema.

Verificamos si tiene permiso de ejecución.
#ls -l /etc/rc.d/
Y se lo damos.

#chmod +x /etc/rc.d/rc.mysqld
O
#chmod 755 /etc/rc.d/rc.mysqld

Verificamos si existen el usuario y grupo "mysql".
#cat /etc/passwd | grep mysql
#cat /etc/group | grep mysql

Si no existen lo creamos con los comandos "useradd" y "groupadd"
#groupadd mysql
#useradd -g mysql -d /var/lib/mysql -s /bin/false mysql

-g = Para que este incluido el usuario mysql al grupo mysql
-d = El home del usuario mysql
-s = Que no pueda usar la shell

Verificamos también si en el directorio "/var/run/" hay una carpeta mysql
#ls /var/run/

La carpeta tiene que ser dueno y grupo de "mysql" lo podemos cambiar con:
#chown -R mysql:mysql /var/run/mysql

Crear el archivo de configuración de mysql llamado "my.cnf", se puede hacer fácilmente usando los ejemplo ubicados en /etc/. Usamos el archivo de configuración "my-medium.cnf" ya que lo vamos a usar para un servidor web.

/etc/my-huge.cnf
/etc/my-large.cnf
/etc/my-medium.cnf
/etc/my-small.cnf

#cp /etc/my-medium.cnf /etc/my.cnf

Y verificamos que en el archivo de configuración esta la siguiente linea, de lo contrario configurarla.
"log-error=/var/log/mysqld.log"

Ahora creamos la base de datos como se recomienda en Slackware
#mysql_install_db --user=mysql

Para evitar este error:

"Can't connect to local MySQL server through socket"
Iniciamos el servicio de mysql. Usamos & para que se valla a segundo plano (background) y retomamos la linea de comandos con (Enter).
#/usr/bin/mysqld_safe &

Creamos el password para root usando una herramienta que provee una seguridad básica para mysql
#mysql_secure_installation

Presionamos (enter) porque no tenemos ninguna contraseña previa y colocamos una nueva contraseña.

Luego borramos los usuarios anonimos, deshabilitamos el login remoto del root, eliminamos las base de datos de prueba y recargamos los privilegios.

Probemos la base de datos.
#mysql -u root -p

Ver las base de datos creados.
mysql> SHOW databases;

Usar la base de datos.
mysql> USE basedatos;

Para ver las tablas.
mysql>SHOW TABLES;

Seleccionar la tabla.
mysql>SELECT * FROM tabla;

Creamos base de datos de prueba.
mysql> CREATE database basedb;

Creamos un usuario con todos los privilegios a una base de datos.
mysql> GRANT all ON basedatos.* TO 'usuario'@'localhost' IDENTIFIED BY 'contraseña';

Limpia el cache y recarga los privilegios. 
mysql> FLUSH PRIVILEGES;

Eliminamos la base de datos creada.
mysql> DROP database basicodb;

Para eliminar un usuario hay que primero eliminarle los privilegios. Para ver los privilegios del usuario.
mysql> SHOW GRANTS FOR usuario@localhost;

Eliminamos los privilegios.
mysql> REVOKE ALL ON basedatos.* from usuario@localhost;

Y luego lo eliminamos.
mysql> DROP USER usuario@localhost;

Salimos.
mysql>quit

Si deseamos borrar la base de datos, paramos el servicio.
#ps auxw | grep mysqld_safe
#kill -9 3429

Eliminamos Mysql 
#slackpkg remove mysql
O 
#removepkg  mysql

Y eliminamos los archivos restantes.
#rm -r /var/lib/mysql/
#rm /etc/my-*
#rm /etc/my.cnf

Para estar seguro que no queda nada, buscamos datos restantes.
#updatedb
#slocate mysql


Jhyx

Servidor de Slackware 13 con soporte PHP5 (2/4)

Servidor de Slackware 13. (Parte 2/4)

Ok, para instalar el PHP en Slackware es muy sencillo,
#installpkg /mnt/cdrom/slackware/n/php-5.2.10-i486-2.txz
O
#slackpkg install php

Ahora para saber si esta bien instalado hacemos una prueba viendo la version.
#php -v
O
#php-cgi -v

Nos va a devolver un error por falta de una librería, todas están en en el dvd las buscamos he instalamos, para saber cuales falta, en este caso ejecutando el "php -v" generara un error con varias librerías faltantes cada vez que lo ejecutemos si llegase a faltar algo el programa nos avisara leemos el error y buscamos lo que falta :D hasta que nos de el resultado esperado...

#installpkg slackware/l/libmcrypt-2-5-8-i486.txz
#installpkg slackware/l/libxml2-2.7.3-i486-3.txz
#installpkg slackware/l/aspell-0.60.5-i486-2.txz
#installpkg slackware/l/aspell-en-6.0_0-noarch-4.txz
#installpkg slackware/l/mhash-0.9.9-i486-1.txz
#installpkg slackware/l/libxslt-1.1-24-i486-2.txz
#installpkg slackware/l/t1lib-5.1.2-i486-1.txz
#installpkg slackware/n/net-snmp-5.4.2.1-i486-1.txz
#installpkg slackware/n/cyrus-sasl-2.1.23-i486-1.tx
#installpkg slackware/x/libX11-1.2.2-i486-1.txz
#installpkg slackware/x/libXpm-3.5.7-i486-2.txz
#installpkg slackware/x/libxcb-1.3-i486-1.txz
#installpkg slackware/x/libXau-1.0.4-i486-2.txz
#installpkg slackware/x/libXdmcp-1.0.2-i486-2.txz

Buscamos el php.ini para saber donde esta ubicado
#updatedb
#slocate php.ini

Y usamos el php.ini-recommended
# mv /etc/httpd/php.ini /etc/httpd/php.ini.BAK
#cp /etc/httpd/php.ini-recommended /etc/httpd/php.ini

Y cambiamos el valor de 0 (cero) a 1 "cgi.fix_pathinfo = 1"
cgi.fix_pathinfo = 1 (La descomentamos si lo esta.)

Es todo por ahora....

Jhyx

Servidor de Slackware 13 con Nucleus CMS (4/4)

Servidor de Slackware 13. (Parte 4/4)

Nucleus CMS es un administrador de blogs opensource escrito en PHP y con base de datos en Mysql y es considerado un ligero administrador de contenido.

Nucleus CMS ofrece varias herramientas la cual permite mantener uno o mas blogs soportando multiples autores, anteproyectos, bookmarklest, etc...

La instalación de nucleus es sencilla igual que cualquier otro CMS, procederemos a la descarga en nuestro servidor.
#links nucleuscms.org

Lo descomprimimos y entramos a la carpeta.
#unzip nucleus3.50.zip
#cd nucleus3.50

Y pasamos toda la informacion de la carpeta a nuestro directorio web.
#mv * /var/www

Le cambiamos los permisos para que nucleus cms hace una instalación sin inconvenientes y luego de la instalación se le cambia los permisos a 444.
#chmod 666 /var/www/config.php

Y por seguridad
#chown -R lighttpd:lighttpd /var/www

Procedemos con la instalación y abrimos la URL.
http://ip.del.servidor/install.php

Llenas los datos requeridos. En "General Database Setting", el hostname normalmente va "localhost", colocamos el usuario, clave de la base de datos y el nombre de la base de datos, marcamos "needs to be created" si la base de datos no la tenemos creada.

Llenamos los datos de administración de nuestro blog en "Administrator User" y en "Weblog Data" el nombre de nuestro blog. No hace falta cambiar ninguna otra opción a menos que sepas lo que haces.

Recuerden tener el servicio de la base de datos prendida.
#/usr/bin/mysqld_safe &

Click en "Instal Nucleus" y luego esperan unos segundos no le den mas click solo UNO. Si llegan a tener problema con la instalación (no creo que suceda) pueden crear la base de datos y el usuario desde la linea de comandos del mysql. (Ver como)

Por ultimo eliminar los siguientes archivos y devolver los permisos al archivo config.php.
#rm install.sql
#rm isntall.php
#chmod 444 config.php 

Y entras a la URL de tu blog http://tudominio.com o  al área administrativa http://tudominio.com/nucleus.

Descargaguemos un skin para personalizar el blog. Podemos entrar a este link y descargar el que nos guste. http://skins.nucleuscms.org/ 

Descomprimimos.

#unzip terminal_skin.zip

Movemos el skin a la capeta del skin dentro del directorio web.

#mv terminal_skin /var/www/skins 

Entramos al area administrativa del Nucleus CMS y vamos a la opcion "Import/Export". Seleccionamos "Import from local file" en el menu desplegable, seleccionamos nuestro skin nuevo, mas abajo en las categorias "Skins" y "Templates" seleccionamos los templates del skins que queremos importar y le damos "Import".

En la siguiente ventana marcamos la opción "Overwrite skins that already exists (see nameclashes)" y le damos click para que importe el skin nuevo.

Una ves hecho todo eso nos vamos a en el menu de la izquierda a "home" seleccionamos la opcion "settings", cambiamos el skins por el nuevo por ultimo a la opción "configuration" y cambiamos el skin por el nuevo.


Jhyx

Instalacion avanzada de Slackware 13 Gnu/Linux

11.10.09

Hacer una instalación avanzada de slackware con solo el sistema base y programas necesario, sirve tanto para trabajar como servidor o simplemente tener el sistema mas limpio de software que no vamos a usar y luego instalar el entorno grafico.

Se requiere conocimiento previo de instalación de Slackware, un conocimiento básico de la consola (terminal) y uso de Gnu/Linux en general. Recuerden que Slackware es mas tipo Unix.


Pueden ver este enlace de instalación de Slackware.

Aprenderemos a usar la consola a un nivel avanzado y como hacer instalación de programas empaquetados y desde el código fuente. En Slackware ya vienen muchos programas listo para usar sin la necesidad de compilarlos todos se encuentran dentro del DVD o también se pueden descargar de varios repositorios.


Descripción de los paquetes de Slackware y el contenido.

****************
Package series
****************

A = Base Linux System
AP = Various Applications that do not need X
D = Program Development (C, C++, Lisp, Perl, etc.)
E = GNU Emacs
F = FAQ List, HOWTO documentation
K = Linux kernel source
KDE = QT and the K Desktop Environment for X
KDEI = International language support for KDE
L = System Libraries (need by KDE, GNOME, X, and more)
N = Networking (TCP/IP, UUCP, Mail, News)
T = TeX typesetting software
TCL = Tcl/Tk script languages
X = X Windows System
XAP = X Applications
Y = Games

******************
Minimal System

****************
**

Series de paquetes requeridos para la instalación mínima:

A, AP, D, F, K, L, N.

Primero seleccionamos la serie de paquetes y para seleccionar los paquetes necesarios usar la opción "Expert" en el menú de instalación.

*********************
Package Group [A]

******************
***
Ir al siguiente enlace...

*********************
Package Group [AP]
*********************
Ir al siguiente enlace...

********************
Package Group [D]

********************
Ir al siguiente enlace...

********************
Package Group [F]

********************
linux-faqs = The Linux FAQ and other documentation
linux-howtos = HOWTOs from the Linux Doc Project

********************
Package Group [K]

*******************
*
kernel-source = Linux 2.6.29.6 kernel source

********************
Package Group [L]

*******************
*
Ir al siguiente enlace...

********************
Package Group [N]
********************
Ir al siguiente enlace...

************************
Package Group [Y] Optional
************************
bsd-games = Varios juegos clásicos de BSD en modo texto, incluye "fortune" el cual te dice frases cuando inicias sesión en Slackware.

Si alguno cree que debería ir algún programa por favor dejar un comentario...

Segunda parte del tutorial...

Jhyx

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.