В данной статье я постараюсь наиболее подробно рассмотреть установку и настройку http proxy server'a Squid и одно из средств его администрирования Sams на дистрибутиве Debian 5 Lenny,
Первый и наиболее важный вопрос - для чего он нужен?.
Прокси сервер необходим тогда, когда необходимо ограничить доступ к интернет ресурсам, нарезать трафик для пользователей(квота) а так же он помогает защитить клиентские машины от некоторых сетевых атак.
Самс в частности веб форма о которой пойдет речь есть удобное гуи (ня!) для администрирования.
Итак приступим.
Мы имеем машину в двумя сетевыми интерфейсами один из которых смотрит во внутрь локальной сети с другого будет реализована раздача интенетов и установленный Debian 5.
Система разумеется должна быть без иксов(X-server) ибо нефиг!
Назовем их eth0 (во внутрь) и eth1(интернеты раздает).
eth1 вы настраиваете таким образом каким требует ваш провайдер - будь то pppoe или что иное.
для eth0 мы зададим статичный ip адрес принадлежащий маске нашей локальной сети.
Используем для этого команду
#ifconfig eth0 inet 192.168.0.224 netmask 255.255.255.0
#ifconfig eth0 up
После этого можно проверить поднялся ли интерфейс eth0 с помощью команды
#ifconfig eth0
А так же попинговать айпи адрес нашего прокси-сервера со своей машины с которой собственно в дальнейшем и будет проводиться настройка.
Однако разумеется более правильно было бы сделать прописав настройки для сетевого интерфейса eth0 в /etc/network/interfaces заставив получать его заданный нами статичный апи адрес каждый раз при загрузке демона /etc/init.d/networking/
для этого сделаем следующее:
#nano /etc/network/interfaces
и допишим там следующии строчки
auto eth0
iface eth0 inet static
address 192.168.0.224
netmask 255.255.255.0
После этого надо перезапустить демона
#/etc/init.d/networking restart
После этого необходимо настроить интернеты на eth1.
Это я оставляю уже на ваше усмотрение.
После того как с нашего прокси сервера пошли пинги во всемирную паутину нужно подправить список репозиториев и выполнить команду apt-get update.
#nano /etc/apt/sources.list
#apt-get update
Далее нам остается поставить еще две вещи - ssh и midnight commander.
#aptitude install ssh
#aptitude install mc
После этого мы можем со спокойной совестью отключить все те лишние устройства что использовались при установки Debian будь то мышь, клавитура, монитор или что еще могло быть. Поставить Прокси сервер на свое законное место и подключаться на него уже используя ssh и продолжать настройку удаленно.
Для установки Sams нам понадобятся следующии пакеты:
#aptitude install apache2 apache2-mpm-prefork
#aptitude install php5 libapache2-mod-php5 php5-cli php5-common php5-mysql php5-gd
#aptitude install mysql-server-5.0 mysql-client-5.0 libmysqlclient15off
#aptitude install squid
#aptitude install libpcre3
Кроме того можно установить phpmyadmin
#aptitude install phpmyadmin
Кроме того могут понадобится пакеты:
squidguard - Для использования редиректора squidguard
php5-ldap - Для авторизации пользователей в Active Directory | LDAP
php-fpdf - Для генерации pdf отчетов
Их установка выполяется опять-таки через консоль командами:
#aptitude install squidguard
#aptitude install php5-ldap
#aptitude install php-fpdf
Далее необходимо собственно скачать сам Sams.
Мы будем качать .deb пакеты, хотя конечно вы можете поставить и из исходников.
#wget -c "http://nixdev.net/release/sams/debian/l … 5_i386.deb"
Этот пакет для 32 битных систем
#wget -c "http://nixdev.net/release/sams/debian/l … _amd64.deb"
Этот пакет под 64 битные.
Кроме того скачаем доки и собственно вебформу.
wget -c "http://nixdev.net/release/sams/debian/l … .5_all.deb"
wget -c "http://nixdev.net/release/sams/debian/l … .5_all.deb"
Далее необходимо собственно распаковать пакеты.
Для начала распакуем собственно Sams и подправим его чтобы демон запускался.
#dpkg -i sams_1.0.5_i386.deb
или
#dpkg -i sams_1.0.5_amd64.deb
Далее необходимо подправить /etc/init.d/sams и /etc/sams.conf
В /etc/init.d/sams необходимо сменить значение SAMS_ENABLE с FALSE на TRUE.
В /etc/sams.conf необходимо поправить значения MYSQLUSER и MYSQLPASSWORD на ваши.
Далее нужно создать в mysql БД под Sams.
#cd /usr/share/sams/mysql
# mysql -u root -p < sams_db.sql
#mysql -u root -p < squid_db.sql
Далее нужно настроить свой Apache2.
Для этого идем в /etc/php5/apache2/php.ini
Влючаем safe мод
safe_mode = On
safe_mode_exec_dir = "/usr/share/sams/bin"
Все.
Далее мы будем возится с веб мордой самса.
Делаем
#dpkg -i sams-web_1.0.5_all.deb
#dpkg -i sams-doc_1.0.5_all.deb
В принципе после этого не создается ссылка на каталог самс в дирректории /var/www/
И вам будет необходимо создать ее вручную.
#ln -s /usr/share/sams /var/www/sams
Далее необходимо поправить в исходниках вебформы сам функцию GetHostName.
Дело в том что при обновлении движка php была использованна одноименная функция так что GetHostName необходимо заменить на любое другое к примеру GetName.
Файлы в которых необходимо провести эту замену:
/usr/share/sams/src/configtray.php
/usr/share/sams/src/webconfigtray.php
После замены функции веб-форма настройки Sams будет доступна по адресу http://192.168.0.224/sams
Если вы увидели что то типа Access forbiden то необходимо задать права на каталог самс.
#chown www-data:www-data /usr/share/sams
Собственно далее вам необходимо выбрать способ авторизации юзера на прокси сервере.
Рассмотрим ip и ncsa.
Ip
Когда юзеры авторизируются по ip адресу - вы просто создаете их через вебформу sams указывая в даных юзера - ip адресс к примеру 192.168.0.100 и маску 255.255.255.255.
После этого жмете реконфигурировать самс и вуаля - юзер проходит.
Ncsa
В этом в случае эзер получит диалоговое окно с просьбой ввести логин пароль.
Для того чтобы такое окно получить необходимо сначала поправить вручную конфиг squid/
#nano /etc/squid.conf
и дописать туда
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ncsa.sams
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
после этого перезапустите squid и самс.
#/etc/init.d/squid restart
#/etc/init.d/sams restart
Собственно далее вы опять-таки создаете юзеров. Веб форма русифицированна так что проблем с ней нет.
Можно сказать что это все, однако! вам следует учесть, что несмотря на то что вы выпускаете юзеров через прокси-сервер и даете им интернет следует учесть что squid это http прокси сервер и не может проксировать pop3 и smtp запросы. Проще говоря вы можете получить почту через веб браузер но не сможете получить ее через почтовые программы аля outlook или the bat!
И следующий весьма! важный момент состоит именно в том что вы сделаете.
Вы можете настроить iptables и открыть 25 110 и любые необходимые порты, однако в этом случае Sams не будет считать проходящий через них трафик.
Вы можете сделать свой почтовый сервер на Exchange или postfix+dovecot.
Либо заставить всех пользователей получать почту через браузер) 


))