Главная > Программное обеспечение BSD\Linux > Настраиваем корпоративный PROXY сервер на базе CentOS5+Squid + SAMS + NCSA Auth

Настраиваем корпоративный PROXY сервер на базе CentOS5+Squid + SAMS + NCSA Auth

Настраиваем корпоративный PROXY сервер на базе CentOS5+Squid + SAMS + NCSA Auth

В каждой организации, где количество ПК больше одного, рано или поздно встает вопрос по лимитированию и учету 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

Alias /sams    /usr/share/sams
<Directory /usr/share/sams/>
Order Allow,Deny
Allow from all
Deny from none
</Directory>

Если вы хотите настроить 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 < /usr/local/share/sams/data/sams_db.sql

mysql -u root -p < /usr/local/share/sams/data/squid_db.sql

Настала очередь 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

Но установленный SAMS необходимо настроить, чем мы сейчас и займемся.
Заходим в web интерфейс по адресу http://ip.address/sams/ , авторизуемся, ПО УМОЛЧАНИЮ ПОЛЬЗОВАТЕЛЬ admin ПАРОЛЬ qwerty (ВСЕГДА ТАК!!!), далее User Authenticate ==> Access under the name of another superuser.

1. Настройки Web интерфейса ==> нажимаем на Гаечный ключ

Настраиваем в соответствии со скрином, сохраняем изменения:

Настройка WEB интерфейса SAMS

Настройка WEB интерфейса SAMS

2. SAMS ==> Администрирование SAMS ==> Настройка SAMS

Настраиваем в соответствии со скрином, сохраняем изменения:

Настройка SAMS

Настройка SAMS

3. SAMS ==> Шаблоны пользователей ==> Default

Настраиваем в соответствии со скрином, сохраняем изменения:

Шаблон ограничений по умолчанию

Шаблон ограничений по умолчанию

4. Пользователи ==> Добавить пользователя

Настраиваем в соответствии со скрином, сохраняем изменения:

Добавляем пользователя SAMS

Добавляем пользователя SAMS

5. SAMS ==> SQUID ==> Реконфигурировать SQUID ==> Реконфигурировать

Реконфигурирование SQUID

Реконфигурирование SQUID

Прокси сервер настроен и готов обслуживать пользователей. Можно посмотреть статистику работы proxy сервера:

Статистика работы прокси сервера

Статистика работы прокси сервера

И в качестве бонуса, URL автоматической настройки proxy(Строка автоматической инициализации) на клиентских машинах, удобно подпихивать его через ГП на Windows AD:

function FindProxyForURL(url, host)

{

return «PROXY ip.address:3128″

};

Данный код сохраняем в файл proxy.pac и размещаем в корне вашего web сервера, в директории /var/www/html . Ну и сама строка инициализации будет выглядеть как http://ip.address/proxy.pac
Ну вот собственно и все, прокси сервер настроен, приятные мелочи добавлены, можно заводить пользователей и рулить ими как душе угодно!

Popularity: 43% [?]




Похожие записи:

coded by nessus
  • Sergey

    Chrome 8.0.552.237 Windows XP

    Хорошая статья, помогла… есть пару недочетов… один из них, пришлось отдельно ставить Apache, но это не проблема.
    Но хочется еще в дополнение сделать прокси прозрачным, чтоб не прописывать на клиентских машинах во всех программах (некоторые не поддерживают прокси, как класс). Для этого нужно перебросить 80 порт на порт проксика и прописать в конфиге squid’a параметр «transparent» (пример: http_port 3128 transparent). Если дополните статью, будет большой респект! :)

  • Sergey

    Chrome 8.0.552.237 Windows XP

    Да, забыл дописать, что данный пример, с прозрачностью пригоден только при IP-авторизации.

  • admin

    Chrome 9.0.597.84 Windows XP

    Пожелания учту, будет немного побольше свободного времени обязательно исправлю!

  • admin

    Chrome 9.0.597.84 Windows XP

    Sergey :

    Хорошая статья, помогла… есть пару недочетов… один из них, пришлось отдельно ставить Apache, но это не проблема.

    По поводу Apache2… Я ставил на чистый CentOS 5.5, и в стандартной установке httpd (Apache2) идет предустановленный, то есть я его просто добавил в автозагрузку… Конечно не трудно выполнить yum -y install httpd, но как-то я упустил в статье то что нада бы было написать что httpd (Apache2) в системе предустановлен…

  • Schulz Hesse

    Unknown Unknown

    Не могли бы обновить скриншоты?

  • 111

    Unknown Unknown

    надо бы более полную инструкцию, так как по данной инструкции sams установить не получиться
     

    • http://www.ul-tech.ru Dmitry Malkov

      Unknown Unknown

      Ну а в чем проблема? Инструкция как раз-таки полная… 

  • Hubo

    Unknown Unknown

    делал по вашему мануалу спасибо, но в центос 5.8
    но нет ли у вас ошибки при создании алиаса для апача?
    у меня самс в директории /usr/local/share/sams/

    • http://www.ul-tech.ru Dmitry Malkov

      Unknown Unknown

      Какая именно ошибка? Телепаты в отпуске :)

      • Hubo

        Unknown Unknown

        у меня sams установился в  /usr/local/bin/sams
        соответственно пути не верны

        • Hubo

          Unknown Unknown

          неверный комментарий
          вот куда у меня установился /usr/local/share/sams/
          а выпредлагаете делать
          Alias /sams    /usr/share/sams

Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins