Нет Интернета: firejail ubuntu 20.04 --net=eno1 --dns=QQQ.RRR.SSS.TTT
Это тот же случай, когда вопрос без ответа DNS не работает в Firejail.
ВСЯ КОНФИДЕНЦИАЛЬНАЯ ИНФОРМАЦИЯ БЫЛА ИЗМЕНЕНА НА НАБОР ИЗ ТРЕХ ИЛИ ДВУХ БУКВ (ААА и т. д. или XX)
Дело в следующем: у меня есть соединение Ethernet на устройстве eno1, которое я буду использовать для доступа к интрасети компании, и соединение Wi-Fi на устройстве wlp0s20f3, которое я буду использовать для доступа к Интернету.
Если я побегуfirejail --noprofile --nonewprivs --noroot --net=eno1 --hostname=intranet --name=intranet --debug --dns=AAA.BBB.CCC.DDD
, где AAA.BBB.CCC.DDD — DNS-сервер моей компании, у меня нет ни Интернета, ни интранета, хотяip a
показывает:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue состояние НЕИЗВЕСТНО группа по умолчанию qlen 1000(...)
2: eth0-10765@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP группа по умолчанию qlen 1000(...)
Этот «eth0-10765@if2» не является одним из сетевых сетевых адаптеров Ubuntu без ОС.
ip route show
выходы:
по умолчанию через AAA.BBB.CCC.XXX dev eth0-10765AAA.BBB.CCC.0/24 dev eth0-10765 ссылка на область действия прото ядра src AAA.BBB.CCC.ZZZ
ZZZ означает, что это не тот же номер, что и «через по умолчанию» (XXX).
Это часть вывода «загрузки» песочницы:
sbox run: /run/firejail/lib/fnet ifup eth0-10765 Установить верхний фильтр 3000ARP-сканирование eth0-10765, AAA.BBB.CCC.39/24 Диапазон IP-адресов от AAA.BBB.CCC.1 до AAA.BBB.CCC.255 Пробуем AAA.BBB.CCC.ZZZ ... Настройка адреса AAA.BBB.CCC.ZZZ на интерфейсе eth0-10765sbox run: /run/firejail/lib/fnet config интерфейс eth0-10765 2886891220 4294967040 1500 Установить ограничения фильтр 3000 Объявление AAA.BBB.CCC.ZZZ ... Сетевое пространство имен включено
sbox run: /run/firejail/lib/fnet printif Установить фильтр caps 3000 MAC-адрес интерфейса Статус IP-маски lo 127.0.0.1 255.0.0.0 UP
::1eth0-10765 XX:XX:XX:XX:XX:XX AAA.BBB.CCC.ZZZ 255.255.255.0 UP
XX::XX:XX:XX:XX Шлюз по умолчанию AAA.BBB.CCC.XXXDNS-сервер QQQ.RRR.SSS.TTT
Привилегии удаления: pid 6, uid 1000, gid 1000, Force_nogroups 0 Дополнительные группы: 24 Монтирование файловой системы /proc, представляющей пространство имен PID. Базовая файловая система только для чтения: Монтирование /etc только для чтения 1096 1048 259:6 /etc /etc ro,relatime мастер:1 - ext4 /dev/nvme0n1p6 rw,errors=remount-ro
Команда ping недоступна, но я могу запустить любой браузер и не получить никакого сообщения аутентификации в Интернете/интранете/прокси-сервере.
С другой стороны, если я настрою песочницу для работы только с Wi-Fi, ожидая таким образом подключения к Интернету, с помощью команды$ firejail --noprofile --nonewprivs --noroot --net=wlp0s20f3 --hostname=internet --name=internet --debug --dns=8.8.8.8 --caps.drop=all --dbus-system=none
У меня до сих пор нет интернета в браузерах!
Я даже пытался переместить интерфейс в песочницу с помощью командыfirejail --noprofile --interface=eno1 --hostname=intranet --ipc-namespace --name=intranet --debug
Он действительно удаляет интерфейс из голой системы и делает его доступным для песочницы, но без Интернета и шлюза по умолчанию! Это отрывок из «загрузки» песочницы:
sbox run: /run/firejail/lib/fnet ifup lo Установить фильтр ограничений 3000 Настройка адреса AAA.BBB.CCC.39 на интерфейсе eno1 sbox run: /run/firejail/lib/fnet config интерфейс eno1 2886891047 4294967040 1500 Установить фильтр ограничений 3000 Сетевое пространство имен включено
sbox run: /run/firejail/lib/fnet printif Установить фильтр caps 3000 MAC-адрес интерфейса Статус IP-маски lo 127.0.0.1 255.0.0.0 UP
::1 eno1 XX:XX:XX:XX:XX:XX AAA.BBB.CCC.39 255.255.255.0 ВНИЗ
Удаление привилегий: pid 5, uid 1000, gid 1000, Force_nogroups 0 Монтирование файловой системы /proc, представляющей пространство имен PID. Базовая файловая система только для чтения: Монтирование только для чтения /etc1097 1048 259:6 /etc /etc ro,relatime master:1 - ext4 /dev/nvme0n1p6 rw,errors=remount-ro
Еще одна странность заключается в том, что внутри песочницы systemd-resolve не может прочитать информацию для eno1:
$ sudo systemd-resolve --status --no-pager
Глобальная настройка LLMNR: нет Настройка MulticastDNS: нет Настройка DNSOverTLS: нет
Настройка DNSSEC: нет
Поддержка DNSSEC: нет
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa168.192.in-addr.arpa17.172.in-addr .arpa 18.172.in-addr.arpa19.172.in-addr.arpa20.172.in-addr.arpa21.172.in-addr.arpa22.172.in-addr.arpa23.172.in-addr.arpa24.172.in-addr. arpa 25.172.in-addr.arpa26.172.in-addr.arpa27.172.in-addr.arpa28.172.in-addr.arpa29.172.in-addr.arpa30.172.in-addr.arpa31.172.in-addr.arpacorp
dfip6.arpa
домашняя
внутренняя
внутренняя сеть
локальная частная проверка Не удалось получить данные ссылки для 2: неизвестный объект «/org/freedesktop/resolve1/link/_32»
.
Вся эта ситуация заставляет меня думать, что что-то не так с тем, как Ubuntu обращается с пространствами имен, сетями и интерфейсами, и как с этим справляется Firejail. У меня есть возможность использовать другой дистрибутив, если я уверен, что такая операция сработает. С другой стороны, я новичок в пространствах имен, но мне очень любопытно и интересно. Было бы здорово, если бы вы подсказали мне, как запустить то, что я хочу, используя мою настройку, с Firejail или без него.
Еще немного информации:
$ uname -a
Linux Ubuntu 5.15.0-69-generic #76~20.04.1-Ubuntu SMP Пн, 20 марта 15:54:19 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ firejail --version
файрджайл версия 0.9.73
Поддержка времени компиляции:
- всегда принудительно отключать поддержку nonewprivs
- Поддержка AppArmor отключена
- Поддержка AppImage включена
- поддержка chroot включена
- Поддержка прокси-сервера D-BUS включена.
- поддержка передачи файлов включена
- поддержка FireTunnel отключена
- Поддержка IDS отключена
- поддержка сети включена
- протоколирование вывода включено
- поддержка overlayfs отключена
- поддержка частного дома включена
- поддержка частной библиотеки отключена
- частный кэш и tmpfs включены пользователем
- Поддержка SELinux включена
- поддержка пространства имен пользователя включена
- Поддержка песочницы X11 включена.