Как настроить SSH для использования нестандартного порта с SELinux, настроенным для принудительного применения
У SSH есть много хитростей безопасности, одна из которых — настроить службу на использование нестандартного порта. По умолчанию SSH использует порт 22. Если вам нужен простой способ наткнуться на потенциальные попытки взлома, вы можете настроить эту службу на использование другого порта, например 33000.
В дистрибутивах Linux, не использующих SELinux, этот процесс достаточно прост. Однако, если задействован SELinux, вы не можете просто изменить порт, не сообщив системе безопасности о вашем маленьком секрете.
И это именно то, что я собираюсь сделать здесь, настроить Fedora 35 для использования порта 33000 для входящего трафика SSH. Этот же процесс будет работать в любом дистрибутиве Linux, который использует SELinux (например, RHEL, Alma Linux и Rocky Linux).
Сказав это, приступим к работе.
что тебе понадобится
Чтобы внести это изменение, вам потребуется работающий экземпляр дистрибутива Linux, включающий SELinux, а также установленный сервер SSH и пользователь с доступом sudo.
Как изменить порт SSH по умолчанию
Первое, что мы сделаем, это изменим порт по умолчанию, который использует SSH, который находится в файле sshd_config. Откройте этот файл для редактирования с помощью команды:
sudo nano /etc/ssh/sshd_config
В этом файле найдите строку:
#Port 22
Измените эту строку следующим образом:
Port 33000
Сохраните и закройте файл.
Пока не перезапускайте демон, так как сначала нам нужно разобраться с SELinux.
Как предупредить SELinux об изменении
Первое, что мы сделаем, это убедимся, что SELinux знает о SSH. Введите команду:
sudo semanage port l | grep ssh
Вы должны увидеть в списке:
ssh_port_t tcp 22
Итак, SELinux разрешает SSHтрафик через порт 22. Мы изменим его на 33000 с помощью команды:
sudo semanage port a t ssh_port_t p tcp 33000
Теперь, если мы проверим, какой порт используется, он должен вернуться как:
ssh_port_t tcp 33000, 22
Хотя SELinux разрешает порт 22, SSH не будет прослушивать этот порт, так что это не проблема.
Как открыть брандмауэр на порт 33000
Далее нам нужно открыть брандмауэр, чтобы разрешить SSHтрафик через порт 33000. Для этого вводим команду:
sudo firewallcmd addport=33000/tcp permanent
Затем перезагрузите брандмауэр с помощью:
sudo firewallcmd reload
Затем мы отключим стандартный порт SSH через брандмауэр с помощью:
sudo firewallcmd removeservice=ssh permanent
Еще раз перезагрузите брандмауэр с помощью:
sudo firewallcmd reload
Как перезапустить демон SSH и войти в систему
Теперь мы можем перезапустить демон SSH с помощью:
sudo systemctl restart sshd
Войдите на недавно настроенный сервер с помощью:
ssh USER@SERVER p 33000
Где USER — имя удаленного пользователя, а SERVER — IPадрес (или домен) удаленного сервера.
И вот как вы настраиваете SSH для использования нестандартного порта в дистрибутиве Linux, который использует SELinux. Вам следует рассмотреть возможность изменения всех ваших серверов для использования нестандартного порта для службы SSH. Когда вы комбинируете это с другими приемами защиты SSH, это будет иметь большое значение для предотвращения доступа нежелательных пользователей к вашим серверам.