Лучшие способы защитить ваш SSH-сервер

Oct 15, 2025
Конфиденциальность и безопасность
Эни Сетийовати / Shutterstock.com

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

Основы безопасности SSH

SSH означает Безопасная оболочка . Имя «SSH» используется как синонимы для обозначения самого протокола SSH или программных инструментов, которые позволяют системным администраторам и пользователям устанавливать безопасные соединения с удаленными компьютерами с использованием этого протокола.

Протокол SSH - это зашифрованный протокол, предназначенный для обеспечения безопасного соединения в незащищенной сети, такой как Интернет. SSH в Linux построен на портативной версии OpenSSH проект. Он реализован в классическая модель клиент-сервер , с SSH-сервером, принимающим соединения от SSH-клиентов. Клиент используется для подключения к серверу и для дисплей сеанс удаленному пользователю. Сервер принимает соединение и выполняет сессия.

В своей конфигурации по умолчанию SSH-сервер будет прослушивать входящие соединения по протоколу управления передачей ( TCP ) порт 22. Поскольку это стандартизированный, известный порт , это цель для субъекты угрозы а также вредоносные боты .

Злоумышленники запускают ботов, которые сканируют диапазон IP-адресов в поисках открытых портов. Затем порты проверяются на предмет наличия уязвимостей, которые можно использовать. Думать: «Я в безопасности, плохие парни могут целиться в большие и лучшие цели, чем я», - это ложные доводы. Боты не выбирают цели на основании каких-либо заслуг; они методично ищут системы, которые могут взломать.

Вы называете себя жертвой, если не обезопасили свою систему.

Трение безопасности

Нарушение безопасности - это раздражение - любой степени - которое пользователи и другие пользователи будут испытывать, когда вы реализуете меры безопасности. У нас долгие воспоминания, и мы можем вспомнить, как знакомили новых пользователей с компьютерной системой и слышали, как они с ужасом спрашивают, неужели они действительно пришлось ввести пароль каждый раз они вошли в систему на мэйнфрейме. Для них это было проблемой безопасности.

(Кстати, изобретение пароля приписывают Фернандо Х. Корбато , еще одна фигура в пантеоне компьютерных ученых, совместная работа которых способствовала обстоятельствам, которые привели к рождению Unix .)

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

Усиление и блокировка Linux или Unix-подобной операционной системы может стать очень сложной задачей, очень быстро. Здесь мы представляем набор простых в реализации шагов, которые повысят безопасность вашего компьютера без необходимости использования сторонних приложений и без рывков через ваш брандмауэр.

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

Использовать протокол SSH версии 2

В 2006 году протокол SSH был обновлен с версии 1 до версия 2 . Это был значительный апгрейд. Было внесено так много изменений и улучшений, особенно в отношении шифрования и безопасности, что версия 2 не имеет обратной совместимости с версией 1. Чтобы предотвратить подключения от клиентов версии 1, вы можете указать, что ваш компьютер будет принимать подключения только от клиентов версии 2.

Для этого отредактируйте / и т.д. / SSH / sshd_config файл. В этой статье мы будем часто этим заниматься. Всякий раз, когда вам нужно отредактировать этот файл, используйте следующую команду:

sudo gedit / etc / ssh / sshd_config

Добавьте строку:

Протокол 2

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

sudo systemctl перезапустить sshd

Давайте проверим, что наши новые настройки действуют. Мы переключимся на другую машину и попробуем использовать SSH на нашей тестовой машине. И мы будем использовать -1 (протокол 1) вариант для принудительного ssh команда для использования протокола версии 1.

ssh -1 [email protected]

Отлично, наш запрос на подключение отклонен. Убедимся, что мы все еще можем подключиться к протоколу 2. Мы будем использовать -2 (протокол 2) вариант доказательства факта.

ssh -2 [email protected]

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

ssh [email protected]

И наша связь принята. Таким образом, отклоняются только более слабые и менее безопасные соединения по протоколу 1.

Избегайте порта 22

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

Чтобы настроить нестандартный порт, отредактируйте файл конфигурации SSH:

sudo gedit / etc / ssh / sshd_config

Удалите хэш-код в начале строки «Порт» и замените «22» номером порта по вашему выбору. Сохраните файл конфигурации и перезапустите демон SSH:

sudo systemctl перезапустить sshd

Посмотрим, какой эффект это произвело. На другом компьютере мы будем использовать ssh команда для подключения к нашему серверу. В ssh команда по умолчанию использует порт 22:

ssh [email protected]

В нашем соединении отказано. Давайте попробуем еще раз и укажем порт 470, используя параметр -p (порт):

ssh -p 479 [email protected]

Наше соединение принято.

Фильтрация соединений с использованием TCP-оболочек

TCP Wrappers легко понять список контроля доступа . Он позволяет исключать и разрешать подключения на основе характеристик запроса на подключение, таких как IP-адрес или имя хоста. Оболочки TCP следует использовать вместе с правильно настроенным межсетевым экраном, а не вместо него. В нашем конкретном сценарии мы можем значительно упростить ситуацию, используя TCP-оболочки.

Оболочки TCP уже были установлены на машине Ubuntu 18.04 LTS, использованной для исследования этой статьи. Его нужно было установить на Manjaro 18.10 и Fedora 30.

Для установки в Fedora используйте эту команду:

sudo yum установить tcp_wrappers

Для установки на Manjaro используйте эту команду:

судо пасман -Сю тцп-врапперс

Здесь задействованы два файла. Один содержит разрешенный список, а другой - запрещенный. Отредактируйте список запретов, используя:

sudo gedit /etc/hosts.deny

Это откроет gedit редактор с загруженным в него файлом deny.

Вам нужно добавить строку:

ВСЕ: ВСЕ

И сохраните файл. Это блокирует любой доступ, который не был авторизован. Теперь нам нужно авторизовать соединения, которые вы хотите принять. Для этого вам нужно отредактировать разрешающий файл:

sudo gedit /etc/hosts.allow

Это откроет gedit редактор с загруженным в него файлом allow.

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

Сначала мы попробуем подключиться с компьютера, которого нет в hosts.allow файл:

В соединении отказано. Теперь попробуем подключиться с машины по IP-адресу 192.168.4.23:

Наше соединение принято.

Наш пример здесь немного жесток - только один компьютер может подключиться. Оболочки TCP довольно универсальны и более гибки, чем эта. Он поддерживает имена хостов, подстановочные знаки и маски подсети принимать соединения из диапазонов IP-адресов. Вам предлагается проверьте страницу руководства .

Отклонять запросы на подключение без паролей

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

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

Нам нужно отредактировать ваш файл конфигурации SSH:

sudo gedit / etc / ssh / sshd_config

Прокрутите файл до тех пор, пока не увидите строку с «#PermitEmptyPasswords no.» Удалите хеш # с начала строки и сохраните файл. Перезапустите демон SSH:

sudo systemctl перезапустить sshd

Используйте SSH-ключи вместо паролей

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

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

Ключи SSH позволяют устанавливать соединения без пароля, что, как это ни парадоксально, более безопасно, чем соединения, использующие аутентификацию по паролю.

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

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

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

ssh [email protected]

Ключи SSH заслуживают отдельной статьи. К счастью, у нас есть для вас. Вот как создать и установить ключи SSH .

СВЯЗАННЫЕ С: Как создать и установить ключи SSH из оболочки Linux

Отключить аутентификацию по паролю полностью

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

Нам нужно отредактировать ваш файл конфигурации SSH:

sudo gedit / etc / ssh / sshd_config

Прокрутите файл до тех пор, пока не увидите строку, начинающуюся с «#PasswordAuthentication yes». Удалите хеш # с начала строки измените «да» на «нет» и сохраните файл. Перезапустите демон SSH:

sudo systemctl перезапустить sshd

Отключить пересылку X11

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

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

sudo gedit / etc / ssh / sshd_config

Прокрутите файл до тех пор, пока не увидите строку, начинающуюся с «# X11Forwarding no.» Удалите хеш # с начала строки и сохраните файл. Перезапустите демон SSH:

sudo systemctl перезапустить sshd

Установите значение тайм-аута простоя

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

Намного безопаснее установить лимит тайм-аута. Соединение SSH будет прервано, если неактивный период совпадет с лимитом времени. Мы еще раз отредактируем ваш файл конфигурации SSH:

sudo gedit / etc / ssh / sshd_config

Прокрутите файл до тех пор, пока не увидите строку, начинающуюся с «#ClientAliveInterval 0». Удалите хеш # с начала строки измените цифру 0 на желаемое значение. Мы использовали 300 секунд, что составляет 5 минут. Сохраните файл и перезапустите демон SSH:

sudo systemctl перезапустить sshd

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

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

Опять же, нам нужно отредактировать файл конфигурации SSH:

sudo gedit / etc / ssh / sshd_config

Прокрутите файл до тех пор, пока не увидите строку, начинающуюся с «#MaxAuthTries 0». Удалите хеш # с начала строки измените цифру 0 на желаемое значение. Мы использовали 3 здесь. После внесения изменений сохраните файл и перезапустите демон SSH:

sudo systemctl перезапустить sshd

Мы можем проверить это, попытавшись подключиться и намеренно введя неверный пароль.

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

Отключить вход в систему с правами root

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

В последний раз нам придется отредактировать ваш файл конфигурации SSH:

sudo gedit / etc / ssh / sshd_config

Прокрутите файл до тех пор, пока не увидите строку, начинающуюся с «#PermitRootLogin prohibit-password» Удалите хеш # с начала строки.

  • Если вы хотите запретить пользователю root вход в систему, замените «prohibit-password» на «no».
  • Если вы собираетесь разрешить пользователю root входить в систему, но заставить их использовать SSH-ключи, оставьте «prohibit-password» на месте.

Сохраните изменения и перезапустите демон SSH:

sudo systemctl перезапустить sshd

Последний шаг

Конечно, если вам вообще не нужен SSH на вашем компьютере, убедитесь, что он отключен.

sudo systemctl остановить sshd
sudo systemctl отключить sshd

Если вы не откроете окно, никто не сможет влезть.

The Best Ways To Secure Your SSH Server

How To Secure Linux SSH Server

How To Secure And Protect SSH Server

How To Secure A Server

Fail2ban Tutorial | How To Secure Your Server

How To Secure A Linux Server With UFW, SSH Keygen, Fail2ban & Two Factor Authentication

🔒 Securing SSH Server: Configuration

Beginners Guide To SSH


Конфиденциальность и безопасность - Самые популярные статьи

Как очистить историю поиска Bing

Конфиденциальность и безопасность Jul 4, 2025

Bing хранит и использует вашу историю поиска, чтобы персонализировать ваши результаты. И очистка ист..


В чем разница между синхронизацией файлов в облаке и резервным копированием в облаке?

Конфиденциальность и безопасность Mar 19, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Не все службы облачного хранения файлов одинаковы. Существует большая ра�..


10+ полезных системных инструментов, скрытых в Windows

Конфиденциальность и безопасность Jul 24, 2025

Windows содержит множество полезных, но хорошо скрытых системных утилит. Некоторые из них скрыты глуб�..


Как удалить свою учетную запись Snapchat

Конфиденциальность и безопасность May 11, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Как и во всех социальных сетях, иногда люди хотят отдохнуть от Snapchat. Вы мож..


Запретить Windows запрашивать пароль при выходе из спящего режима / режима ожидания

Конфиденциальность и безопасность Jul 11, 2025

СВЯЗАННЫЕ С: Сделать автоматический вход в Windows 7, 8.x или Vista Если ты ..


Как удалить устройство из учетной записи Microsoft

Конфиденциальность и безопасность Apr 14, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Когда вы входите в Windows 8 или 10, используя свою учетную запись Microsoft (и �..


Как удалить неиспользуемые части обрезанных снимков экрана в документах Microsoft Office?

Конфиденциальность и безопасность Jul 11, 2025

Когда вы добавляете снимок экрана в документ Microsoft Office и обрезаете его, вы, скорее всего, больше не д..


Важно: как сканировать и удалять вредоносные вирусы

Конфиденциальность и безопасность Jul 23, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Время от времени мы слышим о новом ужасном вирусе, который распространяется по ..


Категории