iptables 语法iptables filter表小案例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables 语法iptables filter表小案例相关的知识,希望对你有一定的参考价值。
1、iptables 语法
查看规则,输入命令 iptables -nvL ,回车,见下图,
现在重启下,再查看,见下图,
可以看到,规则没有改变。那么规则在哪里保存的呢?见下图,
清空规则,使用命令 iptables -F ,见下图,
清空规则之后,使用命令 iptables -nvL,就看不到默认规则了,但是配置文件 /etc/sysconfig/iptables 里面的内容没有改变。也就是说,想要把当前的规则保存到配置文件里,还需要执行一个命令 service iptables save ,这样清空的规则才会生效。如果不保存的话,可以重启 iptables ,再加载回来,见下图,
也就是说,重启服务器或是重启 iptables 规则,都会去加载配置文件上的规则。
这些默认的规则都在 filter 这个表上,-t 是指定表,不使用 -t 的话,默认就是 filter 这个表。nat 表里面都是没有规则的,见下图,
service iptables save 保存规则。当我们把规则写完之后,仅仅在当前内存中生效。想要重启后还依然生效,就要做这个保存规则的操作。
-Z (大写)可以把计数器清零,具体操作见下图,
注意上图左边的红色框框的内容,一开始是有数据的,执行了 -Z 的命令之后,就清零了。然后一会会之后又有数据了,因为每时每刻都在通信。
现在给filter表增加一条规则,输入命令 iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP ,回车,见下图,
这条命令省略了 -t ,默认为 filter 表;-A 表示增加一条规则,另外还有-I (大写的i)表示插入一条规则,-D删除一条规则;INPUT 表示针对的链,还可以是OUTPUT或者FORWORD;-s 表示后面跟着指定的来源IP,-p 表示协议(tcp, udp, icmp),--sport/--dport 后跟来源端口/目标端口;-d 后跟目的IP(主要针对内网或者外网);-j 后跟动作(DROP即把包丢掉,REJECT即包拒绝;ACCEPT即允许包)。上图中,最下面的红色框框内容就是刚刚增加上去的规则。
总结一下各个选项的作用:
-A/-D :增加删除一条规则;
-I :插入一条规则,其实跟-A的效果一样;
-p :指定协议,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目标端口;
--sport :跟-p一起使用,指定源端口;
-s :指定源IP(可以是一个ip段);
-d :指定目的IP(可以是一个ip段);
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;
-i :指定网卡(不常用,但有时候能用到);
还有一种用法 -I(大写的i),输入命令 iptables -I INPUT -p tcp --dport 80 -j DROP ,回车,见下图,
可以看到使用 -I 选项,规则就插入到第一行了。
既然可以增加和插入,肯定也可以删除,使用选项 -D ,输入命令 iptables -D INPUT -p tcp --dport 80 -j DROP ,回车,见下图,
可以看到,第一条插入的规则没有了。同样的,输入命令 iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP ,回车,见下图,
可以看到,增加的最后一条命令也没有了。
这边做一个假设,假如忘记掉之前增加或是插入的规则了,要怎么删除这些规则呢?先把两条规则加上去,见下图,
接着往下操作,输入命令 iptables -nvL --line-number ,回车,见下图,
先给每一行前面增加显示行号,然后再针对行号做操作,输入命令 iptables -D INPUT 7 ,回车,见下图,
可以看到增加和插入的规则,已经成功删除了。再看一下行号,见下图,
可以看到,行号果然还是少了2行的。
还有一个选项 -P(大写), 表示预设策略,这是默认的规则,在PuTTY上远程登录的话,输入命令 iptables -P OUTPUT DROP ,回车,会发现整个断掉了,什么也执行不了,只能重启。-P后面跟链名,策略内容或者为DROP或者为ACCEPT,默认是ACCEPT。
所以要注意:如果你在连接远程服务器,千万不要随便敲这个命令,因为一旦你敲完回车你就会断掉。
这个策略一旦设定后,只能回到原始的虚拟机上,使用命令 iptables -P OUTPUT ACCEPT ,回车,才能恢复成原始状态。
上面这一步 -P 的选项不要随意操作,这边不演示了。
2、iptables filter表小案例
总结:
iptables -nvL 查看 iptables 规则
service iptables restart 重启 iptables 规则
cat /etc/sysconfig/iptables 查看 iptables 配置文件
iptables -F 清空规则
-t 是指定表,不使用 -t 的话,默认就是 filter 这个表
service iptables save 保存规则
-Z (大写) 可以把计数器清零
iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 给filter表增加一条规则
iptables -I INPUT -p tcp --dport 80 -j DROP 在第一行插入一条规则
iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 删除增加的规则
iptables -D INPUT -p tcp --dport 80 -j DROP 删除插入的规则
iptables -nvL --line-number 每一行规则前面加上行号
iptables -D INPUT 7 删除行号为 7 的规则
iptables -P OUTPUT DROP 删除默认规则,不要随意执行
iptables -P OUTPUT ACCEPT 恢复默认规则
以上是关于iptables 语法iptables filter表小案例的主要内容,如果未能解决你的问题,请参考以下文章