本文主要分为如下五部分展开:
账户和登录安全账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别,下面重点介绍下 Linux 系统登录账户的安全设置方法。
①删除特殊的账户和账户组
Linux 提供了各种不同角色的系统账号,在系统安装完成后,默认会安装很多不必要的用户和用户组。
如果不需要某些用户或者组,就要立即删除它,因为账户越多,系统就越不安全,很可能被黑客利用,进而威胁到服务器的安全。
Linux系统中可以删除的默认用户和组大致有如下这些:
可删除的用户,如 adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher 等。
可删除的组,如 adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers 等。
②关闭系统不需要的服务
Linux 在安装完成后,绑定了很多没用的服务,这些服务默认都是自动启动的。
对于服务器来说,运行的服务越多,系统就越不安全,越少服务在运行,安全性就越好,因此关闭一些不需要的服务,对系统安全有很大的帮助。
具体哪些服务可以关闭,要根据服务器的用途而定,一般情况下,只要系统本身用不到的服务都认为是不必要的服务。
例如:某台 Linux 服务器用于 www 应用,那么除了 httpd 服务和系统运行是必须的服务外,其他服务都可以关闭。
下面这些服务一般情况下是不需要的,可以选择关闭:
anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv
③密码安全策略
在 Linux 下,远程登录系统有两种认证方式:
密码认证方式是传统的安全策略,对于密码的设置,比较普遍的说法是:至少 6 个字符以上,密码要包含数字、字母、下划线、特殊符号等。
设置一个相对复杂的密码,对系统安全能起到一定的防护作用,但是也面临一些其他问题,例如密码暴力破解、密码泄露、密码丢失等,同时过于复杂的密码对运维工作也会造成一定的负担。
密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当需要登录系统时,通过本地专用密钥和远程服务器的公用密钥进行配对认证,如果认证成功,就成功登录系统。
这种认证方式避免了被暴力破解的危险,同时只要保存在本地的专用密钥不被黑客盗用,攻击者一般无法通过密钥认证的方式进入系统。
因此,在 Linux 下推荐用密钥认证方式登录系统,这样就可以抛弃密码认证登录系统的弊端。
Linux 服务器一般通过 SecureCRT、Putty、Xshell 之类的工具进行远程维护和管理,密钥认证方式的实现就是借助于 SecureCRT 软件和 Linux 系统中的 SSH 服务实现的。
④合理使用 su、sudo 命令
su 命令:是一个切换用户的工具,经常用于将普通用户切换到超级用户下,当然也可以从超级用户切换到普通用户。
为了保证服务器的安全,几乎所有服务器都禁止了超级用户直接登录系统,而是通过普通用户登录系统,然后再通过 su 命令切换到超级用户下,执行一些需要超级权限的工作。
通过 su 命令能够给系统管理带来一定的方便,但是也存在不安全的因素,例如:系统有 10 个普通用户,每个用户都需要执行一些有超级权限的操作,就必须把超级用户的密码交给这 10 个普通用户。
如果这 10 个用户都有超级权限,通过超级权限可以做任何事,那么会在一定程度上对系统的安全造成了威协。
因此 su 命令在很多人都需要参与的系统管理中,并不是最好的选择,超级用户密码应该掌握在少数人手中,此时 sudo 命令就派上用场了。
sudo 命令:允许系统管理员分配给普通用户一些合理的“权利”,并且不需要普通用户知道超级用户密码,就能让他们执行一些只有超级用户或其他特许用户才能完成的任务。
比如:系统服务重启、编辑系统配置文件等,通过这种方式不但能减少超级用户登录次数和管理时间,也提高了系统安全性。
因此,sudo 命令相对于权限无限制性的 su 来说,还是比较安全的,所以 sudo 也被称为受限制的 su,另外 sudo 也是需要事先进行授权认证的,所以也被称为授权认证的 su。
sudo 执行命令的流程是:将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令。
执行完成后,直接退回到当前用户,而这一切的完成要通过 sudo 的配置文件 /etc/sudoers 来进行授权。
sudo 设计的宗旨是:赋予用户尽可能少的权限但仍允许它们完成自己的工作,这种设计兼顾了安全性和易用性。
因此,强烈推荐通过 sudo 来管理系统账号的安全,只允许普通用户登录系统,如果这些用户需要特殊的权限,就通过配置 /etc/sudoers 来完成,这也是多用户系统下账号安全管理的基本方式。
⑤删减系统登录欢迎信息
系统的一些欢迎信息或版本信息,虽然能给系统管理者带来一定的方便,但是这些信息有时候可能被黑客利用,成为攻击服务器的帮凶。
为了保证系统的安全,可以修改或删除某些系统文件,需要修改或删除的文件有四个,分别是: