免费注册 查看新帖 |

Chinaunix

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

[OpenBSD] openbsd下pf怎样才能限制ftp出去? 望高手指教! (在BZ的帮助下,已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-29 10:55 |只看该作者 |倒序浏览
本人是刚接触openbsd,由于公司管理的要求,客户机是不能出外网的,但是有个别的客户机是要连外面的ftp服务器拿文件,怎样做才能限制到客户机只能连指定的外网ftp服务器?
之前是用trustix,这个限制用iptables就很简单,由于pf多了一个ftp-proxy中间人,不知从什么地方下手了.

[ 本帖最后由 tidezcy 于 2006-10-5 09:12 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-09-29 11:05 |只看该作者

如下

pass out on $ext_if proto tcp to 123.45.67.89 port 21

论坛徽章:
0
3 [报告]
发表于 2006-09-29 11:50 |只看该作者
原帖由 mcwin 于 2006-9-29 11:05 发表
pass out on $ext_if proto tcp to 123.45.67.89 port 21


我这里的情况用上面这句也是不行的,这是我的pf.conf,192.168.2.13现在可以访问外面的所有ftp服务器,现在就是想限制访问指定的ftp server,

ext_if="vr0"
int_if="xl0"

tcp_services="{ 22, 113 }"
icmp_types="echoreq"

NETWORK_A="192.168.2.0/24"

priv_nets="{
  127.0.0.0/8,
  192.168.0.0/16,
  172.16.0.0/12,
  10.0.0.0/8
}"

# set optimization aggressive
set optimization conservative
set block-policy return
set loginterface $ext_if

scrub in all
nat on $ext_if from !($ext_if) -> ($ext_if:0)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"

rdr on $int_if proto tcp from any to any port www -> 127.0.0.1 port 3128
rdr pass on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021

block all
pass on lo0 all
anchor "ftp-proxy/*"

block drop in log quick on $ext_if from $priv_nets to any
block drop out log quick on $ext_if from any to $priv_nets

pass in log quick on $ext_if inet proto tcp from any to ($ext_if) port 22 flags S/SAFR keep state

pass in inet proto icmp all icmp-type echoreq keep state
pass out inet proto icmp all icmp-type echoreq keep state

## .: filter select :.
### pass in on $int_if from $int_if:network to any  keep state   #注释这句是限制lan用户出去#
pass out on $int_if from any to $int_if:network keep state

# pass in on $int_if inet proto tcp from $int_if:network to 127.0.0.1 port 3128  keep state
# pass out on $ext_if inet proto tcp from any to any port www keep state

pass out on $ext_if proto tcp from ($ext_if) to any modulate state flags S/SA
pass out on $ext_if inet proto {udp,icmp} from ($ext_if) to any  keep state

## .: allow outbound part :.
pass in on $int_if inet proto udp from $int_if:network to { 202.96.128.68, 202.96.128.86 } port domain  keep state
pass in on $int_if inet proto tcp from $int_if:network to 1.2.3.4 port 110  modulate state
pass in on $int_if inet proto tcp from $int_if:network to 5.6.7.8 port 25  modulate state

pass in on $int_if inet proto tcp from 192.168.2.13 to 127.0.0.1  port {21,>1024}

## end at here.

[ 本帖最后由 tidezcy 于 2006-9-29 13:44 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-09-29 22:55 |只看该作者

把8021端口能访问的IP限制一下

把8021端口能访问的IP限制一下

论坛徽章:
0
5 [报告]
发表于 2006-10-04 11:12 |只看该作者
原帖由 mcwin 于 2006-9-29 22:55 发表
把8021端口能访问的IP限制一下


但问题是有些客户端要访问这个外部FTP,另一些客户端要访问另一个外部FTP,不同部门的要求不一样.
难道在pf下控制访问外部ftp服务器就这么难吗?

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
6 [报告]
发表于 2006-10-04 11:31 |只看该作者
原帖由 tidezcy 于 2006-10-4 11:12 发表


但问题是有些客户端要访问这个外部FTP,另一些客户端要访问另一个外部FTP,不同部门的要求不一样.
难道在pf下控制访问外部ftp服务器就这么难吗?

不难!
rdr pass on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021

研究一下from any 及to any 吧.

论坛徽章:
0
7 [报告]
发表于 2006-10-04 18:44 |只看该作者
原帖由 congli 于 2006-10-4 11:31 发表

不难!

研究一下from any 及to any 吧.



谢谢BZ! 从这里控制还真的行.  没有想到这一点,太笨了.  

pf和iptables比起来真是太灵活了,转过来是对的.   

[ 本帖最后由 tidezcy 于 2006-10-5 09:13 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-10-04 18:48 |只看该作者
原帖由 tidezcy 于 2006-10-4 18:44 发表



谢谢BZ! 从这里控制还真的行.  没有想到这一点,太笨了.  

pf和iptables比起来真是太灵活了,转过来还真的值.   


嗯。这才叫“吃水不忘挖井人”

论坛徽章:
0
9 [报告]
发表于 2006-10-04 18:52 |只看该作者
另外个人感觉pf的流程没有iptables清晰,有见过网上贴的pf流程图,还是理解的不清楚,不知哪位高人能否写个pf的流程指引出来?

论坛徽章:
0
10 [报告]
发表于 2006-10-04 20:42 |只看该作者
pass out quick on $ext_if inet proto tcp from <DPS1> to <FTPSVRS1> port ftp keep state
...
pass out quick on $ext_if inet proto tcp from <DPSx> to <FTPSVRSx> port ftp keep state
block drop out on $ext_if inet proto tcp to port ftp keep state
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP