虚位以待(AD)
虚位以待(AD)
首页 > 操作系统 > LINUX > linux防火墙的策略规则

linux防火墙的策略规则
类别:LINUX   作者:码皇   来源:互联网   点击:

介绍:防火墙默认有四表五链,四表:(表的优先级:raw > mangle > nat > filter),五链:(默认的,不能删除,但能清除里面的规则)。

介绍:

防火墙默认有四表五链

 

四表:(表的优先级:raw > mangle > nat > filter)

1.Raw表——两个链:PREROUTING、OUTPUT

作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw

2.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle

3.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT

作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat

4.filter表——三个链:INPUT、OUTPUT、FORWARD

作用:过滤数据包,定义拒绝或者允许 内核模块:iptables_filter

 

五链:(默认的,不能删除,但能清除里面的规则)

1.INPUT——进来的数据包应用此规则链中的策略

2.OUTPUT——外出的数据包应用此规则链中的策略

3.FORWARD——转发数据包时应用此规则链中的策略

4.PREROUTING——对数据包作路由选择前应用此链中的规则

5.POSTROUTING——对数据包作路由选择后应用此链中的规则

 

一、开始对防火墙配置时

iptables -X(清除所有自定义规则链)

iptables-F(清除所有规则)

iptables-L(列出所有[加n 以数字形式显示IP])

 

二、编写规则

iptables-I (插入规则) 规则链名 优先级

iptables-A (增加规则,默认是)规则链名

iptables-D (删除规则) 规则链名 序号

iptables -N (自定义规则链名)

iptables -P (默认) 规则链名 DROP(拒绝)或者ACCEPT(允许) PS:建议除紧急情况外,最后配置

-p (协议)

--sport(源端口)

--dport(目的端口)

-s (源地址)

-d(目的地址)

-i(入网卡)

-o(出网卡)

-m(扩展)

1、state --state RELATED,ESTABLISHED//用状态检测,因回来的数据没能转发。 2、limit --limit 5/m --limit-burst 10//10个通行证,每分钟增加5个 3、connlimit --connlimit-above 1 //每个IP地址只允许1个连接

-j (行为)

ACCEPT(接受)

DROP(停止)

DNAT(目的地址转发)一般在PREROUTING链中

SNAT(源地址转发) 一般在POSTROUTING链中

规则链名(加入这条规则链)

MASQUSERADE(地址伪装)

--to-destination(目标地址)

-t nat (选择nat表,一般地址映射用到)

--line-number (显示序号)

例子:

 

1)linux系统作为服务器和防火墙时:

1.允许外界能访问我的80端口httpd服务:

iptables-A INPUT -p tcp --dport 80 -j ACCEPT tcp协议目的端口80在入站规则通过

iptables-A OUTPUT -p tcp --sport 80 -j ACCEPTtcp协议源端口80在出站规则通过

 

也可以自定义规则链:

iptables-N httpd-in //自定义规则名为httpd-in

iptalbes -A INPUT -j httpd-in //把httpd-in规则链加入到INPUT链

iptables -A httpd-in -p tcp --dport 80 -j ACCEPTtcp协议目的端口80在httpd-in链通过

 

iptables-N httpd-out //自定义规则名为httpd-out

iptalbes -A OUTPUT -j httpd-out //把httpd-out规则链加入到OUTPUT链

iptables -A httpd-out -p tcp --sport 80 -j ACCEPTtcp协议源端口80在httpd-out链通过

自定义规则链一定要加入到默认规则链中,可以使得iptables默认规则链不至于混乱无序

 

2.允许ping:(只要前面两条就可ping通)

iptables -A INPUT -i eth0 -p icmp -j ACCEPT eth0网卡入站时的icmp包允许通过

iptables -A OUTPUT -o eth0 -p icmp -j ACCEPTeth0网卡出站时的icmp包允许通过

iptables -A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED-j ACCEPT 从eth0网卡出站时的状态检测允许

 

2)linux系统只作为防火墙时:

echo 1 > /proc/sys/net/ipv4/ip_forward /启动路由功能,允许转发

1.允许80端口httpd服务转发:

iptables -A FORWARD -p tcp --dport 80 -j ACCEPT //允许tcp目的端口80转发

 

2.允许ping转发:

iptables -A FORWARD -p icmp -j ACCEPT //允许icmp包转发

 

3.目的地址映射:

iptables –tnat–APREROUTING–d192.168.99.101–jDNAT--to 192.168.100.102//路由前,目的IP:192.168.99.101 转换成IP:192.168.100.102)

 

4.内网源地址隐藏:

iptables -t nat -A POSTROUTING -j MASQUERADE //路由后,内网地址隐藏,源地址变成防火墙外网IP地址

 

5.访问限时:(date显示时间,072016182005[月日时分年]7月20号16点18分2005年,直接date 数字改系统时间进行测试)

iptables –I FORWARD –s 192.168.100.0/24 –m time --timestart 16:10 --timestop 18:10 -j ACCEPT //对源网段192.168.100.0/24,开始时间16:10-18:10 允许通过

iptables –I FORWARD –d 192.168.100.0/24 –m time --timestart 16:10 --timestop 18:10 -j ACCEPT //对目的网段192.168.100.0/24,开始时间16:10-18:10 允许通过

 

6.访问限速:

iptables-I FORWARD -p tcp --dport 21 -m connlimit --connlimit-above 1 -j DROP //对21端口转发,每个IP地址超过1个连接就拒绝

 

3)使用日志监控程序记录:

/usr/local/ulogd/sbin/ulogd & //启动这个程序

iptables -A FORWARD -p icmp -j ACCEPT//允许icmp转发链

iptables -AFORWARD -p icmp -j ULOG//对icmp转发链进行监控

相关热词搜索: