Как открыть порт 22 для ssh
Перейти к содержимому

Как открыть порт 22 для ssh

  • автор:

Как открыть ssh-порт 22 в Ubuntu 22.04 Jammy Jellyfish Linux

Протокол SSH по умолчанию работает на порту 22. Чтобы принимать входящие соединения на вашем SSH-сервере, вам необходимо убедиться, что порт 22 разрешен через брандмауэр.

В этом уроке вы узнаете, как открыть порт 22 SSH в Ubuntu 22.04 Jammy Jellyfish. Единственным обязательным условием является то, что у вас уже должен быть установлен SSH. Если вы еще не установили его, ознакомьтесь с нашим руководством по установке SSH-сервера в Ubuntu 22.04.

В этом уроке вы узнаете:

  • Как открыть ssh порт 22
  • Как удалить правило брандмауэра порта SSH

Откройте ssh-порт 22 в Ubuntu 22.04 Jammy Jellyfish Linux, пошаговые инструкции

  1. Начните с открытия терминала командной строки и ввода следующей команды, чтобы проверить состояние вашего брандмауэра. Ubuntu по умолчанию использует ufw (несложный брандмауэр), и он уже должен быть установлен.
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
$ sudo ufw allow ssh

В качестве альтернативы можно разрешить подключение через SSH-порт 22 только определенному IP-адресу или подсети. В приведенном ниже примере IP-адрес 192.168.1.2 будет разрешен для подключения через порт 22:

$ sudo ufw allow from 192.168.1.2 to any port ssh

В этом примере, чтобы разрешить выполнение всей подсети 192.168.0.0/16 :

$ sudo ufw allow from 192.168.0.0/16 to any port ssh
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6)
$ sudo ufw delete allow ssh $ sudo ufw delete allow from 192.168.1.2 to any port ssh $ sudo ufw delete allow from 192.168.0.0/16 to any port ssh

Заключительные мысли

В этом уроке вы узнали, как открыть порт 22 SSH в Ubuntu 22.04 Jammy Jellyfish Linux. Вы также увидели, как разрешить определенные IP-адреса или сети, не разрешая входящий SSH-трафик с любого хоста. Наконец, вы узнали, как удалить добавленные ранее правила брандмауэра на случай, если в будущем вам понадобится снова изменить настройки.

Все права защищены. © Linux-Console.net • 2019-2023

Как поменять (изменить) порт у SSH сервера

url image

SSH — сетевой протокол прикладного уровня. Он позволяет безопасно передавать сетевые пакеты. Его используют для удаленного подключения к операционной системе, передачи файлов (как копирование обычных файлов, так и потоковая передача данных, например, с веб-камеры), подключения к базам данных, удаленного запуска команд и т.д. Данный протокол шифрует все данные, включая пароли, поэтому он считается безопасным. Однако для того, чтобы злоумышленники не получили доступ к учётным данным пользователя, у которого есть доступ по SSH, рекомендуется обезопасить свой сервер. По умолчанию SSH слушает порт 22. В целях безопасности рекомендуется сменить порт SSH на нестандартный. Это значительно усложнит жизнь ботам, которые постоянно сканируют серверы и открытые порты и пытаются подобрать логин и пароль для доступа к серверу по SSH по стандартному порту. Помимо смены порта можно настроить блокировку количества попыток подключений к серверу (например, с помощью утилиты fail2ban), отключить подключение по SSH пользователя root, отказаться от простых и угадываемых логинов (таких как admin, ivanov, zabbix и пр.), настроить запрет подключения по паролю и включить подключение только по ключу (требуется предварительная настройка и проверка, иначе можно потерять доступ к серверу по SSH). Как правило для подключения по SSH в терминале Linux используется следующая команда:

# ssh username@ip_address

Если изменить порт, то при подключении к серверу по SSH нужно явно указывать порт (возьмем для примера порт 2233):

# ssh -p 2233 username@ip_address
  • Изменение порта SSH
    • 1. Конфигурационный файл
    • 2. Перезапуск SSH
    • 3. Проверка

    Изменение порта SSH

    Конфигурационный файл

    Обязательно проверьте, что порт, на который мы хотим заменить стандартный порт SSH, не занят другими службами. Это можно сделать с помощью утилиты netstat. Для этого потребуется установить пакет net-tools.

    Debian/Ubuntu

    # apt install net-tools # netstat -tulpan | grep 22

    CentOS/AlmaLinux

    # yum install net-tools # netstat -anp | grep 22

    Вывод будет примерно таким:

    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 132394/sshd: /: tcp6 0 0 . 22 . * LISTEN 132394/sshd:

    Видим, что порт 22 занят. Проверим 2233:

    #netstat -tulpan | grep 2233 для Ubuntu/Debian
    # netstat -anp | grep 2233 для CentOS/AlmaLinux

    Вывод пуст, можно занимать.

    Меняем порт в конфигурационном файле SSH сервера, воспользоваться можно любым текстовым редактором:

    # vim /etc/ssh/sshd_config
    # nano /etc/ssh/sshd_config
    Port 22

    Если строка начинается с символа #, его нужно удалить, и вместо 22 порта написать любой другой, например, 2233. Сохраняем изменения.

    Перезапуск SSH

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

    Debian/Ubuntu

    # systemctl restart ssh

    CentOS/AlmaLinux

    # systemctl restart sshd

    Так как текущая сессия SSH ещё активна, можно открыть новое окно и проверить, что подключение по новому порту работает:

    # ssh username@ip_address -p2233

    Если подключение удалось, то настройки верные. В противном случае что-то не так, и можно проверить конфигурацию в уже открытом подключении.

    Проверка

    Debian/Ubuntu

    # netstat -tulpan | grep ssh

    CentOS/AlmaLinux

    # netstat -anp | grep ssh

    Если все нормально, увидим похожий результат:

    tcp 0 0 *:2233 *:* LISTEN 3849/sshd tcp6 0 0 [::]:2233 [::]:* LISTEN 3849/sshd
    root sshd 813 3 tcp6 *:2233 *:* root sshd 813 4 tcp4 *:2233 *:*

    Готово. Мы сменили стандартный порт SSH на нестандартный, таким образом усилив безопасность своего сервера

    Как открыть 22 порт на Убунту?

    Добрый день,
    Не судите строго за вопрос, нет большого опыта с Убунту.
    Дано — после обновления Убунту до версии 20.04.1 c 16, а изначально с 14, не могу подключиться к серверу через 22 порт, до обновления все работало исправно. Подключился через веб консоль, что огранивает читаемость некоторых команд. Проверяю через
    Код sudo iptables — L выдает гору нечитаемой информации, в которой даже не могу найти 22 порт.
    Через sudo ufw allow ssh открыть не удалось, хотя sudo ufw status показывает ALLOW from Anywhere.
    Через sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT тоже открыть не удалось, ping.eu показывает, что 22 порт закрыт, и никак не получается его открыть. При подключении к серверу — Соединение прервано.
    sudo nmap localhost показывает, что открыт только 80 и 443 порты.
    Кто-то может дать совет, что делать?

    • Вопрос задан более двух лет назад
    • 11342 просмотра

    5 комментариев

    Простой 5 комментариев

    Статья Как открыть порт ssh с помощью ufw на Ubuntu/Debian Linux

    Как разрешить входящие соединения SSH с определенного IP-адреса или подсети на сервере Ubuntu или Debian Linux с помощью ufw?

    UFW является аббревиатурой для брандмауэра. Он используется для управления брандмауэром Linux и предназначен для обеспечения простого в использовании интерфейса для пользователя. В этом руководстве вы узнаете, как использовать UFW интерфейс для iptables для открытия входящего соединения SSH на сервере Ubuntu Linux 16.04 LTS или Debian Linux.

    1574782949741.png

    Рисунок 01: Разрешить входящий SSH от определенного IP-адреса или подсети

    Открыть входящий SSH-порт для всех
    Синтаксис выглядит следующим образом:

    sudo ufw allow ssh
    $ sudo ufw allow 22/tcp

    ИЛИ (добавьте комментарий)

    $ sudo ufw allow 22/tcp comment 'Open port ssh tcp port 22'

    Если вы запустили ssh на TCP порту # 2222, введите:

    $ sudo ufw allow 2222/tcp

    Как разрешить входящий SSH с определенного IP-адреса
    Синтаксис выглядит следующим образом:

    $ sudo ufw allow from to any port 22

    Чтобы разрешить входящие SSH-соединения с конкретного IP-адреса с именем 202.54.1.1, введите:

    $ sudo ufw allow from 202.54.1.1 to any port 22

    Как разрешить входящий SSH из определенных подсетей
    Синтаксис выглядит следующим образом:

    $ sudo ufw allow from to any port 22
    $ sudo ufw allow from to any port 22 proto tcp
    $ sudo ufw allow from to port 22 proto tcp

    Чтобы разрешить входящие SSH-соединения из конкретной IP-подсети с именем 202.54.1.1.29, введите:

    $ sudo ufw allow from 202.54.1.1/29 to any port 22

    Чтобы разрешить входящие SSH-соединения из конкретной подсети IP с 10.8.0.0/24 по 10.8.0.1 и tcp-портом 22, введите:

    $ sudo ufw allow from 10.8.0.0/24 to 10.8.0.1 port 22 proto tcp

    Ограничить входящий SSH-порт для всех
    Откройте входящий SSH, но запретите подключения с IP-адреса, который пытался инициировать 6 или более соединений в течение последних 30 секунд. Синтаксис выглядит следующим образом:

    $ sudo ufw limit ssh
    $ sudo ufw limit 22/tcp

    Как проверить статус ufw
    Синтаксис выглядит следующим образом:

    $ sudo ufw status

    Примеры возможных выводов данных:

    Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 72.14.190.12 443/tcp ALLOW Anywhere 72.14.190.12 80/tcp ALLOW Anywhere

    если ufw не был включен, выход будет следующим:

    sudo ufw status Status: inactive

    Чтобы включить UFW с набором правил по умолчанию, включая открытый SSH-порт, введите:

    $ sudo ufw enable $ sudo ufw status verbose

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *