out-server
操作系统版本:FreeBSD 7.0
1 硬件
配置1块网卡,映射到/dev/vmnet9。
2 初始安装
使用CDROM方式安装,采用standard标准模式。
安装软件包类型:Developer。
不安装ports,后面单独安装新的版本。
不安装linux兼容包。
配置网络。IP地址:172.18.0.70/24
启用ssh,其余网络服务都不开启。
建立普通用户。
3 安装补丁
使用freebsd-update进行二进制方式的更新:
# freebsd-update fetch # freebsd-update install
4 安装ports
编辑/etc/portsnap.conf,以选择一个快的镜像:
SERVERNAME=portsnap.hshh.org
初次安装:
# portsnap fetch # portsnap extract
ports会不断更新,在后面的使用过程中,需要不定期的进行更新。
更新方法:
# portsnap fetch # portsnap update
参考:FreeBSD使用手册-使用Ports Collection
5 关于packages和ports
安装第三方软件包有packages(预编译包)和ports(源代码)两种方式。
两种方式各有优缺点,这里采用折衷的方案,优先使用packages,如果存在漏洞则迅速通过ports更新。至于新版本的升级视情况而定,不盲目追新。
如果通过网络安装packages,则设置PACKAGEROOT环境变量。这里使用本地一台服务器作为镜像,编辑.cshrc,增加:
setenv PACKAGEROOT ftp://172.31.0.130
6 安装ports管理工具
这些工具用来处理第三方软件包的升级和修补:
# pkg_add -r portmanager # pkg_add -r portaudit
编辑/etc/make.conf,选择一个快的镜像:
MASTER_SITE_OVERRIDE?=ftp://ftp.cn.freebsd.org/pub/FreeBSD/\
ports/distfiles/${DIST_SUBDIR}/
首次运行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 配置ftp服务器
这里配置一个匿名的ftp server。
首先添加一个ftp用户:
# adduser
用户名:ftp;组:ftp;shell:nologin。
建立目录,调整权限:
# cd /home # chown root ftp # chmod 555 ftp # cd ftp # mkdir pub # chmod 555 pub
编辑/etc/rc.conf(可参考/etc/defaults/rc.conf),增加:
ftpd_enable="YES" ftpd_flags="-DllUSA"
8 配置http服务器
安装apache13:
# pkg_add -r apache
编辑/etc/rc.conf,增加:
apache_enable="YES" apache_flags=""
参考:FreeBSD使用手册-Apache HTTP 服务器
9 配置PF防火墙
FreeBSD下有多种防火墙软件,这里使用从OpenBSD移植过来的Packet Filter(PF)。
不同版本的FreeBSD使用了不同版本的PF,FreeBSD 7.0对应的是OpenBSD 4.1的PF。
建立/etc/pf.conf,这里使用与openbsd版的out-server完全相同的配置。
编辑/etc/rc.conf,增加:
pf_enable="YES" pf_rules="/etc/pf.conf" pf_program="/sbin/pfctl" pf_flags="" pflog_enable="YES" pflog_logfile="/var/log/pflog" pflog_program="/sbin/pflogd" pflog_flags=""
参考:FreeBSD使用手册-OpenBSD Packet Filter (PF) 和 ALTQ