Раздача интернета в Ubuntu через NAT
- 28.06.11, 09:45
После того, как оволосатились винды на двух компьютерах, чистки реестра, прогонки антивирусами и прочими плясками с бубном, перевел свой компьютер на Ubuntu. Системой доволен. Пришлось конечно осваивать с нуля, после приличного времени проживания в форточках это было несколько забавно, но да не в том суть.
Появиласть необходимость раздавать интернет со своей машины, ну а как это проще всего сделать? Конечно же настроить NAT. В убунту это делается достаточно просто. Необходимо настроить iptables, есть в убунте такая штука.
Для начала посмотрим какие правила у нас в iptables прописаны, сделать это можно командами в консоли под root’ом:
sudo iptables -L
# iptables -L -t nat
После чего включим NAT и настроим маршрутизацию:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
где 192.168.0.2 – клиентский ip, вместо него может стоять и диапазон адресов 192.168.0./24
eth0 – локальная сеть
eth1 – интернет
Следующим шагом сохраняем правила:
sudo iptables-save
и проверив все ли правильно записано сохраняем правила в файл:
sudo sh -c "iptables-save > /etc/iptables.up.rules"
Для того, чтобы правила запускались при загрузке системы создаем скрипт в папке /etc/network/if-up.d
со следующим содержимым:
#!/bin/sh
iptables-restore < /etc/iptables.up.rules
Так же необходимо добавить или раскомментировать строчку (если закомментирована) в файле /etc/sysctl.conf со следующим содержанием:
net.ipv4.ip_forward = 1
Все должно заработать, по крайней мере у меня все прекрасно работает.
Если возникнет необходимость очистить iptables, необходимо в консоли выполнить следующее:
sudo iptables -F
sudo iptables -t nat -F