从这几个方面做,可以确保你的Linux 系统更加安全,免受攻击

科技   2024-09-21 08:40   北京  

系统安全是运维工作的重中之重。通过系统加固,可以有效降低安全风险。本文将介绍 Linux 系统安全加固的核心步骤,帮助你提升系统的安全性,防止潜在的攻击威胁。

一、基础安全配置

1. 防火墙配置

防火墙是保护系统免受网络攻击的第一道防线。常用的防火墙工具包括 iptablesfirewalld。下面是它们的基本配置示例:

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. 用户权限管理与审计

管理用户权限是确保系统安全的重要措施。使用 chmodchown 命令来设置文件和目录权限。例如:

# 设置文件为只读chmod 444 /path/to/file

解释: 将指定文件的权限设置为只读(读权限给所有用户),防止文件被修改。

# 修改文件拥有者chown user:user /path/to/file

解释: 将指定文件的所有权更改为 user 用户及其用户组,以便只允许特定用户修改该文件。

auditd 配置:

# 安装 auditdapt-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 以启用自动更新,确保系统始终保持最新状态。

进行漏洞扫描与修复可以使用工具如 OpenVASNessus。定期扫描系统并应用补丁是保持系统安全的关键步骤。

二、入侵检测与响应

1. 常用入侵检测系统:

入侵检测系统(IDS)可以帮助检测潜在的安全威胁。OSSECAIDE 是两个常用的工具:

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 安装:

# 安装 AIDEapt-get install aide

解释: 安装 AIDE 工具,用于文件和目录完整性检查。

# 初始化数据库aideinit

解释: 初始化 AIDE 数据库,创建当前系统状态的快照。

# 执行检查aide --check

解释: 执行文件完整性检查,检测文件系统的变化

2. 安全事件的响应流程

处理安全事件时,应遵循以下基本流程:

  1. 检测:利用 IDS 工具和日志分析发现异常活动。

  2. 响应:对可疑活动采取措施,隔离受影响系统。

  3. 恢复:恢复系统至正常状态,应用修复补丁。

  4. 报告:记录事件详情,分析原因并改进安全措施。


三、实战场景

假设你发现服务器上有未经授权的 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全栈技术
专注于DevOps,Kubernetes,Linux,Docker,istio,微服务,Spring Cloud,python,go,数据库,Nginx,Tomcat,云计算等技术分享~
 最新文章