|
楼主 |
发表于 2018-12-18 09:39:31
|
显示全部楼层
来自 中国云南文山壮族苗族自治州
安全是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"
在之前加上“#” ,注释掉即可。
|
|