有人要求我通过禁用不需要的服务的登录 shell 来强化我的 Linux 客户端。例如,在 SLES12 SP2 安装中,以下服务默认配置为使用 bash shell。我不确定如果我对系统进行这些更改会有什么影响。
使用 /sbin/nologin 或 /bin/false 之类的东西重新配置它们是否安全?
只要系统处于锁定密码状态,离开系统是否安全?(*,!,!!)
- 据我所知,我已经添加了用户密码状态和依赖关系。
列出所有具有 shell 的用户-/etc/passwd:
cat /etc/passwd | egrep -v '/sbin/nologin|/bin/false|^root'
at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
daemon:x:2:2:Daemon:/sbin:/bin/bash
ftp:x:40:49:FTP account:/srv/ftp:/bin/bash
games:x:12:100:Games account:/var/games:/bin/bash
lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
列出密码状态:/etc/shadow
for user in $(cat /etc/passwd | egrep -v '/bin/false|/sbin/nologin|^root' |cut -d: -f1) ; do grep $user /etc/shadow; done
at:!:17115::::::
statd:!:17115::::::
bin:*:17105::::::
daemon:*:17105::::::
ftp:*:17105::::::
ftpsecure:!:17115::::::
games:*:17105::::::
lp:*:17105::::::
openslp:!:17105::::::
man:*:17105::::::
news:*:17105::::::
nobody:*:17105::::::
uucp:*:17105::::::
列出用户依赖项:/etc/group
for user in $(cat /etc/passwd | egrep -v '/bin/false|/sbin/nologin|^root' |cut -d: -f1) ; do grep $user /etc/group; done
at:x:25:
bin:x:1:daemon
winbind:x:483:
bin:x:1:daemon
daemon:x:2:
ftp:x:49:
games:x:40:
lp:x:7:
man:x:62:
news:x:13:
nobody:x:65533:
nogroup:x:65534:nobody
uucp:x:14:
答案1
我的观点是,如果用户存在于系统中,那么它可能有用。因此,与其盲目地更改 shell,不如验证哪些服务依赖于特定用户,以及用户是否在系统中发挥实际作用。
如果您查看您的/etc/shadow
文件(我假设您正在使用影子密码),您可能会注意到大多数帐户都被禁用(例如,密码字段设置为“0”)。
对于实际已启用的用户,如果服务器上不需要该服务(即 ftp),我会删除该服务,或者完全禁用该用户。您可以参考此问题有关如何正确禁用用户帐户的更多信息。