home-gate
操作系统版本:FreeBSD 7.2
1 硬件
配置3块网卡,分别映射到/dev/vmnet1、/dev/vmnet3、/dev/vmnet2。
2 初始安装
使用CDROM方式安装,采用standard标准模式。
安装软件包类型:Developer。
不安装ports,后面单独安装新的版本。
配置第一块网卡em0的ip地址。
启用ssh,其余网络服务都不开启。
建立普通用户。
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
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"
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