Настраиваем SNAT на Ubuntu 18.04

Для того чтобы организовать шлюз на нашем Linux сервере, для организации через него доступа к Интернету для наших локальных пользователей, нужно разрешить проброс пакетов через наш сервер, делается это следующим образом.

vim /etc/sysctl.conf

в нем находим строчку

#net.ipv4.ip_forward=0

она закоментированна, # вначале строки указывает на то, что это комментарий. Меняем ее на это:

net.ipv4.ip_forward=1

таким образом мы после перезагрузки компьютера разрешаем проброс пакетов через наш компьютер, с одного интерфейса на другой и обратно.
Но это еще не все, для того чтобы лишний раз не перезагружать компьютер, можно сразу же применить это правило на работающей машине, пишем:

#echo 1 > /proc/sys/net/ipv4/ip_forward

таким образом, мы разрешим проброс пакетов прямо сейчас, без перезагрузки и можем дальше настраивать наш сервер.

После того как мы разрешили пробрасывать пакеты с одного интерфейса на другой, нам понадобится утилита iptables. Есть два типа SNAT, когда у нас постоянный внешний IP адрес, и когда у нас динамический внешний IP адрес. В первом случае у нас допустим есть статический IP адрес 185.10.10.2, поэтому мы выполняем следующую команду.

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 185.10.10.2

Эта команда перенаправляет все пакеты с локальной сети в Интернет.
Чтобы разрешить пользоваться Интернетом только отдельные компьютер с IP адресом 172.31.99.2 то делаем следующее:

iptables -t nat -A POSTROUTING -s 172.31.99.2/32 -o eth1 -j SNAT --to 185.10.10.2

т.е. через параметр -s IP добавляем источник.

iptables -t nat -A POSTROUTING -o eth1 -p tcp -j SNAT --to 185.10.10.2

тут мы добавили новый параметр, давайте выведем все это в что-то типа таблички

iptables
    -t nat
    -A POSTROUTING
    -s 172.31.99.2/32
    -o eth1 
    -p tcp
    -j SNAT --to 185.10.10.2

-s это IP адрес источника запроса, т.е. компьютера в локальной сети
-o это интерфейс, который смотрит в сторону Интернета
-p tcp это протокол, в нашем случае TCP
-j SNAT … это само правило, которое будет действовать в случае, если фильтр совпал с пролетающим мимо пакетом

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *