目录
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核心取得联络。