#!/bin/sh

/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/sysctl -w net.ipv4.conf.default.forwarding=1
/sbin/sysctl -w net.ipv4.conf.all.forwarding=1
/sbin/modprobe ip_gre
/sbin/modprobe nf_conntrack_proto_gre
/sbin/modprobe nf_nat_ftp
/sbin/modprobe nf_nat_pptp
/sbin/modprobe nf_nat_sip
/sbin/modprobe nf_nat_proto_sctp
/sbin/modprobe nf_nat_amanda
/sbin/modprobe nf_nat_proto_gre
/sbin/modprobe nf_nat_h323
/sbin/modprobe nf_nat_snmp_basic
/sbin/modprobe nf_nat_tftp
/sbin/modprobe nf_nat_irc
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o ppp0 -j MASQUERADE

Первые три строчки в последствии можно добавить в /etc/rc.local, чтобы работало сразу после загрузки. В данном примере видно, что я настроил форвардинг на ppp0, который у меня vpn. Через него у меня работает интернет. Ессно на месте ppp0 может быть любое сетевое устройство. При помощи modprobe подгружаем необходимые для обеспечения полного функционала NAT модули ядра.

Имея схему “клиент” → “Linux-машина с NAT” → “Интернет”, настраиваем сеть между клиентом и линуксовым роутером так: сеть — что-нибудь типа 192.168.0.0/24, IP клиента из этого диапазона, IP Linux-машины тоже, например 192.168.0.1 (классика))) ). Соответственно на клиенте основной шлюз ставим IP Linux-машины (в данном примере192.168.0.1), DNS можно взять из /etc/resolv.conf Linux-машины, на которой поднят NAT.

P.S.: не забываем перезагрузить наш Linux-роутер)).