将非登陆用户的Shell设为/sbin/nologin,表示禁止中断登陆,确保不被人为改动
在系统中,除了手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了root之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登陆的,因此也称为非登陆用户
[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
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
锁定长期不使用的账户
[root@localhost ~]# id zhangsan //查看用户zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) 组=1001(zhangsan)
[root@localhost ~]# usermod -L zhangsan //锁定账号
[root@localhost ~]# passwd -S zhangsan //查看账号状态
zhangsan LK 2019-11-14 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U zhangsan //解锁账号
[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2019-11-14 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
删除无用的账号
[root@localhost ~]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) 组=1001(zhangsan)
[root@localhost ~]# userdel zhangsan //删除账号
[root@localhost ~]# id zhangsan
id: zhangsan: no such user
锁定账号文件passwd、shadow
[root@localhost ~]# useradd zhangsan //目前为操作锁定,可正常创建账户
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) 组=1001(zhangsan)
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow //锁定文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看状态
----i----------- /etc/passwd //i 为锁定状态
----i----------- /etc/shadow //i 为锁定状态
[root@localhost ~]# useradd lisi //尝试创建账号
useradd:无法打开 /etc/passwd //无法打开创建
[root@localhost ~]# id lisi //未创建成功
id: lisi: no such user
[root@localhost ~]# userdel -r zhangsan //锁定状态无法删除账号
userdel:无法打开 /etc/passwd
[root@localhost ~]# passwd zhangsan //锁定状态无法更改账号密码
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd: 鉴定令牌操作错误
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow //解锁文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看为解锁状态
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。 //解锁后可以更改密码
[root@localhost ~]# userdel -r zhangsan //接所有可以删除账号
[root@localhost ~]# id zhangsan
id: zhangsan: no such user
当所有的用户账号已经固定不在进行更改,可以采取锁定账号配置文件的方法。使用chattr命令,分别结合“+i” “-i”选项来锁定、解锁文件,使用lsattr命令可以查看文件锁定情况。
在账号文件被锁定情况下,其内容跟不允许变更,因此无法添加、删除账号,也不能更改用户的密码、登陆shell、宿主目录等属性信息。
设置密码有效期
已创建的用户设置密码有效期
[root@localhost ~]# chage -M 30 lisi
未创建、准备创建的用户设置密码有效期 vim/etc/login.defs
[root@localhost ~]# vim/etc/login.defs
配置文件更改后,仅对后期创建的用户生效,不会影响到先前已创建的用户密码有效期
要求用户下次登陆时修改密码
将有效期设置为0,强制在下次登陆时修改密码(不建议使用,更改的密码不允许使用连续字母及数字)
[root@localhost ~]# chage -d 0 lisi
减少记录的命令条数
[root@localhost ~]#vim /etc/profile
HISTSIZE=200 (默认是1000)
[root@localhost ~]#source vim /etc/profile
注销时自动清空命令历史
[root@localhost ~]#vim ~/.bash_logout
history -c
clear
闲置600秒后自动注销
[root@localhost ~]#vim ~/.bash_profile //进入配置文件
…………
export TMOUT=60 //添加命令
用途:Substitute User,切换用户
格式:
su - 目标用户
root——>任意用户,不需要验证密码
普通用户——>其他用户,需要验证目标用户密码
PAM(Pluggable Authentication Modules)可插拔式认证模块,他是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式
查看某个程序是否支持PAM认证,可以用ls命令进行查看,例如查看su是否支持PAM模块认证
控制类型也可以称做Control Flags,用于PAM验证类型的返回结果
required验证失败时仍然继续,但返回Fail
requisite验证失败则立即结束整个验证过程,返回Fail
sufficent验证成功则立即返回,不在继续,否则忽略结果并继续
optional不用于验证,只显示信息(通常用于session类型)
用途:以其他用户身份(如root)执行授权的命令
用法:
sudo 授权命令
% 代表设定的组,所有用户具备的权限,%wheel代表wheel组所有用户具备的权限
jerry 用户 localhost 主机名 命令程序列表 绝对路径
Cmnd_Alias 固定格式 PK… (自定义名字) /bin/rpm……具备权限
[lisi@localhost ~]$ ifconfig
ens33: flags=4163 mtu 1500
…………省略部分内容
[lisi@localhost root]$ sudo ifconfig ens33 10.10.10.10 //因为并没有为lisi添加权限,所以提权失败,无法更改ip
[sudo] lisi 的密码:
lisi 不在 sudoers 文件中。此事将被报告。
[root@localhost ~]# visudo //进入添加权限
进入后为lisi添加权限:
[lisi@localhost ~]$ sudo -l //查看lisi可执行权限
[sudo] lisi 的密码:
匹配 %2$s 上 %1$s 的默认条目:
!visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY
HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG
LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
用户 lisi 可以在 localhost 上运行以下命令:
(root) /sbin/ifconfig
[lisi@localhost ~]$ sudo ifconfig ens33 10.10.10.10 //提权修改ip地址
[lisi@localhost ~]$ ifconfig
ens33: flags=4163 mtu 1500
inet 10.10.10.10 netmask 255.0.0.0 broadcast 10.255.255.255
………省略部分内容
[lisi@localhost ~]$ yum install httpd -y //仅开启了ifconfig权限,无法操作磁盘管理
已加载插件:fastestmirror, langpacks
您需要 root 权限执行此命令。
[lisi@localhost ~]$ fdisk -l
fdisk: 打不开 /dev/sda: 权限不够
fdisk: 打不开 /dev/sdb: 权限不够
fdisk: 打不开 /dev/sr0: 权限不够
查看sudo操作记录
需启用Defaults logfile配置
默认日志文件:/var/log/sudo
[lisi@localhost ~]$ visudo
…………
Defaults logfile=”/var/log/sudo“
查看:tail /var/log/sudo
[lisi@localhost ~]$ visudo
…………
Defaults logfile="/var/log/sudo" //启用Defaults logfile配置
lisi loaclhost=/sbin/ifconfig
[lisi@localhost ~]$ sudo ifconfig ens33 30.30.30.30 //提权更改ip地址
[root@localhost ~]# tail /var/log/sudo //查看日志记录
Nov 14 19:19:10 : lisi : 3 incorrect password attempts ; TTY=pts/2 ;
PWD=/home/lisi ; USER=root ; COMMAND=/sbin/ifconfig ens33 30.30.30.30
Nov 14 19:19:47 : lisi : TTY=pts/2 ; PWD=/home/lisi ; USER=root ;
COMMAND=/sbin/ifconfig ens33 30.30.30.30
通过GRUB引导参数进入单用户模式,以便对一些系统问题进行修复。这种方式不需要密码即可进入系统且拥有root权限,只应在紧急状况下授权使用。
从安全角度来讲,任何人都可以修改引导参数,是一个极大的威胁。为了加强对引导过程的安全控制,可以为GRUB菜单设置一个密码,只有输入正确密码才被允许修改引导参数
修改grub2-mkpasswd-pbkdf2生成密钥
[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak //先做备份,养成良好习惯
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak //先做备份,养成良好习惯
[root@localhost ~]# grub2-mkpasswd-pbkdf2
输入口令:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.AAE465CD073BAE7E3874448869114FA51381F1E626BE1B47A486D2933AE78425257688006DB750E959D43D490ADDD3DD75A7189A205AC2CCA85342E50A9D080A.966FAB9C2B29678665BA2E7723A3CCDE11A00D75B6E47B9A6BB99D3487DEF8D14A3ECB2FFA8512278902E9D2C85AD3C5B930E8E78770011D1D44C50A882BCB02 //password is 后面内后为生成的密钥
生成新的grub.cfg配置文件
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //重新建立,生成新的配置文件
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-314397859c974c4aafdd0762e61b9f15
Found initrd image: /boot/initramfs-0-rescue-314397859c974c4aafdd0762e61b9f15.img
done
[root@localhost ~]# init 6 //重启
配置完成后,重新开机进入GRUB菜单时,按e键将无法直接修改引导参数,需要输入用户及密码才能编辑指定的引导参数
禁止普通用户登陆
实验:
nmap [扫描类型] [选项] <扫描目标…>
实验:
检查是否有nmap包,安装nmap
1、针对本机进行扫描,检查开放了哪些常用的TCP端口、UDP端口
[root@localhost ~]# nmap -sT 127.0.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-15 11:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00035s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http //安装httpd 打开80端口
111/tcp open rpcbind
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
[root@localhost ~]# nmap -sU 127.0.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-15 11:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000046s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
68/udp open|filtered dhcpc
111/udp open rpcbind
5353/udp open|filtered zeroconf
Nmap done: 1 IP address (1 host up) scanned in 51.51 seconds
[root@localhost ~]# netstat -ntap |grep 80 //过滤查看80端口
tcp 0 0 192.168.17.129:38952 192.168.10.180:445 ESTABLISHED -
tcp6 0 0 :::80 :::* LISTEN 52184/httpd
在扫描结果中,STATE列若为open则表示端口为开启状态,为filtered表示可能被防火墙过滤,为closed表示端口为关闭状态
2、快速检测192.168.17.0/24网段中有哪些存活主机(能ping通)
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.17.129 netmask 255.255.255.0 broadcast 192.168.17.255
…………省略部分内容
[root@localhost ~]# nmap -sP 192.168.17.0/24
[root@localhost ~]# nmap -sP 192.168.17.0/24
Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-15 12:07 CST
Nmap scan report for 192.168.17.1
Host is up (0.0010s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.17.2
Host is up (0.000048s latency).
MAC Address: 00:50:56:FF:5A:DB (VMware)
Nmap scan report for 192.168.17.128 //另一台IP
Host is up (0.000098s latency).
MAC Address: 00:0C:29:70:C7:ED (VMware)
Nmap scan report for 192.168.17.254
Host is up (0.000066s latency).
MAC Address: 00:50:56:F2:13:2A (VMware)
Nmap scan report for 192.168.17.129 //本机IP
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 1.88 seconds
[root@localhost ~]# ping 192.168.17.128 //ping 192.168.17.128
PING 192.168.17.128 (192.168.17.128) 56(84) bytes of data.
64 bytes from 192.168.17.128: icmp_seq=1 ttl=64 time=0.199 ms
64 bytes from 192.168.17.128: icmp_seq=2 ttl=64 time=0.193 ms
64 bytes from 192.168.17.128: icmp_seq=3 ttl=64 time=0.213 ms
^C
--- 192.168.17.128 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.193/0.201/0.213/0.018 ms
探测工具,查看对方是否在线,开了哪些tcp udp端口