打印

〈求助:急〉nat映射的问题:iptables

〈求助:急〉nat映射的问题:iptables

1.WEB服务器 IP:222.*.*.* 系统:windows 2003 ES
2.mail服务器 eth0:223.*.*.* eth1:172.16.33.2 系统:REDHAT ES3
3.内网存储服务器 eth0:10.*.*.* eth1:172.16.33.1 系统:WINDOWS 2003 ES
4.mail服务器eth1和内网存储服务器eth1通过交叉线直连

我准备在web服务器上写个批处理,自动将处于外部的WEB服务器上的重要数据通过mail服务器映射备份到内部的存储服务器上,想把mail服务器上的7001端口映射到内网存储服务器上的ftp上,先前已经在mail上写过iptables,只开了22,80,25,110,3306端口,默认INPUT是DROP的。内网存储服务器上一建立了ftp,目标是:在WEB服务器上,用浏览器打:ftp://223.*.*.*:7001能够成功登陆到内网存储服务器上的ftp目录里面,或者用cuteftp等软件接连223.*.*.*的7001端口能连接到内网存储的172.16.33.1上的ftp上去。
请热心的朋友帮帮我,该怎么写iptables,谢谢!
CCNPing........:-)

TOP

以下操作全在mail服务器上
①echo "backup_ftp 7001">>/etc/services
②建立这样一个文件/etc/xinetd.d/backup_ftp内容如下:
service backup_ftp
{
disable=no
socket_type=stream
wait=no
user=root
redirect=172.16.33.1 21
}
③service xinetd restart
牙好胃口就好!

TOP

好的,我马上做测试。
CCNPing........:-)

TOP

按您的做法后,在浏览器里打入:ftp://user:passwd@223.*.*.*:7001/
打回车
等了一会,弹出一个窗口:windows无法访问此文件夹。请确保输入的文件名是正确的,并且您有权访问此文件夹。详细信息:操作超时。
  不行啊,不用写iptables吗?还有其他方法吗,我在线等。
CCNPing........:-)

TOP

我的方法不用写iptables,
你先要保证内网存储服务器的FTP服务对它的eth1可用,即你要保证在mail服务器上执行下面的命令是成功的:
ftp 172.16.33.1
并能正确的输入用户名和密码。
牙好胃口就好!

TOP

变动一下步骤一试试:
先将上次添加到/etc/services中的最后一行“backup_ftp 7001”删掉,再

echo "backup_ftp 7001/tcp">>/etc/services
echo "backup_ftp 7001/udp">>/etc/services
③service xinetd restart
牙好胃口就好!

TOP

xmlcf你好,我在mail上,ftp 172.16.33.1 完全可用,我刚按照你的办法将backup-ftp 7001删除,并添加了tcp和udp的7001,但结果还是不行,返回消息和刚才一样~,不知道为什么,在线等待你的帮助
CCNPing........:-)

TOP

将backup-ftp 7001删除,并添加了tcp和udp的7001之后要重启xinetd,即
service xinetd restart
如果还不行,请检查你的xinetd是否已经正确打开7001端口:
netstat -anptu|grep 7001
要看到类似的输出才行
tcp           0         0 0.0.0.0:7001                0.0.0.0:*                                    LISTEN          3800/xinetd
牙好胃口就好!

TOP

ecapslock, 很不好意思,我错了,在/etc/services中就已经有7001端口了,不用添加。

现将更正办法描述如下:
在/etc/services中不用添加任何内容
①将以前在/etc/services添加的如下两行内容删掉
back_ftp 7001/tcp
back_ftp 7001/udp
②将先前的/etc/xinetd.d/backup_ftp修改成文件/etc/xinetd.d/afs3-callback内容也修改如下:
service afs3-callback
{
disable=no
socket_type=stream
wait=no
user=root
redirect=172.16.33.1 21
}
③service xinetd restart
牙好胃口就好!

TOP

netstat -anptu|grep 7001后没有出现你说的tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 3800/xinetd
我都做了好几遍了,不知道为什么会这样?
CCNPing........:-)

TOP

看到我上面写的更正办法没有?
牙好胃口就好!

TOP

马上试验
CCNPing........:-)

TOP

刚做了你的跟正方法,netstat -anptu|grep 7001还是没有显示,ftp://user:passwd@223.*.*.*:7001/ 还是提示错误,我忘了告诉你,我内网的数据存储有两块网卡,一快连在内部网(这块上有设网关),一块和223.*.*.*直连,但没有设网关,只是把他们放在同一个子网里面,会不会和这个有关。
CCNPing........:-)

TOP

我不是很清楚你网络的结构,但这个不要紧,你只要保证下面3个条件满足就行
首先,mail服务器到内网存储服务器是通的,验证方法是在mail服务器上执行
ftp 172.16.33.1
能成功登录
其次,web服务器到mail服务器是通的,可以在web服务器上登录mail服务器上的任一个服务(SSH、Telnet),能成功就可以了
再次,mail服务器要做好两个服务器之间的转发,即要有7001端口开启服务
netstat -anptu|grep 7001还是要有结果。
牙好胃口就好!

TOP

如果netstat -anptu|grep 7001还是没有显示的话,查看如下命令:
chkconfig --list|grep afs3-callback
这个命令至少有输出。
牙好胃口就好!

TOP