linux防火墙的策略规则
时间:2018-03-06 19:08 来源:网络整理 作者:墨客科技 点击:次
防火墙默认有四表五链 四表:(表的优先级: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转发链进行监控 以上是我个人学习积累到的知识,如有需要更正或者增加的地方,欢迎来与我交流学习一番,共同进步,谢谢观看。 (责任编辑:admin) |