目录
前言:
Linux是企业中服务器常用到的系统,他的安全则显得尤为重要,因此维护Linux系统的安全与应用是一项重大的项目;
基本的系统安全为物理安全和登入安全,包括:禁用root登录和sudo,可插拔认证模块(PAM)等;
一、账号安全的控制:
1、系统账号清理:
(1)将非登录用户的Shell设为/sbin/nologin;
如:usermod -s /sbin/nologin
系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行。
(2)锁定长期不使用的账号:
usermod -L 用户名 锁定用户
passwd -l 用户名 锁定用户
passwd -S 用户名 显示密码信息
passwd -u 用户名 解锁用户 或 usermod -U 用户名
删除无用的账号(userdel -r):userdel -r 用户
(3)锁定账号文件passwd(用户信息)、 shadow(密码信息):
chattr +i /etc/passwd /etc/shadow #锁定用户信息文件
Isattr /etc/passwd /etc/shadow #查看用户信息状态
chattr -i /etc/passwd /etc/shadow #解锁用户信息文件
2、密码安全控制:
(1)设置密码有效期;
[root@localhost ~]# vim /etc/login.defs
适用于新建用户
[root@localhost ~]# chage -M 30 lisi
适用于已有用户
(2)要求用户下次登录时修改密码;
[root@localhost ~]# cat /etc/shadow | grep "lisi"
lisi:$6$S7dzxAc5$de/fN/Pk5vB9Fv3THqdmu53PxQhYBCUgKE33VaM8dwUP1YOtAiHhzujocvfyo75695xDrADQXL3L8cfEMLUg/0:18892:0:30:7:::
[root@localhost ~]# chage -d 0 lisi //强制用户在下次登录时更改密码;
[root@localhost ~]# cat /etc/shadow | grep "lisi"
lisi:$6$S7dzxAc5$de/fN/Pk5vB9Fv3THqdmu53PxQhYBCUgKE33VaM8dwUP1YOtAiHhzujocvfyo75695xDrADQXL3L8cfEMLUg/0:0:0:30:7:::
3、命令历史限制:
(1)减少记录的命令条数;
(2)注销时自动清空命令历史;
(3)终端自动注销(闲置600秒后自动注销);
1.减少记录命令的条数:
[root@localhost ~]# vim /etc/profile 进入配置文件修改限制命令条数,适合新用户,对以存在的用户不会修改
HISTSIZE=200 修改限制命令为200条,系统默认是1000条profile
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件生效
2. 注销时自动清空命令:
[root@localhost ~]# vim ~/.bashrc
echo "" > ~/.bash_history
3.闲置600秒后自动注销:
[root@localhost ~]# vim ~/.bash_ profile
......
export TMOUT=600
[root@localhost ~]# source .bash_profile //刷新文件
[root@localhost ~]# echo $TMOUT //查看自动注销时间
600
[root@localhost ~]# cat bash_ history
4、用户切换与提高权限:
(1)su命令--切换用户;
格式:su - 目标用户 (注意:- 表示切换到目标用户的家目录)
注意:
a):root用户切换到任意用户,不用验证密码;
b):普通用户切换到其他用户需要验证目标用户的密码;
查看当前用户是谁:
[root@localhost ~]# whoami
root
(2)限制用户使用 su 命令:
a):将允许使用的 su 命令的用户加入wheel组;
[root@localhost ~]# vim /etc/pam.d/su
把第六行注释去掉,保存退出
# gpasswd -a lisi wheel
将lisi用户加入到wheel组中
b):启用pam_wheel认证模块;
c):查看su操作记录:
安全日志文件:cat /var/log/secure
(3)sudo命令--提升执行权限:
sudo命令的用途及用法: 用途:以其他用户身份(如root)执行授权命令 用法:sudo 授权命令
visudo 或者 vim /etc/sudoers //配置sudo授权
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
Host_Alias MYHOST= localhost 主机名
User_Alias MYUSER = zhangsan,lisi 需要授权的用户
Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd 授权
MYUSER MYHOST = NOPASSWD : MYCMD 授权格式
5、Linux中pam安全认证:
(1)su命令的安全隐患:
●默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
●为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换;
(2)PAM可插拔式认证模块:
●是一种高效而且灵活便利的用户级别的认证方式;
●也是当前Linux服务器普遍使用的认证方式;
(3)PAM认证原理:
●PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,
●PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认 模块(位于/lib64/security/下)进行安全认证。
●用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
●如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
ls /etc/pam.d/ | grep su
●PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。
查看su的pam配置文件:
[root@localhost ~]# cat /etc/pam.d/su
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth
每一行都是一个独立的认证过程;
每一行可以区分为三个字段:认证类型,控制类型,PAM模块及其参数
6、开关机安全控制:
(1)调整BIOS引导设置原则:
-
将第一引导设备设为当前系统所在硬盘;
-
禁止从其他设备(光盘、 U盘、网络)引导系统;
-
将安全级别设为setup,并设置管理员密码。
禁用重启热键:Ctrl+Alt+Delete 避免因用户误操作重启
(2)GRUB菜单设置:
-
未经授权禁止修改启动参数
-
未经授权禁止进入指定系统
(3)GRUB限制的实现:
直接设置grub2—setpasswd 设置grub密码;
(4)禁止普通用户登入:
-
建立/etc/nologin文件
-
[root@localhost ~]# touch /etc/nologin
-
删除nologin文件或者重启后即恢复正常;
-
rm -rf /etc/nologin
8、弱口令检测、端口扫描:
(1)弱口令检测—Joth the Ripper;
-
一款密码分析工具,支持字典式的暴力破解;
-
通过对shadow文件的口令分析,可以检测密码强度;
9、网络扫描—NMAP:
-
一款强大的网络扫描、安全 检测工具;
SY:建立链接
ACK:确认
FIN:结束断开
PSH:传送 0 数据缓存 上层应用协议
RST:重置
URG :紧急
常用格式:
nmap [扫描类型] [选项] <扫描目标>
netstat natp #查看正在运行的使用TCP协议的网络状态信息
netstat -natp | grep httpd #实际操作(httpd换成80也可以)
netstat -naup #查看正在运行的使用UDP协议的网络状态信息
[root@localhost run]#rpm -qa|grep nmap 查看nmap
[root@localhost run]#yum install -y nmap 安装nmap
查看本机开放的TCP端口、UDP端口:
[root@localhost ~]# nmap -sT 127.0.0.1
检测192.168.59.0/24网段有哪些存活主机
[root@localhost ~]# nmap -n -sP 192.168.59.0/24
总结:
1、账号基本安全措施:
系统账号清理,密码安全控制,命令历史清理,自动注销;
2、用户切换与提权:
su,sudo
3、开关机安全控制:
bios引导设置,禁止ctrl+alt+del快捷键,grub菜单设置密码;