iptables
所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成。
其中,防火墙又可以分为网络层防火墙和应用层网关。在实际应用中,应用层网关会把数据包逐层拆开直到应用层然后匹配对应规则再重新打包,这是非常繁杂的过程,因此其效率低于网络层防火墙而安全性大于网络防火墙。
Linux的防火墙iptables:
网络顾虑器(Netfilter)的链表
Filtering point |
Table |
||
filter |
nat |
mangle |
|
INPUT |
✔ |
|
✔ |
FORWARD |
✔ |
|
✔ |
OUTPUT |
✔ |
✔ |
✔ |
PREROUTING |
|
✔ |
✔ |
POSTROUTING |
|
✔ |
✔ |
其中,PREROUTING是在数据包刚进入网卡,未进行路由决策时。多用于反向代理,包数据包转到实际的内部服务器,也就是做目标地址转换(DNAT);POSTROUTING用于做源地址转换(SNAT)。
iptables的命令格式:iptables -t TABLE COMMAND CHAIN CRITERIA -j TARGET
其中,命令部分常用的命令有:-A 表示追加一条规则;-I 插入一条规则;-D 删除一条规则;-R 替换一条规则;-F 清空规则链;-N新建一条自定义规则链;-Z 清空计数器;-P 将某链的默认规则设置为ACCEPT或者DROP;-L列出规则链,-n 以数字方式显示,-v显示详细信息;-x 显示精确的数据信息;--line-number 显示行号。
CRITERIA部分:包括通用匹配,-s 匹配源地址,;-d 匹配目标地址;-p 指定匹配的协议(ICMP,TCP,UDP);i 数据包的流入设备;-o 数据包的流出设备。其中,扩展设备中的隐含设备,是对前面的协议的扩展。-p tcp --sport | --dport | --tcp-flage;-p udp --sport | --dport