- Смена порта SSH
- Как изменить порт SSH?
- How to Change SSH Port in Ubuntu 18.04
- Как поменять (изменить) порт у SSH сервера
- Изменение порта SSH
- Конфигурационный файл
- Перезапуск SSH
- Проверка
- Как изменить стандартный порт SSH в Linux (правильно и безопасно)
- Зачем менять порт SSH по умолчанию?
- Разрешить трафик на новый порт, изменив настройки брандмауэра
- Изменение порта SSH по умолчанию
Смена порта SSH
Удалённое администрирование Linux, как правило, осуществляется при помощи SSH (Secure Shell) — сетевого протокола прикладного уровня, позволяющего производить туннелирование TCP-соединений. Вышедший в 1995-м году SSH широко используется и в наши дни. С помощью этого протокола, помимо администрирования операционной системы с помощью командной оболочки, можно выполнять файловые операции и монтировать удалённые файловые системы.
SSH-сервер по умолчанию работает с использованием 22-го TCP-порта. Иногда бывают ситуации когда необходимо изменить этот порт. Например, для превентивной защиты от bruteforce-атак, направленных именно на 22-й порт, или для освобождения этого порта, занятого другим приложением. В этом случае можно изменить порт SSH на любой другой свободный TCP-порт.
Как изменить порт SSH?
В большинстве разновидностей Linux конфигурационный файл SSH-сервера располагается по пути /etc/ssh/sshd_config. Тем не менее, можно воспользоваться и поиском для того, чтобы узнать наверняка. Воспользуйтесь командой:
sudo find /etc/ -name «sshd_config»
В данном случае файл там, где и должен быть. Откройте в текстовом редакторе файл sshd_config:
sudo nano /etc/ssh/sshd_config
Найдите строку Port 22 и измените значение (в нашем примере на Port 222). Возможно в вашем конфигурационном файле эта строка будет закомментирована, то есть выглядит вот так — #Port 22.
В этом случае нужно убрать символ # и выполнить действия, описанные выше:
Сохраните файл. Далее следует перезапустить демон SSH. Выполните команду:
sudo systemctl restart sshd
Для того, чтобы проверить прошла ли удачно смена порта SSH сервера, выполните следующую команду:
sudo netstat -tupln | grep ssh
Будут показаны открытые порты SSH на вашем компьютере:
Строка tcp 0.0.0.0:222 LISTEN говорит о том, что 222-й порт, который назначенный для SSH-демона, успешно используется. В SSH-клиентах, подключаемых к вашему компьютеру, нужно будет изменить порт по умолчанию на назначенный SSH-серверу.
Если на вашем компьютере работает файрвол, не забудьте добавить в его исключения новый порт, назначенный SSH-серверу. Если вы изначально работаете удалённо по SSH-протоколу, сделать это нужно ещё до того, как вы перезапустите демон SSH на сервере, к которому подключены.
Если у вас в качестве файрвола установлен UFV, выполните команду:
Для тех, кто использует iptables, необходимо разрешить новый порт с помощью команды:
sudo /sbin/iptables -A INPUT -m state —state NEW -m tcp -p tcp —dport 222 -j ACCEPT
В операционных системах, использующих firewalld, выполните такую команду:
sudo firewall-cmd —permanent —add-port=222/tcp
sudo firewall-cmd reload
Здесь порт 222 — это порт SSH, назначенный мною для примера. Теперь вы знаете как поменять порт SSH чтобы его не трогали боты. А какие методы защиты от ботов используете вы? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Change SSH Port in Ubuntu 18.04
This tutorial explains how to configure Ubuntu OpenSSH server to run on some specific port number rather than the default port number 22, in order to increase the overall security of your Ubuntu server.
The SSH server on Ubuntu listen on TCP port 22 by default. You can run the netstat command to check ssh port currently running on:
As you can see, the SSH daemon is currently running on TCP port 22.
In Ubuntu 18.04, the Port directive of the sshd_config config file specifies the port number that ssh server listens on. You can check the current configuration with following command:
grep -i port /etc/ssh/sshd_config
The Port directive is commented out by default, which means SSH daemon listens on the default port 22.
If you want to change the default SSH port in Ubuntu, perform the following steps with root privileges:
- Open the /etc/ssh/sshd_config file and locate the line:
After that, run the netstat command and make sure that the ssh daemon now listen on the new ssh port:
When connecting to the server using the ssh command, you need to specify the port to connect using the -p flag:
Note that if the Firewall is enabled, you need to add a rule to allow new SSH port.
Как поменять (изменить) порт у SSH сервера
SSH — сетевой протокол прикладного уровня. Он позволяет безопасно передавать сетевые пакеты. Его используют для удаленного подключения к операционной системе, передачи файлов (как копирование обычных файлов, так и потоковая передача данных, например, с веб-камеры), подключения к базам данных, удаленного запуска команд и т.д. Данный протокол шифрует все данные, включая пароли, поэтому он считается безопасным. Однако для того, чтобы злоумышленники не получили доступ к учётным данным пользователя, у которого есть доступ по SSH, рекомендуется обезопасить свой сервер. По умолчанию SSH слушает порт 22. В целях безопасности рекомендуется сменить порт SSH на нестандартный. Это значительно усложнит жизнь ботам, которые постоянно сканируют серверы и открытые порты и пытаются подобрать логин и пароль для доступа к серверу по SSH по стандартному порту. Помимо смены порта можно настроить блокировку количества попыток подключений к серверу (например, с помощью утилиты fail2ban), отключить подключение по SSH пользователя root, отказаться от простых и угадываемых логинов (таких как admin, ivanov, zabbix и пр.), настроить запрет подключения по паролю и включить подключение только по ключу (требуется предварительная настройка и проверка, иначе можно потерять доступ к серверу по SSH). Как правило для подключения по SSH в терминале Linux используется следующая команда:
Если изменить порт, то при подключении к серверу по SSH нужно явно указывать порт (возьмем для примера порт 2233):
# ssh -p 2233 username@ip_address
Изменение порта 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 сервера, воспользоваться можно любым текстовым редактором:
Если строка начинается с символа #, его нужно удалить, и вместо 22 порта написать любой другой, например, 2233. Сохраняем изменения.
Перезапуск SSH
Если вы допустили какую-либо ошибку в конфигурационном файле, то можете потерять связь с сервером. Будьте осторожны. Для начала лучше потренироваться на тестовом сервере. В идеале у вас должен быть альтернативный доступ к серверу, например по VNC.
Debian/Ubuntu
CentOS/AlmaLinux
Так как текущая сессия SSH ещё активна, можно открыть новое окно и проверить, что подключение по новому порту работает:
# ssh username@ip_address -p2233
Если подключение удалось, то настройки верные. В противном случае что-то не так, и можно проверить конфигурацию в уже открытом подключении.
Проверка
Debian/Ubuntu
CentOS/AlmaLinux
Если все нормально, увидим похожий результат:
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 в Linux (правильно и безопасно)
Добавить в избранное
Главное меню » Linux » Как изменить стандартный порт SSH в Linux (правильно и безопасно)
Е сли вы знакомы с основами SSH, вы уже знаете, что SSH использует порт 22 по умолчанию.
Когда вы подключаетесь к серверу через SSH, большую часть времени вы не предоставляете никакой информации о порте. И в таких случаях ваше соединение идет к порту 22 сервера SSH.
Вы можете изменить порт по умолчанию с 22 номера порта по вашему выбору, выполнив следующие действия:
- Откройте файл /etc/ssh/sshd_config для редактирования.
- Найдите строку, которая имеет Port 22 (если она закомментирована с #, удалите также и #).
- Измените линию на порт 1132 (или любой номер по вашему выбору между 1024 и 65535).
- Убедитесь, что новый порт разрешен брандмауэрами (если есть).
- Перезапустите ssh-демон с помощью sudo systemctl restart sshd.
- Отныне вам нужно будет указать порт для подключения по ssh ssh user@ip_address_of_server -p 1132.
Позвольте нам показать вам шаги в деталях, а также рассказать, почему вы можете рассмотреть возможность изменения
Зачем менять порт SSH по умолчанию?
Одним из самых простых приемов защиты SSH-сервера является изменение стандартного номера порта SSH 22.
Зачем? Поскольку ряд скриптов-ботов пытаются использовать атаки грубой силы на порте 22 по умолчанию. Большинство из этих скриптов не всегда сканируют открытые порты и нацелены на порты по умолчанию для различных известных служб, таких как SSH.
Изменение порта SSH по умолчанию уменьшает количество таких атак. Есть и другие способы повысить безопасность вашего SSH-сервера. Если вам интересно, следуйте этим практическим советам по улучшению безопасности SSH-сервера.
Теперь, когда вы знаете, зачем менять порт SSH по умолчанию, давайте посмотрим, как это сделать.
Разрешить трафик на новый порт, изменив настройки брандмауэра
Если у вас установлен брандмауэр или пользовательский ipconfig или ifconfig или вы используете selinux, вы должны разрешить новый порт ssh перед внесением изменений. В противном случае вы можете заблокировать себя без доступа SSH.
Теперь эта часть зависит от того, какой тип брандмауэра или маршрутизации вы используете.
Если вы используете UFW, вы можете использовать следующую команду, чтобы разрешить порт 1132:
Если вы используете iptables, вы должны использовать эту команду:
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1132 -j ACCEPT
В Fedora, CentOS , Red Hat брандмауэр управляется firewalld, и вы можете использовать эту команду:
sudo firewall-cmd --permanent --zone=public --add-port=1132/tcp sudo firewall-cmd --reload
В CentOS и Red Hat вам также может потребоваться изменить правила SELinux:
sudo semanage port -a -t ssh_port_t -p tcp 1132
Теперь, когда вы установили правильные настройки брандмауэра, давайте перейдем к изменению порта SSH.
Изменение порта SSH по умолчанию
Обычно файл конфигурации ssh находится по адресу /etc/ssh/sshd_config. Для редактирования файла вам понадобится редактор на основе терминала, такой как Vim, Nano или Emacs.
В таких дистрибутивах, как Ubuntu, по умолчанию установлен Nano, поэтому вы можете использовать его для открытия файла в режиме редактирования, например так:
sudo nano /etc/ssh/sshd_config
Как видите, для редактирования конфигурации ssh вы должны быть пользователем sudo или пользователем root.
Прокрутите немного вниз, и вы увидите строку с Port 22. Если это начинается с #, это означает, что строка закомментирована. Закомментированные строки дают вам настройки по умолчанию.
Так что, если вы видите # Port 22, это означает, что порт по умолчанию — 22.
Измените эту строку с номером порта по вашему выбору. В Linux номер порта 0-1023 обычно зарезервирован для различных служб. Хорошо избегать использования значений от 0 до 1023, чтобы избежать конфликтов.
Вы можете использовать любой другой номер порта от 1024 до 65535. Мы используем 1132 в примере. Убедитесь, что вы удалили символ # перед портом.
Сохраните изменения и выйдите из редактора. Если вы используете Nano, используйте Ctrl + X для сохранения и выхода.
Следующим шагом является перезапуск службы ssh. Большинство современных систем используют службы systemd, поэтому вы можете использовать следующую команду:
sudo systemctl restart sshd