5 条 Linux 系统安全入门秘籍

Linux安全配置秘笈

Linux 系统管理员中间,系统安全是一个很火的话题。我逛的每一个论坛,参加的每一次会议,参加的每一次IT技术讨论,都与安全相关,然后又不可避免地转到 Linux 安全上。这篇文章源自我的经验和我在 Linux 技术对话的所见所闻。下面是5条 Linux 服务器安全入门秘籍。

最小化原则

每次安装 Linux,我都安装最精简的版本,我宁愿先安装精简版,在需要的时候再安装其他软件,也不愿先安装完整版,再一个一个卸载不要的软件。使用精简版还有一个好处,就是减少硬盘空间的占用。虽然目前硬盘很便宜,但也不能浪费在多余的软件上,并且这些软件可能会给我们带来安全威胁。我所需要的是一台安装了 SSH 的 Linux 系统,这样我就可以远程连接,然后再安装我所需要的软件,

服务器不要安装图形化界面

如果这个 Linux 系统是用来当服务器用的,那么不要安装图形化界面。从安全角度来说,就算安装一个轻量的图形化界面,也需要安装很多额外的软件包,这些软件包可能会带来更多的安全问题。一些图形化界面软件包会打开一些系统端口,这会增加攻击面。另外,图形化界面会占用很多的系统资源,还会影响系统性能。

学习使用命令行管理服务器,把图形化界面留给桌面使用。

防火墙是最基础的防护

系统自带的防火墙可以关闭以阻止不必要的入侵,仅允许设定的端口被访问,同时,防火墙还可以限制出口流量。

然而,最好的限制出口流量的办法是架设内网代理服务器,并只允许流量通过内网代理服务器出去。系统自带的防火墙有时候也很无奈,配置不当,会把我们自己关在门外,只能通过 VNC 访问主机修改防火墙规则。不过目前不少 VPS 提供商都提供了网络防火墙,比如 Vultr,与主机独立,并且也有图形化的操作界面,使用起来比系统自带防火墙方便,并且还可以不浪费主机的资源,影响主机的性能。当然,在没有网络防火墙的情况下,多使用几次,熟悉之后,就很容易配置规则了。

SELinux 值得学习

SELinux 被嫌弃又被误解。通常,系统管理员会禁用或者卸载 SELinux,尽管它能带来极大的安全提升。我的建议是保留并启用此服务,并设置为强制执行。

SELinux 使用的是强制访问控制( mandatory access control ),而防火墙使用的是基于规则的访问控制,而标准的 *nix 系统使用的是自由访问控制。在放弃和禁用 SELinux 之前,阅读一些相关的配置文档。大多数系统仅运行少量的服务,所以配置并没有那么麻烦,禁用该服务可能会带来更大的麻烦。

SELinux 必须以一种特殊的方式进行设置,允许对文件进行标记,并且需要重启几次才能完成设置,更多的设置可以阅读相关文档。

SELinux 可以防御以 root 用户运行的服务的权限提升。所以,关闭它不是一个好的办法,在攻击手段层出不穷的当前,恶意软件越来越智能,正确使用 SELinux 可以给我们的系统附加一层保护。

禁用 root 远程登录

默认情况下,root 用户可以远程 SSH 登录,这我们可以理解。但是在系统安装完成,并且创建了有 sudo 放弃权限的帐号之后,我们应该禁用 root 用户远程登录。

禁用 root 用户远程登录可以防止攻击者猜测或暴力破解 root 密码。尝试登录会被记录下来,但是不会对系统安全造成影响,因为 root 用户已经无法远程登录。如果有配置入侵检测的脚本或者服务,可以把反复尝试登录的 IP 自动添加到防火墙中。

玩客以前写过一篇《SSH服务安全优化》,里面有介绍如何禁用 root 用户远程登录和其他的 SSH 安全优化方法。

总结

阅读过去十年中的任何调查,您都会发现,安全是系统管理员的头等大事。在系统上线之前,请至少通过这五个技巧来加固您的系统。安全不是可以拖延或者放松的,希望这五条建议能帮您加固您的系统。

本文翻译自 RedHat Sysadmin,略有删改,原文为:5 tips for getting started with Linux server security

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>