очередной вопрос по squid

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

Модератор: SLEDopit

Ответить
Аватара пользователя
demsl
Сообщения: 207
Статус: sl

очередной вопрос по squid

Сообщение demsl »

поставил на шлюз сквида, конфиг минимальный:

Код:

http_port 127.0.0.1:3128 transparent http_port 192.168.1.1:3128 transparent cache_dir ufs /var/spool/squid 512 16 256 cache_mem 64 MB maximum_object_size 5 MB hierarchy_stoplist cgi-bin ? acl localnet src 192.168.1.0/24 acl localhost src 127.0.0.0/8 acl all src 0.0.0.0/0.0.0.0 http_access allow localnet http_access allow localhost http_access allow all memory_pools on memory_pools_limit 50 MB error_directory /usr/share/squid/errors/Russian-koi8-r visible_hostname seet


завернул запросы на 3128: -t nat -A PREROUTING -i eth1 ! -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128

перезапуск сети - и юзеры получают ERR_ACCESS_DENIED

в какую сторону копать?
PS: понимаю, что http_access allow all оставлять нельзя и потом сменю на deny, просто пытался разобраться, где проблема
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: очередной вопрос по squid

Сообщение skeletor »

После перезапуска сети, перезапустите squid.
Спасибо сказали:
Аватара пользователя
kisil
Сообщения: 204
ОС: Slackware 13,37-14

Re: очередной вопрос по squid

Сообщение kisil »

Может правило заворачивания не верное.
Попробуйте вот такое:

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

-t nat -A PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128
Спасибо сказали:
Аватара пользователя
demsl
Сообщения: 207
Статус: sl

Re: очередной вопрос по squid

Сообщение demsl »

kisil, спасибо, но думаю, что дело не в правиле, тк выдаёт уже сквидовскую страницу ошибки, т.е. на сквид заворачитвает

skeletor, спасибо, попробую
Спасибо сказали:
vlad001
Сообщения: 55

Re: очередной вопрос по squid

Сообщение vlad001 »

Здравствуйте! Вопрос, squid в прозрачном режиме (в том числе https), хочу часть сайтов перенаправлять (redirect) с http на https (те что могут и так и так открываться, но чтоб было только одно). Для этого добавил к конфигу часть:

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

acl PORT80 localport 80
acl MYSITE dstdomain "/etc/squid/redirect"
http_access deny PORT80 MYSITE
deny_info 301:https://%H%R MYSITE
Полный конфиг:
Spoiler

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

acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/64
acl globalIPv6 src ipv6
acl PORT80 localport 80
acl MYSITE dstdomain "/etc/squid/redirect"
http_access deny PORT80 MYSITE
deny_info 301:https://%H%R MYSITE
acl ftp proto FTP
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
acl directlist url_regex -i "/etc/squid/directlist"
negative_ttl 0 seconds
dns_nameservers 192.168.2.1
max_filedescriptors 8192
via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access cache-control deny all
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow globalIPv6
http_access allow localnet
http_access allow localhost
http_access deny all
http_access allow directlist
always_direct allow directlist
http_port 3128
http_port 3129 intercept
https_port 3130 intercept ssl-bump connection-auth=off options=ALL cert=/etc/squid/squidCA.pem
sslproxy_flags DONT_VERIFY_PEER
sslproxy_cert_error allow all
acl step1 at_step SslBump1
ssl_bump peek step1
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
cache_mem 4096 MB
maximum_object_size_in_memory 4096 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 10
debug_options ALL,1 #85,0
netdb_filename none
error_directory /usr/share/squid/errors/ru
cache_peer 127.0.0.1 parent 8118 0 no-query no-digest
cache_peer_access 127.0.0.1 deny CONNECT
cache_peer 127.0.0.2 parent 8079 0 no-query
cache_peer_access 127.0.0.2 allow CONNECT
always_direct allow ftp
always_direct deny all
never_direct allow all
cache_effective_user proxy
cache_effective_group proxy

Стал выполняться редирект, но только если squid работает в прозрачном режиме (в браузере не прописан). Если прописать в браузере прокси (192.168.2.1:3128), то редирект перестаёт работать.
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: очередной вопрос по squid

Сообщение McSim »

Боюсь, что squid видит в intercept режиме, что клиент подключается к порту 80, а в обычном режиме - к порту 3128.
Могу ошибаться, но мне кажется именно поэтому не срабатывает правило acl PORT80 localport 80
Добавлено (10:43):
Можно попробовать заменить

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

acl PORT80 localport 80
на

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

acl PORT80 port 80
Добавлено (10:45):
А еще мне кажется, что в intercept режиме - это не будет работать из-за проблем с SSL. Squid в данном случае - это man-in-the-middle attack (MITM).
Спасибо сказали:
vlad001
Сообщения: 55

Re: очередной вопрос по squid

Сообщение vlad001 »

McSim писал:
29.07.2019 10:39
Можно попробовать заменить

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

acl PORT80 localport 80

на

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

acl PORT80 port 80
Да так и есть, именно это и помогло. К сожалению ваше сообщение я увидел уже позже. В начале искал что такое localport, нигде толком не описано, только вскользь. Потом просто поменял его на port, просто исходя из того что в конфиге он встречается. Сейчас фрагмент выглядит вот так:

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

acl PORT80 port 80
acl MYSITE dstdomain "/etc/squid/redirect"
http_access deny PORT80 MYSITE
deny_info https://%H%R MYSITE
Не понял, для чего конкретно добавлялся код 301, но и так редиректит с кодом 302.
McSim писал:
29.07.2019 10:39
А еще мне кажется, что в intercept режиме - это не будет работать из-за проблем с SSL. Squid в данном случае - это man-in-the-middle attack (MITM).
Не совсем так, я пытаюсь выполнить редирект с http на https, то что это mitm, согласен, но это не имеет значения и к ошибкам не приводит.
Спасибо сказали:
vlad001
Сообщения: 55

Re: очередной вопрос по squid

Сообщение vlad001 »

У меня squid настроен так, что данные получает от другого (вышестоящего) прокси (cache_peer). Бывает этот вышестоящий прокси сообщает состояние "403 Request blocked by Proxy", а squid его ретранслирует браузеру как "403 Forbidden". Формально наверно ошибки нет, но мне нужно чтоб эту "модификацию" squid не производил, а передавал как есть, иначе не понятно чей это ответ, от сайта или от прокси.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: очередной вопрос по squid

Сообщение Bizdelnick »

403 — это именно Forbidden и ничто другое. Это вышестоящий прокси ведёт себя некорректно. Мог бы в дополнение к статусу выдать страницу с описанием ошибки.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: очередной вопрос по squid

Сообщение vlad001 »

Вышестоящий, блокировщик, т.о. он не допускает загрузку "вредного контента". Сейчас это не суть, правильно это или нет, меня только одно интересует, как сделать чтоб squid не модифицировал этот заголовок?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: очередной вопрос по squid

Сообщение Bizdelnick »

Да никак. Это не заголовок, а статусное сообщение. Squid его просто игнорирует и передаёт статус дальше уже с правильным сообщением.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
vlad001
Сообщения: 55

Re: очередной вопрос по squid

Сообщение vlad001 »

Можно ли как-то для определённого сайта "отключить просмотр sni"? Как я понял тут squid всегда проверяет sni?
Спасибо сказали:
vlad001
Сообщения: 55

Re: очередной вопрос по squid

Сообщение vlad001 »

Есть несколько девайсов типа смарт-тв. Они как и все прочие в локальной сети работают через squid. Кроме всего этого, у меня есть вышестоящий прокси (на том же устройстве что и squid) - privoxy. С его помощью я фильтрую весь веб трафик (и https), точнее тот что идёт с 80 и 443 портов (в прозрачном режиме через squid). Проблема в том что смарт-тв плохо работают в такой схеме, точнее почти что не работает https. Попробовал решить так, составил acl для этих устройств и acl с url'ами, к которым они подключаются и в случае совпадения, squid делает прямое подключение, минуя вышестоящий прокси. Всё вроде бы ничего, работает. acl со списком устройств я сделал через arp, acl acl-name arp "/path/to/list", т.е. использовал mac'и устройств т.к. не меняются, ip не могу использовать т.к. они меняются, точнее меняются ipv6, ipv4 постоянны. Проблема в том что эта конструкция работает только для ipv4, т.е. когда клиент и удалённый сервер используют ipv4. Для ipv6 есть eui-64, но в моём случае это не работает, потому что это использует link local address как я понял, тот что начинается на fe80. Но клиенты для обращения используют глобальный ipv6 (который ещё и меняется по этой схеме), это видно в логах squid. Что можно сделать?
Спасибо сказали:
Ответить