原文地址:Linux Server Security Harding Tips by Cyberciti.biz
分类:安全
标签:备份、禁止root用户登录、加密、文件完整性、防火墙、GUID、加固、入侵检测(IDS,Intrusion Detection System)、侵入保护(IPS)、iptables、Linux、登录、密码、物理安全、策略、防护、配额、安全、独立分区、服务器、服务、SSH、存储、SUID、tripwire、更新
加固你的Linux服务器使你的数据、知识产权、和时间免受黑客攻击是非常重要的。系统管理员负责Linux的安全。在Linux服务器系列的第一部分,我将为Linux系统默认安装提供20条加固技巧。
#1:数据加密传输
所有的数据传输都通过开放监测的网络。当传输密码时,使用密钥/证书进行加密传输数据是很有必要的。
1.文件传输时使用scp,ssh,rsync,或者sftp。你也可以Mount远程服务器的文件系统或者给自己的家目录使用特殊的sshfs和fuse工具。
2.GnuPG允许加密和签名你的数据和通信,它具有一个通用的key管理系统,也能为各种本地key目录提供访问模块。
3.Fugu是一个命令行安全文件传输的应用(SFTP)的图形化前端。SFTP类似于FTP,但不像FTP,它的整个会话都是被加密的,这就意味着没有密码是用明文的形式来发送的,并且这样就能减少被第三方攻击。另一个选择是FileZilla------一个跨平台的FTP客户端,FTP通过SSL/TLS(FTPS)和SSH文件传输协议(SFTP).
4.OpenVPN 是一款性价比高的、轻便的SSL VPN
5.Lighttp SSL(Secure Server Layer) Https 配置和安装
6.Apache SSL(Secure Server Layer)Https(mod_ssl)配置和安装
#1.1 不要使用FTP,Telnet,和Rlog/Rsh
在大多数的网络配置下,在同一个网络下传输的用户名、密码,FTP/telnet/rsh命令和传输文件,能被任何使用数据包嗅探器(packet sniffer)的人捕获。对这个问题的一般解决方案是使用OpenSSH,SFTP或者FTPS(FTP 通过 SSL),它就是FTP添加了SSL或TLS加密。输入下面的命令来删除NIS,rsh和其他过时的服务:
CODE:
# yum erase inetd xinetd ypserv tftp-server telnet-server rsh-server
# 2:减少软件来减少脆弱性
你确定你真的需要安装各种类别的web服务器吗?避免安装不需要的软件来避免软件漏洞。使用RPM包管理如 yum 或apt-get 和/或 dpkg 来检查系统上所有软件包的安装设置。删除不需要的包。
CODE:
# yum list installed
# yum list packageName
# yum remove packageName
或者
CODE:
# dpkg --list
# dpkg --info packageName
# apt-get remove packageName
#3:每一个网络服务系统或VM虚拟机
在独立的服务器或VM虚拟机运行不同的网络服务。这能限制其他服务器受连累的数目。例如,如果一个攻击者能成功地进攻一个软件例如Apache flow,他/她将得到访问整个服务器包括其他服务(例如MySQL,e-mail服务等等)。看怎样来安装虚拟化软件:
- Install and Setup XEN Virtualization Software on CentOS Linux 5
- How To Setup OpenVZ under RHEL / CentOS Linux
# 4:保持Linux内核和软件更新
应用安全补丁是维护Linux服务器很重要的一部分,Linux提供了所有需要的工具来保持系统更新,并且允许两个版本之间的简便地升级。所有的安全更新应该被重新检查并且尽可能尽快更新。同时,使用RPM包管理器如yum 和/或 apt-get 和/或 dpkg秋应该所有安全更新。
CODE:
# yum update
OR
CODE
# apt-get update && apt-get upgrade
你能配置Redhat/CentOS/Fedora Linux来使用通过电子邮件发送yum包管理更新通知。另外一个选择是通过计划任务来应用所有的安全更新。在Debian/Ubuntu Linux下,你能用apticron来发送安全通知。
#5:使用Linux安全扩展
Linux伴随着各种可以用来防止错误配置或僵死程序的安全补丁。如果可能的话,使用SELinux 和其他Linux安全扩展来实施限制网络和其他程序。例如,SELinux为Linux内核提供多样的安全策略。
#5.1:SELinux
我强烈推荐使用SELinux,它提供的一套灵活的强制访问控制(MAC)。根据标准Linux可控访问控制(DAC),一个应用或程序运行以一个用户(UID或SUID)有这个用户的权限来使用如文件,套接字和其他程序。运行MAC内核来保护系统免受恶意或有缺陷的应用程序(可以破坏或损坏系统)。 看ReadHat官方文档上有SELinux配置文件的解释。
#6:用户帐户和强密码策略
#6.1:密码老化
#6.2:限制使用以前的密码
#6.3:登录失败后锁定用户帐号
#6.4:我如何确定没有密码的帐号
#6.5:确定没有非root帐户有UID为0
#7:禁止root登录
#8:物理服务器安全
#9:禁用不想要的服务
#10:删除 X Windwos
#11:配置iptables和TCPWrappers
#12:Linux内核 /etc/sysctl.conf 加固
#13:独立的磁盘分区
#13.1:磁盘配额
#14:关闭IPv6
#15:禁用不要的SUID和SGID 文件
#15.1:全部可写的文件
#16:使用集中式认证服务
#16.1:Kerberos(麻省理工学院开发的安全认证系统)
#17:登录和审计
#17.1:用Logwatch/Logcheck控制可疑的日志信息
#17.2:系统用户审计
#18:安全的 OpenSSH服务
#19:安装、使用入侵侦测系统(IDS)
#20:保护文件、目录和E-mail
#20.1:安全的电子邮件服务器