Как поменять (изменить) порт у SSH сервера
![]()
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.
Рисунок 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 комментариев