Цей невеликий посібник розповідає, як надсилати UDP-трафік через SSH, використовуючи інструменти, стандартні (ssh, nc, mkfifo), для більшості UNIX-подібних операційних систем.
Виконання тунелювання UDP через з'єднання SSH
Крок за кроком Відкрийте передній порт TCP зі своїм SSH-з'єднанням
На локальній машині (локальній) підключіться до віддаленої машини (сервера) за допомогою SSH з додатковою опцією -L, щоб SSH з TCP-портом вперед:
local# ssh -L 6667:localhost:6667 server.foo.com
Це дозволить TCP-з'єднанням на номер порту 6667 вашої локальної машини пересилати на номер порту 6667 на сервері server.foo.com через захищений канал. Встановіть TCP на UDP вперед на сервері
На сервері ми відкриваємо слухач на порту 6667 TCP, який буде пересилати дані до порту 53 UDP зазначеного IP. Якщо ви хочете переадресувати DNS, як я, ви можете взяти IP першого сервера імен, який ви знайдете в /etc/resolv.conf. Але для початку нам потрібно створити фіфо. Фіфо необхідний для двостороннього зв'язку між двома каналами. Проста оболонка передає лише стандартний вхід лівого процесу «стандартний вихід до правого процесу».
server# mkfifo /tmp/fifo
server# nc -l -p 6667 < /tmp/fifo | nc -u 192.168.1.1 53 > /tmp/fifo
Це дозволить пересилати трафік TCP на порт 6667 сервера до трафіку UDP на порту 53 192.168.1.1 і відповіді повертатися. Налаштуйте UDP на TCP вперед на вашому комп'ютері
Тепер нам потрібно зробити протилежне тому, що було зроблено вгорі на локальній машині. Вам потрібен приватний доступ, щоб зв’язати порт UDP 53.
local# mkfifo /tmp/fifo
local# sudo nc -l -u -p 53 < /tmp/fifo | nc localhost 6667 > /tmp/fifo
Це дозволить передати UDP-трафік на порту 53 локальної машини на TCP-трафік на порту локальної машини 6667. Насолоджуйтесь локальним сервером DNS :)
Як ви, напевно, вже здогадалися, коли запит DNS буде виконуватися на локальній машині, наприклад, на локальному порту UDP 53, він буде пересланий на локальний порт TCP 6667, потім на порт TCP-порту 6667 сервера, потім на DNS-сервер сервера , Порт UDP 53 від 192.168.1.1. Щоб користуватися послугами DNS на локальній машині, поставте наступний рядок як сервер імен у своєму /etc/resolv.conf:
nameserver 127.0.0.1