Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как связать proxychains и dig? Полноценное интернет-соединение через Proxy.  (Прочитано 4882 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xintrea

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Здравствуйте!


Вот тут задачка у меня такая есть. Есть маленькая локальная сеть, выход в интернет раздается через proxy-сервер. Нужно получить на Linux-компьютере полноценный интернет (хотя бы для тех программ, которые не умеют работать через proxy). Эта задача состоит из двух этапов

1. Получение возможности для приложения соединяться с интернет-сервисами так, как будто приложение запущено с прямым подключением к интернету. Решено частично через программу proxychains. Есть возможность подключаться к сервисам по IP, но нельзя подключиться по DNS-имени.

То есть, если я пытаюсь соединиться с указанием имени домена, соединение не устанавливается.

#proxychains ssh -2 linu.ru
ssh: linu.ru: Name or service not known

А если я на серваке (через ping например) узнаю IP-шник нужного хоста, и потом на linux-компе даю команду с указанием IP-шника, то соединение происходит нормально

#proxychains ssh -2 217.112.35.30
ProxyChains-2.1 (http://proxychains.sf.net)
dynamic chain:....192.168.1.3:3125....217.112.35.30:22..OK
The authenticity of host '217.112.35.30 (217.112.35.30)' can't be established.


2. Таким образом, надо настроить доступность DNS-имен, чтобы proxychains мог соединяться по имени хоста, а не только по IP-шнику. Я нашел статью, в которой написано, как сделать видимымы DNS имена. Для этого советуют использовать программу dig. Вот ссылка на статью

http://www.soft-forum.ru/forum/f57/proksir...-linux-e-35091/ (Требуется регистрация, иначе весь текст не виден)
http://paste.org.ru/?lfp75b (Копия текста статьи)

В этой статье говорится, что нужно сделать скрипт /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_SERVER=xxx.xxx.xxx.xxx
if [ $# = 0 ]; then
echo " usage:"
echo " proxyresolv <hostname> "
exit
fi
export LD_PRELOAD=libproxychains.so
dig $1 @$DNS_SERVER +tcp | awk '/A.+[0-9]+\.[0-9]+\.[0-9]/{print $5;}'

И после создания данного скрипта у автора начинает по-волшебству видиться DNS-имена в proxychains! Как это так хитро происходит понять и повторить не могу.

В данный момент, я могу на linux-компе вызвать этот скрипт с указанием нужного имени хоста, и он покажет IP-шники хоста.

$ proxyresolv linu.ru
ProxyChains-2.1 (http://proxychains.sf.net)
dynamic chain:....192.168.1.3:3125....195.161.172.254:53..OK
217.112.35.30
217.112.42.15
217.112.35.2
217.112.37.11

Т.е. скрипт proxyresolv рабочий. Но как его зацепить к proxychains, так, чтобы программы, запущенные через proxychains нормально обращались к интернет-хостам по имени, понять не могу. Есть кнонить кто знает как это сделать?

Оффлайн ADL

  • Активист
  • *
  • Сообщений: 447
    • Просмотр профиля
как вариант прописать ручками в resolv.conf всё =) врядли их особо много

Оффлайн xintrea

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Ну это, извините, полумера... Разве что только в resolv.conf весь интернет переписать.

Нормального решения никто не знает?

 

Страница сгенерирована за 0.039 секунд. Запросов: 23.