Я буду встановлювати на Debian Lenny, але немає різниці з Debian Squeeze.
SAMS Система управління доступом користувачів через проксі-сервер на Інтернет-ресурси. Для використання в приватних компаніях і державних органах є ідеальним для використання в приватних компаніях. Усі роботи з проксування, перенаправлення запитів, кешування та авторизації приймаються за допомогою проксі-сервера Squid і SAMS займається обліком трафіку та управління користувачем.
Squid Програмний пакет, який реалізує функцію кешування проксі-сервера для HTTP, FTP, Gopher та (при відповідних) протоколів HTTPS. Розвинена громада як відкрита програма джерела (розписана під GNU GPL).
Почати встановлення та налаштування нашого програмного пакету.
Встановлення та налаштування кальмарів
Для початку додайте репозиторію на джерело. Перелік з яких ми встановимо всі програми:
Для Debian Lenny:
vi /etc/apt/sources.list deb http://archive.debian.org/debian/ lenny main contrib non-free
Для Debian Squeeze:
vi /etc/apt/sources.list deb http://mirror.yandex.ru/debian squeeze main contrib non-free
Оновлення репозиторій
aptitude update
Оновити всі доступні пакети
aptitude dist-upgrade
Встановіть проксі-сервер Squid
aptitude install squid
Встановити файловий менеджер mc
aptitude install mc
Встановлення текстового редактора
aptitude install vim
Встановити веб-сервер Apache2, MYSQL, PHP5, phpmyadmin
aptitude install apache2 mysql-server php5 phpmyadmin
Після успішного встановлення опуклості, приступаємо до його налаштування:
Скопіювати файл конфігурації в архів
cp /etc/squid/squid.conf /etc/squid/squid.conf_backup
Ми відкриваємо конфігурацію файла squid.conf зручний для вас редактор
vi Для читання інструкцій користувача. Для завершення експрес-курсу запустіть команду vimtutor і пропустіть основні команди, щоб використовувати програму.
mcedit - простіше працювати для початківців ліноїдних
Для простоти опису я буду описати роботу з редактором. MC
mcedit /etc/squid/squid.conf
Прес-центр F7З'явиться вікно пошуку, введіть в неї те, що потрібно знайти, натиснувши Enter
Якщо ми знайдемо неправильне, повторюємо пошук знову і так далі, поки не знайдемо праву лінію. Після того, як ви зробили необхідні зміни і хочете зберегти файл натисніть кнопку F2 І ми приймаємо зміни. Після збереження, щоб закрити збережений файл, натисніть F10
Далі я пишу те, що ми шукаємо і як вона повинна виглядати після зміни (перше виглядає так, щоб інші були такими):
був:
# TAG: visible_hostname # If you want to present a special hostname in error messages, etc, # define this. Otherwise, the return value of gethostname() # will be used. If you have multiple caches in a cluster and # get errors about IP-forwarding you must set them to have individual # names with this setting. # #Default: # none
сталася:
# TAG: visible_hostname # If you want to present a special hostname in error messages, etc, # define this. Otherwise, the return value of gethostname() # will be used. If you have multiple caches in a cluster and # get errors about IP-forwarding you must set them to have individual # names with this setting. # #Default: visible_hostname inetservname
був:
http_port 3128
сталася:
http_port 3128 transparent
ВАЖЛИВО! Якщо ви не працюєте з використанням пароля, прозора авторизація не буде працювати, вам потрібно призначити IP: Портрет вашого проксі-сервера в браузері користувача.
був:
# icp_port 3130
сталася:
icp_port 0
був:
# cache_mem 8 MB
сталася:
cache_mem 256 MB
був:
# maximum_object_size_in_memory 8 KB
сталася:
maximum_object_size_in_memory 512 KB
був:
# maximum_object_size 20480 KB
сталася:
maximum_object_size 120480 KB
був:
# cache_dir ufs /var/spool/squid 100 16 256
сталася:
cache_dir ufs /var/spool/squid 5000 32 256
був:
# cache_swap_low 90 # cache_swap_high 95
сталася:
cache_swap_low 90 cache_swap_high 95
був:
# logfile_rotate 0
сталася:
logfile_rotate 5
був:
acl SSL_ports port 443 # https acl SSL_ports port 563 # snews acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT
сталася:
acl SSL_ports port 443 # https #acl SSL_ports port 563 # snews #acl SSL_ports port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https #acl Safe_ports port 70 # gopher #acl Safe_ports port 210 # wais #acl Safe_ports port 1025-65535 # unregistered ports #acl Safe_ports port 280 # http-mgmt #acl Safe_ports port 488 # gss-http #acl Safe_ports port 591 # filemaker #acl Safe_ports port 777 # multiling http #acl Safe_ports port 631 # cups #acl Safe_ports port 873 # rsync #acl Safe_ports port 901 # SWAT
був:
# TAG: url_rewrite_program # Specify the location of the executable for the URL rewriter. # Since they can perform almost any function there isn't one included. ... #Default: # none
сталася:
# TAG: url_rewrite_program # Specify the location of the executable for the URL rewriter. # Since they can perform almost any function there isn't one included. ... #Default: url_rewrite_program /usr/bin/samsredir
був:
#Default: # url_rewrite_children 5
сталася:
url_rewrite_children 5
був:
#auth_param basic program <uncomment and complete this line> #auth_param basic children 5 #auth_param basic realm Squid proxy-caching web server #auth_param basic credentialsttl 2 hours
сталася:
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
!! Якщо ви використовуєте внутрішній DNS сервер всередині мережі, ви можете розповісти про Squid проксі, щоб використовувати його за допомогою написання:
Для того, щоб використовувати локальний DNS сервер, ми змінимо:
був:
# TAG: dns_nameservers ... #Default: # none
сталася:
# TAG: dns_nameservers ... #Default: dns_nameservers 192.168.1.1
Заощаджуйте зміни і приступайте до установки SAMS.
Монтаж SAMS 1.5
Необхідні залежності повинні бути встановлені:
apt-get install apache2 php5 mysql-server mysql-client build-essential autoconf automake libtool g++ php5-gd libmysqlclient15-dev php-fpdf
При запиті вводити корінь mysql пароля, ввести і повторювати, а також написати на шматок паперу або в блокноті, щоб не забувати.
Ми робимо резервну копію конфігурацій, які ми змінимо:
cp /etc/squid/squid.conf /etc/squid/squid.conf_backup cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_backup cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini_backup
Налаштування PHP
SAMS може працювати з PHP в Safe_mode=На режимі. Але це вимагає додаткових налаштувань конфігурації. Для цього ми редагуємо файл конфігурації php. /etc/php5/apache2/php.ini.
1,1 км Увімкніть безпечний режим (це необов'язково, наприклад, я не включаю на). Саме тому ми встановлюємо налаштування Safe_mode
safe_mode = On
!! До уваги.Якщо у вас є імпротент в пережик заборонити аркуші дає помилку в веб-інтерфейс: can't open sams config file data/urlist.txt
Сейф_mode повинен бути розміщений в Офф, що означає:
safe_mode = Off
2. ... SAMS використовує команди системи для деяких функцій інтерфейсу, таких як wbinfo. У режимі Safe_mode доступ до системних команд. Php дозволяє виконувати команди системи, які знаходяться в каталозі, вказаному параметром Safe_mode_exec_dir. Змінено цей параметр:
safe_mode_exec_dir = "/usr/share/sams/bin"
3. Випадковий Далі ми допускаємо виконання системних сценаріїв з php коду. Ми шукаємо файл конфігурації та знімаємо заборону на виклик функції phpinfo_exec від нього:
disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"
4. У. Для того, щоб знайти великий список заборон в PHP, ми збільшимо розмір та розмір файлу.
Макс. розмір
сталася:
; Maximum size of POST data that PHP will accept post_max_size = 50M
Макс. розмір файлу
сталася:
; Maximum allowed size for uploaded files. upload_max_filesize = 50M
4. У. Всі. PHP готовий йти.
Вам потрібно перезапустити веб-сервер для перечитування параметрів з php.ini:
/etc/init.d/apache2 restart
Встановити SAMS:
Перейти до каталогу, де ми завантажимо інсталяційні пакети, створюємо папку samsМи йдемо до нього і перекачуємо пакети установки:
cd /usr/src/ mkdir sams cd sams
Ми завантажимо пакети Samsung для нашої архітектури:
Для amd64:
wget http://nixdev.net/release/sams/debian/lenny/sams_1.0.5_amd64.deb wget http://nixdev.net/release/sams/debian/lenny/sams-web_1.0.5_all.deb wget http://nixdev.net/release/sams/debian/lenny/sams-doc_1.0.5_all.deb
Для i386:
wget http://nixdev.net/release/sams/debian/lenny/sams_1.0.5_i386.deb wget http://nixdev.net/release/sams/debian/lenny/sams-web_1.0.5_all.deb wget http://nixdev.net/release/sams/debian/lenny/sams-doc_1.0.5_all.deb
Встановіть завантажені пакети:
dpkg -i *.deb
З'явиться псевдографічне вікно:
Настраивается пакет sams
SAMS require additional manual configuration
Currently SAMS package not ready to work out of box. Starting of samsdaemon disabled in init.d script.
Please read /usr/share/doc/sams/README.Debain for description of additional configure step.
<Ok>Натисніть OK.
Включіть Самі в файл, скоригуючи /etc/init.d/sams
був:
SAMS_ENABLE=false
сталася:
SAMS_ENABLE=true
Налаштування файлу конфігурації на адресу /etc/sams.conf
Корисно:
MYSQLPASSWORD=yourpassword REJIKPATH=/usr/local/rejik3
Далі перевірте, чи працює кальмар і якщо команда виводить номер, то він працює, а потім ми зупинимо проксі-сервер.
pidof squid 8534
/etc/init.d/squid stop * Stopping Squid HTTP proxy squid [ OK ]
Тепер ми відтворимо кеш-сервера проксі з командою:
squid -z 2009/02/16 15:55:20| Creating Swap Directories
На цьому етапі закінчуються налаштування кальмарів, тепер ми запускаємо проксі-сервер з командою:
init.d/squid start
Ми готуємо базу MySQL для роботи Самсу:
під корінь користувача і пароль, який ми писали заздалегідь в блокноті на нашому сервері:
http://ip_server/phpmyadmin
Потім натиснути кнопку.SQL І ви кладете код у вікно. Виконувати запити SQL на сервері Localhost обов'язково змінити пароль yourpassword навігація:
GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword"; GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "yourpassword";
Вам необхідно натиснути. OK:
Обов'язково заповнювати бази даних, створені для Samsung з командами в консолі сервера:
mysql -u sams -pyourpassword < /usr/share/sams/mysql/sams_db.sql mysql -u sams -pyourpassword < /usr/share/sams/mysql/squid_db.sql
Скопіювати - вставити і виконувати, змінивши пароль вашого імені:
!! До уваги!!!
Якщо ви настроювання Debian Squeeze, вам потрібно додати репозиторію від Debian Lenny для того, щоб встановити необхідні залежності.
Додайте репозиторію, яка вже була архівована в файлі /etc/apt/sources.list команда:
echo "deb http://archive.debian.org/debian/ lenny main contrib non-free" >> /etc/apt/sources.list
Оновити репозиторію командою:
aptitude update
Ми встановлюємо необхідну залежність від команди:
aptitude install libmysqlclient15off
Для того, щоб ввести панель управління SAMS, потрібно ввести адресу в браузері http://ip_server/samsде ip_server - IP-адреса сервера, на яку ми встановили.
Вхід адміністратора:
Логін: admin
Пароль: qwerty
Вхід за аудитором:
Логін: auditor
Пароль: audit
Я дуже радимо змінити пароль відразу, і написати його в блокнот.
Якщо ви встановите SAMS на сервері вже працює з будь-якою панеллю керування хостингом, наприклад, ISPmanager, створюйте для прикладу користувача samsweb з доменними файлами.site.loc і дайте йому дозвіл на CGI, а також налаштуйте домен для роботи через php CGI, а в доменній папці просто монтуйте вміст папки сам команди:
mount --bind /usr/share/sams /var/www/samsweb/data/www/sams.site.loc/
Запустіть цю команду, а потім введіть її у файл. /etc/rc.localПотім при завантаженні сервера папка автоматично монтується.
Вам також потрібно надати права на вміст папки для користувача за допомогою команди:
chown -R samsweb:samsweb /var/www/samsweb/data/www/sams.site.loc/
Це має бути те, що:
.... # bits. # # By default this script does nothing. mount --bind /usr/share/sams /var/www/samsweb/data/www/sams.site.loc/ .....
Якщо установка зробила таку помилку:
Fatal error: Cannot redeclare GetHostName() in /var/www/samsweb/data/www/sams.site.loc/src/configtray.php on line 20
Необхідно ввести в скрипти SAMS:
cd /usr/share/sams/ vi src/webconfigtray.php
був:
function GetHostName()
{
if(!($value=getenv('SERVER_NAME')))
{ $value="N.A."; }
return($value);
}сталася:
//function GetHostName()
//{
// if(!($value=getenv('SERVER_NAME')))
// { $value="N.A."; }
// return($value);
//}
vi src/configtray.php
був:
function GetHostName()
{
if(!($value=getenv('SERVER_NAME')))
{ $value="N.A."; }
return($value);
}сталася:
//function GetHostName()
//{
// if(!($value=getenv('SERVER_NAME')))
// { $value="N.A."; }
// return($value);
//}Після того, як веб-інтерфейс відкриється нормально.
Знімки екрана налаштування SAMS через веб-інтерфейс:
До уваги!!!
Для користувачів, які підлягають обмеженням, стандартне повідомлення, яке відображає Samsung схоже на це:
Для того, щоб користувачу показати свій файл, написаний в HTML, потрібно створити сам файл, який буде відображатися користувачеві за допомогою команди, яка обмежена:
touch /usr/share/sams/messages/file_denied.html
Головна
mcedit /usr/share/sams/messages/blocked.php
Потрібні зміни
був:
if($action=="rejikdenied"||$action=="sgdenied")
{
print(" <TR><TD><IMG SRC=\"$path$ICONSET/denied.gif\">");
print(" <TD> ");
print("<P><FONT COLOR=\"RED\"><B><H2>$blocked_php_3 <BR></FONT>");
print("$url<BR> <FONT COLOR=\"RED\">$blocked_php_4</H2></B></FONT> ");
exit(0);
}сталася:
if($action=="rejikdenied"||$action=="sgdenied")
{
// print(" <TR><TD><IMG SRC=\"$path$ICONSET/denied.gif\">");
// print(" <TD> ");
// print("<P><FONT COLOR=\"RED\"><B><H2>$blocked_php_3 <BR></FONT>");
// print("$url<BR> <FONT COLOR=\"RED\">$blocked_php_4</H2></B></FONT> ");
print(file_get_contents('file_denied.html'));
exit(0);
}Після того, як користувач, який опинився під обмеженням, буде відображатися, підготовлений вами HTML файл, розташованим на шляху. /usr/share/sams/messages/file_denied.html
Мій приклад простий файл:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Site Blocked</title> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> </head> <body bgcolor="#000000" text="#c8c8c8" link="#c8c8c8"> <table align="center" border="0" width="640"> <tr><td align="center"> <h1>Содержимое данного сайта заблокировано для просмотра в сети "Ваша фирма".</h1> <h2 align="justify"><font color="red">Этот сайт внесен в список запрещенных адресов как мешающие полноценной работе.</font> <br>Просим извинить за неудобства. Если этот сайт Вам настоятельно требуется для работы, будте добры сообщить администратору сервера об этом. </h2> <hr> </table> </body> </html>
До уваги!!!
В налаштуваннях sams вр Метод автентифікації користувача Виберіть метод IP або NCSA, який вам потрібно і переконайтеся, що Шаблони користувачів - За замовчуваннямТакий спосіб. Далі ви створюєте необхідні шаблони і один з цих шаблонів, які можна прикріпити до будь-якого користувача.
Кожен шаблон може бути пов'язаний з обмеженнями, де ви можете піти і куди не, а також розмір трафіку, доступний користувачеві, швидкість каналу для всього шаблону та швидкості каналів для індивідуального користувача.
Продовження інструкцій за адресою:
У цій інструкції ми встановлюємо програму реdirector. Rejik І ми налаштуємо його через веб-інтерфейс. SAMS
І в цій інструкції ми встановлюємо і налаштуємо програму статистики проксі-сервера онлайн. Sqstat









Про нас