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

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

  • автор:

Как поменять (изменить) порт у 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 на нестандартный, таким образом усилив безопасность своего сервера

    Статья Как открыть порт 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

    Гайд Как открыть порт в Linux? Очень просто!

    Статья рассчитана на новичков, использующих Linux.

    Многие новички сталкиваются с проблемой после создания игрового сервера на личном выделенном сервере или vds, используя Linux.

    Сервер запускается, но порт закрыт, я не могу к нему подключиться. Что же делать?

    Нужно прописать правила Firewall’а, что бы нужный порт был открыт.

    Для начала немного теории. Сервера по Counter-Strike, абсолютно всех версий, используют 2 протокола, TCP и UDP.

    Значит нужно 2 правила для Iptables, что бы открыть порт.

    Вопрос: Что такое Iptables?
    Ответ: Iptables это самый распространенный и используемый Linux Firewall, для защиты, фильтрации, проброса портов, и многого другого. Подробнее можете почитать в wikipedia.

    Допустим, у вас Counter-Strike 1.6 сервер, и вы хотите открыть порт 27015. Для этого пропишите в терминал 2 правила.

    iptables -A INPUT -p tcp --dport 27015 -j ACCEPT iptables -A INPUT -p udp --dport 27015 -j ACCEPT

    Первое правило для открытия протокола TCP на порте 27015, а второе правило для открытия протокола UDP на порте 27015.

    Другой небольшой пример:
    Стандартный порт ssh в Linux находится на 22’ом порте, но использует только протокол TCP. Как же открыть стандартный порт ssh?

    Что бы его открыть, нужно прописать очень простое правило Iptables, но для порта 22 только на протоколе TCP. Открывать порт на протоколе UDP в данной ситуации не нужно.

    Введите в терминал данное правило Iptables:

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    Дополнительно:
    Как открыть нужные порты в Linux для сервера по игре RUST?

    Типичный вопрос пользователя: Столкнулся с проблемой! Запустил сервер по игре RUST, но не могу к нему подключиться, сервер вообще не виден. Помогите!
    Ответ: Сервер по игре RUST использует сразу 2 игровых порта. Первый порт служит для подключения клиента к серверу, второй служит для rcon администрирования.

    Стандартный порт по игре RUST 28015 использующий протоколы TCP и UDP, второй порт для администрирования 28016 использует только протокол TCP.

    Для того, что бы открыть нужный порт по игре RUST, введите в терминал следующие правила:

    Для основного порта сервера:

    iptables -A INPUT -p tcp --dport 28015 -j ACCEPT iptables -A INPUT -p udp --dport 28015 -j ACCEPT

    Как открыть 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 порты.
    Кто-то может дать совет, что делать?

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

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

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

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

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