一、iptables百科名片
iptables 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
推荐阅读:
二、防火墙
防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.。工作于网络或主机边缘,对进出本网络或本主机的网络报文按照事先设定好的匹配规则进行检查,对能够被规则所匹配的报文按照规则定义的处理机制进行处理的组件。
防火墙是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。
在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。
三、防火墙类型
1、网络层防火墙:网络层防火墙可视为一种 IP 封包过滤器,运作在底层的TCP/IP协议堆栈上。
2、应用层防火墙:应用层防火墙是在 TCP/IP 堆栈的“应用层”上运作,使用浏览器时所产生的数据流或是使用 FTP 时的数据流都是属于这一层。
3、数据库防火墙:数据库防火墙是一款基于数据库协议分析与控制技术的数据库安全防护系统。基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。
4、入侵检测系统:NIDS,HIDS
NIDS设备:snort HIDS设备:OSSEC
5、入侵防御系统:IPS
四、iptables 防火墙的版本
1、linux/内核版本2.0: ipfirewall 简陋
2、linux/内核版本2.2: ipchains 单链
3、linux/内核版本2.4: iptables 多链如表
五、iptables 规则的功能及其属性
防火墙本身不能”防火“,而是靠内核规定的规则来”防火“的
1、 iptables 四个内置的表
1)、filter : 过滤
2)、nat : 地址转换
3)、mangle : 修改报文属性
4)、raw: 原始未加工报文
2、iptables 五个检查点 即五条内置链
四个表放于五个点间,内置链放不同的规则,且内置链不可删除
规则必须在5条内置链上才能实现。
1)、PREROUTING : 路由前
2)、INPUT: 输入
3)、FORWARD : 转发
4)、OUTPUT : 输出
5)、POSTROUTING : 路由后
3、规则的属性
1)、网络层的协议属性
ip报文
2)、传输层的协议属性
tcp报文 、 udp报文
icmp报文 (icmp协议是工作在网络层与传输层之间的协议)
六、iptables 的相关命令选项
1、小写字母选项:用来匹配标准及定义标准属性
-t:{filter|nat|mangle|raw}指定表的类型;
-n:数字格式显示IP和PORT;
--line-number:显示链中规则的行号;
-x:显示精确值,不做单位换算;
-v:显示详细信息
1 2
# iptables -L -t filter -n --line-number -v(-vvv) # iptable -L -n -v
2、大写字母选项:实现特定功能的子命令
1)、管理链的子命令
-L:列出相关链及其规则的列表
-F:清空链
1 2
# iptables -t filter -F # iptables -F
-P:为指定键设定默认策略
1 2 3
# iptables -t filter -P INPUT ACCEPT # iptables -t filter -P FORWARD # iptables -t filter -P OUTPUT ACCEPT
-N:新建一条自定义链,只能附加在5条内置链上
1
# iptables -N FILTER_WEB
-X:删除自定义的空链
自定义链要先清空才能删
-Z:计算器清空
-E:重命名自定义
2)、管理规则
-A:append 附加
-I[n]:插入为第n条
-D[n]:删除第n条
-R[n]:替换第n条
1 2 3 4
# iptables -A INPUT ... # iptables -I INPUT 1 ... # iptables -D INPUT 2 ... # iptables -R INPUT 1 ...