我用的是:
# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
# rpm -q firewalld
firewalld-0.3.9-11.el7.noarch
#我试图阻止特定IP地址(10.52.208.220)从我的系统到达它,但无法这样做:
在此之前:
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (default, active)
interfaces: eno1
sources:
services: dhcpv6-client high-availability http https ssh
ports: 5666/tcp 3306/tcp 5900/tcp 9001/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
# ping -c1 wcmisdlin01
PING wcmisdlin01.uftmasterad.org (10.52.208.220) 56(84) bytes of data.
64 bytes from wcmisdlin01.uftmasterad.org (10.52.208.220): icmp_seq=1 ttl=64 time=0.379 ms
--- wcmisdlin01.uftmasterad.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.379/0.379/0.379/0.000 ms
#之后:
# firewall-cmd --add-rich-rule='rule family="ipv4" destination address="10.52.208.220" protocol value="icmp" reject'
success
# firewall-cmd --list-all
public (default, active)
interfaces: eno1
sources:
services: dhcpv6-client high-availability http https ssh
ports: 5666/tcp 3306/tcp 5900/tcp 9001/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
rule family="ipv4" destination address="10.52.208.220" protocol value="icmp" reject
# ping -c1 wcmisdlin01
PING wcmisdlin01.uftmasterad.org (10.52.208.220) 56(84) bytes of data.
64 bytes from wcmisdlin01.uftmasterad.org (10.52.208.220): icmp_seq=1 ttl=64 time=0.266 ms
--- wcmisdlin01.uftmasterad.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.266/0.266/0.266/0.000 ms
# IPTABLES(8) - iptables/ip6tables — administration tool for IPv4/IPv6 packet filtering and NAT
# iptables --list IN_public_deny
Chain IN_public_deny (1 references)
target prot opt source destination
REJECT icmp -- anywhere wcmisdlin01.uftmasterad.org ctstate NEW reject-with icmp-port-unreachable
# 我做错了什么?
发布于 2015-08-27 18:08:19
在检查整个iptables -n --list输出时,(最终)从INPUT链调用IN_public_deny,这与从系统发送到如此不可否认的主机的数据包无关;相反,这些数据包将通过OUTPUT链路由(如果防火墙是源和目的地之间的路由器或桥梁,则可能是FORWARD )。firewalld.richlanguage(5)似乎没有提供任何方法来指定规则必须进入OUTPUT (或FORWARD)链,因此直接规则的“最后”选项似乎是一种解决方案。
firewall-cmd --direct --add-rule ipv4 filter OUTPUT_direct 0 -p icmp -d 10.52.208.220 -j REJECT --reject-with icmp-host-prohibited(虽然我通常更喜欢放弃(可能是以速率限制的方式登录)而不是发送ICMP拒绝,就好像即将被阻塞的主机正在发疯一样,将ICMP响应数据包扔回有负担的网络可能会使事情变得越来越糟……)
https://serverfault.com/questions/717266
复制相似问题