全网最全安全加固指南之linux系统加固

本文涉及的产品
运维安全中心(堡垒机),企业双擎版 50资产 7天
日志服务 SLS,月写入数据量 50GB 1个月
运维安全中心(堡垒机),免费版 6个月
简介: 全网最全安全加固指南之linux系统加固

全网最全安全加固指南之linux系统加固

Linux系统安全加固

系统用户

账号分类:
超级管理员     uid=0,
系统默认用户    系统程序使用,从不登录
新建普通用户    uid大于500
AI 代码解读

/etc/password

/etc/shadow

liunx用户管理

#添加用户
useradd <用户名>
#删除用户
userdel [-r][-f] <用户名>

#锁定/解锁用户
passwd -l <用户名>
passwd -u <用户名>

#用户属性
usermod -L  <用户名>锁定用户 
usermod -U <用户名>解锁用户

#查看当前用户
id
AI 代码解读

解析文件权限

执行ls -l .. .. 命令查看

输出命令包括7个字段

权限与归属

  • 访问权限

读取:允许查看内容-read

写入:允许修改内容-write

可执行:允许运行和切换-excute

  • 归属关系

所有者:拥有此文件/目录的用户-user

所属者:拥有此文件/目录的组-group

其他用户:除所有者、所属组以外的用户-other

所有用户:以上三类归属称-all

文件系统安全

查看权限:
      ls -l
修改权限:
    chmod 777 test    
    
    chown 123:123 test

    chgrp root test
AI 代码解读

设置合理的初始文件权限

UMASK命令:

umask值为0022所对应的默认文件和文件夹创建的缺省权限分别为644和755
文件夹其权限规则为:777-022=755
文件其权限规则为: 777-111-022=644(因为文件默认没有执行权限)
修改UMASK值:
1、直接在命令行下umask xxx (重启后消失)
2、修改/etc/profile中设定的umask值

linux提权漏洞

由于Linux 内核的内存子系统在处理 Copy-on-Write 时出现竞争条件(漏洞),导致私有的只读内存映射被破坏、获取读写权限后低权限用户可以进一步提权。

1.检查是否有内核升级包:yum check-update |grep kernel
2.升级内核:yum update kernel
3.确认下新版本的内核或 initrd/initramfs 是否有xen-vbd和virtio_blk驱动:

#lsinitrd /boot/initramfs-2.6.32-642.6.2.el6.x86_64.img |grep -i -E 'xen-blkfront|virtio_blk' -rwxr--r-- 1 root root 23448 Nov 4 16:21 lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/drivers/block/virtio_blk.ko -rwxr--r-- 1 root root 54888 Nov 4 16:21 lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/drivers/block/xen-blkfront.ko
AI 代码解读

如果没有,则需要给initrd/initramfs安装驱动,然后执行第三步后重启。

锁定系统中多余的自建帐号

执行命令

cat /etc/passwd
cat /etc/shadow
AI 代码解读

查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户如:bin, sys,

adm,uucp,lp, nuucp,hpdb, www, daemon等可根据需要锁定登陆。

加固方法:
  使用命令passwd -l <用户名>锁定不必要的账号。

  使用命令passwd -u <用户名>解锁需要恢复的账号。

检查shadow中空口令帐号

检查方法:

awk -F ":" '($2=="!"){print $1}' /etc/shadow
AI 代码解读

加固方法:

#锁定不必要的账户
passwd -l <用户名>

#解锁需要恢复的账户
passwd -u <用户名>

#为用户设置密码
passwd <用户名>
AI 代码解读

设置系统密码策略

执行命令
cat /etc/login.defs|grep PASS  #查看密码策略设置
加固方法:
vi /etc/login.defs修改配置文件
    PASS_MAX_DAYS        90       #用户的密码最长使用天数
    PASS_MIN_DAYS        0       #两次修改密码的最小时间间隔
    PASS_MIN_LEN        7       #密码的最小长度
    PASS_WARN_AGE    9       #密码过期前多少天开始提示
AI 代码解读

禁用root之外的超级用户

检测方法:

#检查用户ID为0的用户
awk -F ":" '($3=="0"){print $1}' /etc/passwd
AI 代码解读

加固方法:

#锁定用户
passwd -l <用户名>
AI 代码解读

限制能够su为root的用户

#查看是否有auth required /lib/security/pam_wheel.so这样的配置条目
cat /etc/pam.d/su
AI 代码解读

加固方法
在头部添加:

auth required /lib/security/pam_wheel.so group=wheel
AI 代码解读

这样,只有wheel组的用户可以su到root

#将test用户加入到wheel组
usermod -G10 test
AI 代码解读

重要文件加上不可改变属性

#把重要文件加上不可改变属性
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/group
chattr +i /etc/inetd.conf
chattr +i /etc/httpd.conf
AI 代码解读

ssh安全

禁止root用户进行远程登录
检查方法:

#是否为no
cat /etc/ssh/sshd_config | grep PermitRootLogin 
AI 代码解读

加固方法

vi /etc/ssh/sshd_config 
PermitRootLogin no
AI 代码解读

更改服务端口

vi /etc/ssh/ssh_config
Port 2222                更改ssh端口
AI 代码解读

屏蔽SSH登录banner信息
检查方法:

#查看文件中是否存在banner字段,或banner字段为NONE
cat /etc/ssh/sshd_config
#查看文件内容,该处内容作为banner信息显示给登录用户
cat /etc/motd 
AI 代码解读

加固方法:

vim /etc/ssh/sshd_config
AI 代码解读

添加:

banner NONE
#vim /etc/motd
AI 代码解读

删除全部内容或更新成自己想要添加的内容

仅允许SSH协议版本2

有两个SSH协议版本,仅使用SSH协议版本2会更安全。

SSH协议版本1有安全问题,包括中间人攻击(man-in-the-middle)和注入(insertion)攻击。

编辑/etc/ssh/sshd_config文件并查找下面这样的行:

Protocol 2,1 
AI 代码解读

修改为

Protocol 2 
AI 代码解读

防止误使用Ctrl+Alt+Del重启系统

检查方法:

查看输出行是否被注释

cat /etc/inittab |grep ctrlaltdel
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
AI 代码解读

加固方法:

vim /etc/inittab
AI 代码解读

在行开否添加注释符号“#”

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

设置账户锁定登录失败锁定次数锁定时间

检查方法:

cat /etc/pam.d/system-auth|grep auth 
AI 代码解读

查看有无auth required pam_tally.so 条目的设置
加固方法:

#设置为密码连续错误6次,锁定时间300秒
vi /etc/pam.d/system-auth
auth required pam_tally.so oneer=filad deny=6 unlock_time=300 
AI 代码解读

解锁用户:faillog -u <用户名> -r

修改账户TMOUT值,设置自动注销时间

检查方法:

#查看有无TMOUT的设置
cat /etc/profile|grep TMOUT 
AI 代码解读

加固方法:

vim /etc/profile
AI 代码解读

增加

TMOUT=600 
AI 代码解读

无操作600秒后自动退出

设置BASH保留历史命令的条目

检查方法:

cat /etc/profile | grep HISTSIZE
HISTSIZE=1000
AI 代码解读

加固方法:

vim /etc/profile
AI 代码解读

修改

HISTSIZE=5
AI 代码解读

即保留最新执行的5条命令

用户注销时删除命令记录

检查方法:
查看/etc/skel/.bash_logout文件,增加如下行

rm -f $HOME/.bash_history
AI 代码解读

这样,系统中的所有用户注销时都会删除其命令记录,如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件增加相同的一行即可。

设置系统日志策略配置文件

日志的主要用途是系统审计、监测追踪和分析统计。
为了保证 Linux 系统正常运行、准确解决遇到的各种各样的系统问题,认真地读取日志文件是管理员的一项非常重要的任务。
UNIX/ Linux采用了syslog工具来实现此功能,如果配置正确的话,所有在主机上发生的事情都会被记录下来,不管是好的还是坏的。

CentOS6起/etc/syslog.conf不再有!而是/etc/rsyslog.conf代替!

检查方法:

ps -aef | grep syslog #确定syslog服务是否启用
cat /etc/rsyslog.conf #查看syslogd的配置,并确认日志文件日否存在
AI 代码解读
#系统日志 (默认)   
/var/log/messages
#cron日志 (默认)   
/var/log/cron
#安全日志 (默认)   
/var/log/secure
AI 代码解读

阻止系统响应任何从外部/内部来的ping请求

加固方法:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
AI 代码解读

其他客户端就不能ping通你的服务器了。

ckcsec
+关注
目录
打赏
0
5
0
0
12
分享
相关文章
|
1月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
74 24
Linux系统之whereis命令的基本使用
|
4月前
|
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
277 3
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
164 2
|
1天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
29 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
3月前
|
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
303 78
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
160 23
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
103 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
575 58
|
4月前
|
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
126 56
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等