![Нови концепции за бутони на прозореца на Ubuntu от Izo правят славен смисъл](/f/9496d87a8bfe0cde99ed64937c783183.png?width=100&height=100)
А Сертифициран инженер на Linux Foundationе квалифициран професионалист, който има опит за инсталиране, управление и отстраняване на проблеми с мрежовите услуги в Linux системи и отговаря за проектирането, внедряването и текущата поддръжка на системната архитектура.
Представяме програмата за сертифициране на Linux Foundation.
В Част 1 от тази серия, ние показахме как да инсталираме squid, прокси сървър за кеширане за уеб клиенти. Моля, вижте този пост (връзката е дадена по -долу), преди да продължите, ако все още не сте инсталирали squid на вашата система.
В тази статия ще ви покажем как да конфигурирате прокси сървъра Squid, за да предоставите или ограничите достъпа до Интернет и как да конфигурирате http клиент или уеб браузър, за да използвате този прокси сървър.
Операционна система: Debian Wheezy 7.5. IP адрес: 192.168.0.15. Име на хост: dev2.gabrielcanepa.com.ar.
Операционна система: Ubuntu 12.04. IP адрес: 192.168.0.104 Име на хост: ubuntuOS.gabrielcanepa.com.ar.
Операционна система: CentOS-7.0-1406. IP адрес: 192.168.0.17 Име на хост: dev1.gabrielcanepa.com.ar.
Нека си припомним, че с прости думи уеб прокси сървърът е посредник между един (или повече) клиентски компютри и определен мрежов ресурс, като най -често срещаният е достъпът до Интернет. С други думи, прокси сървърът е свързан от едната страна директно към интернет (или към свързан рутер към Интернет) и от друга страна към мрежа от клиентски компютри, които ще имат достъп до World Wide Web чрез то.
Може би се чудите защо бих искал да добавя още едно софтуерно приложение към моята мрежова инфраструктура?
1. Squid съхранява файлове от предишни заявки, за да ускори бъдещите трансфери. Да предположим например клиент1 изтегляния CentOS-7.0-1406-x86_64-DVD.iso от интернет. Кога клиент2 иска достъп до същия файл, squid може да прехвърли файла от кеша, вместо да го изтегли отново от интернет. Както можете да се досетите, можете да използвате тази функция, за да ускорите преноса на данни в мрежа от компютри, които изискват чести актуализации от някакъв вид.
2. ACL (Списъци за контрол на достъпа) ни позволяват да ограничим достъпа до уебсайтове и / или да наблюдаваме достъпа за всеки потребител. Можете да ограничите достъпа въз основа на ден от седмицата или време на деня, или домейн, например.
3. Заобикаляне на уеб филтрите става възможно чрез използването на уеб прокси, към който се правят заявки и който връща исканото съдържание на клиент, вместо клиентът да го поиска директно в Интернет.
Да предположим например, че сте влезли клиент1 и искате да получите достъп www.facebook.com чрез рутера на вашата компания. Тъй като сайтът може да бъде блокиран от правилата на вашата компания, вместо това можете да се свържете с уеб прокси сървър и да го накарате да поиска достъп до www.facebook.com. След това отдалеченото съдържание ви се връща отново през уеб прокси сървъра, заобикаляйки правилата за блокиране на рутера на вашата компания.
Схемата за контрол на достъпа на уеб прокси сървъра Squid се състои от два различни компонента:
Основният конфигурационен файл на Squid е /etc/squid/squid.conf, кое е ~5000 редове, тъй като включва както директиви за конфигурация, така и документация. Поради тази причина ще създадем нов squid.conf файл само с редовете, които включват директиви за конфигуриране за наше удобство, оставяйки празни или коментирани редове. За да направим това, ще използваме следните команди.
# mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp.
И тогава,
# grep -Eiv '( ^# | ^$)' /etc/squid/squid.conf.bkp ИЛИ# grep -ve ^# -ve ^$ /etc/squid/squid.conf.bkp>/etc/squid/ squid.conf.
Сега отворете новосъздаденото squid.conf файл и потърсете (или добавете) следното ACL елементи и списъци за достъп.
acl localhost src 127.0.0.1/32. acl localnet src 192.168.0.0/24.
Двата реда по -горе представляват основен пример за използването на ACL елементи.
Двата реда по -долу са списък за достъп правила и представляват изрично прилагане на ACL директиви, споменати по -рано. С няколко думи те показват това http достъп трябва да се предостави, ако заявката идва от локалната мрежа (localnet), или от localhost. По -конкретно какви са разрешените локални мрежи или адреси на локален хост? Отговорът е: посочените в директивите localhost и localnet.
http_access позволяват localnet. http_access позволяват localhost.
В този момент можете да рестартирате Калмари за да приложите всички предстоящи промени.
# service squid restart [Upstart / sysvinit-based distributions] # systemctl рестартирайте squid.service [дистрибуции, базирани на systemd]
и след това конфигурирайте клиентски браузър в локалната мрежа (192.168.0.104 в нашия случай) за достъп до интернет чрез вашия прокси, както следва.
1. Отидете на редактиране меню и изберете Предпочитания опция.
2. Кликнете върху Разширено, след това върху Мрежа раздел и накрая включен Настройки…
3. Проверете Ръчна конфигурация на прокси сървър и въведете IP адрес на прокси сървъра и пристанище където слуша връзки.
Забележка Това по подразбиране Squid слуша на порта 3128, но можете да отмените това поведение, като редактирате списък за достъп правило, което започва с http_port (по подразбиране се чете http_port 3128).
4. Щракнете Добре да приложите промените и сте готови.
Вече можете да проверите дали вашият локален мрежов клиент има достъп до интернет чрез вашия прокси, както следва.
1. Във вашия клиент отворете a терминал и тип,
# ip адрес show eth0 | grep -Ei '(inet.*eth0)'
Тази команда ще покаже текущия IP адрес на вашия клиент (192.168.0.104 на следващото изображение).
2. Във вашия клиент използвайте уеб браузър, за да отворите всеки уебсайт (www.tecmint.com в такъв случай).
3. В сървъра стартирайте.
# tail -f /var/log/squid/access.log.
и ще получите представа на живо за заявките, които се изпълняват Калмари.
Да предположим, че искате изрично да откажете достъпа до този конкретен клиентски IP адрес, като същевременно запазите достъпа до останалата част от локалната мрежа.
1. Определете нов ACL директива, както следва (аз го кръстих ubuntuOS но можете да го кръстите както искате).
acl ubuntuOS src 192.168.0.104.
2. Добавете ACL директива към достъп до локална мрежа списък, който вече е на място, но предварителен с удивителен знак. Това означава, "Разрешете достъп до Интернет на клиенти, съответстващи на директивата ACL на localnet, с изключение на тази, която съответства на директивата ubuntuOS”.
http_access позволяват localnet! ubuntuOS.
3. Сега трябва да рестартираме Squid, за да приложим промените. Тогава, ако се опитаме да прегледаме някой сайт, ще открием, че достъпът е отказан сега.
За да ограничим достъпа до Squid по домейн, ще използваме dstdomain ключова дума в a ACL директива, както следва.
acl забранен dstdomain "/etc/squid/allowed_domains"
Където забранени_домейни е обикновен текстов файл, който съдържа домейните, до които искаме да откажем достъп.
И накрая, трябва да предоставим достъп до Squid за заявки, които не съответстват на горната директива.
http_access разреши localnet! забранено.
Или може би ще искаме да разрешим достъп до тези сайтове само през определено време на деня (10:00 до 11:00 сутринта) само на Понеделник (М), Сряда (W), и Петък (F).
acl someDays time MWF 10: 00-11: 00. http_access позволяват забранени някои дни. http_access отричат забранено.
В противен случай достъпът до тези домейни ще бъде блокиран.
Squid поддържат няколко механизма за удостоверяване (Basic, NTLM, Digest, SPNEGO и Oauth) и помощници (SQL база данни, LDAP, NIS, NCSA, за да назовем само няколко). В този урок ще използваме Основно удостоверяване с NCSA.
Добавете следните редове към вашия /etc/squid/squid.conf файл.
основна програма auth_param/usr/lib/squid/ncsa_auth/etc/squid/passwd. auth_param основни идентификационни данниsttl 30 минути. auth_param основен чувствителен към регистър на. auth_param basic realm Squid прокси-кеширащ уеб сървър за серията LFCE на Tecmint. acl ncsa proxy_auth ЗАДЪЛЖИТЕЛНО. http_access позволяват ncsa.
Забележка: В CentOS 7, плъгинът NCSA за калмари може да бъде намерен в /usr/lib64/squid/basic_nsca_auth, така че променете съответно в горния ред.
Няколко уточнения:
Изпълнете следната команда, за да създадете файла и да добавите идентификационни данни за потребителя гаканепа (пропуснете -° С флаг, ако файлът вече съществува).
# htpasswd -c/etc/squid/passwd gacanepa.
Отворете уеб браузър в клиентската машина и се опитайте да прегледате всеки даден сайт.
Ако удостоверяването успее, се предоставя достъп до заявения ресурс. В противен случай достъпът ще бъде отказан.
Една от отличителните черти на Squid е възможността за кеширане на ресурси, заявени от мрежата, на диск, за да се ускорят бъдещите заявки на тези обекти от същия клиент или други.
Добавете следните директиви във вашия squid.conf файл.
cache_dir ufs/var/cache/squid 1000 16 256. максимален размер на обекта 100 MB. refresh_pattern.*\. (mp4 | iso) 2880.
Няколко уточнения на горните директиви.
Първото и второто 2880 са съответно долна и горна граница за това колко дълго обектите без изрично време на изтичане ще се считат за скорошни и по този начин ще се обслужват от кеша, докато 0% е процентът на възрастта на обектите (времето от последната промяна), че всеки обект без изрично време на изтичане ще се счита за скорошен.
Първи клиент (IP 192.168.0.104) изтегляне a 71 MB .mp4 файл за 2 минути и 52 секунди.
Втори клиент (IP 192.168.0.17) изтегля същия файл за 1,4 секунди!
Това е така, защото файлът се обслужва от Кеш кеш (посочено от TCP_HIT/200) във втория случай, за разлика от първата инстанция, когато е изтеглена директно от интернет (представена от TCP_MISS/200).
The ХИТ и МИСС ключови думи, заедно с 200 http код на отговор, показва, че файлът е бил обслужван успешно и двата пъти, но кешът е бил HIT и Missed съответно. Когато дадена заявка не може да бъде обслужена от кеша по някаква причина, тогава Squid се опитва да я обслужи от Интернет.
В тази статия сме обсъдили как да настроите a Прокси за уеб кеширане на калмари. Можете да използвате прокси сървъра за филтриране на съдържанието, като използвате избрани критерии, а също и за намаляване на латентността (тъй като еднакви входящи заявки се обслужват от кеша, който е по -близо до клиента, отколкото от уеб сървъра, който всъщност обслужва съдържанието, което води до по -бързо прехвърляне на данни) и мрежовия трафик (намалявайки размера на използваната честотна лента, което ви спестява пари, ако плащате за трафик).
Може да искате да се обърнете към Уеб сайт на калмари за допълнителна документация (не забравяйте да проверите и wiki), но не се колебайте да се свържете с нас, ако имате въпроси или коментари. Ще се радваме да чуем от вас!