目录
一,账号安全基本措施
1,系统账号清理
1,将非登录用户和shell设为/sbin/nologin
[root@localhost ~]# usermod -s /sbin/nologin user1
[root@localhost ~]# cat /etc/passwd|tail -1
user1:x:1009:1010::/home/user1:/sbin/nologin
2,将长期不使用的账号锁定
锁定账号:usermod -L 用户名 或 passwd -l 用户名
查看账号:passwd -S 用户名
3,删除无用的账号
userdel -r 用户名 将用户的宿主目录一起删除
4,锁定账号文件 passwd,shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow 锁定文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow 查看状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow 解锁文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow 查看状态
---------------- /etc/passwd
---------------- /etc/shadow
锁定账号文件后不可创建不可删除用户
2,密码控制
设置密码有效期
1,修改配置文件更改密码有效期,适用于新建用户
vim /etc/login.defs
PASS_MAX_DAYS 30 设置密码有效期30天
2,命令更改密码有效期,适用于已有用户
chage -M 30 用户名 设置用户密码有效期30天
3,强制在下次登录时更改密码
chege -d 0 用户名
## 3,命令历史限制
命令历史:history
history -c 临时清除命令历史
修改命令历史条数,命令历史条数默认是1000条。
vim /etc/profile
HISTSIZE=1000 修改数字可以修改命令历史条数
source /etc/profile 重启或用source命令可让修改生效
命令历史存储在~/.bash_history 可以清空命令历史
vim ~/.bashrc
echo " " > ~/.bash_history 保存退出
source ~/.bashrc
exit 退出再重连命令历史就清空了
终端自动注销
vim ~/.bash_profile 进入编辑
export TMOUT=600 设置闲置600秒后注销 保存退出
source ~/.bash_profile 生效
二,登录控制
1,切换用户su命令
用途:切换用户
格式:su - 目标用户
切换用户时带—时:当前目录改变,所切换用户的家目录。当前shell环境改变,改变切换用户的shell环境。
切换用户时不带—时:保留前用户所有的shell环境和所在目录
密码验证
root切换任意用户,不用密码验证
普通用户切换其他用户,验证目标用户的密码
whoami 命令可以确定当前用户是哪个用户
2,限制使用su命令的用户
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
[root@localhost ~]# gpasswd -a user1 wheel
正在将用户“user1”加入到“wheel”组中
root@localhost ~]# vim /etc/pam.d/su
1 #%PAM-1.0
2 auth sufficient pam_rootok.so
3 # Uncomment the following line to implicitly trust users in the "wheel" group.
4 #auth sufficient pam_wheel.so trust use_uid
5 # Uncomment the following line to require a user to be in the "wheel" group.
6 auth required pam_wheel.so use_uid
7 auth substack system-auth
8 auth include postlogin
开启第二,六行,只有wheel组里的用户和root才能使用su命令
[zhangsan@localhost root]$ su root 用户zhangsan没有权限使用su命令
密码:
1su: 拒绝权限
[zhangsan@localhost root]$ su user1
密码:
su: 拒绝权限
[root@localhost ~]# su user1 wheel组里的的user1有权限使用su命令
[user1@localhost root]$ su root
密码:
[root@localhost ~]#
[root@localhost ~]# su user1 root可以
第二,六行注释:所有用户都可以使用su命令,都需要密码验证
第二开启第六注释(默认):所有用户都可以用su命令,root不需要密码
第二注释第六开启:只有wheel组的用户才可以使用su命令,root用户没有权限使用
3,Linux中的PAM认证
PAM是一种平台也是一种认证,即面向用户也面向开发者
配置文件位于/etc/pam.d
查看su是否支持PAM模块认证 ls /etc/pam.d|grep su
一般遵循的顺序
service(服务)----PAM(配置文件)----pam_*so
首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下)最后调用认证文件(位于/lib64/security下)进行安全认证。
用户访问服务器时,服务器的某一个程序把用户的请求发送到PAM模块进行认证。
不同的程序对应不同的PAM模块
PAM安全认证的流程
控制类型也称作Control Flags 用于PAM验证类型的返回结果
1,required验证失败时仍然继续,但返回fail
2,requisted验证失败则立即结束整个验证过程返回fail
3,sufficient验证成功则立即返回不在继续,否则忽略结果并继续
4,opitional不用于验证,只显示信息(通常用于session类型)
4,使用sudo机制提升权限
配置sudo授权
使用visudo或者vi /etc/sudoers
记录格式:用户 主机名列表=命令程序列表
[zhangsan@localhost root]$ ifconfig ens33:1 192.168.18.111/24 配置虚拟网卡
SIOCSIFADDR: 不允许的操作
SIOCSIFFLAGS: 不允许的操作
SIOCSIFNETMASK: 不允许的操作
您在 /var/spool/mail/root 中有新邮件
[zhangsan@localhost root]$ 权限不允许操作
[root@localhost ~]# visudo 配置sudo授权
zhangsan localhost=/sbin/ifconfig 配置用户zhangsan可以使用ifconfig命令
[zhangsan@localhost root]$ sudo ifconfig ens33:1 192.168.18.111/24 配置虚拟网卡
[sudo] zhangsan 的密码:
[zhangsan@localhost root]$ 配置成功无报错信息
用户别名设置vim /etc/sudoers
保存退出
查看sudo操作日志
需要启用defaults logfile配置,默认日志文件:/var/log/sudo
vim /etc/sudoers
保存退出已经启用
cat /var/log/sudo 可以看用户的sudo操作记录
查看当前用户获得哪些sudo授权sudo -l
三,开关机安全控制
1,调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘,U盘,网络)引导系统
将安全级别设为setup,并设置管理员密码
2,GRUB限制
使用grub2-mkpasswd-pbkdf2生成秘钥
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
方法一:直接添加密码
[root@localhost ~]# grub2-setpassword Enter password: Confirm password: [root@localhost ~]#
密码设置完成
方法二:
3,弱口令检测
拖入密码字典并解压
准备待破解的密码文件
切换到src子目录
安装软件编译工具
进行编译安装
执行破解查看破解出的账号列表
四,网络端口扫描
控制位:SYN: 建立链接 ACK:确认 FIN:结束断开
nmap命令常用的选项和描类型
-p:指定扫描的端口。
-n:禁用反向DNS解析(以加快扫描速度)
-sS: TCP的SYN扫描 (半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即 断开连接;否则认为目标端口并未开放。
-sT: TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监 听服务,否则认为目标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对sYN数据包进行简单 过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU: UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sP: ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping通而放弃扫描
rpm -qa|grep nmap 查看
nmap yum install -y nmap 安装nmap
例:分别查看本机开放的TCP端口、UDP端口
检测192.168.18.0/24网段有哪些存活主机