Duangw

out-server

操作系统版本:OpenBSD 4.4

 

1 硬件

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

 

2 初始安装

安装除了game和Xwindow之外的全部软件包。

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

打开ssh端口。

参考:OpenBSD 4.4 Installation Guide

 

3 修改内核时区

OpenBSD假定机器硬件时间为UTC时间,而不是本地时间。调整为东八区:

# config -ef /bsd
>>>timezone -480
>>quit
# config -ef /bsd.mp
>>>timezone -480
>>>quit
# reboot

这里同时修改了两种内核。

参考:Why is my clock off by several hours?

 

4 切换内核(可选)

使用SMP内核替代默认的单CPU内核:

# cd /
# cp bsd bsd.sp
# cp bsd.mp bsd
# reboot

 

5 安装源代码

安装kernel与userland源代码:

# cd /usr/src
# tar xzvf /root/sys.tar.gz
# tar xzvf /root/src.tar.gz

参考:Fetching the appropriate source code

 

6 安装补丁

下载各个补丁,根据补丁指示进行操作。

注意:如果补丁涉及编译内核,在重启之前要进行前面第3步设置时区的操作。

 

7 建立普通用户

# adduser

用户名:duangw,添加到组wheel。

参考:What is the best way to add and delete users?

 

8 关闭不需要的网络服务

编辑/etc/inetd.conf,注释掉所有不需要的服务,如time、comsat等。

编辑/etc/rc.conf.local,增加一行:

sendmail_flag=NO

以取消sendmail服务。

参考:How do I start daemons with the system? (Overview of rc(8))

 

9 配置ftp服务器

首先添加一个ftp用户:

# echo /usr/bin/false >> /etc/shells
# adduser

用户名:ftp;shell:false;其它缺省。

建立目录,调整权限:

# cd /home
# chown root ftp
# chmod 555 ftp
# cd ftp
# mkdir pub
# chmod 555 pub

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

ftpd_flags="-DllUSA"

以上配置的是匿名(anonymous)ftp服务。如果要让系统用户也能使用ftp,则编辑/etc/ftpchroot,添加需要使用ftp的用户名。此时用户的ftp是chroot的。

如果让系统用户不在chroot环境下使用ftp,则修改/etc/rc.conf.loal的相应行为:

ftpd_flags="-DllUS"

参考:Setting up Anonymous FTP Services

参考:Confining users to their home directories in ftpd(8)

 

10 配置http服务器

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

httpd_flags=""

此时的apache是chroot的。如果要取消chroot,则改为:

httpd_flags="-u"

如果要打开ssl(443端口),则进行如下步骤:

# openssl genrsa -out /etc/ssl/private/server.key 1024
# openssl req -new -key /etc/ssl/private/server.key \
-out /etc/ssl/private/server.csr
# openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \
-signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt

编辑/etc/rc.conf.local,调整为:

httpd_flags="-DSSL"

参考:Tell me about this chroot(2) Apache?

参考:Setting up a Secure HTTP server with SSL(8)

 

11 配置PF防火墙

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

pf=YES

pf.conf配置中的模板基础上进行修改,使用的是server模板pf.conf-server.ref。复制为/etc/pf.conf,编辑:

# don't filter on the loopback interface
set skip on lo

# scrub incoming packets
scrub in

# block spoofed packtes
antispoof quick for { lo vic0 }

# setup a default deny policy
block all

#enable services:
# ping
pass in inet proto icmp icmp-type echoreq
# ssh
pass in proto tcp to port ssh
# http(s)
pass in proto tcp to port www
pass in proto tcp to port https
# ftp
pass in proto tcp to port ftp
pass in proto tcp to port > 49151
pass out proto tcp from port ftp-data

参考:PF: The OpenBSD Packet Filter