文章目录
- 1、限制 NFS 访问
- 2、禁止 icmp 报文响应
- 3、更改 ssh 访问端口
- 4、添加 GRUB 菜单密码
- 5、用户系统资源限制
- 总结
大家好,我是技术界的小萌新,今天要和大家分享一些干货。在阅读之前请先点赞👍,给我一点鼓励吧!这对我来说很重要 (*^▽^*)
1、限制 NFS 访问
NFS 网络文件服务是我们实现不同服务之间文件共享的最简单的工具服务,方便了我们日常的工作,但是如果不注重细节,不限制对 NFS 的访问,它也可能成为某一节点的突破口,被人恶意修改其中的文件。
对 /etc/exports
NFS 导出文件
进行修改,限制为 只读
挂载文件系统,不允许 root 用户 写入
。
[root@ECS-PROXY ~] vim /etc/exports
/dir1/share 192.168.1.200 (ro,root_squash)
/dir2/share hostname (ro,root_squash)
/dir1/share 为你想共享的目录,后面跟需要访问它的主机 IP 或域名 (需配置解析) , ro
只读, root_squash
不允许客户端的 root 用户写入
最后输入 exportfs -ra
,重新加载 (-r) 所有导出条目 (-a) 完成配置。
2、禁止 icmp 报文响应
通常我们可以 阻止
系统 响应
来自外部或内部的 ping 请求来增加 Linux 系统的安全性,这主要基于以下几个原因:
隐藏
在线状态:通过不响应ping请求,系统不会向外界透露自己是否在线或正在运行。这可以减少潜在攻击者确定目标系统状态的机会。- 防止网络
扫描
:攻击者经常使用ping扫描来确定哪些主机在网络中是活跃的,作为进一步攻击的第一步。不响应ping可以降低系统被扫描和识别的风险。 - 减少服务信息泄露:当系统配置为不响应 ping 时,它也不会在 ICMP(Internet Control Message
Protocol)响应中泄露操作系统类型、主机名或其他可能被攻击者利用的信息。 - 避免某些类型的
DDoS
攻击:某些类型的 DDoS 攻击,如 ping flood ,通过发送大量 ICMP
echo 请求来耗尽受害者的网络带宽或处理能力。阻止这些请求可以减轻这种攻击的影响。 - 降低自动化攻击的风险:自动化攻击工具可能会使用 ping 请求来确定攻击目标。不响应这些请求可以减少被这些工具标记为潜在目标的可能性。
- 防止某些入侵检测系统的误报:在某些情况下,阻止 ping 响应可以防止网络入侵检测系统(NIDS)产生误报,因为这些系统可能会将大量ping请求视为可疑活动。
我们可以通过以下命令来忽略 icmp 报文的响应:
[root@ECS-PROXY ~] echo "net.ipv4.icmp_echo_ignore_all = 1" `** /etc/sysctl.conf
# 将 icmp 报文响应忽略配置写入系统内核配置文件
[root@ECS-PROXY ~] sysctl -p /etc/sysctl.conf
# -p 从指定的内核配置文件加载配置
3、更改 ssh 访问端口
ssh 常规访问端口为 22
,修改 ssh 端口的目的是为了减少自动化攻击的风险,许多自动化的端口扫描工具和脚本会默认扫描常见的 ssh 端口。更改 默认端口
可以让系统避开这些自动化扫描,增加自动化扫描的成本,它们扫描到正确端口的时间和成本会增加。
更改默认设置是提高安全性的一种 常见
做法,它可以使系统配置更加符合安全最佳实践。更改 ssh 端口后,可以结合防火墙规则,仅允许特定的 IP 地址或网络访问新的 ssh 端口,从而进一步 限制
潜在攻击者的访问。修改方式很简单,如下:
[root@ECS-PROXY ~] vim /etc/ssh/sshd_config
# ssh 服务的配置文件
22 Port 10022
"/etc/ssh/sshd_config" 149L, 4320C
[root@ECS-PROXY ~] systemctl restart sshd
以后使用 ssh -p 10022 IP 指定端口 IP 指定端口登录即可,这对于不知道 ssh 指定端口
的人员来说等于又多了一道身份验证。
4、添加 GRUB 菜单密码
GRUB 菜单提供了引导进入系统不同版本内核或 救援模式
的选项,如果不添加 GRUB 菜单的密码,可能被他人进入救援模式 破解
root 密码,从而获得系统的最高权限,所以修改 GRUB 菜单密码的意识显得尤为关键。
我们可以借助系统的工具来设置密码;
/sbin/grub2-setpassword
修改 GRUB 菜单密码,多次运行则覆盖上一次密码
[root@ECS-PROXY ~] /sbin/grub2-setpassword
Enter password:
Confirm password:
[root@ECS-PROXY ~]
[root@ECS-PROXY ~]# vim /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B9AB83857F0E47BDAF524699336AA3EE90A61B3E045AA00B49E44870CF16D71D22309D0C633857F6DE41555A380502B05F952247DB9D91CAFF20B5B18FCABF18.9704034BC3CE3582A3EB8544BFBCC134B2A532C9E173D4C5495081F0F1E0E71700B4B76905B580CCD423BC10EB8168EDFBBD1E1C7C1A6A0E7C961D2FF24DCC2E
"/boot/grub2/user.cfg" 1L, 298C
# 如果想取消 GRUB 菜单的密码,把 /boot/grub2/user.cfg 文件删除即可
按 F2
进入 GRUB 引导菜单,选择救援模式,按 e 进入。
密码输入错误后,不能进行密码破解。
只有 密码正确
,才能修改配置,进入救援模式修改 root 密码。
5、用户系统资源限制
在 /etc/security/limits.conf/
中可以限制用户进程使用资源的上限,比如最大打开文件个数 ( 文件描述符
) 、创建最大文件大小、最大内存、使用 CPU 核心数 等资源。
limits.conf配置文件中包括两个层面限制, 软限制
和 硬限制
,软限制为打开最大文件数达到上限只 提醒
,硬限制则是 强制限制用
户使用的文件描述符,具体限制多大的值,这个要根据自己的业务需求进行配置,通过预先制定的限制,防止程序或者进程因自身问题或者被攻击而申请 占用
大量系统资源导致崩溃的问题。
比如著名的 fork 炸弹,就是通过调用大量子进程来消耗系统的各种资源,通过限制用户最大打开文件数就可以有效防护这类可能的漏洞攻击。让我们进行以下配置:
** **
* hard nofile 10000`**
[root@ECS-PROXY ~] vim /etc/security/limits.conf
# **`domain`** **`type`** **`item`** **`value`**
#
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
# End of file
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 10000
# 限制的用户 (通配符匹配所有用户) 软硬链接 限制文件描述符 10000 个 (最大 65535)
总结
本文详细介绍了一套全面的 Linux 系统安全加固措施,包括配置 NFS 以限制文件共享访问、禁用 ICMP 响应以隐藏服务器状态、更改 SSH 端口以增加攻击者识别难度、设置 GRUB 密码以防止未授权的系统启动修改,以及利用 limits.conf 对用户资源使用进行限制,共同构建起多层次的防御体系,增强了系统对攻击的防护能力。
文章到这里就结束了,希望我的分享能为你的技术之旅增添一抹亮色。如果你喜欢这篇文章,请点赞收藏支持我,给予我前行的动力!🚀