Боевой прокси-сервер Squid 5.2 с нуля ч.4

—

от автора

Открытие портов для банк клиентов + Статистика SqStat + Полный конфиг

Добрый день, коллеги. По просьбам трудящихся дополняю конфиг и выкладываю полностью, если что-то не получается стучите в личку.

Открытие портов для банк клиентов

Некоторые банки не дают ходить через прокси и требуется разрешить порты или домены, которые они используют. Также программы для удаленного доступа (например Ammyy Admin) будут попадать под фильтр и коннект с их ip адресами проходить не будет.

В конфиге squid.conf между настройками «#Черного списка сайтов» и «#IP администратора без фильтра» пишем конфиг:

Для портов банк-клиентов

acl port_allowed port 80    # Port HTTP

acl port_allowed port 443   # Port HTTPS

acl port_allowed port 9443  # Port Sberbank biz

По аналогии добавляете свои.

Для сайтов и доменов банков

acl dst_sber dst 92.38.2.0/24

acl dst_direct dstdomain .sbis.ru

Для Ammyy Admin

acl dst_ammyynet dstdomain .ammyy.com

acl dst_ammyynet_ip dst 23.111.200.0/24

В раздел http_access добавляем строки:

http_access deny !port_allowed # Для портов

http_access allow dst_direct # Для домена сбиса

http_access allow dst_sber # Для сбера

http_access allow dst_ammyynet # Для ammyy admin

http_access allow dst_ammyynet_ip # Для ammyy admin


Настройка SqStat

Мониторинг пользовательской активности Squid, в реальном времени. Для наших целей его вполне хватает. Если нужны подробные отчеты и т.п. можете рассмотреть другие варианты, например: ScreenSquid.

  1. Для начала установим Apache2 и php

    sudo apt install -y apache2 libapache2-mod-php

  2. Далее скачиваем и распаковываем архив в /var/www/html/stat/

    wget https://github.com/CrashX/SqStat/archive/refs/heads/main.zip

  3. Создаем и редактируем конфигурационный файл

    touch /etc/apache2/conf-available/sqstat.conf

    nano /etc/apache2/conf-available/sqstat.conf

  4. Вносим правки. IP адрес указываем администратора, с которого мы будем осуществлять мониторинг.

    Alias /sqstat/ /var/www/html/sqstat/

    <Location "/sqstat/">

       DirectoryIndex sqstat.php

       order deny,allow

       allow from 192.168.10.222/32

    </Location>

  5. Далее двумя командами активируем sqstat и перезагружаем apache2

    a2enconf sqstat

    service apache2 reload

  6. В squid.conf в самом конце конфига задаем пароль для доступа (любой)

    cachemgr_passwd password all

  7. В http_access добавляем

    http_access allow manager localhost

    http_access allow localnet manager

    http_access deny manager

  8. Сохраняем, выходим.

  9. Далее редактируем файл  /var/www/html/sqstat/config.inc.php

    <?php     /* global settings */     $use_js=true; // use javascript for the HTML toolkits     DEFINE("SQSTAT_SHOWLEN",60);     /* proxy settings */     $squidhost[0]="127.0.0.1";     $squidport[0]=3128;     $cachemgr_passwd[0]="password";     $resolveip[0]=false;     $group_by[0]="username"; ?>
  10. Делаем

    squid -k reconfigure

    /etc/init.d/apache2 reload

Теперь идете в адресной строке браузера и обращаемся по имени прокси-сервера, DNS запись в первой части:

proxy_comp.yourdomain.com/sqtat


К самому главному, конфиг.

Еще раз по обозначениям:
yourdomain.com – вместо этого подставляйте свой домен
proxy_comp — имя прокси сервера в DNS
192.168.10.100 – сервер прокси
192.168.10.222 — IP нашего админского компа

################################################# # Аутентификация Kerberos #################################################  auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s user-px@YOURDOMAIN.COM auth_param negotiate children 160 startup=0 idle=1 auth_param negotiate keep_alive off  ################################################# # Интерфейсы прокси сервера #################################################  http_port 192.168.10.100:3128 http_port 127.0.0.1:3128  ################################################# # Подсеть компании #################################################  acl localnet src 192.168.10.0/24   ################################################# # Забираем группы для назначения скоростей из AD #################################################  external_acl_type class_maximum %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g maximum@YOURDOMAIN.COM -D YOURDOMAIN.COM external_acl_type class_medium %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g medium@YOURDOMAIN.COM -D YOURDOMAIN.COM external_acl_type class_minimum %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g minimum@YOURDOMAIN.COM -D YOURDOMAIN.COM  ################################################# # Alias #################################################  acl acl_maximum external class_maximum acl acl_medium external class_medium acl acl_minimum external class_minimum  ################################################# # Transactions for delay_pools #################################################  acl mark_maximum annotate_transaction maximum=true acl mark_medium annotate_transaction medium=true acl mark_minumum annotate_transaction minumum=true  ################################################# # ACL Note #################################################  acl speed_limit_maximum note maximum true acl speed_limit_medium note medium true acl speed_limit_minimum note minimum true  ################################################# # Доступы к ресурсам #################################################  external_acl_type allow_social_net %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g social_net@YOURDOMAIN.COM -D YOURDOMAIN.COM external_acl_type allow_shops %LOGIN /usr/lib/squid/ext_kerberos_ldap_group_acl -a -g shops@YOURDOMAIN.COM -D YOURDOMAIN.COM  ################################################# # Alias #################################################  acl social_net external allow_social_net          # LDAP Group External Access acl shops external allow_shops                    # LDAP Group External Access  ################################################# # Списки внешних ресурсов #################################################  acl white_social_net url_regex -i "/etc/squid/lists/soc.net.list" # Для соц.сетей acl white_shops url_regex -i "/etc/squid/lists/shops.list"        # Для маркетплейсов  ################################################# # Черный список сайтов и доменов #################################################  acl black_deny url_regex -i "/etc/squid/lists/lock_sites"         # Список вирусных и заблокированных сайтов acl domain_deny dstdomain "/etc/squid/lists/lock_domain"          # Список заблокированных доменов  ################################################# # Порты для банков #################################################  acl port_allowed port 80# Port HTTP acl port_allowed port 443# Port HTTPS acl port_allowed port 9443# Port Sberbank biz  ################################################# # Сайты и домены #################################################  acl dst_sber dst 92.38.2.0/24 acl dst_direct dstdomain .sbis.ru  ################################################# # Ammyy Admin #################################################  acl dst_ammyynet dstdomain .ammyy.com acl dst_ammyynet_ip dst 23.111.200.0/24  ################################################# # IP администратора без фильтра #################################################  acl admin src 192.168.10.222/32  ################################################# # Delay_pools  1 Mb = 125000 bytes #################################################  delay_pools 3                                                   # Количество пулов  delay_class 1 4  delay_parameters 1 none none none 1875000/1875000               # 15 Mbit/s  delay_access 1 allow speed_maximum  delay_access 1 deny all   delay_class 2 4  delay_parameters 2 none none none 1000000/1000000               # 8 Mbit/s  delay_access 2 allow speed_medium  delay_access 2 deny all   delay_class 3 4  delay_parameters 3 none none none 500000/500000                 # 4 Mbit/s  delay_access 3 allow speed_minimum  delay_access 3 deny all  ################################################# # Доступы #################################################  http_access allow localhost        # Доступ к прокси серверу всей подсети компании http_access allow admin            # Доступ нашему IP в обход всех правил  http_access allow manager localhost http_access allow localnet manager http_access deny manager  http_access deny !port_allowed     # Для портов  http_access allow dst_direct       # Для домена сбиса http_access allow dst_sber         # Для сбера  http_access allow dst_ammyynet     # Для ammyy admin http_access allow dst_ammyynet_ip  # Для ammyy admin   http_access deny !social_net white_social_net  http_access deny !shops white_shops  ################################################# # Блок всем пользователям к черному списку сайтов и доменов #################################################  http_access deny black_deny http_access deny domain_deny  ################################################# # Скорости #################################################  http_access allow acl_maximum mark_maximum   # Доступ на максимальной http_access allow acl_medium mark_medium     # Доступ на средней http_access allow acl_minimum mark_minimum   # Доступ на минимальной  # Кто не состоит ни в одной из описанных нами групп, запретить доступ ко всем веб-сайтам.  http_access deny all  ################################################# # Cache (Настройки кэша) #################################################  cache_mem 1024 MB  maximum_object_size_in_memory 10024 KB  cache_dir ufs /var/spool/squid 2048 16 256  maximum_object_size 4 MB  access_log daemon:/var/log/squid/access.log squid  logfile_rotate 31  ################################################# # SqStat #################################################  cachemgr_passwd password all
Hidden text

По настройке Squid больше нечего добавить, максимально изложил рабочую информацию. Если есть что добавить welcome в комментарии.

Часть 1

Часть 2

Часть 3

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

В комментах много споров. Вопрос: Устарел ли Squid?

66.67% Нет, еще актуален42
33.33% Да, прошлый век21

Проголосовали 63 пользователя. Воздержались 8 пользователей.

ссылка на оригинал статьи https://habr.com/ru/articles/733016/