Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 77
Текст из файла (страница 77)
Если появился доступ, то проверьте настройки системы сетевой защиты.330Часть 6. Программное обеспечение для организации шлюзаЗАМЕЧАНИЕ Доступ в Интернет, минуя прокси-сервер, должен быть закрыт для того, чтобы пользователи локальной сети, отключив использование прокси-сервера в браузере, не могли преодолеть установленные вами ограничения.Шаг 3В браузере на системе в локальной сети настройте доступ через прокси-сервер и попробуйте обратиться к какому-нибудь ресурсу. Если соединение устанавливается, протестируйте работоспособность всехправил, установленных в файле /etc/squid/squid.conf.Администрирование SquidПосле выполнения команды:[root@bastion /]# /etc/init.d/squid startSquid не останавливается немедленно, а дожидается завершения всех установленных соединений.
Для немедленной остановки Squid используйте команду:[root@bastion /]# /usr/sbin/squid –k killИногда возникает необходимость удаления из кэша некоторых объектов. Никогда не пытайтесь добиться этого путем удаления файлов и каталогов в /var/spool/squid. Для решения этой задачи используйте утилиту squidclient, которая является мощным средством для тестирования и администрированияSquid.
По умолчанию очистка кэша (использование метода PURGE) в Squid запрещена. Для разрешенияочистки кэша во всех переведенных выше примерах файла /etc/squid/squid.conf добавлены строки,разрешающие очистку кэша с локальной системы, т. е. консоли шлюза:…#Определите имя элемента ACL для метода PURGE.acl PURGE method PURGE…#Разрешите очистку кэша с локальной системы.http_access allow PURGE localhost…#Запретите очистку кэша со всех систем.http_access deny PURGE…Для получения краткой справочной информации о возможностях утилиты, наберите:[root@bastion /]# /usr/sbin/squidclientУдаление некоторого объекта из кэша осуществляется следующим образом.При использовании Squid без аутентификации пользователей:[root@bastion /]# /usr/sbin/squidclient –m PURGEПри использовании аутентификации:[root@bastion /]# /usr/sbin/squidclient –m PURGE –u drwalbr –w SeCreTnoe_SlOvOВ случае успешного удаления объекта вы получите сообщение вида:HTTP/1.0 200 OKServer: squid/2.5.STABLE1Mime-Version: 1.0Date: Mon, 03 Mar 2003 19:01:40 GMTContent-Length: 0X-Cache: MISS from bastion.undX-Cache-Lookup: NONE from bastion.und:3128Proxy-Connection: closeВ случае отсутствия объекта в кэше – сообщение вида:HTTP/1.0 404 Not FoundServer: squid/2.5.STABLE1Mime-Version: 1.0Date: Mon, 03 Mar 2003 19:02:50 GMTContent-Length: 0X-Cache: MISS from bastion.undГлава 24.
Кэширующий прокси-сервер Squid331X-Cache-Lookup: NONE from bastion.und:3128Proxy-Connection: closeУтилита cachemgr.cgi предназначена для администрирования Squid и получения информации оего настройках и статистике через Web-интерфейс. На наш взгляд утилита содержит ошибки, в некоторыхслучаях приводящих к совершенно непредсказуемым и загадочным результатам. Даже при правильной конфигурации не всегда можно подключиться к ее Web-интерфейсу. Протестировать cachemgr.cgi можноследующим образом.Шаг 1Удалите комментарий и введите пароль в строку файла /etc/squid/squid.conf:#cachemgr_passwd $ecretnoe_Sl0vo allПерезапустите Squid:[root@bastion /]# /etc/init.d/squid restartОстанавливается squid:[ОК]Запускается squid:[ОК]Шаг 2Переместите файл cachemgr.cgi из каталога /usr/lib/squid в каталог cgi-bin вашего Webсервера /var/www/cgi-bin/:[root@bastion /]# mv /usr/lib/squid/cachemgr.cgi /var/www/cgi-bin/Шаг 3Назначьте владельцем файла пользователя root и установите права доступа к файлу:[root@bastion/]# cd/var/www/cgi-bin/[root@bastion cgi-bin]# chmod 0511 cachemgr.cgi[root@bastion cgi-bin]# chown 0.0 cachemgr.cgiШаг 4Обратитесь с консоли шлюза к Web-интерфейсу утилиты, в нашем примере:[root@bastion cgi-bin] # lynx www.bastion.und/cgi-bin/cachemgr.cgiШаг 5Если вы используете конфигурацию c аутентификацией пользователя, то в отобразившейся на экранеформе введите параметры – имя шлюза, порт на котором он работает, имя пользователя и пароль.
В рассматриваемом примере – это, соответственно, bastion.und, 3128, drwalbr и $ecretnoe_Sl0vo (установлен с помощью опции cachemgr_passwd в файле /etc/squid/squid.conf).ЗАМЕЧАНИЕ В рассматриваемой конфигурации установка соединения возможна только с системы, накоторой установлен шлюз.Пример конфигурации Squid в качестве Web-ускорителяSquid может использоваться для увеличения производительности сильно загруженных Web-серверовпутем предоставления клиентам часто запрашиваемых объектов из кэша прокси-сервера без непосредственного обращения к Web-серверу. Типовой вариант сопряжения Squid, используемого в качестве Webускорителя, с Web-сервером представлена на рис.
24.2.Пример конфигурационного файла /etc/squid/squid.conf прокси-сервера, запущенного на отдельной системе с IP-адресом 212.45.28.123, используемого в качестве Web-ускорителя для Web-сервера сIP-адресом 212.45.28.122, приведен ниже:#Установите номер порта, на котором Squid ожидает запросы HTTP-клиентов.http_port 80#Обеспечьте корректную работу Squid c браузерами, некорректно#поддерживающими SSLssl_unclean_shutdown on#Установите номер порта, на котором Squid принимает и получает запросы#с других прокси-серверов.
Установка значения порта на 0 может повыситьпроизводительность вашей системы.icp_port 0332Часть 6. Программное обеспечение для организации шлюзаИнтернетРоутерКонцентраторПрокси-серверWeb-серверeth0 IP 212.45.28.122eth0 IP 212.45.28.123Рис. 24.2. Вариант сопряжения Squid, используемого в качестве Web-ускорителя, с Web-серверомГлава 24. Кэширующий прокси-сервер Squid333#Установите запрет кэширования некоторого типа объектов.#В данном случае – файлов, находящихся в каталоге cgi-bin.hierarchy_stoplist cgi-bin ?acl QUERY urlpath_regex cgi-bin \?no_cache deny QUERY#Определите объем памяти, выделяемый под кэширование In-Transit objects,#Hot Objects,Negative-Cached objects (примерно 1/3 от общего объема #оперативной памяти). Оптимальное значение для системы с памятью#512 МБайт –170.cache_mem 170 MB#Запретите изменять заголовки в перенаправляемых запросах.
redirect_rewrites_host_header off#Определите политику очистки кэша.cache_replacement_policy heap GDSFmemory_replacement_policy heap GDSF#Определите формат представления данных в кэше (DISKD), каталог,#в котором он размещается (/var/spool/squid), объем дискового пространства#(1250 МБайт), количество подкаталогов первого и второго уровня в#каталоге /var/spool/squid.cache_dir diskd /var/spool/squid 1000 16 256#Запретите создание файла, в котором регистрируется удаление и помещение#объектов в кэш.
Авторам не известны утилиты, предназначенные для обработки#информации, содержащейся в этих файлах.cache_store_log none#Разрешите запись в файлы регистрации доменных имен вместо IP-адресов#Использование этой возможности облегчает анализ файлов регистрации,#но снижает производительность шлюза.log_fqdn on#Разрешите создание файлов регистрации SQUID в формате Apache.#Анализ этих файлов возможен с помощью стандартных утилит, предназначенных#для анализа файлов регистрации Apache, например Webalizer.emulate_httpd_log onacl all src 0.0.0.0/0.0.0.0#Разрешите доступ со всех хостов.http_access allow all#Укажите почтовый ящик администратора.cache_mgr administrator@domen.ru#Эти опции повышают безопасность системы за счет запуска#Squid от имени пользователя squid группы squidcache_effective_user squidcache_effective_group squid#Укажите IP-адрес ускоряемого Web-сервера.httpd_accel_host 212.45.28.122#Укажите номер порта Web-сервера.httpd_accel_port 80#Отключите заданный по умолчанию алгоритм logfile_rotate.#Мы используем свой сценарий.logfile_rotate 0#Запретите взаимодействие с другими прокси-серверами.log_icp_queries off#Задайте пароль, используемый утилитой администрирования прокси-сервера#cachemgr через Web-интерфейс (если вы собираетесь ее использовать).#cachemgr_passwd $ecretnoe_Slovo all#Включите поддержку ускорения записи файлов регистрацииbuffered_logs onВ рассматриваемом примере Squid запущен на системе 212.45.28.123 и ожидает запросов клиентов наиспользуемом по умолчанию Web-сервером 80 порту (http_port 80).
При наличии в кэше проксисервера необходимого объекта он выдается запрашивающему его клиенту без обращения к Web-серверу, установленного на системе с IP-адресом 212.45.28.123. При отсутствии запрашиваемого объекта в кэше, он за-334Часть 6. Программное обеспечение для организации шлюзапрашивается путем обращения к 80 порту Web-сервера (httpd_accel_port 80), установленного на системе с IP-адресом 212.45.28.122 (httpd_accel_host 212.45.28.122) и передается клиенту.
Если полученный с Web-сервера объект относится к типу кешируемых объектов (в нашем примере – это любой объект, кроме файлов, размещенных в каталоге cgi-bin) он одновременно будет помещен в кэш, и при следующем обращении клиента будет выдан из кэша без обращения к Web-серверу.Совместная работа Web-ускорителя и Web-сервера на одной системе может быть обеспечена путемизменения номера порта, на котором Web-сервер ожидает запросы клиентов по умолчанию, и внесения соответствующих изменений в файл /etc/squid/squid.conf:#Установите номер порта, на котором Squid ожидает запросы HTTP-клиентов.http_port 80…#Укажите IP-адрес ускоряемого Web-сервера.httpd_accel_host 212.45.28.122#Укажите номер порта Web-сервера.httpd_accel_port 8080…Тестирование, запуск и администрирование Squid осуществляется также, как и в случае использования его в качестве кэширующего прокси-сервера на шлюзе.Глава 25. SquidGuard – программное обеспечение для настройки SquidГлава 25SquidGuard – программное обеспечение для настройки SquidВ этой главе:1.
Ограничения и допущения2. Пакеты3. Компиляция, оптимизация и инсталляция SquidGuard4. Конфигурирование SquidGuard5. Запуск и тестирование SquidGuard6. Оптимизация SquidGuard335336Часть 6. Программное обеспечение для организации шлюзаНастройка Squid с использованием списков контроля доступа (Access Control Lists) сложна и ограничивает возможности управления доступом пользователей локальной сети в Интернет.
Для расширения возможностей управления доступом и упрощения настроек в Squid предусмотрено использование внешнихпрограмм, обеспечивающих расширенные возможности ограничения доступа в Интернет. Одной из такихпрограмм является SquidGuard. Эта утилита позволяет закрывать доступ к нежелательным ресурсам, перенаправлять запросы к ним на другие ресурсы, например, содержащие информацию воспитательного характера, запрещать доступ в определенное время, дни недели, даты и т.
п. Оптимизированный код SquidGuardпозволяет обрабатывать большие списки (порядка миллиона записей) нежелательных Web-ресурсов без потери производительности шлюза. Ниже рассмотрен процесс установки, настройки и оптимизации этой полезной утилиты.Ограничения и допущенияИсходные коды находятся в каталоге /var/tmp.Используется дистрибутив ASPLinux 7.3 (Vostok).Все команды выполняются от имени суперпользователя root.Установлен squid-2.5.STABLE1.Перекомпиляции ядра не требуется.Процедуры, описанные в этой главе, могут оказаться применимыми для других дистрибутивов Linux,однако авторы этого не проверяли.ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаSquidGuard от 07.03.2003.