Для работы на роутере должны быть установлены следующие пакеты: 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>
Ну что, когда все настроено, позволим прокси загружаться вместе с роутером, для этого в файл «/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
Страниц: 1 2
Оставить комментарий или два