目录
OSQDU Linux服务器配置手册
适用对象
本文档的适用对象为 OSQDU 管理的 Linux 服务器,基于x86, x86_64 以及 PowerPC 构架。
操作系统安装建议
OSQDU 使用的 Linux 服务器,若非必要,应选取 Ubuntu Server。使用最新的版本或 Long Time Support 取决于需求。若为类似 DNS 服务器的基础架构服务器,则应采用 LTS 获取最长的更新时间,减少停机升级系统的时间。若为应用服务器或对停机不够敏感的服务器,例如 Web 服务器,则可采用最新版本的 Ubuntu Server。若使用较老系统或对某些软件、库有特殊要求,可以使用 Cent OS 5。Ubuntu 服务器的源应设置为 mirror.osqdu.org
除非为青岛大学服务,服务器的域应设置为 osqdu.org 或 osqdu.org.cn 。但尽量采用 osqdu.org 。
分区建议如下:
- / ext4 >16GB
- /var reiserfs > 6GB (若使用了 MySQL 等数据库,则应不小于 32 GB)
- /opt xfs > 16GB (考虑到未来的应用安装)
- /srv/oracle xfs > 16GB (若使用 Oracle 数据库)
- /srv/nfs xfs > 100GB (若为文件服务器,则划分所有可用空间。若不提供,则不划分)
- /srv/www reiserfs > 32GB (若不提供www服务,则划分 4GB 即可)
- /usr reiserfs > 6GB (这里如果满了,后果未知)
- /home 可以不划分,如果没有用户使用
分区文件系统
- 小文件居多的应使用 reiserfs
- 大文件居多的应使用 xfs,速度接近裸盘
- extfs 不适合做服务用,碎片太多
- jfs 每次不正常关机都会要求查盘,并且稳定性有待考证,尽量避免使用
- RAID 可以用软 RAID,如果 RAID 卡支持 Linux 较好,则可以使用硬件 RAID 卡。
部署注意事项
Linux 服务器部署时应充分考虑的问题
- 维护 考虑服务器是否需要周期性的维护,以及做版本升级
- 数据安全 为减少类似 E450 的当机,应在操作系统安装前规划好如何做好数据安全,包括但不限于 RAID, 定期备份
- 安全 考虑服务器的使用人员是否有足够的安全意识,以在交付前做好充分的安全策略。这包括但不限于 iptables 的设置。也可以通过配置 Cisco FWSM 来达到。
- 发行版要求 某些特殊软件需要 Red Hat Enterprise Linux 类操作系统。在部署前应考虑到该项需求。
Linux 服务器部署时应特别注意已在青岛大学内部发现的问题
- 弱密码 为防止暴力破解密码,所有密码必须包含数字、字母、特殊符号,长度不得低于7位。已知的几个已经泄露的密码不得重复使用。
- /tmp 是分区 若 /tmp 满掉,后果是未知的。
- 没有swap 这将在内存用尽之后出现未知的后果。
- 不合理的分区
安全策略
在 OSQDU 面对的特殊环境下,安全需要特别考量。以下是常用的安全策略:
- 修改 ssh 端口为 nmap -A 不会扫描的端口号。这将加大脚本小子的入侵难度,大部分脚本小子将直接放弃。
- 使用最新版本的操作系统,在可能的情况下,做好定期更新
- 时刻关注 packetstormsecurity 等安全网站的更新,做好 0day 的防范
- 避免使用 ftp
- 特别注意 Apache Web 服务器的安全配置
修改 ssh 端口号的方法为将 /etc/ssh/sshd_config 中的 Port 22 修改为目标端口。常用的愚弄低级脚本小子的方法是将 ssh 的端口修改为 3389。另外一个方法是将 Windows 的 rdesktop 端口修改为 22。
服务软件的选取
服务器端软件的选取应符合以下要求:
- 该软件仍在活跃开发中
- 足够好的可定制性,在不修改源代码的情况下
- 轻量级,速度足够快
- 优先选取 Sun Microsystems 的产品
常见的几个情况列举在下面:
- 静态网页服务器:使用 nginx 的最新稳定版作为 http 服务器。
- php网页服务器:使用 lighttpd 作为 http 服务器。若负载比较高,则选用 nginx 作为反向代理服务器。
- 文件服务器:若无需对 Windows 服务器提供服务,则使用 NFS。若需要,则使用 samba。
- DNS服务器:可以使用 Aluminum DNS 套件,基于 BIND 9。
软件的编译安装
编译安装软件原则上应该按照UNIX 环境编译指南中的规则进行。
一般的,repository 中的软件版本较老,若需要及时跟进新版本软件,则应使用下面的方法/参数进行编译:
- CFLAGS = -O3 降低了编译速度,但性能会比 O2 稍好一些。
- make install 之后及时 strip 二进制。
在 configure 过程中,应遵守以下规则:
- 若无其他文档 override 本文档,则应安装应用软件于 /opt 中,例如 Oracle Database;基本服务软件可以安装在 /usr/软件名 中,例如 lighttpd 安装在 /usr/lighttpd 中。这里采用 UNIX 传统的安装路径,也可以安装到 /usr/local 中,例如 /usr/local/sbin/lighttpd。
- 不开启任何多余的功能,不做静态编译,以提升运行速度。注意编译后 strip 二进制文件。
- 尽量开启动态加载模块的功能,便于后期维护。
服务器优化
应按照以下几点要求对服务器进行优化:
- 关闭任何不需要的服务。Ubuntu Server 自动打开了 DNS 服务器等服务,除非必要,应该关闭以节约系统资源并降低入侵风险
- 在正式上线前应对服务器进行压力测试,合格后方可上线
- 对性能敏感的应用,例如 John the Ripper,应对服务器硬件进行优化编译。具体做法应查阅 gcc 手册
- 对于内存泄漏严重的应用,例如 Ruby,应该定时杀进程
- php.ini 一定要针对实际情况做好调整
- PHP 应用应视情况,使用 xcache 等做好加速
- 高负载应用应做好负载平衡,可以使用 DNS 轮询的方式实现,也可以使用多后端,NFS共享文件的方法
服务器位置
服务器应尽量靠近空调。若采用联想桌面机,则打开机箱。 服务器上应贴上标签,注明现任 OSQDU 中国联络人的电话号码以及用途,方便网络中心在必要时联系到联络人并与OSQDU核心取得联络。
