|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
25-Дек-20 13:18
(3 года 10 месяцев назад, ред. 25-Дек-20 13:19)
Собственно вопрос начал разворачиваться тут и обсуждение шло примерно до этого места, после чего было решено открыть новую тему, дабы в том треде лишний раз не оффтопить по этому вопросу.
...
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
25-Дек-20 13:26
(спустя 7 мин.)
vlad_ns, собственно privoxy без проблем съел https://antizapret.prostovpn.org/domains-export.txt (блэклист GDPI) с добавлением в заголовок action-файла
Код:
{ +forward-override{forward-socks5 127.0.0.1:9050 .} }
С socks5t траффик у меня почему-то неизаворачивался на TOR. Ещё момент. Чем чревато не добавление "." в начале и "/" в конце строки, как в ваших примерах ?
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
25-Дек-20 16:19
(спустя 2 часа 52 мин., ред. 25-Дек-20 16:19)
Цитата:
С socks5t траффик у меня почему-то неизаворачивался на TOR
forward-socks5t works like vanilla forward-socks5 but lets Privoxy additionally use Tor-specific SOCKS extensions
socks5t имеет свойство не дожидаться подтверждения соединения от socks сервера. tor-овцы называют это "optimistic data"
privoxy шлет команду connect, затем по идее должен подождать подтверждение, но не ждет, а сразу следом кидает GET /blablabla
цель - очевидно сэкономить roundtrip. экономия ничтожна по сравнению с задержками самой tor сети
стандарту это не соответствует, имплементацию socks tpws сломало
на соксе от tor прокатило
forward-socks5 работает стандартно, использует ресолвинг имен через socks server, так что с onion проблем быть не должно
с tpws проблем тоже нет
SNI нормально хавает
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
26-Дек-20 22:16
(спустя 1 день 5 часов, ред. 26-Дек-20 22:16)
kx77, а этот конфиг для squid'a точно валидный ?
скрытый текст
Код:
acl localhet src 127.0.0.0/8
acl localnet src 192.168.0.0/16
acl localnet src ::1
acl localnet src fc00::/7
acl myhostlist dstdomain "/tmp/hostlist.txt"
cache_peer proxy.myhost.com parent 8888 0 default
always_direct deny myhostlist
always_direct allow all
http_port 3128
http_access allow localnet
ибо даже с корректировкой под особенности моей системы, траффик до сайтов из хост-листа лезет мимо прокси и попадает на заглушку
скрытый текст
Код:
acl localhost src 127.0.0.0/8
acl localnet src 192.168.0.0/16
acl all src 0.0.0.0/0.0.0.0
# acl localnet src ::1
# acl localnet src fc00::/7
acl myhostlist dstdomain /media/squid/hostlist.txt
cache_peer 192.168.1.215 parent 9050 0 default
always_direct deny myhostlist
always_direct allow all
http_port 23128
http_access allow localnet
http_access allow localhost
192.168.1.215:9050 в данном случае - это AdvOR прокси на десктопе под win (принимает и socks и http), а тесты со сквидом проводятся на виртуальной машиной под vbox. curl'ом с локалхоста вирт.машины запросы ходят как через squid, так и серез AdvOR. А вот squid по хост-листу ходить не хочет. Со сквидом я дел не имел и не хотелось бы с головой уходить в изучение директив (пока лишь по верхам прошёлся). Скажите, где здесь затык ?
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
26-Дек-20 23:12
(спустя 56 мин.)
Dicrock писал(а):
ибо даже с корректировкой под особенности моей системы, траффик до сайтов из хост-листа лезет мимо прокси и попадает на заглушку
проверил еще раз. работает, но если что-то с проксей не так, то идет на прямую
килл-свитч отсутствует
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
27-Дек-20 02:47
(спустя 3 часа, ред. 27-Дек-20 02:47)
kx77 писал(а):
проверил еще раз. работает, но если что-то с проксей не так, то идет на прямую
Комментирую строки
Код:
always_direct deny myhostlist
always_direct allow all
и все запросы идут через AdvOR. Включаю директивы доступа назад и всё идёт напрямую. Может у меня хост-лист некорректный ? Там должно быть по одному хосту на строку вида "rutr.life", "kinozal.tv", etc или есть нюансы ?
Цитата:
килл-свитч отсутствует
А можно для нубов, не знакомых со сквидом ?
upd: Если комментирую always_direct allow all и оставляю always_direct deny myhostlist траффик всё равно прёт напрямую что у сайтов из хост-листа, что не из него
upd2#: Мб версия сквида на тестовой виртуалке старовата ? Squid Cache: Version 2.7.STABLE9
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
27-Дек-20 20:42
(спустя 17 часов, ред. 27-Дек-20 20:42)
Версию такую проверял Squid Cache: Version 4.12 2.7 - 10 летней давности Хостлист проверял домен на каждой строчке, без точки в начале
стандартный лист imho нафиг нужен squid. не работает в нем редирект по SNI, а в привокси работает
всунуть строчку в начало хостилиста седом проблем никаких
privoxy и носки носит, если вдруг по ssh редиректить, то squid-ом напрямую не сделать
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
29-Дек-20 21:12
(спустя 2 дня, ред. 29-Дек-20 21:12)
Dicrock писал(а):
80634884Чем чревато не добавление "." в начале и "/" в конце строки, как в ваших примерах ?
Коль уж взялись, могли бы и справку прочитать :). Я тоже переводил гуглопереводчиком. Точка в начале типа ".site.com" соответствует любому домену, оканчивающемуся на site.com, например a.site.com, b.site.com и т.п. По поводу слеша да и точки:
скрытый текст
8.4. Patterns
As mentioned, Privoxy uses "patterns" to determine what actions might apply to which sites and pages your browser attempts to access. These "patterns" use wild card type pattern matching to achieve a high degree of flexibility. This allows one expression to be expanded and potentially match against many similar patterns.
Generally, an URL pattern has the form <host><port>/<path>, where the <host>, the <port> and the <path> are optional. (This is why the special / pattern matches all URLs). Note that the protocol portion of the URL pattern (e.g. http://) should not be included in the pattern. This is assumed already!
The pattern matching syntax is different for the host and path parts of the URL. The host part uses a simple globbing type matching technique, while the path part uses more flexible "Regular Expressions" (POSIX 1003.2).
The port part of a pattern is a decimal port number preceded by a colon (:). If the host part contains a numerical IPv6 address, it has to be put into angle brackets (<, >).
www.example.com/
is a host-only pattern and will match any request to www.example.com, regardless of which document on that server is requested. So ALL pages in this domain would be covered by the scope of this action. Note that a simple example.com is different and would NOT match.
www.example.com
means exactly the same. For host-only patterns, the trailing / may be omitted.
www.example.com/index.html
matches all the documents on www.example.com whose name starts with /index.html.
www.example.com/index.html$
matches only the single document /index.html on www.example.com.
/index.html$
matches the document /index.html, regardless of the domain, i.e. on any web server anywhere.
/
Matches any URL because there's no requirement for either the domain or the path to match anything.
:8000/
Matches any URL pointing to TCP port 8000.
10.0.0.1/
Matches any URL with the host address 10.0.0.1. (Note that the real URL uses plain brackets, not angle brackets.)
<2001:db8::1>/
Matches any URL with the host address 2001:db8::1. (Note that the real URL uses plain brackets, not angle brackets.)
index.html
matches nothing, since it would be interpreted as a domain name and there is no top-level domain called .html. So its a mistake.
8.4.1. The Host Pattern
The matching of the host part offers some flexible options: if the host pattern starts or ends with a dot, it becomes unanchored at that end. The host pattern is often referred to as domain pattern as it is usually used to match domain names and not IP addresses. For example:
.example.com
matches any domain with first-level domain com and second-level domain example. For example www.example.com, example.com and foo.bar.baz.example.com. Note that it wouldn't match if the second-level domain was another-example.
www.
matches any domain that STARTS with www. (It also matches the domain www but most of the time that doesn't matter.)
.example.
matches any domain that CONTAINS .example.. And, by the way, also included would be any files or documents that exist within that domain since no path limitations are specified. (Correctly speaking: It matches any FQDN that contains example as a domain.) This might be www.example.com, news.example.de, or www.example.net/cgi/testing.pl for instance. All these cases are matched.
Additionally, there are wild-cards that you can use in the domain names themselves. These work similarly to shell globbing type wild-cards: "*" represents zero or more arbitrary characters (this is equivalent to the "Regular Expression" based syntax of ".*"), "?" represents any single character (this is equivalent to the regular expression syntax of a simple "."), and you can define "character classes" in square brackets which is similar to the same regular expression technique. All of this can be freely mixed:
ad*.example.com
matches "adserver.example.com", "ads.example.com", etc but not "sfads.example.com"
*ad*.example.com
matches all of the above, and then some.
.?pix.com
matches www.ipix.com, pictures.epix.com, a.b.c.d.e.upix.com etc.
www[1-9a-ez].example.c*
matches www1.example.com, www4.example.cc, wwwd.example.cy, wwwz.example.com etc., but not wwww.example.com.
While flexible, this is not the sophistication of full regular expression based syntax.
When compiled with FEATURE_PCRE_HOST_PATTERNS patterns can be prefixed with "PCRE-HOST-PATTERN:" in which case full regular expression (PCRE) can be used for the host pattern as well.
8.4.2. The Path Pattern
Privoxy uses "modern" POSIX 1003.2 "Regular Expressions" for matching the path portion (after the slash), and is thus more flexible.
There is an Appendix with a brief quick-start into regular expressions, you also might want to have a look at your operating system's documentation on regular expressions (try man re_format).
Note that the path pattern is automatically left-anchored at the "/", i.e. it matches as if it would start with a "^" (regular expression speak for the beginning of a line).
Please also note that matching in the path is CASE INSENSITIVE by default, but you can switch to case sensitive at any point in the pattern by using the "(?-i)" switch: www.example.com/(?-i)PaTtErN.* will match only documents whose path starts with PaTtErN in exactly this capitalization.
.example.com/.*
Is equivalent to just ".example.com", since any documents within that domain are matched with or without the ".*" regular expression. This is redundant
.example.com/.*/index.html$
Will match any page in the domain of "example.com" that is named "index.html", and that is part of some path. For example, it matches "www.example.com/testing/index.html" but NOT "www.example.com/index.html" because the regular expression called for at least two "/'s", thus the path requirement. It also would match "www.example.com/testing/index_html", because of the special meta-character ".".
.example.com/(.*/)?index\.html$
This regular expression is conditional so it will match any page named "index.html" regardless of path which in this case can have one or more "/'s". And this one must contain exactly ".html" (and end with that!).
.example.com/(.*/)(ads|banners?|junk)
This regular expression will match any path of "example.com" that contains any of the words "ads", "banner", "banners" (because of the "?") or "junk". The path does not have to end in these words, just contain them. The path has to contain at least two slashes (including the one at the beginning).
.example.com/(.*/)(ads|banners?|junk)/.*\.(jpe?g|gif|png)$
This is very much the same as above, except now it must end in either ".jpg", ".jpeg", ".gif" or ".png". So this one is limited to common image formats.
There are many, many good examples to be found in default.action, and more tutorials below in Appendix on regular expressions.
Dicrock писал(а):
80644006А можно для нубов, не знакомых со сквидом ?
Как-то так: https://interface31.ru/tech_it/2015/06/kak-ustroena-i-rabotaet-sistema-kontrolya-...upa-v-squid.html
Так то там, ничего сложного, главное последовательность соблюдать.
kx77 писал(а):
80648453imho нафиг нужен squid.
На роутере не помешает, можно прозрачный прокси сделать. Удобно для всякой умных телеков и др. устройств не имеющих соответствующей настройки.
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
29-Дек-20 21:50
(спустя 38 мин., ред. 29-Дек-20 22:19)
vlad_ns писал(а):
kx77 писал(а):
80648453imho нафиг нужен squid.
На роутере не помешает, можно прозрачный прокси сделать. Удобно для всякой умных телеков и др. устройств не имеющих соответствующей настройки.
Привокси тоже умеет быть прозрачным
А точек надобавлять в начало доменов седом тоже очень просто. Решаемый вопрос
Но заворот по SNI на скуиде похоже нерешаем
Вот так одной командой можно превратить список хостов в привокси экшин файл
Код:
sed -e 's/./\.&/' -e '1 i\{ +forward-override{forward-socks5 127.0.0.1:9050 .} }' hostlist.txt >/etc/privoxy/hostlist.action
Или если вдруг лист откуда-то подгружается, чтобы не сохранять промежуточный вариант в файл
Код:
curl 'https://antizapret.prostovpn.org/domains-export.txt' | sed -e 's/./.&/' -e '1 i\{ +forward-override{forward-socks5 127.0.0.1:9050 .} }' >/etc/privoxy/hostlist.action
В последнем варианте есть такой недостаток, что если вдруг curl не скачивает файл, то старая версия затирается
Потому лучше все-же сначала скачать в файл в /tmp, потом проверить его длину, и если короткий, то выйти по ошибке
Так же проверить результат завершения curl с опцией --fail
И только потом сделать экшин файл. В случае ошибки останется старый. Скачанный файл не забыть стереть из /tmp
Подробнее см. как у меня сделаны скрипты в ipset от zapret https://github.com/bol-van/zapret
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
29-Дек-20 21:51
(спустя 58 сек.)
kx77 писал(а):
80658942Привокси тоже умеет быть прозрачным
Только для http, squid умеет и для https.
kx77 писал(а):
80658942А точек надобавлять в начало доменов седом тоже очень просто. Решаемый вопрос
Вопрос был ведь в другом.
kx77 писал(а):
80658942В случае успеха перезапустить privoxy
Так между делом, privoxy перезапускать не нужно, все actionfile и filterfile "подхватываются на лету".
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
29-Дек-20 22:21
(спустя 30 мин.)
vlad_ns писал(а):
Только для http, squid умеет и для https.
Действительно. Он ждет, чтобы в методе CONNECT был обязательно Host:. То есть прокси-клиент явно указывал что он хочет
Даже если заворачивать через redsocks, Host: не будет, и запрос тупо зависает
Получается нет решения что ли ?
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
30-Дек-20 20:22
(спустя 22 часа, ред. 30-Дек-20 20:22)
kx77,
kx77 писал(а):
80648453imho нафиг нужен squid. не работает в нем редирект по SNI, а в привокси работает
Сквид я решил поглядеть в рамках рассмотрения альтернатив ибо никогда не знаешь, что и когда может пригодиться Как говорится, лучше заранее подстелить соломки )))
kx77 писал(а):
806484532.7 - 10 летней давности
Вероятно в этом и затык. Юзаю на виртуалке старый дистрибутив, для 90% случаев его хватает, а переносить всё наработанное влом. Решил попробовать билд посвежее (3.5.27) на смарте с ведром и entware и тут тоже словил обломинго. При использовании ключа "-d" плюётся в лог
Код:
FATAL: Ipc::Mem::Segment::create failed to shm_open(/squid-cf__metadata.shm): (13) Permission denied
Похоже не судьба мне пока сквид заюзать.
kx77 писал(а):
80648453Версию такую проверял
Squid Cache: Version 4.12
ОК. Буду в следующий отталкиваться от этого билда. Если найду в standalone-исполнеии или таки обновлю систему.
kx77 писал(а):
80648453всунуть строчку в начало хостилиста седом проблем никаких
Это вообще не проблема
vlad_ns писал(а):
80658859Коль уж взялись, могли бы и справку прочитать :). Я тоже переводил гуглопереводчиком. Точка в начале типа ".site.com" соответствует любому домену, оканчивающемуся на site.com, например a.site.com, b.site.com и т.п. По поводу слеша да и точки:
Спасибо за ликбез
vlad_ns писал(а):
80658859Так то там, ничего сложного, главное последовательность соблюдать.
Всмысле последовательность директив ? ОК. Может тут собака порылась, но мне кажется, дело в версии.
vlad_ns писал(а):
80659111Так между делом, privoxy перезапускать не нужно, все actionfile и filterfile "подхватываются на лету".
Спасибо, что напомнили про эту фичу.
kx77 писал(а):
80659255Действительно. Он ждет, чтобы в методе CONNECT был обязательно Host:. То есть прокси-клиент явно указывал что он хочет
Даже если заворачивать через redsocks, Host: не будет, и запрос тупо зависает
Получается нет решения что ли ?
Вот и я на это напоролся, когда решил сделать цепочку из 2-х прокси в связке с privoxy. http - ходит, а https намертво залипает.
p.s. Касательно privoxy и его action-правил возник вопрос - можно ли сделать так, чтобы трафик из хост-листа шёл по одному прокси, а весь остальной по другому ? Ещё рассматривается вариант запрета движения другого траффика вообще, только из host-листа. Action-правила позволяют это реализовать ?
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
30-Дек-20 21:43
(спустя 1 час 21 мин., ред. 30-Дек-20 21:43)
Код:
FATAL: Ipc::Mem::Segment::create failed to shm_open(/squid-cf__metadata.shm): (13) Permission denied
Из-за невозможности создать файлы в /dev/shm
Нет доступа юзеру, под которым работает скуид
или поправить права, или под рутом
Цитата:
Вот и я на это напоролся, когда решил сделать цепочку из 2-х прокси в связке с privoxy
Меня лично вполне устраивает решение с заворотом по ipset. Оно существенно быстрее, не вмешивается в работу веб-портов на незаблокированных доменах
Цитата:
можно ли сделать так, чтобы трафик из хост-листа шёл по одному прокси, а весь остальной по другому
forward в основном конфиге
и forward-override в экшине
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
30-Дек-20 23:46
(спустя 2 часа 3 мин., ред. 30-Дек-20 23:46)
kx77 писал(а):
80659255Получается нет решения что ли ?
Если нужен прозрачный прокси, то я использую совместно с privoxy, squid. Privoxy для него (squid) является родительским (cache_peer 127.0.0.1 parent 8118 0 no-query no-digest). Но вроде в todo листе privoxy есть желание сделать прозрачный режим и для https.
Dicrock писал(а):
80663945Всмысле последовательность директив ?
Да. От версии конечно может зависеть, но логика обработки acl особо не поменялась.
Dicrock писал(а):
80663945Касательно privoxy и его action-правил возник вопрос - можно ли сделать так, чтобы трафик из хост-листа шёл по одному прокси, а весь остальной по другому ?
Можно, в forward-override (можно повторять сколько угодно раз) прописываете нужные вам прокси, под ним, нужные домены. Правила работают сверху вниз (как в конфиге), если встречаются два противоречивых, например одно блокирует (+block), а другое разрешает (-block), то работает последнее.
kx77 писал(а):
80664380forward в основном конфиге
и forward-override в экшине
В основной конфиг можно вообще не лезть, там можно прописать то что менять не нужно. Всё остальное в action-файлы.
kx77 писал(а):
80664380Оно существенно быстрее, не вмешивается в работу веб-портов на незаблокированных доменах
Мне кажется через прокси гибче. Не нужно логиниться чтоб что-то поменять, просто меняем через веб интерфейс. Там же можно увидеть какие action срабатывают, если что-то не так.
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
31-Дек-20 15:16
(спустя 15 часов, ред. 31-Дек-20 15:16)
kx77 писал(а):
Из-за невозможности создать файлы в /dev/shm
Создал ручками и выдал три топора. Дело сдвинулось, но недалеко
скрытый текст
Код:
2020/12/31 10:49:01| Current Directory is /data/home
2020/12/31 10:49:01| Starting Squid Cache version 3.5.27 for arm-openwrt-linux-gnu...
2020/12/31 10:49:01| Service Name: squid
2020/12/31 10:49:01| Process ID 14146
2020/12/31 10:49:01| Process Roles: master worker
2020/12/31 10:49:01| With 1024 file descriptors available
2020/12/31 10:49:01| Initializing IP Cache...
2020/12/31 10:49:01| comm_open: socket failure: (13) Permission denied
2020/12/31 10:49:01| comm_open: socket failure: (13) Permission denied
2020/12/31 10:49:01| storeDirWriteCleanLogs: Starting...
2020/12/31 10:49:01| Finished. Wrote 0 entries.
2020/12/31 10:49:01| Took 0.00 seconds ( 0.00 entries/sec).
FATAL: Could not create a DNS socket
вылез очередной кринж по линии доступа к сокетам.
kx77 писал(а):
Нет доступа юзеру, под которым работает скуид
или поправить права
Похоже надо копать в эту сторону и перечитывать маны по addgroup и adduser. По дефолту так
Код:
# cat /opt/etc/passwd|grep nobody
nobody:x:99:99::/opt/home:/opt/bin/false
# cat /opt/etc/group|grep nobody
nobody:x:99:
kx77 писал(а):
или под рутом
Запуск идёт от рута, но сквид на это чихать хотел. А если в конфиге прописать
Код:
cache_effective_user root
то он начинает ругаться
скрытый текст
Код:
2020/12/31 10:47:19| Current Directory is /data/home
2020/12/31 10:47:19| Squid is not safe to run as root! If you must
2020/12/31 10:47:19| start Squid as root, then you must configure
2020/12/31 10:47:19| it to run as a non-priveledged user with the
2020/12/31 10:47:19| 'cache_effective_user' option in the config file.
2020/12/31 10:47:19| storeDirWriteCleanLogs: Starting...
2020/12/31 10:47:19| Finished. Wrote 0 entries.
2020/12/31 10:47:19| Took 0.00 seconds ( 0.00 entries/sec).
FATAL: Don't run Squid as root, set 'cache_effective_user'!
что, мол де, запуск сквида от рута не безопасен видите ли.
kx77 писал(а):
forward в основном конфиге и forward-override в экшине
Хм, попробую. Просто мне подумалось, что нужно в action-блэклисте совмещать. Там директивы "{ xxx { xxx} }" вроде многоступенчатые и можно заюзать что типа "{ ! xxx { xxx} }" или нет ?
vlad_ns писал(а):
Можно, в forward-override (можно повторять сколько угодно раз) прописываете нужные вам прокси, под ним, нужные домены. Правила работают сверху вниз (как в конфиге), если встречаются два противоречивых, например одно блокирует (+block), а другое разрешает (-block), то работает последнее.
Можно пример, дабы не выворачивать мозг ?
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
31-Дек-20 16:39
(спустя 1 час 22 мин., ред. 31-Дек-20 16:39)
Код:
2020/12/31 10:49:01| comm_open: socket failure: (13) Permission denied
в таких случаях я обычно пользуюсь strace
поймать ошибку EACCES
Код:
strace -f touch /file 2>&1 | grep EACCES
openat(AT_FDCWD, "/file", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = -1 EACCES (Permission denied)
как-то так, только вместо touch всунуть squid с ком строкой
может какое-то древнее ядро с непонятными опциями компиляции ?
на счет /dev/shm. права должны быть такие
Код:
ls -ld /dev/shm
drwxrwxrwt 2 root root 100 Dec 20 19:14 /dev/shm
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
31-Дек-20 22:50
(спустя 6 часов, ред. 31-Дек-20 22:50)
Dicrock
Зачем вам вообще squid? И что за дистрибутив такой, где squid с такими танцами запускается? Конфиг squid'а можно проверить командой
Dicrock писал(а):
80667793Просто мне подумалось, что нужно в action-блэклисте совмещать. Там директивы "{ xxx { xxx} }" вроде многоступенчатые и можно заюзать что типа "{ ! xxx { xxx} }" или нет ?
Зачем гадать?
Dicrock писал(а):
80667793Можно пример
можно, вот (для tor): https://sites.google.com/site/rpfteam/knowledge/anonymity/privoxy-tor
Не сочтите что я какой-то вредный, но смысл перепечатывать, то что можно найти на русском?
Относительно вашей конфигурации,
Dicrock писал(а):
80663945можно ли сделать так, чтобы трафик из хост-листа шёл по одному прокси, а весь остальной по другому ? Ещё рассматривается вариант запрета движения другого траффика вообще, только из host-листа.
я так не делал, поэтому проверять будете сами. В user.action, в конце пишите:
Код:
{+block{Block site[1-2].} \
}
site1.com/
site2.com/
{-block \
+forward-override{forward-socks5t 127.0.0.1:9050 .} \
}
site1.com/
site2.com/
{+forward-override{forward 192.168.2.1:8090} \
}
/.*
В начале запрещаем site1 и 2. Дальше, разрешаем site1 и 2, но только через tor, далее остальные через http прокси 192.168.2.1. Другого трафика не будет. В основной конфиг вписываете минимальную конфигурацию, которую уже приводил. Пойдёт и идущий с пакетом конфиг, только listen-address исправить на свой.
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
02-Янв-21 09:43
(спустя 1 день 10 часов, ред. 02-Янв-21 09:43)
kx77 писал(а):
на счет /dev/shm. права должны быть такие
Добавил sticky bit на всякий случай (результат запуска не изменился)
kx77 писал(а):
в таких случаях я обычно пользуюсь strace
поймать ошибку EACCES
Код:
socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP) = -1 EACCES (Permission denied)
socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) = -1 EACCES (Permission denied)
socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) = -1 EACCES (Permission denied)
connect(8, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = -1 EACCES (Permission denied)
kx77 писал(а):
может какое-то древнее ядро с непонятными опциями компиляции ?
По поводу того что древнее - скорее всего, а поводу компиляции я хз. Никогда дел с ядрами не имел. Смарт c андроидом далеко не первой свежести, но пока выбирать не приходится :/
Код:
uname -a
Linux localhost 3.4.5 #1 SMP PREEMPT Thu Mar 27 16:19:17 CST 2014 armv7l GNU/Linux
vlad_ns писал(а):
Зачем вам вообще squid?
Дык выше ж написал
Цитата:
Сквид я решил поглядеть в рамках рассмотрения альтернатив ибо никогда не знаешь, что и когда может пригодиться Как говорится, лучше заранее подстелить соломки )))
Просто посмотреть хочу ))) На тестовой машине сквид древний и я хочу посмореть как отрабатывает билд посвежее.
vlad_ns писал(а):
И что за дистрибутив такой, где squid с такими танцами запускается? Конфиг squid'а можно проверить командой
entware (по моему 3-x) на смарте с андроидом 4.2.2
vlad_ns писал(а):
Не сочтите что я какой-то вредный, но смысл перепечатывать, то что можно найти на русском?
Да я без претензий ))) Просто я больше по линии модификации html работал с Privoxy, нежели по линии маршрутизации траффикa, потому и спрашивал.
vlad_ns писал(а):
В начале запрещаем site1 и 2. Дальше, разрешаем site1 и 2, но только через tor, далее остальные через http прокси 192.168.2.1. Другого трафика не будет. В основной конфиг вписываете минимальную конфигурацию, которую уже приводил. Пойдёт и идущий с пакетом конфиг, только listen-address исправить на свой.
Тут заморочка в том, что надо пустить все, а не конкретные сайты. А потому уже делать маршрутизацию по прокси. Попробую скормить Privoxy "*' В любом случае, спасибо за помощь.
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
02-Янв-21 10:41
(спустя 58 мин., ред. 02-Янв-21 10:41)
Цитата:
Смарт c андроидом далеко не первой свежести, но пока выбирать не приходится :/
Дык с этого и надо было начинать
У ведроидов есть специальный патч в ядре, который отрубает инет для тех, кто не входит в несколько групп. AID_INET (3003)
Нужно иметь некоторые capabilities или быть членом группы. Иначе будет аксес денайд
Потому нужно назначать gid 3003
Если это нельзя сделать числом, значит надо создать /etc/passwd
Код:
net_inet:x:3003:3003:android_user:/data/local/tmp:/system/bin/sh
net_raw:x:3004:3004:android_user:/data/local/tmp:/system/bin/sh
net_admin:x:3005:3005:android_user:/data/local/tmp:/system/bin/sh
/etc/group
Код:
net_inet:x:3003:
net_raw:x:3004:
net_admin:x:3005:
если сквид в chroot, то добавить в существующие файлы
не знаю, может entware специальным образом перекомпилирован на работу из какого-то нестандартного места, и passwd/group ищутся где-то в нестандартном месте
это можно выяснить через strace
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
03-Янв-21 01:32
(спустя 14 часов, ред. 03-Янв-21 01:32)
Dicrock писал(а):
80675944Тут заморочка в том, что надо пустить все, а не конкретные сайты. А потому уже делать маршрутизацию по прокси. Попробую скормить Privoxy "*' В любом случае, спасибо за помощь.
Фильтр "/.*", это и есть все. В доменом имени privoxy не понимает регулярных выражений, ну в том виде, как после прямого слэша или как в файле-фильтре. Я исходил и поставленной задачи. Хост-лист, это и есть site1 и 2.
Dicrock писал(а):
80675944на смарте с андроидом 4.2.2
Т.е. вы это всё проделываете на каком-то смартфоне? Я удивлён, но хозяин-барин :).
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
03-Янв-21 15:25
(спустя 13 часов, ред. 03-Янв-21 15:25)
kx77 писал(а):
У ведроидов есть специальный патч в ядре, который отрубает инет для тех, кто не входит в несколько групп. AID_INET (3003)
Бинго . В этом и был затык. Плюс я ещё вчера глазом зацепил
Код:
ls -lanh /dev/socket/|grep dns
srw-rw---- 1 0 3003 0 Jan 2 23:16 dnsproxyd
srw-rw---- 1 0 1000 0 Jan 2 23:16 mdns
группу 3003 и подумал что проблема может быть где-то в этом районе.
Цитата:
Потому нужно назначать gid 3003
Заменил в passwd и group uid/gid юзера nobody с 99 на 3003 и всё завертелось (uid в принципе можно было не менять, ну бог с ним). Создание /dev/shm с правами 1777 это тем не менее не отменило. Ну да ладно.
Цитата:
если сквид в chroot, то добавить в существующие файлы
Я так глубоко с ним ещё не ковырялся )))
Цитата:
не знаю, может entware специальным образом перекомпилирован на работу из какого-то нестандартного места, и passwd/group ищутся где-то в нестандартном месте
это можно выяснить через strace
Да там всё прозрачно и отзеркалено в /opt. Т.е. /opt/etc/passwd и /opt/etc/group.
vlad_ns писал(а):
Фильтр "/.*", это и есть все. В доменом имени privoxy не понимает регулярных выражений, ну в том виде, как после прямого слэша или как в файле-фильтре. Я исходил и поставленной задачи. Хост-лист, это и есть site1 и 2.
Я в итоге использовал вот такую конструкцию
скрытый текст
Код:
{+block{Block site[*].} \
}
* {-block \
+forward-override{forward-socks5 192.168.1.30:9050 .} \
}
.rutr.life/
.kinozal.tv/
.lostfilm.tv/ {+forward-override{forward-socks5 127.0.0.1:9050 .} \
}
*
тоже вполне сработало
Цитата:
Т.е. вы это всё проделываете на каком-то смартфоне? Я удивлён, но хозяин-барин :).
Дык всё равно сквиду потом там и работать. На десктопе у меня есть GDPI, а на смартах мне проще юзать прокси вот в таком исполнении.
###
О последовательности директив на сквиде 2.7 с виртуалки - перемена позиций директив роли не играла, результат в итоге ьыл один и тот же. Было
скрытый текст
Код:
cache_dir null /var/spool/squid
cache_store_log none
acl localhost src 127.0.0.0/8
acl localnet src 192.168.0.0/16
acl all src 0.0.0.0/0.0.0.0
http_access allow localnet
http_access allow localhost
http_port 53128
cache_peer 192.168.1.30 parent 9050 0 default
acl myhostlist dstdomain /media/squid/hostlist.txt
always_direct deny myhostlist
always_direct allow all
стало
скрытый текст
Код:
cache_dir null /var/spool/squid
cache_store_log none
acl localhost src 127.0.0.0/8
acl localnet src 192.168.0.0/16
acl all src 0.0.0.0/0.0.0.0
acl myhostlist dstdomain /media/squid/hostlist.txt
cache_peer 192.168.1.30 parent 9050 0 default
always_direct deny myhostlist
always_direct allow all
http_port 53128
http_access allow localnet
http_access allow localhost
так что скорей всего затык в версии. Посмотрим, что прокажут тесты сквида 3.5.27 на смарте.
upd: На 3.5.27 та же петрушка. При текущей конфигурации все запросы до сайтов из хост-листа игнорирутся и они идут мимо прокси. Комментирую
Код:
always_direct deny myhostlist
always_direct allow all
и все запросы идут через прокси. Похоже в 4-м сквиде директивы радикально перетряхнули, раз на более-менее свежем билде та же история.
|
|
kx77
Стаж: 11 лет 11 месяцев Сообщений: 718
|
kx77 ·
03-Янв-21 16:09
(спустя 44 мин.)
Цитата:
Похоже в 4-м сквиде директивы радикально перетряхнули, раз на более-менее свежем билде та же истори
файлы в ACL упоминаются еще в статье 2008 года
https://workaround.org/squid-acls/
Может аксес денайд очередной, на этот рас ридинг хостлист ?
strace
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
05-Янв-21 04:11
(спустя 1 день 12 часов, ред. 05-Янв-21 04:11)
kx77 писал(а):
Может аксес денайд очередной, на этот рас ридинг хостлист ?
strace
Всё ещё круче. Его упоминаний там нет вообще. Ни в логе, ни в strace выхлопе. В 2.7 на vbox хотя бы было видно по логу (не говоря об strace), что хостлист цепляется, хоть и не отрабатывает, а тут вообще тишина была. Не было попыток зацепить файл хостлиста в принципе. Попробовал прописать пару хостов вручную
Код:
acl myhostlist dstdomain rutr.life kinozal.tv
и всё зашуршало (хотя это так себе результат). Только вот через https сквид не пускал, выдавая со стороны клиента ворох ошибок по линии ssl/tls
скрытый текст
Код:
curl -x '127.0.0.1:53128' -svikL 'https://rutr.life'
* Trying 127.0.0.1:53128...
* Connected to 127.0.0.1 (127.0.0.1) port 53128 (#0)
* allocate connect buffer!
* Establish HTTP proxy tunnel to rutr.life:443
> CONNECT rutr.life:443 HTTP/1.1
> Host: rutr.life:443
> User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
* Proxy replied 200 to CONNECT request
* CONNECT phase completed!
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: none
CApath: /system/etc/security/cacerts
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* CONNECT phase completed!
* CONNECT phase completed!
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to rutr.life:443
* Closing connection 0
В общем, то ли лыжи не едут, то ли я ... Или сквид из entware собран через всем известное место.
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
05-Янв-21 12:30
(спустя 8 часов)
Dicrock
Насколько я помню, если встречается +block, то отменить его может только -block, т.о. я предполагаю что последний forward-override у вас не срабатывает, там тоже надо ставить -block, либо верхний убрать. Т.е. у вас всё блочится, за исключением трех доменов которые в перенаправлении.
Dicrock писал(а):
80692387и все запросы идут через прокси.
Скорее всего из-за того, что у вас не достаёт какого-то правила, которое вы не указали, а вместо этого у squid есть умолчательные правила, которые он как бы дописывает вместо вас.
Dicrock писал(а):
80692387Только вот через https сквид не пускал, выдавая со стороны клиента ворох ошибок по линии ssl/tls
Не настроен sslbump кажется.
Сейчас вы рассматриваете squid как альтернативный вариант? Если с privoxy всё работает, то со squid нет особого смысла возиться.
|
|
Dicrock
Стаж: 12 лет 6 месяцев Сообщений: 1087
|
Dicrock ·
07-Янв-21 06:03
(спустя 1 день 17 часов, ред. 07-Янв-21 06:03)
vlad_ns писал(а):
Насколько я помню, если встречается +block, то отменить его может только -block, т.о. я предполагаю что последний forward-override у вас не срабатывает, там тоже надо ставить -block, либо верхний убрать. Т.е. у вас всё блочится, за исключением трех доменов которые в перенаправлении.
Да вроде нет, хотя я уточню этот момент. Всё пока в тестовом режиме проходило и на практике не использовалось, так что всё может быть.
vlad_ns писал(а):
Скорее всего из-за того, что у вас не достаёт какого-то правила, которое вы не указали, а вместо этого у squid есть умолчательные правила, которые он как бы дописывает вместо вас.
Но хостлист прописанный списком в конфиге подхватывается. А вот из файла не цепляется. На 2.7 на vbox он не цеплялся и из конфига. Тут 2 разных, хоть и похожих проблемы.
vlad_ns писал(а):
Не настроен sslbump кажется.
Спасибо, посмотрю что с этим можно сделать.
vlad_ns писал(а):
Сейчас вы рассматриваете squid как альтернативный вариант? Если с privoxy всё работает, то со squid нет особого смысла возиться
Вариант для подстраховки. Неизвестно, как будет работать privoxy в иной ситуации или конфигурации )))
|
|
vlad_ns
Стаж: 14 лет 8 месяцев Сообщений: 1713
|
vlad_ns ·
07-Янв-21 20:53
(спустя 14 часов, ред. 07-Янв-21 20:53)
Dicrock писал(а):
80704728Но хостлист прописанный списком в конфиге подхватывается. А вот из файла не цепляется. На 2.7 на vbox он не цеплялся и из конфига. Тут 2 разных, хоть и похожих проблемы.
Полный конфиг можно и точно что вы от него хотите?
Посмотрел выше, может вот так?
Код:
cache_peer 192.168.1.215 parent 9050 0 default
cache_peer_access 192.168.1.215 allow myhostlist
always_direct deny myhostlist
Чтоб из файла подхватывался, возможно нужны кавычки, т.е. вот так:
Код:
acl myhostlist dstdomain "/media/squid/hostlist.txt"
Dicrock писал(а):
80704728Неизвестно, как будет работать privoxy в иной ситуации или конфигурации )))
Ну я пока что вижу что не известно как работает squid в вашей конфигурации :).
|
|
|