Настройка Интернет шлюза на CentOS 7

Процесс настройки шлюза (NAT) на системах UNIX, обычно, выполняется в несколько команд: включением перенаправления на уровне системы и настройкой firewall.

Настройка системы
Настройка брандмауэра
Проброс портов

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

vi /etc/sysctl.conf

И добавляем в него следующую строку:

net.ipv4.ip_forward=1

После применяем настройку:

sysctl -p /etc/sysctl.conf

В случае с единым сетевым интерфейсом больше ничего делать не потребуется — CentOS начнет работать как Интернет-шлюз.

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

Настройка брандмауэра
Рассмотрим настройку фаервола при помощи двух различных популярных утилит — firewalld и iptables.

Firewalld
Настройка выполняется для двух сетевых интерфейсов — ens32 (внутренний) и ens34 (внешний):

firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o ens34 -j MASQUERADE

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens32 -o ens34 -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i ens34 -o ens32 -m state --state RELATED,ESTABLISHED -j ACCEPT

systemctl restart firewalld

Iptables
Настройка выполняется из расчета, что внутренняя сеть имеет адресацию 192.168.0.0/24:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

/usr/libexec/iptables/iptables.init save

systemctl restart iptables

Проброс портов (Port Forwarding)
Необходим для перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть. Настройки отличаются в зависимости от способа управления брандмауэром netfilter.

Firewalld
firewall-cmd --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* где 25 — прослушиваемый внешний порт, для которого сработает перенаправление; tcp — используемый транспортный протокол; 8025 — на какой порт перенаправить запрос; 192.168.0.15 — IP-адрес сервера, на который отправляем запросы.

Разрешаем сам порт:

firewall-cmd --permanent --zone=external --add-port=25/tcp

Чтобы правило вступило в силу:

firewall-cmd --reload

Iptables
Настройка выполняется двумя командами:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 10.8.232.111 --dport 25 -j DNAT --to-destination 192.168.0.15:8025

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.0.15 --sport 8025 -j SNAT --to-source 10.8.232.111:25

или можно так:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 25 -j DNAT --to-destination 192.168.0.15:8025

iptables -A FORWARD -p tcp -d 192.168.0.15 --dport 8025 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

* где eth0 — внешний сетевой интерфейс.

Разрешаем порт:

iptables -I 1 INPUT -p tcp --dport 25 -j ACCEPT

Не забываем сохранить правила:

/usr/libexec/iptables/iptables.init save

или

service iptables save

Сейчас на сайте

Сейчас на сайте 0 пользователей и 0 гостей.