Durante el tutorial se explicaran los pasos necesarios y las etapas que requieren la realización efectiva para el funcionamiento de un servidor así como también se iniciara al concurrente en la utilización de herramientas y utilidades esenciales.

Indice: Como instalar VHCS + Addons en debian Sarge Pag 1 Instalar servidor MYSQL Pag 2 Instalando VHCS Pag 5 Configurando servidor de correo . Pag 5 Configuracion del Servidor FTP: Proftp Pag 8 Configuracion del servidor de correo: Courier Pag 9 Instalar Spamassassin & amavis Pag 18 Configurando clamav-fresgclam Pag 19 Registrando “razor” Pag 31 Iniciando pyzor Pag 31 Instalando Awstats Pag 34 Instalando PhpMyAdmin Pag 40 Instalando Shorewall Pag 51 Sistema de Backup automatico Pag 56

Como instalar VHCS + Addons en debian Sarge

VHCS es un software el cual es utilizado para la administracion de dominios virtuales, trabaja en conjunto con Apache, Bind, MySql, Postfix y VsFtp. La administración de estos paquetes lo hacemos mediante una interfaz grafica Web, es GPL y Opensource.

Lo primero que debemos hacer es agregar la siguiente línea en nuestro /etc/apt/sources.list así podemos estar dicho software. deb http://apt.scunc.it/ sarge main

1

El siguiente paso es actualizar la lista de repositorios, ya que agregamos más paquetes con la línea anterior:

Antes de empezar vale aclarar que el símbolo # lo usamos como referencia de la shell y no como parte del comando.

# apt-get update

2

Instalar servidor MYSQL

Luego debemos instalar el servidor e MYSQL como así también el cliente, para esto debemos ejecutar el siguiente parámetro:

# apt-get install mysql-server mysql-client

3

Después apretar enter tendremos que obtener una pantalla similar a la siguiente para saber que se instalo todo correctamente:

Con esto ya tenemos nuestro servidor de base de datos andando, pero no seteamos el password para el usuario root, para hacer esto seguimos este procedimiento : (en nuestro ejemplo vamos usar como clave “prueba)

# /usr/bin/mysqladmin -u root password prueba

4

Instalando VHCS

Ahora vamos a instalar el VHCS, para esto ejecutamos el siguiente comando:

# apt-get install vhcs*

Paso sigueinte es configurar los pateques que se instalaron:

Configurando servidor de correo Postfix.

5

Seleccionamos internet site

6

Vamos a dejarlo con la opcion default y luego lo configuramos a mano.

Ahora debemos ingresar nuestro dominio.

7

Dejamos las opciones por defaults.

Aqui apretamos en No.

Configuracion del Servidor FTP:

Debe seleccionar la opcion “standalone”.

Configuracion del servidor de correo: Courier

8

Dejamos la opcion por defaults.

Configuracion del VHCS:

9

Seleccionamos Yes

Aqui ingresamos el hostname del servidor

10

Direccion ip del servidor

Direccion de correo del administrador del servidor

11

Apretamos sobre OK

Seleccionamos YES

12

Nombre de usuario que va administrar la Base de Datos

Contraseña del usuario de la DB

13

Usuario que va administrar la Base de Datos del servidor de FTP

14

Contraseña del usuario de la db del servidor FTP

15

Dirección ip del segundo servidor de dns

Dominio del servidor

16

Usuario administrador del VHCS

Contraseña del usuario administrador del sistema VHCS

17

Con esto ya debemos tener andando nuestro VHCS, para probar su funcionamiento abrimos un cliente Web y escribimos la siguiente dirección: http://ip/vhcs2

Donde IP seria en este ejemplo: 192.168.1.60

Quedaría de la siguiente forma: http://192.168.1.80/vhcs2

Si obtenemos la siguiente pantalla es porque quedo todo bien configurado:

Por ultimo debemos modificar los permisos de la siguiente carpeta: # chmod -R 766 /var/www/vhcs2/gui/tools

18

Instalar Spamassassin & Amavis

Antes de instalar dichos paquetes vamos hacer una brebe explicacion de cada uno, para saber sobre su funcionamiento:

Spamassassin Esta aplicación realiza una serie de pruebas a los mensajes. Para cada prueba que supera, le asigna una puntuación. Cuando la puntuación llega a 5 (valor por defecto) entiende que se trata de un mensaje de spam.

Amavis El AmaViS escanea el correo entrante en busca de virus

Ahora para instalar estos paquetes debemos ejecutar el siguiente comando:

# apt-get install clamav clamav-daemon amavisd-new spamassassin razor pyzor dcc-client

19

Configurando clamav-fresgclam

20

Seleccionamos que corra como daemon

Aquí podes dejar la opción por default o como en mi casa seleccionar la DB de mi país: db.ar.clamav.net

21

Si tenesmos un servidor proxy debemos ingresar su dirección IP, sino solo seleccionamos OK

Deja la opción por default..

Luego debemos bajarnos la configurar del servidor y copiarla al directorio /etc/amavis/ con el nombre /etc/amavis/amavisd.conf

Bajar la configuracion:

# wget http://puuhis.net/vhcs/amavisd.conf.txt

22

Con eso lo que hacemos en el ejemplo es bajar la configuración al directorio /tmp para luego pasarla al directorio /etc/amavis:

Moviendo en archivo de configuración:

# mv amavisd.conf.txt /etc/amavis/amavisd.conf

23

Luego debemos crear y dar permisos a los siguientes directorios:

# mkdir /var/mail/virus # chown -R amavis:amavis /var/mail/virus

Ahora agregamos el user “clamav” al grupo “amavis”.

# gpasswd -a clamav amavis

24

Y por ultimo reiniciamos los servicios:

# /etc/init.d/clamav-daemon restart # /etc/init.d/amavis restart

La advertencia que nos presenta es porque tenemos una version vieja del ClamAV , mas adelante vamos hacer un upgrade.

Siguiente paso es reconfigurar los archivos /etc/postfix/main.cf y /etc/vhcs2/postfix/main.cf

25 Debemos agregar en los 2 el siguiente parametro: content_filter = smtp-amavis:[127.0.0.1]:10024

26

Ahora paso siguiente agregar el siguiente contenido a estos 2 archivos.

/etc/postfix/master.cf /etc/vhcs2/postfix/master.cf

Contenido: smtp-amavis unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes

27 localhost:10025 inet n - n - - smtpd -o content_filter= -o mynetworks=127.0.0.0/8 -o smtpd_recipient_restrictions=permit_mynetworks,reject -o receive_override_options=no_address_mappings

28

Ahora solo basta reiniciar el servicio:

# /etc/init.d/postfix restart

29

Debemos activar el spamassassin para esto, tenemos que editar el archivo /etc/default/spamassassin y cambiar el valor de la variable:

ENABLED=1

Editando el archivo:

# vi /etc/default/spamassassin

30

Registrando “razor”

# razor-client # razor-admin --create -user admin -pass prueba # razor-admin -discover # razor-admin –register

Iniciando pyzor

# pyzor discover

Ya que tenemos todo configurado pero nuestro “clamav” tiene una version vieja lo que vamos hacer es agregar la siguiente linea en nuestro /etc/apt/sources.list y luego actualizamos el sistema. Agregando la siguiente linea al sources.lis: deb http://ftp2.de.debian.org/debian-volatile sarge/volatile main

31

Actualizando los repositorios:

# apt-get update

32

Antes de actualizar el sistema vamos a ver que version de clam estamos corriendo:

# clamd –version

Ahora si actualizamos nuestro sistema:

# apt-get dist-upgrade

Verificamos nuevamente la version y vemos que ahora se actualizo:

# clamd version

33

Instalando Awstats

Awstats:

AWStats es un programa que genera estadísticas gráficas para servidores web. Lo que hace es mostrar el contenido del archivo de log del servidor web de forma gráfica. AWStats se puede usar por medio de CGI o bien desde la propia línea de comandos. Entre las cosas que muestra están el número de visitas, navegadores usados, sistemas operativos ... Para poder usarlo es necesario tener acceso de lectura al fichero de log del servidor y poder ejecutar scripts hechos en desde la línea de comandos o bien como CGI.

Instalamos el paquete de y el modulo de apache2 de mysql authorized.

# apt-get install awstats libapache2-mod-auth-mysql

Luego tenemos que activar el modulo en el apache2:

# a2enmod auth_mysql

34

Siguiente paso es reiniciar el servicio del apache2:

# /etc/init.d/apache2 force-reload

Ahora tenemos que bajarnos la configuracion del servicio de awstats, en el directorio /etc/awstats

# cd /etc/awstats/ # wget http://puuhis.net/vhcs/awstats.model.conf

35

Bajamos la configuracion del dostats y le cambiamos los permisos:

# cd /etc/awstats # wget http://puuhis.net/vhcs/dostats # chmod 755 dostats

Copiamos el “ awstats_updateall.pl” al directorio /usr/sbin/

# cp /usr/share/doc/awstats/examples/awstats_updateall.pl /usr/sbin/awstats_updateall.pl

36

Despues de terminar con el paso anterior debemos agregar al archivo /etc/vhcs2/apache/parts/dmn_entre.tpl debajo de la linea “Add under of "Alias /errors {WWW_DIR}/{DMN_NAME}/errors/" lo siguiente.

Redirect /stats http://{DMN_NAME}/awstats/awstats.pl

37

Ahora debemos agregar en los archivos /etc/apache2/sites-available/vhcs2.conf y /etc/vhcs2/apache/working/vhcs2.conf antes de la linea "# Default GUI." lo siguiente:

# awstats modifications Alias /awstatscss "/usr/share/doc/awstats/examples/css/" Alias /awstats-icon "/usr/share/awstats/icon/" Alias /awstatsicons "/usr/share/awstats/icon/" ScriptAlias /awstats/ "/usr/lib/cgi-bin/"

Options None AllowOverride None Order allow,deny Allow from all

Options None AllowOverride AuthConfig Order allow,deny Allow from all

Editanto el archivo /etc/apache2/sites-available/vhcs2.conf

38

Editando el archivo /etc/vhcs2/apache/working/vhcs2.conf

39

El siguiente paso es configurar para que la validacion del ingreso a las estadisticas sea mediante MYSQL, para esto lo que vamos hacer en primera medida es instalar el manejador de base de datos “phpmyadmin”

Instalando PhpMyAdmin

# apt-get install phpmyadmin

40

Configurando PhpMyAdmin:

Seleccionamos apache2 y apache-ssl

41

Apretamos sobre Yes

Para probar si esta funcionando hacedemos miende web de la siguiente manera, siempre basandonos en nuestros ejemplo http://192.168.1.80/phpmyadmin

El nombre de usuario y password es del usuario “root” del servidor de mysql.

42

Con esto vemos que esta funcionando correctamente.

Ahora vamos a crear un usuario para valide con nuestro awstats:

Vamos a la opcion “Privilegios” y hacemos clic sobre “Agregar nuevo usuario”

Debemos completar el formularios con los siguientes datos:

43

Hacemos clic sobre continue y seleccionamos la base de datos “vhcs2”

Apretamos sobre continue y listo.

Nos quedaria algo asi:

44

Ahora debemos editar el archivo /usr/lib/cgi-bin/.htaccess y dejarlos con el siguiente formato

AuthName "AWStats" AuthType Basic AuthMySQL_Host localhost AuthMySQL_DB vhcs2 AuthMySQL_Password_Table admin AuthMySQL_User vhcs2_awstats AuthMySQL_Password prueba1 AuthMySQL_Username_Field admin_name AuthMySQL_Password_Field admin_pass AuthMySQL_Encryption_Types Crypt_DES Crypt_MD5 Crypt MySQL PHP_MD5 require valid-user

45

EL paso sigueinte es reconfgurar el servicio para luego poner ejecutar el dostats.

# /etc/init.d/vhcs2_daemon stop mysql -u root -p USE vhcs2 UPDATE `domain` SET `domain_status` = 'change' WHERE `domain_status` = 'ok'; UPDATE `domain_aliasses` SET `alias_status` = 'change' WHERE `alias_status` = 'ok'; UPDATE `subdomain` SET `subdomain_status` = 'change' WHERE `subdomain_status` = 'ok'; quit # /var/www/vhcs2/engine/vhcs2-rqst-mngr # /etc/init.d/vhcs2_daemon start

46

Ejecutamos el dostats:

# /etc/awstats/dostats

47

Como vemos en la imagen anterior nos esta faltando el directorio “/etc/var/log/apache , lo que voy hacer es crear un enlaces simbolico con el directorio /var/log/apache2

# ln -s /var/log/apache2/ /var/log/apache

Volvemos a correr el dostats y tendriamos que obtener el siguiente resultado:

Ahora debemos agregar una tarea programa en el sistema , para esto seguimos este procedimento:

# crontab –e

48

Y agregamos la siguiente linea:

30 */2 * * * /etc/awstats/dostats &> /var/log/vhcs2/vhcs2-awstats.log

Paso siguiente es agregar esta misma linea en el archivo /etc/vhcs2/crontab/working/crontab.conf

# vi /etc/vhcs2/crontab/working/crontab.conf

49

Para probar su funcionamiento abrimos un navegador y ponemos la siguiente direccion: http://192.168.1.80/awstats/

Y debemos obtener un resultado parecido al siguiente:

50

Asegurando nuestro Servidor

Vamos instalar el Firewall Shorewall:

Shorewall: Es una aplicacion diseñada como Firewall, la cual es encargada de aplicar las politias de seguridad de nuestros sistema. Esta trabaja con diferentes zona haciendo asi mas facil la implementacion de politicas.

Vamos empezar con la instalacion:

# apt-get install shorewall

El siguiente paso es configurar nuestro sistema para que inicia automaticamente, para esto debemos cambiar el valor de la variable “startup” del archivo /etc/default/shorewall.

51

# vi /etc/default/shorewall

Ahora iniciamos el servicio:

# shorewall start

52

Como vemos tenemos varios errores, esto se debe que no tenemos los archivos de configuracion para esto lo que vamos hacer es copiar los que viene por defaults y luego los modificamos:

# cp /usr/share/doc/shorewall/default-config/* /etc/shorewall/

Ahora vemos si ya tenemos todos los archivos:

# ls /etc/shorewall

Viendo que tenemos todos los archivos, tenemos que empezar a modifcarlos: Aca les dejo parte de mi configuracion para mas informacion sobre las diferentes configuracion podemos ir al sitio: http://shorewall.net/Documentation.html

53 Mi configuracion esta abacada a un servidor con una sola placa de red.

Interfaces:

Zones:

Policy:

54

Rules:

Ahora solo basta con reiniciar el servicio de shorewall:

# shorewall restart

55

Haciendo Backup del sistema

El sistema de backup que vamos a implementar va ser localmente, pero luego mediante el uso de clave privada y publica nos copiaremos este backup desde otro servidor para tener un respaldo.

Script de Backup Local

Este scripts vamos a ponerlo en el directorio /home/admin/backup.sh

#!/bin/sh HORA=`date +%d-%m-%g`; RUTA='home/admin/backup'; ='[email protected]'; function bkp_dir (){ TARNAME=`echo $1.tar.gz | tr / -`; tar czf $RUTA/$HORA/$TARNAME $1 echo "Listo! $1 -> $TARNAME" }

#Si no hay un dir con la fecha actual, lo creo... cd /$RUTA HORACHK=`ls | grep $HORA`; if [ "$HORACHK" != "$HORA" ]; then mkdir "$HORA" fi

#Cambio al directorio raiz... cd /

#Cabecera del log... echo "Backup del dia $HORA" >> $RUTA/reporte.log echo "" >> $RUTA/reporte.log

#Hago los backups y agrego la info en el log... bkp_dir 'etc' >> $RUTA/reporte.log bkp_dir 'var/mail' >> $RUTA/reporte.log bkp_dir 'var/lib/mysql' >> $RUTA/reporte.log bkp_dir 'var/www' >> $RUTA/reporte.log

#Un espacio al log... echo "" >> $RUTA/reporte.log

#Agrego el resumen con el espacio de cada tar. echo "RESUMEN:" >> $RUTA/reporte.log cd $RUTA/$HORA ls -la du -sh * >> ../reporte.log cat ../reporte.log | mail -s "Backup del dia $HORA" $EMAIL rm ../reporte.log

Vamos a crear una tarea programa la cual ejecute dicho script todos los dias a la 02:00 am.

# crontab –e

Agregamos lo siguiente:

0 2 * * * sh /opt/backup.sh

56

Listo ahora restaria copiarnos este backup desde otro servidor:

Primero vamos a crear las llave privada y publica, en mi caso sobre el usuario “admin” porque el user root no puede loguear automaticamente por ssh.

# ssh-keygen –t rsa

En mi caso deje todo los campos en blanco

Con esto vamos encontrar en nuestra Home/.ssh las 2 claves.

Ahora copiamos el contenido del archivo id_rsa.pub al otro servidor pero con el nombre: authorized_keys dentro de la carpeta /home/user/authorized_keys

Podemos copiarla directamente usando el siguiente commando:

57 # ssh-copy-id -i /home/admin/.ssh/id_rsa.pub user@ip_del_otro_servidor

Ahora en el otro servidor debemos crear el siguiente script para copiarnos el backup, este lo vamos a dejar en el directorio /opt/traer.sh

Script que nos trae el backup:

#!/bin/sh HORA=`date +%d-%m-%g`;

#Si no hay un dir con la fecha actual, lo creo... cd /home/admin/backup HORACHK=`ls | grep $HORA`; if [ "$HORACHK" != "$HORA" ]; then mkdir "$HORA" fi cd /home/admin/backup/$HORA

# Traigo el backup scp [email protected]:/home/situ/backup/$HORA/* .

Bueno con esto ya tenemos creado el script para copiarnos los backups , nos faltaria por ultimo agregar una tarea para que este se ejecute todos los dias a las 03:00 am.

0 3 * * * sh /opt/traer.sh

58 Una forma efectiva es usar “rsync” así no tenemos que ocupar tan espacio con los backup, con este método solamente vamos copiando lo que se incrementa en los directorios.

Con esto damos por finalizado el Tutorial.

Sebastian Varela (“skirmish”) Marcos M. Garcia (“situ”) Svfnet.com Artsweb.com.ar [email protected] [email protected]

59