Как я могу настроить роутинг прокси-сервера для направления трафика в Интернет через разные сетевые интерфейсы (например, `enp1s0` и `tun0`) с использованием ACL для определения выхода по домену веб-сайта или IP-адресу? Возможно, у вас есть какие-либо рекомендации или примеры кода для этой задачи?
Squid может маршрутизировать только запросы к доменам, потому что он работает на уровне приложения и основан на URL-адресах, которые содержат доменные имена. IP-адреса внутри URL-адресов могут быть переведены в доменные имена с использованием DNS. Без доменного имени Squid не может определить, куда направить запрос. Для настройки роутинга прокси-сервера Squid для направления трафика в Интернет через разные сетевые интерфейсы с использованием ACL, вам нужно будет создать ACL для определения выхода по домену веб-сайта или IP-адресу, а затем настроить правила перенаправления трафика с учетом этих ACL. Пример кода для настройки Squid для направления трафика через определенный сетевой интерфейс в зависимости от домена веб-сайта или IP-адреса: ``` acl enp1s0_acl src enp1s0 acl tun0_acl src tun0 acl domain_acl dstdomain .example.com acl ip_acl dst 192.168.1.1 http_access allow enp1s0_acl domain_acl http_access allow tun0_acl ip_acl tcp_outgoing_address enp1s0 enp1s0_acl tcp_outgoing_address tun0 tun0_acl ``` Этот код позволит маршрутизировать запросы, направленные на домен .example.com, через сетевой интерфейс enp1s0, и запросы к IP-адресу 192.168.1.1 через сетевой интерфейс tun0. Пожалуйста, имейте в виду, что конфигурация Squid может варьироваться в зависимости от ваших требований и среды. Рекомендуется изучить документацию Squid и провести дополнительные тесты перед внедрением изменений в продакшн среде.
По-моемому у вас бардак с правилами и недопонимание принципа работы...
Почему-то мне кажется, что например в наборе
never_direct allow !novpn_domain never_direct allow !novpn_ip4
Второе правило просто никогда не сработает на acl novpn_ip4, т.к. уже первое выдаст для него allow.
С первого взгляда может показаться, что это эквивалент набора:
never_direct deny novpn_domain never_direct deny novpn_ip4
Однако это не так.
в первом (вашем) варианте запрос видаhttp://1.2.3.4
уже наnever_direct allow !novpn_domain
получит allow и все.
Во втором вариантеhttp://1.2.3.4
не попадает в acl novpn_domain, следовательно анализ пойдет дальше.
Попробуйте конфиг что-то вроде:
acl all src 0.0.0.0/0.0.0.0 # IP, которые не должны идти через Сервер №2 acl novpn_ip4 dst 10.8.0.1/24 # Домены, которые не должны идти через Сервер №2 acl novpn_domain dstdomain .ru acl novpn_domain dstdomain .vk.com acl novpn_domain dstdomain .archlinux.org http_port 34004 forwarded_for delete cache_peer 10.8.1.1 parent 34004 0 default always_direct allow novpn_domain always_direct allow novpn_ip4 never_direct allow all http_access allow all