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

Как настроить, чтобы все клиенты использовали прокси, не внося изменений в их конфигурацию

Я хочу настроить фильтр содержимого для своей сети. У меня настроен и работает squidGuard. Я бы хотел, чтобы все клиенты использовали его. Сюда входят клиенты, которых я не контролирую (BYOD и тому подобное). Как сделать так, чтобы весь трафик проходил через прокси?

Другой вариант - использовать параметр 252 dhcp и задать URL-адрес сценария автоматической настройки прокси. Или вы можете настроить URL http: //wpad/wpad.dat с настройками прокси. Или вы можете сделать и то, и другое. Метод DNS обычно более поддерживается.

Это зависит от возможности установить параметры с DHCP-сервером и клиентами, поддерживающими автоматическую конфигурацию прокси-сервера таким образом. Клиенты Windows и Mac должны работать нормально. Сообщается, что iPad работает, но лично у меня нет опыта в этом отношении и нет уверенности в Android. Формат файла PAC следующий

  function FindProxyForURL(url, host) {

// If the hostname matches, send direct.
    if (dnsDomainIs(host, ".intranet.domain.com") ||
        shExpMatch(host, "(*.abcdomain.com|abcdomain.com)"))
        return "DIRECT";

// If the protocol or URL matches, send direct.
    if (url.substring(0, 4)=="ftp:" ||
        shExpMatch(url, "http://abcdomain.com/folder/*"))
        return "DIRECT";

// If the requested website is hosted within the internal network, send direct.
    if (isPlainHostName(host) ||
        shExpMatch(host, "*.local") ||
        isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
        isInNet(dnsResolve(host), "172.16.0.0",  "255.240.0.0") ||
        isInNet(dnsResolve(host), "192.168.0.0",  "255.255.0.0") ||
        isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0"))
        return "DIRECT";

// If the IP address of the local machine is within a defined
// subnet, send to a specific proxy.
    if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
        return "PROXY 1.2.3.4:8080";

// DEFAULT RULE: All other traffic, use below proxies, in fail-over order.
    return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";

}

Проверять, выписываться http://findproxyforurl.com/example-pac-file/ откуда этот пример. Ваш, вероятно, будет намного проще.

Настройте свой маршрутизатор на использование вашей машины squidguard в качестве «прозрачного прокси». Вы не упомянули, что вы использовали для маршрутизатора, но если он поддерживается, скорее всего, в Интернете есть учебное пособие по настройке его для использования с прокси-сервером.

Вы можете настроить squid как прозрачный кеширующий прокси. Это фактически применяет правило fw для пересылки всех пакетов на порт squid с веб-портов 80.

Пример конфигурации для squid.

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
acl lan src 192.168.1.1 192.168.2.0/24
http_access allow localhost
http_access allow lan

Правила Iptables для активации.

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Если вы используете аутентификацию squid, вам придется пожертвовать, поскольку это способ перехвата сетевого взаимодействия. Источник Вот.