ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

12 вещей, которые нужно сделать после установки Linux-сервера

12 вещей, которые нужно сделать после установки Linux-сервера

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

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

После установки сервера Linux вы должны сделать несколько вещей, чтобы убедиться, что ваш сервер не взломан.

871 неудачных попыток входа в систему и 54 заблокированных IP-адресов. Весь трафик от неавторизованных людей или скриптов, пытающихся войти на наш сервер.

Несколько важных первых шагов помогут вам защитить ваши новые сборки сервера от компрометации.

 

Мы рассмотрели здесь два самых популярных дистрибутива серверов Linux: Ubuntu и CentOS/Red Hat. Пожалуйста, проверьте, какой Linux вы используете.

Большинство советов здесь являются общими и должны быть применимы к другим Linux, если не указано иное.

Вот что мы рекомендуем вам проверить, чтобы обеспечить безопасность вашего сервера Linux.

 

1. Убедитесь, что настроен пользователь без полномочий root.

Root всемогущ, и вам не нужны все время права root.

root также является допустимым именем пользователя почти в каждой системе Linux. Это означает, что если включена удаленная проверка подлинности, половина работы злоумышленника – получение действительного имени пользователя – выполнена.

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

По этим причинам лучше всего войти в систему как пользователь без полномочий root и отключить вход в систему с правами root для удаленного доступа с помощью SSH (объяснено позже).

 

Как это сделать?

Мы предполагаем, что вы вошли в систему как root.

Добавьте нового пользователя с помощью команды useradd. Замените <username> любым именем пользователя по вашему выбору.

useradd <username>

 

Установите пароль с помощью команды passwd для нового добавленного пользователя:

passwd <username>

 

2. Убедитесь, что пользователь без полномочий root имеет разрешение sudo.

Поскольку вы будете входить в эту учетную запись удаленно с помощью Secure Shell (SSH), вы захотите иметь возможность выполнять привилегированные действия, требующие root-доступа. Это означает, что у учетной записи должны быть разрешения sudo.

 

Как это сделать?

Процесс создания пользователя SUDO на Ubuntu и CentOS похож, но группа, которую вы будете добавлять пользователя отличается.

Вы должны войти в систему как root, чтобы выполнить этот шаг.

На CentOS и Red Hat, то группа wheel является стандартной группой, используемой для предоставления пользователям Sudo разрешения. Добавьте пользователя в эту группу с помощью команды usermod :

usermod -aG wheel <username>

 

Ubuntu использует группу sudo для управления пользователями sudo.

usermod -aG sudo <username>

 

3. Включение аутентификации SSH на основе ключей

Важно, чтобы для SSH была включена аутентификация на основе ключей, чтобы он работал, когда мы отключаем аутентификацию на основе пароля.

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

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

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

 

Как это сделать?

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

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

Внимание! Не теряйте ssh-ключи от вашего персонального компьютера. Сделайте резервную копию этих ключей. Если вы отключите аутентификацию на основе пароля позже и потеряете ключи SSH, вы будете заблокированы на своем собственном сервере.

 

4. Убедитесь, что SSH разрешен через брандмауэр ufw.

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

 

Как это сделать?

Ubuntu использует несложный брандмауэр ( ufw ), а CentOS/Red Hat использует firewalld.

В CentOS/Red Hat используйте команду firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

 

В Ubuntu используйте команду ufw следующим образом:

sudo ufw allow ssh

 

5. Включите брандмауэр (только после разрешения SSH)

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

 

Как это сделать?

В системах CentOS/Red Hat включите службу firewalld systemd :

sudo systemctl start firewalld
sudo systemctl enable firewalld

 

В Ubuntu используйте эту команду:

sudo ufw enable

 

6. Настройте SSH, чтобы не отображать баннер.

Один из способов, которым злоумышленник может взломать ваш сервер, – это ошибки в программном обеспечении, на котором работают ваши службы. Баннер может отображать информацию о том, какую версию OpenSSH или операционной системы вы используете. Нет смысла давать информацию плохим парням. Заставьте их работать на это!

 

Как это сделать?

По умолчанию в CentOS/Red Hat не отображается баннер, поэтому никаких действий не требуется.

В Ubuntu вы можете использовать:

sudo echo "DebianBanner no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

 

7. Отключите пересылку по SSH.

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

 

Как это сделать?

В CentOS/Red Hat добавьте следующее//etc/ssh/sshd_config:

DisableForwarding yes

 

В Ubuntu добавьте DisableForwarding yes в файл 10-my-sshd-settings.conf:

sudo echo "DisableForwarding yes" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

 

8. Отключите вход root через SSH.

Практически в каждой системе Linux есть пользователь root. Разрешение этой учетной записи использовать SSH сопряжено с двумя рисками.

  1. Имя пользователя известно и часто используется плохими парнями.
  2. Если злоумышленник входит как root, он получает полный доступ к системе.

Отключение использования учетной записи root для SSH-подключений сводит на нет оба риска.

 

Как это сделать?

На CentOS/Red Hat , найдите строку PermitRootLogin yes в//etc/ssh/sshd_config и изменить его на:

PermitRootLogin no

 

В Ubuntu добавьте PermitRootLogin no в файл 10-my-sshd-settings.conf:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

 

9. Отключите аутентификацию SSH на основе пароля.

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

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

Злоумышленник должен иметь ваш открытый и закрытый ключи, чтобы попасть на ваш сервер.

 

Как это сделать?

На CentOS/Red Hat, найдите строку PasswordAuthentication yes в //etc/ssh/sshd_config и изменить его на:

PasswordAuthentication no

 

В Ubuntu добавьте PasswordAuthentication no в файл 10-my-sshd-settings.conf:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

 

10. Игнорировать росты

rhosts связан с rsh, устаревшим протоколом, замененным защищенной оболочкой. Если пользователь пытается создать вредоносный файл rhosts, этот параметр явно игнорирует его.

 

Как это сделать?

На CentOS/Red Hat , найдите строку #IgnoreRhosts yes в //etc/ssh/sshd_config и изменить его на:

IgnoreRhosts yes

 

В Ubuntu добавьте IgnoreRhosts yes в файл 10-my-sshd-settings.conf:

sudo echo "IgnoreRhosts yes" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

 

11. Установите fail2ban и настройте его для защиты SSH.

Fail2ban следит за файлами журналов для настроенных служб, таких как SSH, и блокирует IP-адреса злоумышленников от подключения к вашему серверу после заданного количества попыток в течение заданного времени.

Если злоумышленник сделает более 5 неудачных попыток в течение трех часов, его IP-адрес будет заблокирован, например, на 12 часов.

Fail2ban можно настроить для защиты других служб, таких как веб-сайты, работающие на веб-сервере nginx или веб-сервере Apache.

 

Как это сделать?

Вы можете следовать нашему подробной статьи по использованию Fail2Ban.

 

12. Настройте автоматические обновления безопасности (для Red Hat и CentOS).

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

 

Как это сделать?

Для установки сервера Ubuntu по умолчанию включены автоматические обновления безопасности, поэтому никаких действий с обновлениями не требуется.

Чтобы настроить автоматические обновления в CentOS/Red Hat, вы установите приложение под названием dnf-automatic и включите для него таймер, используя следующие команды:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

 

Вы можете проверить таймер, запустив:

sudo systemctl status dnf-automatic.timer

 

Найдите слово «loaded» в строке «Loaded:» и «active» в строке «Active:».

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

 

Вывод

Это лишь некоторые из самых простых проверок безопасности, но то, что вы должны сделать после установки сервера Linux.

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

Это некоторые из рекомендаций. Как насчет вас? Есть что добавить к этому списку? Предоставьте свое предложение в разделе комментариев.

Exit mobile version