Linux-安全加固
系列文章目录文章目录系列文章目录前言安全加固——基础加固方法文件系统配置软件更新配置软件更新配置安全启动配置加固内核参数警告信息设置前言安全加固的目的:操作系统之上的各种应用,要想获得信息的完整性、机密性、可用性和可控性,必须依赖于操作系统通用CentOs Linux 7操作系统缺省配置通常不满足系统安全性的要求操作系统的薄弱环节有安装和运行了冗余的服务、弱密码及匿名访问、开放了不必要的对外通讯端
系列文章目录
前言
安全加固的目的:
操作系统之上的各种应用,要想获得信息的完整性、机密性、可用性和可控性,必须依赖于操作系统
通用CentOs Linux 7操作系统缺省配置通常不满足系统安全性的要求
操作系统的薄弱环节有安装和运行了冗余的服务、弱密码及匿名访问、开放了不必要的对外通讯端口、易受攻击的TCP/IP参数配置等,都容易成为日常运行和管理过程中的弱点
安全加固就是对系统进行优化配置,杜绝系统配置不当出现的弱点,提高操作系统和服务器的防御能力,防止黑客攻击和病毒入侵,提升系统和网络安全
安全加固——基础加固方法
禁用不必要的的文件系统
-
一般的不必要文件系统描述
CramFS:专门针对闪存设计的只读压缩的文件系统
freevxfs:是高性能日志文件系统Veritas的免费版本
jffs2:管理在MTD设备上实现的日志型文件系统hfs:允许你加载Mac OS文件系统的混合文件系统
hfsplus:用于取代hfs的混合文件系统,用于加载Mac OS文件系统
squashfs: 与cramfs类似是—种压缩只读的文件系统
udf:用于实现ISO/IEC13346和ECMA-167规范的通用磁盘格式
FAT:主要用于较旧的windows系统和便携式USB驱动器或闪存模块
配置方法:
创建一个/etc/modprobe.d/CIS.conf文件,(之前说过/etc/文件夹放的基本都是一些程序的配置文件)
再用对应命令去禁止载入该模块
modprobe -n -v <文件系统名>
检测方法:
lsmod | grep cramfs -
设置nodev,nosuid,noexec选项控制挂载:
原理:
配置文件系统的挂载选项可以方式系统被挂载特殊设备,例如可执行的二进制木马文件等。
命令描述:
nodev挂载选项指定文件目录不能包含特殊设备; nosuid挂载选项指
文件目录不能包含setuid权限; noexec挂载选项指定文件目录不能包含可执行的二进制文件。
加固位置:
一般在/tmp,/var/tmp,/dev/shm目录上以及可移动介质分区(像U盘啥的)上设置nodev,nosuid,noexec选项。 -
配置方法
先编辑/etc/fstable文件(系统启动时会自动按照其规则挂载文件)设置成nodev,noexec,nosuid挂载选项。
重新挂载目录
mount -o remount,noexec,nosuid,nodev <目录名称>
检测是否成功重新挂载
mount | grep <目录名称> -
软件更新配置
-
确保配置了包管理器存储库
原理
若系统的软件包存储库配置错误,则可能无法识别重要的修补程序,或者恶意储存库可能会引入受损软件。
检测方式:
yum repolist/apt list
- 确保配置了GPG密钥和全局激活gpg
原理:
确保从有效源获取更新以及在安装之前始终检查RPM的包签名,确保从有效源获取更新以防止可能在系统上安装恶意软件而导致的欺骗。
描述:
gpgcheck选项主要位于/etc/yum.conf和个人的/etc/yum/repo.d/*中,用于确认安装RPM包之气那是否检查了他的签名。
配置方法(全局激活gpg检查):
都设置gpgcheck=1检测方式(是否正确配置GPG密钥):
命令: rpm -q gpg-pubkey --qf ‘%{name}-%{version}-%{release}–>%{summary}\n’
检查yum中是不是都配置了gpgcheck=1
grep ^gpgcheck /etc/yum.conf
grep ^gpgcheck /etc/yum.repos.d/*
- 确保安装了最新的补丁
更新可用安装包
yum update
检测是否有补丁或者软件要更新
yum check-update -
安全启动配置
- 配置bootloader配置的权限
原理:
将其设置成root权限,防止未经授权的其他用户输入引导参数或更改引导分区。读取引导参数的非root用户可能在系统引导时识别安全性的弱点并利用。
配置:
grub文件:包含启动设置和解锁启动选项的密码信息。位置:/boot/grub2/grub2.conf,并链接到/etc/grub2.conf
先更改文件属主和属组,再更改权限
chown root:root /boot/grub2/grub.cfg
chmod og-rwx /boot/grub2/grub.cfg
chown root:root /boot/grub2/user.cfg
chmod og-rwx /boot/grub2/user.cfg
检测方式
stat /boot/grub2/grub.ctf(文件路径)
stat /boot/grub2/user.ctf - 确保单用户模式需要身份认证
单用户模式:可以不用密码获得root权限。在系统引导期间检测到问题或通过从引导装载程序手动选择时,会使用单用户模式进行恢复。
配置
编辑/usr/lib/systemd/system/rescue.service和/usr/lib/system
/system/emergency.service文件并且设置ExecStart为/sbin/sulogin或
者/usr/sbin/sulogin
检测方式:检查/sbin/sulogin在不在对应文件里面。
grep /sbin/sulogin /usr/lib/systemd/system/rescue.service
加固内核参数
核心转储:
操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。
描述:
因此可能会出现信息泄露的情况,会导致核心文件中机密泄露(密码等信息)。系统为核心提供了软限制功能,但是用户可以重写这一功能。
配置方法:
1.将以下行添加到/etc/security/limits.conf文件或/etc/security/limits .d /文件中:
* hard core 0,禁止所有用户运行core文件。
2.在/etc/sysctl.conf文件中设置以下参数阻止setuid程序转储核心。
fs.suid dumpable = 0
命令:sysctl -w fs.suid_dumpable=0
检测方法:
验证下匹配情况
grep “hard core” /etc/security/limits. conf /etc/security/limits. d/
sysctl fs.suid_ dumpable
grep “fs.suid dumpable” /etc/sysctl.conf /etc/sysctl.d/*
除此之外:在这个文件中还可以限制最大进程数和内存数量。
限制进程数为“nproc 50“,且限制内存使用为5M“rss 5000”。
也就是在文件中写入nproc 50 或 rss 5000
- 确保已启用XD/NX支持
前言:啥是缓冲区溢出漏洞(这里粗略的讲一下):程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。那么也就是说要是该程序是root权限的,我们进行此攻击之后的权限也是root权限
XD和NX:X86家族中最近的处理器支持防止在每个内存页上执行代码。一般来
说,在AMD处理器上,这种能力被称为无执行(NX),而在英特尔处理器上,它被称为执行禁用(XD)。此功能可以帮助防止缓冲区溢出漏洞的利用,并应在可能的情况下激活。
原理:这俩支持能防止缓冲区溢出攻击,增加系统的安全性。
配置方法:
32位系统上安装具有PAE支持的内核,64为系统不用装,要是有必要就用引导加载程序配置加载新内核并重新引导系统。
检测方法:
dmesg | grep NX
- 确保已启用气质空间布局随机化(ASLR)
原理:
随机放置虚拟内存区域将使得难以编写内存界面漏洞。
配置方法:
1.在/etc/sysctl.conf文件中设置以下参数:
kernel.randomize va_ space = 2
2.运行以下命令以设置活动内核参数:
sysctl -w kernel.randomize_va_space=2
- 确保禁用prelink(预链接)
原理:
他可能会干扰AIDE(安卓/java开发环境)操作,他会更改二进制文件。如果恶意用户能破坏公共库,则预链接还会增加系统漏洞。
prelink:它修改ELF共享库和ELF动态链接二进制文件,使动态链接器在启动时执行重定位所需时间减少。
配置方法:
运行以下命令将二进制文件恢复到正常状态并卸载prelink:
prelink -ua
yum remove prelink
检测方法:
运行以下令并验证未按装prelink:
rpm -q prelink
package prelink is not installed
警告信息设置
- 正确配置登录警告信息
利用原理
警告消息会通知尝试登录系统的用户,有关系统的合法状态,并且必须包含拥有系统的组织的名称以及所有适用的监控策略。这样的话就会导致系统的版本等敏感信息泄露,攻击者可以利用这个找到对应的漏洞信息(CVE之类的)进行利用。
原因:
/etc/motd文件的内容在登录后显示给用户, 并作为当天的消息用于经过身份验证的用户。
/etc/issue文件的内容会在登录本地终端之前向用户显示。
/etc/issue.net文件的内容在登录之前将向用户显示,以便从已配置的服务进行远程连接。
配置方法:
更改对应文件的权限。举例:
chown root:root /etc/issue
chmod 644 /etc/issue
检测方法(查看权限):
stat /etc/issue
更多推荐
所有评论(0)