http://wl500g.info/showpost.php?p=159638&postcount=88
Для работы на роутере должны быть установлены следующие пакеты: ipkg-opt, tar, wget, make, optware-devel, buildroot, nano, net-tools, procps.
Переходим в каталог /opt:

# cd /opt

Скачиваем исходники 3proxy:

# wget http://3proxy.ru/0.6/3proxy-0.6.tgz

Разархивируем:

# tar zxvf 3proxy-0.6.tgz

Собираем:

# cd /opt/3proxy-0.6/
# make -f Makefile.Linux

После компиляции 3proxy, создадим файл конфигурации и разместим его по следующему пути: /opt/3proxy-0.6/src/config.cfg. У меня файл конфигурации получился следующего содержания.

daemon
nserver 172.22.0.1
timeouts 1 5 30 60 180 1800 15 60
users "alexey:CR:$1$fgfgfg$qUNgjW8Go0emlW16OWsUc."
log /opt/var/log/3proxy.log D
logformat "%d-%m-%Y %H:%M:%S %U %C:%c %R:%r %O %I %T"
external 0.0.0.0
internal 127.0.0.1
auth strong
proxy -p3128 -n
setgid 99
setuid 99

Объясню некоторые значения и что они означают в конфигурационном файле, остальное, я думаю затруднений не вызовет:

users пользователь, которому разрешено пользоваться 3proxy, в данном случае вместо пароля указан его хэш, рассчитанный с помощью утилиты «mycrypt». Кавычки обязательны, если в строке встречается знак «$», используемый в 3proxy для подключения файлов конфигурации.

External интерфейс от имени которого будут уходить запросы от 3proxy.

Internal интерфейс, на котором будет ждать соединений прокси сервер, в нашем случае это интерфейс «петли», потому что, соединения устанавливать с прокси stunnel будет локально.

auth режим аутентификации, в нашем случае это «strong» - принудительно по логину и паролю.

proxy -p3128 -n прокси работает на порту 3128 с отключенной NTLM авторизацией.

Setgid, setuid идентификатор пользователя и группы от имени которого работает процесс прокси, в нашем случае это nobody( посмотреть id пользователя можно командой «id nobody»). Иногда, в плане безопасности, бывает не лишним заводить для каждой службы работающей с сетью отдельного пользователя с ограниченными правами, с отключенной оболочкой и возможностью интерактивного входа в систему.

Далее нам понадобится утилита mycrypt, берем ее из приаттаченного архива и кладем по следующему пути: /opt/bin/, выставляем для нее права 777. Так как в конфигурационном файле пароли пользователей я завел в не в открытом, а хэшированном варианте, эта утилита выполняет роль создания хэша и проверки пароля.

# mycrypt <sailt> <password>

http://wl500g.info/attachment.php?attachmentid=4311&d=1235101521
Ну что, когда все настроено, позволим прокси загружаться вместе с роутером, для этого в файл «/usr/local/sbin/post-mount» вставляем следующий код:

#!/bin/sh 
        cd /opt/3proxy-0.6/src/ 
        ./3proxy config.cfg

Для разрешения входящих соединений на порт прослушиваемый stunnel, добавляем разрешающее правило для IPTABLES в файл /usr/local/sbin/post-firewall:

iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -t nat -A PREROUTING -i vlan1 -p tcp --dport 443 -j DNAT --to-destination "$4":443

В вашем случае вместо vlan1 указываем тот интерфейс, на котором вы хотите, чтобы stunnel принимал запросы на подключение.
Сохраняем изменения и перезагружаем роутер:

# flashfs save && flashfs commit && flashfs enable && reboot

Проверим все ли работает:

# ps aux | grep 3proxy
# netstat -na | grep 3128

Если в выводе первой команды в процессах значится 3proxy, а в результате вывода второй слушающий порт 3128 на интерфейсе 127.0.0.1, значит мы все сделали верно и можно переходить к конфигурации клиентской части stunnel.

Установка Stunnel в качестве клиента.

Установка stunnel в качестве клиента достаточно тривиальна, все действия те же как и при установке сервера, различия лишь в нескольких строках конфигурационного файла:

cafile  = stunnel.pem
cert = stunnel.pem
 
ocket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
 
 
client = yes
debug = 7
output = stunnel.log
 
 
[3proxy]
accept  = 127.0.0.1:3333
connect = 192.168.1.1:443

Для примера, файл конфигурации взят от платформы win32. Ключевые и разнящиеся с серверным файлом конфигурации параметры: client = yes, accept = 127.0.0.1:3333, connect = 192.168.1.1:443. И еще нужно проследить, если вы будете копировать и редактировать конфигурационный файл с сервера другой платформы, нежели клиент, чтобы не было параметров не относящихся к клиентской платформе, например: pid, setuid, setgiud в случае клиента под win32.
Теперь, чтобы проверить нашу работу, открываем «проблемное» ПО на стороне клиента, то есть ту программу, доступ которой был ограничен, переходим в настройки соединения данной программы, и выставляем в качестве proxy адрес и порт в соответствии с указанными нами параметрами в конфигурации клиента stunnel(accept = 127.0.0.1:3333), а именно — адрес 127.0.0.1, порт 3333, логин и пароль. Применяем настройки, запускаем клиент stunnel и пробуем соединение. Сейчас должно все работать.
На этом статью можно считать завершенной, до встречи на страницах bruteforcer.ru.

Автор: Э_L_A_Y