Сценариев необходимости такого туннеля достаточно много: начиная с работы в публичных не доверенных сетях, где необходимо беспокоиться о шифровании трафика, и заканчивая доступом в локальную сеть в ДЦ. Наличие полноценного впнсервера не всегда оправдано и необходимо.
На сервере ssh необходимо разрешить port forwarding и tunnelling:
AllowTcpForwarding yes PermitTunnel yes
Можно это сделать для определенного пользователя или группы:
AllowTcpForwarding yes PermitTunnel yes . . . Match user max AllowTcpForwarding yes PermitTunnel yes . . . Match group max AllowTcpForwarding yes PermitTunnel yes
То есть для всех запрещено, а вот состоящим в группе max и пользователю max - можно :)
Теперь настраиваю локальную машинку:
# ssh -f -w any sshvpn-ip true # ifconfig tun0 192.168.230.2 192.168.2300.1 netmask 255.255.255.252
Сделал туннель и назначил адреса.
Назначил адреса на сервере:
# ifconfig tun0 192.168.230.1 192.168.230.2 netmask 255.255.255.252
Не забываем включать форвардинг:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Включит нат:
# iptables -t nat -A POSTROUTING -s 192.168.230.0/24 -d 0/0 -o eth0 -j MASQUERADE
Возвращаюсь на локальную машину и настраиваю правила маршрутизации:
# ip route add 10.0.0.0/8 via 10.1.1.1 # ip route change default via 192.168.230.2 dev eth0
Здесь я оставил сеть 10.0.0.0/8, тк она является транспортной для нас и, если маршрут до неё будет неверен, то соединение оборвётся. После этого заменил default gateway и начал получать трафик по ssh-туннелю.
Комментарии (0)