Как защитить SSH-сервер

Как защитить SSH-сервер

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

Некоторые основы безопасности SSH

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

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

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

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

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

Проблемы безопасности

Точка разногласий в безопасности — это любая ситуация, когда выполнение основной задачи предотвращается или задерживается из-за требований безопасности.

Проблемы с безопасностью вызывают дискомфорт (на любом уровне) для пользователей и других лиц при реализации мер безопасности. Люди, плохо знакомые с компьютерными системами, могут беспокоиться о том, действительно ли им придется вводить пароль каждый раз, когда они входят в мэйнфрейм. Для них это также форма разногласий по поводу безопасности.

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

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

Используйте протокол SSH версии 2.

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

Для этого отредактируйте файл /etc/ssh/sshd_config с помощью следующей команды:

sudo gedit /etc/ssh/sshd_config

Как защитить SSH-сервер

Добавьте следующую строку:

Protocol 2

Как защитить SSH-сервер

Сохраните файл, а затем перезапустите процесс демона SSH, используя следующую команду:

sudo systemctl restart sshd

Как защитить SSH-сервер

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

ssh -1 dave@howtogeek.local

Как защитить SSH-сервер

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

ssh -2 dave@howtogeek.local

Как защитить SSH-сервер

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

ssh dave@howtogeek.local

Как защитить SSH-сервер

Соединение принято.

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

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

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

Как защитить SSH-сервер

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

На другом компьютере мы будем использовать команду ssh для подключения к серверу. Команда ssh по умолчанию использует порт 22:

ssh dave@howtogeek.local

Как защитить SSH-сервер

В соединении отказано. Попробуйте еще раз и укажите порт 470, используя опцию –p (порт):

ssh -p 479 dave@howtogeek.local

Как защитить SSH-сервер

Соединение подтверждено.

Подключите фильтр с помощью TCP Wrappers

TCP Wrappers — это простой для понимания список контроля доступа. Он позволяет запрещать и разрешать соединения на основе характеристик запроса на соединение, таких как IP-адрес или имя хоста. TCP Wrappers следует использовать вместе с правильно настроенным брандмауэром, а не вместо него.

TCP Wrappers предустановлен на компьютерах с Ubuntu 18.04 LTS . Он должен быть установлен на Manjaro 18.10 и Fedora 30.

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

sudo yum install tcp_wrappers

Как защитить SSH-сервер

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

sudo pacman -Syu tcp-wrappers

Как защитить SSH-сервер

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

sudo gedit /etc/hosts.deny

Как защитить SSH-сервер

Приведенная выше команда откроет редактор gedit, в котором файл отказывается загружаться.

Как защитить SSH-сервер

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

ALL : ALL

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

sudo gedit /etc/hosts.allow

Как защитить SSH-сервер

Приведенная выше команда откроет редактор gedit с загружаемым файлом.

Как защитить SSH-сервер

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

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

Как защитить SSH-сервер

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

Как защитить SSH-сервер

Соединение принято.

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

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

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

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

Вам необходимо отредактировать файл конфигурации SSH.

Как защитить SSH-сервер

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

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

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

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

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

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

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

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

ssh dave@192.168.4.11

Как защитить SSH-сервер

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

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

Как защитить SSH-сервер

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

Отключить переадресацию X11

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

Как защитить SSH-сервер

Прокрутите файл вниз, пока не увидите строку #X11Forwarding no , удалите # в начале строки и сохраните файл. Перезапустите демон SSH.

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

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

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

Как защитить SSH-сервер

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

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

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

Как защитить SSH-сервер

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

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

Как защитить SSH-сервер

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

Отключить root-вход

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

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

Как защитить SSH-сервер

Прокрутите файл вниз, пока не увидите строку, начинающуюся с #PermitRootLogin, запретить-пароль , удалите # в начале строки.

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

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

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

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

sudo systemctl stop sshd
sudo systemctl disable sshd

Желаю вам успехов!


Как очистить и сбросить кеш Microsoft Store в Windows 10

Как очистить и сбросить кеш Microsoft Store в Windows 10

Если у вас возникли проблемы с установкой или обновлением приложения «Магазин» в Windows 10, это может быть связано с проблемой с кешем магазина. Узнайте как <strong>очистить кеш магазина Microsoft</strong> для вашей учетной записи в Windows 10.

Топ-10 лучших бесплатных программ-кейлоггеров для Windows

Топ-10 лучших бесплатных программ-кейлоггеров для Windows

Кейлоггер - это программное обеспечение для захвата и сбора информации о нажатиях клавиш. Узнайте о лучших бесплатных кейлоггерах для Windows. Как защитить свои данные!

Как всегда запускать Microsoft Edge в режиме InPrivate в Windows 10

Как всегда запускать Microsoft Edge в режиме InPrivate в Windows 10

Если вы используете Microsoft Edge на общем компьютере с Windows 10 и хотите сохранить конфиденциальность своей истории просмотров, узнайте, как настроить Edge для запуска в режиме InPrivate.

8 способов открыть MSConfig в Windows 11

8 способов открыть MSConfig в Windows 11

Вы можете решить многие проблемы, возникающие в Windows 11, с помощью настройки системы. Например, если игра не запускается, открытие и изменение настроек MSConfig может решить проблему.

Инструкция по настройке и использованию VPNBook на Windows

Инструкция по настройке и использованию VPNBook на Windows

VPNBook — бесплатный провайдер VPN с неограниченной пропускной способностью, идеален для доступа к заблокированным сайтам. Узнайте, как настроить VPN на Windows за считанные минуты.

Включить/отключить функцию встроенного автозаполнения в проводнике и диалоговом окне «Выполнить» в Windows 10.

Включить/отключить функцию встроенного автозаполнения в проводнике и диалоговом окне «Выполнить» в Windows 10.

Узнайте, как включить или отключить встроенное автозаполнение в адресной строке проводника и диалоговом окне «Выполнить» в Windows 10. Следуйте нашим простым шагам!

6 способов получить доступ к меню параметров загрузки в Windows 10

6 способов получить доступ к меню параметров загрузки в Windows 10

Windows 10 предоставляет <strong>меню параметров загрузки</strong>, позволяющее исправлять проблемы и перенастраивать систему. Узнайте, как получить доступ к этому меню.

Как запустить любое приложение с помощью кнопки «Удобство доступа» на экране входа в Windows 10

Как запустить любое приложение с помощью кнопки «Удобство доступа» на экране входа в Windows 10

Кнопка «Удобство доступа» на экране входа в Windows 10 дает возможность пользователям запускать приложения, такие как диспетчер задач и командную строку, для улучшения доступа и функциональности.

Как изменить веб-камеру по умолчанию на компьютере с Windows 10

Как изменить веб-камеру по умолчанию на компьютере с Windows 10

Эта статья поможет вам настроить переключение между веб-камерами на компьютере с Windows 10. Убедитесь, что у вас по умолчанию установлена нужная веб-камера.

9 способов открыть Блокнот в Windows 11

9 способов открыть Блокнот в Windows 11

Узнайте, как быстро и удобно открыть Блокнот в Windows 11 различными способами. Bлокнот — это незаменимое текстовое приложение, которое всегда под рукой.