В своё время столкнулся с такой проблемой: не работали почтовые клиенты через прокси-сервер. Конечно можно почту проверить и через браузер, но это не всегда удобно. Начал занимался поисками решения данной проблемы. Перечитал кучу литературы, перепробовал кучу вариантов настроек, пока не нашел нужный вариант. Выкладываю сюда, как я это делал.
Значит имею шлюз с двумя сетевыми картами. На него установлена операционная система Alt Linux 5.0.1 Master. Одна сетевая карта (eth1) смотрит в интернет, другая (eth0) — в локальную сеть.
Теперь предположим что eth1 имеет следующие значения:
- IP-адрес — 10.56.15.162
- маска — 255.255.255.224
- шлюз — 10.56.15.161
- DNS — 10.0.1.1 и 10.0.1.2
Для eth0 зададим такие параметры:
- IP-адрес — 192.168.1.1
- маска — 255.255.255.0
Теперь открываем консоль и набираем
# iptables -F
# iptables -A POSTROUTING -t nat -j MASQUERADE -o eth1
# iptables -P FORWARD ACCEPT
# sysctl -w net.ipv4.ip_forward=1
# service iptables save
# service iptables restart
Все, шлюз работает.
Дальше на компьютере, который хотим пустить в интернет задаём такие параметры:
- IP-адрес — 192.168.1.2
- маска — 255.255.255.0
- шлюз — 192.168.1.1
- DNS — 10.0.1.1 и 10.0.1.2
Вот в принципе и все. Данная схема так же проверена на Alt Linux 5.0.2 Master и Ubuntu 10.04.
Так же можно настроить iptables следующим образом
# iptables -F
# iptables --flush
# iptables --table nat --flush
# iptables --delete-chain
# iptables --table nat --delete-chain
# iptables -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
# iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# iptables -A POSTROUTING -t nat -j MASQUERADE
# service iptables save
# service iptables restart