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、对上线的服务器和应用程序进行安全漏洞扫描,及时修复发现的漏洞。 |

相关推荐
BullSmall2 小时前
第三方软件安全-Dependency‑Track Docker 部署
安全·docker·容器
AImatters3 小时前
国产算力底座,支撑油气储运数字化迈过关键分水岭
安全·cpu·算力·海光·油气储运
叠叠乐6 小时前
中国移动家庭云电脑window关闭所有安全脚本
安全
Jmyd01236 小时前
实训室的 3D 模型涉及肖像文物,数据安全与合规怎么做?
安全·3d·数据安全·虚拟实训
芯盾时代6 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(三)
网络·安全·网络安全
敢敢是只喵i7 小时前
一个本地 AI Agent 要操作多个门店或 SaaS 账号,应该怎样安全切换身份?
人工智能·安全·ai·系统架构·业界资讯
Acrel12347 小时前
DC800V 大规模落地,算力机房安全该如何保障
安全
其实防守也摸鱼8 小时前
权限提升与横向移动:从内网渗透到域控的完整技术图谱
运维·服务器·数据库·安全·github·copilot·渗透
深圳海导科技8 小时前
资产防盗追踪系统:物联网高价值资产安全管理|海导科技navynav
科技·物联网·安全
波多利希最高礼仪的握力器9 小时前
安全复制SCP
linux·服务器·安全