VPN для iPhone

от автора

Организация VPN сервера для использования с iOS устройствами

Прочитав статью Теплый и ламповый интернет озаботился проблемой поднятия VPN сервера, которым можно пользоваться с iOS устройств.

Для использования OpenVPN нужен Jailbreak. Этот вариант мной не рассматривался.

iOS поддерживает L2TP, PPTP, Cisco IPSec.

Cisco IPSec работает с соответствующим оборудованием. PPTP иногда режется сотовыми операторами. Исходя из этого был выбран L2TP.

У меня уже был VQ7 сервер от Hetzner с установленной Ubuntu 12.04 32 bit, поэтому все эксперименты проводились на данном сервере.

Установка IPSec

Устанавливается OpenSwan

sudo aptitude install openswan 

При установке будет предложено создать сертификат x509. Это не обязательно, так как доступ будет использоваться по ключевой фразе.

Настройка IPSec:

sudo nano /etc/ipsec.conf 

Конфигурация выглядит следующим образом:

version 2.0 config setup     nat_traversal=yes # Позволяет подключаться клиентам расположенным за NAT     virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12     oe=off     protostack=netkey  conn L2TP-PSK-NAT     rightsubnet=vhost:%priv     also=L2TP-PSK-noNAT  conn L2TP-PSK-noNAT     authby=secret     pfs=no     auto=add     keyingtries=3     rekey=no     ikelifetime=8h     keylife=1h     type=transport     left=YOUR.SERVER.IP.ADDRESS     leftprotoport=17/1701     right=%any     rightprotoport=17/%any 

Конфигурируем доступ к серверу по IPSec:

sudo nano /etc/ipsec.secrets 

Файл должен содержать одну строчку:

YOUR.SERVER.IP.ADDRESS   %any:  PSK "YourSharedSecret" 

Ссылка на pre-shared ключ должна быть удалена, иначе IPSec не сможет инициализироваться.
YOUR.SERVER.IP.ADDRESS в обоих файлах — IP адрес вашего сервера.
%any в /etc/ipsec.secrets определяет с каких адресов может быть доступ. В данном случае разрешается доступ со всех адресов.
YourSharedSecret — ключ, который будет использоваться для доступа по IPSec.

Для того, чтобы IPSec нормально работал, делаются дополнительные настройки:

sudo nano /root/ipsec 

Содержимое:

iptables --table nat --append POSTROUTING --jump MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward  for each in /proc/sys/net/ipv4/conf/* do     echo 0 > $each/accept_redirects     echo 0 > $each/send_redirects done /etc/init.d/ipsec restart 

Первые две строчки на самом деле используются для L2TP

Делаем скрипт исполняемым:

sudo chmod +x /root/ipsec 

Добавляем его в rc.local

Установка L2TP:

Устанавливается xl2tpd:

sudo aptitude install xl2tpd 

Настройка L2TP:

sudo nano /etc/xl2tpd/xl2tpd.conf 

Содержимое:

[global] ipsec saref = yes  [lns default] ip range = 10.1.2.2-10.1.2.255 local ip = 10.1.2.1 refuse chap = yes refuse pap = yes require authentication = yes # во время теста можно отключить, тогда все кто пройдет верификация ключом IPSec будут иметь доступ ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes 

Дополнительные настройки:

sudo nano /etc/ppp/options.xl2tpd 

Содержимое:

require-mschap-v2 ms-dns 8.8.8.8 # Публичный DNS Google ms-dns 8.8.4.4 # Публичный DNS Google asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd # Имя сервиса, используется в настройках proxyarp lcp-echo-interval 30 lcp-echo-failure 4 

Добавление пользователей:

sudo nano /etc/ppp/chap-secrets 

Формат файла

# user      server      password            ip test        l2tpd       testpassword        * 

test — имя пользователя
l2tpd — имя сервиса из /etc/ppp/options.xl2tpd
testpassword — пароль для пользователя
* — диапазон разрешенных адресов для логина данного пользователя (формат 10.254.253.128/25)

После этого рестарт IPSec и L2TPD должны активировать всю систему:

sudo /etc/init.d/ipsec restart sudo /etc/init.d/xl2tpd restart 

Настройка iPhone:

Настройки > Основные > VPN > Добавить конфигурацию VPN.

Описание — Имя подключения
Сервер — IP адрес вашего сервера
Учетная запись — это user из файла /etc/ppp/chap-secrets
Пароль password из /etc/ppp/chap-secrets
Общий ключYourSharedSecret из /etc/ipsec.secrets

После этого в меню Настройки и в меню Настройки > Основные > VPN появляется возможность включить VPN. Если все пройдет успешно, то появится соответствующий значок.

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

Настройка подключения в Windows 7

В центре управления сетями и общим доступом, установка нового подключения к сети создание нового подключения:

Создаете новое VPN подключение:

В поле “интернет адрес” вводите IP вашего сервера. Не подключаетесь сразу.

После этого заходите в свойства нового подключения и в настройках указываете использование L2TP, вводите ключ YourSharedSecret из /etc/ipsec.secrets

При подключении указываете логин и пароль из /etc/ppp/chap-secrets.

При написании статьи были использованы материалы ссылка1, ссылка2

ссылка на оригинал статьи http://habrahabr.ru/post/155929/