Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Blackhole postfix


Creamos el alias local, estos alias SOLO se utilizarán para la entrega local de correo, esto quiere decir que si envio un mail a [email protected]$mydestination se envia a /dev/null:

vi /etc/aliases
devnull:            /dev/null

Indicamos a postfix donde estan los alias disponibles:

vi /etc/postfix/main.cf
alias_maps = hash:/etc/aliases
newaliases_path = /usr/bin/newaliases

Actualizamos la base de datos de alias:

/usr/bin/newaliases

Configuramos postfix para que consulte la base de datos para determinar que alias utilizar dependiendo de la dirección destino, estos alias pueden ser tanto locales como remotos:

vi /etc/postfix/main.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
vi /etc/postfix/mysql/mysql_virtual_alias_maps.cf
user = XXXXX
password = XXXXXXXX
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

La tabla debe tener la siguiente estructura:

mysql> desc alias;
+----------+--------------+------+-----+---------------------+-------+
| Field    | Type         | Null | Key | Default             | Extra |
+----------+--------------+------+-----+---------------------+-------+
| address  | varchar(255) | NO   | PRI | NULL                |       |
| goto     | text         | NO   |     | NULL                |       |
| domain   | varchar(255) | NO   | MUL | NULL                |       |
| created  | datetime     | NO   |     | 0000-00-00 00:00:00 |       |
| modified | datetime     | NO   |     | 0000-00-00 00:00:00 |       |
| active   | tinyint(1)   | NO   |     | 1                   |       |
+----------+--------------+------+-----+---------------------+-------+

Un ejemplo de alias a [email protected]:

mysql> select * from alias where address='[email protected]';
+------------------------+---------+-----------------+---------------------+---------------------+--------+
| address                | goto    | domain          | created             | modified            | active |
+------------------------+---------+-----------------+---------------------+---------------------+--------+
| [email protected] | devnull | alfaexploit.com | 2017-02-15 12:49:57 | 2017-02-15 12:49:57 |      1 |
+------------------------+---------+-----------------+---------------------+---------------------+--------+

Cuando alguién envia un mail a [email protected] se aplicará el alias a [email protected] entrando en acción el alias para direcciones locales de /etc/aliases

Si queremos un blackhole para todas las direcciones inexistentes tendremos que meter dos querys, primero la de los alias reales y luego la de las direcciones inexistentes, cuando no machee la primera query lo intentará con la segunda que siempre macheará.

virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf proxy:mysql:/etc/postfix/mysql/mysql_virtual_devnull_alias_maps.cf
vi /etc/postfix/mysql/mysql_virtual_devnull_alias_maps.cf
user = XXXXX
password = XXXXXXXX
hosts = localhost
dbname = postfix
query = SELECT goto FROM devnullalias WHERE domain='%d' AND active = '1'

Creamos la segunda tabla:

mysql> create table devnullalias ( domain varchar(255), goto text, active tinyint(1) );
mysql> insert into devnullalias (domain, goto, active) values ('alfaexploit.com', 'devnull', '1');
mysql> select * from devnullalias;
+------------------------+---------+--------+
| domain                 | goto    | active |
+------------------------+---------+--------+
| alfaexploit.com        | devnull |      1 |
+------------------------+---------+--------+

Autor: Kr0m -- 21/03/2017 15:03:29