Компьютеры

Как настроить 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

Сохраните и закройте файл.

пссст: Linux 101: что такое переменные среды?

Пока не перезапускайте демон, так как сначала нам нужно разобраться с 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, это будет иметь большое значение для предотвращения доступа нежелательных пользователей к вашим серверам.

пссст: Вопрос: Как открыть порт в Linux?

Related Articles

Back to top button