一、用户的账号安全管理
1.1 用户账号清理
在使用Linux系统的过程中,不仅仅是root用户和普通用户的创建,还有很多是系统运转过程中产生的系统用户。出于系统安全考虑,一般不给予系统用户登录的权限,将它们归类为非登录用户
将用户设置为无法登录的手段:
usermod -s /sbin/nologin 用户名 //通过usermod 修改登录shell
1.2 对用户账号进行操作
1.2.1 锁定用户
# 锁定方式
usermod -L 用户名 //锁定用户
passwd -l 用户名 //锁定用户
具体方法:
1.2.2 解锁用户
#解锁方式
passwd -u 用户名 //解锁用户
usermod -U 用户名 //解锁用户
具体操作:
1.2.3 删除用户
#删除方法
userdel 用户名 //删除用户,但不删除用户的家目录
userdel -r 用户名 //删除用户的同时,删除他的家目录
具体操作:
1.3 对用户信息和用户密码文件进行保护
tips:
/etc/passwd //用户配置文件
/etc/shadow //用户密码配置文件
重要文件保护命令:
chattr +i 文件 #锁定
chattr -i 文件 #解锁
lsattr #查看文件锁定状态
1.4 对用户密码进行控制操作
1.4.1 对已经存在的用户账号进行控制
chage [选项] 用户名
-M:密码保持有效的最大天数。
-d:设置”最后一次修改密码的日期“。设置为 0 有特殊意思,表示用户应该在下次登录系统时更改密码。
1.4.2 对新建的用户密码默认设置
vim /etc/login.defs //用户登录密码的默认配置
二、终端自动注销和历史命令
2.1 历史命令的限制
2.1.1 清除当前用户的历史命令
命令:
history //查看当前用户的历史命令
history -c //清空当前用户的历史命令
clear //清除命令,但还是可以看到
history -c 命令只可以临时清除记录(其实所有的文件都还保存在.bash_history ),重启后记录还在。
2.1.2 对历史命令的默认配置进行修改
位置 | 说明 |
/etc/profile | 该文件为系统的每个用户设置环境信息,在用户首次登录时执行。它还从 /etc/profile.d 目录中的配置文件收集 shell 设置。如果要更改 /etc/profile 文件,必须在源文件中添加源(.) 必须添加到源代码中。 |
/etc/bashrc | 为每个运行 bash shell 的用户运行此文件。打开 bash shell 时会读取该文件。如果想更改所有 bash 用户的设置,并将其反映在以后打开的所有 bash shell 中,可以更改此文件。更改该文件无需重启,只需重新打开 bash shell 即可生效。 Ubuntu 没有这样的文件,对应的文件是 /ect/bash.bashrc。 |
~/.bash_profile | 每个用户都可以使用该文件输入特定的 shell 信息,该文件只在用户登录时执行一次!默认情况下,它会设置一些环境变量,并运行用户的 ~/ .bashrc 文件。 该文件类似于 /etc/profile,但需要一个源文件才能激活,其中 /etc/profile 对所有用户有效,而 ~/.bash_profile 仅对当前用户有效。~/.profile (用于 Bourne Shell 和 Korn Shell)和 .login (用于 C Shell)是 .bash_profile 的同义词,旨在与其他 shell 兼容。 |
~/.bashrc | 该文件包含 bash shell 特有的 bash 信息,在登录时或每次打开新 shell 时读取(每个用户的用户目录中都有一个 ~/.bashrc 文件)。(每个用户在其用户目录下都有一个 ~/.bashrc 文件)。该文件类似于 /etc/bashrc,但无需重启即可生效,而是在重新打开 bash 时生效。 /etc/bashrc 会对所有用户新打开的 bash 启用,而 ~/.bashrc 只对当前用户新打开的 bash 启用。 当 bash shell 调用另一个 bash shell 时,即在 shell 中输入 bash 命令启动新 shell 时,~/.bashrc 文件将被读取。这就有效地将登录环境与子 shell 环境分离开来。不过,通常的做法是在 /.bash_profile 中调用 /.bashrc 脚本,以统一用户环境。 |
[root@localhost ~]#vim /etc/profile //打开配置环境
export HISTSIZE=20 // 在/etc/profile 配置中插入, 表示限制历史命名为二十条
[root@localhost ~]#source /etc/profile //刷新加载该配置文件
自动清空的方式 :
1. 注销时自动清空历史命令
[root@localhost ~]# vim ~/.bash_logout
echo " " > ~/.bash_history
2. 登录时自动清空历史命令
[root@localhost ~]# vim ~/.bashrc
echo " " > ~/.bash_history
2.2 设置终端自动注销
[root@localhost ~]# vim /etc/profile
export TMOUT=n #设置登录后无操作退出登录超时时间(n秒后自动注销)
三、切换用户
3.1 su命令的使用
su 命令:可以在终端中切换已知密码的用户,root用户默认普通用户不需要密码。普通用户之间的切换需要密码的切换
su 用户名
whoami 查看当前使用的用户
pwd 查看当前路径
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换。
su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换。
3.2 限制用户之间的切换
限制用户切换的原因:
su 命令虽然方便了普通用户之间的来回切换,但是也存在着一定的安全隐患,如果某一个普通用户的密码泄露,就会成为其他用户的隐患,所以有时候要对一些用户进行切换的限制,防止造成信息泄露的损失
3.2.1 shell模块
vim /etc/pam.d/su 进入存放wheel组和默认root切换权限的配置
限制普通用户切换:
3.3 limit
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
ulimit:修改限制
-a:可以看到系统的相关资源限制设置
vim /etc/security/limits.conf //修改限制
四、授权用户管理
4.1 sudo命令运用前的配置
授权是通过修改Linux系统中/etc/sudoers 的配置,在配置中可以指定用户拥有什么样的权力,而普通用户被授权后,普通用户通过sudo 命令以 root 身份去执行授权的命令
vim /etc/sudoers //打开授权配置文件,写入配置需要强制保存(wq!)
visudo // l快捷打开 /etc/sudoers
用户名 主机host=(root) 绝对路径命令
wangwu ALL=(root)/usr/bin/mount /dev/cdrom /mnt
4.2 普通用户使用授权命令
mkdir ~/guazhai //通过ww用户在家目录下创建一个 guazhai的空文件
sudo mount /dev/sr0 ~/guazhai //sudo 加配置的命令表中的命令,以root的身份去运行该授权命令
注意:第一次执行需要验证密码,默认超时时长为5分钟,在此期间不再重复验证密码
4.3 使用别名进行批量设置普通用户授权
visudo 文件中由四种别名设置:
User_Alias(用户)
Host_Alias(登录主机)
Cmnd_Alias(命令)
Runas_Alias(代表用户)
User_Alias USERS=zhangsan,lisi //批量设置 用户获权
#Host_Alias HOST=localhost
Cmnd_Alias CMNDS=/usr/sbin/*,!/usr/sbin/reboot,!/usr/sbin/poweroff,!/usr/sbin/init,!/usr/bin/rm
//利用别名,批量设置命令
USERS ALL=CMNDS
//启用格式
五、端口扫描工具
5.1 namp工具
—— 一款强大的网络端口扫描、安全、检测工具
检查并安装 namp工具:
[root@localhost ~]# rpm -qa|grep nmap //查看nmap
[root@localhost ~]# yum install -y nmap //安装nmap
使用格式:
nmap [扫描类型] [选项] <扫描目标>
选项 | 作用 |
-p | 指定扫描的端口。 |
-n | 禁用反向DNS解析(以加快扫描速度) |
-sT | TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 |
-sU | UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较 |
-sP | ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。 |
总结
1. 用户账号的锁定和解锁。通过创建/etc/nologin 文件使普通用户无法登录
2.通过修改/etc/profile 文件来限制命令条数,以及用户退出时间
3.su命令的切换与sudo 对用户进行提权
4.pam.d /su 建立wheel组,使普通用户无法任意切花
5.namp 查看网络端口具体信息