Linux服务器基本安全技巧,让你的服务更加安全
副标题[/!--empirenews.page--]
9月15日技术沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维!
毋庸置疑,对于系统管理员,提高服务器的安全性是最重要的事情之一。因此,也就有了许多针对这个话题而生的文章、博客和论坛帖子。 一台服务器由大量功能各异的部件组成,这一点使得很难根据每个人的需求去提供定制的解决方案。这篇文章尽可能涵盖一些有所裨益的小技巧来帮助管理员保证服务器和用户安全。 有一些常识是每个系统管理员都应该烂熟于心的,所以下面的几点在本文将不会提及:
下面是一些更有意思的内容: 更改SSH默认端口 在搭建好一台全新的服务器后要做的第一件事情就是更改SSH的默认端口。这个小小的改动能够使你的服务器避免受到成千上万的暴力攻击(LCTT 译注:不更改默认端口相当于黑客们知道你家的门牌号,这样他们只需要一把一把的试钥匙就可能打开你家的锁)。 要更改默认的SSH端口,先打开sshd_config文件:
找到下面这行:
“#”号表示这行是注释。首先删除#号,然后把端口号改成目的端口。端口号不能超过65535,确保要指定的端口号没有被系统或其它服务占用。建议在[维基百科]上查看常用端口号列表。在本文中,使用这个端口号:
然后保存并关闭文件。 接下来的一步是: 使用SSH密钥认证 在通过SSH访问服务器时,使用SSH密钥进行认证是尤其重要的。这样做为服务器增加了额外的保护,确保只有那些拥有密钥的人才能访问服务器。 在本地机器上运行下面命令以生成SSH密钥:
你会看到下面的输出,询问要将密钥写到哪一个文件里,并且设置一个密码:
完成之后,就得到两个文件:
接下来把my_key.pub拷贝到~/.ssh/authorized_key中
然后使用下面命令将密钥上传到服务器:
至此,你就可以从这台本地机器上无密码地访问服务器了。 关闭SSH的密码认证 既然已经有了SSH密钥,那么关闭SSH的密码认证就会更安全了。再次打开并编辑sshd_config,按如下设置:
关闭Root登录 下面关键的一步是关闭root用户的直接访问,而使用sudo或su来执行管理员任务。首先需要添加一个有root权限的新用户,所以编辑这个路径下的sudoers文件:
推荐使用如visudo这样的命令编辑该文件,因为它会在关闭文件之前检查任何可能出现的语法错误。当你在编辑文件时出错了,这就很有用了。 接下来赋予某个用户root权限。在本文中,使用用户sysadmin。确保在编辑后这个文件时使用的用户是系统已有的用户。找到下面这行:
拷贝这行,然后粘贴在下一行,然后把root更改为“sysadmin”,如下所示:
现在解释一下这行的每一个选项的含义:
(1) 指定用户 (2) 指定用户使用sudo的终端 (3) 指定用户可以担任的用户角色 (4) 这个用户可以使用的命令 使用这个配置可以给用户访问一些系统工具的权限。 这时,可以放心保存文件了。 为了关闭通过SSH直接访问root,需要再次打开sshd_config,找到下面这行:
更改为:
然后保存文件,重启sshd守护进程使改动生效。执行下面命令即可:
设置防火墙 防火墙有助于过滤出入端口和阻止使用暴力法的登录尝试。我倾向于使用SCF(Config Server Firewall)这个强力防火墙。它使用了iptables,易于管理,而且对于不擅于输入命令的用户提供了web界面。 要安装CSF,先登录到服务器,切换到这个目录下:
(编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |