Создатель SSH рассказал, как протокол получил порт 22
Разработчик сетевого протокола SSH Тату Илонен поделился историей его создания. В частности, он рассказал о том, как SSH получил порт 22.
На днях создатель протокола SSH Тату Илонен поделился историей его создания. Дальше идёт повествование с его слов.
Первую версию SSH я написал весной 1995 года. В то время широко использовались протоколы telnet и FTP. И я решил создать собственный протокол, который бы заменил используемые версии. У telnet был порт 23, у FTP — 21. Порт 22 как раз не был занят, и я подумал, что такой номер добавит авторитетности моему протоколу.
Процесс распределения портов в то время был достаточно прост. Интернет-пространство было намного меньше, интернет-бум ещё только начинался. Порты распределяла Администрация адресного пространства Интернет (IANA) в лице Джона Постела и Джойса К. Рейнольдса. 10 июля 1995 года я отправил туда e-mail с описанием преимуществ своего протокола и просьбой выделить для него порт 22. И на следующий день мне пришёл ответ с официальным закреплением порта 22 за SSH. 12 июля я отправил финальную бета-версию на тестирование в Технологический университет Хельсинки, отправил уведомления в рассылку cypherpunks@toad.com и ещё нескольким людям и сообществам.
Изменения порта SSH на сервере
SSH-сервера всё ещё по умолчанию работают на порту 22. Но бывают и исключения, например, для тестирования или запуска нескольких конфигураций на одном хосте. Иногда сервер может быть запущен и без root-привилегий, тогда он запускается на непривилегированном порту (например, порт с номером от 1024). Изменить номер порта можно через команду /etc/ssh/sshd_config . Он также может быть указан в опции -p для sshd.
Port 22 Details
freeSSHd 1.2 and earlier allows remote attackers to cause a denial of service (crash) via a SSH2_MSG_NEWKEYS packet to TCP port 22, which triggers a NULL pointer dereference.
References: [CVE-2008-0852] [BID-27845] [SECUNIA-29002]
The SSH service on Dell PowerConnect 3348 1.2.1.3, 3524p 2.0.0.48, and 5324 2.0.1.4 switches allows remote attackers to cause a denial of service (device reset) or possibly execute arbitrary code by sending many packets to TCP port 22.
References: [CVE-2013-3594], [XFDB-90595], [BID-65070]
RUCKUS could allow a remote attacker to bypass security restrictions. An unauthenticated remote attacker with network access to port 22 can tunnel random TCP traffic to other hosts on the network via Ruckus devices. A remote attacker could exploit this vulnerability to bypass security restrictions and gain unauthorized access to the vulnerable application.
References: [XFDB-84626]
360 Systems contains a default hard-coded password in the image server series. By logging into the device via TCP port 22, a remote attacker could gain root privileges on the system to modify or upload video to play immediately and affect the emergency broadcast system in the United States.
References: [XFDB-82650], [BID-58338], [CVE-2012-4702]
Improper checks for unusual or exceptional conditions in Brocade NetIron 05.8.00 and later releases up to and including 06.1.00, when the Management Module is continuously scanned on port 22, may allow attackers to cause a denial of service (crash and reload) of the management module.
References: [CVE-2016-8209], [XFDB-125665]
A privilege escalation vulnerability in the Secure Shell (SSH) subsystem in the StarOS operating system for Cisco ASR 5000 Series, ASR 5500 Series, ASR 5700 Series devices, and Cisco Virtualized Packet Core could allow an authenticated, remote attacker to gain unrestricted, root shell access. The vulnerability is due to missing input validation of parameters passed during SSH or SFTP login. An attacker could exploit this vulnerability by providing crafted user input to the SSH or SFTP command-line interface (CLI) during SSH or SFTP login. An exploit could allow an authenticated attacker to gain root privileges access on the router. Note: Only traffic directed to the affected system can be used to exploit this vulnerability. This vulnerability can be triggered via both IPv4 and IPv6 traffic. An established TCP connection toward port 22, the SSH default port, is needed to perform the attack. The attacker must have valid credentials to login to the system via SSH or SFTP. The following products have been confirmed to be vulnerable: Cisco ASR 5000/5500/5700 Series devices running StarOS after 17.7.0 and prior to 18.7.4, 19.5, and 20.2.3 with SSH configured are vulnerable. Cisco Virtualized Packet Core — Single Instance (VPC-SI) and Distributed Instance (VPC-DI) devices running StarOS prior to N4.2.7 (19.3.v7) and N4.7 (20.2.v0) with SSH configured are vulnerable. Cisco Bug IDs: CSCva65853.
References: [CVE-2017-3819], [BID-96913]
Including port 22 in the list of allowed FTP ports in Networking in Google Chrome prior to 65.0.3325.146 allowed a remote attacker to potentially enumerate internal host services via a crafted HTML page.
References: [CVE-2018-6082], [BID-103297]
A vulnerability has been identified in ROX II (All versions User Reviews/Comments:
Поиск TCP/UDP Портов
[trojan] InCommand. Remote Access / Keylogger / Steals passwords / Remote peeker / ICQ trojan / IRC trojan / FTP server. Works on Windows 95 and 98, together with ICQ. Uses Blade Runner source code. Uses plug-ins. Aliases: Backdoor.InCommand, BackDoor.DB, Trojan.Win32.InCommand, InCommander, Incomm
trojan
[trojan] Shaft. Distributed DoS tool / Steals passwords. Works on Unix.
threat
[threat] Shaft
Порт: 22/UDP
22/UDP — Известные назначения портa (2 зап. найдено)
The Secure Shell (SSH) Protocol
threat
[threat] pcAnywhere(Used in older versions, though newer version still use it for backwards compatibility.)
О TCP/UDP-портах
TCP-порт 22 использует протокол управления передачей данных (TCP), который является одним из основных протоколов в сетях TCP/IP. TCP является протоколом с установлением соединения и требует квитирования для установки сквозной связи. Только после установления соединения пользовательские данные могут пересылаться в обоих направлениях.
Внимание! TCP гарантирует доставку пакетов данных через порт 22 в том же порядке, в котором они были отправлены. Гарантированная связь через TCP-порт 22 является основным отличием TCP от UDP.
Предоставляемые через UDP-порт 22 UDP услуги не отличаются надежностью, так как датаграммы могут быть получены в сдублированном виде, с нарушенной очередностью или даже могут пропасть без какого-либо предупреждения. UDP на порт 22 проверка и исправление ошибок не являются обязательными или должны выполняться в прикладной программе, что позволяет избежать накладных расходов на такую обработку на уровне сетевого интерфейса.
UDP (User Datagram Protocol) является минимальным ориентированным на работу с сообщениями протоколом транспортного уровня (протокол описан в IETF RFC 768). Примеры прикладных программ, часто использующих UDP: передача голоса по IP-протоколу (VoIP), передача мультимедийных потоков и многопользовательские игры в режиме реального времени. Множество веб-приложений используют UDP, к примеру, система доменных имен (DNS), информационный протокол маршрутизации (RIP), протокол динамической конфигурации хостов (DHCP), простой протокол управления сетью (SNMP).
TCP против UDP – TCP: надежный, упорядоченный, тяжеловесный, потоковый; UDP – ненадежный, неупорядоченный, легковесный, датаграммы.
Смена порта SSH-сервера как мера защиты от брутфорса
По умолчанию SSH-сервер открывает для входящих соединений 22 TCP-порт, и тем самым вызывает потенциальную угрозу bruteforce-атак, поскольку злоумышленник обнаружив на сервере такой открытый порт, пытается подобрать пароль к удалённому серверу при помощи специальных средств автоматизации.
В этой статье мы опишем, как сконфигурировать SSH-сервер на альтернативном порту.
Особо отметим, что не стоит воспринимать описанный здесь метод, как панацею. Китайская мудрость гласит — «Security by Obscurity is no Security at all». Не забывайте и про другие методы защиты SSH, такие как правильная настройка межсетевого экрана, разрешение доступа только ограниченному набору IP-адресов, отказ от парольной аутентификации и использование ключей RSA/DSA, и т.п.
Конфиг SSH-сервера обычно располагается в /etc/ssh/sshd_config. Для редактирования этого файла вам потребуются привилегии суперпользователя root, или возможность выполнить sudo для получения таких привилегий текстовым редактором.
Выполните команду, например:
nano /etc/ssh/sshd_config
В открывшемся файле найдите следующую строку:
Port 22
Закомментируйте её и добавьте новую строку со случайным номером порта, например 58291. Номер порта не должен превышать 65535. Также удостоверьтесь, что выбранное вами значение не конфликтует с другими сервисами в системе, например mysqld использует порт 3306, httpd — 80, ftpd — 21. Рекомендуем выбрать пятизначное значение.
На всякий случай, для просмотра уже открытых в системе портов, выполните следующую команду:
netstat -tupln | grep LISTEN
После модификации, участок файла конфигурации SSH должен выглядеть примерно так:
#Port 22 Port 58291
Что-бы SSH-сервер начал слушать новый порт вместо прежнего, его нужно перезапустить:
/etc/init.d/ssh restart
/etc/init.d/sshd restart
Соединение с SSH-сервером на альтернативном порту
Итак, теперь когда у нас есть SSH-сервер, слушающий альтернативный порт, как с ним соединяться? Если вы попытаетесь соединиться при помощи командной строки Linux, то по умолчанию SSH-клиент попытается использовать стандартный порт, и это приведёт к ошибке подключения:
ssh putty.org.ru ssh: connect to host putty.org.ru port 22: Connection refused
Вместо этого вы должны передать SSH-клиенту номер порта значением параметра -p , примерно так:
ssh -p 58291 putty.org.ru
Теперь соединение пройдёт успешно.
Если вы используете свободный SSH-клиент PuTTY, то укажите порт в настройках сессии, как показано на картинке: