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
заблокировать один из них. Убедитесь, что вы находитесь на консоли машины на случай, если вы заперетесь.