Как создать обратный туннель SSH с пересылкой iptables?

Вам нужно меню трубы .

Канальное меню - это динамический пункт меню, который создается программой каждый раз, когда меню открывается.

Существует несколько программ, которые могут создавать конвейерное меню установленных приложений. Вот список избранных меню каналов от Openbox.org.

Поскольку вы используете Lubuntu, вас, скорее всего, заинтересует openbox-menu . Он использует кеш меню LXDE для создания меню приложения. Здесь есть пакет Ubuntu . Я не знаю, есть ли это в официальном репозитории, вы должны это проверить.

Чтобы использовать конвейерное меню, вам необходимо отредактировать файл меню Openbox по адресу ~ / .config / openbox / menu.xml .

В файле меню вам нужно добавить новый пункт меню в корневом меню , который выглядит следующим образом


Вам нужно будет заменить который путь к openbox-menu . Вы можете получить путь с помощью

type openbox-menu

. Тогда у вас будет новый пункт меню с надписью Applications в вашем меню Openbox.

Если вы никогда не редактировали свой menu.xml , посмотрите документацию по меню из Openbox.

3
26.03.2019, 12:39
1 ответ

Установите GatewayPorts yesи AllowTcpForwarding yesв sshd_configна сервере b. С помощью GatewayPorts clientspecifiedявно укажите IP-адрес 0.0.0.0или *на сервере a, чтобы создать обратный туннель. Так что sshd на сервере bтоже принимает подключения от публики:

ssh -NTR *:2222:localhost:22 root@server-b.com

В противном случае sshd прослушивает только петлевой интерфейс, как в случае с GatewayPorts no.

Теперь ssh с другого компьютера на порт2222:

ssh root@server-b.com -p 2222

Вы войдете на сервер aпосле аутентификации.
Нет необходимости настраивать переадресацию iptables. Кстати, избегайте пользователя rootдля удаленного входа, если это возможно.


Если вы не хотите устанавливать опцию GatewayPorts, вам нужно перенаправить трафик с какого-либо другого порта, скажем, 2223на localhost:2222.

  • Это можно сделать с помощью iptablesна сервереb:

    iptables -t nat -I PREROUTING -p tcp -m tcp --dport 2223 -j DNAT --to-destination 127.0.0.1:2222
    

    *REDIRECTработает только для одного и того же интерфейса

    Но маршрутизация на loopbackинтерфейс не разрешена, если:

    echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/route_localnet
    

    Теперь sshс другой машины на порт2223:

    ssh root@server-b.com -p 2223
    

Другой вариант — настроить минимальный локальный сервер переадресации с порта 2223на 2222с помощью таких инструментов, как ssh, socat, netcat, *inetdи т. д.

  • На сервере b, сsocat:

    socat TCP-LISTEN:2223,fork TCP:127.0.0.1:2222
    
  • Или сnetcat:

    nc -l -p 2223 -c "nc 127.0.0.1 2222"
    
  • Или сssh:

    ssh -4gfNTL 2223:localhost:2222 localhost
    

Любое из вышеперечисленных действий можно комбинировать с обратным туннелем для выполнения двойной переадресации с сервера aза один шаг:

ssh -TR *:2222:localhost:22 root@server-b.com "ssh -4gfNTL 2223:localhost:2222 localhost"
5
27.01.2020, 21:24

Теги

Похожие вопросы