携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情
账号安全控制
系统账号清理
在linux系统中,除了root用户,还有许多程序用户,一般不允许登录。
- 将非登录用户的shell设成/sbin/nologin
usermod -s /sbin/nologin 用户名
修改后的用户无法登录系统
锁定长期不使用的账号
- passwd -l 用户名 (锁定账号)
- passwd -u 用户名 (解锁账号)
- passwd -S 用户名 (查看账号状态)
- usermod -L 用户名 (锁定账号)
- usermod -U 用户名 (解锁账号)
- usermod也可实现相同的效果
删除无用的账号
系统中会存在一些不用的账号,我们通常使用usredel命令删除账户
- userdel 用户 (会保留用户的家目录)
- userdel -r 用户(会连用户的家目录一起删除)
锁定账号文件passwd,shadow
锁定账号文件后不能进行任何操作,也无法删除。
- chattr +i 文件或目录 (添加i属性,就无法进行任何操作)
- lsattr 文件或目录 (查看属性)
- chattr -i 文件或目录 (去掉属性)
密码安全控制
一般设置密码有效期,或设置下次登录修改密码
- 对于新建用户修改 etc/login.defs文件即可
- 对与已有用户使用chage命令
- 修改etc/login.defs文件
若将数值修改为30,则新建用户时密码的有效期都为30天
已有用户chage命令
-
-M:密码保持有效的最大天数
-
-d:设置”最后一次修改密码的日期“。设置为 0 有特殊意思,表示用户应该在下次登录系统时更改密码。
命令历史限制
- 临时修改历史命令条数。注销后失效。
2.永久修改历史命令条数。编辑/etc/profile 文件
终端自动注销
vim /etc/profile
加export TMOUT=600 (设置600s自动注销)
用户切换和提权
用户切换 su
- su可以切换用户身份
- su 用户名 这是不完全切换,切换后通常不会改变当前的家目录
2.su - 用户名 完全切换,会读取用户的配置文件,切换到自己的家目录中
限制用户使用su
通过修改 /etc/pam.d/su 文件 默认开启第二行,注释第六行
-
开启第二行,注释第六行,这种状态下是允许所有用户间使用su命令进行切换的。
-
两行都注释是允许所有用户都能使用su命令,但root使用su切换到其他普通用户需要输入密码
-
如果开启第六行,表示只有root用户和wheel组内的用户才可以使用su命令。
-
如果注释第二行,开启第六行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令
开启第六行
此时只有root和在wheel组里的用户可以使用su命令
- 登录到张三用户,使用su切换至root,权限被拒绝
- 将张三加入到wheel组
- 可以使用su命令
用户提权sudo
普通用户使用某些命令时没有root用户的权限,通过sudo命令和编辑/etc/sudoers 让普通用户执行一些root用户才能完成的操作
- 使用visudo来配置 /etc/sudoers 文件
- 普通用户无法使用mount命令
通过配置/etc/sudoers 让张三用户拥有挂载权限
- 将普通用户加入到wheel组中也可以使用没有权限的命令
- 将李四用户加入到wheel中
- 切换到李四用户,使用mount命令
引导登录控制
GRUP 菜单加密
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数
-
CentOS 7系统中,直接使用 “grub2-setpasswd” 命令设置grub密码;
-
CentOS 6系统中,先要使用grub2-mkpasswd-pbkdf2命令生成PBKDF2加密口令,然后在/etc/grub.d/00_header文件中添加超级用户和PBKDF2加密口令,最后使用grub2-mkconfig命令生成grub配置文件。
-
CentOS 7系统中,直接使用 “grub2-setpasswd” 命令设置grub密码。
- 重启虚拟机,需要输入密码才能进入菜单
网络端口扫描
namp工具
nmap [扫描类型] [选项] <扫描目标>
netstat命令
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
- netstat 选项
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。
-t查看TCP协议相关的信息。-u显示UDP协议相关的信息。
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
-r显示路由表信息
-l显示处于监听状态(Listen)的网络连接及端口信息。