关于Linux下的iptables 的浅析命令和了解

iptables默认三张表:
 •filter:防火墙,包含INPUT、OUTPUT、FORWARD
•nat:网络地转转换,包含PREROUTING、POSTROUTING、OUTPUT
•mangle:流量整形,包含所有的五条链
 
iptables的五条链 ->写规则的地方
 •INPUT:数据包的目地的是LINUX主机本身
•OUTPUT:数据包由LINUX主机本身发送
•FORWARD:数据包从一个接口进入,另一个接口发出(如果做路由转发的话必须开启/etc/sysctl.conf 修改net.ipv4.ip_forward=1)
•PREROUTING:做路由之前
•POSTROUTING:做路由之后
 
 
 
命令
 
清空防火墙
 
iptables -F
 
把INPUT默认规则改成DROP
 
iptables -P INPUT  DROP
 
添加一条规则允许SSH通过INPUT
 
一般插入很多人都写iptables -A (是追加规则,添加的规则在最下方,防火墙的规则是谁在最上边谁生效,所以我一般用-I,添加的规则先生效并且I能指定具体位置)
 
iptables -I INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
 
iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT(将这条规则插入到上面第二行)
 
只允许允许192.168.0.0、24从eth0网卡访问本机的22端口
 
iptables -I INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
 
列出防火墙规则
 
iptables -L
 
删除INPUT里面的第二条规则(从最上面开始)
 
iptables -D INPUT 2
 
保存防火墙规则(防火墙如果没有保存,重启服务后规则失效)
 
service iptables save
 
备份防火墙规则
 
iptables-resotre < /etc/sysconfig/iptables.20130301
 
 路由
 
阻止某个IP到达本机
 
iptables -I FORWARD -s 202.106.0.20 -j DROP
 
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SANT --to 1.1.1.1
 
将192.168.0.0网段的地址转换成1.1.1.1去做nat访问
 
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j SANT --to 1.1.1.1-1.1.1.20
 
将192.168.0.0网段的地址转换成1.1.1.1-20网段的地址去做nat访问
 
iptables -t nat -I PREROUTING -i eth0 -p tcp 80 -j DNAT --to 192.168.0.1
 
将通过网卡eth0的访问80端口的数据包目的地址改为192.168.0.1
 
iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
 
将源地址是192.168.0.0/24网段的数据包地址进行伪装
 
STATE
 
-m state --state 状态分为
 
NEW: 有别于tcp的syn
 
ESTABLISHED:连接态
 
RELATED:衍生态,与conntrack(连接跟踪模块)关联(FTP)
 
INVALID:不能识别的连接或者状态
 
iptables -I INPUT -m state --state RELATED,ESTABLISHED \ -就ACCEPT
 
允许连接出去后对方主机回应的数据包
 
MAC
 
-m mac --mac-source MAC
 
iptables -I FORWARD -m mac --mac0source xx:xx:xx:xx:xx:xx \ -j DROP
 
阻断来自某MAC地址的数据包,经过本机的路由
 
iptables -P FORWARD DROP
 
iptables -I FORWARD -s 192.168.0.2 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
 
ip与mac地址绑定,只有这个ip能从本机路由
 
LIMIT限速
 
-m limit --limit
 
iptables -I FORWARD -d 192.168.0.2 -m limit --limit 50/s -j ACCEPT
 
iptables -I FORWARD -d 192.168.0.2 -j DROP
 
限速50/s要想实现限制上传和下载的速度,得结合TC去分网段
 
 简单web服务器上的防火墙配置
 
iptables -I INPUT -i eth0(网络端口端口)-j ACCEPT
 
iptables -I INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
 
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 
iptables -P INPUT DROP
 
网关
 


实例:ADSL 拨号上网的拓扑
 
echo "1" > /proc/sys/net/ipv4/ip_forward
 
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 \
 
 -j MASQUERADE
 


对外服务器
 
服务协议(TCP/UDP)
 
对外服务端口
 
内部服务器私网 IP
 
内部真正服务端口
 
实例:
 
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \
 
 -j DNAT --to 192.168.1.1
 
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 \
 
 -j DNAT --to 192.168.1.2:80

相关推荐