воскресенье, 5 января 2025 г.

 Туннелирование при помощи ssh

Помимо socksv5 у ssh есть возможность создавать и сетевые туннели - и эта замечательная опция совершенно незаслуженно игнорируется, в тени от ssh -D/L/R.

Все просто - разрешаем туннели в sshdconfig на сервере sshd:

l

далее подключаемся к  этому серверу с опцией ssh -w 

root@client> ssh  -w 0 адрес_сервера 

получаем туннель, при проблеме с правами проще подключиться рутом для начала.

туннель не отображается в ifconfig, ибо по умолчанию в состоянии down. 

iconfig -a  его все равно отобразит

Поднимаем

ifconfig tun0 up

причем и на клиентской и на серверной части.

Далее все привычно для тех, кто раздавал интернет с машины или же владеет роутингом.

Назначаем адреса

root@client> ip a a dev tun0 192.16.1.1

root@server> ip a a dev tun0 192.16.1.2

 настраиваем роутинг для начала только для концов туннеля -

root@client> ip r a 192.16.1.2 dev tun0

root@server> ip r a 192.16.1.1 dev tun0

на сервере разрешаем перенаправление

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

и запускаем маскарад:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

на клиенте добавляем роутинг до сервера:

ip r a адрес_сервера via текущий_шлюз dev текущее_устройство

у меня это так  -  via 192.168.1.1 dev wlo1

удаляем умолчательный шлюз

ip r d  default via 192.168.1.1 dev wlo1

добавляем умолчательным маршрут через туннель:

ip r a default via 192.16.1.2 dev tun0


ну и как бы на этом все.

Комментариев нет:

Отправить комментарий