linux系统安全加固

目录

1、账户安全基本措施

1)系统账户清理

2)密码安全控制

3)命令历史限制

2、用户切换及提权

[1)使用 su命令切换用户](#1)使用 su命令切换用户)

2)使用sudo机制提升权限

3、系统引导和安全登录控制

1)开机安全控制

2)终端登录安全控制

4、补充:linux系统安全加固方案

1、账户安全基本措施

1)系统账户清理

a、将非登录用户的shell设置为/sbin/nologin (/sbin/nologin:禁止终端登录)

复制代码
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd | wc -l      #统计不能登录系统的用户数量
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd | awk -F: '{print $1}' > nologin.txt  # 将不能登录系统的用户输出到nologin.txt文件中

b、锁定长期不适用的账号(例如一些用户长期不使用,但是不确认是否删除)

复制代码
[root@localhost ~]# useradd ami                       #创建用户并且设置密码
[root@localhost ~]# echo "123123" | passwd --stdin ami 
[root@localhost ~]# usermod -L ami                    #锁定用户,锁定后将不能登录
[root@localhost ~]# passwd -S ami                     #查看用户密码状态
[root@localhost ~]# usermod -U ami                    #解锁
[root@localhost ~]# passwd -S ami

c、锁定账号文件/etc/passwd /etc/shadow

假如:服务器账户已经固定,不在进行更改,可以锁定。

复制代码
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow  				#锁定
[root@localhost ~]# lsattr /etc/passwd /etc/shadow     				#查看文件状态
[root@localhost ~]# useradd xiaoming							    #创建用户测试
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow  				#解锁
[root@localhost ~]# useradd xiaoming								#再次创建用户测试
[root@localhost ~]# echo "123123" | passwd --xiaoming

2)密码安全控制

a、设置密码的有效期

复制代码
[root@localhost ~]# sed -i 's/PASS_MAX_DAYS 99999/PASS_MAX_DAYS 30/g' /etc/login.defs

适用于已有用户

复制代码
[root@localhost ~]# chage -M 30 zhangsan

b、强制在下次登录时更改密码

复制代码
[root@localhost ~]# chage -d 0 ami

3)命令历史限制

a、减少记录的命令条数

复制代码
[root@localhost ~]# sed -i '/HISTSIZE=1000/cHISTSIZE=5' /etc/profile
[root@localhost ~]# sed -n '/HISTSIZE=5/P' /etc/profile
[root@localhost ~]# source /etc/profile  				#使其生效
[root@localhost ~]# history  			 				#查看历史记录

b、终端自动注销

在bash终端环境中可以设置一个限制超时时间,当超过指定时间没有任何操作自动注销终端。

复制代码
[root@localhost ~]# echo "export TMOUT=30" >> ~/.bash_profile		#终端30秒不做任何操作将自动注销
[root@localhost ~]# source ~/.bash_profile   						#使其生效

2、用户切换及提权

1)使用 su命令切换用户

a、用途及用法

复制代码
格式:su - 目标用户						# 带 - 选项表示将使用目标用户的登录 Shell 环境

b、限制使用su命令的用户

默认都可以使用su命令,姿势允许少量用户使用。

启用pam_wheel认证模块:

复制代码
[root@localhost ~]# vim /etc/pam.d/su
#%PAM-1.0
auth        sufficient  pam_rootok.so          				# 默认就有
auth        required    pam_wheel.so use_uid   				# 将前面 # 去掉
[root@localhost ~]# grep wheel /etc/group
[root@localhost ~]# su - ami
[zhangsan@localhost ~]$ su -
[zhangsan@localhost ~]$ exit

c、查看su操作记录

安全日志文件:/var/log/secure

复制代码
[root@localhost ~]# tail /var/log/secure

2)使用sudo机制提升权限

sudo :普通用户拥有一部分管理权限,且不需要知道root密码。

a、sudo命令的用途及用法

复制代码
用途:已其他用户身份(如root)执行授权的命令。
格式:sudo 执行的授权命令

b、配置sudo授权/etc/sudoers

3、系统引导和安全登录控制

1)开机安全控制

2)终端登录安全控制

a、限制root只在安全终端登录

复制代码
[root@localhost ~]# sed -i '/tty5/c#tty5' /etc/securetty
[root@localhost ~]# sed -n '/#/p' /etc/securetty
#tty5

b、禁止普通用户登录 (在服务器维护期间临时使用)

创建/etc/nologin文件,login程序会检查该文件是否存在,如果存在,则会拒绝普通用户登录系统。(root用户不受限制)

复制代码
[root@localhost ~]# touch /etc/nologin

使用ami用户在终端验证:

删除/etc/nologin文件或者重启即可恢复正常

复制代码
[root@localhost ~]# rm /etc/nologin

再次使用ami用户在终端验证:

4、补充:linux系统安全加固方案

|-----------------------------------------|
| 1、最小化进程启动权限,尽可能使用非root账号启动过程。 |
| 2、停用和清理无关无用的服务器和系统服务。 |
| 3、仅对必要端口开放互联网访问权限,其他端口仅允许可信任的网络进行访问。 |
| 4、服务器、管理后台等账号要设置复杂的密码,并定期跟换。 |
| 5、禁止互联网连接服务器 ,管理后台,限制可信任IP访问或通过跳板机安全访问。 |
| 6、对系统敏感文件或目录的变化进行事件的监控。 |
| 7、对上线的服务器和应用程序进行安全漏洞扫描,及时修复发现的漏洞。 |

相关推荐
athink_cn3 小时前
HTTP/2新型漏洞“MadeYouReset“曝光:可发动大规模DoS攻击
网络·网络协议·安全·http·网络安全
zzc9214 小时前
TLSv1.2协议与TCP/UDP协议传输数据内容差异
网络·测试工具·安全·wireshark·ssl·密钥·tlsv1.2
huluang5 小时前
医院网络安全重保行动方案
网络·安全
九州ip动态6 小时前
如何安全使用改IP软件更改异地IP地址?
网络·tcp/ip·安全
杭州泽沃电子科技有限公司6 小时前
告别翻山越岭!智能监拍远程守护输电线路安全
运维·人工智能·科技·安全
wha the fuck4047 小时前
攻防世界—unseping(反序列化)
安全·序列化和反序列化
David WangYang11 小时前
基于 IOT 的安全系统,带有使用 ESP8266 的语音消息
物联网·安全·语音识别
合作小小程序员小小店12 小时前
SDN安全开发环境中常见的框架,工具,第三方库,mininet常见指令介绍
python·安全·生成对抗网络·网络安全·网络攻击模型
数据智能老司机12 小时前
实现逆向工程——汇编指令演练
安全·逆向·汇编语言
网络研究院15 小时前
新的“MadeYouReset”方法利用 HTTP/2 进行隐秘的 DoS 攻击
网络·网络协议·安全·http·攻击·漏洞