lunes, septiembre 15, 2008

Instalación de Sistema ISP en Debian Etch con VHCS

Instalación de Sistema ISP en Debian Etch con VHCS

Agosto 17, 2007 at 2:27 am (Servidores, linux)

VHCS (Virtual Hosting Control System) es un panel de control basado en web para controlar:

  • Servidor Web (Apache)
  • Servidor de Correo
  • Servidor DNS (Bind 9)
  • Servidor de FTP (proftpd).

Actualmente solo corre bajo Linux.

Para empezar necesitamos un sistema debian sarge instalado y pelado, sin ningún demonio a cargo de los DNS, ni de los mails, ni nada.

En mi caso voy a usar un solo equipo con dos IPs fijos y públicos (para usar los DNSs primarios y secundarios)… para ello edité y configuré apropiadamente mi configuración de red en /etc/network/interfaces.

Configurando los repositorios

# echo deb http://apt.scunc.it/ etch main >> /etc/apt/sources.list

Actualizando los Repos

# apt-get update

Comenzando la instalación

# apt-get install mysql-server mysql-client

Cambiamos la password de root del MySQL:

# mysqladmin -u root password nuevapass

Nota: Reemplazamos “nuevapass” por la nueva clave deseada

Instalando el VHCS desde el repositorio

# apt-get install vhcs*

El hecho de usar * es por que hay mas ficheros a descargar que empiezan con vhcs

Seguimos los pasos, son muy sencillos, a continuación voy a poner algunas capturas de la consola con las opciones a seguir para que nadie se pierda.

Configurando Postfix:

vhcs1.png

Elegimos “Internet Site”
Configurando Proftpd:

vhcs2.png

Si setiene mucha demanda de FTP es aconejable ponerlo como standalone.

Configurando Courier:

vhcs3.png

Simplemente le decimos que nos guarde como el esquema de directorios.

Configurando VHCS:

vhcs4.png

Como es una instalación nueva, elegimos que configure nuestra base de datos de manera automatica

vhcs5.png

Aqui le decimos que si.

Una vez contestadas estas preguntas se van a comenzar a descomprimir e instalar todos los paquetes necesarios.
En caso de recibir una alerta por un archivo de configuración existente, solo debemos decirle que lo sobreescriba (Y or I : install the package maintainer’s version) ya que vamos a usar VHCS para gestionar nuestros demonios.
Una vez finalizada la instalación ajustamos los permisos de las herramientas con:
# chmod -R 766 /var/www/vhcs2/gui/tools
# chown -R www-data tools

Instalacion de proteccion Anti-Spam (Spamassassin) y Anti-Virus (Amavis)

Para empezar instalamos los paquetes necesarios con apt-get:
# apt-get install clamav clamav-daemon amavisd-new spamassassin razor pyzor dcc-client

amavis1.png

En mi caso, selecciono esa opción porque tengo conexión permanente a internet, pero pueden usar la que mejor se ajuste a las necesidades de cada uno, aunque lo lógico es tener conexión permanente en un servidor de este estilo.

amavis2.png

Le decimos que si, asi el antivirus se mantiene en memoria con la ultima base de datos de virus

Añadimos soporte para algunos formatos de compresion asi amavis escanea el contenido:
# apt-get install lha arj unrar zoo unzoo zip unzip nomarch lzop tnef

Descargamos el archivo:

amavisd.conf y lo guardamos como: /etc/amavis/amavisd.conf

Una vez seteado, creamos una carpeta para la “cuarentena”:
#mkdir /var/mail/virus
#chown -R amavis:amavis /var/mail/virus
#gpasswd -a clamav amavis

Reiniciamos los Servicios:
#/etc/init.d/clamav-daemon restart
#/etc/init.d/amavis restart

Ahora vamos a decirle a postfix que escanee todos los mails con amavis, para eso editamos /etc/postfix/main.cf y /etc/vhcs2/postfix/main.cf
y añadimos esta linea al final:
content_filter = smtp-amavis:[127.0.0.1]:10024

Una vez hecho, editamos /etc/postfix/master.cf y /etc/vhcs2/postfix/master.cf y agregamos lo siguiente al final:
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
localhost:10024 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

Ahora ya tenemos postfix listo, solo tendremos que reiniciarlo:
# /etc/init.d/postfix restart
Finalmente agregamos la siguiente linea en nuestros repositorios para mantener actualizado el amavis:
deb http://ftp2.de.debian.org/debian-volatile etch/volatile main

Ya tenemos listo el amavis, solo nos queda activar y configurar el spam assassin.

Para activarlo editamos /etc/default/spamassassin y ponemos ENABLED=1

Una vez hecho, editamos /etc/spamassassin/local.cf y ponemos algo asi:
rewrite_header Subject [SPAM]
report_safe 1
trusted_networks 212.17.35.
lock_method flock
trusted_networks 127.0.0.0/8

Ahora registramos razor:
# razor-client
# razor-admin –create
# razor-admin -discover
# razor-admin –register

y una vez hecho, lo inicializamos:
# pyzor discover

Tenemos de añadir este comando en crontab

#crontab -e

00 12 * * 0-7 pyzor discover

Ahora si, ya tenemos el antivirus y el antispam funcionando, para probar el antispam solo debemos mandar un mail con el siguiente texto en el cuerpo del mensaje:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

y para realizar un test de virus podemos ver esta dirección: http://www.gfi.com/emailsecuritytest/

Instalación de estadísticas WEB avanzadas para cada dominio del panel: AWSTATS

Para empezar instalaremos los paquetes necesarios:
# apt-get install awstats libapache2-mod-auth-mysql

Luego, registramos el modulo de apache:
# a2enmod auth_mysql
Reiniciamos el apache y ya estamos listo para configurar el awstats:
# /etc/init.d/apache2 force-reload

Comenzamos con la configuración, para eso vamos a /etc/awstats y descargamos los siguientes archivos:

y lo renombramos a dostatsAjustamos los permisos del script…
# chmod 755 dostats

Copiamos awstats_updateall.pl al lugar correcto…
# cp /usr/share/doc/awstats/examples/awstats_updateall.pl /usr/sbin/awstats_updateall.pl

Editamos el template de apache en /etc/vhcs2/apache/parts/dmn_entry.tpl y debajo de donde diga “Alias /errors {WWW_DIR}/{DMN_NAME}/errors/” agregamos:
Redirect /stats http://{DMN_NAME}/awstats/awstats.pl

Editamos /etc/apache2/sites-available/vhcs2.conf y /etc/vhcs2/apache/working/vhcs2.conf y antes de donde diga “# Default GUI.” agregamos las siguientes lineas:
# 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

Usamos phpmyadmin para crear un usuario mysql llamado vhcs2_awstats con acceso de solo lectura únicamente a vhcs2 -> admin (es fundamental que este user tenga contraseña, por razones de seguridad)

Editamos /usr/lib/cgi-bin/.htaccess y ponemos algo asi (reemplacen con la clave correcta del usuario):
AuthName “AWStats”
AuthType Basic
AuthMySQL_Host localhost
AuthMySQL_DB vhcs2
AuthMySQL_Password_Table admin
AuthMySQL_User vhcs2_awstats
AuthMySQL_Password <<<>>>
AuthMySQL_Username_Field admin_name
AuthMySQL_Password_Field admin_pass
AuthMySQL_Encryption_Types Crypt_DES Crypt_MD5 Crypt MySQL PHP_MD5
require valid-user

Por ultimo agregamos una linea al crontab (crontab -e) del root para que procese los logs de apache:
30 */2 * * * /etc/awstats/dostats &> /var/log/vhcs2/vhcs2-awstats.log

Si deseamos un link a /stats en el panel de cada dominio debemos agregar un “custom link” con nuestro usuario administrador de VHCS con el siguiente texto: “../../awstats/awstats.pl?config={uname}”
Con esto ya tendríamos el acceso a las estadísticas via awstasts para cualquier dominio con solo anexar /stats en la URL. La contraseña es la misma que para el panel.

Tuneando VHCS

Este paso es optativo, acá voy a poner los ajustes menores que le hice a la configuración de los dominios y demás:

Vamos a /etc/vhcs2/apache/parts/dmn_entry.tpl y donde pusimos el Redirect para el AWstats agregamos dos mas muy utiles:
Redirect /webmail http://{DMN_NAME}/vhcs2/tools/webmail
Redirect /cpanel http://{DMN_NAME}/vhcs2

En ese mismo archivo vemos que tenemos una directiva que dice: Options Indexes Includes FollowSymLinks MultiViews
Cambiamos esa línea por: Options -Indexes Includes FollowSymLinks MultiViews
Con esto evitaremos que por defecto se listen los contenidos de los directorios y así poner un index o un .htaccess en cada dir que creemos.

Ahora vamos a /etc/vhcs2/bind/parts/db_e.tpl y donde dice: “ns IN A {DMN_IP}” agregamos dos líneas mas:
ns1 IN A {DMN_IP}
ns2 IN A -IP DNS SECUNDARIO-
Listo, a partir de ahora, todos los dominios que creemos van a tener la entrada ns1 y ns2 con los IPs correspondientes y los redireccionamientos /cpanel y /webmail como tiene el ya conocido cpanel.

VHCS listo

Ahora solo debemos ingresar a nuestro servidor mediante el navegador tecleando la IP y anexando /vhcs2/ a la dirección:

http://-DIRECCIONIP-/vhcs2/

Nos logueamos con nuestro usuario administrador y empezamos a dar de alta usuarios resellers quienes van a poder crear dominios y cuentas de email.

Saludos y hasta la próxima.

Capturas:

Bibliografía y más Información:
VHCS: Link
Instalar Spamassasin & amavis: Link
SMART monitor: Link
AWStats para VHCS: Link
Squirrelmail: Link

Fuente: http://www.wikipeando.com.ar/index.php/archives/36/

Modificado y adaptado a Debian etch Por _TuXeD_.