В поста 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