首页 > 运维 > CentOS > 正文

CentOS系统安全如何加固_CentOS系统安全加固方案

絕刀狂花
发布: 2025-09-21 14:43:01
原创
884人浏览过
答案:CentOS安全加固需从系统更新、用户权限、SSH配置、防火墙、SELinux、服务管理、日志审计等多方面入手,构建动态防御体系。默认安装注重通用性而非安全性,存在较多潜在风险,必须通过最小权限原则、密钥认证、关闭无用服务、启用防火墙默认拒绝策略、定期审计等措施持续加固,确保攻击面最小化,提升攻击成本。

centos系统安全如何加固_centos系统安全加固方案

CentOS系统安全加固,核心在于构建多层次防御体系,从系统基础配置、网络访问控制到服务与应用安全,持续审计与更新是其生命线。这不是一次性任务,而是一个动态且必须持续投入的过程,确保系统暴露面最小化,抵御潜在威胁。我个人觉得,与其追求所谓的“绝对安全”,不如踏踏实实地做好每一个环节,让潜在的攻击者付出的成本远高于他们可能获得的收益。

解决方案

谈到CentOS的安全加固,这事儿可大可小,但有些核心环节是无论如何都不能跳过的。我通常会从几个维度来考虑:

  • 系统更新与补丁管理: 这可能是最无聊但又最关键的一步。
    yum update
    登录后复制
    或者
    dnf update
    登录后复制
    ,定期执行,把所有已知的安全漏洞都堵上。我见过太多因为懒得更新而导致的问题,有些简直是低级错误。
  • 用户与权限管理:
    • 弱密码是万恶之源。 强制使用复杂密码策略,利用
      pam_pwquality
      登录后复制
      模块配置密码长度、复杂度要求,并且定期强制用户修改密码。
    • 最小权限原则。 每个用户或服务只给它完成工作所需的最小权限。别动不动就给
      root
      登录后复制
      权限,那简直是给自己挖坑。我个人习惯是,普通操作都用普通用户,需要特权时再
      sudo
      登录后复制
    • 禁用不必要的账户。
      guest
      登录后复制
      lp
      登录后复制
      sync
      登录后复制
      这些系统默认但你根本用不着的账户,直接锁死或者删掉。
  • SSH服务加固: 这是远程管理的命脉,也是攻击者最常盯上的地方。
    • 禁用密码登录,改用密钥认证。 这是我强烈推荐的,密钥比密码安全太多了。
    • 禁用Root直接登录。 即使你用密钥,也别让
      root
      登录后复制
      直接登录,通过普通用户登录后再
      sudo
      登录后复制
    • 修改默认端口 把SSH默认的22端口改掉,虽然不能防住有心人,但能过滤掉大量的扫描机器人。
    • 限制登录用户。
      AllowUsers
      登录后复制
      AllowGroups
      登录后复制
      可以明确指定哪些用户或组可以登录SSH。
    • 启用
      fail2ban
      登录后复制
      这玩意儿能有效防止SSH暴力破解。
  • 防火墙配置:
    firewalld
    登录后复制
    iptables
    登录后复制
    ,选一个你熟悉的,并且把它配置好。
    • 默认拒绝所有入站连接。 这是最安全的策略。
    • 只开放必要的端口和服务。 比如Web服务器就开80/443,SSH就开你改过的那个端口。
    • 内部网络也别掉以轻心。 即使是内网,也应该有适当的防火墙策略。
  • SELinux: 这东西很多人觉得麻烦就直接关了,但我个人建议,如果能驾驭,还是尽量保持
    enforcing
    登录后复制
    模式。它能提供额外的强制访问控制,即使某个服务被攻破,也能限制其能造成的破坏。当然,配置起来确实有点门槛,需要耐心。
  • 服务与应用安全:
    • 禁用不必要的服务。
      systemctl list-unit-files --state=enabled
      登录后复制
      看看有哪些服务是开机自启的,用不着的就
      systemctl disable --now
      登录后复制
      关掉。
    • 安全配置运行的服务。 比如Web服务器(Nginx/Apache)、数据库(MySQL/PostgreSQL),它们都有各自的安全配置最佳实践,别用默认配置。
  • 日志与审计:
    • 配置
      rsyslog
      登录后复制
      确保所有重要的系统日志都被妥善记录,并且定期归档或发送到集中的日志服务器。
    • 使用
      auditd
      登录后复制
      如果对安全性要求极高,
      auditd
      登录后复制
      可以记录更详细的系统调用和文件访问事件,方便事后追溯。
  • 文件系统与文件权限:
    • 敏感文件权限。 配置文件、密码文件等,确保只有
      root
      登录后复制
      或特定用户才能读写。
    • 文件完整性检查。
      aide
      登录后复制
      tripwire
      登录后复制
      这类工具可以帮助你监控系统关键文件的变化,一旦有文件被篡改,能及时发现。

为什么常规的系统安装后还需要进行额外的安全加固?

这问题问得挺好,很多人会觉得,我安装的是官方镜像,系统本身应该就挺安全了吧?但事实往往并非如此。在我看来,常规的CentOS安装,它更注重的是通用性易用性,而非极致的安全性。

首先,默认安装为了让系统能跑起来,并且能满足大多数用户的基本需求,会启用不少服务。比如SSH服务默认就允许密码登录,甚至默认端口22也是公开的。对于一个个人工作站来说可能没什么,但对于一台暴露在公网上的服务器,这简直就是给攻击者发邀请函。很多服务,你可能根本用不着,但它们却在后台默默运行,每一个运行的服务都可能是一个潜在的漏洞点,增加系统的“攻击面”。

其次,系统默认配置通常是通用型的,它不会针对你的具体业务场景和安全需求进行优化。比如,你可能只需要一个Web服务器,但默认安装却可能包含了FTP、邮件服务等。这些额外的服务不仅消耗资源,更重要的是增加了安全风险。

再者,安全是一个动态的过程。新的漏洞几乎每天都在被发现。系统安装那一刻是相对安全的,但随着时间的推移,新的漏洞会不断出现。所以,即使是默认安装,也需要持续的更新和加固来应对这些不断演进的威胁。默认安装只是一个起点,它给你提供了一个能工作的环境,但如何让这个环境更健壮、更抗揍,那就得靠我们自己去细心打磨了。

如何有效管理CentOS的用户账户与SSH远程访问权限?

管理用户账户和SSH权限,这可是服务器安全的重中之重,我个人觉得这部分工作做得好不好,直接决定了你的服务器会不会成为别人的“肉鸡”。

用户账户管理的核心思想就是“最小权限原则”和“永不信任”。

  • 强密码策略: 这个真的得强调。通过
    /etc/security/pwquality.conf
    登录后复制
    配置密码的长度、包含字符类型、历史密码限制等。比如,我通常会要求密码至少12位,包含大小写字母、数字和特殊字符。
  • 禁用Root直接登录: 无论是通过SSH还是本地控制台,我都不建议直接使用
    root
    登录后复制
    账户。创建一个普通管理员账户,然后通过
    sudo
    登录后复制
    命令来执行需要
    root
    登录后复制
    权限的操作。这不仅能留下操作记录,还能避免因误操作带来的灾难性后果。在
    /etc/ssh/sshd_config
    登录后复制
    中设置
    PermitRootLogin no
    登录后复制
  • 定期审计用户账户: 看看系统里有没有不明账户,或者长期不活跃的账户。不用的账户,及时禁用或删除。
    lastlog
    登录后复制
    faillog
    登录后复制
    这些命令能帮你查看用户的登录情况。
  • 使用
    sudo
    登录后复制
    精心配置
    /etc/sudoers
    登录后复制
    文件,让普通用户只能执行特定的、必要的管理命令。这比直接给
    root
    登录后复制
    密码安全得多。

SSH远程访问权限的加固,主要集中在

sshd_config
登录后复制
的配置上:

度加剪辑
度加剪辑

度加剪辑(原度咔剪辑),百度旗下AI创作工具

度加剪辑63
查看详情 度加剪辑
  • 密钥认证是王道: 告别密码登录,改用SSH密钥对。在客户端生成密钥对,公钥上传到服务器的
    ~/.ssh/authorized_keys
    登录后复制
    文件里。然后在
    /etc/ssh/sshd_config
    登录后复制
    中设置
    PasswordAuthentication no
    登录后复制
    。这样,没有私钥,即使知道密码也无法登录。这是我个人最推荐的方式,虽然初期配置略显繁琐,但一劳永逸。
  • 修改默认端口:
    Port 22
    登录后复制
    改成一个不常用的端口,比如
    Port 2222
    登录后复制
    。这能有效减少被自动化脚本扫描的几率。
  • 限制登录用户/组: 使用
    AllowUsers user1 user2
    登录后复制
    AllowGroups admin_group
    登录后复制
    来明确指定哪些用户或用户组可以登录SSH。这比仅仅禁用
    root
    登录后复制
    更细致,能防止其他普通账户被攻破。
  • 禁用空密码用户登录: 确保
    PermitEmptyPasswords no
    登录后复制
  • 启用
    fail2ban
    登录后复制
    这个工具通过监控日志文件(如
    /var/log/secure
    登录后复制
    ),当发现有多次登录失败的IP地址时,会自动将其加入防火墙的黑名单,有效抵御暴力破解攻击。配置起来也相对简单。
  • 配置
    ClientAliveInterval
    登录后复制
    ClientAliveCountMax
    登录后复制
    防止长时间不活动的SSH会话占用资源,或者被劫持。

这些措施结合起来,能大大提升SSH服务的安全性,让你的服务器没那么容易被“敲开大门”。

CentOS防火墙(firewalld/iptables)的最佳实践有哪些?

防火墙,在我看来,就是服务器的第一道门卫。它的哲学很简单:默认拒绝所有,只允许必要的通行。 CentOS系统现在默认使用

firewalld
登录后复制
,它比传统的
iptables
登录后复制
更容易理解和管理,但两者都能达到目的。关键在于,你得选择一个并把它用好。

选择与理解:

  • firewalld
    登录后复制
    它是基于区域(zone)的概念来管理防火墙规则的。比如
    public
    登录后复制
    区域用于面向公网的服务,
    internal
    登录后复制
    区域用于内部网络。每个区域可以有不同的规则集。这对于理解和管理复杂的网络环境很有帮助。
  • iptables
    登录后复制
    更底层,直接操作内核的包过滤规则。它更灵活、功能更强大,但学习曲线相对陡峭,对于不熟悉网络的人来说,很容易配置错误。

我个人建议,如果不是有特别复杂的需求,或者你对

iptables
登录后复制
没有深入了解,就用
firewalld
登录后复制
。它现在是CentOS的默认,也足够强大。

firewalld
登录后复制
最佳实践:

  1. 理解区域(Zones):
    • public
      登录后复制
      :默认区域,通常用于面向外部网络的接口。安全性最高,默认只允许SSH和DHCP客户端。
    • internal
      登录后复制
      :用于内部网络,信任级别更高,但也不代表可以随意开放。
    • 选择合适的区域并将其设置为默认。 大部分服务器只有一个网卡面向公网,那么将该网卡绑定到
      public
      登录后复制
      区域是最佳选择。
      sudo firewall-cmd --get-active-zones # 查看当前活跃区域
      sudo firewall-cmd --set-default-zone=public # 设置默认区域
      登录后复制
  2. 只开放必要的端口和服务:
    • 服务优先于端口。
      firewalld
      登录后复制
      预定义了很多服务(如
      ssh
      登录后复制
      http
      登录后复制
      https
      登录后复制
      ),使用服务名比直接开放端口更语义化,也更容易管理。
      sudo firewall-cmd --zone=public --add-service=ssh --permanent # 允许SSH服务
      sudo firewall-cmd --zone=public --add-service=http --permanent # 允许HTTP服务
      sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent # 允许TCP 8080端口
      sudo firewall-cmd --reload # 重新加载配置使之生效
      登录后复制
    • 明确来源IP。 如果你知道谁会访问你的服务,可以限制来源IP。
      sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
      登录后复制

      这能让你的SSH服务只对特定IP段开放,大大提高安全性。

  3. 定期审查防火墙规则: 随着业务变化,防火墙规则也需要调整。别把旧的、不再需要的规则留在那里,那会成为潜在的漏洞。
    sudo firewall-cmd --list-all --zone=public # 查看public区域的所有规则
    登录后复制
  4. 启用日志记录: 记录被防火墙拒绝的连接,这对于发现潜在的攻击行为或调试网络问题非常有帮助。
    sudo firewall-cmd --zone=public --add-rich-rule='rule protocol value="icmp" drop' --permanent # 举例:丢弃ICMP包
    sudo firewall-cmd --zone=public --add-rich-rule='rule protocol value="tcp" reject log prefix="DROP_TCP " limit value="1/s"' --permanent # 记录被拒绝的TCP连接
    sudo firewall-cmd --reload
    登录后复制

    日志通常在

    /var/log/messages
    登录后复制
    /var/log/firewalld
    登录后复制
    中。

iptables
登录后复制
最佳实践(如果你选择它):

  1. 清空现有规则,设置默认策略:
    iptables -F # 清空所有规则
    iptables -X # 清空所有自定义链
    iptables -Z # 清空所有链的计数器
    iptables -P INPUT DROP # 默认拒绝所有入站连接
    iptables -P FORWARD DROP # 默认拒绝所有转发连接
    iptables -P OUTPUT ACCEPT # 默认允许所有出站连接 (根据需求可调整)
    登录后复制
  2. 允许本地回环接口:
    iptables -A INPUT -i lo -j ACCEPT
    登录后复制
  3. 允许已建立和相关的连接: 这是状态防火墙的关键。
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    登录后复制
  4. 开放特定端口和服务:
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP
    登录后复制
  5. 保存规则:
    iptables
    登录后复制
    规则默认是临时的,需要保存才能在重启后生效。
    sudo service iptables save # 或根据系统版本使用 `iptables-save > /etc/sysconfig/iptables`
    登录后复制

无论是

firewalld
登录后复制
还是
iptables
登录后复制
,在应用任何新规则之前,务必先在测试环境验证,或者至少确保你有一个备用访问通道(比如带外管理或KVM),以防把自己锁在外面。 这点非常重要,我见过太多因为防火墙配置错误导致服务器失联的案例。安全是重要的,但可访问性也同样重要。

以上就是CentOS系统安全如何加固_CentOS系统安全加固方案的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号