Решил я настроить почтовый шлюз на FreeBSD. Схема простенькая:
Сервер2 -- это почтовый шлюз
Сервер1 -- это сервер с зимброй.
Собственно, для почтового шлюза задачи простые:
1. обеспечить серверу1 NAT во внеху.
2. передавать почту с сервера1 дальше в всемирную паутину.
3. обеспечить проброс портов 80 и 443 из внехи к серверу1.
И вот у меня дошло дело до настройки ipfw. Седлал вот так:
Код: Выделить всё
# сброс всех правил
-f flush
# разрешить любой доступ через интерфейс-петлю
add 00050 allow all from any to any via lo0
# разрешить любой исходящий трафик с сервера
add 00055 allow all from me to any
# разрешить прохождение пакетов со статусом 'установлен'
# add 00075 allow tcp from any to any established
# разрешить пинг почтового шлюза извне
add 00100 allow icmp from any to me icmptypes 8 in via em0
# разрешить серверу обмениваться любым трификом с локальным DNS-сервером
add 00150 allow all from 172.16.1.100 to me via re0
# открытые порты к серверу.
add 00160 allow tcp from any to me 25,465 via em0
add 00161 allow tcp from any to me 22,10000,25,465 via re0
# разрешить любой трафик с зимброй
add 00171 allow all from 172.16.0.62 to any via re0
add 00172 allow all from any to 172.16.0.62 via re0
# NAT для зимбера и проброс портов к нему
nat 1 config if em0 reset same_ports deny_in redirect_port tcp 172.16.0.62:443 443 redirect_port tcp 172.16.0.62:80 80
add 00180 nat 1 all from any to any via em0
# Запретить всё остальное
add 10000 deny all from any to any
Проблема у меня в том, что если я раскомментирую правило 00075, то у меня не будет работать NAT. А если его закомментировать, то NAT работает, но почтовый шлюз уже не может соединиться с другими серверами по 25-ому порту.
Вот как бы решить эту делему...
Честно говоря, после iptables, я не могу до конца вникнуть в логику работы ipfw. Прошу помощи...