新的服务器到手,部署服务器初始化。
1、配置ip地址 网关dns解析(static)内网和外网。
2、安装源,外网(在线即可),内网(只能用源码包编译安装)。
3、磁盘分区,lvm raid。
4、系统权限配置和安全加固。
系统安全
1、保护数据安全,客户信息,财务信息。
2、互联网,网络业务服务,必须要通过工信部的资质审核。
3、保护品牌形象。信息安全—绝对红线
应用:
1、不需要或者不想登录的用户设置为nologin。
usermod -s nologin 用户 管理员权限
[root@localhost opt]# usermod -s nologin lm
[root@localhost opt]# cat /etc/passwd
lm:x:1020:1020::/home/lm:nologin
2、锁定用户
usermod -L 用户
[root@localhost opt]# usermod -L lk
[root@localhost opt]# passwd -S lk
lk LK 2024-05-30 0 99999 7 -1 (密码已被锁定。)
usermod -U 用户
[root@localhost opt]# usermod -U lk
[root@localhost opt]# passwd -S lk
lk PS 2024-05-30 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
passwd -l 用户
[root@localhost opt]# passwd -l lk
锁定用户 lk 的密码 。
passwd: 操作成功
[root@localhost opt]# passwd -S lk
lk LK 2024-05-30 0 99999 7 -1 (密码已被锁定。)
passwd -u 用户
[root@localhost opt]# passwd -u lk
解锁用户 lk 的密码。
passwd: 操作成功
[root@localhost opt]# passwd -S lk
lk PS 2024-05-30 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
3、删除无用账号
userdel -r 用户名(同时删除家目录)
[root@localhost ~]# userdel -r lm
4、锁定重要的文件
passwd shadow fstab ifcfg-ens33
lsattr 文件,查看文件锁定状态
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
没有状态 lsattr 查看文件的状态
锁定文件:
chattr +i 文件,锁定文件,管理员只读模式
[root@localhost ~]# lsattr /etc/passwd
----i----------- /etc/passwd
chattr -i 文件,解锁文件
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
二、密码安全控制
1、新建用户
vim /etc/login.defs
vim /etc/login.defs(已有用户不受影响)
2、已有用户
chage - M 30 用户名(更改用户有效期)
ly4:$6$0N3SiHo/$GumXFIMx2y7thq0L36kHHJF893dJAE.eEB0.Zu/RMcW10HSERLpmPvRP43c1swmudd7EsFF/efXIJcrW8IQYc.:19873:0:99999:7:::
liy:!!:19873:0:30:7::: ##更改有效期
如何强制用户在下一次登录时候修改密码
chage -d 0 用户名 (重新进需要普通用户切换,输入两次密码,才能改密码)
[ly1@localhost ~]$ su - liy
密码:
su: 鉴定故障
[ly1@localhost ~]$ su - liy
密码:
您需要立即更改密码(root 强制)
为 liy 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
无效的密码: 这个密码和原来的相同
新的 密码:
无效的密码: 这个密码和原来的相同
新的 密码:
无效的密码: 密码与原来的太相似
su: 已经超出服务重试的最多次数
三、限制
1、修改历史记录
history -c ##临时清除命令,重启之后又有
vim /etc/profile
修改历史记录,修改HISTSIZE=1000
source /etc/profile ##刷新配置文件
2、设置登录的超时时间:
vim /etc/profile
最后一行TMOUT=10,无操作10秒之后退出登录。
工作中TMOUN=600
四、如何对用户切换进行限制:
su 切换用户
su 用户名 不会更改环境变量,用的还是之前用户的shell,不完全切换。
su - 用户名 使用用户自己的环境。
如果在root用户下,su相当于刷新,如果是普通用户就是切换回root。
[root@localhost ~]# hostnamectl set-hostname chenqian ##更改主机名
[root@localhost ~]# su 刷新
[root@chenqian ~]# #
限制用户使用su这个命令?
PAM安全认证:linux系统身份认证的架构,提供了一种标准的身份认证的接口,允许管理员可以自定义认证的方式和方法。
PAM认证是一个可插式的默认。
PAM的认证类型:
认证模块:验证用户的省份,基于密码的认证方式。
授权模块:控制用户对系统资源的访问,文件权限,进程的权限。
账户管理模块:管理用户账户信息,密码过期策略,账户锁定策略。
会话管理模块:管理用户会话,注销用户等。
cd /etc/pam.d/
passwd dn 三次机会
1、失败 成功
2、失败
3、成功 失败
结束 失败次数过多 结束 结束
required:一票否决,只有成功才能通过认证,认证失败,也不会立刻结束,只有所有的要素验证完整才会最终返回结果。必要条件(个人理解为在规定范围内,允许多次认证,但是必须成功才能通过)
requisite:一票否决,只有成功才能通过,但是一旦失败,其他要素不再验证,立刻结束,必要条件。(个人理解只有一次认证,无论成功还是失败都结束)
sufficient:一票通过,成功之后就是满足条件,但是失败,也可忽略,成功了执行验证成功的结果,失败返回验证失败的结果,最终的结果。充分条件。(个人理解只有一次认证,无论成功还是失败都给结果)
optional,选项,反馈给用户的提示或者结果。
控制位,必须要满足充分和必要条件才能通过。
wheel
wheel组,这个在组文件当中没有,隐藏,特殊组。用来控制管理员的权限的一个过程。
wheel组专门用来为root服务。
具体来说,如果普通用户加入到了wheel组,就可以拥有管理员才能够执行的一些权限。
前面必须要加上sudo sudo之后就可以使用wheel组的特殊权限。
wheel组默认是空的,需要管理员账号手动添加。
配置sudo的规则,然后以sudo的方式,才能够运行特定的指令(管理员才能够执行的权限)
wheel的权限很大,配置的时候要以最小权限的原则进行配置。
谁在wheel组,才能进行切换。
vim /etc/pam.d/su
打开
auth required pam_wheel.so use_uid
[ly4@localhost ~]$ su - xy102
密码:
上一次登录:四 5月 30 20:17:53 CST 2024pts/0 上
我爱王心凌!
[xy102@localhost ~]$ su - ly1
密码:
su: 拒绝权限
[xy102@localhost ~]$ 登出
[ly4@localhost ~]$ su - ly1
密码:
上一次登录:五 5月 31 00:14:28 CST 2024pts/0 上
最后一次失败的登录:五 5月 31 00:16:40 CST 2024pts/0 上
最有一次成功登录后有 3 次失败的登录尝试。
[ly1@localhost ~]$ su - root
密码:
上一次登录:四 5月 30 23:49:12 CST 2024从 192.168.168.1pts/0 上
总结:打开wheel组,ly1,ly4,以及管理员root,可以互相切换;
wheel组用户可以切换到普通用户;
普通用户不能切换到wheel组用户;
#auth required pam_wheel.so use_uid #关闭wheel
关闭wheel组权限用户之间可以相互切换
[root@localhost ~]# su - ly1
上一次登录:五 5月 31 00:27:13 CST 2024pts/0 上
[ly1@localhost ~]$ su - ly
密码:
上一次登录:五 5月 31 00:24:27 CST 2024pts/0 上
最后一次失败的登录:五 5月 31 00:27:49 CST 2024pts/0 上
最有一次成功登录后有 3 次失败的登录尝试。
[ly@localhost ~]$
[ly@localhost ~]$ su - ly1
密码:
上一次登录:五 5月 31 00:28:08 CST 2024pts/0 上
su
sudo相当于给普通用户赋予管理员的权限(最小权限,管理员可以使用的命令)
vim /etc/sudoers
注释107,111行
在100行
ly1 ALL=(root) /usr/bin/passwd #用whereis
[root@localhost ~]# passwd ly1
更改用户 ly1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# gpasswd -d ly1 wheel
正在将用户“ly1”从“wheel”组中删除
gpasswd:用户“ly1”不是“wheel”的成员
[root@localhost ~]# su - ly1
上一次登录:五 5月 31 01:51:07 CST 2024pts/0 上
[ly1@localhost ~]$ passwd ly1
passwd:只有根用户才能指定用户名。
[ly1@localhost ~]$ sudo passwd ly1
[sudo] ly1 的密码:
更改用户 ly1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# gpasswd -a ly4 wheel
正在将用户“ly4”加入到“wheel”组中
[root@localhost ~]# vim /etc/pam.d/su
[root@localhost ~]# su - ly4
上一次登录:五 5月 31 07:02:21 CST 2024pts/1 上
[ly4@localhost ~]$ passwd ly4
passwd:只有根用户才能指定用户名。
[ly4@localhost ~]$ sudo passwd ly4
[sudo] ly4 的密码:
ly4 不在 sudoers 文件中。此事将被报告。 #需要将用户加入sudoers,否则无权限
开关机安全控制
grub2-setpassword
[root@localhost ~]# grub2-setpassword
Enter password: #设置密码
Confirm password: #设置密码
简单密码扫描
1、关闭防火墙、安全机制
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
2、安装包拖入/opt、进行解压
[root@localhost opt]# tar -xf john-1.8.0.tar.gz
3、进入文件夹配置安装过程中需要的编译环境
[root@localhost opt]# cd john-1.8.0
[root@localhost john-1.8.0]# yum -y install gcc gcc-c++ make
4、[root@localhost john-1.8.0]# cd src
5、编译使用环境
[root@localhost src]# make clean linux-x86-64
6、把/etc/shadow 复制到/opt/shadow.txt下
[root@localhost src]# cp /etc/shadow /opt/shadow.txt
7、切换到/etc/john-1.8.0/run 打开程序破解简单程序密码,破解的是shadow里面用户比较简单的密码,一般纯数字比较好破解。
[root@localhost run]# ./john /opt/shadow.txt
[root@localhost run]# ./john /opt/shadow.txt
Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
123456 (ly)
123 (ly4)
123 (root)
3g 0:00:00:23 100% 2/3 0.1266g/s 371.3p/s 379.4c/s 379.4C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed
8、查看简单密码扫描情况./john --show /opt/shadow.txt
[root@localhost run]# ./john /opt/shadow.txt
Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
123456 (ly)
123 (ly4)
123 (root)
3g 0:00:00:23 100% 2/3 0.1266g/s 371.3p/s 379.4c/s 379.4C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[root@localhost run]# ./john -show /opt/shadow.txt
root:123::0:99999:7:::
ly:123456:19864:0:99999:7:::
ly4:123:19864:0:99999:7::19898:
3 password hashes cracked, 0 left
最后总结:你会做那些系统加固
1、锁定重要文件。
2、修改history命令的历史记录。
3、禁止普通用户切换用户。
4、设置sudo权限,给普通用户。
5、设置grub菜单加密。
6、把一些默认的端口号,大家都知道的端口号改掉。
7、内核参数修改。
vim /etc/sysctl.conf
内核参数的配置文件。
e
//安装依赖环境
cd /opt/john-1.8.0/src
//工具解压在/opt目录下
make clean linux-x86-64
cp /etc/shadow /opt/shadow.txt
//复制密码文件到/opt下,
cd …/run
./john /opt/shadow.txt
//扫描密码
./john --show /opt/shadow.txt
//查看扫描情况
最后总结:你会做那些系统加固
1、锁定重要文件。
2、修改history命令的历史记录。
3、禁止普通用户切换用户。
4、设置sudo权限,给普通用户。
5、设置grub菜单加密。
6、把一些默认的端口号,大家都知道的端口号改掉。
7、内核参数修改。
vim /etc/sysctl.conf
内核参数的配置文件。