Linux基本安全措施

系统账号清理

Linux系统中随系统或应用程序安装过程中生成的大量账号一般用来维护系统运行、启动或保持服务进程,一般不允许登录,故也称为非登录用户。

[root@localhost ~]# cat /etc/passwd  | grep "nologin$"		# 非登录用户的shell为/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

在这些用户之中,有一些用户如news、uucp、games、gopher,可以视为冗余账号,可直接删除。另外,还有一些随应用程序安装的用户账号,未随着应用程序的卸载而删除,需要管理员手动删除。

在Linux操作系统中,一些长期不用的且不能确定能不能删除的账号,应该暂时将其锁定。

[root@localhost ~]# passwd -l test		# 锁定用户
Locking password for user test.
passwd: Success
[root@localhost ~]# passwd -S test		# 查看锁定状态
test LK 2019-11-13 0 99999 7 -1 (Password locked.)
[root@localhost ~]# passwd -u test		# 解锁用户
Unlocking password for user test.
passwd: Success
[root@localhost ~]# passwd -S test		# 查看锁定状态
test PS 2019-11-13 0 99999 7 -1 (Password set, SHA51 crypt.)

密码安全控制

在不安全的网络环境中,用户应该避免长期使用同一个密码,管理员可以在服务器端限制用户密码的最大有效天数,对密码已过期的用户,登录时将被要求重新设置密码,否则将拒绝登录。

可以通过设置默认的密码有效天数来对创建的新用户进行密码有效天数进行设置

[root@localhost ~]# sed -i '/PASS_MAX_DAYS/s/99999/10/' /etc/login.defs	# 把默认的99999天改为10天

如果要对已存在的用户修改密码的有效天数,可使用chage命令

[root@localhost ~]# chage -M 30 test		# 修改test用户的密码有效天数为30天
[root@localhost ~]# cat /etc/shadow | grep test	# 查看密码有效天数为30(第4字段)
test:$6$HJ8K……qo0:18214:0:30:7:::

若需要用户下次登录时修改密码,可用以下两种方式

[root@localhost ~]# chage -d 0 test1		# 要求test1用户下次登录时修改密码
# 使用test1用户登录
You are required to change your password immediately (root enforced)
Last login: Thu Nov 14 19:50:02 2019 from 192.168.218.1
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user test1.
Changing password for test1.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

# 或者使用passwd -e
[root@localhost ~]# passwd -e test1
Expiring password for user test1.
passwd: Success
# 使用test用户su切换到test1用户
[test@localhost ~]$ su - test1
Password: 
You are required to change your password immediately (root enforced)
Changing password for test1.
(current) UNIX password: 
New password: 
Retype new password: 
Last login: Thu Nov 14 19:50:57 EST 2019 from 192.168.218.1 on pts/1

命令历史

我们知道,在Linux系统中可以使用上下键来翻阅历史命令,也可以用history命令查看历史命令。这虽提供了便利,但也存在安全风险。

bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISTSIZE变量值,可以影响系统中的所有用户。

[root@localhost ~]# sed -i '/HISTSIZE/s/1000/200/' /etc/profile

同样,我们可以设置在用户登出时清除历史命令。修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。

[root@localhost test]# echo "history -c" >> /home/test/.bash_logout 
[root@localhost test]# echo "clear" >> /home/test/.bash_logout 

自动注销

设置闲置超时时间,当超过指定的时间没有任何输入即自动注销终端。通过修改/etc/profile文件,对新登录的用户生效。

[root@localhost ~]# echo "export TMOUT=600" >> /etc/profile	# 对所有新登录使用进行超时限制
[root@localhost ~]# export TMOUT=10				# 适用于当前用户,把超时时间改为10秒
[root@localhost ~]# timed out waiting for input: auto-logout
[root@localhost ~]# unset TMOUT					# 取消TMOUT变量设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值