Как использовать sshuttle на роутере под управлением openwrt?
5449
András Szepesházi
Я использую маршрутизатор TP-Link TL-WR1043ND под управлением OpenWrt и Gargoyle . Я бы хотел прозрачно перенаправить весь трафик из моей локальной сети (обслуживаемой маршрутизатором) на удаленный сервер. По сути, как прокси-сервер socks будет работать, просто без необходимости настраивать подключенные клиентские машины для прокси.
Я читал, что sshuttle - это способ выполнить такое требование. После долгих хлопот мне наконец-то удалось выполнить все предпосылки, и я могу запустить sshuttle без каких-либо сообщений об ошибках, например:
./sshuttle --dns -vvr XXXXXX@YY.YY.YY.YY 0/0
Где XXXXXX - мое имя пользователя на удаленном сервере YY.YY.YY.YY sshuttle, кажется, инициализируется очень хорошо, сообщений об ошибках нет, добавляет все необходимые правила в iptables, но после того, как локальный прокси-сервер установлен, я не могу подключиться где-либо из моя локальная сеть. Это вывод sshuttle:
Я понятия не имею, как даже начать отладку этой проблемы. Если я остановлю sshuttle, он удалит правила iptables и сетевые подключения снова будут работать:
Кому-нибудь удалось настроить работающий экземпляр sshuttle на openwrt? Или есть какой-то другой способ добиться того, что мне нужно здесь (прозрачный прокси на роутере openwrt)?
Luckily I got an answer at the sshuttle google group from the author of sshuttle. He wrote:
You might need to add '-l 0.0.0.0' (that's a lowercase L) in order to tell sshuttle to listen for connections from other than localhost (the router itself). For security reasons, sshuttle won't route other people's traffic by default.
Мой пример использования - запуск sshuttle на хосте для пересылки трафика контейнеров Docker во время их сборки, и это прекрасно работает.
Tarnay Kálmán 10 лет назад
0
4
trapezoid
Несколько вещей, которые сбили меня с толку:
На складе OpenWRT 12.09 AA необходимо установить следующие пакеты:
python (с зависимостями, потребляет 3-4 МБ флеш)
iptables-mod-nat-extra
iptables-mod-ipopt
Затем, чтобы подключиться по SSH к удаленному серверу с помощью ключа SSH, вам нужно создать ключ в формате Dropbear:
dropbearkey -t rsa -f /root/.ssh/id_rsa
И, наконец, укажите расположение ключа в sshuttleкомандной строке:
На маршрутизаторе GL-AR300M, который работает с OpenWrt Chaos Calmer 15.05, процедура выглядит несколько иначе, чем описанная @trapezoid. Может быть, это не совсем стандартный OpenWRT (я не переустанавливал после покупки), или это просто время.
Я установил пакеты они названы, то есть python iptables-mod-nat-extra iptables-mod-ipopt.
Чтобы логин на основе ssh-ключа работал, мне не нужно было генерировать специальный ssh-ключ, моего обычного было достаточно, но его autorized_keysнужно было переместить /etc/dropbear/(то есть, я ssh-copy-idне поместил его в правильный каталог).