Linux服务器提升运维安全的几个小技巧

发布时间:2021-09-13

  毫无疑问,提高服务器安全性是系统管理员最重要的事情之一。因此,有许多文章,博客和论坛上的帖子。
服务器由大量具有不同功能的组件组成,因此很难根据每个人的需要提供定制的解决方案。本文将介绍尽可能多的有用提示,以帮助管理员保护服务器和用户的安全。
有一些常识认为,每个系统管理员都应该熟悉系统的用法,因此本文将不提及以下几点:

  务必保证系统是最新的经常更改密码-使用数字、字母和非字母的符号组合给予用户最低限度的权限以满足他们的日常需求。只安装那些真正需要的软件包下面是一些更有意思的内容:更改SSH默认端口

  
构建新服务器后要做的第一件事是更改SSH的默认端口。这个小改动可以保护您的服务器免受数千次暴力攻击。

  要更改默认的SSH端口,先打开sshd_config文件:

  找到下面这行:

  “#”号表示这行是注释。首先删除#号,然后把端口号改成目的端口。端口号不能超过65535,确保要指定的端口号没有被系统或服务占用。建议在[维基百科]上查看常用端口号列表。在本文中,使用这个端口号:

  然后保存并关闭文件。

  接下来的一步是:

  使用SSH密钥认证

  在通过SSH访问服务器时,使用SSH密钥进行认证是尤其重要的。这样做为服务器增加了额外的保护,确保只有那些拥有密钥的人才能访问服务器。

  在本地机器上运行下面命令以生成SSH密钥:

  你会看到下面的输出,询问要将密钥写到哪一个文件里,并且设置一个密码:

  完成之后,就得到两个文件:

  my_key

  my_key.pub

  接下来把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) 这个用户可以使用的命令

  (LCTT 译注:所以上面的配置是意思是:root 用户可以在任何终端担任任何用户,执行任何命令。)

  使用这个配置可以给用户访问一些系统工具的权限。

  这时,可以放心保存文件了。

  为了关闭通过SSH直接访问root,需要再次打开sshd_config,找到下面这行:

  更改为:

  然后保存文件,重启sshd守护进程使改动生效。执行下面命令即可:

  设置防火墙

  防火墙有助于过滤出入端口和阻止使用暴力法的登录尝试。我倾向于使用SCF(Config Server Firewall)这个强力防火墙。它使用了iptables,易于管理,而且对于不擅于输入命令的用户提供了web界面。

  要安装CSF,先登录到服务器,切换到这个目录下:

  然后以root权限执行下面命令:

  只需等待安装程序完成,然后编辑CSF的配置文件:

  默认情况下CSF是以测试模式运行。通过将“TESTING”的值设置成0,切换到product模式。

  下面要设置的就是服务器上允许通过的端口。在csf.conf中定位到下面的部分,根据需要修改端口:

  请根据需要逐一设置,推荐只使用那些需要的端口,避免设置对端口进行大范围设置。此外,也要避免使用不安全服务的不安全端口。比如只允许端口465和587来发送电子邮件,取代默认的SMTP端口25。(LCTT 译注:前提是你的邮件服务器支持 SMTPS)

  重要:千万不要忘记允许自定义的 ssh 端口。

  允许你的IP地址通过防火墙,而绝不被屏蔽,这一点很重要。IP地址定义在下面的文件中:

  被屏蔽了的IP地址会出现在这个文件中:

  一旦完成更改,使用这个命令重启csf:

  下面是在某台服务器上的csf.deny文件的部分内容,来说明CSF是很有用的:

  可以看到,尝试通过暴力法登录的IP地址都被屏蔽了,真是眼不见心不烦啊!

  锁住账户

  如果某个账户在很长一段时间内都不会被使用了,那么可以将其锁住以防止人访问。使用如下命令:

  当然,这个账户依然可以被root用户使用(LCTT 译注:可用 su 切换为该账号)。

  了解服务器上的服务

  服务器的本质是为各种服务提供访问功能。使服务器只运行所需的服务,关闭没有使用的服务。这样做不仅会释放一些系统资源,而且也会使服务器变得更加安全。比如,如果只是运行一个简单的服务器,显然不需要X显示或者桌面环境。如果不需要Windows网络共享功能,则可以放心关闭Samba。

  使用下面的命令能查看伴随系统启动而启动的服务:

  如果系统运行了systemd,执行这条命令:

  然后使用下面的命令关闭服务:

  在上面的例子中,把“service”替换成真正想要停止的服务名称。实例如下:

  chkconfighttpdoff或systemctldisablehttpd

注册即送1000元现金券