TOR: Странное поведение с localhost PHP скриптами...

Discussion in 'Безопасность и Анонимность' started by BNF, 6 Jan 2009.

  1. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    У меня есть скрипт: http://localhost/myget.php

    Его содержание:
    Code:
    <?php echo file_get_contents( 'http://внешний-адрес-в-интернете.ru/get-my-ip.php' ); ?>
    внешний-адрес-в-интернете.ru - это внешний сайт, на котором располагается мой скрипт выдающий мой айпишник и кучу других данных (для проверки работы Тора)

    Моя задача:
    Из скрипта http://localhost/myget.php анонимно через ТОР получить данные с адреса: http://внешний-адрес-в-интернете.ru/get-my-ip.php

    Я использую
    Gentoo Linux: /etc/init.d/tor start
    FireFox: about:config -> socks_remote_dns = true
    Плагин в FF: TorButton и FoxyProxy (тут прописан 127.0.0.1:9050)

    Проблема
    При попытке загрузить: http://localhost/myget.php - мне лиса предлагает скачать его (сохранить к себе на диск). Знаете, когда ещё веб сервер не сконфигурирован и php скрипты браузер предлагает не обработать и показать результат, а сохранить к себе на диск, т.к. не понял, что это такое.. Вот аналогичная ситуация.

    Если загружать в браузере например такой урл: http://php.spb.ru/proxy/
    то всё превосходно отображается (торо-анонимно).


    А вот чё тор не дружит с локалкой? Как его бы подружить? Подскажите пожалуйста..
     
  2. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    Просто проблема в том, что у меня некоторый скрипт на локалке и внутри он обращается ко внешним адресам.. а вот к ним как раз нужна анонимность...
     
  3. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    для того чтобы с браузера можно было обращаться к локалхосту при включенном TOR или другом виде прокси надо в настройках прокси файрфокса в пункт "Не использовать прокси для:" дописать "127.0.0.1, localhost".
    Но file_get_contents в любом случае будет качать файл напрямую, без TOR. Для того чтобы скачать с помощью php файл через TOR тебе придется использовать сокеты или curl, тогда просто настрой его (curl) на SOCKS прокси localhost:9050
     
  4. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    >> тогда просто настрой его (curl) на SOCKS прокси localhost:9050
    ааа.. чё-то я и не догадался именно так использовать его.
    Спасибо большое! Пошёл пробовать.
     
  5. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    bons, скажи, а ты случаем не знаешь как использовать в Curl'ах Socks4a?
    Насколько понимаю, если я буду использовать Socks5 (CURLOPT_PROXYTYPE = CURLPROXY_SOCKS5), то ДНС запросы будут идти минуя тор напрямую...
     
  6. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    да, DNS запросы будут идти напрямую. Как настроить curl на remote dns я не знаю.
    Если это критично и если не найдешь как это сделать то можешь установить privoxy (обычно используется вместе с TOR), это будет своего рода обертка в виде HTTP прокси вокруг SOCKS. Тогда преобразовывать DNS будет уже не твой хост, т.к. Privoxy умеет работать с удаленным DNS. Еще конечно остается вариант написать это на сокетах (используя какой-нибудь класс для работы SOCKS их написано достаточно)
     
    #6 bons, 6 Jan 2009
    Last edited: 6 Jan 2009
  7. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    А privoxy как использовать совместно с Тором в моих скриптах?
    Тором уже пользуюсь через cURL - круто :)
     
  8. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    Как вариант - использовать третий вариант:
    http://raz0r.name/mysli/ispolzuem-tor-kak-istochnik-besplatnyx-proksi-serverov/
     
  9. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    >> Тогда преобразовывать DNS будет уже не твой хост.
    А какой? Хост последней цепочки тора?
     
  10. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    я так понял ты про непосредственный запуск программы curl из командной строки.
    во-первых на сервере curl может быть установлен только в виде библиотеки к php, во-вторых скорее всего DNS-запросы он все же будет посылать с локалхоста
    просто настрой curl на HTTP прокси localhost:8118
    скорее всего, но по крайней мере один из трех элементов цепочки
     
    #10 bons, 6 Jan 2009
    Last edited: 6 Jan 2009
  11. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    >> я так понял ты про непосредственный запуск
    >> программы curl из командной строки.
    не, не.. я про отдельный класс с использованием Socks4a

    >> просто настрой curl на HTTP прокси localhost:8118
    Так просто? :)
    А как привокси узнает, что нужно тор использовать? :)

    Сделал вот так, но чё-то вообще пустой ответ возвращается:
    Code:
    http://localhost/getip.php:
    
    
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, 'http://внешка/get-my-ip.php' );
    curl_setopt( $ch, CURLOPT_TIMEOUT, 10000 );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE );
    curl_setopt( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );
    curl_setopt( $ch, CURLOPT_PROXY, '127.0.0.1:8118' );
    echo curl_exec( $ch );
    curl_close( $ch );
    
    Privoxy запущена.. Походу она с локальными скриптами не очень дружит..
    (через Тор этот скрипт работает).
     
  12. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    естественно Privoxy должен быть должным образом сконфигурирован
    допиши в конец конфига Privoxy строчку
    Code:
    forward-socks4a / localhost:9050 .
     
    #12 bons, 6 Jan 2009
    Last edited: 6 Jan 2009
  13. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    >> допиши в конфиг provoxy строчку
    а точно.. Она у меня уже прописана, забыл :D

    Но скрипт чего-то всё равно не выдаёт ничего..

    Чёт ваще не пойму.. добавил в скрипт:
    curl_setopt( $ch, CURLOPT_HEADER, TRUE );
    но и заголовков никаких не возвращает.. интересно.
     
  14. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    У.. тут в другом проблема. Поставил в ФФ прокси: 127.0.0.1:8118, а он мне:
    "Прокси-сервер отказывается принимать соединения"

    Проблема с проксёй.
    Не знаешь ли, как можно попытаться выявить проблему?

    Запускается privoxy хорошо:
    Code:
    # /etc/init.d/privoxy start
     * Starting privoxy ...
    Jan 06 19:12:41.229 Privoxy(00000001) Info: Privoxy version 3.0.8
    Jan 06 19:12:41.229 Privoxy(00000001) Info: Program name: /usr/sbin/privoxy  
    
    Тор также запущен. В конфиг привокси добавлена такая же строка, о которой ты выше говорил.
    И чего ей ещё нужно.. :)

    (пробовал и без той строчки - аналогичная фигня).
    Файерволла нет.
     
  15. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    проверь privoxy, может программа работает на другом порте
    netstat -a | grep LISTEN
     
    #15 [Raz0r], 6 Jan 2009
    Last edited: 6 Jan 2009
  16. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    О.. вообще пустой вывод. Никто никакой порт не слушает видать..
     
  17. BNF

    BNF Elder - Старейшина

    Joined:
    16 Apr 2005
    Messages:
    55
    Likes Received:
    1
    Reputations:
    0
    Бр.. в команде грэпа ошибка допущена походу была.

    Вот такая ситуация у меня сейчас:
    Code:
    # netstat -a | grep -i tcp | grep -i listen
    tcp        0      0 *:nfs                   *:*                     LISTEN
    tcp        0      0 *:36420                 *:*                     LISTEN
    tcp        0      0 *:8010                  *:*                     LISTEN
    tcp        0      0 localhost:mysql         *:*                     LISTEN
    tcp        0      0 *:sunrpc                *:*                     LISTEN
    tcp        0      0 localhost:8118          *:*                     LISTEN
    tcp        0      0 *:46103                 *:*                     LISTEN
    tcp        0      0 localhost:9050          *:*                     LISTEN
    tcp        0      0 *:56987                 *:*                     LISTEN
    tcp        0      0 *:5800                  *:*                     LISTEN
    tcp        0      0 *:5900                  *:*                     LISTEN
    tcp        0      0 *:http                  *:*                     LISTEN
    tcp        0      0 *:https                 *:*                     LISTEN
    
    Переустановил privoxy и терь всё отлично работает! Хз в чём трабла была.

    Терь коннекчусь через cURL к HTTP проксе: 127.0.0.1:8118. И типа терь у меня и днс запросы идут через тор?
     
    1 person likes this.