Страница 1 из 1

Обходим firewall/proxy вашей компании (NetBSD)

Добавлено: 29 апр 2010, 13:44
Raven
Обходим firewall/proxy вашей компании с помощью...

net/corkscrew: утилита для тунелинга ssh через http прокси.
net/tsocks: Библиотека прозрачных SOCKS прокси.
www/tinyproxy: Легкая http/ssl прокся

Большинство компаний ограничивают своим юзерам доступ в интернет, заставляя
использовать HTTP прокси. Если вам этого не хватает для полноценного
(псевдо) рабочего дня, вы хотите посещать любые сайты, слушать любое
интернет радио, играть в покет онлаин, знайте, решение есть.
  • 1) Настройте openSSH сервер на своем домашнем компьютере и поставьте его на 443 порт.

    Если на вашем офисном компьютере стоит windows:

    2) Вы должны установить HTTP прокси на ваш домашний компьютер, так как вы несможете использовать openssh и все прелести socks proxy -D, например tinyproxy - легко конфигурируется и хорошо работает.

    Код: Выделить всё

    # pkgmanager install www/tinyproxy
    # cp /usr/pkg/share/examples/rc.d/tinyproxy /etc/rc.d/
    # echo 'tinyproxy=YES' >> /etc/rc.conf
    # cp /usr/pkg/share/examples/tinyproxy/tinyproxy.conf.default /usr/pkg/etc/ti nyproxy/tinyproxy.conf
    # vi /usr/pkg/etc/tinyproxy/tinyproxy.conf
    Откройте фаил tinyproxy.conf и убедитесь в наличии строк

    Код: Выделить всё

    Port 8888
    Bind 127.0.0.1
    ConnectPort 443
    Таким образом наш http proxy будет слушать только localhost на 8888 порту
    и позволит заходить на https сайты.

    3) Для коннекта будем использовать putty. Откройте меню Connection/Proxy
    и введите туда настройки http прокси. Затем откройте меню
    Connection/SSH/Tunnels, включите port forwarding для редиректа локального
    порта 8888 на localhost:8888 (на удаленной машине, у вас дома).

    Затем откройте меню Connection и включите посылание null пакетов каждые
    10 секунд для поддержания соединения. Как тольно закончите, перейдите в
    меню Session, введите адрес вашего домашнего компьютера, порт 443, SSH
    и попробуйте законектиться.

    4) Когда вы подключитесь к вашему серверу, необходимо проверить,
    работает ли редирект. Запустите cmd.exe, выполните netstat -an и
    посмотрите, слушает ли сервер 8888 порт. Запустите веб броузер и настройте
    его на работу через http proxy на localhost:8888. Теперь вы можете
    заходить на любые сайты, наслаждайтесь.
Если на офисном компьютере стоит unix, например NetBSD:

2) Установите corkscrew. Это позволит вам использовать ssh через http прокси.

Код: Выделить всё

# pkgmanager install net/corkscrew
3) Создайте фаил под названием auth_proxy, например. Запишите туда логин и
пароль для коннекта на http прокси, если надо.

Код: Выделить всё

# echo 'login:pass' >> ~/.ssh/auth_proxy
4) Создайте фаил под названием config_out, например. (192.168.3.10 - адрес
прокси, которую я вынужден использовать)

Код: Выделить всё

# echo 'ProxyCommand /usr/pkg/bin/corkscrew 192.168.3.10 80 %h %p ~/.ssh/auth_proxy' >> ~/.ssh/config_out
5) Добавьте алиас в .bashrc

Код: Выделить всё

alias ssh_out='ssh -F ~/.ssh/config_out'
6) Можно конектиться к домашней машине с опцией -D.

Код: Выделить всё

# ssh_out -D 8080 yourcomputer.hostname.org -p 443
Теперь вы имеете SOCK4/5 прокси, слушающий 8080 порт.

8) Все что нам надо, это редирект всех TCP запросов на этот socks proxy.
Для этого мы будем использовать замечательную утилиту tsocks.

Код: Выделить всё

# pkgmanager install net/tsocks
# echo 'local = 192.168.0.0/255.255.255.0' >> /usr/pkg/etc/tsocks.conf
# echo 'server = 127.0.0.1' >> /usr/pkg/etc/tsocks.conf
# echo 'server_port = 8080' >> /usr/pkg/etc/tsocks.conf
192.168.0.0/255.255.255.0 - моя локальная сеть, используйте свою!

9) Для активации tsocks надо определить переменную LD_PRELOAD:

Код: Выделить всё

# export LD_PRELOAD=/usr/pkg/lib/libtsocks.so
Все, теперь все программы, запущеные через этот шел, будут использовать
прокси, тоесть все будет проходить через ssh тунель в ваш домашний
компьютер, который в свою очередь будет перенаправлять все это в нужные
места. Все будет обсолютно так, как-будто вы сидите дома.

Заметьте, suid программы и программы, запущенные через sudo не будут
использовать tsocks, для этого вам придется логиниться рутом.

ССЫЛКА НА ОРИГИНАЛ: http://diwp.blogspot.com/