CentOS iptables防火墙的理解和使用

iptables的启停

  1、查看是否启动:#service iptables status

  2、启动:#service iptables start

  3、停止:#service iptables stop

  4、查看每次开机是否启动:#chkconfig --list | grep iptables

  5、设置每次开机启动:#chkconfig --level 35 iptables on

  6、保存规则:#service iptables save  也可以指定存储文件#iptables-save > /etc/sysconfig/iptables

iptables的结构

  1、四张表:Raw追踪表——mangle修改表——nat地址转换——filter过滤表(默认表,常用)(四张表按优先级从高到低)  使用参数-t 表选择表

  2、五条链:prerouting、input(常用)、forward、output、postrouting   在链前使用参数(-P:新建链 -L:列出规则 -A:追加规则 -D:删除规则 -I:插入规则 -R:替换规则 -F:删除规则 -Z:清零 计数 -X:删除链) 操作该链上的规则

    

  3、过滤规则:源IP -s、源PORT --sport、目标IP -d、目标PORT --dport、协议(tcp、udp、icmp)-p、状态--state、数据流入接口 -i、数据流出接口-o

  4、执行动作:-j :accept、drop、reject、MASQUERADE (改写源IP为防火墙ip)

  5、加载其他过滤模块 -m  (state 状态(NEW、ESTABLISHED、RELATED、INVALID)、multiport 多端口、limit 包流量、mac 网卡地址、)

iptables实例

  1、iptables -A  INPUT -p TCP --dport 22 -j REJECT --reject-with ICMP echo-reply   ##对目标端口为22的流入包进行拒绝,并返回拒绝信息

  2、iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT--to-ports 8081 ##对目标端口是80的流入包转向到8081端口

  3、iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 21000-31000 ##对tcp协议的流出包修改源ip为防火墙ip

  4、iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 192.168.10.15-192.168.10.160:2100-3200 ##对eth0网卡-协议tcp的流出宝转换源ip

  5、iptables -A INPUT -p tcp --dport 80 -j ACCEPT ##接收目标端口80的流入包

  6、iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110 -j ACCEPT ##接收目标端口为22/53/80/110的流入包

  7、iptables -A INPUT -m limit --limit 3/hour ##限制流入包为3个每小时

  8、iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01 -j ACCEPT ##接收指定源mac的流入包

  9、iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##接收状态为已连接和关联的流入包

  10、 iptables -R INPUT 2 -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT ##替换第二条规则为指定源目IP/PORT且状态为新建和已建立的流入包

猜你喜欢

转载自www.cnblogs.com/lysn/p/11224887.html