EdgeRouter OpenVPN client – MikroTik OpenVPN server

В поста https://itservice-bg.net/mikrotik-openvpn/ конфигурирах три рутера MikroTik които се намират в три отдалечени офиси един от друг в Интернет. Създадох между тях OpenVPN криптирани тунели за да могат техните LAN мрежи да обменят “фирмената” информация по между си а останалия трафик да преминава през локалния доставчик на Интернет. Освен тунелите трябваше да пипна нещо и по фирмения сървър за което се наложи от дома ми да вдигна OpenVPN тунел. Домашния ми рутер е произведен от фирмата Ubiquiti, модел EdgeRouterX, сложих го преди доста време само да го “поразцъкам” но така си и остана. EdgeRouterX е голям колкото кутия цигари, има хардуерно ускорение (offload) hwnat с който при трафик 1Gbit през NAT рутера почти не го усеща, струва 100-тина лева, задвижва се от модифицирана версия на Vyatta (EdgeOS, поддържа се от Ubiquiti) и други неща кoито впечатляват (Много добра имплементация на Wan Load Balance, Policy Base Routing и Failover). В този случай обаче аз трябва да конфигурирам EdgeOS като OpenVPN клиент свързан с RouterOS OpenVPN сървър, нещо за което не намерих никаква информация в Интернет вероятно поради факта,че двете OS са естествени конкуренти.

Сертификатите които създадох в предишния пост с MikroTik OpenVPN сървъра все още се намират в настолния ми компютър. Тях също ще ги кача с Filezilla но този път през протокола SSH, защото Edgerouter не поддържа FTP. Стъпките са лесни, с трите картинки по долу показвам как става това:

Първо ще създам текстов файл за ppp автентикацията като първата линия е потребителя а втората паролата, ако не направя това edgerouter ще ме пита по време на вдигане на интерфейса, обаче ако интерейса по някаква причина падне сам и отново се вдигне, пак ще пита и тогава няма кой да я напише рънчо. Това е причината да създам отделен файл който после ще добавя в главния конфигурационен на OpenVPN клиента.

sudo vi /config/auth/pass.txt
samyil
qwerty

Има още една греда която трябва да съборя, key файла също ще поиска парола passphrase, която по същия начин се изисква при вдигане на интерфейса и при временно прекъсване OpenVPN клиента няма да се вдигне ако някой не я въведе в терминала. Затова трябва да премахна изискването на паролата със следната команда.

openssl rsa -in /config/auth/cert_export_client.key -out /config/auth/cert_export_client_rmpass.key

Изпълнявайки командата ще бъда запитан за passphrase паролата и ако я въведа правилно OpenSSL ще създаде нов файл cert_export_client_rmpass.key който няма да изисква парола.

Следващата стъпка е да създам конфигурационния файл на OpenVPN клиента. Тук внимаваите, въпреки, че опциите са разпознаваеми, трябва да се прегледат и осмислят.

sudo vi /config/auth/ovpn
client
dev tun
proto tcp
remote 93.155.130.62 1194
resolv-retry infinite
nobind
persist-key  
persist-tun
verb 1     
cipher AES-128-CBC
auth SHA1         
auth-user-pass /config/auth/pass.txt
ca /config/auth/cert_export_CA.crt  
cert /config/auth/cert_export_client.crt
key /config/auth/cert_export_client_rmpass.key

Същинската част на вдигане на OpenVpn клиента.

configure
set interfaces openvpn vtun0 config-file /config/auth/ovpn
set interfaces openvpn vtun0 description OVPN_to_Work
commit
save

Ако в терминала не получа съобщение за грешка вероятно всичко е наред и следващата ми стъпка ще е да проверя имам ли OpenVPN вдигнат интерфейс.

Тъй като не се налага другите офиси да виждат моя LAN аз ще рутирам мрежата зад OpenVPN сървъра и ще конфигурирам NAT на vtun0 интерфейса като по този начин моя настолен компютър се намира зад NAT, аз ще виждам мрежата 192.168.100.0/24 където се намира фирмения сървър а мрежата мен не.

configure
set protocols static route 192.168.200.1 next-hop 192.168.100.0/24
set service nat rule 5010 outbound-interface vtun0
set service nat rule 5010 type masquerade
commit
save

Проверявам има ли свързаност от лаптопа към сървъра.

[admin@laptop] > ping 192.168.100.254
SEQ HOST                                   SIZE TTL TIME  STATUS 
0 192.168.100.254                          56  62 4ms  
1 192.168.100.254                          56  62 3ms  
2 192.168.100.254                          56  62 4ms  
3 192.168.100.254                          56  62 4ms  
sent=4 received=4 packet-loss=0% min-rtt=3ms avg-rtt=3ms max-rtt=4ms

Проверявам рутерите по пътя от лаптопа до сървъра.

[admin@laptop] > traceroute  192.168.100.254
# ADDRESS                     LOSS SENT LAST      AVG     BEST    WORST
1 192.168.60.1                0%    5   0.2ms     0.5     0.2     1.8
2 192.168.200.1               0%    5   3.6ms     3.5     3.1     3.9
3 192.168.100.254             0%    5   3.8ms     4.5     1.7     6.6

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.