Несколько способов защитить SSH порт
Этичный Хакер
Secure Shell (SSH) определяется как сетевой протокол для безопасной работы сетевых служб в незащищенной сети. Стандартный TCP-порт для SSH - 22. Лучшее применение SSH-это удаленный вход пользователей в компьютерные системы.
Мы не призываем вас к каким-либо действиям, статья написана исключительно в ознакомительных целях, чтобы уберечь читателя от противоправных действий.
В этой статье будет рассказано о сетевых ценных бумагах, которые помогают сетевому администратору обеспечить безопасность службы SSH на любом сервере несколькими способами.
Используемые Методы:
- Переадресация Портов
- Отключите вход на основе пароля и использование PGP-ключа (открытого ключа)
- Отключите корневой логин и ограничьте доступ пользователя SSH
- Google Authenticator
- Планирование Времени
- Отключить Пустые Пароли
Прежде чем двигаться дальше, Давайте сначала установим 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 и внесите следующие изменения:
- Добавить # в @include common-auth
- Добавить строку (требуется 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-сервер.
