Роутер и проброс портов на Astra Linux «Смоленск»

Краткое руководство по настройке роутера в связке UFW + dnsmasq, а также проброс портов по IP-адресам машин в локальной сети на примере Astra Linux «Смоленск»

Исходные данные

Имеем на машине 2 сетевых интерфейса:

  • eth0 — для внешней сети 192.168.1.0/24
  • eth1 — для внутренней сети 192.168.100.0/24

Также у нас есть шлюз во внешней сети. Это маршрутизатор с IP-адресом 192.168.1.1

Наша задача — настроить доступ в Интернет для внутренней сети.

Для этого в первую очередь открываем файл настроек сетевых интерфейсов /etc/network/interfaces

# nano /etc/network/interfaces

и зададим конфигурацию для внутренней сети:

auto eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255

Затем откроем файл /etc/sysctl.conf

# nano /etc/sysctl.conf

и в нём раскомментируем строку:

net.ipv4.ip_forward=1

и применим изменения

# sysctl -p

После этого проверим статус запуска ufw

# ufw status

по умолчанию он будет отключён, поэтому включим его

# ufw enable

и проверим

# ufw status

Зададим правила файрволла по умолчанию

# ufw default deny incoming
# ufw default allow outgoing
# ufw default allow routed
# ufw reload
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
Anywhere on eth1           ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
Anywhere (v6) on eth1      ALLOW IN    Anywhere (v6)

Далее переходим к файлу с правилами /etc/ufw/before.rules

# nano /etc/ufw/before.rules

в самом конце добавим строчки:

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
COMMIT

После этого перезапустим ufw методом отключения и включения

# ufw disable
# ufw enable

Теперь установим службу DNS и DHCP-серверов dnsmasq

# apt install dnsmasq

проверим её статус

# systemctl status dnsmasq

скорее всего, после установки она будет активна.

Затем откроем файл конфигурации dnsmasq

# nano /etc/dnsmasq.conf

и в самом конце файла пропишем такие строки:

domain-needed
bogus-priv
interface=eth1
resolv-file=/etc/resolv.conf
dhcp-range=192.168.100.101,192.168.100.200,24h
cache-size=150

Перезагрузим службу dnsmasq

# systemctl restart dnsmasq

и все изменения должны примениться.

Для проброса портов на машины в локальной сети необходимо открыть файл конфигурации правил

# nano /etc/ufw/before.rules

и в нём после строк

*nat
:POSTROUTING ACCEPT [0:0]

добавить такие:

-A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.11:1234
-A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.12:5678

Далее запустим команды ufw для проброса этих портов

# ufw allow proto tcp from any to 192.168.100.11 port 1234
# ufw allow proto udp from any to 192.168.100.12 port 5678

и перезагрузим службу ufw

# ufw reload

Здесь:

  • tcp и udp — протоколы
  • 1234 и 5678 — номера портов
  • 192.168.100.11 и 192.168.100.12 — IP-адреса машин в локальной (внутренней) сети

В итоге последний раздел файла /etc/ufw/before.rules должен выглядеть примерно так:

*nat
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.11:1234
-A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.12:5678
-A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
COMMIT

Готово! Теперь машина с ОС Astra Linux полноценно работает в режиме шлюза и маршрутизатора.

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

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