gemlog/public/uk/psocks-my-vision-of-filtering-out-proxy.gmi

39 lines
No EOL
4.9 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# psocks: моє бачення фільтруючого проксі
Після невеличкої передісторії
=> first-experience-with-tun2proxy-socks-hub.gmi ШІт досвід з tun2proxy/socks-hub
=> my-public-pac-files-asset.gmi Зробив собі "білий список" засобами PAC
=> crab-hole-as-pi-hole-alternative-in-rust.gmi Crab-hole DNS як 100% програмна альтернатива Pi-hole
=> pi-hole-manual-install-on-fedora-linux.gmi Ручне встановлення Pi-hole DNS на прикладі Fedora / Linux
=> rust-crates-mirroring-with-kellnr.gmi Організація локального дзеркала залежностей Cargo з Kellnr
в пошуках рішення для блокування паразитних конектів що палять мою приватність і їдять батарею SSH тунелюванням того сміття, погравшись день-другий з білими списками PAC, виявив для себе юзабельність такої концепції: сайти реально працюють.
Наприклад, для Youtube - достатньо додати 2 технічні домени `.ytimg.com` і `.googlevideo.com` а для Github - лише `.githubusercontent.com`. Тобто Веб цілком можна сьорфити, враховуючи, що 99% трафіку не полишає соціальні мережі та платформи типу Stackoverflow, да і то, я останнім часом не вилажу з Duck.ai.
Коротше вирішив таки заморочитись і зробити собі софтинку саме під свої задачі: тупо локальний проксі SOCKS, з файлами білих списків. Ніяких більше там складних синтаксисів налаштування - для них я піду на перевірений privoxy з ACL. Чому я ще вирішив написати велосипед, бо ніде не бачу чогось схожого до pi-hole, щоб можна було смакувати фільтровану статистику і робити на її основі висновки.
За одно, я вирішив зробити засобами JSON/API й можливість оновлювати списки "на льоту" без ребуту серверу проксі і перезавантаження реєстрів. Тут головне дійсно мати можливість швиденько розблокувати собі потрібний ресурс прямо в браузері. А статистика вже як бонус, зараз там не густо:
=> psocks-my-vision-of-filtering-out-proxy/totals-json-api.png Вигляд головної сторінки JSON/API (скріншот)
UPD. в новішій версії, статистика вже виглядає так:
=> psocks-my-vision-of-filtering-out-proxy/totals-json-api-v0.3.0.png Вигляд головної сторінки JSON/API у версії 0.3.0 (скріншот)
Згодом планую розширити до звіту по доменам, хоча не знаю чи продуктивність сервера того варта...
* я ще спочатку хотів зробити саме HTTP проксі з рандомайзером заголовків, але провтикав специфіку тунелювання HTTPs, тому протокол обрано саме SOCKS5.
* будувати ланцюги проксі засобами цього сервера я не планую, натомість буду пускати окремими процесами, а коли мені знадобляться складні правила, використовуватиму сторонні маршрутні проксі типу proxychains або знову таки, PAC файл.
* за якість коду не ручаюсь, бо працював швидко, щоб отримати результат; я поки не дуже орієнтуюсь в `tokio` і асинхронному програмуванні зокрема, але у якості бази було використано офіційний приклад (github.com/dizda/fast-socks5/blob/master/examples/server.rs) - з прикладу я не випилював імплементацію UDP, бо ще не визначився.
І так, над назвою довго не думав, знайомтесь:
=> https://codeberg.org/postscriptum/psocks
Також, списки для нього:
=> https://codeberg.org/postscriptum/psocks-list
## Дивіться також
=> psocks-v0.5.0-release-with-multi-list-features.gmi Реліз psocks v0.5.0 з підтримкою мульти-списків