对服务器操作系统进行安全加固是减少脆弱性并提升系统安全的一个过程,其中主要包括:打上补丁消灭已知安全漏洞、去掉不必要的服务、禁止使用账号密码登录、禁用不必要的端口等。现在我在本文中总结一下如何简单加固 Ubuntu 14.04 服务器。
系统版本
Ubuntu 14.04.x LTS 并开启 SSH 服务。
对系统进行更新
保持操作系统的更新是安装好任何操作系统之后的一个必要步骤,这会减少当前操作系统中的已经漏洞。Ubuntu 14.04 或其它版本 Ubuntu 都可以使用如下命令进行更新:
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get autoremove
- sudo apt-get autoclean
开启安全补丁自动更新
对安全补丁启用自动更新是非常有必要的,这在很大程度上能够保证我们的服务器安全,要启用 Ubuntu 14.04.x 的自动更新功能必
需先使用如下命令安装无从应答模块:
- sudo apt-get install unattended-upgrades
再使用如下命令进行启用:
- sudo dpkg-reconfigure -plow unattended-upgrades
执行上诉命令后会自动创建一个 /etc/apt/apt.conf.d/20auto-upgrades 文件,并写入如下配置内容:
- APT::Periodic::Update-Package-Lists"1";
- APT::Periodic::Unattended-Upgrade"1";
不需要的时候我们可将配置文件删除或清空即可。
禁用root账户
由于root账户权力过大,我们可以使用如下命令将其禁用:
- sudo passwd -l root
如果想重新启用 root 账户可以使用如下命令:
- sudo passwd -u root
禁用IPv6
由于 IPv6 还并没有在全球范围普及开来,还会造成连接缓慢的问题,我们可以将 IPv6 功能也暂时禁用掉。要禁用 IPv6 我们可以编辑如下配置文件:
- sudo vi /etc/sysctl.conf
将 IPv6 的相关配置文件改成如下样子:
- net.ipv6.conf.all.disable_ipv6 =1
- net.ipv6.conf.default.disable_ipv6 =1
- net.ipv6.conf.lo.disable_ipv6 =1
更改完成后需要执行如下命令使其生效:
- sudo sysctl –p
禁用RQBALANCE特性
RQBALANCE 特性主要用于在多个 CPU 间分发硬件中断来提高性能,我建议禁用 RQBALANCE 特性以避免线程被硬件中断。
要禁用 RQBALANCE 特性需要编辑如下配置文件:
- sudo vi /etc/default/irqbalance
将 ENABLED 的值改为 0
- ENABLED=0
修复OpenSSL心血漏洞
Heartbleed 漏洞闹得沸沸扬扬,在这里我就不介绍了,大家可以自己 Google。我需要说明的是:心血漏洞出现在 OpenSSL 的如下版本中:
1.0.1
1.0.1a
1.0.1b
1.0.1c
1.0.1d
1.0.1e
1.0.1f
如果你在使用上诉版本就得尽快升级了,查看 OpenSSL 版本的命令如下:
- sudo openssl version -v
- sudo openssl version -b
如果返回的版本是 1.0.1 的或者时间早于 2014 年 4 月 7 日的版本,就有可能遭受 Heartbleed 攻击,得尽快更新才行。
修复Shellshock Bash漏洞
Shellshock 漏洞允许客户指定 Bash 环境变量和非法访问系统,该漏洞曝出来时也是全世界哗然,而且该漏洞很容易被利用。
我们可以使用如下命令进行检查:
- sudo env i='() { :;}; echo Your system is Bash vulnerable' bash -c "echo Bash vulnerability test"
如果你看到如下现行,证明系统存在该漏洞:
Your system is Bash vulnerable
Bash vulnerability test
如果中招,可以使用如下命令升级 Bash 版本:
- sudo apt-get update ; sudo apt-get install --only-upgrade bash
设置进程限制
为了保证系统不受阻断式攻击,我们应该为用户设置进程限制。编辑如下配置文件即可:
To protect your system from fork bomb attacks, you should set up a process limit for your users.
- sudo vi /etc/security/limits.conf
将文件内容进行类似如下编辑:
- user1 hard nproc 100
- @group1 hard nproc 20
该配置将特定用户和用户组的进程限制到 100 和 20。
禁用不必要的服务
Ubuntu 的服务运行都需要内存、CPU 和磁盘空间,禁用或删除不必要的服务可以提高系统的整体性能并减小攻击面。使用如下命令我们可以查看到当前系统正在运行哪些服务:
- sudo initctl list | grep running
我们可以使用如下命令禁用不需要的服务
- sudo update-rc.d -f 服务名 remove
- sudo apt-get purge 服务名
小结
上诉我们讲的其实只是很片面加固 Ubuntu 14.04 服务器的方法,对于个人的 Ubuntu 服务器来说还比较适用。如果要考虑得更全面还会有文件及文件夹权限、iptables 防火墙的配置等诸多安全配置手段可用,有兴趣的朋友可以仔细研究。
更多Ubuntu相关信息见Ubuntu 专题页面