Изменения

Виртуальная частная сеть - PPP поверх SSH

3358 байтов добавлено, 12:37, 30 августа 2009
Новая: Когда VPN-доступа куда-нибудь нет, или когда наоборот — он есть, но работает так, что пользоват...
Когда [[rupedia:VPN|VPN]]-доступа куда-нибудь нет, или когда наоборот — он есть, но работает так, что пользоваться им не хочется, а VPN иметь хочется — можно воспользоваься протоколом «точка-точка» ([[rupedia:PPP_(сетевой_протокол)|PPP]] — Point-to-Point Protocol), собственно и предназначенным для создания канала между двумя компьютерами, а в сочетании с IP Forwarding — и подсетями, запущенным поверх [[rupedia:SSH|SSH]]-канала.

== Установка соединения ==

Необходимые условия для установки шифрованного канала через PPP поверх SSH:

* Очевидно, необходима Linux/UNIX система. :-) на самом деле, можно это сделать и под виндами, но я эту возможность не рассматриваю.
* Иметь возможность соединиться по SSH с машиной, находящейся в целевой подсети. Если обе машины находятся за NAT’ом, можно пробросить ssh через третью машину, имеющую публичный IP, используя SSH Remote Port Forwarding (см. [http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1 man ssh], опция -R).
* Установить [http://ppp.samba.org/ pppd].
** <code>apt-get install pppd</code>
* Запустить соединение PPP через SSH:
** <code>sudo pppd proxyarp nomppe updetach noauth pty "ssh USER@SERVER [-p PORT] sudo pppd proxyarp nodetach nomppe notty noauth" LOCAL_IP:PTP_IP</code>
** USER — имя пользователя ssh.
** PORT — порт ssh (необязательно, обычно 22).
** SERVER — сервер ssh.
** LOCAL_IP — локальный IP для сетевого интерфейса PPP.
** PTP_IP — удалённый IP для протокола PPP (point-to-point), его получит PPP-интерфейс на машине, с которой соединяемся.
* Включить [http://tldp.org/HOWTO/IP-Masquerade-HOWTO/ IP Forwarding] на обеих машинах — точнее, на машине, от которой требуется проброс всей подсети. То есть если вы хотите ходить из дома в рабочую сеть, на рабочей машине IP Forwarding включать нужно, а на домашней — не обязательно.
** <code>echo 1 > /proc/sys/net/ipv4/ip_forward</code>
** <code>echo 1 > /proc/sys/net/ipv4/conf/ppp0/forwarding</code>
* Включить [[wikipedia:Proxy ARP|Proxy ARP]] на обеих машинах на интерфейсе PPP (вероятно, ppp0), и на той машине, от которой требуется проброс подсети, на всех нужных сетевых интерфейсах:
** <code>echo 1 > /proc/sys/net/ipv4/conf/ppp0/proxy_arp</code>
** <code>echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp</code>

[[Категория:Разработка]]