Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||
www.lissyara.su
—> главная
|
|
Появляется синенькое окошко с кучей опций. Я выбрал:
SQUID_UNDERSCORES - разрешил запрещённый символ подчёркивания(_) в именах - мало ли идиотов в интернете...
SQUID_CHECK_HOSTNAMES - пусть проверяет имена.
SQUID_RCNG - стартовый скрипт squid
Он качает много-много патчей и собирается (впрочем, если выпустят новую версию - то патчей первое время не будет :)). После чего топаем в /usr/local/etc/squid и редактируем squid.conf до такого состояния (все настройки даны для прозрачного прокси-сервера, у "непрозрачного" будут отсутствовать пункты httpd_accel_*):
|
Это - самый минимум конфигурации, для прозрачного проксирования, и списков людей, которым можно посещать лишь малое количество сайтов (сайты описаны в файле allowed_sites.conf, а ip компов в файле limited_IP.conf), и списка сайтов на которые ходить нельзя никому (denied_ext.conf). Файлы выглядят примерно так:/usr/local/my_doc_smb/squid/allowed_sites.conf
|
/usr/local/my_doc_smb/squid/limited_IP.conf
|
/usr/local/my_doc_smb/squid/denied_ext.conf
|
По остальным цифирькам:
cache_mem - сколько памяти под кэш потратит (реально в 2.5 раза больше зажрёт. Любит он оперативку. У меня в точно такой конфигурации занимает 297 мегов памяти, примерно через день - когда наберёт объектов в память)
maximum_object_size - максимальный размер объекта сохраняемый на диск (частенько неслушается и сохраняет обекты раза в 2-3 большие)
maximum_object_size_in_memory - максимальный размер объекта хранимого в оперативке
cache_dir - директория для кэша. Должна существовать и юзер от которого работает сквид должен иметь право писать в неё. Там же - ufs - тип файловой системы на которой расположена папка кэша, 2048 - максимальный размер кэша, 64 - число директорий первого уровня
256 - число директорий второго уровня (на директориях экономить не советую, сам столкнулся - кончились папки, но лимит по размеру кэша ещё не был достигнут, инет в итоге работает, но жутко тормозит. Как на модеме хреновеньком.... На 10-ти мегабитной-то линии....)
cache_access_log - местоположение файла логов доступа пользователей к инету - кто, куда, сколько.
cache_log - лог собственно сквида - результаты запусков-остановок, результаты работы с кэшем.
cache_store_log - лог что сохранено в кэше на диске
cache_mgr - е-майл администратора, выводится при ошибках или если доступ к странице запрещён.
visible_hostname - видимое снаружи имя хоста
tcp_outgoing_address - внешний адрес сервера
redirect_program - программа редиректор (занимается анализом запрашиваемых URL и может производить с ними какие-то действия, у меня раньше, таким макаром был прикручен антивирус на проверку входящего http-траффика, а щас висит скрипт срезающий порнуху, от антивиря пришлось отказаться - примерно 30-40% лишнего траффика было, т.к. сайты нынче в основном динамические...)
redirect_children - число процессов программы-редиректора
Затем идут ACL-ы, разрешающие или запрещающие пользование http и поддержка прозрачного проксирования. ACL denied_sites закомментирован, можно пользоваться им самим, но я предпочитаю натравить на него внешнюю программу-редиректор, тогда можно будет вносить в него не сайты целиком, а ключевые слова по которым будет резаться URL - типа sex, deffki, porewo.... Если в запросе будет такое слово (неважно, в середине пути, в имени сервера, или названии файла) то не такой адрес пользователя не пустят. Можно таким макаром зарезать всю графику, например, написать jpg, jpeg, png, gif и всё - графики больше нет :) Можно резать флэши, файлы с нежелательными расширениями, да что угодно....
Учтите, строки типа acl allowed_sites dstdomain "/usr/local/my_doc_smb/squid/allowed_sites.conf" - это одна строка, просто у меня в листинге конфига не влезло и я её так перенёс.
coredump_dir - директория куда будет писаться дамп программы в случае критической ошибки и последующего "выпадания в корку"
pid_filename - имя файла где хранится идентификатор запущенного squid`a
Файлы с запретами и разрешениями (/usr/local/my_doc_smb/squid/allowed_sites.conf,
/usr/local/my_doc_smb/squid/limited_IP.conf,
/usr/local/my_doc_smb/squid/denied_ext.conf) так странно лежат по причине, что из локалки у меня к ним открыт доступ по самбе, просто мне их так удобней редактировать :)
Создаём файлы, папки и запускаем squid:
|
Всё нормально, не считая ругани на пустые файлы ACL. На это можно не обращать внимания, или забить туда какие-ньть адреса. Тогда он ругаться перестанет.
Вот содержимое файла /usr/local/etc/squid/redirector.pl
|
Это простенький перловый скрипт, перебирающий переданный ему URL на соответствие шаблонам лежащим в файле denied_ext.conf, и если они подходят, то вместо этого УРЛа он отдаёт другой - http://mail.my_domain.ru/zaglushka.jpg по которому лежит мелкий рисунок серого цвета (белый неудобно - у меня до кучи он баннеры режет и белые дыры на страницах не смотрятся вообще...)
Ну, а теперь пристегните ремни, сейчас мы попробуем взлететь со всем этим хозяйством (копирайт из старого-старого анекдота):
|
Всё нормально. Добавляем правило в файрволл (ipfw), до divert natd:
|
Где fxp0 - внешний интерфейс, и всё, можно работать. Если на ходу возникает необходимость переконфигурить squid то перезапускать необязательно, можно дать команду
|
или
|
этого вполне достаточно.
Заполняйте файлы с разрешениями-запретами, и пользуйтесь. Клиентов настраивать не нужно - достаточно указать шлюзом по-умолчанию машину со squid - всё остальное сделает ipfw - перекинет пакеты на squid.
Как проанализировать логи на предмет кто, куда и зачем шарился - смотрите тут.
размещено: 2005-09-20,
последнее обновление: 2007-11-08,
автор: lissyara
Roman, 2006-02-05 в 20:22:34
Почему если запретить сайт например www.ya.ru ( в denied_ext.conf)...то не пускает как и надо. А если в адресе ввести просто ya.ru (не www.ya.ru ) то ПУСКАЕТ ???
lissyara, 2006-02-05 в 20:58:25
он сравнивает всю строку. Т.е. если запретить ya.ru то не попадёшь ни на ya.ru ни на www.ya.ru....
vbs, 2006-03-10 в 9:31:57
Здоров, lis!
Спасибо большое, отличная статья! Пробую сделать все как ты говоришь, но что-то не идеть... Или руки у меня кривые, или что-то я незнаю... или...
Но, при запуске squid идет ругань на пустые ACL - что нормально, но и такие сообщения
2006/03/09 19:54:33| WARNING: '0.0.0.0/0.0.0.0' is a subnetwork of '0.0.0.0/0.0.0.0'
2006/03/09 19:54:33| WARNING: because of this '0.0.0.0/0.0.0.0' is ignored to keep splay tree searching predictable
2006/03/09 19:54:33| WARNING: You should probably remove '0.0.0.0/0.0.0.0' from the ACL named 'all'
2006/03/09 19:54:33| WARNING: '127.0.0.1' is a subnetwork of '127.0.0.0/255.0.0.0'
2006/03/09 19:54:33| WARNING: because of this '127.0.0.1' is ignored to keep splay tree searching predictable
2006/03/09 19:54:33| WARNING: You should probably remove '127.0.0.1' from the ACL named 'localhost'
*************************************************
Делаю ps -ax | grep perl
вижу с десяток строк типа
73075 ?? Is 0:00.03 redirect (perl)
73076 ?? Is 0:00.03 redirect (perl)
73077 ?? Is 0:00.03 redirect (perl)
Кстати, в статье по этой команде два одинаковых вывода - это опечатка, или все правильно?
Может подскажешь куда смотреть по поводу WARNING - потому как победить не удалось.
lissyara, 2006-03-10 в 9:40:52
1. За ошибку - пасиб. Там во втором случае sockstat, а не ps
2. Вопросы - в форум, ибо у тя явно не мой конфиг - потому не забудь его приложить...
W01and, 2006-05-23 в 18:20:42
а на эту строчку:
acl limited_IP src \"/usr/local/my_doc_smb/squid/limited_IP.conf"
squid тока у меня ругается?
decode_addr: Invalid IP address '\"'
squid.conf line 1890: acl limited_IP src \"/usr/local/ect/squid/limited_IP.conf"
aclParseIpData: Ignoring invalid IP acl entry: unknown first address '\"'
aclParseAclLine: WARNING: empty ACL: acl limited_IP src \"/usr/local/ect/squid/limited_IP.conf"
bonh, 2006-07-19 в 15:01:41
Ругается на строчу:
acl limited_IP src \
"/usr/local/my_doc_smb/squid/limited_IP.conf"
в ней либо надо "\" убраль либо "src" заменить на "dstdomain"
тогда всё нормально
bonh, 2006-08-28 в 8:49:48
Хорошая статья всё просто и понятно :), для тех кто хочет более углублённоё изучить данный демон советуюю помимо данной статьи зайти на сайт http://squid.opennet.ru/ ;)
chinga, 2006-09-19 в 9:08:46
Вот хорошая статья для начинающих http://www.opennet.ru/base/net/squid_auth.txt.html
Как раз этого мне не хватало 2 недели назад
Max Yurchak, 2006-09-19 в 17:25:25
Всем привет, я кончно могу ошибаться но с таким правилом форварда
fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 via fxp0
у меня не заработало, а заработало вот с каким
fwd 192.168.0.1,3128 tcp from 192.168.0.0/24 to any 80 via fxp0
warwar, 2007-01-12 в 14:05:00
хотелось бы еще рассмотреть вопрос ограничения скорости скачивания файлов самим сквидом как для конкретного пользователя, так и для группы пользователей, причем как на интерфейсе локальной сети, так и на интерфейсе провайдера (возможно и неодного)
AlkB, 2007-02-11 в 12:31:29
Необходимо в squid.conf также добавить строку:
httpd_accel_with_proxy on # иначе при работе в режиме акселератора отключается кеширование
Если ее не добавить, то acl у мнея нормально не работал
lissyara, 2007-02-11 в 15:19:51
в 2.6 сменился формат конфига, все опции типа httpd_accel* более не применяются:
/usr/local/etc/rc.d/squid start
Starting squid.
2007/02/11 15:17:58| parseConfigFile: line 67 unrecognized: 'httpd_accel_host virtual'
2007/02/11 15:17:58| parseConfigFile: line 68 unrecognized: 'httpd_accel_port 80'
2007/02/11 15:17:58| parseConfigFile: line 69 unrecognized: 'httpd_accel_uses_host_header on'
Вместо них добавился параметр в такую строку:
http_port 3128 transparent
evil, 2007-03-19 в 19:12:05
vhost забыл
evil, 2007-03-19 в 19:13:01
http_port 3128 transparent vhost
у меня почему то без vhost отказался работать
Fox, 2007-03-27 в 9:16:38
фря 6.1, перл 5.8.8, сквид 2.6.стабле12
возникла проблема при передаче запроса из сквида в redirector.pl - не резал по шаблонам из denied_ext.conf. оттрассировав, понял - передаются не четыре праметра, а пять: 205.188.153.249:443 66.197.159.133/- - CONNECT - ($url, $who, $ident, $method) = ^(\S+) (\S+) (\S+) (\S+)$/ меняем на ($url, $who, $ident, $method, $hz) = /^(\S+) (\S+) (\S+) (\S+) (\S+)$/, соответсвенно и последний принт-вывод меняем. это так -из личного опыта.
senatum, 2007-06-10 в 14:38:59
Спасибо за старание :)
LMik, 2007-08-02 в 11:26:52
сразу завелось, сделал только наоборот - разрешил все сайты и скриптом проверка на запреты, ну и список разрешенных ипов.
+добавил для приятности
error_directory /usr/local/etc/squid/errors/Russian-1251
rserg, 2007-08-15 в 12:02:19
спасибо за статью!
насчет директории с ошибками, так лучше наверно всетаки юникод использовать :)
а вместо ручного редиректора
redirect_program /usr/local/etc/squid/redirector.pl
использовать squidGuard, где и свои ссылочки можна вносить и фильтрацию для отдельных пользователей и еще куча вкусностей и возможностей
Corvex, 2007-10-10 в 0:38:57
Мне думается, что правильнее указывать http_port int_IP:3128 где int_IP внутренний IP сервера (который смотрит на клиентов). Ибо если указать без IP адреса то сквид слушает на всех интерфейсах.
AlSt, 2007-11-02 в 16:53:16
как ограничивать сайты по отдельным словам:
acl acl_banner url_regex -i "/usr/local/squid/etc/banner"
acl acl_nobanner url_regex -i "/usr/local/squid/etc/nobanner"
http_access allow acl_nobanner
http_access deny acl_banner
и все - это заместо denied_sites
работает в 2.6 stable3
AYM, 2008-03-26 в 23:56:45
К сожалению остался за кадром вопрос о пользователе, от имени которго работает SQUID и о раздаче прав...
Andrey, 2008-11-23 в 8:02:39
Для squid 2.7 никто не напишет статейку, с приведением конфига с пулами? Буду оч. благодарен
Nick, 2009-06-02 в 19:17:05
Привет,
А как обстоит дело с https , pop, smtp, и др. траффом?
lissyara, 2009-06-02 в 19:35:45
Явно лучше, чем со чтением вами документации
CTOPMbI4, 2009-07-12 в 14:39:31
в конфиге нужно указать внешний ип адрес tcp_outgoing_address но у меня динамиком.
Как можно обойти?
CTOPMbI4, 2009-07-12 в 15:10:12
Как сделать авторизацию по логин пасс.?
Igor24, 2010-03-09 в 17:16:43
А что и где нужно поменять, если я к интернет подключаюсь через PPPoE ? Обычный шлюз я установил (достаточно было указать в rc.conf строчку gateway_enable=\"YES\", и прописать DNS провайдера). У всех интернет есть, но я хочу поставить прокси как тут описано. Фаервол встал отлично, все правила прописал. Сквид настроил как тут описано. Но инета теперь ни у кого нет. Видимо надо еще дополнительно писать про интерфейс tun0 (через которое и идет соединение с интернет) но как не знаю... Подскажите, пожалуйста!
Pavel, 2010-06-24 в 10:35:56
Народ а можно сделать сжатие картинок?
Артемка, 2010-11-23 в 17:29:26
В новых версиях не катит ужо )))
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_uses_host_header on
пользуемся http_port 3128 transparent например
remort, 2012-02-14 в 17:16:20
что то так и не освещена тема мультипроцессорности. а именно:
где гарантия что при запуске второго squid'а он не припишется к этому же ядру, на котором уже запущен первый процесс сквида? помоему выбор ядра ОС выбирает сама и в случайном порядке.
zaqwerw, 2012-08-10 в 22:13:02
Переписал бы, а то мб кто комменты не умеет читать и будут думать почему у них все не работает.
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_uses_host_header on
на
http_port 3128 transparent
Дмитрий, 2013-07-08 в 0:14:15
А я пользуюсь бесплатным Zentyal и не парюсь с настройками. Он кстати хорошо русифицирован.
Spileton, 2015-03-30 в 16:52:29
http://libreportal.net/advice/Squid-NCSA.html
http://libreportal.net/advice/squid-IP-autorization.html
Настраивал Squid по этим двум статьям всё думал 2015 почему периодически squid3 дохнет и перестаёт запускаться. Разбираться было всё время лень... Просто всё заного настраивал. А тут полез и выяснил. Он не может достучаться до: /tmp/squid3-cache ... Кажется /tmp чистится вхлам после любого shutdown-а. А сам squid3 не создаёт эту директорию сам. В итоге он не может подняться. Может быть есть решение по-лучше?
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [33 шт.]