Linux服务器安全对于保护用户数据、知识产权非常重要,同时还能减少你面对黑客的时间。在工作中,通常由系统管理员对Linux的安全负责,在这篇文章中,介绍了20条对Linux系统进行强化的建议。本文所有的建议都基于CentOS、RHEL系统或者Ubuntu/Debian的发行版本。
#1、加密数据通信方式。
所有通过网络传输的数据都是可以被监听的,因此只要有可能就要使用密码、证书等方式加密你的通讯数据。
1、使用 scp、ssh、rsync或者sftp来进行文件传输。也可以使用特殊的sshfs或者fuse工具来挂载远程文件系统或者你的工作目录。
2、GnuPG 提供功能丰富的证书管理功能,允许你签名数据并进行传输。
3、Fugu 是一个图形化的SFTP文件传输工具。SFTP类似于FTP,但是与FTP不同,整个会话是加密的,也就是说不会用明文形式发送密码。另外一个选项是FileZilla,一个跨平台的客户端段,也支持FTP、FTPS 和 SFTP。
4、OpenVPN 是一个轻量级、低成本的SSL VPN。
5、Lighttpd SSL(Secure Server Layer)Https 的安装和配置。
6、Apache SSL(Secure Server Layer)Https(mod_ssl)的安装和配置。
#1.1、避免使用FTP、Telnet和Rlogin/Rsh服务
在大多数的网络配置下,用户名、密码,FTP / telnet /rsh 命令和传输的文件能够被同网段的任何人使用包嗅探软件监听。这个问题的通常解决方法是使用 OpenSSH、SFTP或者 FTPS。
下面的命令可以帮助你删除服务器中没必要的服务。
# yum erase inetd xinetd ypserv tfpt-server telnet-server rsh-server
#2、最小化软件安装原则。
你确实需要服务器上安装的所有服务吗?避免安装不必要的服务就是避免漏斗。使用 RPM 包管理工具,例如 yum 或者 apt-get 、dpkg 来检查系统上安装的软件包,同时删除不必要的包。
1 # yum list installed 2 # yum list packageName 3 # yum remove packageName 4 5 或者 6 7 # dpkg --list 8 # dpkg --info packageName 9 # apt-get remove packageName
#3、每个系统或实例上只运行一种服务。
将不同的服务运行在单独的服务器或虚拟化实例中。例如:如果黑客攻破Apache进入到系统中,他就可以访问部署在这台服务器上的Mysql、E-Mail等其他服务,尽量不要这么做。
#4、保持Linux内核和软件的更新。
维护系统的一项重要工作就是及时的安装系统补丁。Linux提供了很多必要的工具和方法来保证系统的更新,所有安全方面的更新都应该尽快执行,与第2条一样,我们可以使用 yum、apt-get等工具来进行安全更新。
1 # yum update 2 3 或者 4 5 # apt-get update && apt-get upgrade
你可以在系统中配置更新提示邮件(Red hat、CentOS、Fedora),或者另外一个办法就是通过一个cron定时任务安装所有的安全更新。
#5、使用Linux安全扩展。
Linux提供了多种安全补丁,可以用来保护错误配置或者一些妥协的方案。尽可能使用 SELinux和其他Linux安全扩展来加强网络和程序的限制。例如,SELinux提供了Linux内核的安全策略。
#5.1、SELinux
SELinux提供了一套灵活的访问控制机制(MAC:Mandatory Access Control),标注的MAC下一个应用程序或者进程具有相关权限的用户下运行。使用MAC的内核保护能够使系统免于遭受系统的恶意攻击。更相信的信息可以查看官方的SELinux说明配置文档。
参考资料:
1、http://www.cyberciti.biz/tips/linux-security.html