КампутарыПраграмнае забеспячэнне

Настройка Squid для пачаткоўцаў. Як наладзіць на Squid проксі-сервер

Squid - распаўсюджаная ў асяроддзі праграмістаў, сістэмных адміністратараў і энтузіястаў камп'ютэрных сетак рашэнне для стварэння эфектыўнага проксі-сервера і кіравання ім. Праграма асабліва прывабная тым, што яна кросплатформавая. Гэта значыць ўсталёўваць і запускаць яе можна як у Linux і іншых АС, адпаведных архітэктуры Unix, так і ў Windows. Магчымасці дадзенага інструмента - самыя выбітныя. Якім чынам іх можна задзейнічаць? Ці ёсць асаблівасці ў наладзе праграмы ў залежнасці ад канкрэтнай АС?

Агульныя звесткі аб Squid

Што такое Squid? Пад гэтай назвай вядомы асабліва прадукцыйны проксі-сервер, які выкарыстоўваецца часцей за ўсё з вэб-кліентамі. З яго дапамогай можна арганізоўваць адначасовы доступ да Інтэрнэту для некалькіх карыстальнікаў. Іншае характэрнае ўласцівасць Squid заключаецца ў тым, што ён можа кэшаваць розныя запыты. Гэта дазваляе паскараць атрыманне файлаў, так як паўторна запампоўваць іх з Інтэрнэту не трэба. Проксі-сервер Squid таксама можа рэгуляваць хуткасць інтэрнэт-канала пры суаднясенні яе з фактычнай нагрузкай.

Squid адаптаваны для выкарыстання на Unix-платформах. Аднак ёсць версіі Squid для Windows і многіх іншых папулярных АС. Дадзеная праграма, гэтак жа як і многія аперацыйныя сістэмы, заснаваныя на канцэпцыі Unix, бясплатная. Яна падтрымлівае пратаколы HTTP, FTP, SSL, дазваляе наладжваць гнуткі кантроль над доступам да файлаў. Squid таксама запісвае ў кэш DNS-запыты. Пры гэтым можна наладзіць і празрысты Squid-проксі, гэта значыць працу сервера ў фармаце, калі карыстальнік не ведае, што звяртаецца да Сеткі праз яго, а не наўпрост. Такім чынам, Squid - гэта магутны інструмент у руках сістэмнага адміністратара або пастаўшчыка камунікацыйных паслуг.

Практычная карыснасць Squid

У якіх выпадках Squid можа быць найбольш карысным? Напрыклад, гэта можа быць задача, пры якой неабходна ажыццявіць эфектыўную інтэграцыю некалькіх кампутараў у сетку і забяспечыць для іх доступ у Інтэрнэт. Мэтазгоднасць выкарыстання проксі-сервера ў дадзеным выпадку заключаецца ў тым, што запыты паміж ім і браўзэрам канкрэтнага ПК ажыццяўляюцца хутчэй, чым у выпадку ўзаемадзеяння карыстальніка з Інтэрнэтам напрамую. Таксама пры выкарыстанні Squid кэш ў самым браўзэры можна адключыць зусім. Падобная функцыя вельмі запатрабаваная ў асяроддзі карыстальнікаў.

склад Squid

Рашэнне, пра які ідзе гаворка, складаецца з некалькіх кампанентаў. Фактычна гэта пакет праграмнага забеспячэння. У яго структуры - дадатак, з дапамогай якога запускаецца сервер, а таксама дапаўняльная яго праграма для працы з DNS. Цікавая яе асаблівасць складаецца ў тым, што яна запускае працэсы, кожны з якіх функцыянуе незалежна ад іншых. Гэта дазваляе аптымізаваць узаемадзеянне сервера з DNS.

ўстаноўка праграмы

Ўстаноўка Squid звычайна ніякіх складанасцяў не выклікае. Вельмі лёгка ставіцца праграма на Linux: дастаткова ўвесці каманду $ sudo apt-get install squid.

Што тычыцца Squid для Windows, тут усё крыху больш складана. Справа ў тым, што дадзеная праграма не мае выкананых файлаў - асноўных элементаў прыкладанняў для АС ад Microsoft.

Аднак ўстаноўка Squid на Windows - задача, вырашальная цалкам аператыўна. Неабходна знайсці на сайце squid-cache.org або рэлевантныя яму рэсурсах дыстрыбутыў, які змяшчае файлы тыпу .bat, якія ў чымсьці блізкія традыцыйным для Windows выкананым. Пасля гэтага варта скапіяваць іх у асобную тэчку на дыску. Затым неабходна запусціць Squid ў якасці сістэмнай службы. Пасля гэтага праграму можна выкарыстоўваць як проксі праз браўзэр ПК. Можна сказаць, што на гэтым ўстаноўка Squid завершана.

У дыстрыбутыве проксі-сервера практычна заўсёды змяшчаецца канфігурацыйны файл тыпу .conf. Ён з'яўляецца галоўным інструментам налады доступу да Інтэрнэту з кампутара карыстальніка і іншых прылад, аб'яднаных у лакальную сетку пры задзейнічанні Squid.

нюансы налады

Якія нюансы можа ўключаць у сябе налада Squid? Windows - гэта аперацыйная сістэма, у якой праца з проксі-серверам будзе ажыццяўляцца пры дапамозе рэдагавання канфігурацыйных файлаў.

У выпадку з Linux можна задзейнічаць камандны радок для некаторых працэдур. Але ў цэлым у дадзенай аперацыйнай сістэме, гэтак жа як і ў тым выпадку, калі АС, у якой вядзецца налада Squid, - Windows, часцей за ўсё задзейнічаецца файл squid.conf. У ім прапісваюцца пэўныя выразы ( «каманды»), у адпаведнасці з якімі сервер выконвае кіраванне падлучэннямі да сеткі.

Разгледзім, такім чынам, як ажыццяўляецца налада Squid, больш падрабязна. Перш за ўсё неабходна дазволіць карыстальнікам сеткі доступ да сервера. Для гэтага варта выставіць у файле squid.conf адпаведныя значэння ў http_port, а таксама ў http_access. Таксама карысна будзе стварыць спіс, прызначаны для кантролю доступу, або ACL. Налады http_port маюць для нас значэнне, так як наша задача - падрыхтаваць Squid толькі для абслугоўвання канкрэтнай групы кампутараў. У сваю чаргу, такі параметр, як http_access, важны, так як з дапамогай яго мы зможам рэгуляваць доступ да канкрэтных рэсурсаў Сеткі, якую запрошваюць з тых ці іншых адрасоў (магчымыя і іншыя крытэрыі - пратаколы, парты і іншыя ўласцівасці, якія змяшчаюцца ў ACL).

Якім чынам выставіць неабходныя настройкі? Зрабіць гэта вельмі проста.

Дапусцім, мы стварылі кампутарную сетку з дыяпазонам адрасоў, якія пачынаюцца з 192.168.0.1 і якія сканчаюцца 192.168.0.254. У гэтым выпадку ў ACL-наладах варта выставіць наступны параметр: src 192.168.0.0/24. Калі нам трэба наладзіць порт, то ў файле канфігурацыі трэба зрабіць запіс http_port 192.168.0.1 (толькі варта паказаць правільны IP-адрас) і ўвесці нумар порта.

Для таго каб абмежаваць доступ да стваранаму з дапамогай Squid проксі (не лічачы кампутараў, якія ўваходзяць у лакальную сетку), неабходна ўнесці змены ў http_access. Гэта робіцца проста - з дапамогай выразаў ( «каманд» - дамовімся называць іх так, хоць, строга кажучы, у тэксце яны такімі не з'яўляюцца, але ў радку тэрмінала цалкам адпавядалі б ім) allow LocalNet і deny all. Вельмі важна размясціць першы параметр вышэй другога, так як Squid распазнае іх па чарзе.

Праца з ACL: забарона доступу да сайтаў

Уласна, налады доступу магчымыя ў Squid ў вельмі шырокім дыяпазоне. Разгледзім прыклады карысных ў практыцы кіравання лакальнымі сеткамі.

Дастаткова запатрабаваны элемент src. З яго дапамогай можна зафіксаваць IP-адрас кампутара, які ажыццявіў запыт да проксі. Спалучаючы элемент src з http_access можна, напрыклад, дазваляць доступ да сеткі канкрэтнаму карыстальніку, але забараняць аналагічныя дзеянні для ўсіх астатніх. Гэта робіцца вельмі проста.

Пішам ACL (назва групы карыстальнікаў) src (інтэрвал IP-адрасоў, якія трапляюць пад рэгуляванне). Радком ніжэй - ACL (назва канкрэтнага кампутара) src (IP-адрас адпаведнага ПК). Пасля гэтага працуем ужо з http_access. Усталёўваем дазвол на ўваход у сетку для групы карыстальнікаў і асобнага ПК з дапамогай каманд http_access allow. Радком ніжэй фіксуем, што доступ астатнім кампутараў у сетку зачынены камандай deny all.

Налада проксі Squid таксама мяркуе задзейнічанне іншага карыснага элемента, прадугледжанага сістэмай кантролю доступу, - dst. Ён дазваляе зафіксаваць IP-адрас сервера, да якога жадае падлучыцца карыстальнік проксі.

З дапамогай разгляданага элемента мы можам, напрыклад, абмежаваць доступ да той ці іншай падсеткі. Для гэтага можна задзейнічаць каманду ACL (пазначэнне сеткі) dst (IP-адрас падсеткі), радком ніжэй - http_access deny (імя канкрэтнага кампутара ў сеткі).

Яшчэ адзін карысны элемент - dstdomain. Ён дазволіць нам зафіксаваць дамен, да якога жадае падлучыцца карыстальнік. Задзейнічаючы разгляданы элемент, мы можам абмежаваць доступ таго ці іншага карыстальніка, напрыклад, да знешніх рэсурсаў Інтэрнэту. Для гэтага можна задзейнічаць каманду: ACL (група сайтаў) dstdomain (адрасы сайтаў), радком ніжэй - http_access deny (імя кампутара ў сеткі).

Ёсць і іншыя характэрныя элементы ў структуры сістэмы кантролю доступу. У ліку такіх - SitesRegex. З дапамогай дадзенага выказвання можна абмежаваць доступ карыстальнікаў на інтэрнэт-дамены, якія змяшчаюць пэўны слова, напрыклад mail (калі стаіць задача забараніць супрацоўнікам кампаніі звяртацца на іншыя паштовыя серверы). Для гэтага можна задзейнічаць каманду ACL SitesRegexMail dstdom_regex mail, затым ACL SitesRegexComNet dstdom_regex \ .com $ (гэта значыць, што доступ будзе закрыты для адпаведнага тыпу даменаў). Радком ніжэй - http_accesss deny з указаннем кампутараў, з якіх выхад на знешнія паштовыя серверы непажаданы.

У некаторых выразах можа выкарыстоўвацца ключ -i. З дапамогай яго, а таксама такога элемента, як, напрыклад, url_regex, прызначанага для стварэння шаблону для вэб-адрасоў, мы можам забараніць доступ да файлаў з зададзеным пашырэннем.

Напрыклад, з дапамогай каманды ACL NoSwfFromMail url_regex -i mail. * \. Swf $ мы рэгулюем магчымасць звароту да паштовых сайтам, у структуры якіх прысутнічаюць Flash-ролікі. Калі няма неабходнасці ўключаць у алгарытмы доступу даменнае імя сайта, то можна задзейнічаць выраз urlpath_regex. Напрыклад, у выглядзе каманды ACL media urlpath_regex -i \ .wma $ \ .mp3 $.

Забарона доступу да праграм

Настройка Squid дазваляе забараняць доступ карыстальнікаў да тых ці іншых праграмах пры задзейнічанні рэсурсаў проксі-сервера. Для гэтай мэты можа выкарыстоўвацца каманда ACL (назва праграмы) port (інтэрвал партоў), радком ніжэй - http_access deny all (імя праграмы).

Задзейнічанне стандартаў і пратаколаў

Настройка Squid таксама дазваляе сістэмнаму адміністратару задаць пераважны пратакол выкарыстання інтэрнэт-канала. Напрыклад, калі ёсць неабходнасць у тым, каб чалавек з пэўнага ПК выходзіў у сетку праз пратакол FTP, то можна задзейнічаць наступную каманду: ACL ftpproto proto ftp, радком ніжэй - http_access deny (імя кампутара) ftpproto.

З дапамогай элемента method мы можам паказаць тое, якім спосабам павінен ажыццяўляцца HTTP-запыт. Усяго іх 2 - GET і POST, але ў шэрагу выпадкаў пераважны менавіта першы, а не другі, і наадварот. Напрыклад, магчымая сітуацыя, пры якой канкрэтны супрацоўнік не павінен праглядаць пошту праз mail.ru, аднак яго працадаўца не будзе пярэчыць, калі чалавек захоча чытаць на паказаным сайце навіны. Для гэтага сістэмны адміністратар можа задзейнічаць наступную каманду: ACL sitemailru dstdomain .mail.ru, радком ніжэй - ACL methodpost method POST, далей - http_access deny (імя кампутара) methodpost sitemailru.

Такія нюансы, якія ўключае ў сябе налада Squid. Ubuntu выкарыстоўваецца, Windows або іншая сумяшчальная з проксі-серверам АС, - разгледжаныя намі асаблівасці заданні патрэбных параметраў у цэлым характэрныя для любой праграмнага асяроддзя функцыянавання Squid. Праца з дадзеным ПА - неверагодна займальны працэс і адначасова нескладаны ў сілу лагічнасці і празрыстасці асноўных алгарытмаў налады праграмы.

Адзначым некаторыя ключавыя моманты, характэрныя для налады Squid.

На што звярнуць увагу пры наладзе?

Калі ёсць складанасці ў выяўленні файла squid.conf, які з'яўляецца асноўным інструментам канфігуравання сервера, то можна паспрабаваць праверыць каталог etc / squid.

Лепш за ўсё, калі пры працы з файлам, пра які ідзе гаворка, вы будзеце выкарыстоўваць самы просты тэкставы рэдактар: не трэба, каб у радкі, якія адказваюць за наладу проксі-сервера, патрапілі якія-небудзь элементы фарматавання.

У шэрагу выпадкаў можа паўстаць неабходнасць у тым, каб пры працы паказаны быў проксі-сервер правайдэра. Для гэтага існуе каманда cache_peer. Ўпісваць яе трэба так: cache_peer (адрас проксі-сервера правайдэра).

У шэрагу выпадкаў карысна фіксаваць велічыню аператыўнай памяці, якую будзе задзейнічаць Squid. Гэта можна зрабіць з дапамогай каманды cache_mem. Таксама карысна чаргу апісваюць, у якім будуць захоўвацца кэшаваныя дадзеныя, робіцца гэта з дапамогай выразы cache_dir. У першым выпадку цалкам каманда будзе выглядаць як cache_mem (аб'ём АЗП у байтах), у другім - як cache_dir (адрас каталога, колькасць мегабайтаў дыскавай прасторы). Пажадана размяшчаць кэш на самых высокапрадукцыйных дысках, калі ёсць выбар.

Можа спатрэбіцца ўказанне кампутараў, якія маюць доступ да проксі-серверу. Гэта можна зрабіць з дапамогай каманд ACL allowed hosts src (інтэрвал IP-адрасоў кампутараў), а таксама ACL localhost src (лакальны адрас).

Калі ў падлучэннях задзейнічаюцца парты тыпу SSL, то іх таксама можна зафіксаваць з дапамогай каманды ACL ssl_ports port (указанне порта). Адначасова можна забараніць выкарыстанне метаду CONNECT для астатніх партоў, акрамя тых, што пазначаны ў абароненым злучэнні SSL. Гэта зрабіць дапаможа выраз http_access deny CONNECT! SSL_Ports.

Squid і pfSense

У шэрагу выпадкаў разам з разглядаемым проксі-серверам выкарыстоўваецца інтэрфейс pfSense, які ўжываецца ў якасці эфектыўнага міжсеткавага экрана. Якім чынам арганізаваць іх сумесную працу? Алгарытм рашэння дадзенай задачы не занадта складаны.

Для пачатку нам трэба папрацаваць у інтэрфейсе pfSense. Squid, налада якога ўжо ажыццёўлена намі, неабходна будзе ўсталяваць з дапамогай SSH-каманд. Гэта адзін з самых зручных і бяспечных спосабаў працы з проксі-серверамі. Для гэтага неабходна актывізаваць у інтэрфейсе пункт Enable Secure Shell. Для таго каб знайсці яго, неабходна выбраць пункт меню System, затым - Advanced, пасля - Admin Access.

Пасля гэтага трэба спампаваць PuTTY - зручнае прыкладанне для працы з SSH. Далей, выкарыстоўваючы кансоль, неабходна ўсталяваць Squid. Гэта лёгка зрабіць з дапамогай каманды -pkg install squid. Пасля гэтага неабходна таксама ўсталяваць проксі праз вэб-інтэрфейс pfSense. Squid (налада яго параметраў на дадзеным этапе не вырабляецца) можна ўсталяваць, выбраўшы пункт меню System, затым Packages, пасля - Available Packages. У адпаведным акне павінен быць даступны пакет Squid Stable. Выбіраем яго. Неабходна выставіць наладзіць кампутар: Proxy Interface: LAN. Насупраць радка Transparent Proxy можна паставіць галачку. Выбіраем адрас для лога і адзначаем рускую мову як пераважны. Націскаем Save.

Інструмент аптымізацыі рэсурсаў

Настройка Squid дазваляе сістэмным адміністратарам эфектыўна размяркоўваць рэсурсы сервераў. Гэта значыць, у дадзеным выпадку гаворка не ідзе пра забароны доступу на які-небудзь сайт, аднак інтэнсіўнасць задзейнічання канала тым ці іншым карыстальнікам або іх групай можа патрабаваць кантролю. Разгляданая праграма дазваляе вырашыць дадзеную задачу некалькімі спосабамі. Па-першае, гэта задзейнічанне механізмаў кэшавання: за кошт гэтага паўторная загрузка файлаў з Інтэрнэту не спатрэбіцца, так як знізіцца нагрузка на трафік. Па-другое, гэта абмежаванне доступу да сеткі па часе. Па-трэцяе, гэта ўсталяванне гранічных значэнняў для хуткасці абмену дадзенымі ў сеткі ў дачыненні да дзеянняў тых ці іншых карыстальнікаў або канкрэтных тыпаў загружаных файлаў. Разгледзім названыя механізмы падрабязней.

Аптымізацыя сеткавых рэсурсаў шляхам кэшавання

У структуры сеткавага трафіку прысутнічае мноства тыпаў файлаў, задействуемых ў нязменным выглядзе. Гэта значыць, аднойчы запампаваўшы іх на кампутар, карыстальнік можа не паўтараць адпаведную аперацыю. Праграма Squid дазваляе ажыццяўляць гнуткую наладу механізму распазнання падобных файлаў серверам.

Досыць карысная опцыя доследнага намі проксі-сервера - праверка ўзросту файла, які знаходзіцца ў кэшы. Аб'екты, занадта доўга якія размяшчаюцца ў адпаведнай вобласці памяці, варта абнаўляць. Задзейнічанне гэтай опцыі магчыма пры выкарыстанні каманды refresh_pattern. Так, цалкам выраз можа выглядаць як refresh_pattern (мінімальная працягласць часу - ў хвілінах, максімальная доля "свежых" файлаў - у%, максімальны перыяд). Адпаведна, калі файл знаходзіцца ў кэшы даўжэй устаноўленых крытэраў, то, магчыма, спатрэбіцца загрузка яго новай версіі.

Аптымізацыя рэсурсаў шляхам абмежаванняў доступу па часе

Іншы варыянт, які можна задзейнічаць дзякуючы магчымасцям Squid-Proxy, - гэта абмежаванне доступу карыстальнікаў да сеткавых рэсурсаў па часе. Усталёўваецца яно з дапамогай вельмі просты каманды: ACL (імя кампутара) time (дзень, гадзіну, хвіліна). Доступ можна абмяжоўваць для любога дня тыдня, падставіўшы замест «дзень» першую літару слова, якая адпавядае яго назве ў англійскай алфавіце. Напрыклад, калі гэта панядзелак - то M, калі аўторак, то T. Калі ў камандзе няма слова «дзень», то адпаведны забарона будзе ўсталяваны на ўвесь тыдзень. Цікава, што можна таксама рэгуляваць расклад ўваходжання ў сетку, якое ажыццяўляецца карыстальнікамі з дапамогай тых ці іншых праграм.

Аптымізацыя рэсурсаў шляхам абмежавання хуткасці

Досыць распаўсюджаны варыянт - аптымізацыя рэсурсаў з дапамогай рэгулявання дапушчальнай хуткасці абмену дадзенымі ў рамках кампутарнай сеткі. Вывучаецца намі проксі-сервер - найзручны інструмент для вырашэння гэтай задачы. Рэгуляванне хуткасці абмену дадзенымі ў сеткі ажыццяўляецца з дапамогай такіх параметраў, як delay_class, delay_parameters, delay_access, а таксама пры дапамозе элемента delay_pools. Усе чатыры кампанента маюць вялікае значэнне для вырашэння задач, якія стаяць перад сістэмнымі адміністратарамі ў аспекце аптымізацыі рэсурсаў лакальнай сеткі.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.atomiyme.com. Theme powered by WordPress.