Назад | Перейти на главную страницу

Предварительная маршрутизация SSH на другой внутренний порт

Я работаю над локальным проектом git, и я запускаю отдельную службу SSH на порту 2222 с пользователем без полномочий root. Кроме того, я использую брандмауэр ufw и открыл порт 2222 - я открыл его только для проверки, работает ли соединение с ним должным образом и все в порядке. Поскольку порт по умолчанию для SSH - 22, и я бы не хотел, чтобы пользователи писали дополнительные порты в адресе для доступа к репозиториям, я хочу предварительно маршрутизировать его с 22 на 2222. Также я хочу, чтобы порт 2222 не был доступен извне при предварительной маршрутизации эффективен. По сути, я уже сделал первую часть - я предварительно маршрутизировал трафик с 22 на 2222, и он работает без проблем, если порт 2222 также открыт, но при попытке закрыть порт 2222 также перестает работать соединение с 22 (правило для открытого порта все еще там). Это как-то логично, поскольку кажется, что iptables просто конвертирует порт 22 в 2222 и перенаправляет его в ufw, который затем распознает это и запрещает соединение, потому что порт 2222 не открыт. В настоящее время это то, что у меня есть в before.rules ufw, и оно работает, если также открыт порт 2222:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222

Есть ли способ выполнить эту предварительную маршрутизацию без необходимости открытия порта 2222?