Ограничьте Deluge только на tun0, но разрешите Deluge Web UI через eth0.

Вопрос или проблема

После множества поисков я смог ограничить сетевой трафик deluge только интерфейсом VPN tun0 с помощью следующей команды:

sudo iptables -A OUTPUT -m owner --uid-owner deluge \! -o tun0 -j REJECT

Но теперь я не могу получить доступ к WebUI через eth0 на порту 8112 (т.е. 192.168.0.23:8112)

Могу ли я использовать другое правило iptables, чтобы обеспечить доступ к WebUI в локальной сети?

Это заставит deluge использовать только VPN-туннель с исключением для вашей локальной подсети.

iptables -A OUTPUT -m owner --uid-owner deluge ! -d 192.168.1.0/24 \! -o tun0 -j REJECT

Логика такова, что блокируется весь ВЫХОД, который не является VPN-туннелем, за исключением локальной подсети.

Убедитесь, что вы проверили, каким пользователем использует deluge. и отрегулируйте подсеть в соответствии с вашей. Также проверьте в ifconfig имя вашего туннеля, в моем примере, tun0.

Другой способ — разрешить только VPN-соединение и веб-интерфейс через eth0, а все остальное заблокировать:

-A INPUT -s my.vpn.net -i eth0 -p udp -m udp --sport 1194 -j ACCEPT
-A INPUT -s my.local.ip -i eth0 -p udp -m udp --sport 8112 -j ACCEPT
-A INPUT ! -i tun0 -j DROP
-A OUTPUT -d my.vpn.net -o eth0 -p udp -m udp --dport 1194 -j ACCEPT
-A OUTPUT -d my.local.ip -i eth0 -p udp -m udp --sport 8112 -j ACCEPT
-A OUTPUT ! -o tun0 -j DROP

Использование контейнеров (LXC/LXD/Docker):

если вы запускаете интерфейс wireguard на хосте, затем добавляете интерфейс в контейнер, в котором работает deluge как единственный интерфейс, доступ будет ограничен только интерфейсом wireguard.

Вы можете добавить прокси-устройство, которое привязывается к порту webui на localhost внутри контейнера и прослушивает любой адрес на хосте.

iptables не требуется.

Ответ или решение

Теория:

Вопрос, который перед нами стоит, связан с управлением сетевыми потоками Deluge через интерфейс VPN, сохраняя при этом доступ к его веб-интерфейсу через интерфейс Ethernet. Такой подход особенно актуален для обеспечения безопасности и конфиденциальности приложения, ограничивая его сетевую активность конкретным каналом, в данном случае — через VPN. Это минимизирует утечки данных через основные сетевые интерфейсы.

iptables в данном контексте — мощный инструмент для фильтрации пакетов в Linux, который может контролировать, каким образом приложения могут связываться с сетями. Вы, как ИТ-специалист, можете использовать iptables для настройки методов обработки трафика.

Пример:

  1. Ограничение трафика Deluge через VPN-интерфейс tun0 было достигнуто с помощью следующей команды:
sudo iptables -A OUTPUT -m owner --uid-owner deluge ! -o tun0 -j REJECT

Эта команда запрещает всем исходящим соединениям от пользователя Deluge покидать ваш компьютер, если они не проходят через интерфейс tun0. Однако она также препятствовала доступу к веб-интерфейсу через eth0.

  1. Оптимизация до доступа локальной сети:
iptables -A OUTPUT -m owner --uid-owner deluge ! -d 192.168.1.0/24 ! -o tun0 -j REJECT

Данный подход разрешает трафик внутри локальной сети, что позволяет доступ к веб-интерфейсу Deluge через интерфейс eth0 на адресе 192.168.0.23:8112. Важно настроить корректный диапазон IP-адресов (например, 192.168.1.0/24), который соответствует вашей локальной сети.

  1. Расширенное использование iptables:

Дальше можно использовать набор правил, чтобы настроить допуски делегации сетевого трафика от разных источников и к разным портам с учетом использования вашего VPN и локальной сети:

-A INPUT -s your.vpn.ip -i eth0 -p udp --sport 1194 -j ACCEPT
-A INPUT -s your.local.ip -i eth0 -p tcp --dport 8112 -j ACCEPT
-A INPUT ! -i tun0 -j DROP
-A OUTPUT -d your.vpn.ip -o eth0 -p udp --dport 1194 -j ACCEPT
-A OUTPUT -d your.local.ip -o eth0 -p tcp --dport 8112 -j ACCEPT
-A OUTPUT ! -o tun0 -j DROP

Данный набор правил позволяет входящие пакеты на порт 8112 для локального IP и VPN-пакеты для eth0 с соответствующими портами, блокируя весь остальной трафик, который не проходит через интерфейс tun0.

Применение:

Для применения вышеуказанных методов важно учитывать следующие шаги:

  • Проверьте, под каким пользователем работает Deluge, и удостоверьтесь, что вы задаете правильный UID в командах iptables.
  • Вместо использования IP-адресов и портов по умолчанию замените их на актуальные для вашей сети.
  • Если вы используете контейнеры, такие как Docker, настраивайте их, добавляя интерфейсы сетей напрямую к контейнеру, минимизируя необходимость в дополнительных iptables-правилах. Это может упростить управление трафиком: вы добавляете интерфейс wireguard в контейнер Deluge с единственным интерфейсом связи.
  • Не забывайте тестировать настройки после их применения — используйте инструменты для мониторинга сетевого трафика, чтобы удостовериться, что настройки работают как ожидалось.

На практике данный подход позволит достичь высокого уровня безопасности и конфиденциальности, одновременно сохранив нужный функционал для пользователя в локальной сети. Это пример грамотного применения системного администрирования и управления сетями с использованием iptables в Linux.

Оцените материал
Добавить комментарий

Капча загружается...