По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности вашему серверу, снижая риск автоматических атак.
Вместо изменения порта гораздо проще и безопаснее настроить брандмауэр, чтобы разрешить доступ к порту 22 только с определенных хостов.
В этой статье объясняется, как изменить стандартный порт SSH в Linux. Мы также покажем вам, как настроить брандмауэр, чтобы разрешить доступ к новому порту SSH.
Изменение порта SSH
Выполните следующие действия, чтобы изменить порт SSH в вашей системе Linux:
1. Выбор нового номера порта
В Linux номера портов ниже 1024 зарезервированы для известных служб и могут быть связаны только с правами root. Хотя вы можете использовать порт в диапазоне 1-1024 для службы SSH, чтобы избежать проблем с распределением портов в будущем, рекомендуется выбирать порт выше 1024.
В этом примере порт SSH изменится на 3452, вы можете выбрать любой порт, который вам нравится.
2. Настройка брандмауэра
Перед изменением порта SSH сначала необходимо настроить брандмауэр, чтобы разрешить трафик на новый порт SSH.
Если вы используете UFW, средство настройки брандмауэра по умолчанию для Ubuntu запускает следующую команду, чтобы открыть новый порт SSH:
sudo ufw allow 3452/tcp
В CentOS инструментом управления брандмауэром по умолчанию является FirewallD. Чтобы открыть новый порт, выполните следующие команды:
sudo firewall-cmd --permanent --zone=public --add-port=3452/tcp sudo firewall-cmd --reload
Пользователям CentOS также необходимо настроить правила SELinux, чтобы разрешить новый порт SSH:
sudo semanage port -a -t ssh_port_t -p tcp 3452
Если вы используете iptables в качестве брандмауэра, следующая команда откроет новый порт SSH:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
3. Редактирование конфигурации SSH
Откройте файл конфигурации SSH /etc/ssh/sshd_config в текстовом редакторе:
sudo nano /etc/ssh/sshd_config
Поиск строки, начинающейся с Port 22. В большинстве случаев эта строка начинается с хеша #. Удалите хэш #и введите новый номер порта SSH, который будет использоваться вместо стандартного порта 22 SSH.
Port 3452
Будьте особенно осторожны при изменении файла конфигурации SSH. Неправильная конфигурация может привести к сбою службы SSH.
Когда вы закончите, сохраните файл и перезапустите службу SSH, чтобы применить изменения:
sudo systemctl restart ssh
В CentOS сервис ssh называется sshd:
sudo systemctl restart sshd
Чтобы убедиться, что демон SSH прослушивает новый порт 3452, введите:
ss -an | grep 3452
Вывод должен выглядеть примерно так:
tcp LISTEN 0 128 0.0.0.0:3452 0.0.0.0:* tcp ESTAB 0 0 192.168.121.108:3452 192.168.121.1:57638 tcp LISTEN 0 128 [::]:3452 [::]:*
Использование нового порта SSH
Теперь, когда вы изменили порт SSH при входе на удаленный компьютер, вам нужно будет указать новый порт.
Используйте опцию -p <port_number> чтобы указать порт:
ssh -p 3452 username@remote_host_or_ip
Заключение
Из этой статьи вы узнали, как изменить порт SSH на вашем сервере Linux. Вы также можете настроить аутентификацию на основе ключей SSH и подключаться к серверам Linux без ввода пароля.
Если вы регулярно подключаетесь к нескольким системам, вы можете упростить рабочий процесс, определив все свои подключения в файле конфигурации SSH.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.