Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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.
Как проанализировать логи на предмет кто, куда и зачем шарился - смотрите тут.
|
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 не создаёт эту директорию сам. В итоге он не может подняться. Может быть есть решение по-лучше?
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
вверх
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [33 шт.]