Я хочу закрыть все порты, кроме 22 на интерфейсе enp0s3
. У меня netcat прослушивает порт 1234 в целях тестирования. Вот где я застрял:
$ sudo firewall-cmd --state
running
$ sudo firewall-cmd --zone=drop --list-all
drop (default, active)
interfaces: enp0s3
sources:
services: ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
$ nmap 10.0.2.15
Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-24 06:36 UTC
Nmap scan report for 10.0.2.15
Host is up (0.00099s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
1234/tcp open hotline
Как видите, nmap показывает порт 1234 как открытый, но я добавил интерфейс в падение зона в firewalld. Что я пропустил?
Вы пытались сделать что-то настолько плохое, что firewalld просто не позволит вам это сделать.
По умолчанию правило ввода, разрешающее весь трафик с localhost, появляется в брандмауэре очень рано и имеет приоритет над все определяемые пользователем правила. Он не отображается в инструментах интерфейса командной строки firewalld и не может быть изменен или удален с их помощью.
Теоретически возможно, что у вас может быть реальная потребность в этом, но это чрезвычайно маловероятно (и обратите внимание, что вы можете считать у вас есть реальная потребность, а на самом деле ее нет). Брандмауэр localhost - отличный способ взломать всю вашу систему, поскольку многие программы полагаются на связь localhost, поэтому вы не можете легко отменить это.