Как обеспечить безопасность Linux?
В этой статье описываются шесть простых шагов по повышению безопасности вашей среды Linux для персонального использования. На протяжении всего своего пути я использовал инструменты с открытым исходным кодом для ускорения процесса обучения и ознакомления с концепциями более высокого уровня, связанными с обеспечением безопасности моего Linux-сервера. Я протестировал эти шаги, используя различные версии Ubuntu, но эти шаги также подойдут и для других дистрибутивов Linux.
1. Запуск обновлений
Разработчики постоянно находят варианты, как сделать серверы более стабильными, быстрыми и безопасными, исправляя известные уязвимости. Регулярный запуск обновлений – хорошая практика для обеспечения безопасности. Запускайте их с помощью:
|
|
2. Включение защиты межсетевого экрана
Включение брандмауэра облегчает контроль входящего и исходящего трафика на вашем сервере.
Существует множество приложений брандмауэра, которые можно использовать в Linux, включая firewall-cmd и Uncomplicated Firewall (UFW). Я использую UFW, поэтому мои примеры относятся именно к нему, но эти принципы применимы к любому выбранному вами инструменту.
Установите UFW с помощью:
|
|
Если вы хотите еще больше обезопасить свой сервер, вы можете запретить входящие и исходящие соединения. Будьте осторожны и внимательны: Это изолирует ваш сервер от всего мира, поэтому после блокирования всего трафика вы должны указать, какие исходящие соединения разрешены из вашей системы:
|
|
Вы также можете написать правила для разрешения входящих соединений, которые нужны вам для персонального использования:
|
|
Например, чтобы обеспечить разрешение SSH-соединений:
|
|
В завершение включите брандмауэр, используя:
|
|
3. Усиление защиты паролей
Применение строгой политики паролей является важным аспектом обеспечения безопасности сервера от кибератак и утечки данных.
Некоторые лучшие практики для политики паролей включают обеспечение минимальной длины и указание возраста пароля. Для выполнения этих задач я использую пакет libpam-cracklib.
Установите пакет libpam-cracklib:
|
|
Чтобы обеспечить соблюдение длины пароля:
- Откройте файл /etc/pam.d/common-password.
- Измените минимальную длину символов для всех паролей, изменив строку minlen=12 на любое количество символов.
Чтобы предотвратить повторное использование пароля:
- В том же файле (/etc/pam.d/common-password) добавьте строку remember=x.
- Например, если вы хотите запретить пользователю повторно использовать один из его последних пяти паролей, используйте: remember=5.
Чтобы установить срок действия пароля:
Найдите следующие строки в файле /etc/login.defs и замените их на желаемое количество времени (дней). Например:
|
|
Обеспечение соблюдения сложности пароля
- Четыре параметра для обеспечения символов в паролях: lcredit (строчные буквы), ucredit (прописные буквы), dcredit (цифра) и ocredit (спец символы).
- В том же файле (/etc/pam.d/common-password) найдите строку, содержащую pam_cracklib.so.
- Добавьте следующее в конец этой строки:
|
|
Например, следующая строка требует, чтобы пароли содержали по одному символу. Вы можете изменить числа в зависимости от предпочитаемого уровня безопасности пароля:
|
|
4. Отключение ненужных служб, которые подвержены к эксплуатации различных уязвимостей
Лучшей практикой является отключение ненужных служб. Это позволит ограничить количество портов, открытых для эксплуатации.
Установите пакет systemd:
|
|
Проверьте, какие службы запущены:
|
|
Остановите службу, если она запущена:
|
|
Отключите включение службы при загрузке:
|
|
После выполнения этих команд проверьте состояние службы:
|
|
5. Проверка прослушиваемых портов
Открытые порты могут представлять угрозу безопасности, поэтому важно проверить, какие порты прослушиваются на вашем сервере. Я использую команду netstat, чтобы показать все сетевые подключения:
|
|
Посмотрите на столбцы адресов, чтобы определить номер порта. Обнаружив открытые порты, проверьте их, чтобы убедиться, что все они необходимы. Если это не так, измените запущенные службы или настройки межсетевого экрана.
6. Сканирование на наличие вредоносных программ
Использование антивирусного программного обеспечения – это простой способ уберечь ваш хост от вредоносных программ. Я предпочитаю использовать программу ClamAV с открытым исходным кодом.
Установите ClamAV:
|
|
Обновите сигнатуры вирусов:
|
|
Просканируйте все файлы и выведете на экран зараженные файлы:
|
|
Необходимо автоматизировать сканирование, чтобы вам не приходилось запоминать команды или тратить время на выполнение сканирования вручную. Для такой простой автоматизации вы можете использовать таймеры systemd или ваш любимый cron.
Заключение
Это лишь некоторые из многих шагов, которые Вы можете предпринять для обеспечения безопасности Вашего Linux-сервера. Конечно, профилактика – это только часть решения. Эти практики должны сочетаться с тщательным мониторингом на предмет атак типа “отказ в обслуживании”, анализом системы с помощью Lynis и постоянным созданием резервных копий.