МОГЛА быть проблема маршрутизации GRE на Вашем домашнем маршрутизаторе (шахта имела дерьмо когда-то).
PPTP использование VPN канал TCP для координации и затем пакеты отправляются с помощью GRE (IP подпротокол 47 - не tcp, не udp). Если маршрутизатор или брандмауэр отбрасывают их....
Я поискал в Интернете и наткнулся на хорошее объяснение того, как этого добиться.
Сначала файл .htaccess
:
# script that will store invalid login attempts
ErrorDocument 401 /logging.php
AuthName "My Password Protected Site"
AuthUserFile /<FULLPATH>/.htpasswd
AuthType Basic
Require valid-user
# Set REMOTE_USER env variable on 401 ErrorDocument
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} ^401$
RewriteRule .* - [E=REMOTE_USER:%{ENV:REDIRECT_REMOTE_USER}]
Затем фактический сценарий, который будет выполните регистрацию:
if (isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])):
$fp = fopen(MYLOGFILE, 'a+');
$password = $_SERVER['PHP_AUTH_PW'];
$username = $_SERVER['PHP_AUTH_USER'];
$time = date('y-m-d/H:i:s');
$request = $_SERVER['REDIRECT_URL'];
fwrite($fp, $time . "\t" . $request . "\t" . $username . "/" . $password . "\r\n");
fclose($fp);
endif;
ob_start();
header("HTTP/1.1 401 Authorization Required",1);
header("Status: 401 Authorization Required",1);
echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head><title>401 Authorization Required</title></head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you are authorized to
access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn\'t understand how to supply
the credentials required . </p>';
exit();
Вышеупомянутое работает нормально и сохраняет все недопустимые имена пользователей и пароли в указанном файле журнала. Мне не удалось заставить приведенный ниже пример работать, но он дал мне некоторые идеи о том, как действовать.
Каждая строка в выходном файле будет содержать что-то вроде этого:
13-01-01/12:12:16 - /www/ - username/password
] My apache2 installtion have such log messages about failed attempts:
access to / failed, reason: verification of user id 'qwdsad' not configured
You could install fail2ban to grep these messages from logs and do something to prevent it.
Почему вы хотите это сделать? Как отмечает mricon, запись паролей в виде открытого текста крайне не рекомендуется, даже для отладки.
mod_security
можно использовать так, как вам нравится, путем регистрации заголовков HTTP.
Однако пароли не передаются браузером в виде открытого текста, поэтому вы должны декодировать последовательность в кодировке Base64.
См. Директивы SecAuditLog
и SecAuditLogParts
здесь .
Возможно, это больше подходит для ваших целей: Защитить HTTP Auth от атак грубой силы