系统安全是运维工作的重中之重。通过系统加固,可以有效降低安全风险。本文将介绍 Linux 系统安全加固的核心步骤,帮助你提升系统的安全性,防止潜在的攻击威胁。
防火墙是保护系统免受网络攻击的第一道防线。常用的防火墙工具包括 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 配置,使之前添加的规则生效。
管理用户权限是确保系统安全的重要措施。使用 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
解释: 重新加载审计规则,使新的规则立即生效。
定期更新系统补丁是防止漏洞被利用的重要措施。配置自动更新可以减少手动更新的工作:
apt-get install unattended-upgrades
解释: 安装 unattended-upgrades 工具,以便系统可以自动安装安全更新。
# 启用自动更新dpkg-reconfigure --priority=low unattended-upgrades
解释: 配置 unattended-upgrades 以启用自动更新,确保系统始终保持最新状态。
进行漏洞扫描与修复可以使用工具如 OpenVAS 或 Nessus。定期扫描系统并应用补丁是保持系统安全的关键步骤。
入侵检测系统(IDS)可以帮助检测潜在的安全威胁。OSSEC 和 AIDE 是两个常用的工具:
OSSEC 安装:# 安装 OSSECwget https://github.com/ossec/ossec-hids/archive/3.8.0.tar.gztar -zxvf 3.8.0.tar.gzcd ossec-hids-3.8.0./install.sh
解释: 从官方 GitHub 仓库下载 OSSEC 的压缩包,解压并运行安装脚本。
AIDE 安装:apt-get install aide
解释: 安装 AIDE 工具,用于文件和目录完整性检查。
# 初始化数据库aideinit
解释: 初始化 AIDE 数据库,创建当前系统状态的快照。
# 执行检查aide --check
解释: 执行文件完整性检查,检测文件系统的变化
处理安全事件时,应遵循以下基本流程:
检测:利用 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、审计与修复:审查相关用户权限和配置文件,修复任何潜在的安全漏洞。
原文作者:DevOps和k8s全栈技术;如有侵权,请联系管理员删除。