Duangw

out-server

操作系统版本:FreeBSD 7.0

 

1 硬件

配置1块网卡,映射到/dev/vmnet9。

 

2 初始安装

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

安装软件包类型:Developer。

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

不安装linux兼容包。

配置网络。IP地址:172.18.0.70/24

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

建立普通用户。

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

 

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

参考:FreeBSD使用手册-软件安装预览

参考:FreeBSD使用手册-使用Packages系统

 

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"

参考:FreeBSD使用手册-文件传输协议 (FTP)

 

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