iptables防火墙配置详解

原始出处:http://www.aikaiyuan.com/6588.html html

iptables简介网络

iptables是基于内核的防火墙,功能很是强大,iptables内置了filter,nat和mangle三张表。tcp

filter负责过滤数据包,包括的规则链有,input,output和forward;ide

nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;oop

mangle表则主要应用在修改数据包内容上,用来作流量×××的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;post

input匹配目的IP是本机的数据包,forward匹配流经本机的数据包,prerouting用来修改目的地址用来作DNAT,postrouting用来修改源地址用来作SNAT。spa

iptables主要参数rest

-A 向规则链中添加一条规则,默认被添加到末尾orm

-T指定要操做的表,默认是filterhtm

-D从规则链中删除规则,能够指定序号或者匹配的规则来删除

-R进行规则替换

-I插入一条规则,默认被插入到首部

-F清空所选的链,重启后恢复

-N新建用户自定义的规则链

-X删除用户自定义的规则链

-p用来指定协议能够是tcp,udp,icmp等也能够是数字的协议号,

-s指定源地址

-d指定目的地址

-i进入接口

-o流出接口

-j采起的动做,accept,drop,snat,dnat,masquerade

–sport源端口

–dport目的端口,端口必须和协议一块儿来配合使用

注意:全部链名必须大写,代表必须小写,动做必须大写,匹配必须小写

iptable配置实例

iptable基本操做

iptables -L  列出iptables规则
iptables -F  清除iptables内置规则
iptables -X  清除iptables自定义规则

设定默认规则

在iptables规则中没有匹配到规则则使用默认规则进行处理

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

配置SSH规则

iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT  若是你把OUTPUT 设置成DROP,就须要加上这个规则,不然SSH仍是不能登陆,由于SSH服务职能进不能出。

只容许192.168.0.3的机器进行SSH链接

iptables -A INPUT -s 192.168.0.3 -p tcp –dport 22 -j ACCEPT

若是要容许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的全部IP.

容许loopback回环通讯

IPTABLES -A INPUT -i lo -p all -j ACCEPT
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT

目的地址转换,映射内部地址

iptables -t nat -A PREROUTING -i ppp0 -p tcp –dprot 81 -j DNAT –to 192.168.0.2:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp –dprot 81 -j DNAT –to 192.168.0.1-192.168.0.10

源地址转换,隐藏内部地址

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT –to 1.1.1.1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT –to 1.1.1.1-1.1.1.10

地址假装,动态ip的NAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

masquerade和snat的主要区别在于,snat是把源地址转换为固定的IP地址或者是地址池,而masquerade在adsl等方式拨号上网时候很是有用,由于是拨号上网因此网卡的外网IP常常变化,这样在进行地址转换的时候就要在每次都要修改转换策略里面的ip,使用masquerade就很好的解决了这个问题,他会本身去探测外网卡得到的ip地址而后自动进行地址转换,这样就算外网得到的ip常常变化也不用人工干预了。

开启转发功能

iptables -A FORWARD -i eth0 -o eth1 -m state –state RELATED,ESTABLISHED -j ACCEPT 只容许已建链接及相关连接对内转发
ptables -A FORWARD -i eth1 -o eh0 -j ACCEPT 容许对外转发

过滤某个MAC

iptables -A FORWARD -m mac –mac -source MAC地址 -j DROP

报文通过路由后,数据包中原有的MAC信息会被替换,因此在路由后的iptables中使用mac匹配没有意义。

数据包整流

iptables -A FORWARD -d 192.168.0.1 -m limit –limit 50/s -j ACCEPT
iptables -A FORWARD -d 192.168.0.1 -j DROP

多端口匹配

用以一次匹配多个端口

iptables -A INPUT -p tcp -m muliport –dport s 21,22,25,80,110 -j ACCEPT

丢弃非法链接

iptables -A INPUT   -m state –state INVALID -j DROP
iptables -A OUTPUT -m state –state INVALID -j DROP
iptables-A FORWARD -m state –state INVALID -j DROP

存储于恢复iptables规则

iptables-save > somefileiptables-restore < somefile

相关文章
相关标签/搜索