В сообщении от Thursday 06 March 2008 16:55:09 Dmitriy Shadrinov написал(а): > 6 March 2008, Dmitriy Shadrinov написал(а): > > > > На этом сервере есть DHCP, Squid, iptables... Внутри LAN пользователи > > > > получают настройки сети автоматически (DHCP). > > > > Нужно чтобы Сквид работал на eth0, а после авторизации выпускал уже > > > > через ppp0. Соответственно те кто не авторизировался (или вообще не > > > > знает о такой возможности) из LAN продолжали работать через шлюз > > > > eth0. > > > > > > > > Сразу оговорюсь, что вариант пускать всех через PPP0 и разруливать > > > > всех с помощью самого Squid не подходит т.к. в туннеле PPTP скорость > > > > в 4-6 раз медленней чем через eth0 и работать тем кому по долгу > > > > службы не нужна "внешка" становиться совсем невозможно. > > > > > > > > Внешка нужна для "серфинга", почты, бухгалтерии (банк-клиенты) и > > > > конечно же ICQ :) > > > > Если у вас 2 провайдера, то вам потребуются возможности (несколько > > маршрутизационных таблиц), которые предоставляет утилитка ip из пакета > > iproute2 (соответственно, и настройку сети проврдить посредством etcnet). > > И прежде чем настраивать squid, вам нужно разобраться с маршрутизацией. > > > > Во-вторых, вы затронули вопрос достаточно ёмкий, который требует > > проработки и не описали вашей ситуации достаточно детально. Что значит > > "работать на eth0": принимать подключения или делать запросы через > > него??? > > С необходимостью ip я поторопился, но так или иначе они все равно были бы > полезны; route, ifconfig - это уже устаревшие утилиты. > > Прежде всего: > Если внешка у вас доступна только через ppp0 то и настройте основной шлюз > через него. Определитесь с доступом через первого провайдера (какие подсети > через него доступны) и пропишите соответствующие маршруты. > А вот здесь много (для меня) минусов: 1) При таком варианте нужно писать какой-то скрипт, который бы ходил на сайт провайдера, забирал оттуда таблицу BGP, интерпретировал в понятный для route формат команды, прописывал их и хотя бы раз в месяц запускался. 2) Я в таком случае не представляю как мне нужно извернуться, чтобы клиентам без Сквида был недоступен глобальный интернет. Пока на ум приходит только это: iptables -A OUTPUT -p ALL -i ppp0 -j DROP iptables -t mangle -A OUTPUT -m owner --uid-owner (ID Squid) -d ! 127.0.0.1/8 -j ACCEPT iptables -t mangle -A OUTPUT -m owner --uid-owner (ID Squid) -d ! 172.27.1.0/24 -j ACCEPT
А в сквиде стоит: http_port 82.110.110.110:3128 # IP интерфейса eth0 .... .... acl proxy_users proxy_auth REQUIRED tcp_outgoing_address 10.10.10.210 proxy_users # IP интерфейса ppp0 http_access allow proxy_users http_access deny all .... Зуб не дам, что будет работать, но по другому не знаю как. Подскажите. > Далее ограничте с помощью iptables хождение пакетов. Проверьте > net.ipv4.ip_forward: sysctl net.ipv4.ip_forward > > Если это router, то оно должно быть 1. > Это Router и это уже давно работает. > Уже после этого можно приступать к Squid. > _______________________________________________ > Sysadmins mailing list > [email protected] > https://lists.altlinux.org/mailman/listinfo/sysadmins Мне вот интересно, сейчас у многих подобная ситуация т.е. есть один провайдер у которого например очень дорогая "внешка", но есть и другой у которого она дешевле или есть анлимит в большинстве случаев предоставляется через VPN. Так, что никто ещё не боролся с этой ситуацией - Squid слушает на одном интерфейсе (основном), а вот выпускает во "вне" уже через другой - VPN? -- С уважением, Вячеслав. _______________________________________________ Sysadmins mailing list [email protected] https://lists.altlinux.org/mailman/listinfo/sysadmins
