Назад | Перейти на главную страницу

как сделать стандартный порт ssh скрытым портом?

Я использую персональный ssh-сервер на нестандартном порту. Если кто-то пытается войти в мой ssh-сервер через стандартный порт 22, кажется, что сервер отправляет сообщение «Соединение отклонено».

$ ssh localhost
ssh: connect to host localhost port 22: Connection refused

Как я могу сделать так, чтобы он не отправлял такое сообщение и вел себя так, как будто он не работает?

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

Сервер ничего не отправляет, это клиент сообщая вам, что сервер отказал в соединении. Это ожидаемое поведение, если порт TCP закрыто при попытке подключиться.

Если вы хотите, чтобы ваша система автоматически отбрасывала пакеты, не отправляя TCP-ответ «этот порт закрыт» (так называемый скрытность порт), вам необходимо использовать брандмауэр в системе и / или между ним и клиентом.

Сетевой стек сервера отправляет пакеты в ответ на попытку TCP-соединения клиента.

Когда клиентская программа отправляет TCP SYN пакет для запроса соединения, ответный пакет с Установлены флаги ACK и RST, согласно проверке перехваченных пакетов, классифицируется как ошибка отказа в соединении. Никакая служба не прослушивает порт, и порт закрыт.

  • Если вам нужен «скрытый» порт, я предлагаю ничего не делать, так как это ожидаемое поведение закрытого порта без каких-либо услуг.
  • если вы сбросите пакеты на этот порт, у вас будет "фильтрованный" порт при сканировании nmap, заставляя злоумышленника думать, что служба прослушивает, а брандмауэр запрещает ему доступ
  • кроме того, DROP не является "вежливый target ", так как он делает сеть недоступной для клиентов. DROP следует использовать с осторожностью.

  • если вы действительно хотите, чтобы порт был хорошим нападающим противником, вас может заинтересовать модуль tarpit iptables

  • если вы хотите дезориентировать атакующего, вы можете присоединиться к цели REJECT и поиграть с экзотической комбинацией Коды ошибок ICMP и --reject-type:

ОТКАЗАТЬ
--reject-with type
Данный тип может быть
icmp-net-недоступен
icmp-host-unreachable
icmp-порт-недоступен
icmp-proto-unreachable
icmp-net-запрещено
icmp-host -hibited или
icmp-admin-запрещено

То, что вы видите, скорее всего, является реакцией вашего клиента на ICMP порт недоступен отправляется сервером при получении первого SYN-пакета TCP для порта, который не принимает соединения. Это правильное поведение, позволяющее клиенту быстро сообщить вам об этом.

Если вы действительно имеете в виду скрытность, например, «этот хост не существует, мертв или отключен и вообще ничего не отправляет», настройте свой брандмауэр так, чтобы он отбрасывал (а не отклонял) любые пакеты на этот порт. Предполагая, что netfilter / iptables:

iptables -I INPUT -p tcp --dport 22 -j DROP

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

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

Вы можете полностью скрыть свой ssh порт с fwknop в сочетании с установкой политики запрета по умолчанию в iptables незаметно отбрасывать пакеты. Все nmap Увидим государственные услуги.

С участием fwknop развернутый, любой, кто использует nmap для поиска SSHD, не может даже сказать, что он прослушивает - не имеет значения, хотят ли они запустить взломщик паролей на SSHD или даже если у них есть эксплойт нулевого дня.

Смотри мой руководство для fwknop и сопутствующие страницы для безопасного ssh шифры.