Ако някой от вас си е губил безуспешно времето за да подкара тази комбинация, може би статията ще му е полезна.
Но да знаете - писана е за непрофесионалисти от непрофесионалист, който ползва догадки и хипотези, та по-знаещите съм сигурен, че ще бъдат така любезни да напишат някой друг коментар със забележки и... закани :)
Както може би сте чували, openvpn използва асиметрично криптиране (казват му още шифроване), т.е. ползва двойка частен и публичен ключ с прилежащите им сертификати. За целта на нашето упражнение, ще ни трябват удостоверител (известен е още като CA, certificate authority), който ще подпише сертификатите на сървъра и клиента. Има много начини да се направи това, предполагам всеки си има любим, но за да е най-лесно ще ползвам директно микротик и по-точно ssh връзка. Разбира се всичко това може да се направи и през уеб интерфейса или windows -кото приложение... въпрос на вкус.
След като установим SSH връзка започваме:
'Влизаме' в категория сертификати |
[MyRouter@MikroTik] > certificate
|
Генериране на темплейти за сертификати |
[MyRouter@MikroTik] /certificate> add name=ca-template common-name=ca key-usage=key-cert-sign,crl-sign
[MyRouter@MikroTik] /certificate> add name=server-template common-name=server
[MyRouter@MikroTik] /certificate> add name=clinet1-template common-name=client1
|
Подписване на сертификати |
[MyRouter@MikroTik] /certificate> sign ca-template ca-crl-host=ВАШИЯТ_ДОМЕЙН_ИЛИ_ВЪНШНИЯТ_IP name=ca
[MyRouter@MikroTik] /certificate> sign server-template ca=ca name=server
[MyRouter@MikroTik] /certificate> sign client1_template ca=ca name=client1
|
И така генерирахме и подписахме сертификатите. Сега ще ги направим 'доверени' и ще направим експорт на клиентския сертификат.
Примерен код на bash |
[MyRouter@MikroTik] /certificate> set ca trusted=yes
[MyRouter@MikroTik] /certificate> set server trusted=yes
[MyRouter@MikroTik] /certificate> export-certificate ca
[MyRouter@MikroTik] /certificate> export-certificate client1 export-passphrase=НЯКАКВА_ПАРОЛА
|
проверяваме дали всичко е както трябва |
[MyRouter@MikroTik] /certificate> print
|
Конфигуриране на рутера:
Първо ще направим група адреси които ще обслужват VPN -а |
[MyRouter@MikroTik] /certificate> /ip pool add name=openvpn ranges=10.10.0.2-10.10.0.10
|
Това 10.10.0.0 – си е ваш избор, както и колко адреса ще заделите за да се свързват клиентите.
След това трябва да добавим нов профил който ще се ползва от VPN -а |
/ppp profile add name=ovpn local-address=10.10.0.1 remote-address=openvpn
|
Следва да си добавим име и парола |
/ppp secret add name="username" password="password" service=ovpn profile=ovpn
|
След това пускаме самия VPN |
[MyRouter@MikroTik] /certificate> /interface ovpn-server server set auth=sha1,md5 certificate=server cipher=blowfish128,aes128,aes192,aes256 default-pr
ofile=ovpn enabled=yes require-client-certificate=no
|
След това трябва да разрешим връзка към oт външния свят към рутера (в зависимост от конфигурацията на рутера, може да се наложи да се пренаредят правилата, за да сработят правилно):
Примерен код на bash |
[MyRouter@MikroTik] /ip firewall filter add action=accept chain=input comment="OpenVPN" disabled=no dst-port=1194 protocol=tcp
|
С това конфигурацията на сървъра е завършена.
Сега конфигурацията на телефона:
1. Изтегляме си приложение за OpenVPN (освен ако телефонът ви не го поддържа). Онова което е най-удобно според мен е: blinkt openvpn
След това трябва от рутера да свалите експортираните сертификати.
Ако използвате web интерфейс – намират се в раздел „Files“.
Качвате ги на телефона.
От приложението създавате нов профил.
След това от първия таб BASIC се правят следните настройки:
1. Спирате LZO компресията (поради някаква причина не се разбира с Mikrotik, вероятно е настойка).
2. Type – избирате User/PW Certificates От съответните бутончета Select избирате сертификатите и ключовете които качихте преди малко.
3. Пишете името и паролата които са въведени в профила на mikrotik
Втори таб ServerList – въвеждате адреса на mikrotik -а, и избирате TCP протокол (освен ако не разрешите и UDP протокол от Firewall -а на mirotic).
Трети таб – IP and DNS – това вече е според предпочитанията, може да се остави както си е.
Четвърти таб Routing – ако искате целия трафик на телефона да минава през mikrotik, отбелязвате съответните настройки.
Пети таб – Autentication/Encription. Важно! Махате отметката
Certificate Hostname Check
Шести таб – Advanced. Важно!
Най-долу щраквате върху Custom Options
В прозорчето пишете:
tls-cipher DEFAULT
И понеже това е щастливият ви ден, би трябвало всичко да сработи.
Успех!