Собственно сабж. Данный вопрос возник благодаря дейятельности спамхауса. Итак:
Имеется сервак, обеспечивающий выход кучи машин в инет и внутренний MTA. С недавних пор спамхаус стал добавлять те хосты, которые флудят на 80-й порт. Если 25-й порт был порублен - ибо нехрен (есть внутренняя почта, а кому надо - есть веб-морды), то тут порубить уже не получится, полетят щепки. У NAT/MTA есть белый адрес, назовем его 250.
Быстро смекнув, основную сетевку (eth0) переводим на другой айпишник, назовем его 251-й, а почтовик вешаем на алиас eth0:1 - 250, как и работало ранее.
Только вот эта зараза иногда с какого-то хрена пытается отправится с 251-го айпишника (с соответствующим fail, ибо спамхаус не дремлет), когда например указан локалхост для listen сервиса (exim, dovecot), т.е. «listen x.y.z.250, 127.0.0.1».
Расковыривать все конфиги и заменять локалхост на 250-й айпишник сложно и есть возможность что-то сломать, поэтому решил сделать ход конем - вешаем все сервисы на локалхост, и делаем проброс портов с eth0:1 - железнее некуда. Только вот эта зараза не работает!
iptables -I INPUT 1 -i lo -j ACCEPT
iptables -I INPUT 1 -i eth0 -j ACCEPT
iptables -I INPUT 1 -i eth0:1 -j ACCEPT
...
iptables -A FORWARD -i lo -s 127.0.0.0/255.0.0.0 -j ACCEPT
iptables -A FORWARD -i eth0:1 -d 127.0.0.0/255.0.0.0 -j ACCEPT
...
iptables -t nat -A PREROUTING -i eth0:1 -p tcp --dport 25 -j DNAT --to-destination 127.0.0.1:25
iptables -t nat -A PREROUTING -i eth0:1 -p tcp --dport 465 -j DNAT --to-destination 127.0.0.1:465
iptables -t nat -A PREROUTING -i eth0:1 -p tcp --dport 993 -j DNAT --to-destination 127.0.0.1:993
iptables -A FORWARD -i eth0:1 -o lo -d 127.0.0.1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i eth0:1 -o lo -d 127.0.0.1 -p tcp --dport 465 -j ACCEPT
iptables -A FORWARD -i eth0:1 -o lo -d 127.0.0.1 -p tcp --dport 993 -j ACCEPT
# iptables -L -n -v | grep 127
0 0 ACCEPT all -- lo * 127.0.0.0/8 0.0.0.0/0
0 0 ACCEPT all -- eth0:1 * 0.0.0.0/0 127.0.0.0/8
0 0 ACCEPT tcp -- eth0:1 lo 0.0.0.0/0 127.0.0.1 tcp dpt:25
0 0 ACCEPT tcp -- eth0:1 lo 0.0.0.0/0 127.0.0.1 tcp dpt:465
0 0 ACCEPT tcp -- eth0:1 lo 0.0.0.0/0 127.0.0.1 tcp dpt:993
Не работает, печалька.
Решение:
/etc/exim4/exim.conf:
...
remote_smtp:
driver = smtp
interface = x.y.z.250
...