Pull to refresh

Comments 43

Какая у вас iOS? Или вы изменили значок VPN в статусбаре? Вроде он был не такой…
UFO just landed and posted this here
Да, все правильно, у меня iOS6.
Всегда такой был, сколько помню его.
Спасибо.
а если сервер не имеет статического ip-адреса?
но, допустим, подключен один из сервисов dyndns?
По идее Вы можете прописать DNS адрес своего сервера во все места где это требуется (для сервера в /etc/ipsec.conf, /etc/ipsec.secrets и соответственно в настройках iOS или Win).
Сервер не должен быть за NAT, ipsec _очень_ плохо работает с NAT и вообще не работает через 2 NAT.

У меня есть аналогичная статья, но про racoon+xl2tpd libc6.org/page/l2tp-ipsec-server-howto

И ещё, VPN должна иметь сеть отличающуюся от локальной сети. Типа 10.178.59.0/24
UFO just landed and posted this here
Все работает корректно. Одновременно работали два подключения с телефона и компьютера. Оба были подключены к одному роутеру. Подключались под разными учетными записями, использовать одно и то же имя и пароль я не пробовал.
UFO just landed and posted this here
Нет, не наблюдалось. Из-за специфики iOS подключение к VPN постоянно разрывается, а на компьютере оно висит постоянно.

Через 3G сеть от Мегафона подключается тоже без проблем.
Жаль яблоки не хотят openvpn подписать(
UFO just landed and posted this here
Cisco IPSec реализуется на racoon или strongswan, хоть под Linux, хоть под BSD. При использовании чистого IPSec и авторизации по сертификатам можно создать профиль VPN с параметром On-Demand и прописать ресурсы, при обращении к которым VPN будет подниматься автоматически. Сервер надо настраивать с поддержкой NAT-T, тогда весь ESP трафик будет инкапсулироваться в UDP-пакеты на порт 4500.
UFO just landed and posted this here
Подтверждаю, завести «Cisco IPSec» можно едва ли не проще. Для затравки, конфиг racoon:

path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

listen {
	isakmp #{src_ip} [500];
	isakmp_natt #{src_ip} [4500];
}

remote anonymous {
	proposal_check obey;
	passive on;
	exchange_mode main,aggressive;
	my_identifier fqdn "#{host_fqdn}";
	mode_cfg on;
	verify_cert off;
	ike_frag on;
	generate_policy on;
	nat_traversal on;
	dpd_delay 20;
	proposal {
		encryption_algorithm aes;
		hash_algorithm sha1;
		authentication_method xauth_psk_server;
		dh_group 2;
	}
}

mode_cfg {
	conf_source local;

	auth_source system;
	save_passwd on;
	
	dns4 8.8.8.8;
	network4 10.0.0.1;
	pool_size 255;
}

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


Уберите main из exchange_mode main,aggressive;
Для xauth_psk в iOS поддерживается только aggressive mode.
Сэкономите одну итерацию IKEv1.
Не нужно, из-за этого снижается безопасность соединения.
Как она может снижаться, если main все равно не используется?
Видимо я чего-то недопонял, когда разбирался с Cisco IPSec. Попробую чуть позже посмотреть, сейчас особо нет времени разбираться.
Напрягает его постоянно включать а айфоне после разблокировки.
Чтобы избежать этого надо делать Cisco IPSec c авторизацией по сертификатам и генерить профиль в iPhone Configuration Tool c параметром On-Demand для всех сайтов.
А он будет включаться только при просмотре сайтов или при инициации иных приложений тоже? В данный момент у меня висит еще и VNC сервер. Сейчас я включаю VPN и после этого запускаю VNC клиент на телефоне и подключаюсь уже через VPN, шифруя соединение VNC (590x порты закрыты для и настроено так что к VNC серверу можно подключиться только из подсети 10.1.2.0/24). При включении On-Demand можно будет просто включать VNC клиент и VPN автоматически запустится?
Все зависит, как вы пропишите параметр On-demand. Если для всех IP, тогда абсолютно весь трафик с телефона будет ходить через VPN.
В вашем конкретном случае можно прописать On-demand для подсети 10.1.2.0/24, тогда все будет подключаться автоматически.
Не мой случай, как простого пользователя, к сожалению. :)
Maximus43, расскажи как заставить айфон авторизироваться по сертификату? Бьюсь головой об конфиг racoon уже который день, всё равно упорно продолжает спрашивать логин и пароль.
Это потому что кроме аутентификации по сертификату айфону нужна авторизация по имени и паролю (XAuth). Надо в конфиге racoon помимо остальных настроек прописать save_passwd on
Есть. И «save_passwd on», и пользователь в Configuration Utility записан. Внешне всё хорошо, но айфон упорно хочет имя пользователя и пароль каждый раз, когда поднимает VPN. Собственно, вот конфиг:

log debug;
path certificate "/etc/racoon/certs";
listen {
    isakmp ip.add.re.ss [500];
    isakmp_natt ip.add.re.ss [4500];
}

remote anonymous {
    lifetime time 24 hour;
    proposal_check obey;
    passive on;
    exchange_mode aggressive,main;
    my_identifier asn1dn;
    peers_identifier asn1dn;
    verify_identifier on;
    certificate_type x509 "server.crt" "server.key";
    ca_type x509 "ca.crt";
    mode_cfg on;
    verify_cert on;
    ike_frag on;
    generate_policy on;
    nat_traversal on;
    dpd_delay 20;
    proposal {
        encryption_algorithm aes;
        hash_algorithm sha1;
        authentication_method xauth_rsa_server;
        dh_group modp1024;
    }
}

mode_cfg {
    conf_source local;

    auth_source system;
    auth_throttle 3;
    save_passwd on;

    dns4 8.8.8.8;
    network4 10.9.8.1;
    netmask4 255.255.255.0;
    pool_size 128;
}

sainfo anonymous {
    pfs_group 2;
    lifetime time 3600 sec;
    encryption_algorithm aes;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}
Если айфон не увидел параметр save_passwd on во время первого подключения, то он больше его не проверяет и всегда запрашивает пароль, даже если конфиг сервера потом поменять. Помогает удаление профиля VPN на устройстве и создание нового.
После ввода соединение устанавливается? Тут стоит auth_source system, а параметра path pre_shared_key я не вижу. Работать не должно. Серверу надо знать, как проверять имя-пароль.
Да, после ввода соединение устанавливается, это без проблем вообще. Пересоздать подключение попробую позже, спасибо.

Что касается «auth_source system» — это значит, что надо использовать системных пользователей. Наличие пути для PSK не обязательно, если PSK не используется.
Все, я разглядел xauth_rsa_server. Я сходу не заметил.
Пристальное изучение лога айфона показало:

Oct 30 22:42:41 iPhone racoon[151] <Notice>: IPSec Extended Authentication Passed.
Oct 30 22:42:41 iPhone racoon[151] <Notice>: IPSec Network Configuration requested.
Oct 30 22:42:41 iPhone racoon[151] <Warning>: Ignored attribute APPLICATION_VERSION
Oct 30 22:42:41 iPhone racoon[151] <Warning>: Ignored short attribute UNITY_SAVE_PASSWD
Oct 30 22:42:41 iPhone racoon[151] <Notice>: IPSec Network Configuration established.
Oct 30 22:42:41 iPhone racoon[151] <Notice>: >>>>> phase change status = phase 1 established


Вот это вот «Ignored short attribute UNITY_SAVE_PASSWD» меня очень смущает. Для чистоты эксперимента даже перезагрузил айфон после удаления профиля. Что-то там нечисто.
Если честно, очень интересует на сколько хватает телефона при работе через VPN.(естественно при включенном пуше и т.д.)
Думается не на много меньше чем без него, но для себя я отметил такой плюс — при подключении по VPN и использовании кеширующего прокси сервера (например squid) использование интернета от сотового оператора становится приятнее в связи с заметно возросшей скоростью загрузки страниц. Интернет на прокси сервере гораздо быстрей 3G и т.п. что в свою очередь избавляет телефон от ожидания соединения с сайтами и ожидания загрузки различных ресурсов типа картинок, css, js (они подгружаются на прокси сервере и в телефон поступают на максимально возможной скорости и без задержек).
Особой разницы я не заметил. Я думаю что основное потребление энергии идет от 3G или Wi-Fi модуля, а дополнительные затраты на шифрование не особо должны быть заметны.
А какие провайдеры блокируют PPTP? Я ни разу не сталкивался. У меня PPTP до домашнего роутера поднимается. И Cisco IPSec до работы. Ни разу не испытывал проблем с неработоспособностью ни того ни другого.
Когда разбирался, видел относительно много постов о том, что сотовые операторы могут резать GRE пакеты нужные для PPTP. Сам лично с таким не сталкивался и решил, что лучше сразу настроить IPSec, чтобы не столкнуться с этой проблемой в командировке или отпуске.
UFO just landed and posted this here
Вы правы. В случае iOS порт, в настройках изменить нельзя. Поэтому да, если зарежут, то будет печально. Единственное решение, которое я вижу — это сменить телефон на Андроид)
Так-то оно все, конечно, круто, но ничего не получилось :-( Хостинг тот же, все по инструкции, а в итоге в логе подключения (стандартный клиент Mac OS X 10.8):

pppd[10746]: IPSec connection started
racoon[1193]: Connecting.
racoon[1193]: IPSec Phase1 started (Initiated by me).
racoon[1193]: IKE Packet: transmit success. (Initiator, Main-Mode message 1).
racoon[1193]: IKE Packet: transmit success. (Phase1 Retransmit).
--- last message repeated 2 times ---
pppd[10746]: IPSec connection failed


Что может быть неправильно?
А, все, разобрался по ссылке внизу. Прошу прощения.
Sign up to leave a comment.

Articles