共计 2129 个字符,预计需要花费 6 分钟才能阅读完成。
一:Iptables 防火墙服务
iptables 分为两个部分:一个部分在内核中实现,一个为用户接口命令 iptables, 用户通过该命令来修改防火墙的功能。所以,iptables 要使用相应的功能,必须要在内核中添加相应的模块。modprobe 添加模块
1:防火墙匹配规则 raw 表 —-> mangle 表 ——->nat 表 ——>filter 表。
raw:主要是进行包跟踪,包含的 rule chians(规则链): PEREROUTING OUTPUT
mangle: 设置数据包的标记 (规则链) : PERE OUTPUT INPUT POST FORWARD
nat: 修改数据包中的源,目地址和 mac (规则链) : POST PERE OUTPUT
filter: 对包进行过滤。(规则链) : INPUT OUTPUT FORWARD
一个规则链中可以有很多规则,一个表中可以包含多个链,规则依次匹配,匹配则停止。
2:对于入站和出站数据,经过的链为 PEREROUTING —>INPUT —>OUTPUT —> POSTROUTING
3:对转发的数据:经过的链为 PEREROUTING —>FORWARD —->POSTROUTING
防火墙先按照表的顺序,再按照数据的流向来进行相应链中的规则的匹配。
4:链中规则的 jump(动作) 分为:ACCEPT(接受),DROP(丢弃),REJECT(拒绝),LOG(日志)
动作的意思就是当匹配到该规则时,防火墙进行怎样的操作,丢弃还是通过,或者记录到日志中,当动作为 LOG 时,会继续向下匹配,所以为 LOG 时应该写在最前面。
————————————– 分割线 ————————————–
相关阅读 :
iptables 使用范例详解 http://www.linuxidc.com/Linux/2014-03/99159.htm
iptables—包过滤(网络层)防火墙 http://www.linuxidc.com/Linux/2013-08/88423.htm
Linux 防火墙 iptables 详细教程 http://www.linuxidc.com/Linux/2013-07/87045.htm
iptables+L7+Squid 实现完善的软件防火墙 http://www.linuxidc.com/Linux/2013-05/84802.htm
iptables 的备份、恢复及防火墙脚本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm
Linux 下防火墙 iptables 用法规则详解 http://www.linuxidc.com/Linux/2012-08/67952.htm
————————————– 分割线 ————————————–
二:iptables 的详细命令配置
1: iptables -nvL -n(numeric)-L(List) -v(verbose) 详细显示 filter 表中的规则,默认 filter 表
2: iptables -t filter -P INPUT ACCEPT 配置 INPUT 链默认的 policy 为 ACCEPT -t (table)
3: iptables -A INPUT 向 INPUT 链中添加规则,后面接相应的选项 -A (append)
4: iptables -D INPUT rules numbers 删除 INPUT 链中的规则 rules numbers 为规则的序号。-D(delete)
5: iptables -I INPUT 4 rules 在 INPUT 的第四条规则中插入规则 -I (insert)
6: iptables -A INPUT -m [limit/multiport/state] 添加相应的模块实现相应的功能,-m(model),
7: iptables -A INPUT -m state –state NEW -j ACCEPT 使用 state 模块,通过数据包状态匹配来控制。
8: service iptables save 将规则保存到 /etc/iptables 文件,下次重启自动生效。
9: iptables-save > iptables.conf 将配置写入 iptables.conf 文件,iptables-restore<iptables.conf 写回。
三:匹配的类型
1:通用类型的匹配.
如协议类型,网络接口,网络地址 如:-p tcp/udp/icmp -i eth0 -s 172.16.0.1 –sport 60 等
2:隐含条件匹配
通常以特定的协议匹配为前提
3:显示条件匹配
需要添加相应的扩展模块来实现。如 -m limit –limit 5/sec -j ACCEPT 实现数据包通过速率
-m multiport –dport 80,53,21 实现多个端口同时控制 -mstate –state NEW or ESTABLISHED