FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-02-14 10:39:36

Состав программного обеспечения: FreeBSD 11.2 amd64 + squid 4.5 на сервере две сетевые карты.

На текущий момент:
установлена система в качестве шлюза,
поднято соединение с интернет,
на внутреннюю сеть DHCP isc-dhcpd + DNS named (bind).
интернет раздается стабильно.

Возникла необходимость в настройке контроля проходящего трафика http\https (урезать однокласников и в контакте и вообще любой сайт, который укажут, для всех, кроме избранных, есть ещё принтера и другие устройства, которые тоже надо зарезать).

Итого получим три правила для трех типов пользователей (три файла для списков ip boss_user, allow_user, deny_user в правилах squid имя acl с окончанием s):
- можно все, адресация х.х.88.200-88.250
- можно но не все, х.х.88.1-88.100
- полный блок. х.х.88.101-88.199
пользователи прибиты по маку на dhcp к адресам.

текущий статус новых работ:
установлен squid 4.5 при старте пишет

Код: Выделить всё

 
 WARNING: /usr/local/libexec/squid/ssl_crtd -c -s /var/log/squid/ssl_db -M 4MB #Hlpr1 exited
2019/02/14 10:18:31 kid1| Too few /usr/local/libexec/squid/ssl_crtd -c -s /var/log/squid/ssl_db -M 4MB processes are running (need 1/32)
2019/02/14 10:18:31 kid1| Closing HTTP(S) port 127.0.0.1:3128
2019/02/14 10:18:31 kid1| Closing HTTP(S) port 127.0.0.1:3130
2019/02/14 10:18:31 kid1| Closing HTTP(S) port 127.0.0.1:3129
2019/02/14 10:18:31 kid1| storeDirWriteCleanLogs: Starting...
2019/02/14 10:18:31 kid1|   Finished.  Wrote 0 entries.
2019/02/14 10:18:31 kid1|   Took 0.00 seconds (  0.00 entries/sec).
2019/02/14 10:18:31 kid1| FATAL: The /usr/local/libexec/squid/ssl_crtd -c -s /var/log/squid/ssl_db -M 4MB helpers are crashing too rapidly, need help!
Поискав в интернете нашел, что не инициализирована база ssl_db, как ее проинициализировать?????
Пришел к выводу, что нужно ставить либо openssl либо вообще libressl, но так на версию openssl 1.0.0 -1.0.2 старые и из-за их проблем (но используется в системе, как бы новая версия библиотеки не покрашила часть ПО) народ дружно переехали на libressl, чтобы фильтровать шифрованный трафик.
Насколько оправдан переход на libressl, после выхода обновления в сентябре 2018 года openssl 1.1.1 ? Если обновлять openssl то полностью или ставить параллельно?

Конфиг squid 4.5

Код: Выделить всё

acl localnet src 192.168.88.0/24
acl allow_users src "/usr/local/etc/squid/allow_user"
acl deny_users src "/usr/local/etc/squid/deny_user"
acl boss_users src "/usr/local/etc/squid/boss_user"

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 CONNECT method CONNECT

visible_hostname bsdproxy.loc
dns_nameservers х.х.х.х

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access allow localnet
http_access allow localhost
http_access allow boss_users
http_access deny  boss_users


# Squid  port 3128
http_port 127.0.0.1:3128 intercept
http_port 127.0.0.1:3130
https_port 127.0.0.1:3129 intercept ssl-bump connection-auth=off cert=/usr/local/etc/squid/squidCA.pem


always_direct allow all
sslproxy_cert_error allow all
tls_outgoing_options flags=DONT_VERIFY_PEER
acl blocked ssl::server_name  "/usr/local/etc/squid/blocked_https.txt"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate blocked
ssl_bump splice all
sslcrtd_program /usr/local/libexec/squid/ssl_crtd -c -s /var/log/squid/ssl_db -M 4MB
cache_dir ufs /var/squid/cache 100 16 256

# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/squid/cache 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/squid/cache

#
# Add any of your own refresh_pattern entries above these.
#
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
ответ при попытке выхода браузером через прокси:
Прокси-сервер отказывается принимать соединения

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение dekloper » 2019-02-15 0:33:26

wrag писал(а):
2019-02-14 10:39:36
Прокси-сервер отказывается принимать соединения
фаерволл проверяйте (телнетом хотябы потыкайтесь)..
wrag писал(а):
2019-02-14 10:39:36
Насколько оправдан переход на libressl
разные нюансы могут быть, от совта зависит..
прозрачный ssl - оправдано..

Код: Выделить всё

man libmap.conf
man make.conf
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

dustdak
проходил мимо
Сообщения: 1
Зарегистрирован: 2019-02-20 9:57:22

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение dustdak » 2019-02-20 10:05:04

У вас:
FATAL: The /usr/local/libexec/squid/ssl_crtd
В сквиде 4.5 заменили на:
#sslcrtd_program /usr/local/libexec/squid/security_file_certgen
Разово инициализировать базу:

Код: Выделить всё

#sslcrtd_program /usr/local/libexec/squid/security_file_certgen -c -s /var/squid/cache/ssl_db -M 4MB
В конфиге использовать без параметра

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-01 9:44:45

теперь вроде стартует

Код: Выделить всё

2019/03/01 09:32:36 kid1| Pinger socket opened on FD 31
2019/03/01 09:32:36 kid1| Squid plugin modules loaded: 0
2019/03/01 09:32:36 kid1| Adaptation support is off.
2019/03/01 09:32:36 kid1| Accepting NAT intercepted HTTP Socket connections at local=127.0.0.1:3128 remote=[::] FD 27 flags=41
2019/03/01 09:32:36 kid1| Accepting HTTP Socket connections at local=127.0.0.1:3130 remote=[::] FD 28 flags=9
2019/03/01 09:32:36 kid1| Accepting NAT intercepted SSL bumped HTTPS Socket connections at local=127.0.0.1:3129 remote=[::] FD 29 flags=41
2019/03/01 09:32:36 kid1| Done reading /var/squid/cache swaplog (0 entries)
2019/03/01 09:32:36 kid1| Store rebuilding is 0.00% complete
2019/03/01 09:32:36 kid1| Finished rebuilding storage from disk.
2019/03/01 09:32:36 kid1|         0 Entries scanned
2019/03/01 09:32:36 kid1|         0 Invalid entries.
2019/03/01 09:32:36 kid1|         0 With invalid flags.
2019/03/01 09:32:36 kid1|         0 Objects loaded.
2019/03/01 09:32:36 kid1|         0 Objects expired.
2019/03/01 09:32:36 kid1|         0 Objects cancelled.
2019/03/01 09:32:36 kid1|         0 Duplicate URLs purged.
2019/03/01 09:32:36 kid1|         0 Swapfile clashes avoided.
2019/03/01 09:32:36 kid1|   Took 0.01 seconds (  0.00 objects/sec).
2019/03/01 09:32:36 kid1| Beginning Validation Procedure
2019/03/01 09:32:36 kid1|   Completed Validation Procedure
2019/03/01 09:32:36 kid1|   Validated 0 Entries
2019/03/01 09:32:36 kid1|   store_swap_size = 0.00 KB
2019/03/01 09:32:36| WARNING: BCP 177 violation. IPv6 transport forced OFF by build parameters.
2019/03/01 09:32:36| pinger: Initialising ICMP pinger ...
2019/03/01 09:32:36| pinger: ICMP socket opened.
2019/03/01 09:32:37 kid1| storeLateRelease: released 0 objects
2019/03/01 09:33:30| Set Current Directory to /var/squid/cache
2019/03/01 09:33:30 kid1| Preparing for shutdown after 0 requests
2019/03/01 09:33:30 kid1| Waiting 30 seconds for active connections to finish
2019/03/01 09:33:30 kid1| Closing HTTP(S) port 127.0.0.1:3128
2019/03/01 09:33:30 kid1| Closing HTTP(S) port 127.0.0.1:3130
2019/03/01 09:33:30 kid1| Closing HTTP(S) port 127.0.0.1:3129
2019/03/01 09:33:30 kid1| Closing Pinger socket on FD 31
2019/03/01 09:33:36| Pinger exiting.
2019/03/01 09:34:01 kid1| Shutdown: NTLM authentication.
2019/03/01 09:34:01 kid1| Shutdown: Negotiate authentication.
2019/03/01 09:34:01 kid1| Shutdown: Digest authentication.
2019/03/01 09:34:01 kid1| Shutdown: Basic authentication.
2019/03/01 09:34:01 kid1| Shutting down...
2019/03/01 09:34:01 kid1| Closing unlinkd pipe on FD 24
2019/03/01 09:34:01 kid1| storeDirWriteCleanLogs: Starting...
2019/03/01 09:34:01 kid1|   Finished.  Wrote 0 entries.
2019/03/01 09:34:01 kid1|   Took 0.00 seconds (  0.00 entries/sec).
CPU Usage: 0.056 seconds = 0.022 user + 0.034 sys
Maximum Resident Size: 204736 KB
Page faults with physical i/o: 0
2019/03/01 09:34:01 kid1| Logfile: closing log daemon:/var/log/squid/access.log
2019/03/01 09:34:01 kid1| Logfile Daemon: closing log daemon:/var/log/squid/access.log
2019/03/01 09:34:01 kid1| Open FD UNSTARTED     9 security_file_certgen #1
2019/03/01 09:34:01 kid1| Open FD UNSTARTED    11 security_file_certgen #2
2019/03/01 09:34:01 kid1| Open FD UNSTARTED    13 security_file_certgen #3
2019/03/01 09:34:01 kid1| Open FD UNSTARTED    15 security_file_certgen #4
2019/03/01 09:34:01 kid1| Open FD UNSTARTED    17 security_file_certgen #5
2019/03/01 09:34:01 kid1| Open FD UNSTARTED    19 IPC UNIX STREAM Parent
2019/03/01 09:34:01 kid1| Squid Cache (Version 4.5): Exiting normally.
2019/03/01 09:34:01| Removing PID file (/var/run/squid/squid.pid)

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-01 10:36:20

установлен обновленный порт OpenSSL

/usr/local/etc/squid# openssl version
OpenSSL 1.1.1 11 Sep 2018

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

Код: Выделить всё

# Squid  port 3128
http_port 127.0.0.1:3128 intercept
http_port 127.0.0.1:3130
https_port 127.0.0.1:3129 intercept ssl-bump connection-auth=off cert=/usr/local/etc/squid/squidCA.pem
правим по доступным инструкциям до вида:

Код: Выделить всё

 
#прозрачный порт указывается опцией intercept
http_port 127.0.0.1:3128 intercept options=NO_SSLv3:NO_SSLv2
#также нужно указать непрозрачный порт, ибо если захотите вручную указать адрес
http_port 127.0.0.1:3130 options=NO_SSLv3:NO_SSLv2 
#и наконец, указываем HTTPS порт с нужными опциями
https_port 127.0.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem
выдает ошибку:

Код: Выделить всё

service squid onestart
Starting squid.
2019/03/01 10:34:31| WARNING: BCP 177 violation. IPv6 transport forced OFF by build parameters.
2019/03/01 10:34:31| FATAL: http_port requires a cert= parameter
2019/03/01 10:34:31| FATAL: Bungled /usr/local/etc/squid/squid.conf line 51: http_port 127.0.0.1:3128 intercept  options=NO_SSLv3:NO_SSLv2
2019/03/01 10:34:31| Squid Cache (Version 4.5): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 57856 KB
Page faults with physical i/o: 0
/usr/local/etc/rc.d/squid: WARNING: failed to start squid

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-01 10:45:15

убираем в строке 51 options=NO_SSLv3:NO_SSLv2 и после старта

Код: Выделить всё

# service squid onestart
Starting squid.
2019/03/01 10:37:42| WARNING: BCP 177 violation. IPv6 transport forced OFF by build parameters.
2019/03/01 10:37:42| FATAL: http_port requires a cert= parameter
2019/03/01 10:37:42| FATAL: Bungled /usr/local/etc/squid/squid.conf line 52: http_port 127.0.0.1:3130  options=NO_SSLv3:NO_SSLv2
2019/03/01 10:37:42| Squid Cache (Version 4.5): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 59504 KB
Page faults with physical i/o: 0
/usr/local/etc/rc.d/squid: WARNING: failed to start squid
убираем в следующей тоже самое строке 52:

На этот раз стартует, при попытке выйти через прокси в интернет, прописал его в firefox и указал порт 2130. Прокси-сервер отказывается принимать соединения. Проверьте настройки.

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-01 10:55:52

так как нужно прозрачное проксирование с подменой сертификата то хотелось бы получить советы и рекомендации по настройке конфига скуид 4.5!!!!

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-01 14:44:14

распишу мысли по конфигу:

Код: Выделить всё

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# блок который был (разбираем объявление прозрачности с подменой сертификата)
always_direct allow all
sslproxy_cert_error allow all
tls_outgoing_options flags=DONT_VERIFY_PEER
acl blocked ssl::server_name  "/usr/local/etc/squid/blocked_https.txt"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate blocked
ssl_bump splice all
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

# как выяснили в данном блоке вроде все нормально ошибок при старте не дает, но не понятно, что же дают опции
# options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off по идее если мы делаем подмену то теоретически должны быть опции
# генерирования сертификата и его подмены относительно портов стандарта https ибо они прячутся.

Код: Выделить всё

http_port 127.0.0.1:3128 intercept 
http_port 127.0.0.1:3130 
https_port 127.0.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem
# нашел пример но в нем почему-то порты http
# http_port 3128 ssl-bump cert=/usr/local/etc/squid/ssl/squidCA.pem generate-host-certificates=on dynamic_cert_mem_cache_size=16MB

# Принимаем сертификаты, даже если они не прошли проверку.

Код: Выделить всё

always_direct allow all
sslproxy_cert_error allow all
# неведомая хрень позже посмотрю что делает закомментирую пока что ? ? ? ? ? ? ? ? ? ? ? ? ? ?
# tls_outgoing_options flags=DONT_VERIFY_PEER

# Укажем список блокируемых ресурсов (в файле домены вида .domain.com) и правила блокировки их

Код: Выделить всё

   acl blocked ssl::server_name  "/usr/local/etc/squid/blocked_https.txt"
# Закрываем соединение, если клиент заходит на ресурс указанные в blocked
# краткая справка:
# И для каждого из этих этапов можно определить, что Squid будет делать c запросами клиентов:
# splice - пропустить все последующие действия, т.е. просто поднимаем TCP-туннель, словно и нет никакого ssl-bump
# peek — подсмотреть всю доступную информацию без "влезания" в соединение
# terminate — закрыть соединение
# bump — "влезть" в соединение, сделать https видимым как http
# SslBump1 - получение открытой информации о соединении (из сертификатов и http-запроса);
# SslBump2 - передача Hello info клиента (создание соединения с сервером);
# SslBump3 - получение Hello info сервера (создание соединения с клиентом).

# Cоздаем acl с шагами bump. Странный блок сам по себе, если мы хотим видеть все соединения расшифрованными,
# то вероятно по иному выглядеть должны, по идее заменить в нем peek и splice на bump:

Код: Выделить всё

   acl step1 at_step SslBump1  # создать еще правило  с именем step1 для получения открытой информацией
   ssl_bump peek step1         # подсмотреть всю доступную информацию без "влезания" в соединение ---- вопрос почему не bump??? 
   ssl_bump terminate blocked  #  здесь блочить все что указано в файле в правиле blocked см. выше
   ssl_bump splice all         #  пропустить все последующие действия для всех. ---- вопрос почему не bump???
# Настраиваем хелпер генерации сертификатов для сайтов в инструкции указано что лучше увелить размер базы 16MB
# и добавить строку sslcrtd_children 50 startup=10 idle=10

Код: Выделить всё

sslcrtd_program /usr/local/libexec/squid/security_file_certgen -s /var/log/squid/ssl_db -M 4MB
sslcrtd_children 50 startup=10 idle=10

# блок который по идее должен принять вид, но первые три строки у всех мануалов разняться. что правильно сюда писать?

Код: Выделить всё

http_port 127.0.0.1:3128 intercept 
http_port 127.0.0.1:3130 
https_port 127.0.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem

always_direct allow all
sslproxy_cert_error allow all

acl blocked ssl::server_name  "/usr/local/etc/squid/blocked_https.txt"
acl step1 at_step SslBump1  
        ssl_bump peek step1 
        ssl_bump bump all   
        ssl_bump terminate blocked  

sslcrtd_program /usr/local/libexec/squid/security_file_certgen -s /var/log/squid/ssl_db -M 4MB
sslcrtd_children 50 startup=10 idle=10

Аватара пользователя
novik
мл. сержант
Сообщения: 146
Зарегистрирован: 2018-07-26 23:52:57

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение novik » 2019-03-05 14:35:14

wrag писал(а):
2019-02-14 10:39:36
урезать однокласников и в контакте и вообще любой сайт, который укажут
А зачем вам подмена сертификата? Он и без неё прекрасно покажет вам

Код: Выделить всё

1551785448.140   4614 192.168.0.196 TCP_TUNNEL/200 22061 CONNECT forum.lissyara.su:443 - FIRSTUP_PARENT/127.0.0.1 -
И вы сможете forum.lissyara.su заблокировать. :oops:
«О сколько нам открытий чудных готовит просвещения дух...»™

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-07 13:38:01

не нужен нормальный конфиг

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-13 16:41:11

в общем конфиг такой:

Код: Выделить всё

acl localnet src 192.168.88.0/24
acl deny_users src "/usr/local/etc/squid/deny_user"

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 CONNECT method CONNECT

visible_hostname xxxxxxxx.loc
dns_nameservers хх.хх.хх.хх

# Recommended minimum configuration:

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

# прозрачность

http_port 127.0.0.1:3128 intercept 
http_port 127.0.0.1:3130 
https_port 127.0.0.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem


always_direct allow all
sslproxy_cert_error allow all


# блокировка сайтов из файла blocked_https.txt

acl blocked ssl::server_name  "/usr/local/etc/squid/blocked_https.txt"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate blocked deny_users
ssl_bump bump all

sslcrtd_program /usr/local/libexec/squid/security_file_certgen -s /var/log/squid/ssl_db -M 4MB
cache_dir ufs /var/squid/cache 100 16 256

# дальше не менялось

coredump_dir /var/squid/cache

#
# Add any of your own refresh_pattern entries above these.
#
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

ошибок на сервере нет,
при попытке выйти через комп  с прописанным в настройках мозилы прокси:

Прокси-сервер отказывается принимать соединения
Firefox настроен на использование прокси-сервера, который отказывает в соединении.
а в access.log пишет:

Код: Выделить всё



1549896253.352      0 139.162.102.46 TAG_NONE/400 4421 NONE error:invalid-request - HIER_NONE/- text/html
1549896261.013   1742 139.162.102.46 TCP_DENIED/403 4010 GET http://clientapi.ipip.net/echo.php? - HIER_NONE/- text/html
1549896277.353      0 139.162.102.46 TCP_DENIED/403 3928 GET http://213.109.8.37:3128/ - HIER_NONE/- text/html
1549898136.413      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549900843.111      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549903011.437      0 46.161.27.52 TAG_NONE/400 3935 ^C mstshash=Test - HIER_NONE/- text/html
1549903011.533      0 46.161.27.52 TAG_NONE/400 3935 ^C mstshash=Test - HIER_NONE/- text/html
1549903590.748      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549906296.417      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549909001.853      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549911701.751      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549914407.038      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549917106.225      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549919804.441      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549922502.777      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549925207.102      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549926847.544      0 223.105.4.249 TCP_DENIED/200 0 CONNECT 213.109.8.37:3129 - HIER_NONE/- -
1549926883.504      0 223.105.4.249 TCP_DENIED/403 4220 GET http://112.35.63.31:10083/index.php - HIER_NONE/- text/html
1549927520.831      0 91.123.157.56 TCP_DENIED/403 4058 GET http://ipdb-bot.ru/HttpRequest/spider3.ashx? - HIER_NONE/- text/html
1549927521.783    951 91.123.157.56 TCP_DENIED/403 4058 GET http://ipdb-bot.ru/HttpRequest/spider3.ashx? - HIER_NONE/- text/html
1549927841.656      0 172.104.100.117 TCP_DENIED/403 3946 GET http://213.109.8.37:3128/ - HIER_NONE/- text/html
1549927904.727      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549930602.675      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549933300.007      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549935999.096      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549938699.466      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549941394.071      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549944087.932      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549946787.897      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549949486.596      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549952184.943      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549954888.015      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html
1549957593.142      0 185.120.188.220 TAG_NONE/400 3940 ^C mstshash=hello - HIER_NONE/- text/html



wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-14 12:51:50

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

Есть два куска запрещающие выход на сайты, но почему-то
не работает вот этот кусок:

Код: Выделить всё

acl block1ssl ssl::server_name "/usr/local/etc/squid/blocklist"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate block1ssl
ssl_bump splice !deny_users
блокировка сайтов появляется после добавления правила:

Код: Выделить всё

http_access deny block1 deny_users
где block1 -----acl block1 url_regex -i "/usr/local/etc/squid/blocklist" # список сайтов под блокировку
deny_users ----acl deny_users src "/usr/local/etc/squid/deny_user" # список компов с блокировкой

Йохан
проходил мимо

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-15 16:04:59

А что подправили в настройках, что бы заработал через браузер с прописанным портом 3130?

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-18 9:31:36

пока конфиг выглядит так:

Код: Выделить всё

acl localnet src 192.168.88.0/24
acl deny_users src "/usr/local/etc/squid/deny_user"
acl block1 url_regex -i "/usr/local/etc/squid/blocklist"


# временно закрыл в дальнейшие правила, добавлю для более тонкой настройки правил фильтрации позже
# acl allow_users src "/usr/local/etc/squid/allow_user"
# acl boss_users src "/usr/local/etc/squid/boss_user"
# acl block2 url_regex -i "/usr/local/etc/squid/blocked_https.txt"


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 CONNECT method CONNECT

visible_hostname some_name.loc
dns_nameservers xx.xx.xx.xx

# Recommended minimum Access Permission configuration:

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access deny block1 deny_users  # или обратное правило можно всем кроме deny_users  ---- http_access allow block1 !deny_users
http_access allow localnet
http_access allow localhost
http_access deny all

# Squid  port 3128

http_port 192.168.88.1:3128 intercept
http_port 192.168.88.1:3130
https_port 192.168.88.1:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem



always_direct allow all
sslproxy_cert_error allow all


acl block1ssl ssl::server_name "/usr/local/etc/squid/blocklist"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump terminate block1ssl
ssl_bump splice !deny_users


sslcrtd_program /usr/local/libexec/squid/security_file_certgen -s /var/log/squid/ssl_db -M 16MB
cache_dir ufs /var/squid/cache 100 16 256
дальше не менял

Йохан
проходил мимо

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-18 15:08:39

Благодарю!
У меня заработало в FF с прописанным прокси только после того как убрал IP адерс вот из этих строк

Было
http_port ххх.ххх.ххх.ххх:3128 intercept
http_port ххх.ххх.ххх.ххх:3130
https_port ххх.ххх.ххх.ххх:3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem

Стало
http_port 3128 intercept
http_port 3130
https_port 3129 intercept ssl-bump options=ALL:NO_SSLv3:NO_SSLv2 connection-auth=off cert=/usr/local/etc/squid/squidCA.pem

В FF прописал порт 3130

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-18 15:17:33

Ок, такой вариант тоже есть, осталось автоматический редирект всего трафика, найти как правильно прописать, сначала в варианте правил без сохранения правил чтобы в случае ошибки откат был простым )) ребутом сервера.
ЙОхан версия скуида у тебя какая?


Йохан
проходил мимо

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 12:27:14

В rc.conf такие правила у меня:

#SQUID
# Разрешаем доступ пользователю Squid
$cmd 018 allow all from me to any out via $LanOut $ks uid squid

# Отправляем http-запросы на порт прозрачного прокси
$cmd 019 fwd 127.0.0.1,3128 tcp from 192.168.10.0/24 to any 80 out via $LanOut $ks

# Отправляем https-запросы на порт прозрачного прокси
$cmd 020 fwd 127.0.0.1,3129 tcp from 192.168.10.0/24 to any 443 out via $LanOut $ks

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-19 13:44:56

$LanOut - внешняя сеть, $ks -корпоративная сеть ? объявлял в rc.conf ?

Код: Выделить всё

gateway_enable="YES"
#-------------------------
firewall_nat_interface="re0"
firewall_enable="YES"
firewall_script="/etc/script.sh"   #-------------------------тут указание на правила файрвола
firewall_type="firewall"
firewall_logging="YES"
firewall_nat_enable="YES"
firewall_type="OPEN"
firewall_quiet="NO"
firewall_flags=""

#-------------------------
natd_enable="YES"
natd_interface="re0"
natd_flags="-f /etc/natd.conf"
Переадресация портов в FreeBSD
Если на нашем шлюзе установлена FreeBSD и брандмауэр по-умолчанию - IPFW, то для выполнения этой задачи мы должны на шлюзе установить переадресацию (проброс) портов (что соответствует текущей конфигурации у меня):

# Redirect to local proxy
/sbin/ipfw add 0170 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any 80

где:

0170 - номер правила (в вашем случае может быть любой).
fwd 127.0.0.1,3128 - куда будем направлять пакеты, - в нашем случае нашему любимому Squid, запущенному на порту 3128 на шлюзе, - ...
from 192.168.1.0/24 - ... отправленные компьютерами локальной сети...
to any 80 - ... на какой-либо сайт в интернете

Теперь внимание! Это правило нужно добавить ДО того, как правила NAT
еще вариант настройки:
Настройка IPFW
Чтобы трафик заворачивать, необходимо добавить несколько важных строк в файл

rc.firewall.local

Правило для IPFW дано шаблоном, поэтому при подстройке под себя замени два параметра.
IFACE - сетевой интерфейс откуда будут приходить запросы пользователей.
SQUIDIP - IP адрес на котором Squid будет слушать перехваченные запросы пользователей (может быть петля 127.0.0.1)

IPFW=/sbin/ipfw
${IPFW} -f flush
${IPFW} add 60000 permit ip from any to any
${IPFW} add 100 fwd SQUIDIP,3128 tcp from any to any 80 recv IFACE
Что нам это дает:
1. Для заворота трафика на freebsd 11 штатными средствами используется IPFW.
2. Правила IPFW можно задать как через файл указанный в /etc/rc.conf или в самом файле этого конфига. Так и в основном конфиге файрвола, а также есть возможность, судя по некоторым намекам, задать правило, которое не сохранено в конфиге, а в памяти висит и после рестарта сервера пропадет.


wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-19 14:50:32

проверяю правила файрвола вижу что внес следующие:

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"
ipfw -q -f flush
$cmd 100 allow ip from any to any
$cmd 014 divert natd ip from any to any via re0
cmd="ipfw -q add"
ipfw -q -f flush
вопрос это не одно и тоже?

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-19 15:37:27

/etc/script.sh тот файл с правилами что рулит ipfw сейчас, содержит:

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"                                                         #  переменная для задания команды файрволу
ipfw -q -f flush                                                              # сброс старых правил
                                                          
[u]$cmd 100 allow ip from any to any[/u]
[u]$cmd 014 divert natd ip from any to any via re0[/u]
Номер правила, как я понял, лучше после правила 100 переделать; в правиле 014, на 124 и перенести его ниже, чтобы и порядок обработки пакетов трафика был правильный и по номеру правила заворот трафика сработал, исправляю и пишу его ниже.

Этот скрипт находится в файле /etc/script.sh, правила можно перезагрузить следующей командой:

Код: Выделить всё

# sh /etc/script.sh
Имя и расположение файла /etc/script.sh могут быть какими угодно.

вероятно правильно так:

Код: Выделить всё

#!/bin/sh
cmd="ipfw -q add"                                                          #  переменная для задания команды файрволу
ipfw -q -f flush                                                               # сброс старых правил
ks="keep-state"                                                              # пока не ясно зачем
$cmd 100 allow ip from any to any
$cmd 120 fwd 127.0.0.1,3128 tcp from 192.168.88.0/24 to any 80 out via re0 setup $ks  # вместо 127.0.0.1 возможно прописать внутренний адрес 192.168.88.251
$cmd 121 fwd 127.0.0.1,3129 tcp from 192.168.88.0/24 to any 443 out via re0 setup $ks
$cmd 124 divert natd ip from any to any via re0 

Йохан
проходил мимо

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 15:38:31

cmd="ipfw -q add" - так задаются переменные
ipfw -q -f flush - так сбрасываем все правила
вопрос это не одно и тоже?

Йохан
проходил мимо

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение Йохан » 2019-03-19 15:41:52

Цитата из хэндбука:
"setup - это обязательное ключевое слово определяет начало запроса сессии для TCP пакетов.
keep-state - это обязательное ключевое слово. При совпадении межсетевой экран создает динамическое правило, которое по умолчанию будет совпадать с двунаправленным трафиком между отправителем и получателем для данной пары IP/порт по указанному протоколу."

wrag
рядовой
Сообщения: 31
Зарегистрирован: 2019-02-14 9:58:30

FreeBSD 11+squid 4.5 прозрачное проксирование с подменой сертификата

Непрочитанное сообщение wrag » 2019-03-19 15:50:42

да про одно и тоже, затупил.
сам читаю хендбук пытаюсь вникнуть.
так как NAT тоже подгружен то номера стали важными))
$cmd 00010 allow all from any to any via lo0 # Нет ограничений на интерфейсе Loopback нужен ли?
судя по хенбуку окончание setup $ks не совсем верное должно быть --- setup keep-state то есть $ks переменная не нужна.