Установка и настройка xt_NAT

Приведу пример установки и настройки xt_NAT в Ubuntu Server 14.04 с версией ядра 4.4.0-142. На новых версиях ядра xt_NAT может не работать. По словам разработчика должно работать на Linux Kernel 3.18 и 4.1. Чтобы работало на новых версиях ядра, можно найти патчи.

Включим пересылку пакетов между интерфейсами, а также укажем в файле /etc/sysctl.conf:

cat /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.conf.all.forwarding=1

nano /etc/sysctl.conf
net.ipv4.conf.all.forwarding=1

Переключимся на root пользователя и установим необходимые компоненты

sudo -i
apt install xtables-addons-source

Скачаем xt_NAT:

git clone https://github.com/andrsharaev/xt_NAT.git

Также я сохранил его тут на всякий случай.

Выполним установку:

cd xt_NAT
make
make install
depmod -a

После установки xt_NAT, загрузим модуль с указанием диапазона IP адресов для NAT (не клиентской сети):

modprobe xt_NAT nat_pool=192.168.5.2-192.168.5.254

Пример выгрузки модуля:

modprobe -r xt_NAT

Можно еще передавать Netflow v5 статистику, для этого укажем адрес коллектора в «nf_dest», например:

modprobe xt_NAT nat_pool=192.168.5.2-192.168.5.254 nf_dest=192.168.10.10:2055

Отключим conntrack для трафика xt_NAT (где 192.168.55.0/24 это клиентская сеть):

iptables -t raw -A PREROUTING -s 192.168.55.0/24 -j CT --notrack
iptables -t raw -A PREROUTING -d <NAT Pool Net> -j CT --notrack

Добавим iptables правила чтобы использовать xt_NAT модуль для пользовательского трафика (eth0 — uplink интерфейс, eth1 — в сторону клиентов):

iptables -t raw -A PREROUTING -d <NAT Pool Net> -j NAT --dnat
iptables -A FORWARD -d 192.168.55.0/24 -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 192.168.55.0/24 -i eth1 -o eth0 -j NAT --snat

На втором сетевом интерфейсе который смотрит в сторону клиентов укажем IP адрес в /etc/network/interfaces или временно командой:

ifconfig eth1 inet 192.168.55.1 netmask 255.255.255.0

В файлах ниже можно посмотреть статистику и например рисовать по ней графики в Zabbix:
/proc/net/NAT/sessions (Proto SrcIP:SrcPort -> NatIP:NatPort)
/proc/net/NAT/users
/proc/net/NAT/statistics

Смотрите также мои статьи:
Настройка маскарадинга (NAT) в Ubuntu
Разница между MASQUERADE и SNAT

Оставьте комментарий

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