Песочница →
Настройка прокси на прошивке Tomato
Начну, пожалуй, с главного — для чего, собственно, нужен мне лично прокси-сервер. У нашего провайдера (думаю как и у всех прочих) есть внутренние ресурсы, доступ на которые возможен только с компьютера, подключенного к этому самому провайдеру. Ранее, я использовал схему: белый IP у компьютера, прокси-сервер (CCProxy) и не выключал компьютер. Идея о том, что на роутере можно поставить прокси-сервер витала давно, так как на роутерах стоит Linux, вопрос был лишь в реализации. Squid слишком тяжел для данно задачи, ведь мне нужно простое и практичное решение и вот недавно, я наткнулся на одну программу — srelay, которая осуществояет «проброс» трафика через HTTP и SOCKS прокси.
Итак, теперь приступим к настройке роутера, в моем случае это NETGEAR WNR-3500L-RUS и прошивка Tomato (модификация прошивки не имеет значения). Данная статья рассчитана на продвинутого пользователя и считается. что человек уже умеет обращаться с командной строкой, putty и знает что делает.
Сперва, необходимо сделать так, чтобы прокси работал всегда и не зависил ни от флешек ни от чего-либо ещё, то есть будем размещать программу в памяти роутера, для этого в разделе Администрирования включаем опцию JFFS — это небольшой раздел, в моем случае 320 кб, на программу для прокси хватит.
Итак, идем в Administration / JFFS, включаем галочку Enable и нажмаем Format / Erase, ждем некотрое время, и нажимаем Save.
Когда раздел JFFS отформатирован и смонтирован, то появится доступ к папке /jffs, сюда то и поместим программу srelay.
Чтобы скачать программу (файл расположен мной на моем же сайте гугла для удобства, уже скомпиленный из optware), выполняем следующий скрипт, можно в разделе Tools / System:
Теперь у нас есть программа srelay в разделе jffs, который находится в памяти роутера, остается настроить порты, автозапуск программы и её параметры.
Параметры программы можно увидеть по команде:
Нам понадобится следующие из них:
Где 9999 — порт, который будет использоваться для подключения, используйте какой угодно, кроме стандартных. P@ssW0rD замените на пароль, который будет использоваться для авторизации(обратите внимание на букву р перед паролем), имя пользователя при доступе к прокси — root. Добавляем эту строку в поле Execute When Mounted, чтобы программа запускалась при инициализации раздела JFFS с заданными параметрами, а именно:
Приблизительно так должно выглядеть в итоге:
Теперь, добавим правило в Firewall на открытие порта 9999, для этого переключаемся в раздел Administration / Scripts, вкладка Firewall, туда добавляем через перенос строки следующее:
Выглядеть это будет приблизительно вот так:
Теперь перезагружаем роутер и проверяем работу программы любым доступным методом, например, браузером. Надеюсь вам пригодится эта инструкция как и мне.
Было замечено, что после длительной работы, программа могла закрываться, для этих целей я ставлю программу monit, но это тема другой статьи.
Используемые материалы:
1. Исходники самой программы — socks-relay.sourceforge.net/
2. Очерк одного из пльзователей — www.linksysinfo.org/index.php?threads/a-socks-proxy-server-for-tomato.23898/
Итак, теперь приступим к настройке роутера, в моем случае это NETGEAR WNR-3500L-RUS и прошивка Tomato (модификация прошивки не имеет значения). Данная статья рассчитана на продвинутого пользователя и считается. что человек уже умеет обращаться с командной строкой, putty и знает что делает.
Сперва, необходимо сделать так, чтобы прокси работал всегда и не зависил ни от флешек ни от чего-либо ещё, то есть будем размещать программу в памяти роутера, для этого в разделе Администрирования включаем опцию JFFS — это небольшой раздел, в моем случае 320 кб, на программу для прокси хватит.
Итак, идем в Administration / JFFS, включаем галочку Enable и нажмаем Format / Erase, ждем некотрое время, и нажимаем Save.
Когда раздел JFFS отформатирован и смонтирован, то появится доступ к папке /jffs, сюда то и поместим программу srelay.
Чтобы скачать программу (файл расположен мной на моем же сайте гугла для удобства, уже скомпиленный из optware), выполняем следующий скрипт, можно в разделе Tools / System:
wget "http://sites.google.com/site/denserru/Home/srelay/srelay?attredirects=0&d=1" -O "/jffs/srelay"
chmod +x /jffs/srelay
Теперь у нас есть программа srelay в разделе jffs, который находится в памяти роутера, остается настроить порты, автозапуск программы и её параметры.
Параметры программы можно увидеть по команде:
root@denser-router:/tmp/home/root# /jffs/srelay -h
srelay 0.4.6 2003/04/13 (Tomo.M)
usage: srelay [options]
options:
-c file config file
-i i/f listen interface IP[:PORT]
-m num max child/thread
-o min idle timeout minutes
-p file pid file
-a np auth methods n: no, p:pass
-u file srelay password file
-f run into foreground
-r resolve client name in log
-s force logging to syslog
-t disable threading
-b avoid BIND port restriction
-v show version and exit
-h show this help and exit
Нам понадобится следующие из них:
/jffs/srelay -i :9999 -t -a pP@ssW0rD
Где 9999 — порт, который будет использоваться для подключения, используйте какой угодно, кроме стандартных. P@ssW0rD замените на пароль, который будет использоваться для авторизации(обратите внимание на букву р перед паролем), имя пользователя при доступе к прокси — root. Добавляем эту строку в поле Execute When Mounted, чтобы программа запускалась при инициализации раздела JFFS с заданными параметрами, а именно:
- работа по протоколам HTTP, SOCKS4 и SOCKS5
- авторизация на порту 9999 пользователь: root, пароль: P@ssW0rD.
Приблизительно так должно выглядеть в итоге:
Теперь, добавим правило в Firewall на открытие порта 9999, для этого переключаемся в раздел Administration / Scripts, вкладка Firewall, туда добавляем через перенос строки следующее:
iptables -I INPUT -p tcp --dport 9999 -j ACCEPT
Выглядеть это будет приблизительно вот так:
Теперь перезагружаем роутер и проверяем работу программы любым доступным методом, например, браузером. Надеюсь вам пригодится эта инструкция как и мне.
Было замечено, что после длительной работы, программа могла закрываться, для этих целей я ставлю программу monit, но это тема другой статьи.
Используемые материалы:
1. Исходники самой программы — socks-relay.sourceforge.net/
2. Очерк одного из пльзователей — www.linksysinfo.org/index.php?threads/a-socks-proxy-server-for-tomato.23898/
05.12.2011 08:01+0400