Как да конфигурираме Squid да ползва refresh patterns
септември 7th, 2009
Squid може да бъде конфигуриран така че да удовлетворява дори най-взискателните конфигурации. При последните версии могат да се конфигурират поне 250 отделни параметъра. Стандартния конфигурационен файл се намира в /etc/squid.conf и заедно с коментарите достига 4600 реда. Конфигурирането на приложението може да се окаже предизвикателство дори за напреднали администратори.
Препоръчително е да имате голяма кеш, която няма да се напълни за по-малко от седмица. Добре е да се запълни за около месец. Разбира се големината на кеша е в зависимост от трафика който минава през мрежата. Колкото е по-голям кешът толкова е по-вероятно файла който се търси.
Refresh patterns указват какво се запазва и какво се обслужва от кеша. По принцип бихте искали сървъра да казва на вашия squid какво и за колко време да кешира. Тези опции се изпращат като HTTP хедъри, които Squid разбира. За нещастие обаче повечето сървъри използват настройките по подразбиране и не може да се спести много трафик.
Refresh patterns са в следния формат:
refresh_pattern [-i] regex min percent max [options]
където min и max са минималното и максималното време в минути, а percent са проценти. Възможните опции са :
- override-expire — игнорира expire хедъра от уеб сървъра.
- override-lastmod — игнорира последния модифициран едър от уеб сървъра.
- reload-into-ims — reload заявката от клиента се трансформита в If-Modified-Since заявка.
- ignore-reload — игнорира client’s no-cache или “reload from origin server” директивите. Заявката може да бъде изпълнена от кеша ако е възможно.
- ignore-no-cache — a no-cache directive from the Web server which makes an object non-cacheable is ignored.
- ignore-no-store — a no-store directive from the Web server which makes an object non-cacheable is ignored.
- ignore-private — a private directive from the Web server which makes an object non-cacheable is ignored.
- ignore-auth — objects requiring authorisation are non-cacheable. This option overrides this limitation.
- refresh-ims — a refresh request from a client is converted into an If-Modified-Since request.
Проверете в конфигурационния файл кои от тези опции са допустими във вашата версия на Squid.
Refresh patterns са ефективни ако няма expire хедър от уеб сървъра или refresh pattern-а съдържа override-expire опцията. Например:
refresh_pattern -i \.gif$ 1440 20% 10080.
Това означава:
- Ако няма expire хедър за всичко обекти, чиито имена завършват на .gif or .GIF (това са картинки) тогава:
- ако не са по стари от 1,440 минути(колко време обекта е бил в кеша), тогава обслужи обекта и спри
- ако обекта е по стар от 10,080 минути, копирай го от уеб сървъра и спри
- ако възрастта е между минималната и максималната стойност , използвай lm-factor за да определиш дали обекта е валиден. lm-factor е отношението между възрастта на обекта в кеша и периода за който се променя на уеб сървъра като процент. Така че ако обекта е бил създаден преди 10,000 минути на уеб сървъра и е бил в кеша за 1,800 минути lm-factor-а е 1,800/10,000 = 18%.
- Ако lm-factor-а е по-малко от процента в нашия refresh pattern (20%) тогава обслужи обекта и спри
- в противен случай копирай нова версия от уеб сървъра.
За обекти, които много рядко се променят под едно и също име(видео, картинки, звуци, изпълними файлове, архиви) може да накарате Squid да ги пази за по-дълго време в кеша:
refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 override-expire ignore-no-cache ignore-no-store ignore-private refresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff)$ 10080 90% 43200 override-expire ignore-no-cache ignore-no-store ignore-private refresh_pattern -i \.index.(html|htm)$ 0 40% 10080 refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320 refresh_pattern . 0 40% 40320
Понякога, за нещастие от наша гледна точка, сървъри като youtube.com, правят всичко възможно за да предотвратят кеширане на тяхното съдържание. По-горните опции би трябвало да ви помогнат да преодолеете това тяхно поведение.
Refresh patterns се изпълняват за всички заявки от горе надолу докато се намери правило което съответства. Последното правило ще съответства на всички заявки, които не съответстват на нито едно правило.
По принцип Squid няма да кешира динамично съдържание. Динамичното съдържание отговаря на “cgi-bin” или “?”. Тази опция се активира в по-новите версии на Squid чрез refresh_pattern (/cgi-bin/|\?) 0 0% 0. Това ви дава възможност да определите кои сайтове имат динамично съдържание и кои могат да прескачат това правило. Ако направите следния refresh pattern:
refresh_pattern -i movies.com/.* 10080 90% 43200 refresh_pattern (/cgi-bin/|\?) 0 0% 0
Тогава дори в адреса на movies.com да има “?” съдържаните ще се кешира ако всички други условия са спазени.
Squid прави доста DNS заявки. По една dns заявка за всяка http заявка. Добра идея е да се инсталира кеширащ DNS сървър, за да се намали броя на DNS заявките.
Сайтове като Microsoft-ския windowsupdate.com, които се ползват от много компютри за да си обновяват операционните системи, са тези, които използват най-много трафик. За нещастие обаче тези сайтове не могат да се кешират понеже предлагат частични отговори (http код 206), които не могат да бъдат кеширани от Squid на този етап. В такъв случай бихте могли да ограничим трафика към тези сайтове в определен период.
Тук конфигурираме ограничение 64Kbps (8KBps), при който трафикът за windowsupdate.com по време на пиковите периоди от 10:00-16:00 ще е ограничен на 64Kbps.
acl winupdate dstdomain .windowsupdate.com acl peakperiod time 10:00-16:00 delay_pools 1 delay_class 1 1 # 64 Kbit/s delay_parameters 1 8000/8000 delay_access 1 allow winupdate peakperiod
След като направих гореспоменатите промени, Squid започна да кешира до 26-37%, за разлика от 8% преди това.
Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
Инсталиране на Tor. The Slackware way.
юни 22nd, 2009
Ще ви представя един много лесен начина за инсталиране на Tor под Slackware.
Следващата процедура работи само ако имате инсталиран slapt-get.
Стъпка 1:
Отваряте /etc/slapt-get/slapt-getrc и добавяте в края :
SOURCE=http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-$version/
като заменяте $version с версията от /etc/slackware-version на вашия Slackware.
Стъпка 2:
root@darkstar:~#slapt-get –update
Стъпка 3:
root@darkstar:~#slapt-get –install tor-0.2.0.34-i486-1sl tork-0.31-i486-1as privoxy-3.0.12-i486-1ng
Стъпка 4:
Вече може да ползвате Tor.
Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »
SSH Тунел + SOCKS прокси пренасочване = Сигурна връзка в интернет
февруари 7th, 2009
Как да опазим сигурността на даните, които преминават през така нашумялите вече публични мрежи. Дали ще се намираме в кафене и ще ползваме базплатна WiFi мрежа или някъде другате, днес не е от много голямо значение. Всеки, които е почел някоя статия в интернет, може да слуша в тези публични мрежи и при малко късмет да се докопа до някоя парола. Тук ще представя един лесен начин да си криптирате връзката до сигурен сървър с помощта на ssh. OpenSSH е включен във всяка дистрибуция, така че няма да има нужда от никакво инсталиране на допълнителен софтуер.
Можете да ползвате “-D” опцията на openssh за създаване на SOCKS прокси.
Използвайте командата:$ssh -D 9999 username@ip-address-of-ssh-server
Това ви свързва с сървъра, който сте указали с “ip-address-of-ssh-server”. Може би е ненужно да се споменав, че вие (username) трябва да имате ssh достъп до сървъра. Освен това, тази команда ще създаде SOCKS прокси на порт “9999″ на вашия компютър. Това е тунела до сървъра. Сега всичко което трябва да направите е да настроите Firefox да използва SOCKS прокси. Адреса на проксито е “localhost” с порт 9999.
Когато сърфирате в интернет всичките връзки, които правите минават през тунела, които току що направихте т.е. все едно се намирате на отдалечения компютър, към който сте направили тунел. Освен това всичките данни, които преминават през тунела ще бъдат криптирани.
Други програми също подържат SOCKS проксита. Ако има такива, които не могат да ползват прокси може да разгледате програмата proxychains.
Винаги може да ползвате такива технологии за да създавате защитни стени за сърфиране или да заобикаляте най-различни видове ограничения базиране на базата на ип адрес например. Това е един от най-лесните начини да предпазите вашия трафик, когато се намирате на публично място.
Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии | No Comments »