Мне нужно сделать быстрый и грязный NAT из коробки Ubuntu 10.10. Просто «эта сторона подключена через NAT с DHCP, раздающим 192.168.x.0 / 24» и «эта сторона шлюзы в Интернет», и больше ничего интересного. Кажется, есть много вариантов с разной степенью документации. Как это сделать проще всего?
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/10-network-security.conf
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o externaleth -j SNAT --to externalip
apt-get install dhcp3-server
gedit /etc/default/dhcp3-server
interfaces="internaleth1" #eth2 or eth3 or whatyouhave :D
gedit /etc/dhcp3/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1; #yours itnernal ip
option subnet-mask 255.255.255.0;
option domain-name "mylan.com";
option domain-name-servers 192.168.0.1;
range 192.168.0.2 192.168.0.254;
}
apt-get install dns-masq
service dhcp3-server restart
На самом деле я делаю именно это - пару лет старая мини-башня HP служила маршрутизатором моей домашней сети, пока она не сгорела из-за отключения электроэнергии (аппаратное обеспечение не стоит устранять неисправность); Вскоре я буду создавать совершенно новую систему для этой же цели, так что обязательно напишу инструкции, как я это сделаю.
А пока я укажу вам на тот же ресурс, который использую я: Shorewall, и, в частности, инструкции для брандмауэр с двумя интерфейсами. В документации сайта также есть аналогичные статьи для настройки с одним и тремя интерфейсами, поэтому выберите ту, которая лучше всего соответствует вашим потребностям. Я считаю, что использование Shorewall намного проще и интуитивно понятнее, чем прямое управление iptables (Shorewall на самом деле является просто слоем конфигурации, который находится поверх iptables, поэтому конечный результат очень похож, за исключением того, что он обрабатывает много основных, низкоуровневые вещи, о которых вы даже не догадывались, например smurfs (пакеты с широковещательным адресом в качестве источника) и martians (пакеты с невозможными адресами источника)).