0. Устанавливаем httpd:
1 2 3 4 5 |
yum -y install httpd-tools - ставим yum -y install httpd - ставим веб сервер systemctl enable httpd.service - вкл автозапуск systemctl start httpd.service - запустить htpasswd -c /etc/squid/auth_users user1 - создать пользователя user1 с паролям |
1. Устанавливаем php + mysql:
1 2 |
yum -y install php yum -y install php-mysql php-common php-mbstring php-gd php-ldap php-odbc php-pear php-xml php-soap php-xmlrpc php-snmp php-mcrypt php-devel php-xml curl curl-devel |
2. Устанавливаем mariadb (MySQL) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
------------------------------------------------------ yum -y install mariadb-server mariadb mariadb-devel- установка systemctl enable mariadb.service - вкл автозапуск systemctl start mariadb.service - запустить ------------------------------------------------------ nano /etc/my.cnf -файл основных настроек [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid #add bind-address=127.0.0.1 character-set-server=utf8 ------------------------------------------------------ mysql_secure_installation - команда начальной настройки (пароль для рута) Set root password? [Y/n] y - ставим пароль Remove anonymous users? [Y/n] y - убрать анонимусов Disallow root login remotely? [Y/n] y - отключить вход рутом из сети Remove test database and access to it? [Y/n] y - удалить тест базу Reload privilege tables now? [Y/n] y - обновить привилегии |
3. Установка phpMyAdmin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
yum -y install epel-release - ставим репозиторий EPEL yum -y install phpmyadmin - установка phpMyAdmin ------------------------------------------------------ nano /etc/httpd/conf.d/phpMyAdmin.conf -----------------------CUT---------------------------- <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 - разрешаем подключения с IP Require ip 10.0.0.0/24 - разрешаем подключения с IP </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 - разрешаем подключения с IP Allow from 10.0.0.0/24 - разрешаем подключения с IP </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 - разрешаем подключения с IP Require ip 10.0.0.0/24 - разрешаем подключения с IP </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 - разрешаем подключения с IP Allow from 10.0.0.0/24 - разрешаем подключения с IP </IfModule> </Directory> -----------------------CUT---------------------------- ------------------------------------------------------ systemctl reload httpd - перезагружаем веб сервер ------------------------------------------------------ |
4. Установка squid:
1 2 3 4 5 6 7 |
yum -y install squid - установка squid systemctl start squid - запустить systemctl enable squid - вкл авто запуск squid -z - создаем структуру папок под кэш следующей командой tail /var/log/squid/access.log - логи tail /var/log/squid/cache.log - логи tail -n 30 /var/log/squid/access.log - логи |
5. Настраиваем squid конфиг для работы с SAMS2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
vi /etc/squid/squid.conf ----------------------------------- # TAG: acl - необходим для работы sams2 # TAG: url_rewrite_access - необходим для работы sams2 # TAG: url_rewrite_program - необходим для работы sams2 # TAG: url_rewrite_children - необходим для работы sams2 # TAG: delay_pools - необходим для работы sams2 # TAG: delay_class - необходим для работы sams2 # TAG: delay_access - необходим для работы sams2 # TAG: delay_parameters - необходим для работы sams2 # TAG: http_access - необходим для работы sams2 # TAG: http_access2 - необходим для работы sams2 # TAG: icp_access - необходим для работы sams2 acl localnet src 217.66.157.0/24 - сеть клиентских компьютеров http_access allow all - разрешить весь трафик cache_dir ufs /var/spool/squid 4096 32 256 - настраиваем директорию для кэша http_port 3128 - настройка порта http_port 3128 transparent - настройка порта и вкл transparent ----------------------------------- |
7. Установка screen-squid:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
https://sourceforge.net/projects/screen-squid/files/stable/ - стабильные версии sreen-squid cd /usr/src/ - перейдем в каталог wget https://sourceforge.net/projects/screen-squid/files/stable/v1_11/screensquid_v1_11.tar.gz - скачаем sreensquid tar -xf screensquid_v1_11.tar.gz - распакуем ls -la - посмотрим что там распаковалось mv html /var/www/html/screen-squid - переместим распакованный каталог в папку веб сервера cd /var/www/html/screen-squid - перейдем в каталог установки screen-squid ----------------------- создадим базу squidreport любым способом ----------------------- nano /var/www/html/screen-squid/config.php - редактируем настройки screen-squid ----------------------- mysql -u root -p -f squidreport < /var/www/html/screen-squid/createdb/createdb.sql - зальем в базу squidreport ----------------------- crontab -e - добавим редактируем задание 00 23 * * * perl /var/www/html/screen-squid/fetch.pl ----------------------- perl /var/www/html/screen-squid/fetch.pl ----------------------- |
8. Устанавливаем дополнительные пакеты для установки SAMS2:
1 2 |
yum install glib2 glib2-devel glibc make geoip - установим yum -y install autoconf automake libtool pcre-devel libstdc++-devel gcc-c++ - установим |
7. Устанавливаем sams2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
----------------------------------- yum -y install epel-release - добавим репозиторий yum -y install glib2 glib2-devel glibc make geoip autoconf automake libtool pcre-devel libstdc++-devel gcc-c++ - ставим пакеты для сборки самс2 cd /usr/src/ - перейдем в каталог wget https://github.com/PavelVinogradov/sams2/archive/master.zip - скачаем sams2 unzip master.zip - распакуем ls -l - посмотрим каталоги cd /usr/src/sams2-master/ - перейдем в распакованный каталог ----------------------------------- nano /usr/src/sams2-master/src/proxy.h - редактируем файл proxy.h (без этого sams2daemon работать не будет) enum TrafficType > enum TrafficType: long enum usrAuthType > enum usrAuthType: long enum RedirType > enum RedirType: long enum ParserType > enum ParserType: long enum CharCase > enum CharCase: long ----------------------------------- make -f Makefile.cvs - готовим к сборке ----------------------------------- sh ./configure - готовим к сборке ----вывод ./configure---- Use MySQL API: yes - важный параметр Use PostgreSQL API: no Use unixODBC API: no Use LDAP API: no Using pcre: pcre - важный параметр Use dynamic plugin: yes Locations: config file: /usr/local/etc/sams2.conf daemons: /usr/local/bin web interface: /usr/local/share/sams2 - каталог установки documentation: /usr/local/share/doc/sams2-2.0.0 ----------------------------------- make install - устанавливаем, но у нас ничего не выйдет :( (ошибка cannot access '//usr/local/share/sams2/data': No such file or directory) mkdir -p /usr/local/share/sams2/data - содзаем каталог (его почему то не создает инсталлятор) make install - устанавливаем, теперь все установилось :) ----------------------------------- Удаляем сгенерированные файлы установщика rm /etc/httpd/conf.modules.d/doc4sams2.conf rm /etc/httpd/conf.modules.d/sams2.conf ----------------------------------- nano /etc/httpd/conf.d/sams2.conf - создадим свой конфиг apache2 для sams2 Alias /sams2 /usr/local/share/sams2 <Directory /usr/local/share/sams2/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> <RequireAny> Require ip 10.1.3.0/24 10.1.4.0/24 - разрешим вход 10.1.3.0/24 10.1.4.0/24 </RequireAny> </IfModule> </Directory> ----------------------------------- Редактируем конфиг sams nano /usr/local/etc/sams2.conf ----вывод sams2.conf---- DB_USER=root - интересуют эта строка, временно вводим учетные данные root DB_PASSWORD=rootpass - интересуют эта строка, временно вводим учетные данные root ----------------------------------- systemctl restart httpd - ребутаем apache ----------------------------------- http://IP_FQDN/sams2 - входим Название базы данных: MySQL Имя базы данных: sams2db Хост базы данных: localhost Имя пользователя БД: root - используем root Пароль к базе данных: пароль_рута Создать пользователя SAMS для доступа к базе данных имя пользователя SAMS: Имя_пользователя_для_базы_данных пароль: пароль ----------------------------------- nano /usr/local/etc/sams2.conf - редактируем конфиг DB_USER=root - меняем логин на который создали DB_PASSWORD=rootpass - меняем пароль на который создали ----------------------------------- http://IP_FQDN/sams2 - входим admin, пароль — qwerty ----------------------------------- cd /usr/src/sams2-master/redhat/ - переходим в каталог cp /usr/src/sams2-master/redhat/init.d /usr/src/sams2-master/redhat/init.d.b - делаем копию на всякий nano /usr/src/sams2-master/redhat/init.d - редактируем файл init.d ---edit init.d--- [ -f __CONFDIR/sams2.conf ] || exit 0 >>>меняем на>>> [ -f /usr/local/etc/sams2.conf ] || exit 0 DAEMON=__PREFIX/sams2daemon >>>меняем на>>> DAEMON=/usr/local/bin/sams2daemon ----------------- cp /usr/src/sams2-master/redhat/init.d /etc/init.d/sams2 - копируем скрипт запуска sams2daemon /etc/init.d/sams2 start - запускаем systemctl start sams2 - или так запускаем systemctl enable sams2 - добавляем в автозагрузку |
Чистка кеша squid:
1 2 3 4 5 6 7 8 |
systemctl stop squid - останавливаем squid /etc/init.d/sams2 stop - останавливаем sams grep cache_dir /etc/squid/squid.conf - узнаем расположение кеша rm -rf /var/spool/squid/* - удаляем кеш squid -z - создаем структуру для нового кеша systemctl start squid - запускаем squid /etc/init.d/sams2 start - запускаем sams /etc/init.d/sams2 restart - пере запускаем sams |
sams перестал считать трафик:
1 2 3 4 |
1. отключил самс. 2. squid -k rotate 3. запустить самс 4. sams -d начал считать трафик... |
wpad:
1 2 3 4 5 6 7 8 9 10 11 |
для dhcp сервера dhcp-option=252,http://10.0.0.1/wpad.dat файл wpad.dat function FindProxyForURL(url, host) { if(isInNet(host, "10.0.0.0", "255.255.255.0")) { return "DIRECT"; } if (shExpMatch(host, "127.0.0.1" )) {return "DIRECT";} if (shExpMatch(host, "*/localhost*" )) {return "DIRECT";} if (shExpMatch(url, "https:*")) {return "DIRECT";} return "PROXY 10.0.0.1:3128"; } |
Логи squid:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
1034456544.292 295 1.1.1.1 TCP_CLIENT_REFRESH_MISS/200 535 GET http://www...... расшифровывается так: когда_был_запрос сколько_длился_запрос удаленный_хост код_запроса/статут_запроса размер_запроса метод_HTTP URL_запроса А поля эти значат такие вещи: 1. Время, когда был обслужен запрос. Это стандартное Epoch time. Чтобы перевести в понятные циферки, делай что-нибудь такое (это на Перле): $time=1034456544.292; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($time); 2. Время обслуживания запроса - т.е. сколько милисекунд твой Squid получал страничку и отдавал ее клиенту 3. IP удаленного хоста, откуда читался запрос 4. Код выполнения запроса. По нему можно увидеть, был ли запрошенный объект уже в кеше, или его пришлось получать заново. Или он был, но его пришлось обновить. В твоем случае, объекта в кеше был, но когда Squid спросил по URL'у, менялся ли запрашиваемый объект, ему ответили, что менялся, и прислали новую версию. 5. Статус выполнения запроса. число 200 это успешное завершение, 403 это редирект, 500 это ошибка сервера. Кодов куча. 6. Количество байт в транзакции, сколько занимал скачанный и переданный клиенту запрос. 7. Метод HTTP запроса для скачивания объекта. Это GET, POST, HEAD. 8. Собственно URL того что запрашивал клиент |
доп материалы:
1 2 3 4 5 6 7 8 9 10 |
https://b14esh.com/nix/centos/centos-7-tools.html - команды начальной настройки https://b14esh.com/nix/centos/centos-setup-net.html - настройки сети http://libreportal.net/advice/squid-IP-autorization.html http://sams.perm.ru/doc/ru/squid.html https://serveradmin.ru/nastroyka-proksi-servera-na-centos-7-squid-ad-sams2/ http://v-alexeev.ru/sams-squid-ubuntu-12-04/ https://habrahabr.ru/post/205460/ https://www.dmosk.ru/instruktions.php?object=squid-install https://habrahabr.ru/company/mailru/blog/259521/ - wpad https://interface31.ru/tech_it/2010/12/ubuntu-server-nastraivaem-avtorizaciyu-cherez-squid.html - wpad |