系统安全及应用
1.账号安全控制
(1)账号安全基本措施
(1)账号安全管理
禁止程序用户登录
usermod -s /sbin/nologin 用户名
锁定禁用长期不使用的用户:
passwd -l 用户名
usermod -L 用户名 ###查看锁定账号状态 passwd -S 用户名
删除无效用户
userdel -r 用户名
禁止账号和密码的修改
chattr +i /etc/passwd /etc/shadow ###查看锁定文件状态 lsattr 文件名
(2)密码安全管理
设置密码有效期
chage -M 天数 用户名 ###针对已存在的用户,天数为 99999 表示为永不过期
vim /etc/login.defs
PASS_MAX_DAYS 天数 ###针对新建的用户
强制用户下一次登录修改密码
chage -d 0 用户名
(3)历史命令安全管理
查看历史命令
history
限制历史命令数量
vim /etc/profile
输入export HISTSIZE=XX
source /etc/profile ##当前环境加载文件内容
清空历史命令
history -c #临时清空
vim /etc/profile
> ~/.bash_history
(2)限制su切换用户
(1)将信任的用户加入到wheel组中
gpasswd wheel -a 用户名
(2)修改su的PAM认证配置文件
vim /etc/pam.d/su
开启 auth required pam_wheel.so use_uid 的配置
ssh远程登录输入三次密码错误则锁定用户
vim /etc/pam.d/sshd
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
(3)PAM认证原理
PAM认证原理
一般遵循的顺序
Service(服务)→PAM(配置文件)→pam*.so
*首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
*用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
*不同的应用程序所对应的PAM模块是不同的
ls /etc/pam.d | grep su ###查看su是否支持PAM模块认证
查看su的PAM配置文件:
cat /etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段
*认证类型
*控制类型
*PAM模块及其参数
(4)使用sudo机制提升权限
sudo提权
visudo vim /etc/sudoers (要用 wq! 强制保存)
*用户/组授权
用户名 主机名=程序列表 #命令要用绝对路径表示,支持使用通配符 * 表示所有, ! 表示取反
*%组名 主机名=程序列表
用户名 主机名=NOPASSWD: 程序列表 #NOPASSWD: 表示sudo不用密码验证
*别名设置
User_Alias 大写别名=用户1, 用户2, ...
Host_Alias 大写别名=主机名1, 主机名2, ...
Cmnd_Alias 大写别名=命令路径1, 命令路径2, ...
用户别名 主机别名=命令别名
*设置sudo日志路径
Defaults logfile = "/var/log/sudo.log"
sudo -l #普通用户查看有哪些sudo权限
2.系统引导和登录控制
(1)开关机安全控制
(1)调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘;
禁止从其他设备(光盘、U盘、网络)引导系统;
将安全级别设为setup,并设置管理员密码。
(2)GRUB限制
使用grub2-mkpasswd-pbkdf2生成密钥;
修改/etc/grub.d/00_header文件中,添加密码记录;
生成新的grub.cfg配置文件。
(2) 终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
root@localhost ~l#vi /etc/securetty
#tty5
#tty6
禁止root用户从终端tty5、tty6登录
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
禁止普通用户登录
建立/etc/nologin文件
删除nologin文件或重启后即恢复正常
touch /etc/nologin #禁止普通用户登录
rm -rf /etc/nologin #取消上述登录限制
3.弱口令检测
(1)系统弱口今检测
Joth the Ripper,简称为 JR
一款密码分析工具,支持字典式的暴力破解
通过对shadow文件的口令分析,可以检测密码强度
官方双站:http://www.openwall.com/john
(2)安装JR工具
安装方法:make clean 系统类型
主程序文件为 john
检测弱口令账号
获得Linux/Unix服务器的shadow文件
执行iohn程序,将shadow文件作为参数
密码文件的暴力破解
准备好密码字典文件,默认为password.lst
执行john程序,结合--wordlist=字典文件
4.端口扫描
(1)NMAP
一款强大的网络扫描、安全检测工具
官方双站:http://nmap.org/
CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86 64.rpm
NMAP的扫描
nmap [扫描类型] [选项] <扫描目标 ...>
-p:指定扫描的端口。
-n:禁用反向 DNS 解析(以加快扫描速度)
扫描类型 | |
---|---|
-sS | TCP的SYN扫描(半开扫描),只向目标发出SYN数据包 |
**-sT ** | TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型) |
-SF | TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包 |
**-sU ** | UDP 扫描,探测目标主机提供哪些 UDP 服务,UDP 扫描的速度会比较慢 |
-SP | ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描 |
-P0 | 跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描 |
①分别查看本机开放的TCP端口、UDP端口
nmap -sT127.0.0.1
nmap -sU 127.0.0.1
②检测192.168.4.0/24网段有哪些主机提供FTP服务
nmap -p 21 192.168.4.0/24
③检测192.168.4.0/24网段有哪些存活主机
nmap -n -sP 192.168.4.0/24
netstat
netstat 选项 | grep :端口号
ss 选项 | grep :端口号
lsof -i :端口号
常用选项 | |
---|---|
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) |
-n | 以数字的形式显示相关的主机地址、端口等信息 |
-t | 查看 TCP相关的信息 |
-u | 显示 UDP协议相关的信息 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限) |
-r | 显示路由表信息 |
-l | 显示处于监听状态的网络连接及端口信息 |