Меню Рубрики

Установка sams2 и squid ubuntu

Настройка прокси-сервера SQU >

Задача: настроить сервер обеспечивающий контроль доступа к глобальной сети Интернет. Сервер выступает как единая точка для доступа пользователей к сети WWW. После пятилетней работы прокси-сервера на freebsd в составе, которого софт: Apache, MySql, php, Squid, sams 1 версии, Rejik — сборка зарекомендовала себя очень хорошо, нагрузка не велика от 50 до 100 пользователей. Плюсы — бесплатно. Удобство — управление через Web, понятный интерфейс, обширная справка. Глюки – Sams отказывается рестартовать, было редко, но было. Обслуживание – нужно уделить особое внимание росту базы MysSql прокси

В 2015 г решился на обновление, сборка та же меняется лишь платформа на Ubuntu и Sams 2 версии, который как позже выяснилось, на момент не умел работать с Rejik. Rejik безусловно вещь полезная, но поскольку в старой сборке, к сожалению, я им почти не пользовался, поэтому Sams 2 был установлен на мой сервер
Ниже нет, подробной инструкции как установить Apache+MySql+php или как установить Squid и Sams, ниже описание тех сложностей, которые возникли при установке и настройке сборки софта Squid+Sams2 на Ubuntu, и не которые моменты, что называется для себя

Настройка прокси-сервера SQUID+SAMS2 на Ubuntu

1. Обновляем ПО
apt-get update
apt-get upgrade

2. Устанавливаем mc, squid3
apt-get install squid3 && mc

3. Локализуем систему, устанавливаем xenserver tools
Устанавливаем mc, bootlogd, chkconfig, vsftpd
Отключаем ipv6,устанавливаем, настраиваем ntp
dpkg-reconfigure tzdata

5. Вводим сервер в домен, устанавливаем winbind, samba
apt-get install squid3
Предлагаемые пакеты:
squidclient squid-cgi squid-purge smbclient winbindd openssl-blacklist

6. Устанавливаем все необходимое
apt-get install apache2
apt-get install mysql-server
apt-get install php5
apt-get install php5-dev
apt-get install php5-mcrypt
apt-get install php5-imagick
apt-get install php5-mysql
apt-get install php5-gd
apt-get install libmysqlclient-dev
apt-get install libpcre3-dev
apt-get install php-fpdf

7. Настраиваем чтобы squid мог читать pipe winbind
chown root:proxy -R /var/run/samba/winbindd_privileged/
Исправляем /etc/init.d/winbind
mkdir -p /var/run/samba/winbindd_privileged || return 1
chgrp proxy $PIDDIR/winbindd_privileged/ || return 1
chmod 0750 $PIDDIR/winbindd_privileged/ || return 1
start-stop-daemon —start —quiet —oknodo —exec $DAEMON — $WINBINDD_OPTS

8. Проверяем ntlm
/usr/bin/ntlm_auth —helper-protocol=squid-2.5-basic
Administrator password
Ответ должен быть ОК

9. В squid.conf вносим изменения
auth_param ntlm program /usr/bin/ntlm_auth —helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 100
auth_param ntlm keep_alive off
auth_param basic program /usr/bin/ntlm_auth —helper-protocol=squid-2.5-basic
auth_param basic children 100
auth_param basic realm Proxy Autentification Required
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
Раскомментировать
http_port 3128
Раскомментировать
access_log /var/log/squid3/access.log squid
Раскомментировать
pid_filename /var/run/squid3.pid
Раскомментировать
cache_log /var/log/squid3/cache.log
Раскомментировать
coredump_dir /var/spool/squid3
Раскомментировать эти строчки для того чтобы squid обрывал соединение после превышения лимита по трфику
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
Добавить строчку
visible_hostname name.domain.local
Останавливаем squid
stop squid3
sudo service —status-all
sudo service squid3 reload
sudo initctl list
Создаем swap Squid
squid3 -z
Перезапустим squid и убедится, что squid запустился без ошибок
etc/init.d/squid3 restart
Перечитать конфигурацию
squid3 -k reconfigure

10. Устанавливаем mysql
apt-get install mysql-server
11. Устанавливаем php
PHPLIST=’php5 php5-cli php5-common php5-dev php5-mcrypt php5-imagick php5-mysql php5-gd php5-ldap php-fpdf libapache2-mod-php5′
Устанавливаем php версию
echo > /etc/apt/preferences.d/php5_3
for i in $PHPLIST ; do echo »
Package: $i
Pin: release a=precise
Pin-Priority: 991
» >> /etc/apt/preferences.d/php5_3; done
Создаем source list
echo ‘# needed sources vor php5.3:
deb bg.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src bg.archive.ubuntu.com/ubuntu/ precise main restricted
deb bg.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src bg.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb bg.archive.ubuntu.com/ubuntu/ precise universe
deb-src bg.archive.ubuntu.com/ubuntu/ precise universe
deb bg.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src bg.archive.ubuntu.com/ubuntu/ precise-updates universe
deb bg.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src bg.archive.ubuntu.com/ubuntu/ precise multiverse
deb bg.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src bg.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src bg.archive.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse
deb security.ubuntu.com/ubuntu precise-security main restricted
deb-src security.ubuntu.com/ubuntu precise-security main restricted
deb security.ubuntu.com/ubuntu precise-security universe
deb-src security.ubuntu.com/ubuntu precise-security universe
deb security.ubuntu.com/ubuntu precise-security multiverse
deb-src security.ubuntu.com/ubuntu precise-security multiverse
deb-src archive.canonical.com/ubuntu natty partner
deb extras.ubuntu.com/ubuntu precise main
deb-src extras.ubuntu.com/ubuntu precise main
deb bg.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src bg.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb archive.canonical.com/ubuntu precise partner
deb-src archive.canonical.com/ubuntu precise partner
‘ >> /etc/apt/sources.list.d/precise.list
apt-get update
apt-get -t precise install $PHPLIST
apt-get update
aptitude –f -t precise install $PHPLIST

Читайте также:  Установка modx revolution на локальный сервер

12. Установка SAMS 2
cd /srv
wget sams.perm.ru/download/sams-2.0.0-rc1.tar.bz2
tar -xvf sams-2.0.0-rc1.tar.bz2
apt-get install make
apt-get install autoconf
apt-get install libtool
apt-get autoremove
apt-get install libldap2-dev
apt-get install libmysqlclient-dev
apt-get install libpcre3-dev
apt-get install libpcre++-dev
apt-get install build-essential
make -f Makefile.cvs
./configure

Файл libtool, который генерирует скрипт, нуждается в правке.
Набираем patch -l и вставляем следующий текст. В конце нужно два раза нажать Ctrl-D, чтобы он понял, что это конец файла.

— libtool.old 2012-02-14 17:34:10.363994833 +0400
+++ libtool 2012-02-14 15:55:27.142358890 +0400
@@ -5986,7 +5986,8 @@
case $dir in
[\\/]* | [A-Za-z]:[\\/]*) ;;
*)
— absdir=`cd «$dir» && pwd`
+# absdir=`cd «$dir» && pwd`
+ absdir=»/usr/lib»
test -z «$absdir» && \
func_fatal_error «cannot determine absolute directory name of \`$dir'»
dir=»$absdir»
PS: Придумал не я взял в тырнете, память забыла, где именно
make
make install
ln -s /usr/sbin/squid3 /usr/sbin/squid
cp /init.d /etc/init.d/sams2daemon
chmod o+x /etc/init.d/sams2daemon
Редактируем скрипт /etc/init.d/sams2daemon
Нужно прописать правильный путь к конфигу sams:
SAMSPATH=`cat /usr/local/etc/sams2.conf | grep SAMSPATH | tr “SAMSPATH=” “\0″`
Включить его:
SAMS_ENABLE=true
/etc/init.d/sams2daemon start or /usr/bin/sams2daemon
ps aux | grep sams2daemon
chown root:www-data sams2.conf

13. Настраиваем Apache для Sams2
chown www-data:www-data -R /usr/local/share/sams2/

Настраиваем Apache
Alias /sams2 /usr/local/share/sams2

Options +FollowSymLinks
AllowOverride All
order allow,deny
allow from all

14. Редактируем файл конфигурации php /etc/php.ini (для mod_php файл php.ini может быть в /etc/httpd/conf)
Включаем режим safe mode.
Для этого выставляем параметр safe_mode:
safe_mode = On
SAMS для некоторых функций WEB интерфейса использует системные команды, например wbinfo.
В режиме safe_mode php блокирует доступ к системным командам. PHP позволяет выполнять системные команды, расположенные в каталоге, заданном параметром safe_mode_exec_dir. Изменяем этот параметр:
safe_mode_exec_dir = «/usr/local/share/sams/bin»
Далее, разрешаем исполнение системных скриптов из кода php. Ищем в файле конфигурации параметр:
disable_functions = «chdir,dl,ini_get_all,phpinfo,system,shell_exec,popen,proc_open,exec,passthru,pcntl_exec»
и если он не пустой, убираем из него запрет вызова функций phpinfo system shell_exec exec
также убираем запрет вызова функций phpinfo system shell_exec exec в параметре:
hphp.executor.func.blacklist = chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec
safe_mode = On
safe_mode_exec_dir = /usr/share/sams/bin
disable_functions = chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec
Заходим в админку sams ip-address-proxy/sams2,
стандартные логин и пароль SAMS2 по умолчанию admin и qwerty.

15. Редиректор REJIK
РЕДИРЕКТОР REJIK не поддерживается sams2

16. В настройках интерфейса Sams2 в пункте путь к каталогу, где лежат файлы запрета нужно указывать ip прокси-сервера/sams2

источник

Sani4.ru

Записки Саныча

Строим сервер ubuntu 16.04 + Desktop + squid + sams2 + DHCP

Строим сервер ubuntu 16.04 server + squid(с блокировкой сайтов по ssl) + DHCP + sams2

Установка Ubuntu … server …

1. после ввода данной команды отобразятся все сетевые интерфейсы

2. Включить выключить интерфейс:

прописать В файл /etc/network/interfaces примерно так:
(это для моего проводного соединения со статическими IP)

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. auto enp3s2 iface enp3s2 inet static address 192.168.100.119 netmask 255.255.255.0 auto enp3s3 iface enp3s3 inet static address 10.33.0.119 netmask 255.255.255.0 gateway 10.33.0.211 dns-nameservers 10.33.0.211 #iface enp3s2 inet static — указывает, что интерфейс (iface enp3s2) находится в диапазоне адресов IPv4 (inet) со статическим ip (static); #address 192.168.100.119 — указывает что IP адрес (address) нашей сетевой карты enp3s2 192.168.100.119; #netmask 255.255.255.0 — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0; #gateway 10.33.0.211 — адрес шлюза; #dns-nameservers 10.33.0.211 8.8.8.8 — адреса DNS серверов (о ниж мы расскажем позже) #auto enp3s2 — указывет системе что интерфейс enp3s2 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

Читайте также:  Установка птф на 21214

перед установкой доп компанентов
обновимся

Ubuntu 16.04 Desktop Установим графический интерфейс. ЭТОТ ШАГ МОЖНО И ПРОПУСТИТЬ

после установки перезагрузимся уже в наш интерфейс и продолжим работу

Ubuntu 16.04 прозрачный Squ >

Чтобы постоянно не вводить sudo переходим в root

разрешим скачивание исходников

для этого разблокируем ветки где указан deb-src, уберем #

поставим необходимые библиотеки для сборки

Создадим папку где будет производится сборка

Качаем зависимости (для выполнения этой операции был поставлен dpkg-dev)

В случае ошибки доступа _apt «Невозможно сбросить права для скачивания» меняем права и повторяем

В моем случае это был файл squid3_3.5.12-1ubuntu7.5.dsc может быть и squid3_3.5.12-1ubuntu7.7.dsc и другие разновидности

Если этого не сделать или будут ошибки, то не появится папка debian

Переходим в полученную папку

Добавляем поддержку ssl
Редактируем файл правил

Добавляем строчки после proxy
ВАЖНО: чтобы все параметры заканчивались \ , а именно дописать после proxy \

—enable-ssl \ —enable-ssl-crtd \ —with-openssl \

теперь собираем DEB пакеты ( Процесс очень долгий )

configure: error: library ‘crypto’ is required for OpenSSL

Необходимо установить libssl-dev и перезапустить процесс сборки

Идем на папку выше и там должны быть получившиеся пакеты

squid3_3.5.12-1ubuntu7.5_all.deb squid_3.5.12-1ubuntu7.5_amd64.deb squid-cgi_3.5.12-1ubuntu7.5_amd64.deb squidclient_3.5.12-1ubuntu7.5_amd64.deb squid-common_3.5.12-1ubuntu7.5_all.deb squid-dbg_3.5.12-1ubuntu7.5_amd64.deb squid-purge_3.5.12-1ubuntu7.5_amd64.deb

Устанавливаем наши пакеты

Правим зависимости и переставляем

Если все успешно то смотрим версию squid и что у нас вышло

Squid Cache: Version 3.5.12 Service Name: squid Ubuntu linux configure options.

Конфигурация с блокировкой сайтов по ssl. Чтобы Именно посмотреть работу прозрачного режима. Настройка Обычная базовая с добавлением SSL

Переходим в папку squid и генерируем сертификат

Добавим сеть src 192.168.100.0/24
Добавим порты под HTTP 3128 и HTTPS 3129
Добавим генерацию сертификатов sslcrtd_program и sslcrtd_children

acl SSL_ports port 443 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 WhiteIp src «/etc/squ ssl_bump peek all ssl_bump terminate blocked_fast ssl_bump terminate blocked_ssl ssl_bump splice all sslcrtd_program /usr/lib/squ >

создадим файл с блокируемыми сайтами

.vseigru.net .stoboi.ru .igroutka.net

192.168.100.8 192.168.100.56 192.168.100.89

Создадим файл с сайтами что будем блокировать глобально .

И теперь применяем конфигурацию

теперь Для работы необходимо настроить iptables

Настройка NAT

#!/bin/bash #========================================================== # Настройка IPTABLES #========================================================== #========================================================== # Сетевый интерфейсы #========================================================== LAN=»enp3s2″ WAN=»enp3s3″ LO=»lo» #========================================================== # Локальная сеть #========================================================== LAN_RANGE=192.168.100.0/255.255.255.0 #========================================================== # Путь к таблицам #========================================================== IPTABLES=»/sbin/iptables» #========================================================== # Список портов #========================================================== SSH=»22″ DNS=»53″ SQU # Сбрасываем все правила #========================================================================================= $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -t mangle -F $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X # Базовая расстановка правил #========================================================== $IPTABLES —policy INPUT ACCEPT #DROP $IPTABLES —policy OUTPUT ACCEPT #DROP $IPTABLES —policy FORWARD DROP #ACCEPT # Включаем форвардинг ip в ядре. #========================================================================================= /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Включаем маскарадинг для маскарад для отработки NAT #========================================================================================= $IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE # Разрешаем пакеты по уже установленным соединениям #========================================================================================= $IPTABLES -A INPUT -m conntrack —ctstate ESTABLISHED,RELATED -j ACCEPT # Разрешаем доступ к SSH и DNS серверу если INPUT DROP (Не пригодилось) #========================================================================================= #$IPTABLES -A INPUT —protocol tcp -i $LAN —dport $SSH -j ACCEPT #$IPTABLES -A INPUT —protocol tcp -i $LAN —dport $DNS -j ACCEPT #$IPTABLES -A INPUT —protocol udp -i $LAN —dport $DNS -j ACCEPT # Разрешаем доступ к HTTP и HTTPS серверу если INPUT DROP (Не пригодилось) #========================================================================================= #$IPTABLES -A INPUT —protocol tcp -i $LAN —dport $HTTP -j ACCEPT #$IPTABLES -A INPUT —protocol tcp -i $LAN —dport $SQU >

Читайте также:  Установка антенны для рации на калину

Если в качестве шлюза используется маршрутизатор, то на нем перенаправляем порты 80 и 443 на сервер где стоит SQUID на порты 3128 и 3129 соответственно
В таком случае правила «Заворачиваем SQUID» для iptables ненужны.

После сохранения изменений обеспечим для файла права на исполнение:

Далее необходимо поставить созданный файл на автозагрузку при включении сервера. Для этого откроем рассмотренный ранее файл interfaces:

и добавим в самый низ строку:

Перезагрузим сервер для автоматического применения новых настроек:

Теперь настроим Сервер DHCP

Файл конфигурации по умолчанию находится в /etc/dhcp/dhcpd.conf, откроем файл в редакторе с помощью команды:

В большинстве случаев минимальная настройка производится внесением блока вида:

После изменения конфигурационного файла необходимо перезапустить сервер DHCP для применения новых настроек:

Теперь все клиенты локальной сети будут получать все настройки автоматически при подключении.

Ну вот и подошли к Sams2 и php 7

и заходим в распакованный каталог
# cd sams2.0.0-rc1/
Перед сборкой конфигурации необходимо отредактировать файл
# vi debian/control
и меняем все php5 на php7
Собираем скрипт конфигурации:

По окончании работы скрипта вы должны увидеть следующее сообщение:

Use MySQL API: yes Use PostgreSQL API: no Use unixODBC API: no Use LDAP API: yes Using pcre: pcre Use dynamic plugin: yes

6. Файл libtool, который генерирует скрипт, нуждается в патче.
И нам необходимо его отредактировать.

и в строке 7486
absdir=`cd «$dir» && pwd`
заменить на
absdir=»/usr/lib»
Cобираем SAMS2

Меняем владельца директории sams2 на www-data:

10.В директории /etc/apache2/conf-enabled/ создаем файл sams2.conf со следующим содержимым

Alias /sams2 /usr/local/share/sams2 Options +FollowSymLinks AllowOverride All order allow,deny allow from all

ServerName /sams2 DocumentRoot /usr/local/share/sams2 ErrorLog $/sams2.error.log CustomLog $/sams2.access.log combined

теперь перезагрузим apache2

И еще необходимо создать файл php5tophp7.php
с текстом

data_seek($row); $datarow = $res->fetch_array(); return $datarow[$field];> function mysql_connect($a, $b, $c) < $h = M_HOST; $p = M_PORT; $s = ""; if ($a[0] == "/") < $h = ""; $s = $a; $p = 0; >; $GLOBALS[«MySQLconn»] = mysqli_connect($h, $b, $c,M_BASE,$p,$s); return $GLOBALS[«MySQLconn»];> function mysql_real_escape_string($a)

Заходим на http://ip-address-proxy/sams2/setup.php настраиваем следуя инструкции.

Добавление сайтов в Apache2

ServerName /test DocumentRoot /var/www/test ErrorLog $/test.error.log CustomLog $/test.access.log combined

далее
скопируем файл конфигурации

Alias /test /var/www/test Options FollowSymLinks MultiViews

теперь перезагрузим apache2

Установка PHP 5.6 в Ubuntu 16.04

Добавим ppa-репозиторий в систему:

Далее запускаем установку PHP 5.6

Переключать активные версии можно командами:
Отключаем PHP 7.0

Проверить рабочую версию в данный момент, можно функцией phpinfo

Может быть интересно

Информация о пользователе

Ваш IP-адрес:
85.95.178.136
Ваш браузер:
Chrome
Примерное местоположение:

источник

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

Adblock
detector