7

Я хочу иметь возможность предлагать учетные записи SSH на моем сервере Linux, чтобы люди могли использовать для туннелирования SSH. Все учетные записи будут заблокированы без интерактивной оболочки, только для целей туннелирования / переадресации портов. Моя проблема в том, что я не хочу, чтобы они имели доступ к службам, привязанным к localhost, только путем переадресации портов, как показано ниже:

ssh account@server -L 9999:127.0.0.1:3306 & telnet localhost 9999

Это даст им доступ к порту базы данных MySQL по умолчанию. Как я могу остановить это?

Я вижу опции в файле конфигурации для OpenSSH, чтобы разрешить определенные порты / хосты, но не блокировать их. Любая помощь будет принята с благодарностью!

1 ответ1

1

Я сам не пробовал, но параметры --uid-owner и --gid-owner для правил iptables позволяют ограничивать соединения на основе UID и GID. Другими словами, определенные пользователи могут быть лишены возможности устанавливать исходящие соединения на данном интерфейсе.

Так что может быть что-то вроде этого (не проверено), чтобы заблокировать весь доступ к обратной петле:

iptables -A OUTPUT -o lo -m owner --uid-owner {USERNAME} -j REJECT

... или если все ваши заблокированные учетные записи находятся в одной группе:

iptables -A OUTPUT -o lo -m owner --gid-owner {GROUPNAME} -j REJECT

Если вам нужно что-то более детальное, в этом посте nixCraft есть пример того, как разрешить одни порты, но не разрешать другие.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .