Несколько способов защитить SSH порт

Несколько способов защитить SSH порт

Этичный Хакер

Secure Shell (SSH) определяется как сетевой протокол для безопасной работы сетевых служб в незащищенной сети. Стандартный TCP-порт для SSH - 22. Лучшее применение SSH-это удаленный вход пользователей в компьютерные системы.

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

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

Используемые Методы:

  1. Переадресация Портов
  2. Отключите вход на основе пароля и использование PGP-ключа (открытого ключа)
  3. Отключите корневой логин и ограничьте доступ пользователя SSH
  4. Google Authenticator
  5. Планирование Времени
  6. Отключить Пустые Пароли

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

sudo apt-get install openssh-server

Перенаправление Портов

Как только SSH-сервисы настроены и запущены, мы можем начать с нашей первой меры безопасности, которая является переадресацией портов. При инициализации сканирования на IP-адресе компьютера клиента с помощью nmap он показывает, что SSH работает на Порту 22.

Перейдите в файл /etc / ssh, и мы найдем файл с именем sshd_config на машине клиента.

cd /etc/ssh

Откройте файл sshd_config с помощью команды nano.

Теперь измените порт 22 на порт 2222, как показано на приведенном ниже скриншоте, и сохраните изменения, внесенные в файл sshd_config. Таким образом, мы переадресовали порт с 22 на 2222.

Теперь, чтобы подтвердить переадресацию портов, мы снова сканируем IP-адрес клиента с помощью nmap

nmap 192.168.1.104

Выходные данные nmap показывают, что TCP-порт 2222 открыт; однако в описании службы отображается EthernetIP-1, который не дает точного описания запущенной службы. Поэтому мы запустим следующую команду nmap с опцией определения версии

nmap -sV 192.168.1.104

При следующем выводе nmap ясно видно, что SSH-сервисы работают на TCP-порту 2222 вместе с описанием версии OpenSSH.

Безопасность С Помощью Открытого Ключа

Чтобы начать с этой меры безопасности, нам нужно скачать и установить генератор ключей PuTTY.

Примечание: PuTTYgen - это инструмент генератора ключей для создания SSH-ключей для PuTTY и хранения ключей в своем собственном формате (расширение. ppk)

Откройте его и нажмите кнопку Создать.

Нажатие на кнопку Generate инициирует процесс генерации открытого и закрытого ключей, как показано на рисунке.

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

Теперь откройте терминал Ubuntu нашего сервера и введите ssh-keygen.

Приведенная выше команда создаст папку с именем. ssh, а затем создаст пустой текстовый файл с именем authorized_keys в той же папке. после этого скопируйте файл “ssh_login.ppk”, который был создан ранее с помощью генератора ключей PuTTy, и вставьте его в папку .ssh, как показано на рисунке.

В терминале перейдите в папку. ssh и введите следующую команду:

puttygen -L " ssh_login.ppk"

Эта команда откроет ключ.

Теперь скопируйте этот ключ и вставьте его в пустой файл с именем authorized_keys с помощью команды nano и сохраните его.


Теперь откройте вкладку Putty Configuration, затем перейдите на вкладку Session и укажите IP-адрес и номер порта Вашей клиентской машины, если ssh-сервер настроен.

Теперь перейдите к данным и введите имя пользователя для автоматического входа в систему.

Перейдите к SSH>Auth> и укажите путь к файлу ssh_login.ppk (открытый ключ, который был сгенерирован ранее), а затем нажмите кнопку Открыть.

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

Откройте файл sshd_config в файле /etc / ssh с помощью команды gedit. Здесь мы внесем изменения в строку # PasswordAuthentication, как показано на рисунке.

Текущая конфигурация

#PasswordAuthentication yes

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

PasswordAuthentication no

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

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

Для начала эту меру безопасности вам нужно сделать несколько новых пользователей с помощью команды adduser (новые пользователи, которые мы создали: h1,h2,h3, h4), а затем внести изменения в файл sshd_config в /etc/ssh с помощью команды gedit. Введите следующие строки в поле # аутентификация:

#No root login allowed (h2 может войти в систему как sudo-s)

PermitRootLogin нет

## разрешить только 1 пользователю h2 (sysadmin)

AllowUsers h2

Не забудьте сохранить внесенные изменения. Это отключит вход в систему Root и позволит единственному пользователю h2 удаленно войти в SSH-сервер.

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

Google Authenticator

Чтобы начать с двухфакторной аутентификации через SSH-сервер, вам необходимо загрузить приложение Google Authenticator на свой телефон, а также установить необходимый пакет зависимостей для Ubuntu с помощью следующей команды:

sudo apt-get install libpam-google-authenticator

Примечание-установка Google Authenticator будет как задать пару вопросов, так и дать утвердительный ответ на каждый заданный вопрос.

После завершения установки. Откройте терминал и введите команду:

google-authenticator

Мы увидим штрих-код. Сканируйте его с помощью приложения Google Authenticator на вашем телефоне.

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

Теперь откройте файл sshd в файле /etc/pam. d с помощью команды gedit и внесите следующие изменения:

  1. Добавить # в @include common-auth
  2. Добавить строку (требуется auth pam_google_authenticator.Итак) под @include common-password

Как показано на рисунке.


Теперь откройте файл sshd_config в файле /etc / ssh с помощью команды gedit и внесите следующие изменения.

ChallengeResponseAuthentication да


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


Планирование Времени

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

Cron-это встроенный сервис Linux для планирования задач, который позволяет заданию (команде или скрипту) на сервере автоматически выполняться в течение указанного времени и даты.

Здесь мы планируем использовать SSH сервисы с помощью crontab

Мы открыли crontab в /etc с помощью команды nano. Теперь давайте запланируем ssh-сервис таким образом, чтобы он запускался на каждую 2-ю минуту и останавливался после каждой 4-й минуты. Команда, используемая для планирования Службы SSH, приведена ниже:

*/2 * * * * root service ssh start
*/4 * * * * root service ssh stop

Сохраните изменения, внесенные в файл.

Дождитесь перезагрузки службы. Используя nmap, мы имеем сканирующий порт 22.

nmap -p 22 192.168.1.104

После запуска сканирования мы увидим, что ssh-сервис на порту 22 закрыт, потому что это 4-я минута, которая началась.

Теперь, если наша команда работает правильно, она должна запускаться сама по себе каждые 2 минуты, чтобы подтвердить это, мы снова инициируем сканирование с помощью nmap.

nmap -p 22 192.168.1.104

Как мы видим, сейчас порт находится в открытом состоянии.

Отключить Пустой Пароль

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

PermitEmptyPasswords Нет

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



Report Page