Я новичок в облачных вычислениях и планирую использовать всегда бесплатную вычислительную службу от Oracle Cloud, чтобы получить общедоступный IP-адрес для запуска веб-сайта. В качестве базовой меры безопасности я требую, чтобы мои машины не прослушивали SSH на порту 22 по умолчанию, так как его слишком легко перехватить, а переключили его на новый порт, который я буду держать в секрете, но буду называть его NEWSSHPORT. Это особенно важно при использовании общедоступного IP-адреса.
Моя проблема заключается в том, что после того, как я подключаюсь к машине по ssh, я проверяю, что брандмауэр (по умолчанию) отключен и поэтому пропускает весь трафик, а мой предпочтительный порт NEWSSHPORT не используется какой-либо другой службой. Я переключаю порт прослушивания на новый порт, перезагружаю службу ssh, проверяю, что у меня есть правило входа, разрешающее этот трафик на веб-сайте облака оракула для моей подсети.
Я пытаюсь использовать ssh, используя новый порт, и время ожидания истекает, как и для любого другого порта. Вместо этого порт 22 по умолчанию дает отказ в соединении.
Этот вопрос похож на, но не то же самое, что:
изменение порта ssh вызвало отказ в подключении
Что мне не хватает?
Создайте вычислительный экземпляр:
Размещение по умолчанию
Изображение: Canonical Ubuntu 18.04
Форма: VM.Standard.A1.Flex 4-ядерный OCPU, 24 ГБ памяти
Сеть по умолчанию
Сохраните закрытый ssh-ключ
Объем книги по умолчанию
Создайте экземпляр
Подождите, пока он будет предоставлен
Скопируйте его общедоступный IP-адрес: 1.2.3.4.
SSH на порт 22 по умолчанию
ssh -i C:\path\to\saved\key\ssh-key-2021-12-14.key -p 22 [email protected]
Новый отпечаток пальца ECDSA. Сохрани это? Да
SSH прошел успешно.
На машине:
Проверить брандмауэр
$ статус sudo ufw
неактивен (это означает, что весь трафик разрешен)
Проверьте, какие порты уже используются:
UDP *:111
UDP *:932
TCP *:111 (СЛУШАТЬ)
UDP *:111
UDP *:932
TCP *:111 (СЛУШАТЬ)
УДП: 68
УДП: 53
УДП: 53
UDP: 53 (СЛУШАТЬ)
TCP :22 (СЛУШАТЬ)
TCP :22 (СЛУШАТЬ)
:22 -> mypc:myport (мое соединение ssh)
Мой предпочтительный порт для прослушивания SSH открыт/не используется другой программой.
Измените порт прослушивания ssh. и установите предпочтительное целое число порта.Я собираюсь сохранить это целое число в секрете из соображений безопасности, но я буду представлять его число строкой: NEWSSHPORT.
$ судо-ви /etc/ssh/sshd_config
Порт NEWSSHPORT
перезапустить службу ssh
$ sudo systemctl перезапустить sshd
проверьте, что ssh теперь прослушивает этот новый NEWSSHPORT:
$ судо lsof -i -P -n
сейчас такие есть:
sshd root IPv4 TCP *:NEWSSHPORT (СЛУШАТЬ)
sshd root IPv6 TCP *:NEWSSHPORT (СЛУШАТЬ)
дважды проверьте, что брандмауэр все еще не в сети:
$ статус sudo ufw
Статус: неактивен
Итак, подтверждено, что брандмауэр не включен, поэтому все разрешено.
Подтверждено, что ssh теперь прослушивает новый порт: NEWSSHPORT как на IPv4, так и на IPv6 для TCP-трафика.
выйти из машины:
$ выход
Убедитесь, что ваша облачная подсеть Oracle разрешает трафик через ваш новый порт:
Перейдите к вычислительному экземпляру > вкладка «Информация об экземпляре» > «Основной VNIC» > щелкните ссылку подсети, чтобы просмотреть ее подсеть.
Список безопасности > Список безопасности по умолчанию. нажмите здесь.
Убедитесь, что NEWSSHPORT имеет правило входа для IP 0.0.0.0/0, которое представляет собой нотацию CIDR для всех возможных IP-адресов. МОЕ текущее правило входа:
Без гражданства: Нет, Источник: 0.0.0.0/0 Диапазон портов источника TCP: Все, Диапазон портов назначения: NEWSSHPORT, Тип и код: Я оставил пустым.
Итак, трафик на вашем новом порту должен быть разрешен.
Момент истины:
ssh -i C:\path\to\saved\key\ssh-key-2021-12-14.key -p NEWSSHPORT [email protected]
ssh: подключение к порту хоста 1.2.3.4 NEWSSHPORT: время ожидания подключения истекло
но когда я пробую оригинальный порт 22:
ssh -i C:\path\to\saved\key\ssh-key-2021-12-14.key -p 22 [email protected]
ssh: подключиться к хосту 152.70.195.101, порт 22: соединение отклонено
и если я попробую какой-нибудь случайный порт, который ничего не прослушивает, и у меня нет правила подсети Oracle, которое можно было бы разрешить:
ssh -i C:\path\to\saved\key\ssh-key-2021-12-14.key -p 3456 [email protected]
ssh: подключиться к хосту 1.2.3.4, порт 3456: время ожидания подключения истекло
Вывод: похоже, что первоначальный трафик на порт 22, безусловно, проходит, но машина отклоняет его.Это правильный ответ, но при попытке использовать любой другой порт кажется, что трафик блокируется или отбрасывается где-то на пути к моей машине.
Что я делаю не так?