LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1470|回复: 8

如何让外部IP访问局域网内的FTP服务器资源

[复制链接]
发表于 2005-3-3 21:59:41 | 显示全部楼层 |阅读模式
我网络状况是这样的:
服务器OS RHEL4,
双网卡
eth0 连接局域网IP为:192.168.1.250/255.255.0;
eth1连外网通过ADSL拨号上网;
内部一台192.168.1.200机器上做了一个WEB服务
局域网中的电脑已可以通过服务器来上网了,现在就是不知道怎么写iptables进行端口转发

望不吝赐教!!小弟在此先谢谢啦
发表于 2005-3-3 22:43:31 | 显示全部楼层
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.1.200:21
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.200 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.1.250
iptables –A INPUT –p tcp –dport 21 –i ppp0 –j ACCEPT
好像这个就行了吧。不知我写得对不对。你可看看精华贴。很多的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-4 12:47:37 | 显示全部楼层
我这这样写的:
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 80 -j DNAT --to-destination 192.168.1.200:80
这样也可以的,跟你第一句就-i ppp0 -m tcp这个地方不同,有什么区别吗?
你上面第三句的意思是不是接受从ppp0的21端口的访问?
第二句是什么意思,我不太明白
回复 支持 反对

使用道具 举报

发表于 2005-3-4 14:04:14 | 显示全部楼层
修改/etc/sysconfig/iptables文件:
=======================================================
# Firewall configuration written by lokkit
# Manual customization of this file is not recommended.
# Note: ifup-post will punch the current nameservers through the
# firewall; such entries will *not* be listed here.
*nat
REROUTING ACCEPT [0:0]
OSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0]-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
================================================
我的台式机不在身边,你试一下回个贴,我想会行的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-4 16:42:15 | 显示全部楼层
Post by chinajz

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT


你这上面哪条语句是表示端口转发的哦?好象没有吧
回复 支持 反对

使用道具 举报

发表于 2005-3-5 09:48:12 | 显示全部楼层
抱歉,我这里提到进针对adsl的ip欺骗:
-A POSTROUTING -o ppp0 -j MASQUERADE
将/etc/sysconfig/network文件中的
FORWARD_IPV4=false改为FORWARD_IPV4=true来启用IP转发
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-5 10:16:28 | 显示全部楼层
我想再问一个问题,关于iptables命令中有的地方用"-",有的地方用"--",这个有什么区别的?
回复 支持 反对

使用道具 举报

发表于 2005-3-5 13:01:28 | 显示全部楼层
(摘自http://blog.csdn.net/linuxnote/archive/2004/08/26/85566.aspx)
ipchains 和 iptables 在语法上的主要的差异,注意如下:
1. 在 ipchains 中,诸如 input 链,是使用小写的 chains 名,在 iptables 中,要改用大写 INPUT。
2. 在 iptables 中,要指定规则是欲作用在那一个规则表上(使用 -t 来指定,如 -t nat),若不指定,则预设是作用在 filter 这个表。
3. 在 ipchains 中, -i 是指介面(interface),但在 iptables 中,-i 则是指进入的方向,且多了 -o,代表出去的方向。
4. 在 iptables 中,来源 port 要使用关键字 --sport 或 --source-port
5. 在 iptables 中,目的 port 要使用关键字 --dport 或 --destination-port
6. 在 iptables 中,"丢弃" 的处置动作,不再使用 DENY 这个 target,改用 DROP。
7. 在 ipchains 的记录档功能 -l,已改为目标 -j LOG,并可指定记录档的标题。
8. 在 ipchains 中的-y,在 iptables 中可用 --syn 或 --tcp-flag SYN,ACK,FIN SYN
9. 在 iptables 中,imcp messages 型态,要加上关键字 --icmp-type,如:

iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPT

iptables的详细资料:
http://iptables-tutorial.frozent ... rial-cn-1.1.19.html
回复 支持 反对

使用道具 举报

发表于 2005-3-6 06:49:50 | 显示全部楼层
ftp服务占用20,21两个端口
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表