alibek
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Назрело несколько вопросов по SQUID, самому разобраться не получается. А то что нахожу в интернете — либо устаревшее, либо непонятное. Не поможете со следующей задачей? Вводная. Есть открытый хотспот, подсеть 10.10.0.0/16. В 10.10.0.0/24 обитает служебное железо, в частности 10.10.0.250 — это сервер (DNS, DHCP, шлюз, прокси), FreeBSD 8.2 x64, pf, isc-dhcp, Squid 3.3.5 (собранный с опцией TP_PF). Для пользователей DHCP раздает IP-адреса в зависимости от вендора и класса устройства; 10.10.100.0/24 — пользователи с мобильными устройствами (планшеты, мобильники, ноутбуки), 10.10.255.0/24 — остальные пользователи. Нужно сделать так, чтобы 10.10.100.0/24 прозрачно проксировались. На сервере есть интерфейсы и маршруты: vlan900, 10.10.0.250/16 - сервер для пользователей хотспота vlan20, 10.1.128.10/24 - основной интерфейс, доступ в интернет 0.0.0.0/0 via 10.1.128.1 - маршрут по умолчнию Конфигурация squid.conf (полная под спойлером): Код: acl IP_USERS src 10.10.100.0/24 acl IP_RESTRICTED src 10.10.255.0/24 http_access deny IP_RESTRICTED http_access allow IP_USERS http_access deny all http_port 10.10.0.250:8080 http_port 10.10.0.250:3128 intercept | Подробнее... Эта конфигурация в принципе рабочая. Если я подключаюсь к хотспоту и в настройках браузера вручную задаю прокси-сервер 10.10.0.250:8080, то интернет у меня работает. Если я убираю прокси-сервер в браузере и на сервере в конфигурацию pf.conf добавляю строчку Код: nat on vlan20 from 10.10.100.0/24 -> 10.1.128.10 | тогда интернет тоже работает (через NAT). Но мне нужен прозрачный прокси-сервер, чтобы весь пользовательский трафик заворачивался на него. И когда я в конфигурации pf.conf указываю следующее: Код: rdr on vlan900 proto tcp from 10.10.100.0/24 to any port 80 -> 10.10.0.250 port 3128 pass in on vlan900 proto tcp from 10.10.100.0/24 to 10.10.0.250 port 3128 keep state | то интернета у меня нет, при попытке открытия страницы браузер долгое время висит, затем выдает ошибку по таймауту. Судя по логам прокси-сервера, обращений к нему не поступает (т.е. трафик не перенаправляется). Если я в браузере вручную указываю прокси-сервер 10.10.0.250:3128, то в браузере получаю ошибку "Пустой ответ (нулевой длины)", а сам прокси-сервер, судя по логам, получает ошибку 502. В логе cache.log такие строчки: Код: 2013/07/05 10:29:14 kid1| Accepting HTTP Socket connections at local=10.10.0.250:8080 remote=[::] FD 10 flags=9 2013/07/05 10:29:14 kid1| Accepting NAT intercepted HTTP Socket connections at local=10.10.0.250:3128 remote=[::] FD 11 flags=41 | Из текста вроде бы следует, что Squid сам перехватывает трафик. Однако если я из pf.conf убираю правило для перенаправления трафика, ничего не меняется. Еще один странный момент. Если я выполняю на сервере команду telnet 10.10.0.250 3128, меня отключает. Если я выполняю на сервере команду telnet 10.10.0.250 8080, то подключаюсь успешно и могу сделать запрос GET http://ya.ru. Что я делаю не так? | Всего записей: 42 | Зарегистр. 21-12-2005 | Отправлено: 11:28 05-07-2013 | Исправлено: alibek, 11:42 05-07-2013 |
|