Sep. 07, 2016
- Getting Started
- Навигация по записям
- Процедура изменения порта SSH для Linux или Unix Server
- Найдите файл sshd_config, введя следующую команду
- Отредактируйте файл и установите параметр порта
- Примечание о пользователях SELinux
- Обновление брандмауэра для приема порта ssh 2222
- Перезапустить службу sshd.
- Шаг 1: Резервное копирование текущей конфигурации SSH
- Шаг 2: Измените порт службы SSH
- Шаг 4: Откройте порт SSH на Firewalld
- Шаг 5: Перезапустите службу sshd
- Other SSH Tutorials
- Включение SSH в Ubuntu
- Использование нового порта SSH
- Summary
- Использование нового порта SFTP
- Управление портами в Ubuntu и Debian
- Notes Before Changing The Default SSH Port
- Изменение порта SFTP
- 1. Выбор нового номера порта
- 2. Настройка брандмауэра
- 3. Настройка SFTP / SSH
- Подключение к SSH за NAT
- Steps To Change The SSH Port In CentOS
- Use Putty To Connect The Server
- Disable SELinux Before Changing SSH Port
- Edit The sshd File To Change SSH Port
- Restart sshd Service
- Изменение порта SSH
- 1. Выбор нового номера порта
- 2. Настройка брандмауэра
- 3. Настройка SSH
- What Is SSH?
- Управление портами в Centos
- Отключение SSH в Ubuntu
- How to change SSH port on CentOS 7
- Какой порт использует SFTP
- Подключение к SSH-серверу
- Tutorial
- Выводы
- Выводы
- Заключение
- Выводы
- Conclusion
Getting Started
Confirm that you have the following before you follow this guide:
• 1 Node (Cloud Server or Dedicated Server) running CentOS 7.
• Root access to the node.
We are at your service by teaching you how to change the SSH port in the CentOS operating system. The default port of the SSH service is 22, and if we have it by default, hackers may be able to attack the server through port 22, take control of it, or cause irreparable damage to it. Therefore, we suggest that you change the default SSH port to increase the security of your server.
Secure Shell (SSH) — это сетевой протокол, используемый для безопасного соединения между клиентом и сервером. Каждое взаимодействие между сервером и клиентом зашифровано.
В этом руководстве объясняется, как включить SSH на компьютере с Ubuntu.
Включение SSH позволит вам удаленно подключаться к вашей системе и выполнять административные задачи. Вы также сможете безопасно передавать файлы через scp и sftp .
По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности к вашему серверу, снижая риск автоматических атак.
В этом руководстве объясняется, как изменить порт SSH по умолчанию в Linux. Мы также покажем вам, как настроить брандмауэр, чтобы разрешить доступ к новому порту SSH.
Лучший способ защитить ваш сервер от атак — настроить брандмауэр так, чтобы он разрешал доступ к порту 22 только с доверенных хостов, и настроить аутентификацию на основе ключа SSH .
SFTP (SSH File Transfer Protocol) — это безопасный файловый протокол для передачи файлов между двумя хостами по зашифрованному соединению. Он также позволяет выполнять различные файловые операции с удаленными файлами и возобновлять передачу файлов.
SFTP можно использовать как замену устаревшему протоколу FTP. Он имеет все функции FTP, но с более безопасным соединением.
В этой статье объясняется, как изменить порт SFTP по умолчанию в Linux. Мы также покажем вам, как настроить брандмауэр, чтобы разрешить использование нового порта.
Не путайте SFTP с FTPS. Оба протокола служат одной цели. Однако FTPS означает FTP Secure и является расширением стандартного протокола FTP с поддержкой TLS.
Как много времени проходит с момента заказа сервера на хостинге до первого подключения к готовому серверу? Несколько минут. На сколько полученный сервер готов к тому, чтобы использовать его на полную? На 100%. Ну или почти на 100. Точнее, совсем не на 100. Новый сервер подобен новорождённому ребёнку. У него одежды, нет приобретённого иммунитета и нет почти никаких навыков. Он уязвим для любого внешнего воздействия. И защиту от окружающих угроз мы должны ему дать. Наш новый сервер на начальном этапе не готов противостоять всему, что приходит к нему извне. А значит, его необходимо оснастить защитой. Такая защита для сервера – брандмауэр, или файрвол (firewall), или межсетевой экран.
Обмен информацией между узлами сети происходит посредством портов открытых для использования на узлах. Для того, чтобы иметь гарантии прохождения исключительно легитимного трафика, следует уметь управлять портами нашего сервера при помощи брандмауэра.
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:
netstat -tulnp | grep ssh
As you can see, the SSH daemon is currently running on TCP port 22.
grep -i port /etc/ssh/sshd_configThe Port directive is commented out by default, which means SSH daemon listens on the default port 22.

- Open the /etc/ssh/sshd_config file and locate the line:
#Port 22 - Then, uncomment (Remove the leading # character) it and change the value with an appropriate port number (for example, 22000):
Port 22000 - Restart the SSH server:
systemctl restart sshd
After that, run the netstat command and make sure that the ssh daemon now listen on the new ssh port:
netstat -tulpn | grep sshWhen connecting to the server using the ssh command, you need to specify the port to connect using the -p flag:
ssh -p 22000 192.168.1.100Note that if the Firewall is enabled, you need to add a rule to allow new SSH port.
На тесте изменю порт SSH в Ubuntu Server 14.0.4 LTS и Ubuntu Server 16.0.4 LTS.
Откроем конфигурацию SSH например в текстовом редакторе nano (в nano клавиши Ctrl+X для выхода, y/n для сохранения или отмены изменений):
sudo nano /etc/ssh/sshd_config
Найдем строчку «Port 22» и изменим её например на «Port 58222«.
Чтобы применить изменения перезапустим ssh (на разных системах он может перезагружаться по разному, по этому приведу список возможных команд):
sudo service ssh restart sudo /etc/init.d/ssh restart sudo /etc/init.d/sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной, по этому не отключаясь для проверки попробуем подключиться по новому порту, если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 58222 наш новый порт):
sudo iptables -A INPUT -p tcp --dport 58222 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
sudo iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 58222 -j ACCEPT
Если все ок, подключаемся через новый порт и можем удалить старое правило iptables, например так:
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Пример команды для подключения из Linux к SSH по нестандартному порту:
ssh -p 58222 user@192.168.0.2
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно так:
netstat -tulpan | grep ssh
По умолчанию подключение к VPS от RUVDS с помощью SSH происходит через 22-й порт. Использование стандартного порта сильно увеличивает риск взлома вашего сервера при использовании брут фос (brute-force) атак. Как один из способов защиты, но не единственный, от данного вида атак является смена стандартного 22 порта.
Обычно информация об используемом порте находится на вашем виртуальном сервере (VPS) в файле sshd_config, который находится в директории /etc/ssh/
Чтобы сменить SSH-порт сделайте следующее:
1. Заходим на сервер помощью SSH-клиента PuTTY
2. Проверяем список открытых портов командой:
netstat -tupln | grep LISTEN
Таким образом мы проверим какие из портов уже используются, чтобы не использовать их повторно.
3. После проверки портов открываем файл sshd_config. Его вы можете открыть с помощью любого установленного текстового редактора:
vi /etc/ssh/sshd_config
nano /etc/ssh/sshd_config
4. Ищем в файле sshd_config запись:

5. Меняем номер порта на другой и сохраняем данные изменения при помощи команды:
После нажимаем подтвердить, с помощью клавиши Enter на клавиатуре
6. Чтобы изменения вошли в силу, перезагрузите ваш виртуальный SSH-сервер. Это можно сделать при помощи команды:
/etc/init.d/ssh restart
/etc/init.d/sshd restart
systemctl restart sshd.service
Войдите в раздел “Мои серверы” на сайте RUVDS.com и нажмите кнопку “Play” под скриншотом вашего сервера.

8. В случае, если вы забыли какой порт назначили для подключения по SSH, вы всегда сможете зайти на ваш VPS в аварийном режиме, через панель управления на сайте RUVDS, в разделе Мои серверы, кликнув мышью по скриншоту вашего сервера.

OpenSSH (или Secure SHell) является стандартом для удаленного доступа, заменяющего протокол telnet.
Однако установка ssh по умолчанию неидеальна, и при запуске ssh-сервера есть несколько простых шагов, которые могут значительно упростить установку.
Как установить OpenSSH на Windows 10
В этом руководстве вы узнаете, как защитить OpenSSH на CentOS 7.4.
# vim /etc/ssh/sshd_config
# systemctl restart sshd.service1
И теперь, вам нужно ограничить вход пользователя и для этого вам нужно запустить следующую команду:
# vim /etc/ssh/sshd_config
# systemctl restart sshd.service
Вы также можете изменить порт SSH, который по умолчанию 22, используя следующую команду:
<span class="code_sectcolor7"># vim /etc/ssh/sshd_config
И изменить значение Port:
Далее разрешите порты и перезапустите брандмауэр, используя следующие команды:
# firewall-cmd --add-port=3456/tcp # firewall-cmd --add-port=3456/tcp –permanent # firewall-cmd --reload
Теперь вы можете добавить политику SELinux и для этого использовать следующую команду.
# semanage port -a -t ssh_port_t -p tcp 3456
Также, отфильтруйте по умолчанию порт 22 в брандмауэре
# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp --dport 22 -m state --state NEW -m recent --set # firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT_direct 1 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 30 --hitcount 4 -j REject --reject-with tcp-reset
Наконец, вы должны перезагрузить фаервол, используя следующую команду:
# firewall-cmd --reload
Вот вам и простой метод защиты openssh на centos 7.4.
Пожалуйста, не спамьте и никого не оскорбляйте.
Это поле для комментариев, а не спамбокс.
Рекламные ссылки не индексируются!
Для новичков администраторов сервера Linux / Unix. Как изменить SSH-порт для моего Linux или Unix-сервера с помощью опции командной строки?
Вы можете легко изменить порт SSH для своего Linux или Unix-сервера. Порт ssh, определенный в файле sshd_config. Этот файл находится в каталоге /etc/ssh/sshd_config .
Процедура изменения порта SSH для Linux или Unix Server
- Откройте приложение терминала и подключитесь к серверу через SSH.
- Найдите файл sshd_config, набрав команду.
- Отредактируйте файл и установите параметр «Port».
- Сохраните и закройте файл.
- Перезапустите службу sshd.
Найдите файл sshd_config, введя следующую команду
Отредактируйте файл и установите параметр порта
Введите следующую команду:
Найдите строку, которая будет выглядеть следующим образом:
Чтобы установить порт на 2222, введите:
Сохраните и закройте файл.
Примечание о пользователях SELinux
Чтобы изменить порт на 2222, введите следующую команду :
Обновление брандмауэра для приема порта ssh 2222
Если вы используете UFW на Ubuntu / Debian Linux , введите:
Синтаксис для iptables выглядит следующим образом
Синтаксис для pf firewall выглядит следующим образом (FreeBSD / OpenBSD / NetBSD Unix) в вашем pf.conf:
Внимание : вы должны обновить настройки брандмауэра, чтобы применить новый порт. В противном случае следующая команда заблокирует доступ к ssh.
Перезапустить службу sshd.
Введите следующую команду в CentOS / RHEL / Fedora Linux:
ИЛИ, если вы используете CentOS / RHEL / Fedora Linux с systemd:
ИЛИ, если вы используете Ubuntu / Debian / Mint Linux:
ИЛИ, если вы используете Ubuntu / Debian / Mint Linux с systemd:
Или, если вы используете FreeBSD Unix, введите:
Нет похожих статей.
В этом руководстве мы увидим, как вы можете изменить порт прослушивания службы SSH в CentOS 7/8, RHEL 7/8 и Fedora 31/30/29, когда SELinux работает в режиме Enforcing.
Когда SELinux работает в принудительном режиме, он применяет политику SELinux и запрещает доступ на основе правил политики SELinux.
Стандартным портом SSH в большинстве систем Linux / Unix является TCP-порт 22.
Его можно легко изменить на пользовательский порт, не используемый другими приложениями в системе.
Когда SELinux работает в режиме enforce, для настраиваемого порта потребуется перемаркировка, чтобы правила политики, контролирующие доступ, могли принимать привязку службы ssh.
Выполните шаги, описанные ниже, чтобы изменить SSH-порт на сервере CentOS / RHEL / Fedora или на рабочем столе, когда SELinux работает в режиме enforce.
Шаг 1: Резервное копирование текущей конфигурации SSH
Войдите в систему CentOS / RHEL / Fedora и создайте резервную копию текущего файла конфигурации демона ssh.
date_format=`date +%Y_%m_%d:%H:%M:%S`
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$date_format$ ls /etc/ssh/sshd_config*
/etc/ssh/sshd_config /etc/ssh/sshd_config_2019_09_05:21:40:10Шаг 2: Измените порт службы SSH
sudo vi /etc/ssh/sshd_configНайдите строку, которая имеет:
#Port 22Раскомментируйте строку «Port» и настройте новый порт для службы SSH.
Я буду использовать порт 33000.
Port 33000Сохраните изменения и закройте файл.
Шаг 3: Разрешить новый SSH-порт в SELinux
$ semanage port -l | grep ssh
ssh_port_t tcp 22Если вы хотите разрешить привязку sshd к настроенному сетевому порту, вам нужно изменить тип порта на ssh_port_t.
sudo semanage port -a -t ssh_port_t -p tcp 33000Убедитесь, что новый порт был добавлен в список разрешенных портов для ssh.
$ semanage port -l | grep sshssh_port_t tcp 33000, 22
Шаг 4: Откройте порт SSH на Firewalld
Всегда рекомендуется поддерживать службу брандмауэра и разрешать только доверенные службы.
sudo firewall-cmd --add-port=33000/tcp --permanet
sudo firewall-cmd --reloadЕсли Firewalld не установлен, используйте yum для его установки и запуска службы.
sudo yum -y install firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --add-port=33000/tcp --permanent
sudo firewall-cmd --reloadТеперь вы можете удалить службу SSH.
sudo firewall-cmd --remove-service=ssh --permanent
sudo firewall-cmd --reloadШаг 5: Перезапустите службу sshd
Перезапустите службу ssh, чтобы изменения вступили в силу.
sudo systemctl restart sshdПроверьте адрес прослушивания для SSH.
$ netstat -tunl | grep 33000tcp 0 0 0.0.0.0:33000 0.0.0.0:* LISTEN tcp6 0 0 :::33000 :::*
Пожалуйста, не спамьте и никого не оскорбляйте.
Это поле для комментариев, а не спамбокс.
Рекламные ссылки не индексируются!
In this guide, we are going to learn how to Configure SSH to use a different Port on CentOS 7.
Even though configuring SSH Server to listen on a different port other than the default port, 22, may not gain you much from security point of view, there are still some advantages that goes with it;
- reduces attack surface by shielding your server against automated random attacks that targets services running on default ports,
Step through this guide to learn how to configure SSH server to listen on a different port.
- Login to your server and open the OpenSSH server configuration file, /etc/ssh/sshd_config for editing.
vim /etc/ssh/sshd_config
- Uncomment the line, # Port 22 and set it to a desired port. But as a safety measure, just in case things go south, configure sshd to listen on two ports, the default port and the desired port such that your config files have two lines like as shown below. Once you confirm that the new port works fine, remove the default port setting.
Port 22 Port 3456 <where 3456 is your preferred port>
- Ensure that no other service is using the new port.
- Replace the ports accordingly.
- If firewall is running, allow the new port on through it.
firewall-cmd --add-port=3456/tcp --permanent firewall-cmd --reload
- Restart sshd service
systemctl restart sshd
- If by restarting sshd you encounter such an error;
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
And by running journalctl -xe as suggested you find out the sshd fails to start with new port set due SELinux permissions as shown in the journalctl output below;
# journalctl -xe ...output snipped...Sep 16 08:21:12 server1 kernel: type=1400 audit(1537086072.510:4): avc: denied { name_bind } for pid=1074 comm="sshd" src=6378 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unres Sep 16 08:21:12 server1 sshd[1074]: error: Bind to port 6378 on 0.0.0.0 failed: Permission denied. Sep 16 08:21:12 server1 sshd[1074]: error: Bind to port 6378 on :: failed: Permission denied. Sep 16 08:21:12 server1 kernel: type=1400 audit(1537086072.515:5): avc: denied { name_bind } for pid=1074 comm="sshd" src=6378 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unres Sep 16 08:21:12 server1 sshd[1074]: fatal: Cannot bind any address. Sep 16 08:21:12 server1 systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a Sep 16 08:21:12 server1 systemd[1]: Failed to start OpenSSH server daemon....output snipped...Here is how to fix this. You need to tell SELinux about this change by running the command below.
semanage port -a -t ssh_port_t -p tcp 3456
Now, verify that SELinux has allowed sshd to listen on the two ports:
semanage port -l | grep ssh
ssh_port_t tcp 3456, 22
If semanage command is not found, check which package provides semanage and install that package;
yum whatprovides semanage
...output snipped...policycoreutils-python-2.5-22.el7.x86_64 : SELinux policy core python utilities Repo : base Matched from: Filename : /usr/sbin/semanage
yum install -y policycoreutils-python
- Test that you can login to the server with new SSH port
ssh -p 3456 [email protected]
That marks the end of our simple guide on how to Configure SSH to use a different Port on CentOS 7.
Other SSH Tutorials
Connect to VNC Server via SSH Tunnel
Monitor Linux Hosts using Nagios check_by_ssh Plugin
Configure SSH Public Key Authentication in Linux
How to Enable RDP/SSH File Transfer Over Guacamole
Включение SSH в Ubuntu
По умолчанию при первой установке Ubuntu удаленный доступ через SSH не разрешен. Включение SSH в Ubuntu довольно просто.
Выполните следующие шаги от имени пользователя root или пользователя с правами sudo для установки и включения SSH в вашей системе Ubuntu:
Откройте терминал с помощью
Ctrl+Alt+Tи установите пакетopenssh-server:sudo apt updatesudo apt install openssh-serverПри появлении запроса введите свой пароль и нажмите Enter, чтобы продолжить установку.

После завершения установки служба SSH запустится автоматически. Вы можете убедиться, что SSH работает, набрав:
sudo systemctl status sshВывод должен сообщить вам, что служба запущена и разрешена для запуска при загрузке системы:
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-06-01 12:34:00 CEST; 9h ago ...Нажмите
qчтобы вернуться в командную строку.Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW. Если в вашей системе включен брандмауэр , обязательно откройте порт SSH:
sudo ufw allow ssh
Это оно! Теперь вы можете подключиться к своей системе Ubuntu через SSH с любого удаленного компьютера. В системах Linux и macOS по умолчанию установлены клиенты SSH. Для подключения с компьютера Windows используйте SSH-клиент, например PuTTY .
Использование нового порта SSH
Чтобы указать порт, вызовите команду ssh за которой следует параметр -p <port_number> :
ssh -p 5522 [email protected]_host_or_ipЕсли вы регулярно подключаетесь к нескольким системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Summary
You can easily change the SSH port through the sshd_config file. The only thing that you should be careful of, is to add the new port number to your firewall before you apply the new setting to prevent any disruption in the function of the server.
Использование нового порта SFTP
Чтобы указать номер порта, вызовите команду sftp с параметром -P за которым следует новый номер порта:
sftp -P 4422 [email protected]_host_or_ipЕсли вы используете SFTP-клиент с графическим интерфейсом, просто введите новый порт в клиентском интерфейсе.
Управление портами в Ubuntu и Debian
В операционных системах Ubuntu и Debian для управления брандмауэром довольно часто применяется утилита iptables. Её упрощённым интерфейсом является UFW (Uncomplicated Firewall). Открытие доступа к серверу для какого-либо приложения происходит путём регистрации этого приложения в UFW.
В Ubuntu интерфейс UFW как правило присутствует по умолчанию, в Debian же необходимо будет сначала его проинсталлировать. Перед установкой брандмауэра рекомендуется обновить репозитории:
$ sudo apt update $ sudo apt install ufw
Список приложений, зарегистрированных в брандмауэре, доступен по следующей команде:
$ sudo ufw app listЕсли вы производите первоначальную настройку межсетевого экрана используя подключение к серверу по ssh, логично было бы сразу же прописать в UFW соответствующее этому протоколу правило:
$ sudo ufw allow SSHЭту команду также можно применить используя соответствующий номер порта вместо имени протокола. Для ssh это, как правило, порт 22:
$ sudo ufw allow 22 В Ubuntu команда для разрешения подключения по ssh выглядит как:
$ sudo ufw allow OpenSSHДля того, чтобы межсетевой экран начал работать, его необходимо запустить:
$ sudo ufw enable
Теперь, можно добавить в UFW правило, которое позволит разрешить передачу данных, например, по порту 80, или другими словами, при помощи протокола http. Это можно прописать командой:
$ sudo ufw allow 80$ sudo ufw allow httpПо аналогии можно также разрешить трафик с использованием порта 443, то есть по протоколу https:
$ sudo ufw allow 443
$ sudo ufw allow https
Подобными инструкциями можно давать разрешения для подключений, использующих несколько портов. Например, так выглядит команда на открытие целого диапазона портов (32810-32814):
$ sudo ufw allow 32810:32814/udp$ sudo ufw allow from 10.10.10.233Или из одной определённой подсети:
$ sudo ufw allow from 10.10.10.0/24$ sudo ufw allow from 10.10.10.233 to any port 22Естественно существует возможность и закрыть доступ для уже открытого подключения через определённый порт. Для этого используется команда deny. Следующей командой можно запретить подключения по протоколу http:
$ sudo ufw deny http$ sudo ufw deny from 10.10.10.233Уже созданные правила можно также удалить. Сделать это можно по номеру правила. Чтобы узнать номера правил, используйте следующую команду:
$ sudo ufw status numberedВывод данной команды выглядит следующим образом:

Номера правил указаны в скобках в начале строки. Например, правило для подключения по 443-му порту имеет номер 3. Исходя из этого, команда для удаления этого правила будет выглядеть как:
$ sudo ufw delete 3То же самое можно сделать командой:
$ sudo ufw delete allow 443/tcp
Посмотреть текущее состояние межсетевого экрана позволяет команда:
$ sudo ufw status

Для отключения брандмауэра служит следующая инструкция:
$ sudo ufw disable
Notes Before Changing The Default SSH Port
- It is better to specify a 4 or 5 digit port. Also, remember to uses a free SSH port.
- If a firewall is used in the data center network, be sure to inform the data center of the desired port to open it.
- Be sure to write down the port you want to allocate to SSH.
- Be careful to change the SSH port as any mistake may cause you to have trouble accessing the server.
- If you do not use SELinux, you should just disable it to prevent any issue on the function of your server.
Изменение порта SFTP
Изменение порта SFTP / SSH по умолчанию добавляет дополнительный уровень безопасности на ваш сервер, снижая риск автоматических атак.
Лучший способ защитить ваш сервер от атак — настроить брандмауэр так, чтобы он разрешал доступ к порту 22 только с доверенных хостов, и настроить аутентификацию на основе ключа SSH .
Следующие шаги описывают, как изменить порт SSH на машинах Linux.
1. Выбор нового номера порта
В Linux номера портов ниже 1024 зарезервированы для хорошо известных служб и могут быть связаны только с пользователем root. Хотя вы можете использовать порт в диапазоне 1-1024 для службы SSH, чтобы избежать проблем с распределением портов, рекомендуется выбирать порт выше 1024.
В этом примере показано, как изменить порт SFTP / SSH на 4422, но вы можете выбрать любой порт по своему вкусу.
2. Настройка брандмауэра
Перед изменением порта SFTP / SSH вам необходимо открыть новый порт в брандмауэре.
Если вы используете UFW, брандмауэр по умолчанию в Ubuntu , выполните следующую команду, чтобы открыть порт:
sudo ufw allow 4422/tcpВ CentOS инструментом управления брандмауэром по умолчанию является FirewallD. Чтобы открыть порт, введите следующие команды:
sudo firewall-cmd --permanent --zone=public --add-port=4422/tcpsudo firewall-cmd --reload
Пользователям CentOS также необходимо настроить правила SELinux, чтобы разрешить новый порт SSH:
sudo semanage port -a -t ssh_port_t -p tcp 4422Если вы используете другой дистрибутив Linux, в котором работает iptables, чтобы открыть новый порт, выполните:
sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT3. Настройка SFTP / SSH
Конфигурация сервера SSH хранится в /etc/ssh/sshd_config . Откройте файл в текстовом редакторе:
sudo vim /etc/ssh/sshd_configНайдите строку, начинающуюся с Port 22 . Обычно эта строка закомментирована с помощью символа решетки ( # ). Удалите хэш # и введите новый номер порта SSH:
Будьте очень осторожны при редактировании файла конфигурации. Неправильная конфигурация может помешать запуску службы SSH.
После этого сохраните файл и перезапустите службу SSH, чтобы изменения вступили в силу:
sudo systemctl restart sshВ CentOS служба SSH называется sshd :
sudo systemctl restart sshdУбедитесь, что демон SSH прослушивает новый порт:
ss -an | grep 4422Результат должен выглядеть примерно так:
tcp LISTEN 0 128 0.0.0.0:4422 0.0.0.0:*
tcp ESTAB 0 0 192.168.121.108:4422 192.168.121.1:57638
tcp LISTEN 0 128 [::]:4422 [::]:*Подключение к SSH за NAT
ssh [email protected]_ip_addressЕсли вы открываете свою машину для доступа в Интернет, рекомендуется принять некоторые меры безопасности. Самый простой — настроить маршрутизатор на прием трафика SSH на нестандартный порт и пересылку его на порт 22 на машине, на которой запущена служба SSH.
Вы также можете настроить аутентификацию на основе ключа SSH и подключиться к компьютеру с Ubuntu без ввода пароля.
Steps To Change The SSH Port In CentOS
- Enter SSH with the help of PuTTY software.
- Disable SELinux
- Edit the sshd_config file and change port 22 to the desired port.
- Restart sshd service.
Use Putty To Connect The Server
You can the below educational link in order to learn how to use putty to connect to a Linux VPS.
Disable SELinux Before Changing SSH Port
To disable SELinux, open the below file and set the mode to disabled.
/etc/selinux/config

Edit The sshd File To Change SSH Port
nano /etc/ssh/sshd_config

If the nano package is not installed, try to install it with this command.
yum install nano
Next, we need to change the number 22 specified in the image above to another value (for example port 14252). We also need to remove the # character from the beginning of this line to include this line as an active operating command on the server.

You should also add the new port to your firewall to prevent any disruption, using this command after changing SSH port.
sudo firewall-cmd --zone=public --permanent --add-port=14252/tcp

Restart sshd Service
sudo systemctl restart sshd
To restart SSHD service use the below command and if you faced error with restarting this service, try to reboot the server. Once the server was ready, you can easily connect to the server through putty and the new port number should be used instead of port 22 but the case is, this time you are more secure than the last connection!
Изменение порта SSH
Изменить SSH-порт изображения — простая задача. Все, что вам нужно сделать, это отредактировать файл конфигурации SSH и перезапустить службу.
В следующих разделах объясняется, как изменить порт SSH в системе Linux.
1. Выбор нового номера порта
В Linux номера портов ниже 1024 зарезервированы для хорошо известных служб и могут быть связаны только с пользователем root. Хотя вы можете использовать порт в диапазоне 1-1024 для службы SSH, чтобы избежать проблем с распределением портов в будущем, рекомендуется выбрать порт выше 1024.
В этом примере изменится порт SSH на 5522, вы можете выбрать любой порт, который хотите.
2. Настройка брандмауэра
Перед изменением порта SSH вам необходимо настроить брандмауэр, чтобы разрешить трафик на новый порт SSH.
Если вы используете UFW, инструмент настройки брандмауэра по умолчанию для Ubuntu, выполните следующую команду, чтобы открыть новый порт SSH:
sudo ufw allow 5522/tcpВ CentOS инструментом управления брандмауэром по умолчанию является FirewallD. Чтобы открыть новый порт, выполните:
sudo firewall-cmd --permanent --zone=public --add-port=5522/tcpsudo firewall-cmd --reload
Пользователям CentOS также необходимо настроить правила SELinux:
sudo semanage port -a -t ssh_port_t -p tcp 5522Если вы используете iptables в качестве брандмауэра, чтобы открыть новый порт, запустите:
sudo iptables -A INPUT -p tcp --dport 5522 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT3. Настройка SSH
Откройте файл конфигурации SSH /etc/ssh/sshd_config текстовом редакторе:
sudo vim /etc/ssh/sshd_configНайдите строку, начинающуюся с Port 22 . В большинстве случаев эта строка начинается с символа решетки ( # ). Удалите хэш # и введите новый номер порта SSH:
Будьте особенно осторожны при изменении файла конфигурации SSH. Неправильная конфигурация может привести к сбою запуска службы SSH.
После этого сохраните файл и перезапустите службу SSH, чтобы изменения вступили в силу:
sudo systemctl restart sshВ CentOS служба ssh называется sshd :
sudo systemctl restart sshdЧтобы убедиться, что демон SSH прослушивает новый порт 5522, введите:
ss -an | grep 5522Результат должен выглядеть примерно так:
tcp LISTEN 0 128 0.0.0.0:5522 0.0.0.0:*
tcp ESTAB 0 0 192.168.121.108:5522 192.168.121.1:57638
tcp LISTEN 0 128 [::]:5522 [::]:*What Is SSH?
SSH means a secure shell, a free version of the SSH connection tool that allows a secure connection to the network. The SSH encrypts all transmitted data (including passwords), eliminating the possibility of others accessing the network data. SSH is a standard protocol for the encrypted exchange of information over a network. Using ssh service software, remote access to a computer on the network is provided.
SSH (uppercase) refers to the SSH protocol and ssh (lowercase) means remote communication software. One of the free software for establishing SSH connection, which is called Putty, allows connecting to Linux servers with commands.
Управление портами в Centos
Клиентским интерфейсом для работы с межсетевым экраном в Centos является программа firewalld. Как правило, firewalld уже по умолчанию входит в состав служб Centos. Но если вдруг это не так, для его установки используйте следующие команды:
$ sudo dnf update -y$ sudo dnf install firewalld -y
Если окажется, что firewalld уже был установлен в системе, команда вернёт следующее сообщение:

Текущее состояние службы можно увидеть набрав команду:
$ systemctl status firewalldЕсли служба работает штатно, то вывод команды будет выглядеть так:

Список приложений, которым доступ в firewalld уже предоставлен, можно увидеть с помощью команды:
$ sudo firewall-cmd --permanent --list-allТакие приложения перечислены в строке services:

Чтобы предоставить приложению или протоколу, например, http, возможность производить подключения к нашему серверу, необходимо использовать команду следующего вида:
$ sudo firewall-cmd --permanent --add-service=httpЭтот протокол должен добавиться в строку services:

Аналогичным образом можно открыть доступ для подключений к серверу по протоколу https:
$ sudo firewall-cmd --permanent --add-service=https
В firewalld также есть возможность предоставить доступ для подключений по определённому порту. Так, например, будет выглядеть команда для открытия доступа по udp-порту 32810:
$ sudo firewall-cmd --zone=public --add-port=32810/udp
А так пишется команда для открытия доступа по пулу портов, например, для udp-портов с 32811 по 32814:
$ sudo firewall-cmd --zone=public --add-port=32811-32814/udp
И чтобы убедиться, что данные порты добавлены в список открытых, необходимо использовать следующую инструкцию:
$ sudo firewall-cmd --zone=public --list-ports

Доступ для подключений по определённому порту можно также и заблокировать. Например, закрытие доступа по udp-порту 32814 осуществляется командой:
$ sudo firewall-cmd --zone=public --remove-port=32814/udpИ наконец, для применения всех внесённых изменений, брандмауэр необходимо перезапустить:
$ sudo firewall-cmd --reloadОтключение SSH в Ubuntu
Чтобы отключить SSH-сервер в вашей системе Ubuntu, просто остановите службу SSH, запустив:
sudo systemctl disable --now sshПозже, чтобы снова включить его, введите:
sudo systemctl enable --now sshHow to change SSH port on CentOS 7

In this guide, we will show you how you can change SSH port number to any desired choice, on your own CentOS 7 server.
Какой порт использует SFTP
SFTP является подсистемой SSH и обеспечивает тот же уровень безопасности, что и SSH.
Порт SFTP по умолчанию — 22 .
Подключение к SSH-серверу
ssh [email protected]_addressip a
ssh [email protected]При первом подключении вы увидите такое сообщение:
The authenticity of host '10.0.2.15 (10.0.2.15)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?Введите yes и вам будет предложено ввести пароль.
Warning: Permanently added '10.0.2.15' (ECDSA) to the list of known hosts.[email protected]'s password:После ввода пароля вы увидите сообщение Ubuntu по умолчанию:
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage
...Теперь вы вошли в систему на своей машине с Ubuntu.
Tutorial
To change the SSH port of your server, you must edit the configuration file for the SSH daemon that is found in /etc/ssh/sshd_config. Before we do this step however, we will create a backup of the existing sshd configuration file as a matter of good practice. Use the copy command cp with the flag -p, which preserves last edited information, to make a copy of the file and save it in a backup file whose name includes the date, which is achieved by appending the result of $(date +%F) to the filename. The %F ensures that the full date in year-month-date format is used when obtaining the current date with date.
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig.$(date +%F)
With our backup file saved, you are now free to modify the sshd configuration file as you wish. Open this file in the vi text editor:
When choosing a new port number, try to avoid using a common port from this list: 21, 80, 443, 25, 110, 113. Also stay away from ports that are already in use by your CentOS 7 server. Generally, it is recommended to use a new port number that is over 1024. If you have difficulty choosing a new port number however, you can look up what common ports are used online through lists of well-known TCP and UDP port numbers that are available, and choose one that is not listed.
systemctl restart sshd.service
By default, SELinux only allows SSH on the port 22. We must change this to our new port. In our example, we are using 2222 but you should replace this number with the number of your port in the below command, which uses semanage port to configure ports in the SELinux policy:
semanage port -a -t ssh_port_t -p tcp 2222
You can verify that SELinux has the new port by searching the output of the semanage port -l command, which lists the ports that are working with SELinux. The tool grep is used to search this output for you, and outputs only the relevant lines that contain the word SSH. To do the verification, run:
ssh_port_t tcp 2222, 22
Next, to allow the new port in your firewall, you have to run add the port to the public zone permanently. Replace the number 2222 below with your own port number that you set in the SSH configuration file and run:
firewall-cmd --permanent --zone=public --add-port=2222/tcp
You must restart the firewall for the changes to be done. This is extremely important is that otherwise, if your changes are not applied you will be locked out of SSH to this server if you logout! Reload firewall using:
Once the firewalld and SELinux configuration is complete (or if you have skipped to this section), you can test that your new SSH port configuration is working. The command ss calls a utility that investigates Linux sockets, which is just a complicated term for a communication point for the server. This command will let you find the port that is listening for SSH on your server, and we can search the output for the exact port numbers for SSH. To do this, first enter:
The output will look something like this:
Ensure that you see your new port number in the output, much like we can see 2222 in the line above for our port we are using in the tutorial.
Выводы
Если вы управляете несколькими системами, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH . Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности вашей системе, снижая риск автоматических атак.
Для получения дополнительной информации о том, как настроить SSH-сервер, прочтите руководство по SSH / OpenSSH / настройке Ubuntu и официальную страницу руководства по SSH .
Выводы
Порт SFTP по умолчанию — 22. Однако вы можете изменить порт на любой номер.
Если вы регулярно подключаетесь к нескольким системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Заключение
Итак, мы рассмотрели установку и запуск межсетевых экранов в операционных системах Linux, таких как Ubuntu, Debian и Centos. А также, мы научились открывать доступ для подключений к нашему серверу через определённые порты и протоколы.
Выводы
В этом руководстве вы узнали, как изменить порт SSH на сервере Linux. Вам также следует настроить аутентификацию на основе ключей SSH и подключаться к серверам Linux без ввода пароля.
Conclusion
Congratulations! Now you have successfully configured a new port for SSH on your CentOS 7 server. If this introduction to the basics was helpful to you, please feel free to share this tutorial with your friends.

