Настройка L2TP / IPsec на Mac OS X
пошаговая инструкция с картинками
В этой инструкции приводится пример пошаговой настройки VPN-соединения по протоколу L2TP через IPsec для компьютеров, работающих под управлением операционных систем семейства Mac OS. В качестве примера мы продемонстрируем настройку VPN для операционной системе Mac OS X 10.5 Leopard.
Для того, что бы осуществить правильную настройку VPN-соединения по протоколу L2TP на Mac OS Вам понадобится:
- компьютер с установленной на нем операционной системой Mac OS;
- логин и пароль;
- адрес сервера, к которому нужно подключиться.
Ищите VPN провайдера? Мы поможем с выбором!
Посмотрите наш рейтинг VPN сервисов с 5-ю лучшими предложениями на рынке.
Если все условия, перечисленные выше, Вы выполнили, то в этом случае можно приступать к настройке VPN-соединения.
1. Первое, что Вам необходимо сделать, это открыть меню «Apple», затем перейти в меню «System Preferences» («Системные настройки»), где выбрать пункт «Network» («Сеть»). Если вдруг окажется, что у Вас нет прав настраивать сеть, то в этом случае нужно кликнуть по иконке замка и ввести имя и пароль администратора компьютера. Затем в меню «Network» («Сеть») слева внизу следует нажать знак плюса, после чего на экране откроется диалоговое окно для создания подключения, где Вы должны выбрать пункт «VPN»
2. В следующем окне выбираете следующие параметры:
- в строке «Interface» выбираете «VPN»;
- в строке «VPN Type» («Тип VPN») выбираете «L2TP over IPSec» («L2TP через IPSec»);
- строке «Service Name» («Имя службы») присваиваете имя создаваемому подключению.
После того, как параметры выбраны, нажимаете кнопку «Create» («Создать»)
3. Теперь, когда подключение VPN Вы создали, Вам необходимо его правильно настроить, для чего слева выбираете только что созданное VPN- подключение и в меню справа кликаете по параметру «Configuration» («Конфигурация»). В появившемся списке Вы должны выбрать «Add Configuration» («Добавить конфигурацию»)
4. После того, как Вы выбрали строку «Add Configuration» («Добавить конфигурацию»), Вам нужно ввести имя конфигурации, которое можно выбрать произвольное. В строке «Server Address» («Адрес сервера») вводите адрес сервера, к которому будет осуществляться подключение, в строке «Account Name» («Имя учетной записи») вводите свой логин на сервере. Все эти данные вы можете получить у своего VPN провайдера.
5. Затем нужно нажать кнопку «Authentication Settings» («Настройки аутентификации») и в новом окне задать пароль, а также при необходимости группу и шифрование трафика
6. После того, как ввод параметров завершен, нужно зайти на закладку «Advanced» («Параметры»), где следует поставить «галочку» напротив строки «Send all traffic over VPN connection» («Отправлять весь трафик через VPN») и нажать кнопку «Ok»
На этом настройка VPN-соединения завершена, Вам осталось нажать применить изменения, нажав «Apply («Применить»)», после чего можно нажимать кнопку «Connection» («Подключиться»).
Источник
IPSec VPN для OS X и iOS. Без боли
VPN (англ. Virtual Private Network — виртуальная частная сеть) — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет).
© Wikipedia
VPN используется для удаленного подключения к рабочему месту, для защиты данных, для обхода фильтров и блокировок, для выдачи себя за гражданина другой страны и вообще — штука незаменимая. Практически повсеместно в качестве простого средства для организации пользовательского VPN используется всем известный OpenVPN, который использовал и я. Ровно до тех пор, пока у меня не появился Macbook и OS X в придачу. Из-за того, что подход Apple к конфигурации DNS сильно отличается от подхода других *nix-систем, проброс DNS через VPN нормально не работал.
После некоторых исследований у меня получилось два варианта:
— Использование DNS «мимо» VPN, что сильно небезопасно, но решает проблему.
— Использование нативных для OS X VPN-протоколов: PPTP и семейства IPSec.
Разумеется, я выбрал второе и разумеется — IPSec, а не устаревший PPTP.
Настройка Linux ( в моем случае — Arch Linux )
- Открыть Настройки → Сеть
- Нажать (+) и выбрать VPN/Cisco IPSec
- Заполнить основную информацию ( адрес, имя пользователя и пароль )
- Выбрать «Настройки аутентификации» и указать группу и PSK ( из файла /etc/racoon/psk.key )
- Подключиться
OS X и IPSec
IPSec это не один протокол, а набор протоколов и стандартов, каждый из которых имеет кучу вариантов и опций. OS X поддерживает три вида IPSec VPN:
— IPSec/L2TP
— IKEv2
— Cisco VPN
Первый вариант избыточен — какой смысл пробрасывать ethernet-пакеты для пользовательского VPN?
Второй — требует сертификатов и сильно сложной настройки на стороне клиента, что тоже нехорошо.
Остается третий, который называется «Cisco», а на самом деле — XAuth+PSK. Его и будем использовать.
Препарация OS X
После некоторых неудачных попыток настроить VPN на OS X, я полез изучать систему на предмет того, как же именно там работает VPN.
Недолгий поиск дал мне файлик /private/etc/racoon/racoon.conf, в котором была строчка include «/var/run/racoon/*.conf»;.
После этого все стало понятно: при нажатии кнопки OS X генерирует конфиг для racoon и кладет его в /var/run/racoon/, после окончания соединения — удаляет. Осталось только получить конфиг, что я и сделал, запустив скрипт перед соединением.
Внутри я нашел именно ту информацию, которой мне не хватало для настройки сервера: IPSec proposals. Это списки поддерживаемых клиентом ( и сервером ) режимов аутентификации, шифрования и подписи, при несовпадении которых соединение не может быть установлено.
Итоговый proposal для OS X 10.11 и iOS 9.3 получился таким:
encryption_algorithm aes 256;
hash_algorithm sha256;
authentication_method xauth_psk_server;
dh_group 14;
Выбор VDS и настройка VPN
Для VPN-сервера я выбрал VDS от OVH, поскольку они дают полноценную виртуализацию с возможностью ставить любое ядро с любыми модулями. Это очень важно, поскольку ipsec работает на уровне ядра, а не пользователя, как OpenVPN.
Режим «Cisco VPN» (XAuth + PSK) предполагает двухэтапную аутентификацию:
— Используя имя группы и PSK для нее ( этап 1 )
— Используя имя пользователя и пароль ( этап 2 )
Настройка racoon
racoon — демон, который занимается управлением ключами ( IKE ). Именно он дает ядру разрешение на провешивание туннеля после того, как аутентифицирует клиента и согласует все детали протокола ( aka proposal ). racoon входит в стандартный пакет ipsec-tools и есть практически в любом дистрибутиве Linux «из коробки».
Используя случайные 64 бита группы и 512 бит ключа, я получаю достаточно вариантов, чтоб сделать перебор бессмысленным.
Настройка Linux
— Необходимо разрешить маршрутизацию: sysctl net.ipv4.ip_forward=1
— Необходимо разрешить протокол ESP и входящие соединения на порты 500/udp и 4500/udp: iptables -t filter -I INPUT -p esp -j ACCEPT; iptables -t filter -I INPUT -p udp —dport 500 -j ACCEPT; iptables -t filter -I INPUT -p udp —dport 4500 -j ACCEPT
— Необходимо включить NAT для нашей сети: iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
— Необходимо создать группу и создать/добавить туда пользователей: groupadd vpn и useradd -G vpn vpn_user
— Необходимо запустить racoon: racoon -vF
Настройка OS X
Настройки → Сеть
Выбрать (+) → VPN → Cisco IPSec → придумать название
Выбрать соединение → ввести адрес сервера, имя пользователя и пароль
Выбрать «Настройки аутентификации» → ввести имя группы и ключ ( именно в таком порядке )
Настройка iOS
Настройки → Основные → VPN → Добавить конфигурацию VPN.
Заполнить форму по аналогии, подключиться.
Источник
Question: Q: L2TP/IPSec VPN doesn’t do NAT-T?
I’ve made an L2TP/IPSec tunnel using System Preferences->Network->VPN on a 10.6.8 client.
When a NAT isn’t involved, this tunnel works. When a NAT is involved, it doesn’t work.
If I’m interpreting Wireshark correctly, it appears that the Mac negotiates that it _could_ use NAT-T with the other end. But whne push comes to shove, it doesn’t actually use NAT-T protocols. The Mac side emits ESP/IP packets (which aren’t NAT-friendly), when it really should be encapsulating ESP in port 4500/UDP. Doh!
Digging a little deeper, racoon appears to be the daemon that should do the NAT-T dance. The (no-longer-ships-with-Snow Leopard) man page for racoon.conf, at:
indicates that nat_traversal is NOT the default, but there’s an option «nat_traversal = force» that looks like it’d be the right option to put in racoon.conf. The problem is that it’s difficult to put the directive in the right racoon.conf. There’s an /etc/racoon/racoon.conf, but what the GUI does is generate a dynamic racoon.conf in /var/run/racoon/ which /etc/racoon/racoon.conf is configured to source.
1) Is there a sane way to tweak what gets written to the dynamic racoon.conf? Some plist to edit, perhaps?
2) Is this any better with Lion? Why on earth isn’t NAT-T the default?
3) Anyone know if OpenVPN, SSTP, etc. will be VPN options in the future? (For assorted reasons, I need to avoid 3rd party VPN products, even though they’d almost certainly be less of a pain than IPSec.)
Posted on Dec 3, 2011 2:16 PM
Helpful answers
Turns out the other end didn’t have NAT-T enabled, contrary to what they were telling me and what I could observe from my end. Once NAT-T was enabled at their end, it started working.
Still, I figured out a way to wedge options into the dynamic racoon.conf — good to know.
Dec 5, 2011 6:18 PM
There’s more to the conversation
Loading page content
Page content loaded
If PPTP is an option, use it instead. It’s more reliable than L2TP.
Dec 3, 2011 4:01 PM
PPTP isn’t an option, unfortunately. It’s not considered secure enough by the folks who run the VPN server end of things.
I managed to figure out what part of the GUI plumbing is responsible for the /var/run/racoon/ configuration. It comes from the /System/Library/Extensions/L2TP.ppp/Contents/MacOS/L2TP executable. It does NOT come from /usr/sbin/vpnd (though they share enough code for things to be confusing).
There’s no obvious configuration file that lets me get at the options it sets. But, in a stroke of luck, one of the racoon.conf options baked into the executable is a) long and b) unnecessary. The «situation identity_only» directive is pointless if I believe the man page. So, I mv’ed the original L2TP executable asked and used a hex editor to replace «situation identity_only» with «nat_traversal force» (using approrpriate excess padding so everything stays the same size).
Good news: I can get the «nat_traversal force» directive in the dynamic racoon.conf. I didn’t break anything by hacking the L2TP binary.
Bad news: Forcing NAT-T with that directive doesn’t appear to work. Even with that directive in place, racoon still tries to do ESP/IP even when it shouldn’t/can’t.
Another thing I explored was replacing the old racoon with a more modern racoon, but modern racoon doesn’t support the keychain integration AFAICT.
Источник
Изменение параметров подключений VPN типа «L2TP через IPSec» на Mac
Установите настройки VPN, такие как управление отключением VPN и включение подробного протокола подключения для сбора более подробной журнальной информации о сеансе VPN.
Настройки VPN можно задать только для подключения VPN типа «L2TP через IPSec». (Настройки других типов подключений VPN задаются сервером VPN при установлении подключения VPN.)
На Mac выберите меню Apple
> «Системные настройки», затем нажмите «Сеть».
Выберите службу VPN в списке слева.
Если службы VPN нет в списке, нажмите кнопку «Добавить» под списком, нажмите всплывающее меню «Интерфейс», выберите «VPN», нажмите всплывающее меню «Тип VPN» и выберите тип VPN. Введите имя для службы и нажмите «ОК».
Введите адрес сервера, имя учетной записи и параметры аутентификации, которые Вы получили от своего сетевого администратора или интернет-провайдера.
Нажмите «Дополнения», нажмите «Параметры», затем выберите необходимые параметры.
Отключать при переключении учетной записи пользователя. При смене пользователя будет завершаться сеанс VPN.
Отключать при выходе пользователя из системы. При выходе пользователя будет завершаться сеанс VPN.
Отправить весь трафик через VPN. Все данные будут передаваться через подключение VPN, даже если используется другая сетевая служба, например Wi-Fi или Ethernet.
Подробный протокол подключения. В журнал будет записываться более подробная информация о сеансе VPN. Эти сведения могут быть использованы при устранении неполадок, связанных с подключением VPN.
Источник
L2TP over IPSec and NAT-T
hmolina
Registered
We want upgrade to Tiger, but before do it, we would like to know several things about the VPN implementation:
Is the IPSec implementation in Tiger NAT-T compliant? And which ones of the NAT-T proposal complies?
Is now possible configure VPNs using L2TP over IPSec and X509 certificates using the graphical interface?
Thanks in advance for your comments.
letoams
Registered
After spending a few days on this I found out that:
— When using X509 certs in «user authentication», Tiger will do PSK instead of RSA
— I cannot find a way to import a valid certificate (in pkcs11/pkcs7/pem.crt) format so that the certificate becomes avalable for «machine authentication» and «Certificiate». In keychain the cert and the CA cert show up as valid. I tried importing into login, system, and X509Certificates. The root CA is in X509Anchors.
So as far as I can see, Tiger adds a few buttons to the VPN section, but they’re broken, or require special X509 options that no one including google knows about.
Registered
Okay, it’s been a while, and I cannot find if Apple has dealt with the RFC 3947 Nat traversal
draft 8 thingee yet. My more or less uptodate tiger machines (fully patched as of the
first of the year) *still* send «draft-ietf-ipsec-nat-t-ike» as vendor ID string, rather than
the ratified RFC 3947 string.
Does anyone know if Apple is ever going to fix this? I should very much like to get
my powerbook users off their ssh-tunnels and onto the vpn, so the XP users would get
off their backs
Registered
Is now possible configure VPNs using L2TP over IPSec and X509 certificates using the graphical interface?
Thanks in advance for your comments.
Again, if you are staying all OS-X, probably. Otherwise, you will have major trouble.
It would be really nice if Apple would address this.
Perhaps they have, but I can’t find it. There is a patch for OpenSWAN to
work around the borked Apple nat-t implementation. I don’t think it’ll behave
with x.509 though. PSK might work.
I am using a vpn server based on the OpenSWAN project. Apple’s racoon implementatio
seems to be based on the now-obsolete KAME project. Now that the racoon code
base is being handled by the ipsec-tools project, perhaps they will update.
BTW, I don’t have any trouble with all other germane vpn clients, including the
one from Redmond.
Since I have no idea what vpn server you are using, I can’t really say much.
However, *if* you are using OpenSWAN, then there is hope. The ipsec2.4.5rc
incorporates Peter Van der Beken’s patch to allow nat-t connections from
Apple’s borked client.
Since I am running stable, I have to wait. Maybe when 2.4.5 ships stable, this
might all resolve out. But the better answer would be for Apple to ship a client
that was rfc compliant. Not draft compliant.
Источник