5 простых советов по обеспечению безопасности вашего сервера Linux

Советы по безопасности сервера Ubuntu 00 Главный рисунок

Серверы Linux являются основой современного Интернета. Сегодня почти каждый веб-сайт и сервис, доступный через веб-браузер, работает на дистрибутиве Linux. Здесь мы покажем вам, как вы можете защитить свой сервер Linux.

Содержание

    1. Удалите доступ Root по SSH
    1. Используйте публичную пару ключей для доступа по SSH
    1. Укрепите брандмауэр вашего сервера Linux
    1. Создайте нового пользователя для каждой службы
    1. Укрепите ядро вашего сервера
  • Часто задаваемые вопросы

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

1. Удалите доступ Root по SSH

Один из самых быстрых способов защитить свой сервер Ubuntu — это обеспечить безопасность вашего SSH-демона, отключив доступ Root по SSH. По умолчанию сервер OpenSSH позволяет любому входящему соединению входить как пользователь root.

Например, выполнение следующей команды на уязвимом сервере приведет к появлению окна входа:

Советы по безопасности сервера Ubuntu 04 Уязвимый вход Root

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

Как только вы находитесь на своем сервере Linux, отредактируйте файл конфигурации SSH:

sudonano/etc/ssh/sshd_config

Советы по безопасности сервера Ubuntu 07 Дефолтный конфиг Sshd

Найдите переменную PermitRootLogin в GNU Nano, нажав Ctrl + W и введя PermitRootLogin.

Советы по безопасности сервера Ubuntu 08 Переменная Permitrootlogin

Измените значение PermitRootLogin с “yes” на “no”, затем сохраните файл, нажав Ctrl + o, затем Ctrl + x.

Чтобы применить новое значение, перезапустите SSH-демон сервера с помощью systemctl:

sudo systemctl restart ssh

Советы по безопасности сервера Ubuntu 09 Перезагрузка Ssh сервера

2. Используйте публичную пару ключей для доступа по SSH

Еще один быстрый способ защитить ваш сервер Linux — это создать публичную пару ключей между вашим локальным и SSH-учетной записью. Этот подход пропускает процесс входа по паролю и автоматически аутентифицирует вас на удаленном сервере.

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

ssh-keygen

Программа keygen спросит вас несколько деталей о ключе, который вы хотите создать. Вы можете спокойно оставить эти параметры по умолчанию, нажав Enter три раза.

Советы по безопасности сервера Ubuntu 10 Генерация Ssh ключа

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

ssh-copy-id [email protected]

Советы по безопасности сервера Ubuntu 11 Ssh Copy Id Server

Войдите на вашу удаленную машину, выполнив следующую команду:

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

sudonano/etc/ssh/sshd_config

Найдите переменную PasswordAuthentication и измените ее значение с “yes” на “no”.

Советы по безопасности сервера Ubuntu 13 Отключение аутентификации по паролю

Перезагрузите ваш SSH-демон, выполнив следующую команду:

sudo systemctl restart sshd

3. Укрепите брандмауэр вашего сервера Linux

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

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

Советы по безопасности сервера Ubuntu 14 Пример сканирования портов

Один из способов исправить это — установить ufw, простой клиент брандмауэра, который может контролировать порты и адреса, доступные внешнему миру.

Выполните следующую команду для установки ufw в Ubuntu:

sudo apt install ufw

Советы по безопасности сервера Ubuntu 15 Установка Ufw

Установите правила по умолчанию для ufw. Это политики, которые ваш брандмауэр будет следовать для любого порта, который вы не настраиваете. Правильная практика — убедиться, что вы блокируете все входящие соединения:

sudo ufw default deny incoming  
sudo ufw default allow outgoing

Советы по безопасности сервера Ubuntu 16 Изменение правил по умолчанию

Настройте ваш брандмауэр для сервисов, которые вы хотите запустить на вашей машине. Например, выполнение следующих команд позволит вам войти по SSH и разместить веб-сервер:

sudo ufw allow 22  
sudo ufw allow 80  
sudo ufw allow 443

Наконец, вам нужно активировать вашу новую конфигурацию брандмауэра, выполнив sudo ufw enable. Кроме того, вы можете проверить, работает ли ваш брандмауэр, выполнив эту команду:

sudo ufw status

Советы по безопасности сервера Ubuntu 17 Активный статус Ufw

4. Создайте нового пользователя для каждой службы

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

Один из способов повышения безопасности вашего сервера Linux — это создание нового учетной записи пользователя для каждой новой службы. Этот подход позволяет ограничить привилегии для каждой службы их собственной учетной записью пользователя.

Советы по безопасности сервера Ubuntu 18 Папка с несколькими владельцами

Для этого выполните следующие команды:

sudo useradd -s/bin/bash-d/home/new-service -m-Gsudo new-service  
sudopasswd new-service
  • Флаг -s устанавливает системную оболочку для новой учетной записи пользователя. В моем случае моя новая учетная запись использует Bash в качестве своей оболочки.
  • Оба флага -d и -m устанавливают каталог по умолчанию для новой учетной записи.
  • Флаг -G, с другой стороны, добавляет новую учетную запись в любые вторичные группы, которые вы укажете. Например, добавление новой учетной записи в группу sudo позволит ей выполнять команды суперпользователя.
  • Команда passwd позволяет вам установить новый пароль для новой учетной записи пользователя.

После завершения вы можете использовать свою новую учетную запись, либо выйдя из своей текущей учетной записи, либо выполнив su new-service.

Советы по безопасности сервера Ubuntu 19 Новый пользователь

5. Укрепите ядро вашего сервера

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

Советы по безопасности сервера Ubuntu 20 Режим меню конфигурации

Кроме этого, ядро также является корневым процессом операционной системы. Обеспечение безопасности ядра — одна из самых важных частей защиты вашего сервера Linux.

Один из самых быстрых способов защитить ядро — это использование sysctl. Это встроенная утилита, которая позволяет вам настраивать параметры выполнения ядра Linux.

Советы по безопасности сервера Ubuntu 21 Страница man Sysctl

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

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

sudo sysctl kernel.kptr_restrict=2  
sudo sysctl kernel.dmesg_restrict=1  
sudo sysctl kernel.kexec_load_disabled=1

Советы по безопасности сервера Ubuntu 22 Параметры Sysctl Kernel

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

sudo sysctl net.ipv4.tcp_syncookies=1  
sudo sysctl net.ipv4.tcp_rfc1337=1

Советы по безопасности сервера Ubuntu 23 Настройка Sysctl Net Flood

Эти команды, с другой стороны, заставят ядро проверять каждое входящее соединение на машину:

sudo sysctl net.ipv4.conf.all.rp_filter=1  
sudo sysctl net.ipv4.conf.default.rp_filter=1

Советы по безопасности сервера Ubuntu 24 Настройка Sysctl Net Filter Connections

Наконец, следующий набор команд предотвратит любые входящие соединения от перенаправления сетевого трафика на другой шлюз. Это предотвратит вашу машину от попадания в ловушку атаки «человек посередине».

sudo sysctl net.ipv4.conf.all.accept_redirects=0  
sudo sysctl net.ipv4.conf.default.accept_redirects=0  
sudo sysctl net.ipv4.conf.all.secure_redirects=0  
sudo sysctl net.ipv4.conf.default.secure_redirects=0  
sudo sysctl net.ipv6.conf.all.accept_redirects=0  
sudo sysctl net.ipv6.conf.default.accept_redirects=0  
sudo sysctl net.ipv4.conf.all.send_redirects=0  
sudo sysctl net.ipv4.conf.default.send_redirects=0

Советы по безопасности сервера Ubuntu 25 Настройка Sysctl Net Mitm Prevention

Советы: помимо приведенных выше советов, вы также можете воспользоваться этими инструментами с открытым исходным кодом для защиты вашего сервера Linux.

Часто задаваемые вопросы

Я потерял свой локальный компьютер. Все еще возможно ли войти на мой сервер Ubuntu через SSH?

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

Кроме того, вы можете либо физически обратиться к машине и обновить “/etc/ssh/sshd_config”, либо получить доступ к корневой консоли от вашего провайдера VPS.

У моего сервера есть как iptables, так и ufw. Нужно ли мне настраивать оба для моего брандмауэра?

Нет! И iptables, и ufw являются программным обеспечением брандмауэра, которое контролирует одни и те же диапазоны адресов и порты. Вам нужно настроить только одно из них, чтобы иметь работающий брандмауэр на вашем сервере Linux.

Возможно ли удалить привилегии суперпользователя у пользователя, которого я создал?

Да! Возможно удалить существующего пользователя из группы. Используйте утилиту usermod. Например, выполнение usermod -G video new-service удалит пользователя “new-service” из группы “sudo” и добавит его в группу “video”.