Защита сервера Ubuntu необходима для защиты ваших данных, приложений и инфраструктуры от вредоносных атак. Независимо от того, размещаете ли вы веб-сайты, базы данных или приложения, внедрение надёжных методов обеспечения безопасности гарантирует устойчивость сервера к уязвимостям. В этой статье мы рассмотрим практические шаги по защите сервера Ubuntu, включая настройку брандмауэров, безопасную настройку SSH и использование таких инструментов, как fail2ban, а также другие советы по усилению защиты.
Предыдущая статья:
01. Введение в Ubuntu Server – SysOSX: AI & Cloud
02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud
03. Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud
05. Основы сетей для 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”