Сетевое администрирование в UNIX, 04 лекция (от 15 марта)
Материал из eSyr's wiki.
[править] SQUID
Мы рассматривали авторизацию на прокси сервере. Сегодня рассмотрим на примере сквида.
У него есть файл squid.conf, он может включать разные директивы.
auth_param -- параметр, с помощью которого сквид может аутентифицировать пользователя.
auth_param Win Access Directory -- сквид будет проводить авторизацию через виндовую АД.
При сборке самбы вы указываете что она если не сказано иное собирает авторизующую программу, которую потом смотреть в smb.conf, где будет прописан сервер и какая авторизация. И, соответственно, в сквиде будет прописано две вещи:
auth_param ntlm program path_to_bm/ntbm_auth --helper_protocol=squid-2.5-ntlmssp
Требуется две строчки потому что разные браузеры по разному обращаются к прокси серверу за авторизацией.
auth_param basic program path_to_bm/ntbm_auth --helper_protocol=squid-2.5-basic
Строчек может быть сколько угодно, сквид будет из применять по очереди, пока кто-нибудь не вернёт да, или не закончатся строчки.
В basic протоколе отдаётся строка "логин <пробел> пароль"
Есть у нас программа, с помощью которой сквид может проверить логин и пароль. Какон может понять кого пускать а кого не пускать. У нас есть acl.
В файле squid.conf
acl имя тип значение
Типы
src знач ип/маска
dst знач ип/маска
srcdomain знач дом имя
dstdomain зная дом имя
proxy_auth имя_польз(REQUIRED -- все авторизованные)
Скыид может сам хранить во ткрытом виде логин проль, тогда можно добавить тип
ident
acl all src 0.0.0.0
Ещё есть тип time -- время, день недели.
после всего этого правил, first wins.
http_access allow
http_access deny all #запретить всё, что не разрешилось предыдущими
Общий вид
http_access действие acl1
acl2
acl3
от ацлей берётся пересечение.
http_access -- открыть или закрыть доступ хттп.
Есть ещё http_port ip:port transparent
на каком прту слушать, транспарент -- обрабатывать пакеты без спец заголовоков(тогда естественно никакой авторизции или правил по именам пользователей).
refresh_pattern [-i] regex min % max options
позволяет менять политику сколько объект хранится в кэше прокси сервера. У каждого объекта по стандарту есть время жизни, через некоторое время она устаревает и её надо запрашивать снова. С помощью refresh_pattern мы можем ему сказать что картинка на самом деле может жить в кэше подольше. В опции мы можем сказать -i \gif$ 43200 100% 43200 reload_into_ims. Если пользователь запрашивает картинку то проксисервер сначала запросит время изменения кртинки. 43200 -- время в минутах сколько надо хранить.
можно отсекать или разрешать кэшировать по ацлям, можно по размеру.
purge -- может или удалить объекты из кэша или их куда-нибудь сложить, если ам интересно что там было.
Можно завести делей пулы
delay_pools количество
После того как задали количество их можно конфигурировать. Бывают 3 типов, определяются словом
delay_class 1 общ_труба 2 общ и индив
3 общ сеть и индив
Определенное ограничение в байтах/секунду на всех упомянутых, на всех и каждого,на всех, подсети и каждого.
Правила следующего вида
delay_access №(номер пула) действующий acl
говорит какой номер какого класса
delay_parameters № общ сеть индив задаем скорости
delay_class 1 2 # первый пул второго класса
параметры число/число -- с какой скоростью мы вкладываем в трубу, второе то скакой скоростью выходит.
пример
delay_parameters 1 -1/-1 1000/8000
в таком случае маленькие станички будут грузится со скорстью 8кбсек, а большие файлы со скоростью 1 кбсек. error_directory отсюда сквид берёт сообщения от том почему что-то не получилось. Например запретили какому то пользователю доступ по http и хотите объяснить ему, почему именно вы это сделали. С помощью команды
deny_info ERR_CUSTOM_DENY nopass
nopass -- значит без пароля, потом говорите что всем кто попал под запрещающие действие ацля нопасс показать конкретную страницу с таким то урлом.
Как задается сколько гд хранить?
never_direct действ ацл
always_direct
Если у вас запущены два прокси сервера -- более главный и более подчиненный, то подчиненному можно прописать главного с помощью команды peer. Если невер_директ, то подчинённый никогда не скачивает, всегда запрашивает у старшего. Если алвейс_директ -- то никогда не ходит к главному. Акадо балуется организацией сетей из проксей.
Размер объектов которые мы сохраняем на диске задается
minimum_object_size
maximum_object_size
Где хранить определяется директиой
cahce_dir тип путь разм число_папок ч
например
ufs /usr/squidcache
Тип бывает
ufs файл объект
aufs в виде файлов но за счёт позикс нитей может обращаться одновременно к нескольким
diskd пытается собрать несколько запросов в один.
null
Можно прописать рид онли, тогда он будет только читать из кеша.