У меня есть машина Arch Linux за брандмауэром. Я могу открыть переадресацию порта для порта ssh. Я хочу создать пользователя, которого можно будет использовать только для прокси socks.
ssh -N -D 5000 user@server -p9000
5000
будет локальным портом, который пользователь использует для прокси socks5
server:9000
это ssh-порт сервера (перенаправление портов)
-N
означает, что терминал открывать нельзя. Я создам пользователя с оболочкой по умолчанию /sbin/nologin
.
Теперь проблема в том, что пользователь может перенаправить локальные порты (-L8080:server2:80
), и я хочу этого избежать.
Также я хочу, чтобы прокси не подключался к чему-либо во внутренней сети сервера.
Это легко достижимо или нет?
Есть ли другие подводные камни, о которых я должен подумать?
Вы можете запретить локальную пересылку в sshd_config
, например:
Match User your_user
AllowTcpForwarding no
PermitOpen none
Это не должно влиять на динамическую пересылку / прокси-сервер SOCKS.
Также я хочу, чтобы прокси не подключался к чему-либо во внутренней сети сервера.
Это нужно настроить где-нибудь еще, а не в ssh
.
Так как Jakuje упомянуто, вы можете использовать параметры, чтобы запретить пересылку.
Ограничение исходящего трафика владельцем
Также я хочу, чтобы прокси не подключался к чему-либо во внутренней сети сервера.
Вы можете использовать iptables owner
модуль, чтобы разрешить определенным группам и пользователям исходящие сообщения в OUTPUT
правила для определенных мест, таких как ваш сервер шлюза ssh, но затем заблокируйте все остальное. Модуль владельца может соответствовать gid или uid. Этот метод также обычно используется вместе с Tor.
Вы также можете использовать это, чтобы разрешить определенным демонам обращаться к определенным службам. например При использовании ldap вы можете разрешить учетной записи службы ldap запрашивать ваш сервер ldap и ничего больше.
Если вы используете iptables в этом поместье, вы можете сначала разрешить (но зарегистрировать) трафик, чтобы знать, что было бы отброшено.