Довольно часто находил ответы на свои вопросы на данном форуме, и в этот тоже решил поделится очень маленьким, но полезным описанием.
Собственно большая часть описания уже есть
здесь.
Данное решение актуально для Ubuntu 10.04. Но судя по многочисленным вопросам за 2007-9 годы — для старых версий тоже подойдет.
Наша цель - сделать использование цепочек прокси удобным для любого софта, в том числе и поддерживающего прокси.
1. Устанавливаем необходимые пакеты, хотя наверное dig уже есть у всех:
sudo apt-get install proxychains dig
2. Настраиваем
proxychains.conf:
sudo nano /etc/proxychains.conf
Здесь нас конечно интересует строка, которая не должна быть закомментирована, именно она отвечает за DNS:
proxy_dns
Я не буду описывать другие настройки, т.к они через что ходить в сеть каждый выбирает сам.
3. Создаем
волшебный скрипт
/bin/proxyresolv с таким содержанием:
#!/bin/sh
# file /bin/proxyresolv
# This script is called by proxychains to resolve DNS names
# DNS server used to resolve names
# IP адрес сервера DNS, например публичных DNS от
# DNS_SERVER=8.8.8.8Google
# И не надо говорить, что это плохо для анонимности, т.к при аудите безопасности боятся надо не гугл.
DNS_SERVER=xxx.xxx.xxx.xxx
if [ $# = 0 ]; then
echo " usage:"
echo " proxyresolv <hostname> "
exit
fi
# Правильный вариант
export LD_PRELOAD=/usr/lib/libproxychains.so.3
# Не правильный вариант:
# export LD_PRELOAD=libproxychains.so
dig $1 @$DNS_SERVER +tcp | awk '/A.+[0-9]+\.[0-9]+\.[0-9]/{print $5;}'
Оригинальный (найденный в сети скрипт) не работал, так как используемый .so не находился, и скрипт ругался ошибкой.
ERROR: ld.so: object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored.
Вы можете сами проверить, где у вас находится нужный файл:
find /usr | grep libproxychains.so
5. Поздравляю! Теперь при запуске программ через
proxychains работает DNS!
А теперь небольшое дополнение.
Хотя возможно я и придумал костыль:
Все бы хорошо, но proxychains заточен скорее под использование программ где поддержка прокси отсутствует вообще.
Если попытаться запустить через него лису, оперу и другой тяжелый софт, то вероятно он повиснет намертво.
Замечу, что мне не нужно использовать оперу, поэтому я не пробовал запускать HTTP прокси через proxychains.
6. Мы запустим через
proxychains полноценный прокси сервер.
Мой выбор пал на переписанный
Satanic Sosks Server (perl).
Не смотря на то, что он написан на перле, для одного пользователя его вполне достаточно.
Скачиваем данный сокс, выставляем права и запускаем от нужного юзера:
proxychains ./socks.pl <local_host> <local_port> [auth_login(:auth_pass)]
7. Теперь необходимо настроить софт для работы через локальный прокси.
Наслаждаемся анонимностью!
PS: Было бы не лишним если бы заинтересованный человек написал озапуске HTTP/S прокси сервера через proxychains.
Так же буду рад узнать более элегантные решения поставленной задачи.