Duangw

home-gate

操作系统版本:FreeBSD 7.2

 

1 硬件

配置3块网卡,分别映射到/dev/vmnet1、/dev/vmnet3、/dev/vmnet2。

 

2 初始安装

使用CDROM方式安装,采用standard标准模式。

安装软件包类型:Developer。

不安装ports,后面单独安装新的版本。

配置第一块网卡em0的ip地址。

启用ssh,其余网络服务都不开启。

建立普通用户。

参考:FreeBSD使用手册-安装FreeBSD

 

3 配置网络

通过sysinstall工具配置其余两块网卡,设置路由:

# sysinstall

 

4 安装补丁

使用freebsd-update进行二进制方式的更新:

# freebsd-update fetch
# freebsd-update install

需要临时在/etc/resolv.conf中设置一个外网的域名服务器,完毕再关闭。

 

5 安装ports

初次安装:

# portsnap fetch
# portsnap extract

ports会不断更新,在后面的使用过程中,需要不定期的进行更新。

更新方法:

# portsnap fetch
# portsnap update

参考:FreeBSD使用手册-使用Ports Collection

 

6 安装ports管理工具

编辑/etc/make.conf,使用本地镜像下载源代码包:

MASTER_SITE_OVERRIDE?=ftp://10.10.10.199/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

这些工具用来处理第三方软件包的升级和修补:

# cd /usr/ports/ports-mgmt/portmanager
# make install
# cd /usr/ports/ports-mgmt/portaudit
# make install

首次运行portaudit,需要下载当前的审计库:

# portaudit -Fda

平时需要不定期的运行portaudit,以发现可能存在的漏洞:

# portaudit -a

检查当前安装的软件包的版本情况:

$ pkg_version -v

对审计需要修补的软件包,要马上升级。以portmanager升级ruby18为例:

# portmanager lang/ruby18 -ui -l

升级所有软件包:

# portmanager -u

强制编译所有依赖包(无论是否有新版本):

# portmanager x11/gnome2 -l -f

参考:FreeBSD使用手册-使用Ports Collection

 

7 配置系统参数

编辑/etc/rc.conf,增加:

gateway_enable="YES"

相当于使用sysctl打开IP转发,如:

# sysctl net.inet.ip.forwarding=1

参考:FreeBSD使用手册-网关和路由

 

8 配置named

这里网关只作为一个forward的域名缓存服务器。

编辑/var/namedb/named.conf,修改:

options {
...
//      listen-on       { 127.0.0.1; };
...
        forward only;
        forwarders {
                172.18.0.30;
        };
...
};

编辑/etc/rc.conf,增加:

named_enable="YES"

参考:FreeBSD使用手册-域名系统 (DNS)

 

9 配置PF防火墙

FreeBSD下有多种防火墙软件,这里使用从OpenBSD移植过来的Packet Filter(PF)。

不同版本的FreeBSD使用了不同版本的PF,FreeBSD 7.2对应的是OpenBSD 4.1的PF。

建立/etc/pf.conf,这里使用与openbsd版的home-gate完全相同的配置。

编辑/etc/rc.conf,增加:

pf_enable="YES"
pflog_enable="YES"
ftpproxy_enable="YES"

编辑/etc/rc.local,增加:

echo -n 'ftp-proxy'
/usr/sbin/ftp-proxy -R 10.10.20.20 -p 21 -b 172.16.0.10

参考:FreeBSD使用手册-OpenBSD Packet Filter (PF) 和 ALTQ