zoukankan      html  css  js  c++  java
  • 安全运维之账户安全与服务

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

    删除不必要的用户

    在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的运行过程如下:

    1. 将当前用户切换至root用户或指定的用户下
    2. 以root用户或指定用户的身份执行命令
    3. 执行完毕,直接退回普通用户

    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服务。
  • 相关阅读:
    php 生成二维码
    drupal 7.23 上传中文命名文件bug
    tp接支付宝接口签名不相等解决办法 接口版本3.3 tp版本3.1
    ThinkPHP实现支付宝接口功能
    js 倒计时 已过去时间
    php设计模式——单例模式
    学习练习 java 不重复的三位偶数
    学习练习 java 程序设计园的周长面积
    学习记录 java泛型资料
    学习总结 java 父子级
  • 原文地址:https://www.cnblogs.com/lynk/p/12056634.html
Copyright © 2011-2022 走看看