2015-02-22

Обход ограничений прокси

Итак, вы работаете в компании где живут злобные админы. И эти плохие дядьки закрыли доступ к нашей всеми любимой аське, контакту и одноклассникам!
и что теперь делать? весь день работать? выход есть %] И так, что нам дано? Есть доступ в инет с закрытыми сервисами, но часть сайтов у нас
работает. Задача получить доступ ко всему. Вся статья по примеру связки httptunnel+polipo+freebsd
Нам нужно:
  1. vds'ка (тут ничего не поделать, нужен root'овый доступ), стоит нынче совсем не дорого, порядка 200 рублей в месяц, а еще и хостить свои сайты будет где, да и файлики в интернете выложить. Наш любимый firstvds.ru пойдет в самый раз(на нем и настраивалось мной)
  2. httptunnel (взять тут: http://nocrew.org/software/httptunnel/), если у вас винда, захватите и версию для нее. Если сервер на freebsd, то httptunnel есть в портах (/usr/ports/www/httptunnel).
  3. какой-нибудь маленький proxy (3proxy, ziproxy (этот нам еще и трафик сэкономит), polipo, etc) Я взял себе polipo ибо он первый на глаза попался.
Все, поехали:
В чем смысл всего, мы прокидываем туннель до внешнего сервера(вашего) со своего компьютера. Весь трафик будет прикидываться httpшным летая по 80 порту до сервера,
а оттуда уже по миру куда надо и назад по той же схеме через свой прокси.
Для начала нам надо все это дело собрать:
cd /usr/ports/www/httptunnel && make install && make clean
cd /usr/ports/www/polipo && make install && make clean
добавляем в /etc/rc.conf:
polipo_enable="YES"
Теперь некоторые особенности работы, на нашей vds'ке крутится еще апача которая слушает 80 порт(скорей всего в вашей(как в моем случае) компании наружу
открыт только 80(http) и 443(https) порт. Но нашему веб-серверу он тоже нужен. Тут выхода по сути два. Первый не совсем правильный - это мы
покупаем отдельную vds для нашего обхода и просто гасим там apache. Минусы очевидны, не сайта положить, ни файлика забросить. И второй более грамотный - мы
покупаем просто дополнительный ip. Вешаем его на отдельный домен(благо домена третьего уровня сами клепать можем) и просим апачу слушать только первый
ip на котором и висит основной домен с нашими сайтами. Для этого нужно лишь чуток подправить конфиг apache:
vi /usr/local/etc/apache/httpd.conf
Listen first.vds.server.ip:80 Listen first.vds.server.ip:443
first.vds.server.ip - это ip сервера первый (тот, что мы купили дополнительно привязываем к какому-нибудь домену по вашему вкусу и оставляем.
Теперь сервер слушает все домены кроме отдельно заведенного с новым ip (сделали вы это уже, да?;])
Поднимаем прокси:
cd /usr/local/etc/polipo && cp ./config.simple ./config && vi ./config
proxyAddress = "second.vds.server.ip"    # IPv4 only
allowedClients = "127.0.0.1, 192.168.0.0/24"
proxyName = "obhod.youserver.com"
proxyPort = 3128
authCredentials = admin:pass
chunkHighMark = 819200
objectHighMark = 128
diskCacheFilePermissions=0640
diskCacheDirectoryPermissions=0750
diskCacheRoot = ""
Конфиг настроен, теперь запускаем его:
/usr/local/etc/rc.d/polipo.sh start
Проверьте запустился ли:
ps ax|grep polipo
если нет, читайте в чем проблема:
cat /var/log/polipo
Поднимаем тунель:
hts -F obhod.youserver.com:3128 obhod.youserver.com:80
Ну и теперь проверим, все ли отвечает и слушает нас:
netstat -na||grep tcp
tcp4       0      0  92.63.98.42.80         *.*                    LISTEN
tcp4       0      0  92.63.98.42.3128       *.*                    LISTEN
Замечательно, видно, что оба сидят и слушают )) Все, осталось самое интересное, у себя на компьютере запускаете
htc -P proxy.company.com:3128 -F 1020 you.server.com:80
в случае винды соответственно htc.exe
Теперь чуток подправляем параметры вашего браузера/icq/и прочих клиентов. Указываем использовать прокси у себя с параметрами: server : localhost, port: 1020 и вперед, читайте общайтесь, но про работу все же не забывайте

Комментариев нет:

Отправить комментарий