iPhone —как полноценный gprs/3g модем, используя VPN over SSH.

pgrishin 2 октября 2008 в 16:13 3,8k
Видимо по той причине, что Apple заинтересована в безлимитном интернете только на самом iPhone (а не на устройствах подключенных к iPhone), они построили ядро ОС не включив в него технологию DIVERT, которая позволяет использовать NAT подобный тому, который обычно стоит в маршрутизаторах для обеспечения интернетом «серых» сетей (те которые 192.168.0.0/24 например).

К счастью, используя стороннее ПО на iPhone можно запустить socks –сервер, но с ним не умеют работать куча программ.

Однако у нас есть возможность использовать на iPhone SSH и туннелирование трафика, что частично позволяет нам неполноценно и достаточно неудобно, но доставать нужные сервисы из интернета.

Но оказывается такого туннелирования достаточно, что бы, благодаря программе OpenVPN, установить связь с удаленным сервером, который умеет и маршрутизировать и NAT-ить.

Единственный нюанс: необходим удалённый сервер, который будет вашим маршрутизатором. Для этого нужен обычный сервер с реальным белым IP- адресом (динамический тоже можно использовать, например, с помощью dynDNS). Таким сервером может быть: домашний компьютер, сервер на работе, VPS и т.п.

Сначала нужно провести небольшую подготовительную работу:
  1. На iPhone должен быть установлен SSH
  2. На сервере и на компьютере устанавливаете OpenVPN [http://openvpn.net/]
  3. Настраиваете конфиги на компьютере и на сервере для OpenVPN. Простой случай настройки примерно такой:
    1. Генерируете секретный ключ:
      openvpn --genkey --secret static.key
      и копируете его в папку с конфигами на сервере и компьютере
    2. Настройка конфига на сервере:
      dev tap
      proto tcp-server
      ifconfig 192.168.20.13 255.255.255.0
      push "dhcp-option DNS 192.168.20.13"
      secret static.key
      comp-lzo
      keepalive 10 120
      verb 3
      log openvpn.log
    3. Настройка конфига на компьютере:
      dev tap
      proto tcp-client
      remote localhost
      ifconfig 192.168.20.11 255.255.255.0
      route-gateway 192.168.20.13
      redirect-gateway
      push "dhcp-option DNS 192.168.20.13"
      secret static.key
      comp-lzo
      verb 3
      route-method exe # это для windows лучше оставить
      route-delay 2 # а для linux и mac убрать
  4. На сервере должен быть запущен DNS- сервер, NAT
  5. Надо не забыть завернуть трафик из сети 192.168.20.0/24 в NAT
  6. Запускаете и оставляете запущенным серверную часть OpenVPN

Дальше собственно установка соединения:
  1. Убедитесь что iPhone находится в интернете, а то мало ли 
  2. Создаете туннель от вашего компьютера до удаленного сервера через iPhone: L1194 server.ru:1194 | root@alpine
  3. Запускаете на компьютере OpenVPN: openvpn client.ovpn

И если все получилось, то у вас на компьютере уже есть полноценный интернет. (хотя не думаю что получится с первой попытки ;) )

В принципе, для удобства, пункты 2 и 3 можно поместить в 1 ярлык.
Проголосовать:
+29
Сохранить: