我之前还会进行禁止ping的设置。
1. 使用 iptables 禁止ping
- 查看当前iptables规则:
- iptables -L -n
- 这条命令可以列出当前iptables的规则,-L表示列出规则,-n表示以数字形式显示 IP 地址和端口号,而不是解析为主机名和服务名。
- 禁止 ping(入站 ICMP Echo Request):
- iptables -A INPUT -p icmp --icmp - type 8 -j DROP
- 这里-A INPUT表示在INPUT链(用于处理进入本机的数据包)的末尾添加一条规则。-p icmp指定协议为 ICMP,--icmp - type 8表示 ICMP 类型为 8(即 Echo Request),-j DROP表示将匹配的数据包丢弃。
- 保存iptables规则(如果需要永久生效):
- 对于不同的 Linux 发行版,保存iptables规则的方式不同。
- 在 CentOS 等基于 RHEL 的系统中,可以使用service iptables save命令来保存规则。这条命令会将当前的iptables规则保存到/etc/sysconfig/iptables文件中,这样在系统重启后规则依然生效。
- 在 Ubuntu 等 Debian 系系统中,需要安装iptables - persistent软件包。安装后可以使用iptables - save > /etc/iptables/rules.v4(对于 IPv4 规则)来保存规则,这样在系统重启后也能恢复规则。
- 恢复 ping 功能
如果要恢复 ping 功能,可以删除刚才添加的禁止 ping 的规则。使用iptables -D INPUT -p icmp --icmp - type 8 -j DROP命令。其中-D INPUT表示从INPUT链中删除规则,其他参数和添加规则时相同。
2. 使用 firewalld 禁止 ping
- 查看firewalld状态:
- systemctl status firewalld
- 这条命令可以查看firewalld防火墙的状态,包括是否正在运行等信息。
- 禁止 ping:
- 对于firewalld,可以通过设置区域规则来禁止 ping。例如,对于默认的public区域,可以使用firewalld - cmd --permanent --zone = public --add - rich - rule='rule family="ipv4" protocol="icmp" drop'
- 这里--permanent表示永久设置(需要重新加载firewalld才能生效),--zone = public指定操作的区域为public,--add - rich - rule用于添加一条复杂的规则,在这个规则中rule family="ipv4" protocol="icmp" drop表示对于 IPv4 协议的 ICMP 流量进行丢弃操作。
- 重新加载firewalld使规则生效:
- firewalld - cmd --reload
恢复 ping 功能
要恢复 ping 功能,可以删除刚才添加的禁止 ping 的规则。使用firewalld - cmd --permanent --zone = public --remove - rich - rule='rule family="ipv4" protocol="icmp" drop',然后重新加载firewalld(firewalld - cmd --reload)。
3. 使用UFW禁止ping
- 要禁止 ping,需要阻止 ICMP 的 Echo Request 数据包。可以使用以下 UFW 命令:
- sudo ufw deny in icmp
- 这条命令会拒绝所有入站(in)的 ICMP 数据包,从而禁止其他主机 ping 本机。
- 如果要恢复 ping 功能,可以使用以下命令:
- sudo ufw delete deny in icmp
- 这条命令会删除之前设置的拒绝入站 ICMP 数据包的规则,这样其他主机就可以再次 ping 本机了。
在网上摘抄了一下,希望有用。