Сышышь ты, выходи сюда,
поговорим !

Главная Новости

Простейший Nat в linux с помощью iptables

Опубликовано: 01.09.2018

видео Простейший Nat в linux с помощью iptables

7.Linux для начинающих. Межсетевой экран

Очень часто бывает нужен простой Nat чтобы дать нескольким другим компьютерам доступ в сеть. Конечно, можно поставить squid или vpn сервер, но зачем, когда можно более просто, и лаконично дать доступ? Этот небольшой пост как раз об этом. Когда я был "мал да зелен", и приобрёл второй компьютер, я зачем-то сразу полез ставить squid. Опыта было мало, а сделать нужно было. В итоге после недели мучений, я это дело бросил. Опыта и знаний явно не хватало. С iptables я тогда был незнаком, поэтому оставил это дело, и решил купить роутер, но тут один знакомый админ со стажем, подсказал мне как легко, и просто можно "раздать" сеть.



Для начала, включим форвардинг в ядре если не включен:

su echo 1 \> /proc/sys/net/ipv4/ip\_forward

Для того, чтобы ядро загружалось всегда с включенным форвариднгом надо открыть файл /etc/sysctl.conf (от супер пользователя - root), и в него добавить или изменить имеющуюся строчку:

Фактически сам nat делается одной командой:


Настройка firewall в Debian 9 (iptables)

sudo iptables -t nat -I POSTROUTING -s 192.168.8.1 -j MASQUERADE

Этой командой мы делаем "полный nat" для компьютера с адресом 192.168.8.1. Полный в том смысле, что всё, что видит сервер (тот, на котором nat), то видит и клиент. Если компьютеров несколько, и находятся они в одной подсети, то можно указать диапазон адресов с помощью маски:

sudo iptables -t nat -I POSTROUTING -s 192.168.8.0/255.255.255.0 -j MASQUERADE

Маска 255.255.255.0 разрешает 254 адреса (0 в данном случае адрес сети, 255 - broadcast адрес). Т.е. все адреса от 192.168.8.1 до 192.168.8.254. Для расчёта диапазона адресов, рекомендую использовать какой либо из интернет калькуляторов. Например этот .

В случае если сервер видит несколько сетей, а необходимо дать доступ к одной, то это можно сделать так:

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.8.0/255.255.255.0 -j MASQUERADE

На компьютере "клиенте", чтобы появилась сеть, необходимо в качестве шлюза по умолчанию (gateway), указать адрес nat сервера.

Рекомендую использовать этот способ только в домашней локальной сети. В общественной сети легко можно подменить ip адрес.