Linux 系统安全加固方案
时间:2024-9-21 20:25 作者:Anglei 分类: Linux
系统安全是运维工作的重中之重。通过系统加固,可以有效降低安全风险。本文将介绍 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 配置:
# 安装 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. 系统补丁与更新管理
定期更新系统补丁是防止漏洞被利用的重要措施。配置自动更新可以减少手动更新的工作:
# 安装 unattended-upgrades 工具
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 安装:
# 安装 AIDE
apt-get install aide
# 解释: 安装 AIDE 工具,用于文件和目录完整性检查。
# 初始化数据库
aideinit
# 解释: 初始化 AIDE 数据库,创建当前系统状态的快照。
# 执行检查
aide --check
# 解释: 执行文件完整性检查,检测文件系统的变化。
2. 安全事件的响应流程
处理安全事件时,应遵循以下基本流程:
检测:利用 IDS 工具和日志分析发现异常活动。
响应:对可疑活动采取措施,隔离受影响系统。恢复:恢复系统至正常状态,应用修复补丁。报告:记录事件详情,分析原因并改进安全措施。
三、实战场景
假设你发现服务器上有未经授权的 SSH 登录尝试,可以通过以下步骤进行处理:
- 查看日志:使用 grep 查找日志中的异常活动。
grep 'sshd' /var/log/auth.log # 解释: 查找 SSH 登录相关的日志信息,识别异常的登录尝试。
- 阻止 IP 地址:如果发现异常 IP 地址,使用防火墙规则进行阻止。
iptables -A INPUT -s 192.168.1.100 -j DROP # 解释: 将指定 IP 地址(如 192.168.1.100)添加到防火墙规则中,阻止其访问系统。
- 审计与修复:审查相关用户权限和配置文件,修复任何潜在的安全漏洞。

推荐阅读:
![]() 路过(0) |
![]() 雷人(0) |
![]() 握手(0) |
![]() 鲜花(0) |
![]() 鸡蛋(0) |