debian - iptables не работает для разрешения одного конкретного порта

Разве [не] имеет смысл заменить старую команду service оберткой, которая вызывает servicectl [sic] вместо нее?

Да, но [...] обертка могла бы справиться с этим, сделав переход к systemd более плавным для пользователей.

... что, как отмечали другие в комментариях, уже давно было сделано.

Команда /usr/sbin/service в Debian 8 является частью пакета sysvinit-utils. Она находится там с 2009 года. Это специфичное для Debian дополнение к исходному пакету sysvinit, разработанное RedHat, и, как видно из сценария, она распознаёт как работу systemd, так и наличие заданий upstart, выдавая команды systemctl и initctl (через свои псевдонимы) соответственно. Это происходит с 2013 года.

service name action достаточно широко доступен даже на операционных системах, отличных от Linux. Он будет работать даже на большинстве BSD, поскольку у них тоже есть свои команды service. В пакете nosh также есть команда shim service, которая переводится как system-control action name. Но...

  • ... если выйти за пределы этого общего подмножества, совместимость будет гораздо ниже.
  • ... В OpenBSD нет команды service.
  • ... Команды BSD service имеют хорошо известные проблемы, о которых системные администраторы рассказывают истории десятилетиями.

Включение и отключение служб - похожая ситуация. Хотя программа SuSE chkconfig (доступная в комплекте для Debian и Ubuntu) очень отличается от программы Fedora (они даже написаны на совершенно разных языках программирования - один компилируемый, другой интерпретируемый), есть общий минимальный chkconfig name action синтаксис, с action - on или off. Но ...

  • ... опять же, за пределами этого общего подмножества совместимость меньше.
  • ... на BSD нет chkconfig, поскольку обычными инструментами для этого являются sysrc или более современные OpenBSD rcctl enable и rcctl disable. В пакете nosh есть chkconfig и rcctl, которые переводятся как system-control enable name и system-control disable name.
  • ... только Fedora chkconfig знает о systemd и действует как shim для systemctl enable и systemctl disable. SuSE chkconfig не имеет представления о systemd.

Дальнейшее чтение

1
21.08.2018, 04:19
1 ответ

iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
Это правило позволит пересылать все пакеты, идущие на порт 8080. Однако пакеты с порта 8080 (Ответы на пакет SYN )не пересылаются, если порт, делающий запрос, также не является портом 8080. Как упоминалось в одном комментарии, это, скорее всего, не так!

Вам понадобится второе правило:

iptables -A FORWARD -p tcp --sport 8080 -j ACCEPT

это правило разрешает пересылку всех пакетов, приходящих с порта 8080

в качестве рекомендации я бы добавил IP-адреса машин в правила, если вам нужно больше безопасности в вашей настройке, так как с этими 2 правилами кто-то может общаться с другим портом, если его исходный порт 8080.

поэтому мои окончательные правила будут:

iptables -A FORWARD -p tcp --sport 8080 -s IPOFMACHINEA -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -d IPOFMACHINEA -j ACCEPT

iptables -A FORWARD -p tcp --sport 8080 -s IPOFMACHINEB -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -d IPOFMACHINEB -j ACCEPT

Поскольку вы не указали IP-адреса, вам придется заменить их.

0
28.01.2020, 00:39

Теги

Похожие вопросы