RSS

Установка Прокси сервера Debian 6.0.2.1 Squeeze

03 Май

(Squid+MySQL+Sams+arno-iptables-firewall+Webmin)

Я нисколько не претендую на уникальность этой статьи, так как сам учился и учусь на подобных публикациях. Но если кому то это поможет, хоть одному человеку – значит все не зря…
В этой статье я постараюсь пошагово описать установку и частично настройку прокси сервера на дистрибутиве Debian 6.0.2.1 Squeeze. …

1.Squid и средство его администрирования Sams;
2.Сетевой экран на основе arno-iptables-firewall;
3.Ну и на любителя – Webmin, программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс.

Итак, прокси сервер — для чего он нужен? Я думаю Вы знаете, что необходим он тогда, когда необходимо ограничить доступ к интернет ресурсам, распределить трафик и скорость для пользователей, а так же он помогает защитить клиентские машины от некоторых сетевых атак.

Прокси сервер (Squid и средство его администрирования Sams)
Sams, веб форма о которой пойдет речь — удобное средство для администрирования.

Начнем

Машинка с установленным Debian 6.0.2.1 Squeeze в базовой конфигурации. Система разумеется должна быть чистой, без иксов — все ж таки это сервер.

И так сервер, с двумя сетевыми интерфейсами один из которых смотрит во внутрь локальной сети, а другой будет смотреть в интернет.

В нашем случае eth0 (внутренняя сеть) и eth1 (интернет).
eth1 настраиваем так, как требует Ваш провайдер.
Для eth0 мы зададим статичный IP адрес принадлежащий маске нашей локальной сети.

Первый способ:
Пропишем настройки для сетевого интерфейса в /etc/network/interfaces
Что позволит получать статичный IP адрес каждый раз при загрузке демона /etc/init.d/networking
для этого сделаем следующее:
#nano /etc/network/interfaces
и допишем там следующие строчки (IP я привожу в качестве примера):

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
После этого надо перезапустить демона
#/etc/init.d/networking restart

Второй способ:
Используем для этого команду
#ifconfig eth0 inet 192.168.0.1 netmask 255.255.255.0
#ifconfig eth0 up
После этого можно проверить поднялся ли интерфейс eth0 с помощью команды
#ifconfig eth0
А так же попинговать IP адрес нашего прокси-сервера со своей машины с которой собственно в дальнейшем и будет проводиться настройка.

Однако более «правильный» ИМХО — Первый способ.
После этого необходимо настроить интернет на eth1, как требует Ваш провайдер одним из выше указанных способов.

После того как с нашего прокси сервера пошли пинги в интернет, а для этого не забываем в файл /etc/resolv.conf внести адреса DNS серверов это в случае если не используется DHCP.

Если у нас полный комплект (дистрибутив из 8 DVD дисков),хотя на самом деле для наших целей понадобятся первые три диска, то в качестве источника пакетов можно использовать и компакт-диски, подключаем их на стадии установки или же после, если после, то для этого необходимо использовать утилиту apt-cdrom с единственным параметром add:

#apt-cdrom add

Ну, а если тянуть все будем из интернета, то нужно подправить список репозиториев и выполнить команду apt-get update.
#nano /etc/apt/sources.list

Вносим, например эти:

## STABLE | Стабильный дистрибутив SQUEEZE
deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ stable main contrib non-free

## OFFICIAL SQUEEZE SECURITY | Обновления безопасности SQUEEZE
deb ftp://ftp.ru.debian.org/debian-security squeeze/updates main non-free contrib
deb-src ftp://ftp.ru.debian.org/debian-security squeeze/updates main non-free contrib

Для начала этого вполне достаточно
И обновляем
#apt-get update

Нам остается поставить ssh и midnight commander.
#aptitude install ssh
#aptitude install mc

Теперь мы сможем отключить мышь, клавиатуру, монитор и. т.д., кроме сетевого (LAN) и питания (электричество) :). Подключаться на него будем уже используя ssh и продолжать настройку удаленно. Это даже удобнее, вы можете использовать буфер обмена (копировать-вставить), а не набирать кучу команд в ручную…..

Для этих целей я использую PuTTY — свободно распространяемый клиент для различных протоколов удалённого доступа, включая SSH, Telnet, rlogin, скачать его можно здесь: http://www.chiark.greenend.org.uk/~sgtatham/putty/
И конечно нам понадобится WinSCP — свободный графический клиент протоколов SFTP и SCP, предназначенный для Windows. Распространяется по лицензии GNU GPL. Обеспечивает защищённое копирование файлов между компьютером и серверами, поддерживающими эти протоколы, поддерживает интеграцию с PuTTY агентом для поддержки авторизации по открытым ключам. Его Вы можете скачать по адресу: http://winscp.net/eng/docs/lang:ru

!!! Записываем/запоминаем логины и пароли которые будем в процессе установки назначать.

Продолжим — для установки 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.1 mysql-client-5.1 libmysqlclient16 mysql-server-core-5.1
#aptitude install squid
#aptitude install phpmyadmin

Выбираем сервер apache2 (в появившемся окошке настройке пакета)
Настраеваем пакет dbconfigcommon (пароли)
Нам еще понадобятся пакеты:
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://www.nixdev.net/release/sams/debian/squeeze/sams_1.0.5_i386.deb»
Этот пакет для 32 битных систем
#wget -c «http://www.nixdev.net/release/sams/debian/squeeze/sams_1.0.5_amd64.deb»
Этот пакет под 64 битные.
Кроме того скачаем доки и собственно вебформу.
#wget -c «http://www.nixdev.net/release/sams/debian/squeeze/sams-doc_1.0.5_all.deb»
#wget -c «http://www.nixdev.net/release/sams/debian/squeeze/sams-web_1.0.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.
#nano /etc/init.d/sams
В /etc/sams.conf поправить значения MYSQLUSER и MYSQLPASSWORD на Ваши.
#nano /etc/sams.conf
Далее нужно создать в 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
#nano /etc/php5/apache2/php.ini
Влючаем safe мод
safe_mode = On
safe_mode_exec_dir = "/usr/share/sams/bin"

Устанавливаем веб интерфейс Sams.
Делаем это так:
Возвращаемся, ведь закачанные пакеты лежат в домашней папке
#cd /home/
#dpkg -i sams-web_1.0.5_all.deb
#dpkg -i sams-doc_1.0.5_all.deb

Создаем ссылку на каталог Sams.
#ln -s /usr/share/sams /var/www/sams

Правим в исходниках веб формы Sams функцию GetHostName.
При обновлении движка php была использованна одноименная функция так, что GetHostName необходимо заменить на любое другое к примеру GetName.
Файлы в которых необходимо провести эту замену:
#nano /usr/share/sams/src/configtray.php (2 замены)
#nano /usr/share/sams/src/webconfigtray.php (2 замены)

Во избежании появления ошибки доступа к веб-форме типа “ Authentication ERROR” или “The requested URL /sams/data/xxxxxxxxxxxxxx.sql.gz was not found on this server” при сохранении конфигурации в ней или ошибки импорта/экспорта черных/белых списков понадобится изменить владельца на каталог /usr/share/sams.
и изменить права доступа к /usr/share/sams/data
#chown www-data:www-data /usr/share/sams
#chmod 775 -R /usr/share/sams/data

Веб-форма настройки Sams будет доступна по адресу http://192.168.0.1/sams
По умолчанию в свеже установленном Sams две учетные записи:
— администратор со всеми правами:
Login: admin
Password: qwerty
— аудитор с правами просмотреть данные по пользователям (где, что и сколько)
Login: auditor
Password: audit

Способы авторизации пользователей:

IP
Когда юзеры авторизируются по ip адресу — вы просто создаете их через веб форму Sams указывая в даных юзера — ip адресс к примеру 192.168.0.100 и маску 255.255.255.255.
После этого жмете реконфигурировать Sams и ……. — юзер проходит.

NCSA
В случае 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!
Можно в файрволле открыть 25 110 и любые необходимые порты, однако в этом случае Sams не будет считать проходящий через них трафик.
Можно сделать почтовый сервер на postfix+dovecot, что как мне кажется предпочтительнее.

Сетевой экран (arno-iptables-firewall)
Для предотвращения несанкционированного подключения извне и для фильтрации входящего/исходящего трафика в операционной системе должна быть использована специальная программа — файрволл (англ. firewall), известная также под названиями брандмауэр и межсетевой экран, в нашем случае это arno-iptables-firewall.
Итак ставим:
#aptitude install arno-iptables-firewall

Настроить его не сложно, интуитивно понятная диалоговая установка.
В большинстве случаев успешный запуск файрволла происходит уже после первого общения с конфигуратором. Если что-то не заработало, достаточно повторить конфигурацию, запустив вновь конфигуратор:

#dpkg-reconfigure arno-iptables-firewall
В случае если планируется управление из «внешнего мира» SSH, Sams и Webmin, то не забываем открыть соответственно следующие порты 22, 80, 10000.

Средство администрирования операционной системы (Webmin)
Этот этап можно пропустить — т.е. на Ваше усмотрение.
Ставим средство управления операционной системой – WebMin:
Сначала добавим нужные библиотеки, если их нету в системе:

#apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python

А теперь ставим Webmin:

Как и в случае с Sams будем качать .deb пакеты, хотя конечно можно закачать отдельно до установки.
Итак качаем:
#wget http://prdownloads.sourceforge.net/webadmin/webmin-1.570_all.deb
И ставим
#dpkg —install webmin_1.570_all.deb

Веб-форма Webmin в нашем случае будет доступна по адресу https://192.168.0.1:10000
Веб-форма русифицирована, достаточно при первом логине в настройках сменить язык на русский, как и в случае с Sams.

Вроде и все!!!
Удачи!

Источник статьи

 

Метки:

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s