Персональный
сайт
Игоря
Сысоева


 
english
обо мне
 
sysoev.ru
 
nginx
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
 

Анонимность в вебе

 

07.10.1999

Большинство людей, бродящих по Интернету, по тем или иным причинам не склонны сообщать о себе что-либо каждому серверу, на который они заглянули. Однако, какие-то сведения всё же передаются. Достаточно часто можно определить адрес, с которого сделан запрос. Если Вы считаете, что скрыли его, воспользовавшись прокси-сервером или даже их цепочкой, то это может быть и не так. Хотя в этом случае запрос делается с адреса последнего в цепочке прокси-сервера, тем не менее, многие прокси-сервера передают заголовки "Via" и "X-Forwared-For", позволяющие установить, откуда реально был сделан запрос. Практически все браузеры сообщают о своей версии и операционной системе в заголовке "User-Agent". А старые браузеры в заголовке "From" передавали адрес электронной почты (пользователи современных браузеров об этом могут не беспокоится). Кроме того, в заголовке "Referer" передаётся URL, с которого Вы пришли на страницу по ссылке.

Некоторые браузеры иногда передают в этом заголовке совершенно левые URL'ы. Я замечал такое, в частности, за MSIE 5.0x.
Ниже Вы можете посмотреть значения вышеописанных заголовков, переданных при запросе этой страницы. Если же в Вашем запросе нет какого-либо заголовка, то в таблице Вы увидите прочерки.
ip-address54.167.135.61
Via:-
X-Forwarded-For:-
User-Agent:CCBot/2.0 (http://commoncrawl.org/faq/)
From:-
Referer:-

Результаты Вашей таблицы мы рассмотрим на примере, который мог бы получиться у меня:
ip-address195.170.62.131
Via:1.0 cache.nitek.ru:3128 (Squid/2.2.STABLE3),
1.0 proxy.east.ru:3128 (Squid/2.0.PATCH2)
X-Forwarded-For:unknown, 195.170.63.240
User-Agent:Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)
From:-
Referer:http://sysoev.ru/web/

Мой прокси-сервер с адресом 195.170.63.240 записал в заголовок "Via" строку "1.0 cache.nitek.ru:3128 (Squid/2.2.STABLE3)", а в заголовок "X-Forwarded-For" — "unknown". "1.0" означает версию протокола HTTP, с которой обратились к прокси-серверу. "cache.nitek.ru:3128" — имя прокси-сервера и порт, на котором он работает. В скобках Squid записывает свою версию. Нужно заметить, что не все прокси-сервера записывают информацию о себе в таком же формате. Одни опускают версию протокола HTTP, другие — версию сервера или номер порта, некоторые пишут не полное доменное имя сервера, а только короткое. Squid — один из немногих прокси-серверов, который показывает наиболее полную информацию о себе. Вместо адреса в заголовке "X-Forwarded-For" мой Squid записал "unknown", потому что в файле конфигурации squid.conf установлен параметр

forwarded_for off
иначе бы он записал реальный адрес, например, "192.168.1.100". Если же указать
visible_hostname        unknown
то в заголовок "Via" будет добавлена строка "1.0 unknown:3128 (Squid/2.2.STABLE3)",
При этом Squid будет показывать битые иконки в каталогах FTP-серверов. Для того, чтобы исправить это, нужно описать хост unknown в локальной конфигурации DNS.

Прокси-сервер news.east.ru (195.170.62.131) добавил в заголовок "Via" свою строку "1.0 proxy.east.ru:3128 (Squid/2.0.PATCH2)", а в "X-Forwarded-For" — адрес обратившегося к нему узла — "195.170.63.240". В данном случае — это адрес моего прокси-сервера.

Из заголовка "User-Agent" видно, что запрос сделан из Internet Explorer 4.01 под Windows NT, заголовок "From" пуст, а исходя из заголовка "Referer" можно предположить, что на страницу пришли с "http://sysoev.ru/web/". Если Вас сильно беспокоит факт передачи этих заголовков, то с помощью Squid 2.x можно запретить передачу заголовков "From" и "Referer" указав в squid.conf:

anonymize_headers deny From Referer

То же самое, в принципе, можно сделать и для заголовка "User-Agent", однако, есть риск, что некоторые веб-сервера откажутся работать с запросами без заголовка "User-Agent". Поэтому можно установить какое-нибудь левое имя браузера:

anonymize_headers deny User-agent
fake_user_agent Nutscrape/1.0 (CP/M; 8-bit)

Правда, при такой настройке на некоторых серверах Вы рискуете увидеть нечитаемые русские тексты в случае, если на сервере стоит Russian Apache, конфигурация которого предусматривает определение кодировки, исходя из имени браузера. Но если Вы точно знаете, что через Ваш Squid ходят только из-под Windows, то можете установить что-то типа:

fake_user_agent Mozilla/4.0 (compatible; MSIE 4.01; Windows NT) 

(C) Игорь Сысоев
http://sysoev.ru