Firewall-cmd Fedora показывает больше доступных сервисов, чем настроено

Так что да, настройка брандмауэра Fedora 20-cmd. Пытался ограничить входящий трафик только http, https и ssh. Тем не менее, машина по-прежнему реагирует на пинги, а команда --get-service показывает подробный список вещей, которые я не использую.

Почему отключение?

Является ли команда --get-service точной или команда --list-services точной?

Если последнее, почему пинг проходит?

[root@build-node httpd]# firewall-cmd --get-service
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
[root@build-node httpd]# firewall-cmd --get-active-zone
public
  interfaces: eth0 eth1 eth2
[root@build-node httpd]# firewall-cmd --zone=public --list-services
http https ssh

Кроме того, выдержки из iptables -L -n.

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
INPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0
INPUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
INPUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain INPUT_ZONES (1 references)
target     prot opt source               destination
IN_public  all  --  0.0.0.0/0            0.0.0.0/0           [goto]
IN_public  all  --  0.0.0.0/0            0.0.0.0/0           [goto]
IN_public  all  --  0.0.0.0/0            0.0.0.0/0           [goto]
IN_public  all  --  0.0.0.0/0            0.0.0.0/0           [goto]

Chain IN_public_allow (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 ctstate NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443 ctstate NEW
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22 ctstate NEW

1 ответ

Решение

--get-service показывает все службы, о которых знает firewalld, а не те, для которых вы открыли порты.

--list-services показывает те, для которых вы открыли порты.

Вы можете увидеть в iptables перечисляя, что открыты только порты 22, 80 и 443, что вы и сказали.

Наконец, о пингах: все ICMP по умолчанию разрешены с помощью firewalld (так как обычно плохая идея блокировать его, если вы действительно не знаете, что делаете). Если вы действительно хотите "заблокировать пинг", то вам нужно сделать это явно. Ты можешь использовать --get-icmptypes чтобы увидеть список типов ICMP, о которых знает firewalld, и --add-icmp-block заблокировать один из них. Убедитесь, что вы находитесь на консоли машины на случай, если вы заперетесь.

Другие вопросы по тегам