Лучшая связка squid + kerberos + screen-squid
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 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 88 89 90 |
yum -y install squid - установка squid systemctl start squid - запустить systemctl enable squid - вкл авто запуск squid -z - создаем структуру папок под кэш следующей командой ---------------------------------------- простой конфиг: ####для банка acl ibank_dst dst 195.95.218.21 acl ibank_dst dst 23.43.139.27 acl ibank_dst dst 172.16.155.58 http_access allow ibank_dst ####Интернет для пользователей без домена acl no_kerb_auth src 10.17.0.102 http_access allow no_kerb_auth #### Для авторизации через kerberos #### Генерировать на контролере домена ####ktpass -princ HTTP/имя_прокси_сервера.домен.windows@ДОМЕН.WINDOWS -mapuser домен\Имя_пользователя_в_домене -pass "password*" -ptype KRB5_NT_SRV_HST -out HTTP7.keytab #auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -d -s HTTP/proxy.domain.ru@DOMAIN.RU #auth_param negotiate children 10 #auth_param negotiate keep_alive on #acl kerb_auth proxy_auth REQUIRED #### Для авторизации по паролю #### htpasswd -c /etc/squid/squidusers user1 - создание файла для паролей и добавление в него пользователя user1 #### htpasswd /etc/squid/squidusers user2 - добавление нового пользователя user2 в файл с паролями #### chmod 440 /etc/squid/squidusers - выставляем права 440 для файла /etc/squid/squidusers #### chown proxy:proxy /etc/squid/squidusers - задаем пользователя и группу proxy #auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squidusers #acl password_auth proxy_auth REQUIRED #### Список доступа по времени acl Work_Time time MTWHFAS 00:00-23:59 http_access allow Work_Time # разрешаем Work_Time #### Список доступа для адреса acl Users_Allow src 10.10.0.101 acl Users_Allow src 10.10.0.109 acl Users_Allow src 10.10.0.110 http_access allow Users_Allow # разрешаем Users_Allow #### Список доступа сети acl localnet src 192.168.15.0/24 # для сети 192.168.15.0/24 acl localnet src 10.10.0.0/24 # для сети 10.10.0.0/24 http_access allow localnet # разрешаем localnet #### Список доступа порты 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 CONNECT method CONNECT http_access deny !Safe_ports # запретить все не(!) Safe_ports #### Запрет сайтов acl Site_Deny dstdom_regex vk.com ya.ru http_access deny Site_Deny # запрещаем сайты ##### запрещаем все остальное http_access deny all # запрещаем все остальное #### Порт proxy http_port 3128 #### Кеш proxy cache_dir ufs /var/spool/squid 4096 32 256 coredump_dir /var/spool/squid #### Дополнительные параметры оптимизации кэширования refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 #### это кол-во дескрипторов которые может использовать squid max_filedesc 4096 ---------------------------------------- |
kerberos:
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 |
---------------------------------------- !!!У прокси сервера должно быть имя FQDN!!! !!!Прокси за именем DC лезит в файл /etc/hosts !!!За DNS /etc/resolv.conf Создаем пользователя в домене. Заходим на домен windows и создаем файл HTTP7.keytab с помощью ktpass. !!!! что пишется после @ обязательно писать ЗАГЛАВНЫМИ буквами! ktpass -princ HTTP/proxy_squid.domain.loc@DOMAIN.LOC -mapuser nbtname\proxy_squid -pass "password*" -ptype KRB5_NT_SRV_HST -out HTTP7.keytab ktpass -princ HTTP/имя_прокси_сервера.домен.windows@ДОМЕН.WINDOWS -mapuser домен\Имя_пользователя_в_домене -pass "password*" -ptype KRB5_NT_SRV_HST -out HTTP7.keytab ---------------------------------------- yum install cyrus-sasl-gssapi krb5-workstation krb5-devel - ставим пакеты для керберос ---------------------------------------- Файл HTTP7.keytab доставляем на сервер со сквидом в папку /etc/squid cd /etc/squid - переходим в каталог сквида chown squid:squid HTTP7.keytab - меняем пользователя и группу на squid chmod u+rwx,g+rx HTTP7.keytab - выставляем право на файл cp /etc/squid/HTTP7.keytab /etc/krb5.keytab - копируем HTTP7.keytab и меняем имя на krb5.keytab (!!! в логах была ошибка хелпер искал файл тут /etc/krb5.keytab) ---------------------------------------- Тестирование: kinit -V -k -t /etc/krb5.keytab HTTP/proxy.domain.inc@DOMAIN.INC - получим билет kinit user_name - получим билеты для пользователя user_name klist - посмотрим полученные билеты kdestroy - уничтожить полученные билеты ---------------------------------------- nano /etc/krb5.conf - дополнительное конфигурирование Минимальный конфиг: [libdefaults] default_realm = DOMAIN.RU [realms] DOMAIN.RU = { kdc = dc.domain.ru kdc = 1.2.3.4 } [appdefaults] pam = { debug = true ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false validate = true } ---------------------------------------- Проверяем логи tail /var/log/messages tail /var/log/squid/cache.log ---------------------------------------- |
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 ----------------------- |
Источники:
1 2 3 |
https://veesp.com/ru/blog/how-to-setup-squid-on-ubuntu https://wiki.squid-cache.org/Features/Authentication#How_does_Proxy_Authentication_work_in_Squid.3F http://xgu.ru/wiki/Squid,_Kerberos_%D0%B8_LDAP |