您的位置:首页 > 其它

如何定义防火墙的规则iptables

2012-04-04 17:29 357 查看
防火墙,位于网络之间的,根据所定义的股则对进出网络的数据包进行匹配,病匹配到包用制定的处理机制进行处理的硬件、软件或者二者的结合防火墙按照对数据包的获取方式进行分类,可以分为两大类: 1、包过滤防火墙(IP Filter):iptables 有状态检测 简单包过滤
2、网关代理型防火墙(Proxy):应用层防火墙,效率较低,安全性较好
iptables 是 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。

iptables的四张表:(1)filter:管理本机进出的数据包 INPUT:主要与想要进去Linux本机的数据包有关 OUTPUT:主要与本机想要送出的数据包有关 FORWORD:与Linux本机无关,可以将数据包转发到后端的计算 机中,与NAT的table相关性很高(2)NAT :这个表格主要用于来源地与目的地的IP或port转换,与Linux本机无关,主要与Linux主机的局域网内的计算机相关 PREROUTING:在进行路由判断之前执行的规则 POSTROUTING:在进行路由判断之后执行的规则 OUTPUT:与发送出去的数据包相关(3)mangle :这个表格主要是与特殊数据包的路由标记有关把封装得数据包重新进行修改,先拆开,再封装,在INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING5个地方任意一个地方都可以(4)raw 优先级:1 mangle,2 nat,3 filter
#iptables [-t table] sub_command CHAIN[Num] [匹配条件]-t 指定表格
sub_command:子命令 rule: -A 追加,在最后边追加一条规则 -I 插入一条规则,-I INPUT 3 -->指定第三条规则 -D 删除一条规则,指定号码或规则就行 -R 替换一条规则
chain: 规则链相关的 -F (flush):清空所有链 -N :新建一条链 -X : 删除一条链 -Z:清空计数器 (每一条规则都有两个计数器,一个用于记录被本条规则所匹配到的包的个数,另一个用户记录所有匹配到包的体积之和) -E 重命名链

iptables -L 列出来iptables -L -n 不进行IP与hostname的反查,显示速度会更快 -v 显示详细信息,v越多越详细 -x 与L一块用显示精确值
iptables -L --line-numbers 显示行号
匹配条件:一、通用匹配 -s IP/NETWORK 指定源地址 -d IP/NETWORK 指定目的地址 -p 用户定义协议后跟{tcp|udp|icmp} -i interface 指定INPUT接口,一般不能用在OUTPUT和POSTROUTING -o interface 指定OUTPUT接口,不能跟在INPUT和PREROUTING
二、扩展匹配(1)隐式扩展:一般只对-p选项中指定的协议进行扩展-p tcp --sport PORT 指定源端口 --dport PORT 指定目的端口 --tcpflags 要检查的标记必须为1的标记(剩余的必须为0)--tcpflags SYN,ACK,RST,FIN SYN 0 0 0 1
-p udp --sport PORT 指定源端口 --dport PORT 指定目的端口
-p icmp --icmp-type 后边跟0或8type的类型有echo-request:8 请求的数据包 echo-reply:0 响应的数据包
-j TARGET 跳转 ACCEPT通过 DROP 含蓄的拒绝 REJECT 直接拒绝
(2)显式扩展:一般必须使用-m选项明确指定要加载扩展模块,扩展模块小写,状态大写 state 连接状态:有四种 -m state --state 状态四种状态: NEW:新发起的请求 ESTABLISHED:所有已建立的请求 RELATED:相关联的 INVALID:无法识别的,非上边的三种状态
指定多端口:-m {mport|multiport} --source-ports 源端口 --destination-port 目标端口 --portseg: #iptables -A INPUT -d 172.16.100.1 -p tcp -m mport --destination-port 80,22,23,110,143,25 -m state --state NEW,ESTABLISHED -j ACCEPT

-m iprange IP地址范围扩展[!]--src-range ip-ip 源地址范围[!]--dst-range ip-ip 目标地址范围eg:#iptables -A INPUT -d 172.16.100.1 -m iprange --src-range 192.168.1.1-192.168.1.200 -p tcp --dport 80 -m state --state ESTABLISHED -j ACCEPT

-m connlimit 限制某个IP地址上并发连接请求个数限制[!]--connlimit-above N 超过这个数的请求都拒绝一般都是 !--connlimit-above -j ACCEPT

-m limit 数据包个数的发送速率的限制--limit rate--limit-burst number 突发限制的数量,当为空时第一次发送的数量eg:-m limit --limit 20/second --limit-burst 30 -j ACCEPT

流量控制:通过令牌桶过滤器
-m time在某个时间运行某个请求 --timestart Value --timestop Value --days Listofdays 星期几,默认是ereryday --datestart Date --datestop Dateeg:iptables -A INPUT -d 172.16.37.1 -p tcp --dport 80 -m time --datestart 2012:02:18:08:30:00 --datestop 2.12:02:26:14:30:00 -j ACCEPT

-m string 字符的匹配 --algo bm|kmp <--字符串匹配算法 --string pattern 我们可以把字符串转换成二进制格式的,这个匹配的速度会更快

如何保存iptables定义的规则
iptables一但重启将会清空所有规则
#service iptables save 保存iptables的规则,保存到/etc/sysconfig/iptables 文件中
#iptables-save > /etc/sysconfig/iptables.test 保存到这个文件中

#iptables-restore < /etc/syscofig/iptables.test 生效保存的规则
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: