08. 保护您的 Ubuntu 服务器:加固与防护的实用步骤

保护 Ubuntu 服务器对于保护您的数据、应用程序和基础设施免受恶意攻击至关重要。无论您托管的是网站、数据库还是应用程序,实施强有力的安全实践都能确保服务器抵御各种漏洞。本文将介绍保护 Ubuntu 服务器的实用步骤,包括配置防火墙、安全地设置 SSH、使用fail2ban等工具和其他加固技巧。


上一篇文章:

01. Ubuntu Server 简介 – SysOSX: AI & Cloud

02. 如何设置您的第一台 Ubuntu 服务器:初学者指南 – SysOSX: AI & Cloud

03. 掌握适用于 Ubuntu Server 的 Linux 命令行 – SysOSX: AI & Cloud

04. 管理 Ubuntu Server 上的用户和权限:综合指南 – SysOSX: AI & Cloud

05. Ubuntu Server 网络基础:综合指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安装和管理软件:完整指南 – SysOSX: AI & Cloud

07.修补和更新 Ubuntu Server:综合指南 – SysOSX: AI & Cloud



为什么服务器安全很重要?

服务器通常保存着敏感数据,并且对业务运营至关重要。如果没有适当的安全措施,攻击者可以利用漏洞获得未授权访问、破坏服务或窃取信息。遵循这些实用步骤,您可以显著降低遭受攻击的风险,并确保服务器保持安全。


1. 保持系统更新

定期更新对于修补安全漏洞和保持服务器安全至关重要。Ubuntu 会及时为其软件包和内核提供更新。

更新服务器的步骤:

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

此外,请启用unattended-upgrades以自动执行安全更新:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

2. 使用 UFW 配置防火墙

防火墙是抵御未授权访问的第一道防线。Ubuntu 包含UFW(Uncomplicated Firewall),它简化了防火墙管理。

配置 UFW 的步骤:

  • 启用 UFW:
sudo ufw enable
  • 允许 SSH 连接:
sudo ufw allow ssh
  • 允许特定端口(例如,Web 服务器的 HTTP 和 HTTPS):
sudo ufw allow 80/tcp 
sudo ufw allow 443/tcp
  • 检查防火墙状态:
sudo ufw status

    默认情况下,UFW 会阻止所有传入连接,只允许明确放行的连接,从而确保服务器受到保护。


    3. 保护 SSH 访问

    SSH 是远程服务器管理的主要方法,但它经常成为暴力破解攻击的目标。保护 SSH 对于降低未授权访问的风险至关重要。

    保护 SSH 的技巧:

    • 更改默认 SSH 端口:
      • 编辑 SSH 配置文件:
    sudo nano /etc/ssh/sshd_config 
    
    • 更改默认端口(例如,从22更改为2222),然后重启 SSH 服务:
    sudo systemctl restart ssh
    
    • 更新 UFW 规则,以允许访问新端口:
    sudo ufw allow 2222/tcp
    
    • 禁用 root 登录:
      在/etc/ssh/sshd_config中,设置:
    PermitRootLogin no
    
    • 使用 SSH 密钥身份验证:
      • 生成 SSH 密钥对:
    ssh-keygen -t rsa -b 4096 
    
    • 将公钥复制到服务器:
    ssh-copy-id username@server-ip
    
    • 限制 SSH 访问:
      通过编辑/etc/hosts.allow和/etc/hosts.deny 文件。

    4. 安装和配置 Fail2Ban

    Fail2Ban是一款通过监控日志文件并封禁表现出可疑行为的 IP 地址来保护服务器免受暴力破解攻击的工具。

    设置 Fail2Ban 的步骤:

    • 安装 Fail2Ban:
    sudo apt install fail2ban
    
    • 创建本地配置文件:
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
    • 配置 SSH 保护:
      编辑/etc/fail2ban/jail.local并启用 SSH jail:
    [sshd]
    enabled = true
    port = 2222
    maxretry = 5
    bantime = 3600
    
    
    • 重启 Fail2Ban:
    sudo systemctl restart fail2ban
    

      Fail2Ban 现在将监控 SSH 日志,并在多次登录失败后封禁相关 IP。


      5. 禁用不必要的服务

      运行不必要的服务会增加服务器的攻击面。请识别并禁用不需要的服务。

      禁用服务的步骤:

      • 列出活动服务:
      sudo systemctl list-units --type=service
      
      • 停止并禁用未使用的服务:
      sudo systemctl stop service-name 
      sudo systemctl disable service-name
      

        6. 使用强密码和用户帐户

        弱密码是一种常见漏洞。请确保所有用户帐户都使用强大且唯一的密码。

        用户帐户安全技巧:

        • 使用密码管理器生成和存储强密码。
        • 定期审计用户帐户并删除未使用的帐户:
        sudo awk -F: '{ print $1}' /etc/passwd
        

          7. 启用双因素身份验证 (2FA)

          双因素身份验证为 SSH 登录过程增加了一层额外的安全保护。您可以使用Google Authenticator.

          启用 2FA 的步骤:

          • 安装 Google Authenticator:
          sudo apt install libpam-google-authenticator
          
          • 为您的用户配置 2FA:
            运行以下命令并按照提示操作:
           google-authenticator
          
          • 在 SSH 中启用 2FA:
            编辑/etc/pam.d/sshd并添加:
           auth required pam_google_authenticator.so
          

            重启 SSH 服务:

            sudo systemctl restart ssh
            
            

            8. 监控日志和系统活动

            定期监控服务器日志有助于及早发现可疑活动。

            日志监控工具:

            • Syslog:检查常规系统日志:
            sudo less /var/log/syslog
            
            • Auth 日志:查看身份验证尝试:
             sudo less /var/log/auth.log
            

              考虑使用Logwatch或OSSEC等工具进行自动日志分析和告警。


              9. 定期执行备份

              即使采取了强有力的安全措施,备份对于从攻击或数据丢失中恢复仍然至关重要。

              备份选项:

              • 使用rsync创建本地备份:
              rsync -av /data /backup/
              
              • 使用Duplicity等工具自动执行备份,或集成基于云的解决方案,例如AWS S3或Google Cloud Storage.

              10. 其他加固技巧

              • 安装防病毒软件:使用ClamAV等工具扫描恶意软件。
              sudo apt install clamav 
              sudo clamscan -r /path/to/scan
              
              • 保护 Web 应用程序:如果托管网站,请使用ModSecurity等工具防范常见的 Web 漏洞。
              • 启用 AppArmor:AppArmor 为应用程序提供强制访问控制。
              sudo apt install apparmor 
              sudo aa-status
              

              结论

              保护 Ubuntu 服务器需要采取主动的方法,将系统更新、防火墙配置、SSH 加固以及 Fail2Ban 等工具结合起来。遵循这些步骤并定期监控服务器,您可以建立针对潜在威胁的强大防御。

              如需了解更多信息,请参阅官方Ubuntu 安全指南.

              接下来:Ubuntu Server 上的审计与日志记录

              保护服务器固然重要,但保持对其运行状况的可见性同样关键。审计和日志记录 使您能够监控系统活动、识别异常并有效地排查问题。

              在下一节中,我们将介绍:

              • 系统审计和日志的重要性。
              • 使用auditd跟踪和记录系统事件。
              • 使用logrotate配置日志轮转,以高效管理日志文件。
              • 监控/var/log目录中的关键事件。

              这些实践将帮助您保持问责、发现潜在威胁并确保服务器的可靠性。

              敬请期待,我们将深入介绍帮助您有效审计和监控 Ubuntu 服务器的工具和技术。

              3 thoughts on “08. Securing Your Ubuntu Server: Practical Steps for Hardening and Protection”

              发表评论