08. Защита сервера Ubuntu: практические шаги по усилению защиты

Защита сервера Ubuntu необходима для защиты ваших данных, приложений и инфраструктуры от вредоносных атак. Независимо от того, размещаете ли вы веб-сайты, базы данных или приложения, внедрение надёжных методов обеспечения безопасности гарантирует устойчивость сервера к уязвимостям. В этой статье мы рассмотрим практические шаги по защите сервера Ubuntu, включая настройку брандмауэров, безопасную настройку SSH и использование таких инструментов, как fail2ban, а также другие советы по усилению защиты.


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03. Освоение командной строки Linux для Ubuntu Server – 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
  • Разрешите определённые порты (например, 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:
      Ограничьте доступ по SSH только определёнными IP-адресами, изменив файлы /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 и включите jail SSH:
    [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. Вы можете включить 2FA с помощью Google Authenticator.

          Шаги по включению 2FA:

          • Установите Google Authenticator:
          sudo apt install libpam-google-authenticator
          
          • Настройте 2FA для своего пользователя:
            Выполните следующую команду и следуйте подсказкам:
           google-authenticator
          
          • Включите 2FA в SSH:
            Отредактируйте /etc/pam.d/sshd и добавьте:
           auth required pam_google_authenticator.so
          

            Перезапустите службу SSH:

            sudo systemctl restart ssh
            
            

            8. Отслеживайте журналы и активность системы

            Регулярный мониторинг журналов сервера помогает своевременно обнаруживать подозрительную активность.

            Инструменты мониторинга журналов:

            • Syslog: проверьте общие системные журналы:
            sudo less /var/log/syslog
            
            • Журнал проверки подлинности: просмотрите попытки проверки подлинности:
             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
              
              • Защитите веб-приложения: если вы размещаете веб-сайты, используйте такие инструменты, как ModSecurity для защиты от распространённых веб-уязвимостей.
              • Включите 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”

              Оставить комментарий