Перехватить SSH-соединение через прокси-машину и перенаправить его на другую (удаленную )машину

Следует использовать параметр -F/ --fixed-strings, который может интерпретировать шаблоны как набор фиксированных строк (, поэтому он заставляет grepвести себя какfgrep). См.:man grep.

Так:

grep -F -f in2.lst /dev/null

или:

fgrep -f in2.lst /dev/null
1
15.10.2020, 03:13
2 ответа

Мой подход правильный, все, что мне нужно, это перенастроить sshd_configкак на сервере A, так и на сервере B (прокси):

AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes

Подробности можно найти здесь Переадресация портов SSH .

0
18.03.2021, 22:57

Можно ли использовать ssh с clientCна serverBи с serverBна serverA? Если это так, есть гораздо более простое решение. На clientCзапустите:

ssh -J userB@serverB userA@serverA

Это сначала ssh к userB@serverB, автоматически настроит переадресацию портов на ssh на serverAи подключится к userA@serverAчерез этот перенаправленный порт.

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

Необходимо настроить запуск команды переадресации в обратном направлении изserverA:

ssh userB@serverB -R "*:1234:localhost:22"

*здесь устанавливает bind_address, который является адресом, по которому прослушивается обратный прямой. На справочной странице ssh:

By default, TCP listening sockets on the server will be bound to the loopback interface only. This may be overridden by specifying a bind_address. An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).

Таким образом, настройка bind_addressпозволяет прослушивать соединения на всех интерфейсах. (В вашей версии вы установили его на clientC, что не будет работать, потому что IP-адрес clientCне относится к сетевому интерфейсу на serverB.

Вам также потребуется установить GatewayPorts clientspecifiedв /etc/ssh/sshd_config. Это дает ssh -Rразрешение на привязку к интерфейсу обратной связи, отличному от -.

Тогда вы сможете подключиться по ssh изclientC:

ssh userA@serverB -p 1234

Этот тип переадресации портов между Bи Aподходит для чего-то быстрого и грязного. Если вы хотите что-то более готовое -, рассмотрите возможность использования чего-то вроде HAProxy, nginx или iptables/nftables для обработки переадресации TCP вместо переадресации с помощью SSH.

2
18.03.2021, 22:57

Теги

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