设为首页收藏本站language 语言切换
查看: 2671|回复: 0
收起左侧

Linux安全——iptables(三)

[复制链接]
发表于 2017-6-23 16:23:28 | 显示全部楼层 |阅读模式

内容回顾

怎样查看指定表的中指定链上的规则?
怎样显示详细信息?
怎样列出规则序号,怎样不让iptables自动解析地址?
Iptalbes --line -nvL INPUT是代表什么意思?
如果忘了翻看一下上次的内容吧,这次我们要继续基本的“添删查改”内容了。
添加规则

这里我们实验的两台虚拟机 ip 地址分别是 192.168.119.133/24 和 192.168.119.134/24。
先添加一条拒绝规则,我们在 192.168.119.133 上配置拒绝规则,拒绝 192.168.119.134 这台设备访问本机 192.168.119.133。
iptables -t filter -I INPUT -s 192.168.119.134 -j DROP
命令添加后 192.168.119.134 就 ping 不通 133 这个设备了,因为是 DROP 所以完全没有回应内容

通过 iptables -nvL INPUT 命令查看 134 对本机执行 ping 命令前后 INPUT 链上匹配到的数据包数量和大小的变化(pkts 和 bytes 值),我们就可以知道规则生效了。

现在我们来简单解释下这个条命令:
-I 选项,指定将规则插入那个链中(insert 的意思),如果有多条规则-I默认的插入是规则首部。
-s 选项,指定匹配条件中的源地址(source 的意思)。
-j 选项,指定匹配条件满足时所对应要执行的操作,在这条命令中我们的操作上DROP(丢弃)
上面这条命令中我们没有指定表,那是因为前说过不使用-t选项指定表的话默认操作的就是filter表,而本机防火墙的操作都是由filter表来完成的,所以我们可以省略-t filter这个选项。
我们再来添加一条规则:
Iptables -A INPUT -s 192.168.119.134 -j ACCEPT
-A选项,指定将规则追加到对应的链中(append的意思),所以-A的默认插入位置上规则的尾部。
这次-j使用的操作上ACCEPT允许
我们在134上ping133试试

我们去 133 上用 iptables -nvL INPUT 看下会发现,压根就没有数据包通过第二条 ACCEPT 规则,而 DROP 规则匹配的数据包又增加了。

所以规则的顺序很重要,如果报文已经被前面的规则匹配到了,iptables 也对其做了相应的动作,那后面规则及时也能匹配这个报文很有可能也没有机会对他做操作了。当然这也不是绝对的,后面会说到自定义链、规则跳转等,但是现在我们就可以理解为,如果被上面的规则匹配到了那就不管下面的规则什么事了。
我们可以通过-I参数后面指定编号的方式定义在多条规则的那个位置插入规则:
iptable -I INPUT 2 -s 10.254.1.1 -j DROP
表示在 INPUT 链中新增规则序号为 2 的规则

删除规则

之前我们已经介绍过如果想清空 filter 表中所有规则包括默认规则的话可以使用 iptalbes -F 命令,而如果我们想删除 filter 表中 INPUT 链上的某一条规则该怎么做那?
先来看下比较保守的做法,比如我们要删除最后加上去的那条 10.254.1.1 DROP 的规则。
iptables -D INPUT -s 10.254.1.1 -j DROP

-D 选项,表示删除指定链中的某条指定规则。
当你的规则又多又长的时候,你还可以选择更简单的删除方法。还记得规则的序号吗,直接指定某条规则的序号就可以直接删除这条规则。我们来把num为2的那条规则删除试试。
iptables -D INPUT 2

最后说下 iptables -F INPUT
-F 选项,情况空某个表中某条链上的所有规则(flush的意思),不知明链的话说清楚整个表中所有链的规则。
修改规则

我们可以使用 -R 选项修改指定链中的规则,中修改规则时指定规则对应的序号既可。
iptables -R INPUT 1 -s 192.168.119.134 -j REJECT

-R 选项表示修改指定的链,使用 -R INPUT 1 表示修改过 INPUT 链的第一条规则,-j REJECT 表示建这条规则的动作修改为 REJECT,其中 -s 选项指定源地址不可省略。
如果这句命令中没有使用 -s 指定原本的源地址,那么修改完成后你的规则中源地址会自动变成 0.0.0.0/0,因为命令默认是 0.0.0.0/0 所以系统会以为你把源地址修改为了默认设定,那样的话所有的 IP 请求都会被拒绝哦。
其实我个人看法是如果你不是对 -R 选项有特别的喜好的话,还是选择先删除某条规则然后重新建立一条规则然后插入的方式比较靠谱。
好了,现在让我们来看看 DROP和REJECT 这两个动作有什么不同,从字面上讲一个是丢弃一个拒绝,语气上一个好像更生硬一些,实际效果上都是 ping 不通无法访问了。
但是在使用 REJECT 这个操作时,ping 命令会返回目标不可达的信息,而使用 DROP 的话就 ping 命令则会一直卡住那里。
规则保存

在默认情况下我们对防火墙做出的修改都是临时的,换句话说就是你重启 iptables 服务或者重启服务器,那么这些我们设置的规则都会被重置,所以为了以防类似情况我们需要做规则保存。
规则保存命令 service iptables save

这些内容都被存在 /etc/sysconfig/iptables 这个文件中。
如果我们想导出(备份)iptables 中的规则,我们可以使用
iptables-save > “/path/to/some_rulefile” 保存 iptables 规则至别的位置
导入(恢复)之前导出(备份)的规则,我们可以使用
iptables-restore < /path/to/some_rulefile 从自定义的位置读取并使之生效

上图中 cat /tmp/firewall 是查看文件内容的意思。
好了 iptables 防火墙最基本的“添”、“删”、“查”、“改”都聊了一下,可以找台机器试试这些内容先,后面就是匹配条件的介绍了。

相关阅读:

Linux安全—iptables(一)

Linux安全——iptalbes(二)

官网:www.yeslab.net

400-004-8626



您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-26 15:57 , Processed in 0.099940 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表