2018-07-09 Networking-Blog

Обход наших любимых роском(позо)(надзо)ровских блокировок в linux и в gentoo в частности

Связка squid + c-icap для себя любимого у меня стояла уже лет 10 как в качестве банерорезки и кеша, но я все время искал чем бы заменить сквид с его sslbump ибо для одного юзверя это даже не из пушки по воробьям а чето ближе к ядерной боеголовке, и тут, недавно, не помню уже с чего вдруг гдето выплыл выплыл у меня wwwoffle, который заточен какрас для персонального использования в противовес сквиду, и почемуто я решил на него глянуть, не помню уже почему - мошт просто делать нехер было. И полной неожиданностью оказалось что оно умеет mitm ака sslbump в сквиде типа из коропки, причем уже много лет, и кешировать https в том числе, ну и еще кучу всяких standart violation для которых squid нада затачивать что не всегда тривиально, а тут типа все есть. ну и сразу же я решил сие дело посмотреть и опробовать.

В gentoo оказалась довольно древняя версия, поэтому засунул на ее основе последнюю с сайта в свой локальный оверлей и благополучно собрал, и вроде бы все зашибись, кроме одного но - вылез какой то raice condition при генерации фейковых сертификатов, каким то образом получалось что одновременно 2 процесса генерируют пару ключ-сертификат для даного сайта, и один заканьчивает раньше другого, в итоге ключь к самому сертификату не подходит и естественно ничего не работает - бида пичаль.

Врубил логгинг на все - по его строкам нашол процедуру которая генерит сертификаты - в src/certificates.c

static gnutls_certificate_credentials_t GetCredentials(const char *hostname,int server)

посмотрел наискосок - вникать не стал - криво оно конечно реализовано ну да ладна - до того я еще успел нагуглить чтото типа форка wwwoffle - wwwoffle-par, чувак долго и много чего там дорабатывал, влоб поставил на проверку - raice отсуствует - тупо скопипастил тело процедуры к себе, сделал патчь, пересобрал с оригинальной версией - raice исчез - алилуя - можно пробовать юзать дальше😊

а дальше, наткнулся на SVN, посмотрел что там, и решил подняца до него - хуже не будет, так родился второй патч😊 Попутно портировал фичу session cookies only из ветки -par, так родился третий патч, ну а четвертый мелкий фикс ворнинга - до кучи😊

[[wwwoffle-2.9j_to_svn.patch?]]