1

Linux系统的安全设置

 2 years ago
source link: https://blog.51cto.com/u_15070896/5148314
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux系统的安全设置

原创

Jzy的博客 2022-03-25 15:02:53 ©著作权

文章标签 用户账号 bash 主目录 文章分类 其他 服务器 阅读数467

在 Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户
root 之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号。

常见的非登录用户账号包括
bin、daemon、adm、lp、mail 等。为了确保系统安全,​​这些用户账号的登录Shell 通常是/sbin/nologin,表示禁止终端登录​,应确保不被人为改动。

--------------------------------------------------------------------------------------------

root@localhost~]# grep "/sbin/nologin$" /etc/passwd

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

......
//省略部分内容

--------------------------------------------------------------------------------------------

锁定用户

对于 Linux服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。例如,若要锁定、解锁名为
zhangsan 的用户账号,可以执行以下操作(passwd、usermod命令都可用来锁定、解锁账号)。

[root@localhost~]# usermod -L zhangsan //锁定账号

[root@localhost~]# passwd -S zhangsan //查看账号状态

zhangsan LK 2017-08-24 0 99999 7 -1 (密码已被锁定。)

[root@localhost~]# usermod -U zhangsan //解锁账号

[root@localhost~]# passwd -S zhangsan

zhangsan PS 2017-08-24 0 99999 7 -1 (密码已设置,使用 SHA512 算法。

锁定文件

如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用
chattr 命令,分别结合“+i”“-i”选项来锁定、解锁文件,使用 lsattr 命令可以查看文件锁定情况。

--------------------------------------------------------------------------------------------

[root@localhost~]# chattr +i /etc/passwd /etc/shadow //锁定文件

[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看为锁定的状态

----i-----------/etc/passwd

----i-----------/etc/shadow

[root@localhost~]# chattr -i /etc/passwd /etc/shadow //解锁文件

[root@localhost~]# lsattr /etc/passwd /etc/shadow //查看为解锁的状态

----------------/etc/passwd

----------------/etc/shadow

--------------------------------------------------------------------------------------------

在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加、删除账号,也不能

更改用户的密码、登录 Shell、宿主目录等属性信息。

--------------------------------------------------------------------------------------------

[root@localhost~]# chattr +i /etc/passwd /etc/shadow

[root@localhost~]# useradd billgate

useradd:无法打开/etc/passwd

--------------------------------------------------------------------------------------------

密码安全控制

执行以下操作可将密码的有效期设为 30 天(chage 命令用于设置密码时限)。

--------------------------------------------------------------------------------------------

[root@localhost~]# vi /etc/login.defs //适用于新建的用户

......
//省略部分内容

PASS_MAX_DAYS30

[root@localhost~]# chage -M 30 lisi //适用于已有的 lisi 用户

--------------------------------------------------------------------------------------------

用户下次登录时强制更改密码

在某些特殊情况下,如要求批量创建的用户初次登录时必须自设密码,根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略,以便用户在下次登录时必须更改密码。例如,执行以下操作可强制要求用户zhangsan 下次登录时重设密码。

--------------------------------------------------------------------------------------------

[root@localhost~]# chage -d 0 zhangsan

Localhost
login: zhangsan

password:

Youare required to change your password immediately (root enforced)

Changingpassword for zhangsan.

(current)UNIX password:

New password:

Retype new password:

--------------------------------------------------------------------------------------------

命令历史、自动注销

命令历史

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

--------------------------------------------------------------------------------------------

[root@localhost ~]# vi /etc/profile //适用于新登录用户

HISTSIZE=200

[root@localhost~]# export HISTSIZE=200 //适用于当前用户

--------------------------------------------------------------------------------------------

​除此之外,还可以修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。这样,当用户退出已登录 Bash环境以后,所记录的历史命令将自动清空。​

--------------------------------------------------------------------------------------------

[root@localhost~]# vi ~/.bash_logout

history
-c

clear

--------------------------------------------------------------------------------------------

自动注销

Bash终端环境中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。闲置超时由变量TMOUT 来控制,默认单位为秒(s)

--------------------------------------------------------------------------------------------

[root@localhost~]# vi /etc/profile //适用于新登录用户

......
//省略部分内容

export
TMOUT=600

[root@localhost~]# export TMOUT=600 //适用于当前用户

--------------------------------------------------------------------------------------------

需要注意的是,当正在执行程序代码编译、修改系统配置等耗时较长的操作时,应避免设置 TMOUT变量。必要时可以执行“unset TMOUT”命令取消 TMOUT 变量设置。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK