防火墙就是工作在一个网络的边界,对进出本区域网络的数据包进行检查,并采取特定处理动作的一组组建,这些组建可以是硬件或者软件。防火墙可以分为包过滤防火墙和状态检测防火墙,包过滤防火墙的速度较快,但不能检测数据包里面的内容,因此安全性无法保证。而状态检测防火墙能检测包里面的内容,安全有保证,但是他的速度较慢。需要注意的是包过滤是在内核中实现的。
防火墙通常包括四个表和五个链
四个链分别是
filter
nat
mangle
raw
filter (INPUT OUTPUT FORWORD)
nat (PREROTING POSTROUTING OUTPUT)
mangle 可以匹配所有的链
raw
对防火墙的设置时的格式如下:
iptables [-t table] command chians [num] match condition -j action
下面详细介绍各部分准则以及常用选项

对规则的管理
-A 追加新规则,默认追加到最后一行
-I n 插入新规则,加上数字表示加到第几个规则前
-R n 修改第几条规则
-D n 删除第几条规则

对链本身进行管理
-F n 清空一条链,不加n表示清空所有
-P 默认处理动作
-N 用户新定义一条链
-X 删除用户自定义的链
-E 重命名用户自定义的链
-Z 清零所用被本规则匹配到的数据包的个数,所有被本规则匹配到的数据包的体积

对链进行查看
-L 查看链的所有规则
-L的一些子命令
  -line-numbers 对规则进行编号
  -n 把源地址和目标地址以IP地址的方式显示即不做名称解析
  -v 显示规则的详细信息 -vvvvv 更加详细的显示信息
  -x 查看计数器的精确值,不做单位换算
  
-S 打印链的所有规则(有些版本不支持)

一些通用匹配(常常作为选项出现在指定的规则里面)
-p 匹配的协议(TCP UDP ICMP)
-s 源地址
-d 目的地址
-i 通过那个网卡接口进来
-o 通过那个网卡接口出去
扩展匹配
A 隐含扩展

TCP扩展
--dport 目标端口
--sport 源端口
--syn
--tcp-flages TCP标志位
常用的标志位(SYN ACK FIN RST URG PSH )
UDP扩展
--dport 目标端口
--sport 源端口
ICMP扩展
--icmp-type(8常用于INPUT 0常用于OUTPUT 3常用于目的地不可达)
B显示扩展
首先用-m声明
-m state -state 连接状态
常见的连接状态
NEW 新建的连接
ESTABLISHED 已建立的连接
RELATED (用的范围很少,多用于ftp)
INVALID 错误的,非法的连接

-m limit --limit 指定单位时间内匹配的个数
--limit-burst 做峰值匹配
-m multiport --ports 一般后面最多有15个端口
--source-posts 源端口
--destination-ports 目的端口
--ports 不指定端口
-m mac --mac-source 网卡匹配 只适用于PREROUTING
 FOREARD INPUT
string
-m string --string 字符串匹配 后面要指定字符串算法 --algo {bm|kmp}
connlimit 用来限定每一个IP连接到某一个服务上的最大的并发连接数
-connlimit-above n
time 进行时间设置
--timestart
--timestop

处理工作 -j
jump 跳转
DROP 接收以后再丢弃
REJECT 明确拒绝
ACCEPT 接受
SANT 源地址转换
DNAT 目标地址转换
LOG 记录日志 (--log-prefix)
REDIRECT 端口转换
MASQUERADE 地址伪装