spamd
es un servicio particular de OpenBSD que funciona en llave con pf
para bloquear correos provenientes de IPs listadas en índices actualizados vía Internet. Puede operar en 3 modos:
* Lista negra (blacklisting)
* Lista gris (graylisting)
* Atrapar grises (gray trapping)
Los detalles de configuración aquí presentados son para OpenBSD 4.2.
Lista Negra
En este modo hay una lista de IPs prohibidas, todo correo proveniente de una de estas IPs es bloqueado —en realidad más que sólo bloqueado porque spamd
hace perder tiempo a los MTA que se conectan desde esas IPs.
!Configuración
No se requiere instalar paquetes, todo hace parte del sistema base.
- Editar
/etc/mail/spamd.conf
. La configuración por defecto bloquea IPs listadas por Spew así como IPs de China y Korea. Descarga copias de estas listas del sitio oficial de OpenBSD, aunque hay otros sitios, ver http://www.openbsd.org/spamd/
- Iniciar
spamd
ejecutando /usr/libexec/spamd -b
. Debe arracarse junto con el sistema, agregando a /etc/rc.conf.local
:
spamd_flags="-v -b" # for normal use: "" and see spamd-setup(8)
spamd_black=""
spamd_setup_flags="-b" # for normal use: "" and see spamd-setup(8)
- Preparar
pf
para bloquear direcciones que estén en la tabla spamd
(lista negra). Para esto además de asegurarse de que pf
se inicie durante el arranque, ejecutar pfctl -f /etc/pf.conf
después de agregar a /etc/pf.conf
(o quitar comentarios):
table persist
no rdr on { lo0, lo1 } from any to any
rdr pass inet proto tcp from to any port smtp -> 127.0.0.1 port spamd
</pre>
* Ejecutar ```/usr/libexec/spamd-setup -b``` Este programa descarga copias del listado de spammers tal como se configure en ```/etc/spamd.conf```, después envía el listado a ```spamd``` por el puerto 8026 (o el especificado en ```/etc/services``` como ```spamd-cfg```) y actualiza las tabla `````` de ```pf```. Esta operación debe hacerse periódicamente para lo cual puede agregarse al crontab del administrador (ejecutar como root ```crontab -e```):
1 1 * * * /usr/libexec/spamd-setup -b
Una vez en operación ```pf``` redirigirá al puerto 8025 (o el que se configure en ```/etc/services``` como ```spamd```) toda conexión proveniente de una IP que esté en la lista negra. ```spamd``` rechaza toda conexión que recibe (haciendo perder tiempo al spammer).
!Pruebas
Puede ver como spamd hará perder tiempo al MTA de cada IP listada en la lista negra ejecutando:
telnet localhost 8025
Puede ver la lista de IPs bloqueadas por pf con:
pfctl -t spamd -T show
En el momento de este escrito son 74932.
Por la opción ```-v``` al iniciar spamd puede ver en la bitácora de servicios ```/var/log/daemon``` los correos rechazados.
##Lista Gris
En este caso hay una lista negra, una gris y una blanca.
* Es análoga al caso anterior para direcciones que estén en la lista negra.
* Se recibe todo correo que provenga de direcciones que están en la lista blanca.
* Toda dirección que no esté en la lista negra ni en la blanca pasa primero a una lista gris y se solicita al servidor que envió reenviar el mensaje, si el mensaje es reenviado la dirección se pasa a la lista blanca.
La configuración es tal como la de listas negras, sólo que
* en ```/etc/pf.conf``` debe ser:
table persist
table persist
no rdr on { lo0, lo1 } from any to any
rdr pass inet proto tcp from to any port smtp -> 127.0.0.1 port spamd
rdr pass inet proto tcp from ! to any port smtp -> 127.0.0.1 port spamd
</pre>
* En ```/etc/rc.conf.local``` :
spamd_flags="-v" # for normal use: "" and see spamd-setup(8)
spamlogd_flags="" # use eg. "-i interface" and see spamlogd(8)
* Si se arranca ```spamd``` no debe usarse la opción ```-b``` (puede ser sin opciones o con ```-g```).
* ```spamd-setup``` no debe usarse con el flag ```-b``` ni al arrancarse desde la línea de comandos en el ```crontab```.
------
Esta información se cede al dominio público y se dedica al Padre que es MISERICORDIA. 2008. vtamara@pasosdeJesus.org