Внутренняя и внешняя сетевая конфигурация сервера Ubuntu 18.04

Внутренняя и внешняя сетевая конфигурация сервера Ubuntu 18.04

У меня возникла проблема с настройкой внутренней и внешней сети в Ubuntu 18.04 Server. Дело в том, что у меня есть устройство Gateway, на котором есть служба DHCP для аренды IP-адресов для подключенных к wlan устройств. IP-адрес устройства Gateway eth0 — 192.168.1.120, а устройство Gateway wlan0 имеет статический IP-адрес 10.10.0.1, а первый клиент wlan получает IP-адрес 10.10.0.2. Устройство Gateway eth0 имеет доступ к Интернету. Но устройства, подключенные к wlan0, должны иметь доступ только к службам устройства Gateway, например MySql или пользовательским API REST.

Правило 1: Устройство шлюза должно иметь доступ к Интернету.

[eth0]<-->[Интернет]

Правило 2: Устройства, подключенные к WLAN, должны иметь доступ только к службам устройств Gateway.

[WlanClient]<-->[wlan0]<-->[eth0]--||NoAccess||--[Интернет]

Я установил Ubuntu 18.04 Server и основные службы, и теперь я нахожусь в точке, где мне следует создать сетевые ограничения.

Я сделал следующие настройки, чтобы устройства, подключенные к wlan0, могли использовать службы устройств Gateway. Но также устройства, подключенные к wlan0, теперь имеют доступ в Интернет, который должен быть ограничен.

/etc/sysctl.conf

net.ipv4.ip_forward=1

Конфигурация iptables

iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables-save  > /etc/iptables/rules.v4
iptables-restore  < /etc/iptables/rules.v4

Может ли кто-нибудь помочь мне с настройкой?

решение1

Чтобы решить вашу проблему, вам нужно работать с FORWARDцепочкой таблиц filter. FORWARDТаблицы используются для фильтрации каждого пакета, который идет к хосту или от него. (Напротив, таблица INPUTдля входящего трафика, OUTPUTтаблица для исходящего трафика). На самом деле есть два подхода:

1/ Вы ограничиваете весь трафик и открываете его по мере необходимости:

iptables -t filter -P FORWARD DROP

iptables -t filter -A FORWARD [your rule #1 to match allowed streams(s)] -j ACCEPT

2/ Вы ограничиваете трафик только для тех устройств, доступ к которым вы хотите ограничить:

iptables -t filter -P FORWARD ACCEPT
iptables -t filter -A FORWARD [your rule #1 to match forbidden stream(s)] -j REJECT --reject-with admin-prohib

Обычно хорошей практикой с точки зрения безопасности является первый подход.

Связанный контент