红联Linux门户
Linux帮助

iptables的基本配置

发布时间:2014-08-04 15:07:07来源:linux网站作者:linwaterbin

 ㈠ 基本操作

列出现有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


 ㈢ 例子

① 控制到本机的网络流量

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策略,否则,可能由于配置失误将自己锁在外面。