论坛风格切换切换到宽版
  • 1607阅读
  • 8回复

[问题求助]内网PC无法连接外网ftp服务,不知道iptables哪儿配置不对 [复制链接]

上一主题 下一主题
 
发帖
2006
C币
-235913
威望
346
贡献值
1
银元
-1
铜钱
4370
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
请高手帮忙。
默.认outpu.t链允许,input和forward链drop.
eth1为内.网卡,eth0为外网卡投资
代码如下:
$IPT -A INPUT -i eth1 -s 10.0.0.0/24 -p tcp --dport 3128. -m state --state NEW,ESTABL.ISHED .-j ACCEPT.
$IPT -A INPUT -i eth0 -p tcp --dport 1024:65535 -m state --state. ESTABLIS.HED -j ACCE.PT.

$IPT -A. FORWARD -p. tcp --dport 20 -j ACCEPT    健康
$IPT -A FORWARD -p. tcp --.dport 21 -j ACCEPT.
$IPT -A FORWARD -i eth1 -s 10.0.0.0./24 -.p tcp --dport 22 -j ACCEPT    外汇
$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dp.ort 23 -j. ACCEPT.
$IPT -A FORWA.RD -i eth1 -s 10.0.0.0/24 -p tcp --dport .25 -j ACCEPT[成人用品]
$IPT -.A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dport 80 -j. ACCEPT          婚庆
$IPT -A FORWARD -i eth1 .-s 10.0.0.0/24 -p tcp --dport .110 -j ACCEPT    美容
$IPT -A FORWA.RD -p udp -s. 10.0.0.0/24 --dport 53 -j ACCEPT教育
$IPT -A FOR.WARD -p tcp -s 10.0.0.0/24 --d.port 143 -j ACCEPT.
$IPT -A FORWARD -p tcp -s 10.0.0..0/24 --dpor.t 443 -j ACCEPT[成人用品]
$IPT -A FORWARD -p tcp -s 10.0.0.0/.24 -.-dport 1433 -j ACCEPT   # sql server enabl.e(        游戏          )
$.IPT -A FOR.WARD -p tcp -s 10.0.0.0/24 --dport 1723 -j ACCEPT   # PPT.P enable.
$IPT -A FORWARD -p tcp -s 1.0.0.0.0/24 --dport 1701 -j ACCEPT .  # L2TP学习
$IPT -..A FORWARD -p udp -s 10.0.0.0/24 --dport 1645 -j ACCEPT   # Le.gacy RADIUS              乙肝
$IPT -A FORWAR.D -p udp -s 10.0.0..0/24 --dport 1646 -j ACCEPT   # .Legacy RADIUS(        游戏          )
$IPT -A FORWARD -p udp. -s .10.0.0.0/2.4 --dport 1813 -j ACCEPT   # RADIUS Accounting          婚庆
$IPT -A FO.RWARD -p udp -s 10.0.0.0/.24 --dport 1812 -j ACCEPT   # RADIU.S Authentication.
$IPT -A FOR.WARD -P tcp -s 10.0.0.0/24 --dp.ort 8080 -j ACCEPT   #DHL vpn电脑
#$IPT -A FORWARD -m state --state .ESTABLISHED,RELATED -j ACCE.PT.


#Permit ftp
#$IPT -A INPUT -p tc.p --dport 21 -j ACCE.PT
#$IPT -A INPU.T -p t.cp --dport 20 -j ACCEPT           建材
$IPT -A INPUT -p tcp -..-dport 1024: -m state --state RELATED,EST.ABLISHED -j ACCEPT            杀毒
#$IPT -A FORWARD. -p tcp --dport. 21 -j ACCEPT服务器
#$IPT .-.A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT.
##passive mode
$IPT -A FORWARD -p tcp --sport 1024: --dport .1024: -m state --sta.te R.ELATED,ESTABLISHED -j ACCEPT--------------彩票
##active mode
$IPT -A F.ORWARD -p tcp --sport 20 -m state --s.tate ESTABLISHED,RELATED .-j ACCEPT虚拟主机
$IPT -A FORWARD -m state --state EST.ABLISH.ED,RELATED -j ACCEPT.


#Block virues por.t          婚庆
$IPT. -I INPUT -p tcp --dport 135:13.9 -j REJECT           鲜花
$IPT -I .INPUT -p udp --.dport 135:139 -j REJECT健康
$IPT -I INPUT -p tcp .--dport 445 -j REJE.CT.
$IPT -I INPUT -p udp --dport 445 -.j REJEC.T--- 印刷
$IPT -.I INPUT -p tcp --dpo.rt 4444 -j REJECT电脑
$IPT -I INPUT -p udp --dport 44..44 -j REJECT              乙肝
$IPT -I INPUT -p tcp -.-dport 5554 -.j REJECT[成人用品]
$IPT -I INPUT. -p tcp -.-dport 1434 -j REJECT教育
$IPT -I INPUT -p ud.p --dport 1434 -j. REJECT教育
$IPT -I INPUT -p tcp --.dport 2500 -j RE.JECT[成人用品]
$IPT -I. INPUT -p tcp --dport 5800. -j REJECT<性病>
$IPT -I .INPUT -p tcp --dport 5900 -j REJE.CT             电子
$IPT -I INPUT -p .tcp --dport 6346 -j RE.JECT           鲜花
$IPT -I.. INPUT -p tcp --dport 6667 -j REJECT<性病>
$IPT. -I INPUT -p tcp --dport 939.3 -j REJECT.
$IPT -I INPUT -p t.cp --dport 9995 -j R.EJECT.
$IP.T -.I INPUT -p tcp --dport 9996 -j REJECT域名
$IPT -I INPU.T -p tcp --dport 593 -j. REJECT    外汇
$IPT -I INP.UT -p udp -.-dport 593 -j REJECT.
$IP.T -I INPUT -p udp --dpor.t 69 -j REJECT           女人

$IPT -I FORWARD -p tcp --dpo.rt 135:139 -j. REJECT
$IPT -I FORWARD -p .udp --dport 135:.139 -j REJECT            杀毒
$IPT -I FOR.WARD -p tcp --dport 445 -j R.EJECT          婚庆
$IPT -I FOR.WARD -p udp .--dport 445 -j REJECT<性病>
$IPT -I F.ORWARD -p tcp. --dport 4444 -j REJECT(广告)
$IPT -I FO.RWARD -p .udp --dport 4444 -j REJECT          婚庆
$IPT -I FOR.WARD -p tcp --dport .5554 -j REJECT(        游戏          )
$IPT -I FORWARD -p tcp.. --dport 1434 -j REJECT[成人用品]
$IPT -I .FORWARD -p udp --.dport 1434 -j REJECT外贸
$IPT -I FORWA.RD -p tcp --dport 2500 -j. REJECT--------------彩票
$IPT -I FORWARD -p tcp --d.port 5800 -j. REJECT(广告)
$IPT -I FORWARD -p. tcp --dport 5.900 -j REJECT            杀毒
$IPT -I. FORWARD -p tcp --dport 6346 -.j REJECT健康
$IPT -I FORWARD -p. tcp. --dport 6667 -j REJECT(广告)
$IPT -I FOR.WARD -p tcp --dport 9393 .-j REJECT           女人
$IPT -I FO.RWA.RD -p tcp --dport 9995 -j REJECT健康
$IPT -I FORWARD. -.p tcp --dport 9996 -j REJECT           女人
$IPT -I FORWARD -p .tcp --d.port 593 -j REJECT             电子
$IPT -I .FORWARD -p udp --dport 593 -j R.EJECT.
$IPT -I FORWARD -p. u.dp --dport 69 -j REJECT.
#$.IPT -A FORWARD -m state --state NEW -j ACCE.PT             汽车

[ 本帖最后.由 杀猪.刀 于 2009-8-9 13:04 编辑 ](        游戏          )


最佳答案kenduest
http://upload.bbs.csuboy.com/Mon_1004/126_6717_c2515fb4e40125e.gif[/img]1. 你這樣太多不需要而且很混亂的 rule,不方便討論問題點的。實際 NAT 不就只有短短幾行而已,你這樣太多 rule 很難查出問題點的。初學 iptables 忌諱網路貼一堆 rule 又弄不清楚的。再者您似乎也沒說清楚 ftp 怎樣連不到呢?域名

2. 你的 eth0 與 .eth1 怎麼又是 .private ip ? 這不是也很混亂嗎? 請把你的網絡架構圖畫出來比較好。投资


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
发帖
1968
C币
-235592
威望
358
贡献值
1
银元
0
铜钱
4434
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
1. 你這樣太多不需要而且很混亂的 rule,不方便討論問題點的。實際 NAT 不就只有短短幾行而已,你這樣太多 rule 很難查出問題點的。初學 iptables 忌諱網路貼一堆 rule 又弄不清楚的。再者您似乎也沒說清楚 ftp 怎樣連不到呢?

2. 你的 eth0 與 eth1 怎麼又是 private ip ? 這不是也很混亂嗎? 請把你的網絡架構圖畫出來比較好。


发帖
2004
C币
-60800
威望
397
贡献值
1
银元
-2
铜钱
4591
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
表现为连上外网ftp服务器后,执行ls命令就不动了。


离线hulutang.
发帖
2136
C币
-262553
威望
417
贡献值
1
银元
-1
铜钱
4723
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
如果 FORWARD 默认规则是 DROP
那么 $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 要保留

另外,应该加载 nf_nat_ftp

你再试试结果,看 ftp 登录后 ls 是否仍然卡住?


离线yulingli.
发帖
1912
C币
-235952
威望
344
贡献值
2
银元
-2
铜钱
4187
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
保留了也不行啊。是不是规则先后顺序有问题?
大哥说的是加载ip_nat_ftp模块么?加载了啊

/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

#Refresh rules
$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -X -t nat
$IPT -F -t mangle
$IPT -X -t mangle

#Default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

#Enable loopback
$IPT -A INPUT -i lo -j ACCEPT


离线daxiang800.
发帖
2066
C币
-235436
威望
410
贡献值
1
银元
-3
铜钱
4691
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
1. 請問你是說這台 linux 機器連外,還是你有弄 NAT 部份讓內部 ip 使用這台 linux 連出去

2. 另外你怎麼基本 -m state --state RELATED,ESTABLISHED -j ACCEPT 都沒有呢?


离线regiet.
发帖
2169
C币
-633738
威望
385
贡献值
2
银元
-3
铜钱
4920
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
我内网暂时没有假设FTP服务器,只是内网PC需要访问公网的FTP。需要设定Input规则吗?这个input规则写在什么地方呢?


离线uranas.
发帖
1976
C币
3483
威望
369
贡献值
2
银元
-2
铜钱
4543
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
若你沒特殊設定,你參考原本那篇 iptables FAQ 配置就可以了啊

不過你說內網應該是透過 NAT 連上網吧?只是你第一篇文章內,完全沒有任何 NAT 配置規則呢?不是很奇怪呢

也許請先參考該 FAQ 文章,於 "提供 NAT 服務配置問題" 內的 "一般建議單純化的 NAT 服務配置語法為何" 即可使用,或者是你要針對哪部份問題討論也可以


离线seani.
发帖
1850
C币
-61324
威望
314
贡献值
1
银元
0
铜钱
4059
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
我把完整的规则贴出来,请高手诊断问题在哪儿。
#Define string
IPT=/sbin/iptables
#Mount necessary module
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

#Refresh rules
$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -X -t nat
$IPT -F -t mangle
$IPT -X -t mangle

#Default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

#Enable loopback
$IPT -A INPUT -i lo -j ACCEPT

#Enable ping
$IPT -A FORWARD -s 10.0.0.0/24 -p icmp -j ACCEPT
$IPT -A INPUT -i eth1 -s 10.0.0.0/24 -p icmp --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Permit 10 connections at most
#$IPT -A INPUT -s 10.0.0.0/24 -p tcp --syn -m connlimit --connlimit-above 10 -j DROP
#Prevent Ping of death
$IPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#Prevent SYN flood attrack,1 packet per second is allowed
$IPT -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
#Prevent Denial of Server attrack
$IPT -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#Enable ip forwarded
echo "1">/proc/sys/net/ipv4/ip_forward
#echo "1">/proc/sys/net/ipv4/tcp-syncookies

#NAT rules
$IPT -t nat -A POSTROUTING -o eth0 -s 10.0.0.2 -j SNAT --to 192.168.37.245
$IPT -t nat -A POSTROUTING -o eth0 -s 10.0.0.59 -j SNAT --to 192.168.37.59
$IPT -t nat -A POSTROUTING -o eth0 -s 10.0.0.60 -j SNAT --to 192.168.37.60
$IPT -t nat -A POSTROUTING -o eth0 -s 10.0.0.61 -j SNAT --to 192.168.37.61
#$IPT -t nat -A POSTROUTING -o eth0 -s 10.0.0.62 -j SNAT --to 192.168.37.62
$IPT -t nat -A POSTROUTING -o eth0 -s 10.0.0.193 -j SNAT --to 192.168.37.193

$IPT -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to-source 192.168.37.1

$IPT -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Deny local address
$IPT -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
$IPT -t nat -A PREROUTING -i eth0 -s 127.0.0.0/8 -j DROP
#$IPT -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
#$IPT -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

#Add access rules
$IPT -A INPUT -i eth1 -s 10.0.0.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPT -A INPUT -i eth0 -p tcp --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
$IPT -t nat -A PREROUTING -p udp -s 10.0.0.0/24 --dport 53 -j DNAT --to 192.168.1.33
$IPT -t nat -A PREROUTING -p udp -s 10.0.0.0/24 --dport 53 -j DNAT --to 192.168.1.25
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.245 -p tcp --dport 80 -j DNAT --to 10.0.0.2
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.245 -p tcp --dport 81 -j DNAT --to 10.0.0.44:81
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.245 -p tcp --dport 8001 -j DNAT --to 10.0.0.44:8001
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.59 -j DNAT --to 10.0.0.59
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.60 -j DNAT --to 10.0.0.60
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.61 -j DNAT --to 10.0.0.61
$IPT -t nat -A PREROUTING -i eth0 -d 192.168.37.193 -j DNAT --to 10.0.0.193

#$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -j ACCEPT
#$IPT -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p tcp --dport 20 -j ACCEPT
$IPT -A FORWARD -p tcp --dport 21 -j ACCEPT
$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT
$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dport 23 -j ACCEPT
$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dport 25 -j ACCEPT
$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dport 80 -j ACCEPT
$IPT -A FORWARD -i eth1 -s 10.0.0.0/24 -p tcp --dport 110 -j ACCEPT
$IPT -A FORWARD -p udp -s 10.0.0.0/24 --dport 53 -j ACCEPT
$IPT -A FORWARD -p tcp -s 10.0.0.0/24 --dport 143 -j ACCEPT
$IPT -A FORWARD -p tcp -s 10.0.0.0/24 --dport 443 -j ACCEPT
$IPT -A FORWARD -p tcp -s 10.0.0.0/24 --dport 1433 -j ACCEPT   # sql server enable
$IPT -A FORWARD -p tcp -s 10.0.0.0/24 --dport 1723 -j ACCEPT   # PPTP enable
$IPT -A FORWARD -p tcp -s 10.0.0.0/24 --dport 1701 -j ACCEPT   # L2TP
$IPT -A FORWARD -p udp -s 10.0.0.0/24 --dport 1645 -j ACCEPT   # Legacy RADIUS
$IPT -A FORWARD -p udp -s 10.0.0.0/24 --dport 1646 -j ACCEPT   # Legacy RADIUS
$IPT -A FORWARD -p udp -s 10.0.0.0/24 --dport 1813 -j ACCEPT   # RADIUS Accounting
$IPT -A FORWARD -p udp -s 10.0.0.0/24 --dport 1812 -j ACCEPT   # RADIUS Authentication
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Permit ftp
##passive mode
$IPT -A FORWARD -p tcp --sport 1024: --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
##active mode
$IPT -A FORWARD -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT


#Block virues port
$IPT -I INPUT -p tcp --dport 135:139 -j REJECT
$IPT -I INPUT -p udp --dport 135:139 -j REJECT
$IPT -I INPUT -p tcp --dport 445 -j REJECT
$IPT -I INPUT -p udp --dport 445 -j REJECT
$IPT -I INPUT -p tcp --dport 4444 -j REJECT
$IPT -I INPUT -p udp --dport 4444 -j REJECT
$IPT -I INPUT -p tcp --dport 5554 -j REJECT
$IPT -I INPUT -p tcp --dport 1434 -j REJECT
$IPT -I INPUT -p udp --dport 1434 -j REJECT
$IPT -I INPUT -p tcp --dport 2500 -j REJECT
$IPT -I INPUT -p tcp --dport 5800 -j REJECT
$IPT -I INPUT -p tcp --dport 5900 -j REJECT
$IPT -I INPUT -p tcp --dport 6346 -j REJECT
$IPT -I INPUT -p tcp --dport 6667 -j REJECT
$IPT -I INPUT -p tcp --dport 9393 -j REJECT
$IPT -I INPUT -p tcp --dport 9995 -j REJECT
$IPT -I INPUT -p tcp --dport 9996 -j REJECT
$IPT -I INPUT -p tcp --dport 593 -j REJECT
$IPT -I INPUT -p udp --dport 593 -j REJECT
$IPT -I INPUT -p udp --dport 69 -j REJECT

$IPT -I FORWARD -p tcp --dport 135:139 -j REJECT
$IPT -I FORWARD -p udp --dport 135:139 -j REJECT
$IPT -I FORWARD -p tcp --dport 445 -j REJECT
$IPT -I FORWARD -p udp --dport 445 -j REJECT
$IPT -I FORWARD -p tcp --dport 4444 -j REJECT
$IPT -I FORWARD -p udp --dport 4444 -j REJECT
$IPT -I FORWARD -p tcp --dport 5554 -j REJECT
$IPT -I FORWARD -p tcp --dport 1434 -j REJECT
$IPT -I FORWARD -p udp --dport 1434 -j REJECT
$IPT -I FORWARD -p tcp --dport 2500 -j REJECT
$IPT -I FORWARD -p tcp --dport 5800 -j REJECT
$IPT -I FORWARD -p tcp --dport 5900 -j REJECT
$IPT -I FORWARD -p tcp --dport 6346 -j REJECT
$IPT -I FORWARD -p tcp --dport 6667 -j REJECT
$IPT -I FORWARD -p tcp --dport 9393 -j REJECT
$IPT -I FORWARD -p tcp --dport 9995 -j REJECT
$IPT -I FORWARD -p tcp --dport 9996 -j REJECT
$IPT -I FORWARD -p tcp --dport 593 -j REJECT
$IPT -I FORWARD -p udp --dport 593 -j REJECT
$IPT -I FORWARD -p udp --dport 69 -j REJECT
#$IPT -A FORWARD -m state --state NEW -j ACCEPT

[ 本帖最后由 杀猪刀 于 2009-8-11 13:58 编辑 ]

快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个