系统安全是运维工作的重中之重。通过系统加固,可以有效降低安全风险。本文将介绍 Linux 系统安全加固的核心步骤,帮助你提升系统的安全性,防止潜在的攻击威胁。
一、基础安全配置
1. 防火墙配置
防火墙是保护系统免受网络攻击的第一道防线。常用的防火墙工具包括 iptables
和 firewalld
。下面是它们的基本配置示例:
1)iptables
配置:
# 允许本地回环接口流量
iptables -A INPUT -i lo -j ACCEPT
解释: 允许来自回环接口(即本地计算机自身)的所有流量。回环接口通常用于本地通信,不会受到网络攻击的威胁。
# 允许已建立和相关的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
解释: 允许已建立的连接和与之相关的流量,这有助于保持现有连接的稳定性,避免中断合法的会话。
# 允许 SSH 流量
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
解释: 允许通过 TCP 协议访问端口 22(SSH 的默认端口),确保远程管理可以进行。
# 允许 HTTP 流量
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
解释: 允许通过 TCP 协议访问端口 80(HTTP 的默认端口),使得 Web 服务可以正常工作。
# 拒绝所有其他流量
iptables -A INPUT -j DROP
解释: 拒绝所有未明确允许的流量,作为默认的拒绝策略,以防止未授权访问。
# 保存规则
service iptables save
解释: 保存当前 iptables
配置,以便在系统重启后仍能生效。
2)firewalld
配置:
# 启用防火墙
firewall-cmd --state
解释: 检查 firewalld
的当前状态,确保其已启用。
firewall-cmd --zone=public --add-port=22/tcp --permanent
解释: 在 public
区域中永久允许 TCP 端口 22 的流量,以支持 SSH 访问。
firewall-cmd --zone=public --add-port=80/tcp --permanent
解释: 在 public
区域中永久允许 TCP 端口 80 的流量,以支持 HTTP 服务。
# 重新加载配置
firewall-cmd --reload
解释: 重新加载 firewalld
配置,使之前添加的规则生效。
2. 用户权限管理与审计
管理用户权限是确保系统安全的重要措施。使用 chmod
和 chown
命令来设置文件和目录权限。例如:
# 设置文件为只读
chmod 444 /path/to/file
解释: 将指定文件的权限设置为只读(读权限给所有用户),防止文件被修改。
# 修改文件拥有者
chown user:user /path/to/file
解释: 将指定文件的所有权更改为 user
用户及其用户组,以便只允许特定用户修改该文件。
auditd
配置:
apt-get install auditd
解释: 安装 auditd
工具,它用于监控和记录系统活动。
# 启动服务
systemctl start auditd
解释: 启动
auditd
服务,以便开始记录审计日志。
# 配置审计规则
echo "-w /etc/passwd -p wa -k passwd_changes" /etc/audit/rules.d/audit.rules
解释: 添加审计规则以监控 /etc/passwd
文件的写入和属性更改(wa
),并用 passwd_changes
作为关键字标记此规则。
# 重新加载规则
auditctl -R /etc/audit/rules.d/audit.rules
解释: 重新加载审计规则,使新的规则立即生效。
3. 系统补丁与更新管理
定期更新系统补丁是防止漏洞被利用的重要措施。配置自动更新可以减少手动更新的工作:
apt-get install unattended-upgrades
解释: 安装 unattended-upgrades
工具,以便系统可以自动安装安全更新。
# 启用自动更新
dpkg-reconfigure --priority=low unattended-upgrades
解释: 配置 unattended-upgrades
以启用自动更新,确保系统始终保持最新状态。
进行漏洞扫描与修复可以使用工具如 OpenVAS
或 Nessus
。定期扫描系统并应用补丁是保持系统安全的关键步骤。
二、入侵检测与响应
1. 常用入侵检测系统:
入侵检测系统(IDS)可以帮助检测潜在的安全威胁。OSSEC
和 AIDE
是两个常用的工具:
OSSEC
安装:
# 安装 OSSEC
wget https://github.com/ossec/ossec-hids/archive/3.8.0.tar.gz
tar -zxvf 3.8.0.tar.gz
cd ossec-hids-3.8.0
./install.sh
解释: 从官方 GitHub 仓库下载 OSSEC
的压缩包,解压并运行安装脚本。
AIDE
安装:
apt-get install aide
解释: 安装 AIDE
工具,用于文件和目录完整性检查。
# 初始化数据库
aideinit
解释: 初始化 AIDE
数据库,创建当前系统状态的快照。
# 执行检查
aide --check
解释: 执行文件完整性检查,检测文件系统的变化
2. 安全事件的响应流程
处理安全事件时,应遵循以下基本流程:
检测:利用 IDS 工具和日志分析发现异常活动。
响应:对可疑活动采取措施,隔离受影响系统。
恢复:恢复系统至正常状态,应用修复补丁。
报告:记录事件详情,分析原因并改进安全措施。
三、实战场景
假设你发现服务器上有未经授权的 SSH 登录尝试,可以通过以下步骤进行处理:
1、查看日志:使用 grep
查找日志中的异常活动。
grep 'sshd' /var/log/auth.log
解释: 查找 SSH 登录相关的日志信息,识别异常的登录尝试
2、阻止 IP 地址:如果发现异常 IP 地址,使用防火墙规则进行阻止。
iptables -A INPUT -s 192.168.1.100 -j DROP
解释: 将指定 IP 地址(如 192.168.1.100
)添加到防火墙规则中,阻止其访问系统。
3、审计与修复:审查相关用户权限和配置文件,修复任何潜在的安全漏洞。
云计算架构师韩先超亲身经历 | 记录从大学到现在历程 云计算架构师韩先超对咪咕进行【K8S超大规模集群与AI赋能算力网络调度】培训 对合肥电信进行线下Kubernetes技术培训 Linux常用命令大全 深度探索:Linux内核优化高级指南 全面掌握:Linux运维面试必备题库(服务器、网络、Docker、K8s、DevOps等) 很多docker镜像站被封了?哪些能用,抓紧收藏 国产操作系统崛起!揭开未来科技的神秘面纱 Centos停更了,基于业务场景选择合适的操作系统替代Centos。 探索Kubernetes/K8S的奇妙世界:十大必知创新技术 大规模场景下K8S集群设计|大企业5000个节点k8s架构设计|第1集 大规模K8S集群的网络与存储优化:5000+节点规模| 第2集 点赞、关注和"在看",薪资翻倍