Организация 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/
Добавить комментарий