¿Cómo resolverías... "How would you solve...?"

Tenemos el siguiente esquema:

El Pc0 está conectado a la red 192.168.1.0/24 con ip 192.168.1.10 y gw 192.168.1.254, que le permite salir a internet.
Al mismo tiempo tenemos otro router (R2) conectado al switch, en otro rango de red: 172.16.0.0/16, al cual no podemos llegar ya que no está en nuestro rango.
¿Cómo podíamos conectarnos a la LAN 172.16.0.0/16 si el Pc0 solo dispone de una NIC y no queremos perder la conexión con la red?
nota: no podemos cambiar nada de la infraestructura del esquema (cables, nuevos dispositivos...)


Pc0 is conected to 192.168.1.0/24 with ip address 192.168.1.10 and gw 192.168.1.254, alowing to connect with inet.
At the same time, we have an other router (R2) connected to switch, in a different range: 172.16.0.0/16, which we can't get connection with (different networks).
How do we connect to LAN 172.16.0.0/16 if the Pc0 just has a NIC and we can´t lose our inet connection?
note: we can't change anything of the schema (wires, new devices..)


Solucion: Unicamente tenemos que añadir una segunda ip a nuestra NIC, dentro de la red 172.16.0.0/16. Es muy importante tener en cuenta que un host puede pertenecer a tantas redes como queramos, siempre y cuando esté configurado dentro de ellas. El gateway solo nos sirve para indicar (por ejemplo en este esquema) la salida a internet.
Siempre debemos tener claro que un switch funciona en capa 2 y que puede existir comunicación entre dispositivos sin necesidad de salir por ninguna puerta de enlace.

Servidor Plesk con CentOS 5.6, SpamAssassin, Qmail-scanner y Clamav

La siguiente guía tiene el propósito de explicar paso por paso la instalación de un servidor Plesk bajo CentOS 5.6 configurando spamassassin, qmail-scanner y clamav como principales herramientas para tener un servidor http/mail seguro y funcionando 100%.
Se asume que el lector tiene unos conocimientos básicos sobre linux y se siente cómodo con la CLI.

Lo primero de todo es descargarnos la distro desde centos.org y grabarla en un cd o en mi caso en un usb como explico aquí: http://www.aprendiendounpoquitomas.com/2011/07/installing-centos-6-from-usb.html

Arrancamos e instalamos CentOS 5.6 sin entorno gráfico y con los menos paquetes posibles para evitar incompatibilidades. Una vez terminado este proceso, pasamos a arrancar nuestro nuevo sistema y conectarlo a la red.

Lo primero de todo es comprobar que no tenemos ninguno de estos paquetes instalados; Si los tenemos pasamos a eliminarlos con:
# yum remove http*
# yum remove php*
# yum remove cyrus*
# yum remove mysql*

Una vez eliminados, paso a actualizar el SO con:
# yum update
Queda de más decir que debe estar instalado gcc, make y otros imprescindibles como nano o vim...

- Instalación de PLESK 9.5.4

Ahora es momento de descargarnos el paquete plesk desde su webpage, en mi caso la versión de 64bits. Antes de poderlo descargar os teneis que registrar.
# mkdir /root/plesk
# cd plesk
# wget download1.parallels.com/Plesk/PPP9/CentOS5/parallels_installer_v3.6.0_build100407.15_os_CentOS_5_x86_64

Una vez descargado, le damos permisos de ejecución y lo instalamos:
# chmod +x paralles_installer_v3.6.0........
# ./parallels_installer_v3.6.0.......

En este paquete vienen incluidas distintas versiones, en mi caso instalaremos la versión 9.5.4 (opción 9) y elegiremos las opciones siguientes:

Como podeis ver en la imagen, he instalado:
- Plesk Migration Manager
- Php 5.3
- Qmail
- Additional Languages Pack (Español)
- Plesk Webmails support (Horde o Atmail)
- Additional Mail Services (No instaleis ni el spamassassin ni el antivirus, ya que lo haremos más adelante)

Podeis instalar todo lo que os interese, pero tened en cuenta que el acceso a esas aplicaciones será limitado por la licencia.

Continuar con la instalación y verificar que no os ha dado ningún error grave.
Una vez terminado, el acceso prederminado al CPANEL es:
https://ip_servidor:8443
user: admin
pass: setup

- Instalación de Qmail-Scanner, ClamAV y SpamAssassin

Antes de nada, es necesario añadir el repositorio atomic:
# wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

Procedemos a instalar los paquetes necesarios:
# yum install qmail-scanner clamd qgreylist spamassassin dcc pyzor razor-agents

Iniciamos los servicios:
# /etc/init.d/spamassassin restart
# chkconfig spamassassin on
# /etc/init.d/clamd start
# chkconfig clamd on

Creamos el fichero log, necesario para las actualizaciones de clamav y hacemos propietario a qscand, usuario/grupo predefinido de qmail-scanner:
# touch /var/log/clamav/freshclam.log
# chown qscand:qscand /var/log/clamav/freshclam.log

Añadimos a crontab la actualización de clamav para que siempre contemos con las últimas firmas de virus:
# crontab -e
30 0 * * * /usr/bin/freshclam –quiet -l /var/log/clamav/freshclam.log
La linea anterior actualizará el antivirus todos los días a las 0:30 am.
Seguimos con la instalación, ahora reconfigurando qmail-scanner:
# qmail-scanner-reconfigure

Podemos ver y editar la configuración en /etc/qmail-scanner.ini. Es importante no olvidarse de reconfigurar qmail-scanner cada vez que editemos su configuración.

Podemos probar si ha ido bien la instalación de clamav, actualizando su base de datos de virus:
# freshclam -v

Si os da algún problema, verificar que en el archivo /etc/freshclam.conf el propietario de la db es qscand:
# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
DatabaseOwner qscand

En mi caso, me gusta tener todos los logs en /var/log así no tengo que gastar tiempo en buscar donde tiene el log la aplicación x, podemos crear links simbólicos a los log de qmail y qmail-scanner con:
# ln -s /usr/local/psa/var/log/maillog /var/log/qmail
# ln -s /var/spool/qscan/qmail-queue.log /var/log/qmail-scanner

Bien, ya está todo instalado y funcionando, ahora voy a explicar brevemente que archivos de configuración son necesarios conocer para poder configurar estas herramientas:
Encontrareis más info en las webs de los diferentes proyectos
- Qmail-Scanner
/etc/qmail-scanner.ini -> Es el archivo de configuración principal. En él entre otras opciones puedes decirle qué puntuación utilizar a parte del required_score de spamassassin para que ponga en quarentena o elimine los correos marcados como spam.

/var/qmail/bin/qmail-scanner-queue.pl -V
Puedes ver que configuración se está usando, tambien editarla pero parcialmente. En mi caso, la salida de ese comando es la siguiente:
qmail-scanner-queue.pl
Version: 2.08st (20100626)
Perl: Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Settings per domain: enabled
Scanners installed: clamdscan_scanner, spamassassin, perlscan_scanner,
Scanners default: clamdscan_scanner, spamassassin, perlscan_scanner,
Scanner versioning: clamdscan: 0.97.3/13875. spamassassin: 3.2.5. perlscan: 2.08st.
Spamassassin settings:
Mode: fast_spamassassin
sa_timeout = 120 / sa_fault_tolerant = 1 / sa_maxsize = 256000
sa_subject_site = '****SPAM****'
sa_delta_site = 1
sa_quarantine_site = 2
sa_delete_site = 6.2 / sa_reject_site = 0
Operating System: Linux, 2.6.32-4-pve
Hardware: x86_64
http://qmail-scanner.sourceforge.net/

- Spamassassin
/etc/mail/spamassassin/local.cf-->configuración general del spamassassin. En él se define la puntuación requerida para que un email sea marcado como spam, por defecto 5. En este caso qmail-scanner es el encargado de reescribir el asunto del email, por lo tanto se obviará la linea correspondiente.
Una vez terminemos de editar el archivo de configuración, debemos ejecutar:
# spamassassin --lint
para comprobar que no hay ningún error
http://spamassassin.apache.org/

- Clamav
/etc/clamd.conf
/etc/freshclam.conf
Estos dos archivos son los correspondientes a la configuración del antivirus. En ellos podeis configurar desde el path a los log, hasta notificaciones via mail.
http://www.clamav.net/


Hasta aquí llega la explicación, espero que os sirva todo lo posible ya que no hay mucha información y menos en español.
Podeis opinar y escribir vuestras dudas comentando más abajo :)
Proximamente postearé el mismo tuto en inglés