Назад | Перейти на главную страницу

iptables centos блокирует один порт и разрешает все

Как мне создать правила iptables со следующими требованиями?

  1. Фильтрация трафика на порту 12001 для разрешения TCP / UDP
  2. Фильтр должен разрешать только один IP-адрес, отправляющий трафик на порт 12001. Любой другой IP-адрес НЕ разрешено отправлять любой трафик, но ТОЛЬКО для этого порта.
  3. Разрешен любой трафик для любых других портов (ПРИНЯТЬ ВСЕ)

ОС: Centos 6.5 / RH 6.5

Ответ на все такие вопросы в пути iptables правила процессов, т.е. выигрывает первый диспозитивный матч. Это означает, что вы сначала пишете свое наиболее конкретное правило, переходя к наименее конкретному; например:

iptables -A INPUT -p tcp --dport 12001 -s a.b.c.d -j ACCEPT
iptables -A INPUT -p tcp --dport 12001 -j REJECT
# and similarly for UDP, then...
iptables -A INPUT -j ACCEPT

Первый разрешает трафик с указанного предпочтительного адреса (здесь a.b.c.d) на указанный порт (12001); второй отклоняет весь другой трафик к этому порту; третий позволяет все остальное.

В результате правило 2 не обязательно должно содержать исключение для одобренного трафика, поскольку правило 1 имеет уже разрешил это; разрешенный трафик никогда не увидит правило 2, поэтому оно вас не беспокоит. Точно так же правило 3 не должно иметь дело с отказом от большей части трафика на порт 12001, потому что правило 2 уже имеет дело с этим.