Роутер на Gentoo. Проброс портов

Эта статья — продолжение предыдущей. В ней описаны команды iptables для проброса портов по IP-адресам в локальной сети на роутере под управлением ОС Gentoo GNU/Linux.

Задача такая:

В нашей локальной сети имеется несколько серверов, выполняющих различные функции, к которым также должен быть доступ через Интернет. Например:

  • SSH, который будет использоваться для администрирования самого файрволла
  • СУБД PostgreSQL с веб-сервером Apache для phpPgAdmin
  • СУБД MySQL или MariaDB
  • FTP-сервер
  • доступ по протоколу RDP к Windows Server (терминальное соединение)
  • защищённый веб-сервер (к примеру — с облачным хранилищем OwnCloud или NextCloud на борту)
  • и т.д., может быть всё, что угодно…

Для удалённой работы (удалённые офисы, командировки, отпуск, больничный, карантин или неблагополучная эпидемиологическая ситуация) необходимо настроить файрволл так, чтобы все эти машины можно было использовать из дома или любой точки, где есть доступ в Интернет.

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

Затем, используя консоль, вводим команды для проброса портов:

для SSH — IP-адрес 192.168.55.1 (сам роутер)

ничего запускать не нужно, он по умолчанию пробросит порт сам себе.

для сервера с СУБД PostgreSQL и phpPgAdmin — IP-адрес 192.168.55.10

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 5432 -j DNAT --to-destination 192.168.55.10:5432
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 192.168.55.10:80
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 443 -j DNAT --to-destination 192.168.55.10:443
# iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
# iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

для FTP-сервера — IP-адрес 192.168.55.11

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 192.168.55.11:21
# iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

для Windows-терминала RDP — IP-адрес 192.168.55.12

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 3389 -j DNAT --to-destination 192.168.55.12:3389
# iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 3389 -j ACCEPT

для защищённого веб-сервера — IP-адрес 192.168.55.13

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 8443 -j DNAT --to-destination 192.168.55.13:8443
# iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT

ну и, конечно же, сохраняем эти правила в файл /var/lib/iptables/rules-save

# iptables-save > /var/lib/iptables/rules-save

Перезапускаем службу iptables

# rc-service iptables restart

или перезагрузим машину

# shutdown -r now

Теперь все правила iptables — в активном действии. Это можно проверить, открыв файл /var/lib/iptables/rules-save

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

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