Как изменить SSH-порт в CentOS / RHEL 7/8 и Fedora с помощью SELinux
В этом руководстве мы увидим, как вы можете изменить порт прослушивания службы 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 22
|
Раскомментируйте строку «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 :::*
|