内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
xk10
帖子: 35
注册时间: 2007-11-06 0:18

内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#1

帖子 xk10 » 2009-08-19 18:48

这是脚本

代码: 全选

#!/bin/sh -e
echo "1" > /proc/sys/net/ipv4/ip_forward
#clean
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j SNAT --to 222.88.*.41
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to 222.88.*.41


#INPUT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i eth3 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth3 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth2 -p udp --dport 53 -j ACCEPT

#forward
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#me
iptables -A FORWARD -s 192.168.0.6 -m mac --mac-source 00-E1-06-71-7A-DD -j ACCEPT
iptables -A FORWARD -m mac --mac-source 00-0E-E8-D8-BC-5B -j ACCEPT
#qin
iptables -A FORWARD -s 192.168.0.7 -m mac --mac-source 00-23-4E-DD-9B-FC -j ACCEPT
#zhang
iptables -A FORWARD -s 192.168.0.8 -m mac --mac-source 00-03-0D-40-FB-61 -j ACCEPT
#bangongshi
iptables -A FORWARD -s 192.168.0.11 -m mac --mac-source 00-0A-EB-6D-34-F9 -j ACCEPT
#wangheng
iptables -A FORWARD -s 192.168.0.12 -m mac --mac-source 00-22-FA-26-A7-C0 -j ACCEPT
#shengjia
iptables -A FORWARD -s 192.168.0.13 -m mac --mac-source 00-22-FA-78-11-E8 -j ACCEPT
#feng
iptables -A FORWARD -s 192.168.0.15 -m mac --mac-source 00-22-FA-30-0F-82 -j ACCEPT
#liu
iptables -A FORWARD -s 192.168.0.17 -m mac --mac-source 00-21-00-D3-F4-51 -j ACCEPT
#penghao
iptables -A FORWARD -s 192.168.0.19 -m mac --mac-source 00-1F-D0-9E-A9-93 -j ACCEPT
#shujuan
iptables -A FORWARD -s 192.168.0.21 -m mac --mac-source 00-1F-3C-DB-7C-8C -j ACCEPT
#fan
iptables -A FORWARD -s 192.168.0.29 -m mac --mac-source 00-21-00-D3-F8-31 -j ACCEPT
#liding
iptables -A FORWARD -s 192.168.0.27 -m mac --mac-source 00-23-5A-6C-42-84 -j ACCEPT
iptables -A FORWARD -s 192.168.0.30 -m mac --mac-source 00-E0-4C-45-31-29 -j ACCEPT
#jifang
iptables -I FORWARD -m iprange --src-range 192.168.0.30-192.168.0.254 -m time --timestart 10:40 --timestop 11:30 -j ACCEPT
iptables -I FORWARD -m iprange --src-range 192.168.0.30-192.168.0.254 -m time --timestart 16:00 --timestop 22:00 -j ACCEPT
eth2 wlan eth3 lan ip我加了*号,那没问题的.
iptables -P INPUT DROP 改为iptables -P INPUT ACCEPT路由就可以上了.(这样是端口全开,我感觉我的开了外网80,53端口可怎么还不能上啊.)希望指出问题...
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#2

帖子 angelus » 2009-08-19 21:21

这里要明白一个概念,INPUT链是保护本机的,OUTPUT链是限制本机的,FORWARD链是配置其他机器的!
所以,别的机器可以上网,是因为FORWARD链设置没问题,本机无法连接,问题就出来INPUT上

iptables -A INPUT -i eth3 -p tcp --dport 22 -j ACCEPT (其他那几句就不写了)
原因很简单,注意自己写的网卡接口,eth3是内网的接口
意思为:从 内网接口进入的 目的为22端口 的tcp协议包 可以进入本机
其他几句规则意思类似,只牵扯到内网访问本机22,53,80的包可以通过
但本机访问外网,并不只是只要通过OUTPUT链通过就行的,必须要让回应的包可以进入本机
但你只允许内网那几个端口包可以通过,所以外网回应的包只能匹配默认规则为DORP了!
你的包可以通过OUTPUT到达别人的服务器,但无法得到回应的!
因为你已经把发往本机回应的包丢弃掉了!

如果还是想把DORP做为默认规则
只需要加入这句
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
这样,从外网返回的包就可以通过了,但如果是外网主动发过来的包,还是会被丢弃的,如果你开了22端口。最好在其后加上
iptables -A INPUT -i eth2 -p tcp --dport 22 -j ACCEPT
上次由 angelus 在 2009-08-19 22:00,总共编辑 2 次。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#3

帖子 angelus » 2009-08-19 21:36

iptables -A FORWARD -s 192.168.0.30 -m mac --mac-source 00-E0-4C-45-31-29 -j ACCEPT
#jifang
iptables -I FORWARD -m iprange --src-range 192.168.0.30-192.168.0.254 -m time --timestart 10:40 --timestop 11:30 -j ACCEPT
iptables -I FORWARD -m iprange --src-range 192.168.0.30-192.168.0.254 -m time --timestart 16:00 --timestop 22:00 -j ACCEPT

这三句也有点问题,在实际应用中你会发现192.168.0.30在规定时间段内,是个例外,它可以在任何时间都可以连接上外网,原因是你规则重复而发生的先后顺序问题,在第一句30机器的包就会被送出链,根本不会去匹配后两条规则
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#4

帖子 angelus » 2009-08-19 21:47

最后在提醒下,互联网上最愚蠢的六个策略,排第一的就是默认通过
这以前的的inter网上这是必须的,但对于今天的网络却是远远不够的安全的
所以,最好把OUTPUT链默认为DORP,然后在选择开放必须的!
防火墙上除了必须的远程连接ssh服务,最好不要开放任何端口服务!

以现在的防火墙规则来说,遗漏了很多重要的方面,基本来说还是相当脆弱的。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
xk10
帖子: 35
注册时间: 2007-11-06 0:18

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#5

帖子 xk10 » 2009-08-20 18:24

代码: 全选

#!/bin/sh -e
echo "1" > /proc/sys/net/ipv4/ip_forward
#clean
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j SNAT --to 222.88.17.42
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to 222.88.17.42


#INPUT
iptables -P INPUT DROP
iptables -A INPUT -i eth3 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -i eth2 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#output
#iptables -P OUTPUT ACCEPT
iptables -P OUTPUT DROP
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
#forward
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#me
iptables -A FORWARD -s 192.168.0.6 -m mac --mac-source 00-E1-06-71-7A-DD -j ACCEPT
iptables -A FORWARD -m mac --mac-source 00-0E-E8-D8-BC-5B -j ACCEPT
#qin
iptables -A FORWARD -s 192.168.0.7 -m mac --mac-source 00-23-4E-DD-9B-FC -j ACCEPT
#zhang
iptables -A FORWARD -s 192.168.0.8 -m mac --mac-source 00-03-0D-40-FB-61 -j ACCEPT
#bangongshi
iptables -A FORWARD -s 192.168.0.11 -m mac --mac-source 00-0A-EB-6D-34-F9 -j ACCEPT
#wangheng
iptables -A FORWARD -s 192.168.0.12 -m mac --mac-source 00-22-FA-26-A7-C0 -j ACCEPT
iptables -A FORWARD -m mac --mac-source 00-23-8B-6D-4F-DB -j ACCEPT
#shengjia
iptables -A FORWARD -s 192.168.0.13 -m mac --mac-source 00-22-FA-78-11-E8 -j ACCEPT
#feng
iptables -A FORWARD -s 192.168.0.15 -m mac --mac-source 00-22-FA-30-0F-82 -j ACCEPT
#liu
iptables -A FORWARD -s 192.168.0.17 -m mac --mac-source 00-21-00-D3-F4-51 -j ACCEPT
#penghao
iptables -A FORWARD -s 192.168.0.19 -m mac --mac-source 00-1F-D0-9E-A9-93 -j ACCEPT
#shujuan
iptables -A FORWARD -s 192.168.0.21 -m mac --mac-source 00-1F-3C-DB-7C-8C -j ACCEPT
#fan
iptables -A FORWARD -s 192.168.0.29 -m mac --mac-source 00-21-00-D3-F8-31 -j ACCEPT
#liding
iptables -A FORWARD -s 192.168.0.27 -m mac --mac-source 00-23-5A-6C-42-84 -j ACCEPT
iptables -A FORWARD -s 192.168.0.30 -m mac --mac-source 00-E0-4C-45-31-29 -j ACCEPT
#jifang
iptables -I FORWARD -m iprange --src-range 192.168.0.35-192.168.0.254 -m time --timestart 10:40 --timestop 11:30 -j ACCEPT
iptables -I FORWARD -m iprange --src-range 192.168.0.35-192.168.0.254 -m time --timestart 16:00 --timestop 22:00 -j ACCEPT
iptables -P OUTPUT DROP后,远程apt-get update无法连网.iptables -P OUTPUT ACCEPT后可以....
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#6

帖子 angelus » 2009-08-20 19:06

OUTPUT是限制本机对外连接的,设置默认规则为DORP后,要想用本机主动连接外网,就必须在设置开放的规则
比如要更新系统,就开放apt-get这个地址的IP或网络名称(用网络地址要开放53端口)
IPTABLES -A OUTPUT -p tcp -d 111.111.111.111 -j ACCEPT
IPTABLES -A OUTPUT -p tcp -d http://www.123.com -j ACCEPT
IPTABLES -A OUTPUT -P udp --dport 53 -j ACCEPT
如果使用ip地址,就不需要后两句规则(这些是具体地址的限制,也可以使用目标端口来确定某一种服务,如80)
如果使用www这类网址,就需要能访问外网的53端口
另外要使用本机上网页,也需要能让53端口的包通过
要访问其他的就必须写规则放行相应的包,虽然麻烦,但是必须的,防火墙本机必须是安全的!
而且INPUT,OUTPUT并不影响其他机器的上网,只是保护本机和限制本机用的!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
xk10
帖子: 35
注册时间: 2007-11-06 0:18

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#7

帖子 xk10 » 2009-08-21 8:37

这样感觉有点麻烦,上哪个网站就得加入OUTPUT允许,太麻烦了。
我试了试,加入IP后确实可以上网。不过感觉没有必要把output drop了。INPUT设置为drop已经可以起到过滤数据了,已经很安全了。
自己的想法,不过跟楼主学了不少东西。谢谢!!!
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#8

帖子 angelus » 2009-08-21 11:55

因为放火墙主机必须要安全,所以限制本机对外的连接很重要
一个一个开放ip地址确实很麻烦,一般都是匹配-dprot xx的

还有必须默认DORP的重要原因,是可以限制主机随意对外的连接,这可以阻止已经中了木马或后门程序的放火墙对外连接通讯。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#9

帖子 jjwawa » 2009-08-29 21:26

学习,支持大侠 :em11 :em11
头像
qq126512306
帖子: 339
注册时间: 2007-08-31 9:17

Re: 内网可以上网,网关本机不能上网,高手看IPTABLE问题在哪里?

#10

帖子 qq126512306 » 2009-09-01 15:34

学习学习。。。又看到了angelus的身影。。。受益非浅!!!
回复