一般为了主机安全等因素,我们会禁止主机被ping通测试,这种禁止的方法比较多,以下几种方法是自己实践的过程中总结的经验,在此记录以作学习笔记。
1、在服务器安全方面考虑我们会禁止一些默认的端口,在filter表的input链中将默认规则设置为drop即可,然后将自己需要相关的端口以及服务开启即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
iptables -t filter -P INPUT DROP
#默认规则的设置 设置此规则时需要注意远程端口规则
[root@localhost ~]
# iptables -L
Chain INPUT (policy DROP)
target prot opt
source
destination
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:
ssh
这时检查
ping
的命令
ping
192.168.31.84
PING 192.168.31.84 (192.168.31.84) 56(84) bytes of data.
#结果是不通的
将默认规则改为开启或者开启icmp协议时,将能
ping
通。
1、开启icmp协议后即可
ping
通
iptables -t filter -I INPUT -p icmp -j ACCEPT
ping
192.168.31.84
PING 192.168.31.84 (192.168.31.84) 56(84) bytes of data.
64 bytes from 192.168.31.84: icmp_seq=100 ttl=128
time
=0.605 ms
64 bytes from 192.168.31.84: icmp_seq=101 ttl=128
time
=0.736 ms
64 bytes from 192.168.31.84: icmp_seq=102 ttl=128
time
=0.754 ms
64 bytes from 192.168.31.84: icmp_seq=103 ttl=128
time
=0.696 ms
|
以上设置默认规则为拒绝的方式,不仅不能让别人ping通,同时自己也不能ping通其他的主机,这种方式我们用的比较少,我们可以采取以下的方式,
1
2
3
4
5
6
7
|
echo
"net.ipv4.icmp_echo_ignore_all=1"
>>
/etc/sysctl
.conf
[root@localhost ~]
# tail -1 /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
[root@localhost ~]
#
sysctl -p
这时我们测试时,会发现我们能
ping
通其他主机,但是其他主机不能
ping
通,
|
下面的方式是我们根据防火墙规则,以及根据防火墙规则优先级别将允许ping通的放在前面,不允许ping通的放在后面
本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1859177,如需转载请自行联系原作者