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

Firejail не работает через SSH-туннель socks5

У меня есть сервер Ubuntu 18.04, на котором я создал две пары виртуальных интерфейсов (veth0a & veth0b) и назначил конец одного интерфейса (veth0b) новому сетевому пространству имен (netns0):

ip netns add netns0
ip netns exec netns0 ip link set lo up
ip link add veth0a type veth peer name veth0b
ip link set veth0b netns netns0

Затем я использовал firejail, чтобы заставить определенного пользователя (тестового пользователя) использовать это новое пространство имен по умолчанию, установив /usr/bin/firejail в качестве оболочки по умолчанию для этого пользователя и добавив следующее в /etc/firejail/login.users файл:

test-user: --netns=netns0

Я провел следующий тест, чтобы убедиться, что это работает:

  1. Бегать tshark -i veth0a -f "port 443" из корневой учетной записи
  2. SSH на сервер как тестовый пользователь
  3. Бегать curl https://1.1.1.1 как пользователь SSH

Выходные данные tshark показывают правильный IP-адрес источника veth0b для трафика 1.1.1.1.

Проблема, с которой я сталкиваюсь, заключается в попытке использовать учетную запись тестового пользователя для установки динамической переадресации портов socks5 через SSH:

ssh -D 10000 -q -C -N test-user@server_ip

Выполнение этой команды с моего ноутбука или рабочей станции позволяет мне установить локальный сервер socks5 на порт 1000 и туннелировать его через SSH-соединение. Установив его как локальный прокси-сервер socks5 и перейдя к https://api.ipify.org демонстрирует, что прокси-сервер работает и что мой ноутбук использует IP-адрес сервера.

Проблема в том, что трафик sock5 не проходит через правильное пространство имен. Другими словами, при просмотре веб-страниц на моем ноутбуке при подключении к серверу socks5 через ssh-соединение тестового пользователя мой трафик не отображается в tshark -i veth0a.

Требуется ли дополнительный шаг для обеспечения того, чтобы туннель переадресации портов также использовал firejail? Влияет ли установка оболочки в / etc / passwd только на оболочку интерактивного входа? Нужно ли мне также изменить неинтерактивную оболочку пользователя на /usr/bin/firejail? Если да, то как мне это сделать?

Любая помощь будет принята с благодарностью.