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

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

Тематические термины: интернет шлюз, CentOS, NAT.

Процесс настройки шлюза (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

Настройка выполняется из расчета, что Интернет настроен через интерфейс ens160, а внутренняя сетя через ens32:

iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE

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

iptables -A FORWARD -i ens32 -o ens160 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i ens32 -o ens160 -j ACCEPT

 Сохраняем правила:

yum install iptables-services

service iptables save

Проброс портов (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-адрес сервера, на который отправляем запросы.
* также обратите внимание, что в команде мы используем зону external, но в вашей среде она может и не использоваться. Посмотреть список активных зон можно командой firewall-cmd --get-active-zones.

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

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

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

firewall-cmd --reload

Iptables

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

а) Способ 1:

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

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

б) Способ 2:

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

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

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

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

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

* обратите внимание, что мы разрешаем порт, на который переводим запрос, так как цепочки POSTROUTING и PREROUTING работают до цепочки FILTER, а потому открывать нужно не входящий порт (25), а тот, на который назначается пакет (8025).

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

service iptables save

Читайте также

1. Настройка firewalld в CentOS.

2. Настройка netfilter с помощью iptables.

# CentOS # Интернет # Серверы # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет