В этом руководстве мы увидим, как вы можете изменить порт прослушивания службы 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.
1 2 |
$ date_format=`date +%Y_%m_%d:%H:%M:%S` $ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$date_format |
Подтверждение:
1 2 |
$ ls /etc/ssh/sshd_config* /etc/ssh/sshd_config /etc/ssh/sshd_config_2021_04_08:15:15:09 |
Шаг 2: Измените порт службы SSH
1 |
$ sudo nano /etc/ssh/sshd_config |
Найдите строку, которая имеет:
1 |
#Port |
Раскомментируйте строку «Port» и настройте новый порт для службы SSH. Я буду использовать порт 33000.
1 |
Port 33000 |
Сохраните изменения и закройте файл.
Шаг 3: Разрешить новый SSH-порт в SELinux
1 2 |
$ sudo semanage port -l | grep ssh ssh_port_t tcp 22 |
Если вы хотите разрешить привязку sshd к настроенному сетевому порту, вам нужно изменить тип порта на ssh_port_t.
1 |
$ sudo semanage port -a -t ssh_port_t -p tcp 33000 |
Убедитесь, что новый порт был добавлен в список разрешенных портов для ssh.
1 2 |
$ sudo semanage port -l | grep ssh ssh_port_t tcp 33000, 22 |
Шаг 4: Откройте порт SSH на Firewalld
Всегда рекомендуется поддерживать службу брандмауэра и разрешать только доверенные службы.
1 2 |
$ sudo firewall-cmd --add-port=33000/tcp --permananet $ sudo firewall-cmd --reload |
Если Firewalld не установлен, используйте yum для его установки и запуска службы.
1 2 3 4 |
$ sudo dnf install firewalld $ sudo systemctl enable --now firewalld $ sudo firewall-cmd --add-port=33000/tcp --permanent $ sudo firewall-cmd --reload |
Теперь вы можете удалить службу SSH.
1 2 |
$ sudo firewall-cmd --remove-service=ssh --permanent $ sudo firewall-cmd --reload |
Шаг 5: Перезапустите службу sshd
Перезапустите службу ssh, чтобы изменения вступили в силу.
1 |
$ sudo systemctl restart sshd |
Проверьте адрес прослушивания для SSH.
1 2 3 |
$ netstat -tunl | grep 33000 tcp 0 0 0.0.0.0:33000 0.0.0.0:* LISTEN tcp6 0 0 :::33000 :::* |
Ваш комментарий будет первым