Прозрачное Перенаправление Почты Через Iptables

Название можно продолжить:.

или плавный перенос почты на другой сервер .

Недавно возникла задача — реализовать возможность использования почтового сервера, не имеющего прямого доступа в Интернет. Причём он должен работать вместо старого, который работает, естественно, под другим IP-адресом.

Принципиальным моментом является то, что почта изначально хранилась на шлюзе.

Настроим iptables на шлюзе; нет необходимости настраивать iptables на почтовом сервере.

Исходные данные: сервер — CentOS 5 192.168.0.3 — IP почтового сервера 192.168.0.1 — внутренний IP-адрес бывшего почтового сервера/шлюза.

199.199.199.199 — IP-адрес бывшего почтового сервера/шлюза.

eth0 — локальный интерфейс на шлюзе eth1 — внешний интерфейс на шлюзе Настройка сетевого интерфейса на почтовом сервере: IP-адрес: 192.168.0.3 маска: 255.255.255.0 шлюз: 192.168.0.1 Перенаправим IMAP (порт 143), SMTP (порт 25).

Перейдем непосредственно к реализации: 1. Получение почты 1.1.1 # Перенаправляем все, что пришло на внутренний интерфейс через почтовые порты

  
  
  
  
  
  
  
   

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.0.3 --dport 25 -j DNAT --to-destination 192.168.0.3:25 iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.0.3 --dport 143 -j DNAT --to-destination 192.168.0.3:143

1.1.2 # Перенаправляем все, что пришло на внешний интерфейс через почтовые порты

iptables -t nat -A PREROUTING -i eth1 -p tcp -d 199.199.199.199 --dport 143 -j DNAT --to-destination 192.168.0.3:143 iptables -t nat -A PREROUTING -i eth1 -p tcp -d 199.199.199.199 --dport 25 -j DNAT --to-destination 192.168.0.3:25

1.2 # Измените исходный IP-адрес клиента на IP-адрес шлюза.

# Очень важно делать SNAT только для компьютеров локальной сети, иначе проверки RBL при получении почты работать не будут, # так как вообще всё будет получено с одного IP адреса.

Это плохо еще и потому, что невозможно установить ограничение на количество # подключений с одного IP-адреса.



iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 192.168.0.0/24 -d 192.168.0.3 --dport 25 -j SNAT --to-source 192.168.0.1 iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 192.168.0.0/24 -d 192.168.0.3 --dport 143 -j SNAT --to-source 192.168.0.1

1.3 # Разрешить переадресацию портов после переадресации портов на шлюзе

iptables -A FORWARD -p tcp -d 192.168.0.3 --dport 143 -j ACCEPT iptables -A FORWARD -p tcp -d 192.168.0.3 --dport 25 -j ACCEPT

2. Отправка почты 2.1 # Разрешить отправку почты с почтового сервера

iptables -A FORWARD -s 192.168.0.3 -j ACCEPT

2.2 # Отправляем пакеты в интернет естественно только с одного IP адреса

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 199.199.199.199

Не забывайте об обязательном условии /etc/sysctl.conf: net.ipv4.ip_forward = 1 Наконец, подробная схема работы iptables.

Прозрачное перенаправление почты через iptables

Добавление.

Естественным желанием является унификация доменных имен для настройки почтовых клиентов.

Так что настройка почтового клиента вне офиса ничем не отличается от настройки внутри офиса.

Более того, в новой версии Thunderbird (которой мы в основном пользуемся) появился мастер автоматического определения серверов SMTP, POP, IMAP для пользовательской учетной записи.

Мы остановимся на распространённых именах: imap.mydomain.ru smtp.mydomain.ru mx-запись для домена Нам нужно настроить записи для домена 2 раза - для самого домена в админке доменного имени и в DNS в локальной сети.

Давайте рассмотрим настройку записей на DNS-сервере в локальной сети.

Добавьте в именованный.

conf:

view "internal" { match-clients { localnets; }; match-destinations { localnets; }; .

zone "mydomain.ru" IN { type master; file "master/mydomain.ru"; allow-update { 127.0.0.1; 192.168.0.1; }; }; };

Создайте master/mydomain.ru:

$ORIGIN .

$TTL 259200 ; 3 days mydomain.ru IN SOA ns.mydomain.ru. root.mydomain.ru. ( 23840 ; serial 10800 ; refresh (3 hours) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.mydomain.ru. $ORIGIN mydomain.ru. @ IN MX 10 mail.mydomain.ru. ns A 192.168.0.1 mail A 192.168.0.3 imap CNAME mail smtp CNAME mail

Проверяем с помощью nslookup. Все! Теги: #linux #Системное администрирование #iptables

Вместе с данным постом часто просматривают: