查看规则:
[root@www ~]# iptables –t filter –L #查看filter表,因为iptables表只能在INPUT、FORWORD、OUTPUT三个地方使用,故而就会显示这三个地方的filter表。
如果我们查看的是mangle表的话,就是这样,mangle在五个勾子函数都只可以使用,如下图:
更改默认规则:
-P(大),在某一个勾子函数的某一个位置指定默认规则,比如:
iptabls -t filter -P FORWARD DROP
#-t后面跟跟的是表,表也就是功能,而P后面跟的是位置,这里的位置就是forward的那个位置,这个命令的意思就是设置forward这个位置上的filter(过滤)功能的默认策略为拒绝,效果如下:
增加规则
设置INPUT位置的默认规则为DROP,放行22(ssh服务)端口,怎样实现?
在上次考试的时候就有这么一题,不过当时那是在centos7上,iptables不能使用,使用systemctl的命令是一长串,在centos7上使用图开化比较简单,正面演示一下在centos6上是怎样使用的?
iptables -t filter -P INPUT DROP
iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT #-I(大i)是添加规则的意思,默认添加在第一条
不让任何人ping通服务器的eth0接口:
不让别的Ping通自己,肯定要在input位置上设置了。
iptables -t filter -I INPUT -i eth0 -p icmp -j DROP
增加规则时要注意顺序:
iptables的匹配顺序与网络设置的ACL相似,从上向下匹配,一旦命中了之后就执行后面的动作,并不再向下匹配;如果匹配不上,就使用默认策略,这种机制很是常见。
由此,我们在配置时应当使用这样的套路:范围较小的放置在前面,范围较广的尽量向后放。
我们使用-I选项默认是添加到了第一条,假如说我们不想添加到了第一条,我们想把规则添加到最后一条,该当如何?非常的简单,只要把-I替换成-A即可,如下所示:
iptables -t filter -A INPUT -p tcp -s 192.168.10.0/24 --dport 53 -j ACCEPT
-n是以端口的数值来显示,这对我们专业人士来看更加直观。
-s指定源网段。
那么上面这条命令的意思就是:“允许192.168.10.0/24网段来访问本机的53端口(默认即是tcp)”
删除规则(承接上节)
删除在上一小节当中在INPUT定义的第三条规则(D):
清空INPUT所有的规则:
iptables -t filter -F INPUT
实现我可以ping通别人,但别人不能ping通我
其实实现这个需要很简单,前提是我们需要了解ICMP的通信过程,ICMP一次回显包括一次请求和一次响应,我们可以这么做,我们在INPUT位置上不让任何的请求包通过,这样别人的请求包就进不来,这样就能实现别人ping不通自己,那么自己要ping通别人要怎样实现呢?这也简单呀!别人ping自己与自己ping别人的流量路径并不相同,自己ping别人走的是OUTPUT这个位置,所以我们只需要在OUTPUT这个位置上做一些配置就好了,怎样做呢?我们这里允许ICMP的请求包通过。
第一种方法:
在INPUT禁止请求包通过,这样别人就ping不通自己,允许回复包通过(默认即通过),所以仅设置INPUT禁止请求包通过: iptables -I INPUT -p icmp -m icmp --icmp-type echo-request -j DROP
在OUTPUT允许请求包通过:iptables -I OUTPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
第二种方法:
我们要ping通别人,就要求OUTPUT允许请求包通过和INPUT允许回复包通过,这两条默认都是允许的。
在OUTPUT上禁止本机的回复包出去,这样别人就ping通我们了:iptables -I OUTPUT -p icmp --icmp-type echo-reply -j DROP
保存配置到配置文件:
/etc/init.d/iptables save
以上这些在我们平时使用时就差不多够用了,其实iptabls的功能多着呢,在博客里就不多做赘述了,等到大家用的时候再去查,想必也是来的及的,毕竟值得学的技能都值得慢慢学,慢慢的迭代,次第花开!
转载于:https://blog.51cto.com/13778749/2160901