интеграция на squid с MS Active Directory
Така че все пак реших да напиша статия за Habr (или може би поредица от статии), посветена на системното администриране. И днес искам да говоря за настройката на squid, или по-скоро за интегрирането му с MS Active Directory. Преди няколко месеца имах задача да прехвърля шлюз с Win2003 от MS ISA на нещо с отворен код. Причината е банална - лицензирана чистота. Тънкостта беше, че диференциацията на достъпа до външния свят беше извършена на базата на домейн групи, няколкостотин компютъра живееха в мрежата, повече от хиляда потребители в домейна и беше необходимо да се „замени“ машината на шлюза възможно най-незабележимо. защото MS ISA е прокси сървър и защитна стена, събрани в едно, така че пакетът squid + iptables беше избран като негов заместител. Днес ще говоря за настройката на първия. И така, задачата е да инсталирате squid, да конфигурирате ntlm и основно удостоверяване, да прикачите домейн групи тук и да разрешите/откажете достъп въз основа на тях, да намалите скоростта и други удоволствия на прокси сървъра. Освен това, разбира се, ще трябва да водим някои статистики. Настроих всичко на Debian Lenny, така че за други дистрибуции някои точки ще изглеждат различно, но общите идеи остават същите.
Squid трябва да се вземе от втория клон, тъй като третият, въпреки стабилния статус, все още е пълен с малки неприятни грешки и работи нестабилно във връзка с ntlm-auth. И така, ние правим aptitude, инсталираме squid и започваме да редактираме конфигурацията и е по-удобно да преименуваме тази по подразбиране и да я използваме само като справка, и да напишем „бойната“ конфигурация от нулата. Тъй като вече са написани огромен брой статии за конфигуриране на squid, няма да описвам целия процес, а ще се огранича само до интеграция с AD. Първо добавете редовете auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm деца 200 auth_param ntlm keep_alive на
#close достъп до сайтове тук acl deny_url url_regex "/etc/squid/badsites" http_access deny Студенти deny_url
http_access allow speed_limit http_access allow full_inet http_access allow Students http_access allow normal_inet Delay_pools са конфигурирани по подобен начин, единственото нещо, на което си струва да се обърне внимание е, че за да може пул, базиран на домейн група, да работи правилно, правилото в http_access с името на тази група трябва да бъде задействано. Например, ще дам отново част от моята конфигурация - delay_pools 3 delay_class 1 2 # за зли помпери delay_class 2 2 #привилегировани - без ограничения delay_class 3 2 #всички останали
delay_access 1 разреши ограничение на скоростта delay_access 1 откажи всички delay_access 2 разреши full_inet
месечно () LOG_FILES= за ((i=31;i>1;i--)) направи ако [[ -s /var/log/squid/access.log.$i.gz ]]; тогава LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.$i.gz" fi готово ако [[ -s /var/log/squid/access.log.1 ]]; тогава LOG_FILES="$LOG_FILES -l /var/log/squid/access.log.1" fi ако [[ -s /var/log/squid/access.log ]]; тогава LOG_FILES="$LOG_FILES -l /var/log/squid/access.log" fi MONTHLYOUT=$HTMLOUT/$MONTHLY mkdir -p $MONTHLYOUT create_index_html $SARG -f $CONFIG $LOG_FILES -d $MONTHAGO -o $MONTHLYOUT >$ERRORS 2> ;&1 изключи_от_дневник >
Т.е. „задайте“ sarg на всички натрупани файлове. За отчети, генерирани от sarg, най-добре е да имате отделен раздел, форматиран с reiserfs, т.к. ще има много малки файлове. На моя шлюз се сблъсках с факта, че три месеца по-късно ext3 просто изчерпа inodes. Освен това си струвапроменете броя на съхранените регистрационни файлове (по подразбиране се съхраняват твърде малко). За да направите това, редактирайте /etc/logrotate.d/squid , като промените параметъра за завъртане там - броя на съхранените файлове. На това настройката на това, което се отнася до прокси сървъра, може да се счита за завършена.