- Настройка корпоративного PROXY-сервера
- Серверы Linux. Часть I. Серверы Apache и Squid
- Глава 2. Знакомство с прокси-сервером Squid
- 2.1. Информация о прокси-серверах
- 2.2. Установка прокси-сервера Squid
- 2.3. Порт 3128
- 2.4. Запуск и остановка службы прокси-сервера
- 2.5. Ввод параметров доступа к прокси-серверу на стороне клиента
- 2.6. Переворот изображений
- 2.7. Директория для хранения файлов журналов /var/log/squid
- 2.8. Управление доступом
- 2.9. Тестирование прокси-сервера Squid
- 2.10. Разрешение доменных имен
Настройка корпоративного PROXY-сервера
В каждой организации, где количество ПК больше одного, рано или поздно встает вопрос по лимитированию и учету Internet трафика. Возможно для кого-то это не актуально, и для кого-то NAT самое оно, но исходя из реалий, и прикидывая среднюю стоимость безлимитной полосы в 2-5mbps, хочется и использовать данный канал более рационально, да и ограничить пользователя в посещении ресурсов, которые к работе не относятся в принципе никак.
Главный вопрос КАК? не останется без ответа, т.к. поисковик выдает множество как программных, так и аппаратных решений! Смотреть в сторону коммерческих продуктов, или отдать предпочтение Open Source ПО — дело ваше, да и зависит все от бюджета и корпоративной лицензионной политики. Но на практике большинство руководителей предприятий малого и среднего бизнеса склоняются от коммерческого продукта к бесплатному, как в целях экономии средств, так и в интересах законности.
Сегодня, я хочу поговорить о настройке кеширующего proxy сервера на основе свободного, бесплатного ПО. Но для начала необходимо определить для себя круг задач, которые будет выполнять сервер. В моем случае оно сводится к минимум, а именно к веб интерфейсу статистики и управления, а также возможности завернуть весь интернет трафик локальной сети на порт proxy. Вводить или не вводить какие-либо ограничения — дело ваше, но по моему это бессмысленно, так как пользователь дырочку найдет всегда! Согласитесь, ведь пусть лучше пользователь проведет 10-20 минут в день на Одноклассниках и Вконтактах, чем убьет час рабочего времени на поиск нормального, и не забаненного админом, анонимайзера!
Самое время поговорить о программном обеспечении для вышеописанных задач! Вариантов масса, и выбрать есть из чего, есть простенькие решения на базе FreeBSD + Squid + LightSquid, есть и Install CD решения. Но сегодня я хочу поговорить о решении на базе CentOS + Squid + SAMS + NCSA Auth. Почему выбор пал именно на подобную связку? Наверное из-за моей любви к CentOS, да и Squid стандарт прокси практически де-факто, SAMS же обладает всем необходимым функционалом по управлению прокси сервером, плюс вменяемый русскоязычный интерфейс, что для кого-то может быть полезным. Также у SAMS есть возможность генерации PDF отчетов по использованному трафику по пользователям. С NCSA авторизацией думаю вас знакомить смысла нет, итак все понятно:)
Что же, от слов к делу, будем настраивать. Вопрос на чем? Недавно мною была написана статья по настройке собственного сервера виртуализации на базе OpenVZ, и собственно сам сервер виртуализации был введен в коммерческую эксплуатацию компании, и выбор по развертыванию прокси выпал именно на него, т.к. выделять под данные задачи физическую машину по меньшей мере неоправданная роскошь. Поэтому я и создал на нем VE контейнер со следующими характеристиками:
- Шаблон ОС — centos-5-x86
- Размер диска — 5000мб
- RAM — 512 мб
- CPU — 1000 единиц, Intel(R) Xeon(R) CPU E5405, 1 core
- CPU лимит — 20%
Если вы считаете что данная конфигурация слаба, что же, дело ваше, выбирайте аппаратное или программное решение производительнее, но под 100-150 пользователей данный VPS сервер подойдет вполне. Далее на сервер был навешен белый реальный ip адрес и была проверена его доступность как из интернета, так и из локальной сети.
После «установки» сервера приступаем к его настройке под наши задачи и нужды. Для начала обновляем систему:
yum makecache && yum -y update
После приступаем к установке программного обеспечения:
yum install php php-mysql php-gd pcre-devel squid mysql-server mysql-devel gd-devel gcc
После установки добавляем необходимое в автозагрузку:
chkconfig mysqld on
chkconfig httpd on
chkconfig squid on
Далее создаем темповую директорию для сборки SAMS:
mkdir -p /usr/src/sams
cd /usr/src/sams
Качаем STABLE версию SAMS (есть там и RPM пакеты для CentOS и Fedora, но после тестирования выяснилилось что они кривые) отсюда и устанавливаем:
wget http://nixdev.net/release/sams/sams-1.0.5.tar.bz2
tar xf sams-1.0.5.tar.bz2
cd sams-1.0.5
./configure && make && make install
chkconfig sams on
cd / && rm -fr /usr/src/sams
Далее настраиваем Apache, добавляем в /etc/httpd/conf.d/sams.conf
Если вы хотите настроить SAMS на виртуальном хосте, то советую вам почитать статью по тонкой настройке Apache2, в которой как раз и описан данный вопрос.
После того, как был добавлен sams.conf необходимо перезапустить Apache:
service httpd restart
Следом редактируем /etc/sams.conf, в котором меняем всего две записи:
MYSQLPASSWORD=ВАШ ПАРОЛЬ (Для пользователя SAMS)
MYSQLVERSION=5.0 (Мы используем 5 версию MySQL сервера, при значении 4.0 возможны проблемы)
Далее на очереди MySQL, запускаем сервер и делаем все то что предложит скрипт первого запуска, то есть задаем пароль root и после-инсталяционную настройку сервера:
service mysqld start
Создаем MySQL пользователя sams и даем ему права на необходимые таблицы:
mysql -u root -p
GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY «ВАШ ПАРОЛЬ»;
GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY «ВАШ ПАРОЛЬ»;
flush privileges;
quit
Вливаем дампы SAMS в базу:
mysql -u root -p
mysql -u root -p
Настала очередь Squid, собираем squid swap, и уже после запускаем прокси сервер.
squid -z
2011/01/22 22:06:48| Creating Swap Directories
service squid start
Ну и в самом конце запускаем SAMS:
service sams start
Добавляем разрешающие правила для iptables firewall в /etc/sysconfig/iptables и перезапустить его:
-A INPUT -p tcp -m tcp —dport 80 -j ACCEPT -A INPUT -p tcp -m tcp —dport 3128 -j ACCEPT service iptables restart
После можете посмотреть на результат установки и настройки по адресу http://ip.address/sams/ и если вы видите страницу SAMS то все настроено верно, если же что-то другое, то прошу отписаться в комментарии — разберемся вместе, или самостоятельно посмотреть решение в google.
Приглашение SAMS
Но установленный SAMS необходимо настроить, чем мы сейчас и займемся. Заходим в web интерфейс по адресу http://ip.address/sams/ , авторизуемся, ПО УМОЛЧАНИЮ ПОЛЬЗОВАТЕЛЬ admin ПАРОЛЬ qwerty (ВСЕГДА ТАК. ), далее User Authenticate ==> Access under the name of another superuser.
1. Настройки Web интерфейса ==> нажимаем на Гаечный ключ
Настраиваем в соответствии со скрином, сохраняем изменения:
Настройка WEB интерфейса SAMS
2. SAMS ==> Администрирование SAMS ==> Настройка SAMS
Настраиваем в соответствии со скрином, сохраняем изменения:
Настройка SAMS
3. SAMS ==> Шаблоны пользователей ==> Default
Настраиваем в соответствии со скрином, сохраняем изменения:
Шаблон ограничений по умолчанию
4. Пользователи ==> Добавить пользователя
Настраиваем в соответствии со скрином, сохраняем изменения:
Добавляем пользователя SAMS
5. SAMS ==> SQUID ==> Реконфигурировать SQUID ==> Реконфигурировать
Реконфигурирование SQUID
Прокси сервер настроен и готов обслуживать пользователей. Можно посмотреть статистику работы proxy сервера:
Статистика работы прокси сервера
И в качестве бонуса, URL автоматической настройки proxy(Строка автоматической инициализации) на клиентских машинах, удобно подпихивать его через ГП на Windows AD:
Источник
Серверы Linux. Часть I. Серверы Apache и Squid
Глава 2. Знакомство с прокси-сервером Squid
2.1. Информация о прокси-серверах
2.1.1. Область применения
Прокси-сервером называется сервер, предназначенный для кэширования данных, получаемых из сети Интернет. Клиент соединяется с прокси-сервером и передает ему запрос, который должен быть отправлены серверу из сети Интернет. После этого прокси-сервер соединяется с сервером из сети Интернет и передает ему запрос от имени клиента. При этом прокси-сервер осуществляет кэширование страниц, полученных от сервера из сети Интернет. Благодаря данной функции прокси-сервер может передавать клиенту копии страниц из своего кэша, а не соединяться с сервером из сети Интернет для получения (этих же) страниц.
Прокси-сервер имеет два полезных свойства. Во-первых, он повышает скорость веб-серфинга при возвращении клиентам кэшированных копий данных, а во-вторых, он уменьшает необходимую пропускную способность (цену) соединения с сетью Интернет.
Небольшие организации иногда размещают прокси-сервер на физическом компьютере, который уже используется в качестве сервера преобразования сетевых адресов (NAT) для доступа к ресурсам сети Интернет. В больших организациях прокси-сервер является одним из серверов, размещенных в демилитаризованной зоне сети (DMZ).
При использовании прокси-сервера для обработки всего веб-трафика обычной практикой является дополнительная настройка этого сервера для управления доступом к определенным ресурсам. Под управлением доступом в случае прокси-сервера могут подразумеваться ограничения доступа, которые могут распространяться как на учетные записи пользователей, так и на отдельные веб-сайты (идентифицируемые в помощью строк URL), IP-адреса ресурсов или механизм разрешения доменных имен.
2.1.2. Общедоступные прокси-серверы
При работе в сети Интернет вы можете столкнуться со списками общедоступных прокси-серверов, которые позволяют заниматься анонимным веб-серфингом. При использовании прокси-сервера из такого списка веб-серфинг будет действительно анонимным лишь в том случае, если прокси-сервер будет соединяться с веб-сайтом от вашего имени без записи в файл журнала вашего IP-адреса. Будьте осторожны, ведь эти общедоступные прокси-серверы (из списков) могут быть созданы и для слежки за действиями пользователей.
2.1.3. Прокси-сервер Squid
В данной главе будет обсуждаться прокси-сервер Squid (http://www.squid-cache.org). В первую очередь будет описан процесс настройки Squid для работы в режиме обычного прокси-сервера.
2.2. Установка прокси-сервера Squid
В примере ниже показана методика установки прокси-сервера Squid с помощью утилиты aptitude в дистрибутиве Debian. Используйте утилиту yum для установки одноименного пакета программного обеспечения в том случае, если вы работаете с дистрибутивом Red Hat/CentOS.
Главным конфигурационным файлом прокси-сервера Squid является файл /etc/squid/squid.conf . В данном файле имеются подробные описания каждого из параметров.
2.3. Порт 3128
По умолчанию прокси-сервер Squid будет принимать соединения на порту 3128 .
2.4. Запуск и остановка службы прокси-сервера
Вы можете изменять состояние службы squid с помощью стандартной утилиты service таким же образом, как показано в данном примере.
2.5. Ввод параметров доступа к прокси-серверу на стороне клиента
Для активации режима доступа к сети посредством прокси-сервера в веб-браузере Firefox или Iceweasel следует выбрать пункты меню окна «Правка — Настройки» и ввести параметры доступа к прокси-серверу таким же образом, как показано на рисунке ниже (замените IP-адрес 192.168.1.60 на IP-адрес машины с прокси-сервером).
Проверьте работоспособность соединения с сетью Интернет при использовании прокси-сервера. Также проведите повторную проверку работоспособности соединения после исполнения команды service squid stop на машине с установленным прокси-сервером, в результате чего веб-браузер должен вывести сообщение, аналогичное представленному на рисунке ниже.
Для активации режима доступа к сети посредством прокси-сервера в веб-браузере Google Chrome (или Chromium в дистрибутиве Debian) запустите веб-браузер из терминала с помощью аналогичной команды:
Остановка службы прокси-сервера с помощью команды service squid stop должна привести к выводу сообщения об ошибке, аналогичного представленному на рисунке ниже.
2.6. Переворот изображений
Прокси-сервер выступает посредником между вашим браузером и серверами из сети Интернет. Исходя из этого, помимо кэширования данных (что является основной задачей прокси-сервера), а также фильтрации веб-трафика по аналогии с межсетевым экраном, прокси-сервер отлично подходит для модификации содержимого посещаемых вами веб-страниц.
Например, на уровне прокси-сервера вы можете заменить рекламные баннеры на веб-странице (а также удалить некоторые из них) или же, как в примере ниже, модифицировать все изображения на веб-странице, перевернув их.
Для модификации изображений серверу потребуются утилиты с интерфейсом командной строки, а также сценарий на языке Perl, который использует эти утилиты (кроме того, понадобится утилита wget для загрузки изображений на сервер и предоставления доступа к ним посредством веб-сервера Apache 2 ). В данном примере мы будем использовать инструменты из пакета imagemagic (такие, как утилиты convert и mogrify ).
Приведенный в примере ниже сценарий на языке Perl размещен на множестве веб-сайтов, но мне так и не удалось найти информацию о его авторе. Данный сценарий является достаточно простым и использует утилиты wget и mogrify для загрузки изображений (с расширениями .jpg, .gif и .png), их переворота и сохранения результирующих изображений в директории /var/www/images .
Также следует изменить (или раскомментировать) следующую строку в файле конфигурации прокси-сервера /etc/squid/squid.conf .
Данный сценарий использует директорию /var/www/images , которая должна быть доступна для записи как для прокси-сервера Squid (который использует учетную запись пользователя proxy ), так и для веб-сервера Apache 2 (который использует учетную запись пользователя www-data ). В примере ниже показаны команды, предназначенные для создания данной директории, установки прав доступа к ее содержимому и добавления используемых упомянутыми серверами учетных записей пользователей в соответствующие группы пользователей.
Проверьте работоспособность сценария для поворота изображений после перезапуска службы прокси-сервера под названием squid и службы веб-сервера под названием apache2 .
2.7. Директория для хранения файлов журналов /var/log/squid
По умолчанию файлы журнала прокси-сервера Squid хранятся в директории /var/log/squid .
2.8. Управление доступом
При использовании стандартных настроек прокси-сервер Squid принимает соединения исключительно с локального узла. Для разрешения доступа с машин, имеющих IP-адреса из диапазона адресов частной сети следует найти в файле конфигурации squid.conf предложение «INSERT YOUR OWN RULE(S) HERE. » и добавить после него две строки, аналогичные приведенным в примере ниже.
2.9. Тестирование прокси-сервера Squid
В первую очередь следует убедиться в том, что прокси-сервер функционирует и имеет доступ к сети Интернет.
После этого следует настроить веб-браузер на клиентской машине для работы с сетью посредством прокси-сервера или установить в качестве значения переменной окружения HTTP_PROXY (иногда вместо этой переменной окружения используется переменная http_proxy ) адрес прокси-сервера для передачи этого адреса программам с интерфейсом командной строки.
Тестирование работоспособности прокси-сервера со стороны клиентской машины может осуществляться с помощью утилиты wget (команда wget -q используется для упрощения примера).
2.10. Разрешение доменных имен
Несмотря на то, что вам потребуется работоспособный механизм разрешения доменных имен на уровне прокси-сервера Squid , вы вполне сможете обойтись без данного механизма на уровне клиентских машин.
Источник