免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: linux-fox
打印 上一主题 下一主题

[OpenBSD] pf中做ftp的重定向问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-08-25 08:18 |只看该作者
我的pf.conf内容如下:
#macros
ext_if="rl1"
int_if="rl0"
icmp_types ="echoreq"
pri_nets="{192.168.0.0/16,127.0.0.0/8,172.16.0.0/12,10.0.0.0/8}"
ftp="192.168.0.80"

#options
set block-policy drop
set loginterface $ext_if

#scrub
scrub in all
#queue
altq on $ext_if cbq bandwidth 8Mb queue {std}
queue std bandwidth 8Mb cbq (default)

#nat/rdr
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr pass on $ext_if proto tcp from any to any port 21 -> $ftp port 21
rdr pass on $ext_if proto tcp from any to any port 49152:65535 -> $ftp port 49152:65535

#filter rules
block all

pass quick on lo0 all

pass in inet proto icmp all icmp-type $icmp_types keep state

pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state

pass in quick on $ext_if inet proto tcp from any to $ext_if port 22 keep state

pass out on $ext_if proto tcp all modulate state flags S/SA queue std
pass out on $ext_if proto {udp,icmp} all keep state queue std

block drop in quick on $ext_if from $pri_nets to any
block drop out quick on $ext_if from any to $pri_nets

##################################################################
#about ftp
#in on $ext_if
pass in quick on $ext_if proto tcp from any to $ftp port 21 keep state
pass out quick on $ext_if proto tcp from $ftp port 20 to any keep state
pass in quick on $ext_if proto tcp from any to $ftp port > 49151 keep state

#out on $int_if
pass out quick on $int_if proto tcp from any to $ftp port 21 keep state
pass in quick on $int_if proto tcp from $ftp port 20 to any keep state
pass out quick on $int_if proto tcp from any to $ftp port > 49151 keep state

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
12 [报告]
发表于 2008-08-25 16:22 |只看该作者
没细看pf.conf,如果用的是vsftp的话,在vsftpd.conf里加两句看看:
pasv_min_port=49151
pasv_max_port=65535

论坛徽章:
0
13 [报告]
发表于 2008-08-25 16:39 |只看该作者
这个早就加上了,不然能在pf.conf制定这个端口范围的重定向和pass么?
不过,pasv_enable=YES,不用加吧,默认好像是开的!

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
14 [报告]
发表于 2008-08-25 16:42 |只看该作者
pasv_enable默认就是YES

论坛徽章:
0
15 [报告]
发表于 2008-08-25 16:52 |只看该作者
但是现在在外面还是不能范围啊,看来问题还是处在pf.conf那!
地址是:ftp://60.218.63.12

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
16 [报告]
发表于 2008-08-25 17:25 |只看该作者
可以啊
*** CuteFTP 8.0 - build Feb  6 2007 ***

状态:>          [2008-8-25 17:23:39] 正在获取列表“”...
状态:>          [2008-8-25 17:23:39] 正在连接到 FTP 服务器... 60.218.63.12:21 (ip = 60.218.63.12)...
状态:>          [2008-8-25 17:23:39] Socket 已连接。正在等候欢迎消息...
                [2008-8-25 17:23:39] 220 (vsFTPd 2.0.6)
状态:>          [2008-8-25 17:23:39] 已连接。正在验证...
命令:>          [2008-8-25 17:23:39] USER anonymous
                [2008-8-25 17:23:39] 331 Please specify the password.
命令:>          [2008-8-25 17:23:39] PASS *****
                [2008-8-25 17:23:39] 230 Login successful.
状态:>          [2008-8-25 17:23:39] 登录成功。
命令:>          [2008-8-25 17:23:39] PWD
                [2008-8-25 17:23:40] 257 "/"
状态:>          [2008-8-25 17:23:40] Home directory: /
命令:>          [2008-8-25 17:23:40] FEAT
                [2008-8-25 17:23:40] 仅仅信息消息:
                211-Features:
                 EPRT
                 EPSV
                 MDTM
                 PASV
                 REST STREAM
                 SIZE
                 TVFS
                 UTF8
                211 End
状态:>          [2008-8-25 17:23:40] 该站点支持 features。
状态:>          [2008-8-25 17:23:40] 该站点支持 SIZE。
状态:>          [2008-8-25 17:23:40] 该站点可以续传中断的下载。
命令:>          [2008-8-25 17:23:40] REST 0
                [2008-8-25 17:23:40] 350 Restart position accepted (0).
命令:>          [2008-8-25 17:23:40] PASV
                [2008-8-25 17:23:40] 227 Entering Passive Mode (58,62,xxx,xxx,226,83)
命令:>          [2008-8-25 17:23:40] LIST
状态:>          [2008-8-25 17:23:40] 正在连接 FTP 数据 socket... 58.62.xxx.xxx:57939...
错误:>           [2008-8-25 17:24:41] 接收服务器响应时发生超时(60000 毫秒)。
错误:>           [2008-8-25 17:24:41] PASV 已失败,正在尝试 PORT。
状态:>          [2008-8-25 17:24:41] 正在等候 0 秒...
状态:>          [2008-8-25 17:24:41] 正在获取列表“/”...
状态:>          [2008-8-25 17:24:41] 正在连接到 FTP 服务器... 60.218.63.12:21 (ip = 60.218.63.12)...
状态:>          [2008-8-25 17:24:41] Socket 已连接。正在等候欢迎消息...
                [2008-8-25 17:24:41] 220 (vsFTPd 2.0.6)
状态:>          [2008-8-25 17:24:41] 已连接。正在验证...
命令:>          [2008-8-25 17:24:41] USER anonymous
                [2008-8-25 17:24:41] 331 Please specify the password.
命令:>          [2008-8-25 17:24:41] PASS *****
                [2008-8-25 17:24:42] 230 Login successful.
状态:>          [2008-8-25 17:24:42] 登录成功。
命令:>          [2008-8-25 17:24:42] PWD
                [2008-8-25 17:24:42] 257 "/"
状态:>          [2008-8-25 17:24:42] Home directory: /
状态:>          [2008-8-25 17:24:42] 该站点支持 features。
状态:>          [2008-8-25 17:24:42] 该站点支持 SIZE。
状态:>          [2008-8-25 17:24:42] 该站点可以续传中断的下载。
命令:>          [2008-8-25 17:24:42] REST 0
                [2008-8-25 17:24:42] 350 Restart position accepted (0).
命令:>          [2008-8-25 17:24:42] PORT 10,0,0,109,15,254
                [2008-8-25 17:24:42] 200 PORT command successful. Consider using PASV.
命令:>          [2008-8-25 17:24:42] LIST
                [2008-8-25 17:24:42] 150 Here comes the directory listing.
                [2008-8-25 17:24:42] 226 Directory send OK.
状态:>          [2008-8-25 17:24:42] 目录列表已完成。

论坛徽章:
0
17 [报告]
发表于 2008-08-25 19:39 |只看该作者
但是用IE登陆不了!

另外:
正在连接 FTP 数据 socket... 58.62.xxx.xxx:57939...
错误:>           [2008-8-25 17:24:41] 接收服务器响应时发生超时(60000 毫秒)。
错误:>           [2008-8-25 17:24:41] PASV 已失败,正在尝试 PORT。
状态:>          [2008-8-25 17:24:41] 正在等候 0 秒...
状态:>          [2008-8-25 17:24:41] 正在获取列表“/”...

这里有超时的字样,难道是数据通道那有问题?

[ 本帖最后由 linux-fox 于 2008-8-25 19:43 编辑 ]

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
18 [报告]
发表于 2008-08-25 21:59 |只看该作者
##################################################################
#about ftp
#in on $ext_if
pass in quick on $ext_if proto tcp from any to $ftp port 21 keep state
pass out quick on $ext_if proto tcp from $ftp port 20 to any keep state
pass in quick on $ext_if proto tcp from any to $ftp port > 49151 keep state


#out on $int_if
pass out quick on $int_if proto tcp from any to $ftp port 21 keep state
pass in quick on $int_if proto tcp from $ftp port 20 to any keep state
pass out quick on $int_if proto tcp from any to $ftp port > 49151 keep state

红色的语句都是有问题,问题出自$ftp.
内网IP怎能在外网口上.

论坛徽章:
0
19 [报告]
发表于 2008-08-25 22:23 |只看该作者
原帖由 congli 于 2008-8-25 21:59 发表

红色的语句都是有问题,问题出自$ftp.
内网IP怎能在外网口上.


我想的是数据包经过重定向后,那么目的地址就由$ext_if变成了$ftp,所以,规则那出现了$ftp。

那么红色的那段,我应该怎么写的?

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
20 [报告]
发表于 2008-08-25 22:33 |只看该作者
由于rdr语句带pass关键字,所以其中两句pass in是多余或者没起作用的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP