если внешний ip динамический
iptables -A POSTROUTING -o ppp0 -j MASQERADE
если статический
# iptables -A POSRTOUTING -o ppp0 -j SNAT --to-source $EXT_IP
для включения пересылки пакетов между интерфейсами
в /etc/sysctl.conf раскомментировать строчку с net.ipv4.config.default.ip_forward=1
после чего сделать
# sysctl -p
ну и чтобы сделать проброс портов внутрь локалки -
# iptables -A PREROUTING -d $EXT_IP -p tcp --dst-port 70 -j DNAT --to-destination 192.168.0.3:80
Обе команды iptables добавить, скажем, в отдельный скрипт и положить его в /etc/network/if-up.d, чтобы они выполнялись автоматически во время поднятия интерфейсов при старте системы.
Server:~# iptables -A POSTROUTING -o ppp0 -j MASQERADE
iptables v1.3.6: Couldn't load target `MASQERADE':/lib/iptables/libipt_MASQERADE.so: cannot open shared object file: No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
Что-то у меня ничего не получается
# iptables -A POSTROUTING -o ppp0 -j MASQUERADE
iptables: No chain/target/match by that name
# iptables -A PREROUTING -d $EXT_IP -p tcp --dst-port 70 -j DNAT --to-destination 192.168.0.3:80
Bad argument `tcp'
Try `iptables -h' or 'iptables --help' for more information.
StasikOS, про таблицу nat я потом догадался. А про новый ip шлюза вспомнил только сегодня. Вообщем работает. Спасибо.
$EXT_IP может менятся несколько раз в сутки. Что делать когда внешний IP динамический?