iptables 语法、iptables filter表小案例

1、iptables 语法

iptables 语法、iptables filter表小案例

查看规则,输入命令 iptables -nvL ,回车,见下图,
iptables 语法、iptables filter表小案例
现在重启下,再查看,见下图,
iptables 语法、iptables filter表小案例
可以看到,规则没有改变。那么规则在哪里保存的呢?见下图,
iptables 语法、iptables filter表小案例
清空规则,使用命令 iptables -F ,见下图,
iptables 语法、iptables filter表小案例
清空规则之后,使用命令 iptables -nvL,就看不到默认规则了,但是配置文件 /etc/sysconfig/iptables 里面的内容没有改变。也就是说,想要把当前的规则保存到配置文件里,还需要执行一个命令 service iptables save ,这样清空的规则才会生效。如果不保存的话,可以重启 iptables ,再加载回来,见下图,
iptables 语法、iptables filter表小案例
也就是说,重启服务器或是重启 iptables 规则,都会去加载配置文件上的规则。
这些默认的规则都在 filter 这个表上,-t 是指定表,不使用 -t 的话,默认就是 filter 这个表。nat 表里面都是没有规则的,见下图,
iptables 语法、iptables filter表小案例

service iptables save 保存规则。当我们把规则写完之后,仅仅在当前内存中生效。想要重启后还依然生效,就要做这个保存规则的操作。
-Z (大写)可以把计数器清零,具体操作见下图,
iptables 语法、iptables filter表小案例
注意上图左边的红色框框的内容,一开始是有数据的,执行了 -Z 的命令之后,就清零了。然后一会会之后又有数据了,因为每时每刻都在通信。
现在给filter表增加一条规则,输入命令 iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP ,回车,见下图,
iptables 语法、iptables filter表小案例
这条命令省略了 -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 ,回车,见下图,
iptables 语法、iptables filter表小案例
可以看到使用 -I 选项,规则就插入到第一行了。
既然可以增加和插入,肯定也可以删除,使用选项 -D ,输入命令 iptables -D INPUT -p tcp --dport 80 -j DROP ,回车,见下图,
iptables 语法、iptables filter表小案例
可以看到,第一条插入的规则没有了。同样的,输入命令 iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP ,回车,见下图,
iptables 语法、iptables filter表小案例
可以看到,增加的最后一条命令也没有了。
这边做一个假设,假如忘记掉之前增加或是插入的规则了,要怎么删除这些规则呢?先把两条规则加上去,见下图,
iptables 语法、iptables filter表小案例
接着往下操作,输入命令 iptables -nvL --line-number ,回车,见下图,
iptables 语法、iptables filter表小案例
先给每一行前面增加显示行号,然后再针对行号做操作,输入命令 iptables -D INPUT 7 ,回车,见下图,
iptables 语法、iptables filter表小案例
可以看到增加和插入的规则,已经成功删除了。再看一下行号,见下图,
iptables 语法、iptables filter表小案例
可以看到,行号果然还是少了2行的。
还有一个选项 -P(大写), 表示预设策略,这是默认的规则,在PuTTY上远程登录的话,输入命令 iptables -P OUTPUT DROP ,回车,会发现整个断掉了,什么也执行不了,只能重启。-P后面跟链名,策略内容或者为DROP或者为ACCEPT,默认是ACCEPT。
所以要注意:如果你在连接远程服务器,千万不要随便敲这个命令,因为一旦你敲完回车你就会断掉。
这个策略一旦设定后,只能回到原始的虚拟机上,使用命令 iptables -P OUTPUT ACCEPT ,回车,才能恢复成原始状态。
上面这一步 -P 的选项不要随意操作,这边不演示了。

2、iptables filter表小案例

iptables 语法、iptables filter表小案例

具体操作如下,输入命令 vi /usr/local/sbin/iptables.sh ,回车,见下图,
iptables 语法、iptables filter表小案例
输入如下的内容:
#! /bin/bash
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -i ACCEPT
$ipt -A INPUT -s 192.168.218.0/24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
这边的IP地址要注意,输入自己机子上的IP,跟着前面PPT的截图操作的话,远程连接就会断开,需要回到虚拟机上重新接受,才可以继续使用远程登录。
保存后退出。然后使用 vim 命令登录进入,vim 命令自带颜色显示,看起来比较清楚。输入 vim /usr/local/sbin/iptables.sh ,回车,见下图,
iptables 语法、iptables filter表小案例
上图中,ipt 定义了一个变量,变量要写绝对路径,这样才不会被环境变量所影响。然后使用 -F 命令清空规则,-P 是定义默认的策略,-A 增加规则。这边用脚本执行命令,就是因为第一条命令会使远程连接断开,所以不能一条一条的执行命令。脚本后面才会说到,这边先用一下。
iptables 语法、iptables filter表小案例
w 命令可以看到使用情况,接着使用命令 iptables -nvL 查看,见下图,
iptables 语法、iptables filter表小案例
几个增加的规则都能看到,然后重启服务,见下图,
iptables 语法、iptables filter表小案例
接着在Windows上查看网络可不可以连接,见下图
iptables 语法、iptables filter表小案例
能看到,网络是可以连接的。接着在 PuTTY 上输入命令 iptables -I INPUT -p icmp --icmp-type 8 -j DROP ,回车,见下图,
iptables 语法、iptables filter表小案例
操作完毕,可以看到网络是可以连接外网的,接着在 Windows 上操作,见下图,
iptables 语法、iptables filter表小案例
可以看到,网络不能连接。
以上就是 icmp 的作用。

总结:
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 删除插入的规则
-A/-D :增加删除一条规则;
-I :插入一条规则,其实跟-A的效果一样;
-p :指定协议,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目标端口;
--sport :跟-p一起使用,指定源端口;
-s :指定源IP(可以是一个ip段);
-d :指定目的IP(可以是一个ip段);
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;
-i :指定网卡(不常用,但有时候能用到);
iptables -nvL --line-number 每一行规则前面加上行号
iptables -D INPUT 7 删除行号为 7 的规则
iptables -P OUTPUT DROP 用来指定链的默认策略,不要随意执行
iptables -P OUTPUT ACCEPT 恢复链的默认策略

iptables -P OUTPUT DROP 删除默认规则,不要随意执行
iptables -P OUTPUT ACCEPT 恢复默认规则

转载于:https://blog.51cto.com/13503302/2091671

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值