Назад | Перейти на главную страницу

IPsec Xauth RSA - Debian 7 и Android 4.4 VPN (всегда включен) и Mac OS X 10.9.2 VPN (по запросу)

Я успешно установил IPSec Xauth RSA, используя эту инструкцию: http://jsharkey.org/blog/2012/09/22/deploying-a-pure-ipsec-pki-vpn-server-for-android-devices/

Вкратце:

apt-get install ipsec-tools racoon
chmod 700 /etc/racoon/certs
cd /etc/racoon/certs
openssl req -new -x509 -extensions v3_ca -out myca.crt -keyout myca.key -days 3650
openssl req -new -keyout myserver.key -out myserver.csr -days 3650
openssl x509 -req -in myserver.csr -CA myca.crt -CAkey myca.key -CAcreateserial -out myserver.crt
chmod 600 myserver.key
openssl rsa -in myserver.key -out myserver.key
openssl req -new -keyout myphone.key -out myphone.csr -days 3650
openssl x509 -req -in myphone.csr -CA myca.crt -CAkey myca.key -CAcreateserial -out myphone.crt
openssl pkcs12 -export -in myphone.crt -inkey myphone.key -certfile myca.crt -name myphone -out myphone.p12

а затем в racoon.conf:

path certificate "/etc/racoon/certs";

timer {
    # NOTE: varies between carriers
    natt_keepalive 45 sec;
}

listen {
    isakmp 106.187.34.245[500];
    isakmp_natt 106.187.34.245[4500];
}

remote anonymous {
    exchange_mode aggressive,main;
    my_identifier asn1dn;

    certificate_type x509 "myserver.crt" "myserver.key";
    ca_type x509 "myca.crt";
    peers_certfile x509 "myphone.crt";

    passive on;
    proposal_check strict;
    generate_policy on;
    nat_traversal force;

    proposal {
        encryption_algorithm aes256;
        hash_algorithm sha1;
        authentication_method xauth_rsa_server;
        dh_group modp1024;
    }
}

sainfo anonymous {
    encryption_algorithm aes256;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}

log info;

mode_cfg {
    auth_source system;
    conf_source local;
    accounting system;
    network4 10.44.0.0;
    netmask4 255.255.255.255;
}

Android подключен к VPN со следующими настройками:

Type: IPSec Xauth RSA
IPSec user certificate: myphone
IPSec CA certificate: myphone
IPSec server certificate: (received from server)

И он успешно подключается. Я могу просматривать сайты (некоторые из них не загружаются, а на некоторых у меня возникают задержки, но пока это нормально), использовать другие приложения, требующие подключения, чтобы оно работало.

К сожалению, я не могу понять, как подключить мой Macbook к этому VPN.

Я импортировал сертификаты в системную связку ключей, создал Cisco IPSec VPN, выбрал сертификат myphone в качестве сертификата машины, установил пользователя / pwd. После нажатия кнопки «Подключить» отображается сообщение «Не удалось проверить сертификат сервера».

В системном журнале на сервере:

Apr 19 19:12:50 playground racoon: INFO: Adding remote and local NAT-D payloads.
Apr 19 19:12:51 playground racoon: INFO: NAT-T: ports changed to: 2.30.143.181[4501]<->109.74.205.143[4500]
Apr 19 19:12:51 playground racoon: INFO: KA found: 109.74.205.143[4500]->2.30.143.181[4501] (in_use=7)
Apr 19 19:12:51 playground racoon: INFO: Sending Xauth request
Apr 19 19:12:51 playground racoon: [2.30.143.181] INFO: received INITIAL-CONTACT
Apr 19 19:12:51 playground racoon: INFO: ISAKMP-SA established 109.74.205.143[4500]-2.30.143.181[4501] spi:72cc05a48011e3e6:9b2eef1f1823779b
Apr 19 19:12:51 playground racoon: ERROR: ignore information because the message is too short - 76 byte(s).

Если я изменю сертификат сервера IPSec на устройстве Android, он отобразит аналогичное сообщение об ошибке (слишком короткое), поэтому я предполагаю, что мне нужно либо включить сертификат сервера в настройки Android, либо установить аналогичные параметры в настройках Mac OS VPN (возможно, в config файлы?).

В качестве альтернативы, я буду счастлив, если вы дадите мне знать о каком-либо рабочем решении для настройки сервера Debian VPN, который поддерживает соединение Android Always-On VPN и Mac OS X / iPhone по требованию.