Network 版 (精华区)
发信人: mxmgy (MXM), 信区: Network
标 题: 帮人做了一个实验室服务器
发信站: 哈工大紫丁香 (Fri Aug 5 00:00:45 2005), 转信
使用的是FreeBSD+pf
昨天有人问我winroute和sygate的使用问题,这些东西我都没有用过
后来决定给他用FreeBSD做一个。
pf的说明书看了不少次了,但是nat转发这部分只看过没有实现过
以前玩虚拟机的时候用ipfw做个,但是ipfw限制ip的规则写起来不爽。
以后可能还会用到,所以写下来
首先编译内核,使其支持pf和ALTQ
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
ALTQ这部分必须有,否则不能nat
这也是为什么要编译内核了,如果只用到pf,大可以开机加载
/etc/rc.conf
defaultrouter="220.118.234.254"
hostname="www.123.com"
ifconfig_dc0="inet 202.118.234.13 netmask 255.255.255.0"
ifconfig_dc1="inet 192.168.254.1 netmask 255.255.255.0"
inetd_enable="YES"
pf_enable="YES"
pflog_enable="YES"
/etc/sysctl.conf
net.inet.ip.forwarding=1
开启 NAT 的 IP Forwarding 环境
/etc/inetd.conf
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
打开 ftp 的替代 port 如此 NAT 內部才能对外使用 ftp 抓東西
/etc/pf.conf
table <freeip> persist file "/etc/freeip"
int_if = "dc1"
ext_if ="dc0"
set block-policy return
set loginterface $ext_if
scrub in all
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
block all
pass from any to <freeip>
freeip中加上如下3行
127.0.0.0/8 允许ftp
172.16.0.0/16 10公寓ip段
192.168.0.0/16 允许内网
完毕,因为只为了一个nat,没有给做很多优化,目前工作良好
--
Linux is for people who hate Windows
BSD is for people who love UNIX
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 172.16.6.98]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.168毫秒