я продовжую розпов≥дь про засоби оптим≥зац≥њ користуванн¤м ≤нтернет в Linux. —ьогодн≥ ми будемо позбавл¤тись в≥д ус¤кого мотлоху, що вал¤Їтьс¤ на веб-стор≥нках: банери, л≥чильники, поп-апи та ≥нше. ј зробити це можна за допомогою Privoxy.
ќтож, Privoxy - багатофункц≥ональний прокс≥-сервер з можливост¤ми ф≥льтрац≥њ зм≥сту стор≥нок, блокуванн¤м урл≥в, керуванн¤м куками. ¬≥н маЇ дуже гнучкий файл конф≥гурац≥њ, що даЇ можлив≥сть, затративши певний час, налаштувати прокс≥ на будь-¤ку повед≥нку.
Ѕачу - ус≥ в захват≥ :), тому до справи. ачаЇмо найсв≥ж≥шу верс≥ю програми з≥ стор≥нки http://sourceforge.net/project/showfiles.php?group_id=11118. ¬ моЇму випадку це була верс≥¤ 3.0.3. “епер розпаковуЇмо њњ командою tar -xzf ./ privoxy-3.0.3-stable-src.tar.gz до поточного каталогу. як водитьс¤, перед всановленн¤м треба провести невеличку п≥дготовку системи, а саме: створити користувача privoxy, в≥д ≥мен≥ ¤кого буде запускатись прокс≥. «вичайно, н≥хто не зможе заборонити запускати сервер в≥д ≥мен≥ root'а, але, ¤кщо встановити його на шлюз в ¤к≥й-небудь орган≥зац≥њ ≥ хтось знайде д≥рочку в програм≥...«в≥льненн¤м з роботи може не об≥йтись :). “ому п≥д root'ом кажемо useradd -r privoxy. “епер встановленн¤. ¬оно трохи в≥др≥зн¤Їтьс¤ в≥д звичного - немаЇ скрипта configure. ¬≥н буде створений п≥сл¤ виконанн¤ команд autoheader та autoconf. “епер можна запускати власне скрипт конф≥гурац≥њ. ¬≥н не маЇ ¤кихось особливо корисних ключ≥в, тому ми т≥льки вкажемо, в≥д ≥мен≥ ¤кого користувача треба запускати privoxy: cd ./privoxy-3.0.3-stable ./configure --with-user=privoxy && make && make install Ќаш сервер готовий до роботи. «апускаЇио його (п≥д root'ом) /etc/init.d/privoxy start. “ак ¤к ≥нстал¤тор не створюЇ посилань дл¤ завантаженн¤ privoxy п≥дчас старту системи, доведетьс¤ зробити усе самому: ln -s /etc/init.d/privoxy /etc/rc.d/rc5.d/S22privoxy - дл¤ старту, пор¤дковий номер 22 обраний дов≥льно; ln -s /etc/init.d/privoxy /etc/rc.d/rc6.d/K88privoxy - дл¤ зупинки.
ƒл¤ того, щоб скористатис¤ можливост¤ми прокс≥-сервера, треба налаштувати ваш броузер так, щоб в≥н ходив в ≤нтернет не на пр¤му, а через privoxy. ƒл¤ Mozill'и на панел≥ меню треба в≥дкрити Edit->Preferences->Advanced->Proxies, вибрати Use Proxy ≥ заповнити пол¤ дл¤ HTTP: 127.0.0.1, порт 8118. “епер конф≥гурац≥ю ф≥льтрац≥њ privoxy можна зм≥нювати пр¤мо через броузер, так ¤к сервер маЇ вбудовану веб-стор≥нку, що не потребуЇ встановленн¤ п≥дключенн¤ до ≤нтернет. ÷¤ стор≥нка знаходитьс¤ за адресою http://p.p/ ≥ з нењ можна налаштувати ф≥льтрац≥ю, хоча дл¤ налаштуванн¤ самого сервера доведетьс¤ загл¤нути в конф≥гурац≥йн≥ файли, ¤к≥ лежать у /etc/privoxy.
ќтже, розгл¤немо основний файл конф≥гурац≥њ privoxy - /etc/privoxy/config: - confdir - вказуЇ каталог, де лежать ус≥ конф≥гурац≥йн≥ файли; ус≥ ≥мена файл≥в в подальшому навод¤тьс¤ в≥дносно цього каталога; - logfile - файл, куди буде писатись журнал д≥й privoxy та помилки; - admin-address - e-mail адм≥н≥стратора, ¤кий займаЇтьс¤ privoxy; потр≥бний, ¤кщо сервер працюЇ в локальн≥й мереж≥, дл¤ зв'¤зку з адм≥н≥стратором сервера у раз≥ проблем, або дл¤ того, щоб поздоровити його з днем сисадм≥на :) (до реч≥ в≥дм≥чають це велике св¤то в останню п'¤тницю липн¤); - debug -визначаЇ р≥вень ≥нформативност≥ лог-файлу; ≥снуЇ 13 р≥вн≥в, ¤к≥ можна комб≥нувати будь-¤ким чином, т≥ р≥вн≥, ¤к≥ сто¤ть по замовчуванню, досить ≥нформативн≥, тому, зазвичай, не виникаЇ потреби ѓх зм≥нювати; - listen-address [IP-адреса]:порт - визначаЇ IP ≥ порт, ¤к≥ буде слухати privoxy; по замовчуванню стоњть 127.0.0.1:8118, ¤кщо треба в≥дкрити доступ до сервера з локальноњ мереж≥, треба зам≥нити 127.0.0.1 на реальний IP ≥нтерфейса, ¤кий дивитьс¤ в локалку; - enable-remote-toggle, enable-edit-actions - параметри бул≥вського типу (1/0), ¤к≥ визначають можлив≥сть вимкненн¤ та редагуванн¤ правил ф≥льтрац≥њ через веб-≥нтерфейс в≥дпов≥дно; справа в тому, що будь-хто, маючи дозв≥л на доступ до privoxy, може робити все, що завгодно з його конф≥гурац≥Їю через веб-≥нтерфейс. ќдна справа, коли Їдиний, хто користуЇтьс¤ прокс≥ - ви, але коли через нього ходить увесь гуртожиток... :). «вичайно, у цьому випадку вам доведетьс¤ робити зм≥ни к правилах ф≥льтрац≥њ безпосередньо в файлах конф≥гурац≥њ; - permit-access, deny-access - визначаЇ, кого куди пускати; запис маЇтакий вигл¤д: permit-address зв≥дки/маска куди/маска зв≥дки, куди - IP, або ≥снуюче DNS ≥м'¤; маска - маска п≥дмереж≥ в нотац≥њ CIDR, тобто число, що визначаЇ к≥льк≥сть б≥т в IP-адрес≥, ¤к≥ в≥днос¤тьс¤ до адреси мереж≥: 192.168.12.0/24 - звичайна локалка класу —; - buffer-limit - розм≥р буферу дл¤ збер≥ганн¤ ќ∆Ќќѓ стор≥нки при застосуванн≥ ф≥льтр≥в; - forward - вказуЇ на прокс≥-сервер вищого рангу, через ¤кий будуть проходити ус≥ запити; це може бути прокс≥ вашого провайдера.
<¬орог не пройде!>
“епер перейдемо власне до того, ¤к встановлювати правила ф≥льтрац≥њ. «≥ стор≥нки http://config.privoxy.org/show-status ми можемо перейти до редагуванн¤ файл≥в *.action, ¤к≥ , власне, ≥ м≥ст¤ть правила ф≥льтрац≥њ. раще за все зм≥нювати файл user.action, так ¤к в≥н призначений дл¤ локальних зм≥н, ≥ не затираЇтьс¤ при поновленн≥ програми. ЌатискаЇмо кнопку Edit ≥ опин¤Їмось на стор≥нц≥ з правилами, ¤к≥ вже Ї у цьому файл≥. як видно, практично ус≥ вони пуст≥, ≥ слугують готовими вар≥антами повед≥нки по в≥дношенню до р≥зних ресурс≥в. ћожна користатись ними, або додавати своњ правила. ѕравила перегл¤даютьс¤ у тому пор¤дку, в ¤кому вони ≥дуть у файл≥, файли - утому пор¤дку, в ¤кому вони перел≥чен≥ в файл≥ конф≥гурац≥њ, тобто локальн≥ правила переважають над встановленими по замовчуванню в default.action , поза¤к ≥дуть останн≥ми. ќтож, додаЇмо нову секц≥ю в к≥нц≥ списку кнопкою "Insert new section below" в останньому блоц≥. “епер треба дотати ¤к≥сь "д≥њ" (actions), що будуть застосовуватис¤ у цьому правил≥ - натискаЇмо кнопку Edit у новостворен≥й секц≥њ ≥ бачимо величезний список "д≥й" з невеликими коментар¤ми, ¤к≥ по¤снюють њх призначенн¤. Ќайуживан≥шими, зазвичай, будуть наступн≥: - block блокуЇ запити до ресурс≥в, ¤к≥ п≥дход¤ть до цього правила; - crunch-incoming-cookies, crunch-outgoing-cookies заборон¤Ї прийом та в≥дсиланн¤ кук≥в в≥дпов≥дно; - session-cookies-only збер≥гаЇ куки, що надход¤ть т≥льки дл¤ поточного з'Їднанн¤, п≥сл¤ чого спок≥йно видал¤Ї. «ручно, ¤кщо без кук≥в сайт не працюЇ, а його печиво вам ≥ з доплатою не треба; - handle-as-image ¤вно вказуЇ на те, що даний ресурс - картинка; в стандартних правилах вказано, ща картинками Ї файли з розширенн¤ми gif, jpg ≥ т. д., тому њх не треба описувати. «азвичай використовуЇтьс¤ у пар≥ з block дл¤ того, щоб зам≥сть картинки не з'¤вл¤вс¤ шматок стор≥нки BLOCKED. - kill-popups блокуЇ поп-апи, що знаход¤тьс¤ на стор≥нц≥; - hide-user-agent допомагаЇ прикинутись користувачем IE п≥д Linux :) , зам≥нюючи в≥домост≥ про броузер в HTTP-запит≥ на задану строку. - set-image-blocker встановлюЇ картинку, ¤ка буде зам≥сть банеру - шахматку (pattern), прозору картинку, або вказаний урл; “акож на¤вн≥ ф≥льтри, ¤к≥ провод¤ть буферизоване ф≥льтруванн¤ стор≥нки (розм≥р буферу задаЇтьс¤ в конф≥гурац≥йному файл≥ privoxy), при чому та частина стор≥нки, що не вл≥зла у буфер Ќ≈ ф≥льтруЇтьс¤, це треба мати на уваз≥ приспробах в≥дловити елемент, що не ф≥льтруЇтьс¤. ƒо того ж, стор≥нка в≥ддаЇтьс¤ броузеру т≥льки п≥сл¤ повноњ њњ ф≥льтрац≥њ, а не по м≥р≥ њњ завантаженн¤, що створюЇ враженн¤ упов≥льненн¤ роботи. ‘≥льтри: - filter all-popups ф≥льтруЇ ус≥ поп-апи на стор≥нц≥, в≥дловлюЇ б≥льше см≥тт¤; - filter unsolicited-popups намагаЇтьс¤ ф≥льтрувати т≥льки небажан≥ спливаюч≥ в≥кна, допускаючи по¤ву тих, що з'¤вл¤ютьс¤ на вимогу користувача. Ѕ≥льш≥сть ≥нших д≥й та ф≥льтр≥в вмикнено за замовчуванн¤м дл¤ ус≥х запит≥в, тому њх доведетьс¤ т≥льки вимикати дл¤ певних запит≥в у раз≥ надм≥рноњ параноњдальност≥.
ќбравши усе, що потр≥бно, натискаЇмо Submit. “епер у нас Ї нове правило, настала черга додати шаблони запит≥в, до ¤ких буде застосовуватись правило. нопка Add нам у цьому допоможе :) Ўаблони privoxy мають такий загальний вигл¤д: <домен>/<шл¤х>, обидва елементи не обов'¤зков≥. р≥м того можна застосовувати метасимволи та конструкц≥њ, що застосовуютьс¤ в шеллах при побудов≥ шаблон≥в. Ќаведу к≥лька приклад≥в; www.example.com, www.example.com/- ус≥ запити до даного домену; www.example.com/adv/ - ус≥ запити до каталогу adv/ на www.example.com; /index.html - вказаний файл в корен≥ будь-¤кого домену; .example. , *.example.* - будь-¤кий домен, що маЇ у своЇму склад≥ .example. ; .adv , *.adv - ус≥ домени, що зак≥нчуютьс¤ на .adv; www[1-9a-z].*ad*.c?m - зразок використанн¤ шаблон≥в шелла - задовольн¤ють, наприклад, так≥ домени: www1.adsl.com, wwwz.adv.cam ≥ т.д.
ќсь ≥ усе - нове правило ф≥льтрац≥њ створене ≥ вже д≥Ї, без перезавантаженн¤ privoxy.ѕри бажанн≥ на стор≥нц≥ http://config.privoxy.org/show-url-info ви можете подивитись, ¤к≥ правила застосовуютьс¤ до певного запиту ≥ визначити, чому в≥н блокуЇтьс¤, або не блокуЇтьс¤. «важте, що будуть виведен≥ д≥њ, що застосовуютьс¤ саме до запиту, а не до усього наповненн¤ стор≥нки. ƒл¤ останнього краще дивитись у логи сервера.
” файл≥ *.action кожна секц≥¤ починаЇтьс¤ з набору д≥й та/або ф≥льтр≥в у ф≥гурних скобках. ƒл¤ застосуванн¤ д≥њ, перед њњ ≥м'¤м ставитьс¤ "+", дл¤ в≥дм≥ни д≥њ - "-", назва ф≥льтру записуЇтьс¤ у ф≥гурних скобках. ƒовгу строку можна розбити на дек≥лька, ставл¤чи в к≥нц≥ кожноњ частини "\".ѕ≥сл¤ закритт¤ ф≥гурних скобок, ≥де перел≥к шаблон≥в, по одному в строку. Ќаприклад: { +block \ +handle-as-image } *bannercity.ru *advert*
{ -filter{all-popups} } bambook.com #≥нтернет-магазини любл¤ть поп-апи
ћи налаштували другу ланку зв'¤зки, що маЇ пол≥пшити ефективн≥сть використанн¤ ц≥нного dial-up часу. Ќаступною ланкою буде кешуючий прокс≥-сервер.
P.S. ѕрошу пробачити мен≥ неточност≥, ¤ких ¤ припустивс¤ у перш≥й частин≥ циклу; - дл¤ нормального старту pdnsd треба зупинити named та в≥дм≥нити його автозавантаженн¤, видаливши с≥мл≥нк на /etc/rc.d/init.d/named в каталоз≥ /etc/rc.d/rc5.d; - дл¤ отриманн¤ статусу сервера за допомогою pdnsd-ctl треба у файл≥ конф≥гурац≥њ в секц≥ю global додати строку "status_ctl=on;" .