安全运维之账户安全与服务,


账户安全是系统安全的第一道防线,通过删除不必要的用户以及对登录进行加密与限制,可以避免因权限泄露与中间人攻击导致的安全隐患。

删除不必要的用户

在linux系统安装过程中,系统会建立一些不必要的用户与用户组,这些用户与用户组会成为黑客攻击的目标,删除它们可以有利于系统的安全。
Linux中可以删除的默认用户有:

  • adm:伪用户,不可登录,拥有账户文件
  • lp:伪用户,不可登录,lp或lpd子系统使用
  • sync
  • shutdown
  • halt
  • news
  • uucp:伪用户,不可登录,uucp使用
  • operator
  • games
  • gopher

Linux中可以删除的默认用户组有:

  • adm
  • lp
  • news
  • uucp
  • games
  • dip
  • pppusers
  • popusers
  • slipusers

通过sudo限制su的滥用

出于系统安全的目的,一般服务器都会限制root用户的直接登录,而是通过普通用户登录系统,然后从普通用户切换至root用户。但允许太多普通用户使用su切换至root用户会提高密码泄露的风险。因此在需要多人管理的服务器系统中,使用su不是一个很好的选择,root用户密码应当只被掌握在少数管理员的手中。
使用sudo可以给普通用户分配一些root用户的权限,而且也不需要普通用户知晓root用户的密码。
sudo的运行过程如下:

sudo可以通过配置文件/etc/sudoers来进行授权
例如普通用户user01无法访问/etc/shadow文件,
则可以在/etc/sudoers文件中添加如下一行来为普通用户授权:

user01       ALL = /bin/more /etc/shadow

这样,user01用户就可以通过more命令访问/etc/shadow文件。
当用户执行了sudo more /etc/shadow命令后,需要输入user01的密码,然后在后面三分钟内,都可以在不用输入密码的情况下访问文件了。
但一些程序会无法通过输入密码的方式来正确执行,我们就需要给普通用户添加一个无需凭证的权限。
例如,让普通用户user01具有/etc/init.d/nagios脚本重启的权限,可以在/etc/sudoers文件中添加如下一行来为普通用户授权:

user01       ALL = NOPASSWD: /etc/init.d/nagios restart

关闭不必要的服务

在安装完成后,Linux绑定了很多不必要的服务,这些服务都默认自动启动的,关闭它们可以提高系统的安全性。
但关闭哪些服务,要根据服务器的用途而定,例如某台用于WWW的应用,那么除了httpd外和系统的必要服务外都可以关闭。
以下服务如果不会被用到,可以关闭:

  • anacron:用于定期检测服务器在关机状态下没有执行的定时任务,并在特定的时间执行它们
  • auditd:用于审计,负责把内核产生的信息写入到磁盘,用于记录与系统内核有关的活动与操作。
  • autofs:用于自动挂载服务,与写入fstab文件不同,它不会开机就挂载文件系统,而是当用户访问时才挂载服务。
  • svhi-dacmon
  • biuetooth:用于蓝牙,一般服务器也不会用这个功能吧。
  • cpuspeed:用于动态调整CPU速度,除非用户使用的是基于笔记本的Linux系统,否则应当关闭它。
  • firstboot:Fedora特有,用于安装之后第一次启动时仅需要执行一次的特定任务。
  • gpm:用于在无图形界面的鼠标支持。
  • haldaemon:Fedora特有,用于自动挂载鼠标键盘以及USB设备。
  • hidd:对输入设备提供蓝牙支持。
  • ip6tables:用于ipv6防火墙。
  • ipsec:用于搭建VPN服务。
  • isdn:用于使用isdn猫上网。
  • lpd:打印机守护程序。
  • mcstrans:用于SELinux,如果你使用SELinux,那么应当开启它。
  • netfs:用于在系统启动时自动挂载网络中的共享文件空间,比如:NFS,Samba 等。
  • nfs:用于 Unix/Linux/BSD 系列操作系统的标准文件共享方式,如果你用到这种方式,那么保持它开启。
  • nfslock:用于 Unix/Linux/BSD 系列操作系统的标准文件共享方式,如果你用到这种方式,那么保持它开启。
  • nscd:用于为NIS和LDAP等服务提供更快的验证。
  • pcscd:用于提供智能卡和智能卡读卡器支持。
  • portmap: NFS和 NIS的补充。
  • readahead_early:通过预先加载特定的应用程序到内存中以提供性能,让程序启动更快。
  • restorecond:用于给SELinux监测和重新加载正确的文件上下文(file contexts),如果你使用SELinux的话强烈建议开启它。
  • rpcgssd:用于NFSv4,除非你需要或使用NFSv4,否则关闭它
  • rpcidmapd:用于NFSv4,除非你需要或使用NFSv4,否则关闭它
  • rstatd:用于获取系统的资源使用情况,常用于监控服务。
  • sendmaill:用于发送邮件。
  • setroubleshoot:用于SELinux,用于读取内核日志。
  • yppasswdd:用于NIS服务。
  • ypserv:用于NIS服务。

相关内容

    暂无相关文章