Я хочу закрыть все порты, кроме 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 как открытый, но я добавил интерфейс в зону drop в firewalld. Что я пропустил?
Вы пытались сделать что-то настолько плохое, что firewalld просто не позволит вам это сделать.
По умолчанию правило ввода, разрешающее весь трафик с localhost, выглядит очень в самом начале брандмауэра и имеет приоритет над всеми пользовательскими правилами. Это не отображается в инструментах командной строки firewalld и не может быть изменено или удалено с их помощью.
Теоретически возможно, что у вас может быть реальная потребность в этом, но это чрезвычайно маловероятно (и обратите внимание, что вы можете думаю у вас есть реальная потребность, а на самом деле нет). Брандмауэр localhost - отличный способ взломать всю вашу систему, так как многие программы полагаются на связь localhost, поэтому вы не можете легко отменить это.