web-dev-qa-db-ja.com

Fedoraのfirewall-cmdは、構成されているよりも多くの利用可能なサービスを表示します

ええ、Fedora 20のfirewall-cmdを設定します。着信トラフィックをhttp、https、およびsshのみに制限しようとしました。ただし、マシンは引き続きpingに応答し、-get-serviceコマンドは使用しないもののリストを表示します。

なぜ切断するのですか?

--get-serviceコマンドは正確ですか、それとも--list-servicesコマンドは正確ですか?

後者の場合、なぜpingが通過するのですか?

[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
3
user2700751

--get-serviceは、ポートを開いたサービスではなく、firewalldが認識しているすべてのサービスを示します。

--list-servicesは、ポートを開いたものを示します。

iptablesリストで、ポート22、80、および443のみが開いていることがわかります。これは、あなたが望んでいたことです。

最後に、pingについて:すべてのICMPはデフォルトでfirewalldで許可されています(通常、reallyが何をしているかを知らない限り、それをブロックすることは悪い考えです)。本当に「pingをブロックする」場合は、明示的に行う必要があります。 --get-icmptypesを使用して、firewalldが認識しているICMPタイプのリストを表示し、--add-icmp-blockを使用してそれらの1つをブロックできます。ロックアウトした場合に備えて、マシンのコンソールにいることを確認してください。

5
Michael Hampton