iptables由浅入深(2语法实例)

配置SNAT命令基本语法


iptables -t nat -A POSTROUTING -o 网络接口 -j SNAT --to-source IP地址

把10.0网段通过221.130.58.52转发出去

iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth1 -j SNAT --to-source 221.130.58.52

/etc/init.d/iptables save

配置DNAT命令基本语法

iptables -t nat -A PREROUTING -i 网络接口 -p 协议 --dport 端口 -j DNAT --to-destination IP地址

把202.202.202.1 的访问转发到内网192.168.0.101上

iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101

iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1

/etc/init.d/iptables save

(1)删除策略

iptables -F:清空所选链中的规则,如果没有指定链则清空指定表中所有链的规则

iptables -X:清除预设表filter中使用者自定链中的规则

iptables -Z:清除预设表filter中使用者自定链中的规则



(2)设置默认策略

设置默认策略为关闭filter表的INPPUT及FORWARD链开启OUTPUT链,nat表的三个链PREROUTING、OUTPUT、POSTROUTING全部开启 默认全部链都是开启的,所以有些命令可以不操作,另外mangle表本文没用到,所以不做处理,mangle主要用在数据包的特殊变更处理上,比如修改TOS等特性。


2、设置回环地址

有些服务的测试需要使用回环地址,为了保证各个服务的正常工作,需要允许回环地址的通信,RHCE课程-RH253Linux服务器架设笔记二-NFS服务器配置己有涉及,如果不设置回环地址,有些服务不能启动哈~。

iptables -A INPUT -i lo -j ACCEPT


3、连接状态设置

为了简化防火墙的配置操作,并提高检查的效率,需要添加连接状态设置

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

连接跟踪存在四种数据包状态

NEW:想要新建连接的数据包

INVALID:无效的数据包,例如损坏或者不完整的数据包

ESTABLISHED:已经建立连接的数据包

RELATED:与已经发送的数据包有关的数据包

4、设置80端口转发

公司网站需要对外开放,所以我们需要开放80端口

iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

5、DNS相关设置

为了客户端能够正常使用域名访问互联网,我们还需要允许内网计算机与外部DNS服务器的数据转发。

开启DNS使用UDP、TCP的53端口

iptables -A FORWARD -p tcp --dport 53 -j ACCEPT

iptables -A FORWARD -p udp --dport 53 -j ACCEPT


6、允许访问服务器的SSH

管理员会通过外网进行远程管理,所以我们要开启SSH使用的TCP协议22端口

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

7、允许内网主机登录MSN和QQ相关设置

QQ能够使用TCP80、8000、443及UDP8000、4000登录,而MSN通过TCP1863、443验证。因此只需要允许这些端口的FORWARD转发即可以正常登录。

iptables -A FORWARD -p tcp --dport 1863 -j ACCEPT

iptables -A FORWARD -p tcp --dport 443 -j ACCEPT

iptables -A FORWARD -p tcp --dport 8000 -j ACCEPT

iptables -A FORWARD -p udp --dport 8000 -j ACCEPT

iptables -A FORWARD -p udp --dport 4000 -j ACCEPT

8、允许内网主机收发邮件

客户端发送邮件时访问邮件服务器的TCP25端口。接收邮件时访问,可能使用的端口则较多,UDP协议以及TCP协议的端口:110、143、993及995

smtp:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

pop3:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 110 -j ACCEPT

imap:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 143 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 143 -j ACCEPT

imaps:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 993 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 993 -j ACCEPT

pop3s:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 995 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 995 -j ACCEPT

9、NAT端口映射设置

由于局域网的地址为私网地址,在公网上不合法哈~所以必须将私网地址转为服务器的外部地址进行地址映射哈~连接外网接口为ppp0

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

MASQUERADE和SNAT作用一样哈~相样是提供源地址转换的操作,但是MASQUERADE是针对外部接口为动态IP地址来设置滴,不需要使用--to-source指定转换的IP地址。如果网络采用的是拨号方式接入互联网,而没有对外的静态IP地址(主要用在动态获取IP地址的连接,比如ADSL拨号、DHCP连接等等),那么建议使用MASQUERADE



注意:MASQUERADE是特殊的过滤规则,其只可以映射从一个接口到另一个接口的数据

10、内网机器对外发布WEB网站

内网WEB服务器IP地址为192.168.0.3,我们需要进行如下配置,当公网客户端访问服务器时,防火墙将请求映射到内网的192.168.0.3的80端口

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80

iptables -t nat -A PREROUTING -d 221.130.58.50 -p tcp --dport 222 -j DNAT --to-destination 10.0.0.3:22

11、保存与恢复iptables配置

保存:iptables-save

iptables-save [-c] [-t 表名]

-c:保存包和字节计数器的值。可以使在重启防火墙后不丢失对包和字节的统计

-t:用来保存哪张表的规则,如果不跟-t参数则保存所有的表

可以使用重定向命令来保存这些规则集

iptables-save > /etc/iptables-save

恢复:iptables-restore

iptables-restore [-c] [-n]

-c:如果加上-c参数则表示要求装入包和字节计数器

-n:表示不覆盖己有的表或表内的规则,默认情况下是清除所有己存在的规则

使用重定向来恢复由iptables-save保存的规则集

iptables-restore > /etc/iptables-save

如果要在服务或系统重启后依然生效

service iptables save

注意:

SNAT将源网络地址进行转换,只能用在nat表的POSTROUTING链中,只要连接的第一个符合条件的包被SNAT了,那么这个连接的其他所有的数据包都会自动地被SNAT。与SNAT对应,DNAT将目的地址进行转换,只能用在nat表的PREROUTIONG和OUTPUT链中,或者是被这两条链调用的链里面。包含DNAT的链不能被除此之外的其他链调用,比如POSTROUTING链

附:

我们可以通过设置禁止访问具体域名和IP地址哈~

禁止访问QQ主页:

[root@rhel5 ~]# iptables -A FORWARD -d [url]www.qq.com[/url] -j DROP

禁止访问指定IP地址:

[root@rhel5 ~]# iptables -A FORWARD -d 119.147.15.17 -j DROP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值