免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7014 | 回复: 20
打印 上一主题 下一主题

[FTP] 我做了个ftp的nat 测试不过,请大家帮忙看看! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-08 12:13 |只看该作者 |倒序浏览
10可用积分
###########################################################################

# 0. 請輸入你的參數值:
  EXIF='eth1'             # 這個是對外的介面,
  EXNET='192.168.1.0/24'  # 這個是對內的網域!這裡我只設定一個網域而已!

# 底下如無需要,請不要變動了!
# 0.1 Testing your Kernel version ..
  echo -n "Check your kernel version...             "
  kver=`uname -r | cut -c 1-3`
  if [ "$kver" == "2.4" ] || [ "$kver" == "2.5" ]; then
        echo "[OK]"
        echo "Your Linux Kernel Version is no problem!"
  else
        echo "[Failure]"
        echo "Your Linux Kernel Version may not be suported by this script!"
        echo "This scripts will not be runing"
        exit
  fi

# 0.2 Tell you what is this
  echo "  "
  echo "Note:"
  echo "     This script will clear your iptables' rules"
  echo "     Please make sure that you want to do this script!"
  echo "     Ha Ha! No problem ! If you just want to be an NAT server !"
  # 0.3 remove ipchains modules
  ipchains=`lsmod | grep ipchains`
  if [ "$ipchains" != "" ]; then
        rmmod ipchains 2> /dev/null
        modprobe ip_tables 2> /dev/null
  fi

# 1. 宣告變數、啟動 Routing 與清除規則:
  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
  export PATH
  echo "1" > /proc/sys/net/ipv4/ip_forward
  modprobe ip_tables  2> /dev/null
  /sbin/iptables -F
  /sbin/iptables -X
  /sbin/iptables -Z
  /sbin/iptables -F -t nat
  /sbin/iptables -X -t nat
  /sbin/iptables -Z -t nat
  /sbin/iptables -P INPUT   ACCEPT
  /sbin/iptables -P OUTPUT  ACCEPT
  /sbin/iptables -P FORWARD ACCEPT
  /sbin/iptables -t nat -P PREROUTING  ACCEPT
  /sbin/iptables -t nat -P POSTROUTING ACCEPT
  /sbin/iptables -t nat -P OUTPUT      ACCEPT

# 2. 載入模組啦!
  modprobe ip_nat_ftp  2> /dev/null
  modprobe ip_nat_irc  2> /dev/null
  modprobe ip_conntrack  2> /dev/null
  modprobe ip_conntrack_ftp  2> /dev/null
  modprobe ip_conntrack_irc  2> /dev/null

# 3. 啟動 IP 偽裝:
  /sbin/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE
   /sbin/iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 21 -j DNAT --to 192.168.1.210:21
  echo " OK! Your Linux Server Now have been an NAT Sever ! ^_^"

这是我的脚本,只是简单实现 nat,还有就想把内网的ftp隐射出去.但访问ftp是提示connection closed by remote host

[ 本帖最后由 aini2003 于 2007-3-8 12:26 编辑 ]

最佳答案

查看完整内容

那你如何測試有沒有成功?有沒有在外網連線測試呢 ?若你在內網測試的話一定連不上,這點請務必注意。簡單說不可以在 192.168.0.0/24 與 ip server 同區段的主機來連線測試。還有一個問題,你的 log:看出出來你的 192.168.0.238 與 192.168.0.254 分別是 ?--

论坛徽章:
0
2 [报告]
发表于 2007-03-08 12:13 |只看该作者
原帖由 aini2003 于 2007-3-8 17:27 发表于 11楼  
没有两层, 一个NAT router linux as 4的系统,两个网卡,一个外网地址,一个内外地址,上面跑iptables
FTP server 在里面,通过这个 nat router 出去,现在就是想用内网这个做ftp服务器而已.


那你如何測試有沒有成功?有沒有在外網連線測試呢 ?

若你在內網測試的話一定連不上,這點請務必注意。簡單說不可以在 192.168.0.0/24 與 ip server 同區段的主機來連線測試。

還有一個問題,你的 log:

  1. Connected to 192.168.0.238 (Local address 192.168.0.254)
复制代码


看出出來你的 192.168.0.238 與 192.168.0.254 分別是 ?

--

论坛徽章:
0
3 [报告]
发表于 2007-03-08 14:23 |只看该作者
TCP PORT 20

论坛徽章:
0
4 [报告]
发表于 2007-03-08 14:36 |只看该作者
llzqq ,是要把tcp port 20也要做nat 吗
/sbin/iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 20 -j DNAT --to 192.168.1.210:20

还是不可以
iptables -t nat -n -L
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21 to:192.168.1.210:21
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20 to:192.168.1.210:20

网络内部Ftp使用的是 Server_U

[ 本帖最后由 aini2003 于 2007-3-8 15:20 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-03-08 15:40 |只看该作者
看了论坛上以前的帖子都,只要做了nat 21 ,至少都可以连上FTP服务器,但现在我这个没办法连,是不这个映射根本就没起作用,FTP NAT这两条规则是我后来加上去,iptables应该不用重起的吧!我用iptables -t nat -n -L 都能看到!

[root@gzmop nat]# lsmod
Module                  Size  Used by
i915                   81349  2
ipt_MASQUERADE          3649  1
ip_nat_irc              4401  0
ip_conntrack_irc       71921  1 ip_nat_irc
ip_nat_ftp              4913  0
ip_conntrack_ftp       72689  1 ip_nat_ftp
iptable_nat            23173  4 ipt_MASQUERADE,ip_nat_irc,ip_nat_ftp
parport_pc             24705  1

有看到ip_nat_ftp ip_conntrack_ftp这两个模块加载了!

[ 本帖最后由 aini2003 于 2007-3-8 16:43 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-03-08 16:53 |只看该作者
iptable的问题是不不应该发在这里啊,怎么没人理呢?郁闷.........在线等了一个下午!

论坛徽章:
0
7 [报告]
发表于 2007-03-08 16:58 |只看该作者
原帖由 aini2003 于 2007-3-8 16:53 发表于 5楼  
iptable的问题是不不应该发在这里啊,怎么没人理呢?郁闷.........在线等了一个下午!


1. iptables-save 後結果如何呢 ?

2. 你提供訊息 "connection closed by remote host" 這表示 tcp 連線有接通,後續你的程序把連結切斷。

我建議你檢查一下是否 linux ftp 那台主機自己是否設定了 firewall 與 tcp wrapper 阻擋存取。

firewall 就是使用 iptables-save 列出規則,而 tcp wrapper 就是查看 /etc/hosts.deny 與 /etc/hosts.allow 設定。

--

论坛徽章:
0
8 [报告]
发表于 2007-03-08 17:12 |只看该作者

回复 #6 kenduest 的帖子

# Generated by iptables-save v1.2.11 on Thu Mar  8 17:10:41 2007
*nat
REROUTING ACCEPT [10060783:701242982]
OSTROUTING ACCEPT [140:8418]
:OUTPUT ACCEPT [89:5534]
-A PREROUTING -d 210.*.*.* -i eth1 -p tcp -m tcp --dport 20 -j DNAT --to-destination 192.168.0.254:20
-A PREROUTING -d 210.*.*.* -i eth1 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.0.254:21
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth1 -j MASQUERADE
COMMIT
# Completed on Thu Mar  8 17:10:41 2007
# Generated by iptables-save v1.2.11 on Thu Mar  8 17:10:41 2007
*filter
:INPUT ACCEPT [4469471:342500373]
:FORWARD ACCEPT [444744929:300182822729]
:OUTPUT ACCEPT [3293131:263021859]
COMMIT
# Completed on Thu Mar  8 17:10:41 2007

FTPserver 是用windows2003 加上 serv_u架的ftp服务器,在内部网络测试是可以的,上面没有安装firewall.查看其连接记录没有来自网关的数据,从这看来就说外部的连接应该没到这台服务器!

[ 本帖最后由 aini2003 于 2007-3-8 17:21 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-03-08 17:16 |只看该作者
原帖由 aini2003 于 2007-3-8 17:12 发表于 7楼  
# Generated by iptables-save v1.2.11 on Thu Mar  8 17:10:41 2007
*nat
REROUTING ACCEPT
OSTROUTING ACCEPT
:OUTPUT ACCEPT
-A PREROUTING -d 210.21.39.* -i eth1 -p tcp -m tcp --dport 20 - ...


你沒有提供 ftp server 那一台的資訊配置。

你的 ftp server 是 linux-based 系統嗎 ?

--

论坛徽章:
0
10 [报告]
发表于 2007-03-08 17:18 |只看该作者
[5] Thu 08Mar07 15:11:18 - (000005) Connected to 192.168.0.238 (Local address 192.168.0.254)
[6] Thu 08Mar07 15:11:18 - (000005) 220 Serv-U FTP Server v6.2 for WinSock ready...
[2] Thu 08Mar07 15:11:20 - (000005) USER
[6] Thu 08Mar07 15:11:20 - (000005) 530 Not logged in.
[2] Thu 08Mar07 15:11:22 - (000005) QUIT
[6] Thu 08Mar07 15:11:22 - (000005) 221 Goodbye!


这是这台ftp server的一部分log

tcp wrapper ,我的路由器只做简单的nat,没做 host.deny 或者host.allow

[ 本帖最后由 aini2003 于 2007-3-8 17:20 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP