iptables的基本配置
㈠ 基本操作 www.zhishiwu.com
列出现有iptables策略
iptables -L
插入一条策略
iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT
注释:所有使用TCP协议并且目标端口是22的流量全部允许通过的顺序为3的策略
删除一条策略
iptables -D INPUT 3
删除所有策略(临时生效)
iptables -F
策略组成表:
㈡ 匹配参数
基于IP地址
-s 192.168.1.1(源地址)
-d 192.168.1.0/24(目标地址)
基于接口
-i eth0(从eth0上接收的流量)
-o eth1(从eth1上发送的流量)
排除参数
-s '!' 192.168.1.0/24(除192.168.1.0/24之外的所有网段)
基于协议以及端口
-p tcp --dport 23 (目标端口)
-p udp --sport 53 (源端口)
-p lcmp
㈢ 例子 www.zhishiwu.com
① 控制到本机的网络流量
iptables -A INPUT -s 192.168.1.100 -j DROP
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP
iptables -A INPUT -i eth0 -j ACCEPT
② 当使用linux作为路由(进行数据转发)设备使用时,可以在过滤点FORWARD设置策略进行转发控制
如:禁止所有192.168.1.0/24到10.1.1.0/24的流量
iptables -A FORWARD -s 192.168.1.0/24 -d 10.1.1.0/24 -j DROP
③ NAT(网络地址转换)用来对数据包的IP地址进行修改的机制,NAT分为两种:
● SNAT:源地址转换,通常用于伪装内部地址
● DNAT:目标地址转换,通常用于跳转(负载均衡或者伪装保护)
iptables中实现NAT功能的是NAT表
DNAT只能作用在PROROUTING这个过滤点上
SNAT只能作用在POSTROUTING这个过滤点上
★ 通过NAT进行跳转:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.1.10
★ 通过NAT对出向数据进行跳转:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.1.100:8080
★ 通过NAT对数据流进行伪装:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
★ 通过NAT隐藏源IP地址
iptables -t nat -A POSTROUTING -j SNAT --to-source 1.3.1.4
㈣ 配置文件
通过iptables添加的策略并不会永久保存
如果需要永久保存策略,则需要将此记录在配置文件中
/etc/sysconfig/iptables
通过以下命令可以把内存中的iptables策略全部写入配置文件
service iptables save
㈤ 小结
如果是远程管理一个linux主机并修改iptables策略,则必须先允许来自客户端主机的ssh流量确保这是第一条iptables策略,
否则,可能由于配置失误将自己锁在外面