设为首页 加入收藏

Linux系统登录账户的安全设置方法

打印
2015-12-07 16:53:47
摘要:Linux系统登录账户的安全设置方法安全是IT行业一个老生常谈的话题了,从前段时间黑色星期五事件中折射出了很多安全问题,处理好信息安全问

Linux系统登录账户的安全设置方法

安全是IT行业一个老生常谈的话题了,从前段时间“黑色星期五”事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓。因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞。

账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别, 今天小编主要为大家分享Linux系统登录账户的安全设置方法。

1.删除特殊的账户和账户组

Linux系统提供了各种不同角色的系统账号,在系统安装完成后,默认会安装很多不必要的用户和用户组,如果不需要某些用户或者组,就要立即删除它,因为账户越多,系统就越不安全,很可能被黑客利用,进而威胁到服务器的安全。

Linux系统中可以删除的默认用户和组大致有如下这些:

可删除的用户,如 adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher 等。

可删除的组,如 adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers 等。

删除的方法很简单,下面以删除 games 用户和组为例介绍具体的操作。

删除系统不必要的用户使用下面命令:

[root@localhost ~]# userdel games

删除系统不必要的组使用如下命令:

[root@localhost ~]# groupdel games

有些时候,某些用户仅仅用做进程调用或者用户组调用,并不需要登录功能,此时可以禁止这些用户登录系统的功能,例如要禁止 nagios 用户的登录功能,可以执行如下命令:

[root@localhost ~]# usermod -s /usr/sbin/nologin nagios

其实要删除哪些用户和用户组,不是固定的,要根据服务器的用途来决定,如果服务器是用于 Web 应用的,那么系统默认的 apache 用户和组就无需删除;而如果服务器是用于数据库应用的,那么默认 apache 用户和组就建议要删除掉。

2.关闭系统不需要的服务

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 关闭服务自动启动的方法很简单,可以通过chkconfig命令实现。例如要关闭 bluetooth服务,执行下面命令即可:

 

chkconfig --level 345 bluetooth off对所有需要关闭的服务都执行上面操作后,重启服务器即可。

3.密码的安全策略

在Linux系统中,远程登录系统有两种认证方式:密码认证和密钥认证.密码认证方式是传统的安全策略,对于密码的设置,比较普遍的说法是:至少6个字符以上,密码要包含数字、字母、下划线、 特殊符号等。设置一个相对复杂的密码,对系统安全能起到一定的防护作用,但是也面临一些其他问题,例如密码暴力破解、密码泄露、密码丢失等,同时过于复杂的密码对运维工作也会造成一定的负担。

密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当需要登录系统时,通过本地专用密钥和远程服务器的公用密钥进行配对认证,如果认证成功,就成功登录系统。这种认证方式避免了被暴力破解的危险,同时只要保存在本地的专用密钥不被黑客盗用,攻击者一般无法通过密钥认证的方式进入系统。因此,在Linux下推荐用密钥认证方式登录系统,这样就可以抛弃密码认证登录系统的弊端。

4.合理使用 su 、sudo

su命令是一个切换用户的工具,经常用于将普通用户切换到超级用户下,当然也可以从超级用户切换到普通用户。为了保证服务器的安全,几乎所有服务器都禁止了超级用户直接登录系统,而是通过普通用户登录系统,然后再通过su命令切换到超级用户下,执行一些需要超级权限的工作。通过su命令能够给系统管理带来一定的方便,但是也存在不安全的因素,例如系统有10个普通用户,每个用户都需要执行一些有超级权限的操作,就必须把超级用户的密码交给这10个普通用户,如果这10个用户都有超级权限,通过超级权限可以做任何事,那么会在一定程度上对系统的安全造成了威协。因此 su 命令在很多人都需要参与的系统管理中,并不是最好的选择,超级用户密码应该掌握在少数人手中,此时sudo命令就派上用场了。

sudo命令允许系统管理员分配给普通用户一些合理的“权利” ,并且不需要普通用户知道超级用户密码, 就能让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如系统服务重启、 编辑系统配置文件等,通过这种方式不但能减少超级用户登录次数和管理时间,也提高了系统安全性。因此,sudo命令相对于权限无限制性的su来说,还是比较安全的,所以sudo也被称为受限制的su,另外sudo也是需要事先进行授权认证的,所以也被称为授权认证的su。

5.删减系统登录欢迎信息

系统的一些欢迎信息或版本信息,虽然能给系统管理者带来一定的方便,但是这些信息有时候可能被黑客利用,成为攻击服务器的帮凶,为了保证系统的安全,可以修改或删除某些系统文件,需要修改或删除的文件有 4 个,分别是/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。

6.禁止Control-Alt-Delete

在 Linux 的默认设置下,同时按下Control-Alt-Delete组合键,系统将自动重启,这个策略是很不安全的,因此要禁止 Control-Alt-Delete 组合键重启系统。禁止的方法很简单,在Centos5.x 以下的系统,只需修改/etc/inittab 文件即可,操作如下:

[root@localhost ~]#vi /etc/inittab

 

找到此行:

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

在之前加上“#” ,然后执行:

[root@localhost ~]#telinit q

在 Centos6.x 以上版本中,需要修改/etc/init/control-alt-delete.conf 文件,找到如下内容:

exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

在之前加上“#” ,注释掉即可。

相关阅读

Nginx配置PHP方法有哪些

Nginx配置PHP方法有哪些对于很多人而言,Nginx的服务器配置PHP方法网上有很多,也很容易搜到,可是尝试过的真正成功的又有多少?网上好多资

平台探索.创记事
  • 1
  • 2
  • 3
热贴排行榜
新华社最新资讯
精彩推荐