Обратный туннель SSH: как я могу отправить свой номер порта на сервер?

Дополнительные опции:

http://www.la-samhna.de/library/scanners.html

Сделайте свой собственный образованный выбор. В зависимости от количества хостов Вы имеете, имея централизованный сервер создания отчетов, или механизм будет важным. Примите это во внимание.

12
задан 28 June 2012 в 00:09
6 ответов

Разве VPN не подходит больше? OpenVPN очень просто настроить. Вот пример конфигурации и несколько ссылок, которые помогут вам в процессе создания сертификата:

apt-get install openvpn
mkdir /etc/openvpn/easy-rsa
mkdir -p /etc/openvpn/ccd/client_server
touch /etc/openvpn/ipp.txt
cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca 
./build-dh
./build-key-server server
cd /etc/openvpn/easy-rsa/keys
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt -certfile ca.crt

Затем создайте новый файл /etc/openvpn/client_server.conf и вставьте в него следующее, изменив SERVER_IP_ADDRESS в зависимости от ситуации

local SERVER_IP_ADDRESS
port 8443
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
pkcs12 /etc/openvpn/easy-rsa/keys/server.p12
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ifconfig-pool-persist /etc/openvpn/ipp.txt
server 192.168.100.0 255.255.255.0
client-config-dir /etc/openvpn/ccd/client_server
ccd-exclusive
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
reneg-sec 0

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

./build-key-pkcs12 user1@domain.com
echo "ifconfig-push 192.168.100.2 255.255.255.0" > /etc/openvpn/ccd/client_server/user1@domain.com

IP-адрес ДОЛЖЕН подходить для подсети / 30 (см. http://www.subnet-calculator.com/cidr.php), так как для каждого соединения доступно только 2 адреса (сервер и клиент). Итак, ваш следующий доступный IP-адрес клиента будет 192.168.100.6 и т. Д.

Теперь у вас есть статические IP-адреса для каждого подключающегося пользователя.

Затем укажите user1@domain.com.p12 конечному пользователю и используйте следующий файл конфигурации

client
dev tun
proto udp
remote SERVER_IP_ADDRESS 8443
pkcs12 user1@domain.com.p12
resolv-retry infinite
nobind
ns-cert-type server
comp-lzo
verb 3
reneg-sec 0
4
ответ дан 2 December 2019 в 21:37

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

% sudo netstat -tlpn | grep 'sshd: mgorven@'
tcp        0      0 127.0.0.1:22220         0.0.0.0:*               LISTEN      5293/sshd: mgorven@
tcp        0      0 127.0.0.1:5120          0.0.0.0:*               LISTEN      5293/sshd: mgorven@
3
ответ дан 2 December 2019 в 21:37

Вы можете изменить временной диапазон портов ( / proc / sys / net / ipv4 / ip_local_port_range для Linux), а затем использовать статически выделенные порты за пределами этого диапазона.

3
ответ дан 2 December 2019 в 21:37

У вас должна быть возможность извлечь соответствующую информацию из вывода:

lsof -i tcp

Запуск от имени пользователя root.

0
ответ дан 2 December 2019 в 21:37

Я хочу такую ​​же настройку, как ты, Я увеличил уровень журнала SSH-сервера до DEBUG, и он показал в журналах, какой был локальный порт клиента

, например:

команда клиента: ssh -N -R0: 127.0.0.1 : 5522 (скрытый) журнал:

Jun 30 11:28:59 debsid sshd[27577]: debug1: Local forwarding listening on 127.0.0.1 port 35391

там вы видите номер порта

2
ответ дан 2 December 2019 в 21:37

Запустите этот скрипт на сервере:

sudo lsof -i -n | grep "sshd" | grep "(LISTEN)" | awk '{print $2}' | while read line; do sudo lsof -i -n | egrep $line | sed 3~3d | sed 's/.*->//' | sed 's/:......*(ESTABLISHED)//' | sed 's/.*://' | sed 's/(.*//' | sed 'N;s/\n/:/' 2>&1 ;done

Вам могут понадобиться или не понадобиться эти два скрипта. Удалить, если нет.

PS - Это модифицированная версия решения, которую я нашел в другом месте некоторое время назад. Я думаю, что она могла прийти из StackOverflow, но не могу найти оригинальную ссылку.

0
ответ дан 2 December 2019 в 21:37

Теги

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