Как стать автором
Обновить

Комментарии 48

cut -d ';' -f 3 | tr "\|" "\n" |sed 's/^[ \t]*//;s/[ \t]*$//'

за одно за это готов влюбиться в вас!
А я просто включил несколько exit node для tor'а и держу релей для i2p.
exit-ноды держите в России? Что-то логируете не случай если напишут люди из органов?
«Однажды мне окончательно надоели странички вроде «данный ресурс заблокирован по требованию»» при отсутствии в голове информации о блокировках gihub, steam и др. полезных сайтов, эта фраза наводит некоторые мысли о предпочтениях автора ;)
Сайты, посвященные биткоину, тоже блокируют, хотя на них нет запрещенной информации.
эта фраза наводит некоторые мысли о предпочтениях автора

Не расскажите на какие?
Ну теперь уж за слитую карму обязательно расскажу, что я с такими сайтами встречаюсь раз в пол года и обычно это торрент трекеры. А уж гитхаб мой провайдер так и не успел заблокировать. И коли автор «постоянно» сталкивается с таким я делаю вывод, что автор вероятно любит детскую клубничку, варить «мет», и спонсировать терроризм. Это о
Г-жа Мизуллина, перелогиньтесь.
Вас что, подстрелил снай
Вы наверное не очень следите за политической ситуацией в России. Я привык сам составлять мнение о текстах с политическим уклоном, а большинство таких текстов в данный момент заблокировано.
Я наверно пошутил неудачно, впредь шутить не буду.
Дело в том, что в ваших шутках не было ни намека на шутку.
Мы живем в эпоху, когда для госорганов нет рамок в блокировании информации самого широкого спектра.
Не знаю видимо сайты, которые я посещаю, не попадают в столь «широкий спектр». Как только начнут блокировать IT ресурсы, сайты всевозможных linux дистрибутивов, новостные сайты, популярные соц. сети, sourceforge, github(сам github, а не репозиторий с суицидом) тогда наверно столь широкий спектр дойдет и до меня. А пока я позволю себе шутить на эту тему.
чем больше будет решений, подобных описанному, тем скорее.

1. шутка-ли — возможность любому более-менее грамотному специалисту, за 15 минут ликвидировать 1.5 года законодательной деятельности?

2. чем больше люди будут использовать подобные решения, тем невнимательнее они будут к власти. если раньше специалисты охотно шли на диалог с властью, то теперь проще будет настроить bypass и не обращать внимания на любых подневольных халтурщиков, в плане законодательства.
А ведь вы правы. Если постоянно сидишь через VPN, то о блокировках гитхаба и прочем мракобесии узнаешь с хабра или от знакомых. Так ведь наша лень доведёт до того, что VPN банить начнут.
новостные сайты
В Беларуси под регулярную негласную блокировку с середины декабря попадают belapan.com/ (крупнейшее негосударственное агенство новостей) и их дочка naviny.by/
Так что попасть в «широкий спектр» шансы весьма велики.
Вам просто повезло с провайдером, который блочит видать постранично, а не по IP, вырубая сразу десятки тысяч сайтов самой различной тематики.
Или еще неплохо, когда госорганы вносят в реестр IP-адреса Cloudflare, например. Как вы думаете, какого рода ресурсы в том числе страдают от этого?
Может расскажете как заблокировать не сам github, а только репозиторий? А то провайдеры что-то ничего хорошего не придумали.
По урлу внезапно. Ах да для наших провайдеров это магия не подвластная пониманию.
Магия действительно провайдерам неподвластна, т.к. браузер url-ы на github отправляет в шифрованном https-канале.
Парочка нудных дополнений:
1. Вместо регексов ".*://.*\.onion\/.*" можно использовать:
cache_peer_domain 127.0.0.1 .onion
2. Privoxy можно повесить на 127.0.0.2.
3. Такой доступ к «приватным сетям» вреден, ибо теоретически позволяет легко деанонимизировать пользователя (ну в данном случае прокси), размещением ссылки на приватной странице, ведущей на обычный http.
3. а на privoxy можно чистить заголовки при переходе из darknet в интернет и обратно?
Можно в squid — RTFM rewrite_program (url_rewrite_program)
В относительно новых Squid есть директива url_rewrite_program, где кроме URL и SOURCE_ADDRESS можно ещё получать ещё что–то. Мне кажется, можно получать и заголовки, например, Referer.

Если у нас скрытый сайт ведёт не на скрытый (это может быть LINK REL, IFRAME, IMG, A), можно сначала 303м перенаправить на свой сервер, а потом JavaScript'ом проверить, является ли окно окном верхего уровня, и если да, то по таймеру перенаправить на желаемый адрес. Это на случай, если мы просто перешли по ссылке A. Остальные способы (IMG, IFRAME) в этом случае должны ломаться.

А rewrite_program можно обойти, написав так, что скрипт rewrite_program ничего не увидит.
В относительно новых Squid

Ещё в 2008 году использовал этот параметр для подключения sams к squid. В сквиде вообще много фишек которые мало кто использует.
«Ты суслика видишь? — Нет. — И я не вижу. А он есть!» (с)
1. Согласен.
2. У меня не получилось, но нужно попробовать.
3. Задача анонимности не ставилась изначально.
А можете Docker-контейнер сделать, чтоб можно было быстро поставить и попробовать?
То, что половина мануала специфична для FreeBSD, вас не смутило?
Поставьте lxc/openvz, с убунтой, проверьте с учетом пирвязки к убунте работу описанной конфигурации, сделайте скрипт с этими командами дописав RUN перед ними и выбор дистрибутива в начале, Dockerfile готов.
1. Если оставить в стороне I2P, то чем ваше решение превосходит Tor Browser, который запустить не сложнее, чем обычный браузер?
2. Пожалуйста, пишите Tor, а не TOR. Эта ошибка встречается в каждой второй статье, где упоминается Tor, поэтому не обессудьте, что пишу не в личку.
3. Скрытые сайты тора без анонимности можно просматривать через tor2web-шлюзы. Я писал про них и сделал один сам: припишите к адресу .gq и сайт откроется.
1. можно настроить прозрачное проксирование для шлюза, чтобы любой хост за шлюзом прозрачно работал с данным решением — и планшет, и смартфон, и виртуалка и т.д. и т.п.
2. с таким прокси очень удобна автоматическая агрегация новостей с заблокированных сайтов (например, в TT-RSS есть замечательная опция '_CURL_HTTP_PROXY' )
3. само-собой, агрегация новостей из даркнетов, тоже, вещь полезная.
1. В Tor Browser через сеть Tor идут запросы ко всем сайтам. Не знаю как у Вас, а у меня на 100мб канале наблюдаются значительное замедление. В моем варианте через Tor идут только запросы на .onion сайты и на заблокированные. Запросы на остальные сайты идут классическим способом.
2. Ок. Терминология это важно.
3. Задача ставилась другая: Открывать любые сайты, без манипуляций с адресной строкой, одним кликом.
У меня примерно то же самое сделано на простовпне и антизапрете по-отдельности, только на простовпне .i2p и .onion-адреса резолвятся в фейковый IP 192.168.99.98, который потом маршрутизируется на прокси-сервер, работающий в режиме прозрачного проксирования. Плюс в том, что указывать прокси-сервер в браузере не требуется. Собственно, я об этом писал пару лет назад: Прозрачное проксирование в I2P и TOR
Вот исходники антизапрета, если кому нужно: bitbucket.org/ValdikSS/antizapret.
Кстати, для I2P есть замечательный плагин Orchid — реализация Tor на Java. Можно не ставить Tor, а использовать плагин.
Спасибо.
Отметил ваш топик как решение моего вопроса toster.ru/q/178681
Там, пожалуй, в настройки tor ещё стоит поставить запрет на российские exit-ноды.
Ну или запустить два инстанса — один (без ограничений) — для .onion (и ему же надо обязательно VirtualAddrNetwork задать).
А второй — с ограничением на российские exit-ноды, и можно вообще без VAN — чтоб ходить на заблокированные сайты.
(просто в противном случае вполне можно попасть в ситуацию, когда tor решит выйти наружу через российский айпишник, и нужный сайт с его точки зрения может оказаться ровно так же заблокированным)
можно попасть в ситуацию, когда tor решит выйти наружу через российский айпишник, и нужный сайт с его точки зрения может оказаться ровно так же заблокированным
Ни разу не сталкивался с таким. Российских exit-нод так мало и они пропускают так мало трафика, что вероятность данного события очень мала. Намного вероятней напороться на блокировки сайтов провайдерами в других странах (случалось и не раз).

Ну или запустить два инстанса — один (без ограничений) — для .onion
Трафик к onion-сайтам может идти через любые ноды, не важно exit или не-exit. Поэтому второй тор уж точно не нужно запускать.
Сорь, за некоторый оффтоп, но пользуясь подходящей тематикой статьи хотел бы поинтересоваться — в 2011 Tor(если не ошибаюсь с релиза 0.2.2.32) объявил войну подключенцам one-hop proxies а ля tortunnel. Такие подключения действительно сейчас не работают?
Squid — это, конечно, хорошо, но мне как-то не хотелось ради нескольких запросов в месяц гонять весь трафик через лишний прокси (напрасная трата процессорного времени :), поэтому я автоматически генерирую файл wpad.dat, который проcто должен лежать на сервере wpad в локальной сети по адресу
http://wpad/wpad.dat

Бонус — не надо настраивать браузер, т.к. WPAD сейчас везде стоит по умолчанию.
Эта замена необходима для squid. squid привязывает cache-peer к ip адресу и не может иметь больше одного cache-peer на адресе 127.0.0.1


На 127.0.0.1 свет клином не сошёлся, берите любой адрес из сети 127.0.0.0/8.
Конечно, в случае сервера в LAN это не существенно, но в общем случае наружу не должно торчать ничего лишнего.

Ещё один момент: squid ради такой задачи — явный overhead, можно взять что-нибудь попроще.
Скрипт в статье каждый раз перекачивает целиком весь репозиторий, удаляя локальную копию, а также оставляет некоторые некорректные регулярные выражения (Squid рассматривает каждую строку в итоговом файле как регекс). Первое исправляется легко. В качестве полумеры для исправления второго можно добавить ещё пару sed-фильтров. Вместо

#!/bin/sh
cd /root/zapret-info/zapret-info
rm -rf z-i
/usr/local/bin/git clone https://github.com/zapret-info/z-i.git
cat z-i/dump.csv | sed 1d | cut -d ';' -f 3 | tr "\|" "\n" |sed 's/^[ \t]*//;s/[ \t]*$//' |uniq > /usr/local/etc/squid/zapret-urls.txt

использовать

#!/bin/sh                                                                                                                                                                                                                        
cd /root/zapret-info/                                                                                                                                                                                                            
if [ -d "z-i" ]; then                                                                                                                                                                                                            
        cd "z-i"                                                                                                                                                                                                                 
        git pull                                                                                                                                                                                                                 
        cd ".."                                                                                                                                                                                                                  
else                                                                                                                                                                                                                             
        git clone https://github.com/zapret-info/z-i.git                                                                                                                                                                         
fi                                                                                                                                                                                                                               
cat z-i/dump.csv | sed 1d | cut -d ';' -f 3 | tr "\|" "\n" | sed 's/^[ \t]*//;s/[ \t]*$//' | sed 's/\[/\\\[/;s/\]/\\\]/' | uniq > /etc/squid/zapret-urls.txt
А я просто беру раз в полчаса csv c сайта antizapret.info/api.php и парсю его.
Это либо неэффективно, либо неудобно. Вы раз в полчаса перекачиваете целиком весь список, который сейчас уже немаленький, либо парсите diff, который выдаёт API. Идея из статьи применить git, на мой взгляд, — самая удачная.
1395941 байта на 22:47. По-моему, сущие копейки :) Я потратил явно меньше времени на написание пары строк, к тому же обошелся простым wget`ом, а гит вообще не установлен на шлюзе. По-моему это и удобно и эффективно.
Если git не установлен, то конечно. Но у меня всё это развёрнуто на обычном десктопе, и я решил лишний раз не писать ничего на диск.
А парсите так же, как в статье? Способ из неё не подходит для HTTPS, а также если провайдер блокирует целиком весь домен, а не отдельный URL.
Почему должно не работать для HTTPS? Все работает. И да, я так же вырезаю третью колонку с именем домена и убираю дубли. Если домен в списке или в .onion, то роутится через Tor.
Действительно, HTTPS работает. А вот Websockets в такой связке, по-видимому, не работает в принципе. Например, на Github в консоли Chrome появляется:

WebSocket connection to 'wss://live.github.com/_sockets/<long id>' failed: WebSocket is closed before the connection is established.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.