实例解析iptables在防火墙的应用
2017-11-25 12:54
387 查看
查看iptables表中链的命令,如查看filter表:
介绍iptables命令
以上规则从上往下匹配,匹配到合适的规则数据包则不继续往下匹配,如上图,filter表中匹配到INPUT链的icmp,则下面的规则不走。反之,如果INPUT链下面的规则都不匹配,则匹配默认策略(pollicy ACCEPT)
修改默认策略命令:
规则添加如下:
-o 指定数据包从哪个网络接口输出,如ppp0,eth0和eth1等
-p 协议类型 指定数据包匹配的协议,如TCP,UDP,和ICMP等
-s 指定数据包匹配的源地址
-d 指定数据包的目标地址
–sport 指定数据包匹配的源端口,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口
– dport 目标端口号:指定数据包匹配的目标端口号,可以使用”起始端口号:结束端口号“的格式指定一个范围的端口
参考:
http://www.zsythink.net/archives/1764
配置DNAT时,并不能正常的DNAT,经过测试发现,将相应的SNAT同时配置后,即可正常DNAT。
iptables -t filter -L
介绍iptables命令
iptables -t table 命令 chain rules -j target table可以是filter nat mangle 默认为filter 命令 -P 定义默认策略 -A 在规则列表的最后增加一条规则 -I 在指定的位置插入一条规则 -D 删除一条规则 -R 替换规则列表中的某个规则 -F 删除表中所有的规则
以上规则从上往下匹配,匹配到合适的规则数据包则不继续往下匹配,如上图,filter表中匹配到INPUT链的icmp,则下面的规则不走。反之,如果INPUT链下面的规则都不匹配,则匹配默认策略(pollicy ACCEPT)
修改默认策略命令:
iptables -t filter -P FORWARD DROP//将上图的ACCEPT修改为DROP
以下内容请结合上图查看,否则内容可能看不懂
实例:
添加一条命令不允许ping通路由器本身,根据上一篇Netfilter框架可以知道Ping包通过链路层走INPUT链。规则添加如下:
iptables -t filter -I INPUT -p icmp -j DROP //-I INPUT表示将该规则插入到INPUT链的第一条规则 iptables -t filter -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP icmp -- anywhere anywhere REJECT all -- anywhere anywhere //删除该规则 iptables -t filter -D INPUT 1
iptables 匹配选项
-i 指定数据包从那个网络接口进入,如ppp0,eth0和eth1等-o 指定数据包从哪个网络接口输出,如ppp0,eth0和eth1等
-p 协议类型 指定数据包匹配的协议,如TCP,UDP,和ICMP等
-s 指定数据包匹配的源地址
-d 指定数据包的目标地址
–sport 指定数据包匹配的源端口,可以使用“起始端口号:结束端口号”的格式指定一个范围的端口
– dport 目标端口号:指定数据包匹配的目标端口号,可以使用”起始端口号:结束端口号“的格式指定一个范围的端口
实例
/*初始环境 路由器LA口网络接口为br0,默认IP为192.168.0.3. WAN口为eth2.2,上层路由器默认IP为192.168.5.1.默认路由走eth2.2 */ # ip route 192.168.5.1 via 192.168.5.1 dev eth2.2 metric 1 255.255.255.255 dev br0 scope link 192.168.5.0/24 dev eth2.2 proto kernel scope link src 192.168.5.105 metric 11 192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.3 default via 192.168.5.1 dev eth2.2 equalize //1.设置路由器网络接口禁止电脑Ping路由器 iptables -t filter -I INPUT -i eth2.1 -p icmp -j DROP //因为:电脑ping路由器走的是INPUT链 //2.设置路由器网络接口禁止电脑ping通上层路由器192.168.5.1,但是能ping通路由器本身192.168.0.3 iptables -t filter -I FORWARD -o eth2.2 -p icmp -j DROP //因为:电脑ping上层路由器,需要192.168.0.3的路由器做路由转发,走的是FORWARD链,然后通过eth2.2接口出去,查找上层路由192.168.5.1,禁止出去的网络接口转发数据即可 //禁止电脑访问192.168.0.3路由器的界面 iptables -t filter -I INPUT -p tcp --dport 80 -j DROP //因为:http界面的目的端口是80
参考:
http://www.zsythink.net/archives/1764
注意:
只做SNAT时,我们并不用手动进行DNAT设置,iptables会自动维护NAT表,并将响应报文的目标地址转换回来。配置DNAT时,并不能正常的DNAT,经过测试发现,将相应的SNAT同时配置后,即可正常DNAT。
相关文章推荐
- 嵌入式 iptables防火墙应用实例
- Eureka 源码解析 —— 应用实例注册发现(八)之覆盖状态
- iptables高级应用实例(转)
- 快速排序原理解析及实例应用
- 20个Linux防火墙[iptables]应用技巧[转]
- 注册中心 Eureka 源码解析 —— 应用实例注册发现(三)之下线
- 嵌入式 iptables防火墙常用配置规则实例
- Linux上iptables防火墙的基本应用教程
- Linux上iptables防火墙的基本应用教程
- iptables:应用防火墙规则:ptables-restore: line 1failed [失败]
- Eureka 源码解析 —— Eureka源码解析 —— 应用实例注册发现 (九)之岁月是把萌萌的读写锁
- 图释+案例解析 iptables 防火墙
- inux上iptables防火墙的基本应用教程
- inux上iptables防火墙的基本应用教程
- 深入理解Struts 2.1及应用开发实例解析
- iptables高级应用实例
- iptables防火墙配置工具ShoreWall的安装和使用实例
- 用Linux+iptables构建防火墙实例
- Linux 设备驱动开发 —— platform设备驱动应用实例解析
- Linux―IPTABLES应用实例