3.2 三个开源Linux操作系统

Linux有非常多的发行版本,商业版本以Redhat为代表,开源社区版本则以Debian为代表。CentOS、Ubuntu、Debian三个Linux典型版本都是非常优秀的系统。

3.2.1 CentOS

社区企业操作系统(Community Enterprise Operating System,CentOS)是Linux发行版之一,它由Red Hat Enterprise Linux依照开放源代码规定释出的源代码编译而成。由于出自同样的源代码,有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同之处是CentOS完全开源。很多网站站长一般都选择CentOS系统,CentOS去除了很多与服务器功能无关的应用,系统简单、稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。

CentOS系统安全加固主要涉及以下几方面。

1)设置密码失效时间,强制定期修改密码,减少密码被泄露和猜测的风险。

在/etc/login.defs中将PASS_MAX_DAYS参数设置为60~180。

参数:PASS_MAX_DAYS 90。

执行命令为:root:chage--maxdays 90 root。

2)设置密码修改最小间隔时间,限制过于频繁更改密码。

在/etc/login.defs中将PASS_MIN_DAYS参数设置为7~14,建议为7。

参数:PASS_MIN_DAYS 7。

执行命令为:root:chage--mindays 7 root。

3)检查密码长度和密码是否使用多种字符类型。

编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9~32位,把minclass(至少包含小写字母、大写字母、数字和特殊字符等4类字符中的3类或4类)设置为3或4。

如:minlen=10 minclass=3。

4)强制用户不重用最近使用的密码,降低密码猜测攻击风险。

在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so这行的末尾设置remember参数为5~24,原来的内容不用更改,只在末尾添加remember=5。

5)检查系统空密码账户。

为用户设置一个非空密码,或执行passwd-l锁定用户。

6)禁止SSH空密码用户登录。

编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no,即

7)确保密码到期警告天数为7或更多。

在/etc/login.defs中将PASS_WARN_AGE参数设置为7~14,建议为7,即

同时执行命令使root用户设置生效:chage--warndays 7 root。

8)设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。

在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数为3~6,建议为4,即MaxAuthTries 4。

9)确保rsyslog服务已启用,记录日志用于审计。

运行以下命令启用rsyslog服务:

当然还有其他特定需要的CentOS服务器安全加固的要求,并且安全加固是不断变化发展的。

3.2.2 Ubuntu

Ubuntu Linux是由南非人Mark Shuttleworth创办的基于Debian Linux的操作系统,并于2004年10月公布Ubuntu的第一个版本(Ubuntu4.10 Warty Warthog)。Ubuntu适用于笔记本计算机、台式计算机和服务器,特别是为桌面用户提供尽善尽美的使用体验。Ubuntu几乎包含了所有常用的应用软件:文字处理、电子邮件、软件开发工具和Web服务等。用户下载、使用、分享Ubuntu系统,以及获得技术支持与服务,无需支付任何许可费用。

Ubuntu拥有漂亮的用户界面、强大的软件源代码支持、完善的软件包管理系统、丰富的技术社区,与大多数硬件都有很好的兼容性,包括最新的显卡等。这些都使得Ubuntu越来越受欢迎。Ubuntu的图形界面很漂亮,但这也决定了它最佳的应用领域是桌面操作系统而非服务器操作系统。

Ubuntu系统安全加固主要涉及以下几个方面。

1)删除系统不需要的默认账号。

如果不需要下面这些系统默认账号,建议删除。

2)限制超级管理员远程登录。

参考配置操作SSH:

把PermitRootLogin yes,改为PermitRootLogin no,然后重启SSHD服务:

3)修改SSH端口。

修改Port 22,修改成其他端口,迷惑非法试探者。

Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为1433,修改方法为:/usr/sbin/sshd-p 1433。

4)设置关键目录的权限。

参考配置操作:通过chmod命令对目录的权限进行实际设置。如:

当然还有其他特定需要的Ubuntu服务器安全加固的要求,并且安全加固是不断变化发展的。

3.2.3 Debian

Debian作为适合于服务器的操作系统,比Ubuntu要稳定得多。Debian整个系统只要应用层面不出现逻辑缺陷,基本上固若金汤,是常年不需要重启的系统。Debian整个系统的基础核心稳定,占用硬盘空间小,占用内存小。128M的虚拟专用服务器(Virtual Private Server,VPS)即可以流畅地运行Debian,而运行CentOS则会略显吃力。但是由于Debian的发展路线与CentOS不同,技术资料也少一些。

Debian系统安全加固主要涉及以下几个方面。

1)防止任何人都可以使用su命令成为root。

在/etc/pam.d/su中添加如下两行:

然后把想要执行su命令成为root的用户放入wheel组:

2)采用最少服务原则。凡是不需要的服务一律注释掉。在/etc/inetd.conf中不需要的服务前加“#”。

3)日志策略主要是创建对入侵相关的重要日志的硬拷贝,不至于应急响应时连最后的黑匣子都没有。可以把它们重定向到打印机、管理员邮件、独立的日志服务器及其热备份。

4)其他安全建议如下。

● 做好系统加固工作。

● 留心安全公告,及时修正漏洞。

● 不要使用root权限进行日常操作。

● 不要随便安装来历不明的各种设备驱动程序。

● 不要在重要的服务器上运行一些来历不明的可执行程序或脚本。

● 尽量安装防毒软件,并定期升级病毒代码库。

CentOS/Ubuntu/Debian在服务器操作系统的选择上,首选CentOS,因为它既稳定,占用资源又少,在网络上能方便搜索到安装配置的文档,自身的帮助文档也非常强大。