Что нового

[0] Комплекс мероприятий по защите сервера

Vander

Vander


Команда форума
Protey Team
Регистрация
10.11.2019
Сообщения
70
Оценка реакций
135
Приветствую уважаемую аудиторию форума Protey!

В этой статье, мы поговорим о защите своего драгоценного сервера от любых попыток злоумышленника причинить ему вред, и тем самым расстроить вас.

1575061549425.png
Я пока не буду затрагивать способы защиты Windows серверов, к этому мы обязательно дойдем позже, выкладывать новый материал я буду регулярно.

Мы будем защищать сервер на ОС Linux, я немного осмотрелся и нашёл у себя сервер, который прикидывался ветошью, и делал вид, что его тут нет, на нём мы и поэкспериментируем.

1575061576027.png
Как пишут многие, Linux имеет полное отсутствие ограничений, но также подвергает пользователя невероятной сложности, это случается, тут не поспорить.
Для наглядности пользователю тут же предлагают взглянуть на схему ядра Linux, дабы заставить его забиться в ужасе, и хорошо подумать, прежде чем делать необдуманные шаги в сторону *nix like.

Я не буду исключением, вот эта картинка, может, кому и пригодится:

ууу.png
Посмотрели, запомнили, можно начинать.

В этой статье, мы подготовимся к различным ситуациям и сценариям, которые потенциально могут нанести вред вашему серверу, и постараемся создать от них превентивную защиту и систему оповещений, чтобы всегда быть в курсе происходящего в своей сети.

Обновление системы

22233.png
Обновления и исправления программного обеспечения часто распространяются для устранения уязвимостей по мере их обнаружения.
Запуск устаревшего программного обеспечения подвергает вас риску, как только информация об уязвимости публикуется. По этой причине очень важно, чтобы ваши пакеты и ОС постоянно обновлялись и были максимально безопасными. (Я знаю, только ленивый не писал такое)

Обновим Саурона:

Код:
apt update && apt upgrade
1575061860924.png
Update обновляет ваш список пакетов, а Upgrade фактически загружает и устанавливает их.

Чтобы автоматизировать эту процедуру, можно установить пакет - unattended-upgrades.

Код:
apt unattended-upgrades
В файле конфигурации пакета, расположенном по адресу /etc/apt/apt.conf.d/50unattended-updates, вы можете включить или отключить автоматическое обновление для определенных групп пакетов.

Например, вы можете просто автоматически получать исправления безопасности, раскомментировав:
  • "$ {distro_id}: $ {distro_codename} -security"; в конфигурационном файле.
В Ubuntu 16.04 этот пакет предустановлен и необходимые правки в конфигурационном файле сделаны.

ba12.png
Удаление неиспользуемых пакетов

Пакеты, которые вам не нужны, являются потенциальной точкой несанкционированного доступа у вашему серверу. Чтобы не допустить этого, вы можете вручную проверить список пакетов и удалить все, что вам не нужно, или использовать автоматический способ.

Ручной метод:
  • apt autoremove - чтобы удалить все неустановленные пакеты.
  • apt-cache pkgnames – удаляем кэш пакетов.
4466.png
Автоматический метод:

Устанавливаем небольшую консольную утилиту, которая покажет нам список пакетов, которые в системе попросту не нужны.
  • apt install deborphan
  • deborphan
У меня таких пакетов не, оказалось, идем дальше.

Обнаружение слабых паролей - John the Ripper

rrtt.jpg
Если вам удастся подобрать пароли к учетным записям на сервере, есть большая вероятность, что злоумышленник может сделать то же самое.

Чтобы защититься от этого, попробуем побрутить пароли на своем собственном сервере, чтобы обнаружить возможные проблемы.

Устанавливаем John:

Код:
apt install john
Объединяем файлы shadow и passwd:

Код:
/usr/sbin/unshadow /etc/passwd/ /etc/shadow> /tmp/crack.password.db
Это создаст временную базу паролей, на которой можно запускать John.

Код:
john /tmp/crack.password.db
Перебор паролей - это сложная задача, но в конечном итоге она предоставит вам файл журнала, в котором показаны пароли, которые Джону удалось взломать, доступный с помощью john -show /tmp/crack.password.db.

Я этот шаг делать не буду, так как в своих паролях уверен, наверное…

Убедитесь, что ни в одной учетной записи нет пустых паролей.

Пустые пароли легко обнаружить, выполняем следующую команду:

Код:
awk -F: '($ 2 == "") {print}' /etc/shadow
Она проверит, является ли второй элемент (зашифрованный пароль) пустым в файле, и если это так, вернет имя пользователя.

Установка правил для паролей.

zzxx.jpg
Разрешение пользователям устанавливать пароли, такие как «password» или «1234», представляет собой опасность, и вы должны убедиться, что у вас есть контроль над паролями, установленными пользователями, посредством установки правил.

Файл конфигурации правил паролей находится по адресу etc/pam.d/common-password. Отредактируйте этот файл, включив, например, следующую строку:

Код:
password requisite pam_cracklib.so minlength=12 lcredit=1 ucredit=1 dcredit=1 ocredit=1 difok=4
Где:
  • minlength - устанавливает минимальное количество символов, которое пользователь должен использовать в своих паролях.
  • lcredit, ucredit, dcredit, ocredit - относятся к минимальному количеству строчных, прописных, цифровых и других символов соответственно.
  • difok - устанавливает количество символов, которые должны отличаться между новым паролем и предыдущим.
xxzc.png
Установка срока действия пароля в login.defs

Чтобы ваши пользователи регулярно устанавливали надежные уникальные пароли, убедитесь, что вы настроили срок их действия.

Файл login.defs - /etc/login.defs - это место, где находится большая часть правил конфигурации паролей.

Откройте его в текстовом редакторе и найдите строку управления сроком действия паролей.

Вы увидите три параметра:
  • PASS_MAX_DAYS: максимальное количество дней, в течение которых может использоваться пароль. Если пароль старше этого, смена пароля будет принудительной.
  • PASS_MIN_DAYS: минимальное количество дней между сменами пароля. Любые изменения пароля, сделанные ранее, будут отклонены
  • PASS_WARN_AGE: количество дней предупреждения перед истечением пароля. Ноль означает, что предупреждение дается только в день истечения срока действия, отрицательное значение означает, что предупреждение не дается. Если не указано иное, предупреждения не будет.
Рекомендуется применять изменения пароля не реже одного раза в 90 дней, потому что, если старые резервные копии будут потеряны или испорчены, вы вряд ли захотите, чтобы хранящиеся там файлы паролей были актуальными.

Отключить USB-устройства

Сделаем так, чтобы никто не смог, загрузить вредоносные файлы, и скопировать данные, особенно если вы фактически не используете порты USB на вашем сервере.

Для этого откройте /etc/modprobe.d/block_usb.conf и добавьте следующую строку:

Код:
install usb-storage /bin/true
Это делает ваш сервер неспособным распознать что-либо подключенное к его USB-портам, что затрудняет его взлом, если злоумышленник получает физический доступ.

Список служб стартующих при загрузке

Необходимо проверить, наличие вредоносных сервисов, запускающихся во время загрузки и работающих в фоновом режиме. Это легко сделать, установив sysv-rc-conf:

Код:
apt install sysv-rc-conf
Смотрим, какие службы запускаются во время загрузки, следующей командой:

Код:
sysv-rc-conf --list | grep '3: on'
vvcc.png
Отключать сервисы вы можете командой:

Код:
systemctl disable/mask [servicename]
Я думаю, для одной статьи материала достаточно, в следующей части мы продолжим работать над превентивной защитой сервера под управлением ОС Linux.

Спасибо за внимание, материал подготовлен специально для protey.net.​
 
Последнее редактирование:
Верх