From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_20,DNS_FROM_OPENWHOIS, SPF_PASS autolearn=no version=3.2.5 From: "Nikolay A. Fetisov" To: Dank Bagryantsev <4alt@mail.ru>, ALT Linux sysadmins' discussion In-Reply-To: <1041415051.20101028054015@lugaport.net> References: <332809524.20101026191942@lugaport.net> <1288192640.16208.194.camel@v3405.naf.net.ru> <303818767.20101027194911@lugaport.net> <1288216498.32412.60.camel@v3405.naf.net.ru> <1041415051.20101028054015@lugaport.net> Content-Type: text/plain; charset="KOI8-R" Date: Thu, 28 Oct 2010 09:38:20 +0400 Message-ID: <1288244301.32412.116.camel@v3405.naf.net.ru> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 (2.30.3-alt1) Content-Transfer-Encoding: 8bit Subject: Re: [Sysadmins] =?koi8-r?b?99fPxCDMz8fJzsEt0MHSz8zRIMTM0SDEz9PU1dDB?= =?koi8-r?b?IMsg08HK1NUgzsXJ2tfF09TO2cgg0M/M2NrP18HUxczA?= X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux sysadmins' discussion List-Id: ALT Linux sysadmins' discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Oct 2010 05:38:29 -0000 Archived-At: List-Archive: В Чтв, 28/10/2010 в 05:40 +0300, Dank Bagryantsev пишет: > ... > пока никаких толковых наработок я не нашел в этом направлении. Там наработок-то... В простейшем случае для http:// на nginx'е конфигурация для сайта вида server { listen 80; server_name .service.tld; proxy_set_header Host $host; location /auth { if ($request_method = POST ) { proxy_pass http://filter_host; } proxy_pass http://service.tld; } location / { proxy_pass http://service.tld; } } И на filter_host выполнять подмену паролей в отправляемых POST'ах. Например, так: ---------------------- #!/usr/bin/perl -w use strict; use HTTP::Proxy; use HTTP::Proxy::BodyFilter; my $proxy = HTTP::Proxy->new(port => 80); $proxy->push_filter( mime => 'text/html', request => HTTP::Proxy::BodyFilter->new( sub { my ( $self, $dataref, $message, $protocol, $buffer ) = @_; $$dataref =~ s/fakepassword/realpassword/g; } ) ); $proxy->start; ---------------------- (Выдрано из документации к HTTP::Proxy, работоспособность не проверялась.) > ... но если доступ к nginx будет все-равно через VPN, то > можно будет попробовать вариант перебрасывать с http nginx'a на https > сайтов (где https обязателен), чтобы избежать самоподписанных сертификатов. Этот вариант сильно хуже - придётся разбирать на прокси-сервере все ответы и менять https:// на http:// перед отправкой их клиенту. И наоборот. Причём только в нужных URL. > Кстати, а вариант с промежуточным http-сервером и открытием сайтов во > фреймах и внесение-отсылка логинов-паролей через JavaScript, в моем > случае будет работоспособным? Зависит от сайтов. На первый взгляд, потребует больше программного кода на стороне сервера, и передачу на сторону пользователей (и потенциальных троянов на их машинах) исходных паролей. -- С уважением, Николай Фетисов