Squid прокси с оторизация в домейна на Active Directory

Веднъж разгледахме настройката на squid прокси за начинаещи в Windows среда. След това конфигурирахме squid в "рутера извън кутията" - pfSense. И днес ще покажем как да създадете мощен прокси сървър в Linux Debian. За какво? Факт е, че дори в pfSense не можем да разгърнем пълната мощ на калмарите без тамбура. Ето защо, ако сте изправени пред задачата да направите безкомпромисен прокси сървър, Linux е единствената опция.

оторизация
Какво ще правим? Ами ... например, нека накараме Squid да работи в два режима наведнъж: прозрачен (прозрачен) и нормален. Това е необходимо в случай, че вашата организация има отделна мрежа за гости за входящи хора и искате да филтрирате трафика, но няма желание да създавате / поддържате / издавате допълнителни данни за влизане и пароли за всеки гост. В този случай всички служители ще бъдат отчетени правилно, защото ще конфигурираме взаимодействието на прокси сървъра с Active Directory. В заключение ще закрепим и лог анализатора, за да знаем винаги кой и как използва интернет.

Първото нещо, от което се нуждаем, е инсталиран Debian с конфигурирана мрежа. За бъдещия прокси сървър достъпът до интернет трябва да е отворен на рутера. Като алтернатива можете да комбинирате рутер и прокси сървър в една машина, но това е друга история, която също ще засегнем по някакъв начин. Междувременно няма да се спираме на всички тези дреболии, просто ще предоставим връзки към необходимите прегледи: 1. Инсталиране на Linux Debian 2. Настройка на мрежата в Linux Debian

Присъединяване към Active Directory

Трябва да присъединим нашата Linux машина към домейн на Active Directory. За да направите това, трябва да извършите редица подготвителни стъпки. Първо, трябва да научим нашия бъдещ прокси сървър да синхронизира времето с домейн контролера. Инсталирайте NTP с командатаapt-getинсталирайте ntp

След инсталирането редактирайте отново конфигурационните файлове. Да започнем със samba. Отворете файла/etc/samba/smb.conf, изтрийте всичко от него и пренапишете следните редове:

[global] workgroup = MYDOMAIN netbios name = PROXY realm = MYDOMAIN.LOCAL сървърен низ = security = ads encrypt passwords = true password server = dc.mydomain.local winbind enum users = yes winbind enum groups = yes winbind use default domain = yse winbind u >winbind g >Ако погледнете внимателно този списък, ще забележите, че има интервал след знака за равенство в низа на сървъра - това не е съвпадение. Добавете интервал там, в противен случай samba ще попълни този параметър сама, което не винаги е добре. Рестартирайте. Редактирайте следния файл/etc/krb5.confНакрая трябва да изглежда като екранната снимка по-долу. Заменете mydomain.local и dc с вашите имена. Моля, обърнете внимание, че в различните части на файла тези имена са написани с различни главни букви - това е много важно!

squid
Рестартирайте.

Изпълняваме командатаkinit admin, където вместоadminпосочваме входа на администратора на домейна. Ще бъдем помолени за паролата на този администратор.

Сега изпълняваме командатаnet ads join -U adminкъдето вместоadminпишем данните за вход на администратора на домейна. След като изпълните тази команда, може да получите грешка на DNS сървъра. Можете спокойно да го игнорирате. Нека изпълним и командитеwbinfo -pиwbinfo -tИ двете команди трябва да завършат успешно. Ако това се е случило, тогава не бъдете твърде мързеливи, за да рестартирате компютъра на прокси сървъра.

Важна забележка:Най-добре е да не си играете с командите, описани по-горе. При подготовката на този преглед, аз без да правя нищо, изпълних тези команди в моя бойПрокси сървър. Самите команди бяха изпълнени успешно, но след това проксито спря да приема потребители на домейн. Само рестартирането на машината помогна.Инсталирайте squid с командатаapt-get install squid

Настройване на калмари

Отворете файла/etc/squid/squid.confМожете да изтриете всичко там, ние ще пренапишем само нещата, от които се нуждаем. След това добавяме следните редове (всъщност благодарение на тях squid има достъп до Active Directory): m children 5

в конфигурацията напишете връзки към тези групи: acl Full external nt_group Internet_Full acl Medium external nt_group Internet_Medium acl Low external nt_group Internet_Low

acl всички src 0.0.0.0/0.0.0.0 acl гости src 192.168.18.0/255.255.255.0

Ние правим проверката на сътрудниците през домейна задължителна: acl nt_group proxy_auth ИЗИСКВА

За да не изядат нашите гости цялата честотна лента на интернет канала, трябва да ги „убием“ по отношение на скоростта. За да направите това, се създава "пул за забавяне" в прокси терминологията. На този пул се задава ограничение на скоростта и за кого се отнася случаят. В резултат на това ще напишем следните редове: delay_pools 1 delay_class 1 1 delay_parameters 1 128000/128000 delay_access 1 разреши гости

Параметрите delay_parameters определят номера на нашия пул и ограничението на скоростта за входящ и изходящ трафик чрез фракция в байтове/сек. В моя пример гостите ще получат скорост от 1 Mbps.

Сега пишем самите правила за достъп. За мрежата за гости, достъп без ограничения: http_access разрешава гости

за групи домейни: http_access enable Low white_list http_access deny Low deny http_access deny Medium black_list http_access allow Medium http_access enable Full

Сега нека добавим няколко реда за регистриране на достъпа до интернет (ще ни трябва малко по-късно): access_log /var/log/squid/access.log logfile_rotate 100

Запазваме тази конфигурация, ще говорим за фина настройка и някои други точки в отделен преглед.

Създайте файлове/etc/squid/white_listи/etc/squid/black_listВ тези файлове можете просто да напишете имена на сайтове в колона. Към файл в черен списък – лоши сайтове, към бял – добри сайтове 🙂

За да могат всички гости също да преминават през прокси сървър, е необходимо да „увиете“ трафика на гости на рутера. Ако имате базиран на Linux рутер, това се прави с проста командаiptables -t nat -A PREROUTING -s 192.168.18.0/24 -p tcp --dport 80 -j DNAT --to 192.168.17.6:3127

Ако сте инсталирали squid директно на рутера, е още по-лесно:iptables -t nat -A PREROUTING-s 192.168.18.0/24-p tcp --dport 80 -j REDIRECT --to-port 3127

С 99% вероятност вашият окончателен конфигурационен файл ще се различава от нашия пример, ще искате да промените, добавите или премахнете нещо. И така, има една чудесна конзолна команда, която е написана така:squid -k reconfigureРаботи като бутон "Приложи", след като сте направили промени в конфигурацията.

Анализ на регистрационния файл

Картината ще бъде следната: По подразбиране статистиката се актуализира на всеки пет минути, което по принцип е достатъчно. Всички потребители могат да бъдат разделени на групи, за да се улесни възприемането. Можете да разберете кой кога и къде е ходил. Като цяло, ако инсталирате squid, тогава анализаторът на лога на lightsquid е задължителен!