ГлавнаяОперационные системыLinux5 простых советов по защите вашего Linux-сервера

5 простых советов по защите вашего Linux-сервера

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

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

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

1. Удалить корневой доступ по SSH

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

1. Удалить корневой доступ по SSH

имени пользователя root.

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

ssh root@insecure.server.ip.address
Советы по обеспечению безопасности сервера Ubuntu 04. Небезопасный вход в систему с правами root

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

Зайдя на сервер Linux, отредактируйте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config
Советы по обеспечению безопасности сервера Ubuntu 07. Конфигурация Sshd по умолчанию

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

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

Измените значение PermitRootLogin с «да» на «нет», затем сохраните файл, нажав Ctrl+ o, затем Ctrl+ x.

Чтобы применить новые настройки, перезагрузите демон SSH сервера через systemctl:

sudo systemctl restart ssh
Советы по обеспечению безопасности сервера Ubuntu. 09. Перезагрузите Ssh-сервер

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

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

Для создать пару открытых ключей необходимо сначала запустить на локальном компьютере следующую команду:

ssh-keygen

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

Советы по обеспечению безопасности сервера Ubuntu. 10. Сгенерируйте SSH-ключ

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

ssh-copy-id ramces@my.server.ip.address
Советы по безопасному серверу Ubuntu 11. Сервер копирования иден<h2><span id=2. Используйте пару открытых ключей для доступа по SSH выполнив следующую команду:

ssh ramces@my.server.ip.address

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

sudo nano /etc/ssh/sshd_config

Найдите переменную PasswordAuthenticationи измените ее значение с «да» на «нет».

Советы по обеспечению безопасности сервера 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
Советы по обес<h2><span id=3. Укрепите брандмауэр вашего Linux-сервератус Ufw">

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

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

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

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

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

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

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

Советы по обеспечению безопасности сервера Ubuntu. 19. Работа нового пользователя

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

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

Советы по обеспечению безопасности сервера Ubuntu: 20. Make Menuconfig

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

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

Советы по обеспечению безопасности сервера Ubuntu 21 Страница руководства Sysctl

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

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

sudo sysctl kernel.kptr_restrict=2
sudo sysctl kernel.dmesg_restrict=1
sudo sysctl kernel.kexec_load_disabled=1
4. Создайте нового пользователя для каждой службы сервера Ubuntu: 22 настройки ядра Sysctl">

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор изображения: Unsplash . Все изменения и скриншоты Рамсеса Реда.

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

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

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

ПОХОЖИЕ СТАТЬИ

Популярные записи