{"id":154,"date":"2014-01-19T21:54:04","date_gmt":"2014-01-19T20:54:04","guid":{"rendered":"http:\/\/www.rsync.pl\/?p=154"},"modified":"2014-01-19T21:54:04","modified_gmt":"2014-01-19T20:54:04","slug":"tunel-openvpn-realizowany-przez-telefon-yealink-sip-t22p","status":"publish","type":"post","link":"http:\/\/www.rsync.pl\/?p=154","title":{"rendered":"Tunel OpenVPN realizowany przez telefon Yealink SIP-T22P"},"content":{"rendered":"
\n
\n
\"\"<\/a><\/dt>\n<\/dl>\n<\/div>\n

Od niedawna telefony Yealink maj\u0105 wsparcie klienta OpenVPN w fabrycznym firmware. Jest to wygodne rozwi\u0105zanie dla u\u017cytkownik\u00f3w \u0142\u0105cz\u0105cych si\u0119 do centrali SIP z Internetu. Zamiast otwiera\u0107 porty na routerze dla po\u0142\u0105cze\u0144 sip i rtp lepiej b\u0119dzie zabezpieczy\u0107 ca\u0142\u0105 komunikacj\u0119 tunelem vpn. Standard OpenVPN<\/a> jest dobrze udokumentowany<\/a> i wspierany przez wiele urz\u0105dze\u0144. Zawsze mo\u017cna sobie postawi\u0107 maszyn\u0119 kt\u00f3ra b\u0119dzie terminowa\u0142a po\u0142\u0105czenia od u\u017cytkownik\u00f3w zdalnych. R\u00f3wnie\u017c na tej samej maszynie mo\u017cemy skonfigurowa\u0107 firewalla tak by dodatkowo ograniczy\u0107 komunikacj\u0119 do wybranych serwer\u00f3w.<\/p>\n

Przygotowanie do uruchomienia serwera OpenVPN<\/span><\/h2>\n

Do szyfrowania komunikacji mi\u0119dzy klientem a serwerem b\u0119dziemy u\u017cywali certyfikat\u00f3w. Wi\u0105\u017ce si\u0119 to z tym, \u017ce musimy mie\u0107 jakie\u015b CA (Certificate Authority) w kt\u00f3rym wygenerujemy certyfikaty dla serwera openvpn oraz klient\u00f3w.<\/p>\n

Je\u015bli nie dysponujemy CA najlepiej jest utworzy\u0107 swoje – korzystaj\u0105c z narz\u0119dzi dost\u0119pnych w pakiecie easy-rsa. Post\u0119puj\u0105c zgodnie z tym co jest opisanie na stronie openvpn-howto od cz\u0119\u015bci Generate the master Certificate Authority (CA) certificate & key dochodzimy do punktu w kt\u00f3rym mamy wygenerowane certyfikaty:<\/p>\n

    \n
  1. CA<\/li>\n
  2. serwera OpenVPN<\/li>\n
  3. klienta OpenVPN (w naszym przypadku telefonu)<\/li>\n
  4. plik z parametrami dh1024.pem<\/li>\n<\/ol>\n

    Podstawowy konfig serwera OpenVPN<\/span><\/h2>\n
    proto tcp<\/strong> – wybieramy czy b\u0119dziemy korzystali z tcp czy udp do tunelu<\/em><\/h6>\n
    port 12345<\/strong> – numer portu na jakim serwer b\u0119dzie nas\u0142uchiwa\u0142 po\u0142\u0105cze\u0144<\/em><\/h6>\n
    dev tun<\/strong> – typ urz\u0105dzenia tuneluj\u0105cego w naszym przypadku w 3 warstwie<\/em><\/h6>\n
    ca \/etc\/openvpn\/easy-rsa\/keys\/ca.crt <\/strong>– \u015bcie\u017cka do certyfikatu CA<\/em><\/h6>\n
    cert \/etc\/openvpn\/easy-rsa\/keys\/server.crt<\/strong> – \u015bcie\u017cka do certyfikatu serwera OpenVPN<\/em><\/h6>\n
    key \/etc\/openvpn\/easy-rsa\/keys\/server.key<\/strong> – \u015bcie\u017cka do klucza serwera OpenVPN<\/em><\/h6>\n
    dh \/etc\/openvpn\/easy-rsa\/keys\/dh1024.pem<\/strong> – \u015bcie\u017cka do pliku z parametrami DH<\/em><\/h6>\n
    tls-auth ta.key 0<\/strong> – \u015bcie\u017cka do pliku ta.key. Korzystanie z mechanizmu tls-auth znacznie zabezpiecza nas przed atakami na serwer OpenVPN.<\/em><\/h6>\n
    tls-server<\/strong> – b\u0119dziemy korzystali z tls<\/em><\/h6>\n
    server 10.9.8.0 255.255.255.0<\/strong> – adres serwera OpenVPN jakim b\u0119dzie si\u0119 przedstawia\u0142 klientom<\/em><\/h6>\n
    keepalive 10 120<\/strong> – ustawienia keepalive<\/em><\/h6>\n
    comp-lzo<\/strong> – b\u0119dziemy korzystali z kompresji lzo. Wymaga modu\u0142u lzo <\/a><\/em><\/h6>\n
    persist-key<\/strong> – nie odczytuj ponownie kluczy podczas wywo\u0142ania SIGUSR1<\/em><\/h6>\n
    persist-tun<\/strong> – nie wy\u0142\u0105czaj interfejstu TUN podczas wywo\u0142ania SIGUSR1<\/em><\/h6>\n
    push „route 192.168.1.0 255.255.255.0”<\/strong>– wpychaj routing do takiej sieci po stronie klienta<\/em><\/h6>\n
    status \/var\/log\/openvpn-status.log<\/strong> – zapisz plik ze statusem po\u0142\u0105czenia (Przydatne w debugingu)<\/em><\/h6>\n
    client-to-client <\/strong>-klienci b\u0119d\u0105 si\u0119 widzieli wzajemnie<\/em>.<\/h6>\n
    <na szybko do wklejenia do pliku><\/h6>\n
    proto tcp<\/strong><\/h6>\n
    port 12345<\/strong><\/h6>\n
    dev tun<\/strong><\/h6>\n
    ca \/etc\/openvpn\/easy-rsa\/keys\/ca.crt<\/strong><\/h6>\n
    cert \/etc\/openvpn\/easy-rsa\/keys\/server.crt<\/strong><\/h6>\n
    key \/etc\/openvpn\/easy-rsa\/keys\/server.key<\/strong><\/h6>\n
    dh \/etc\/openvpn\/easy-rsa\/keys\/dh1024.pem<\/strong><\/h6>\n
    tls-auth ta.key 0<\/strong><\/h6>\n
    tls-server<\/strong><\/h6>\n
    server 10.9.8.0 255.255.255.0<\/strong><\/h6>\n
    keepalive 10 120<\/strong><\/h6>\n
    comp-lzo<\/strong><\/h6>\n
    persist-key<\/strong><\/h6>\n
    persist-tun<\/strong><\/h6>\n
    push „route 192.168.1.0 255.255.255.0”<\/strong><\/h6>\n
    status \/var\/log\/openvpn-status.log<\/strong><\/h6>\n
    client-to-client<\/strong><\/h6>\n

    Podstawowy konfig klienta OpenVPN – telefonu Yealink<\/span><\/h2>\n

    W celu skonfigurowania klienta konieczne b\u0119dzie przygotowanie archiwum .tar kt\u00f3re musi zawiera\u0107 okre\u015blon\u0105 struktur\u0119 plik\u00f3w. W tym celu najlepiej pod linuksem uruchamiany komendy:<\/p>\n

    mkdir telefon<\/em><\/strong><\/h6>\n
    cd telefon<\/em><\/strong><\/h6>\n
    mkdir keys<\/em><\/strong><\/h6>\n
    cd keys<\/em><\/strong><\/h6>\n

    nast\u0119pnie kopiujemy utworzone wcze\u015bniej pliki do lokalnego katalogu:<\/p>\n

    cp \/etc\/openvpn\/easy-rsa\/keys\/ca.crt<\/em><\/strong><\/h6>\n
    cp \/etc\/openvpn\/easy-rsa\/keys\/ta.key<\/em><\/strong><\/h6>\n
    cp \/etc\/openvpn\/easy-rsa\/keys\/telefon.crt<\/em><\/strong><\/h6>\n
    cp \/etc\/openvpn\/easy-rsa\/keys\/telefon.key<\/em><\/strong><\/h6>\n
    cd ..<\/em><\/strong><\/h6>\n

    Do pe\u0142ni szcz\u0119\u015bcia potrzebujemy jeszcze pliku konfiguracyjnego klienta OpenVPN. Nie r\u00f3\u017cni si\u0119 on zbytnio od typowych ustawie\u0144 ka\u017cdego u\u017cytkownika OpenVPN. Tworzymy plik o nazwie vpn.cnf w kt\u00f3rym umieszczamy dyrektywy konfiguracyjne<\/p>\n

    client<\/strong><\/h6>\n
    dev tun<\/strong><\/h6>\n
    dev-type tun<\/strong><\/h6>\n
    proto tcp<\/strong><\/h6>\n
    remote 172.16.0.1 12345<\/strong><\/h6>\n
    resolv-retry infinite<\/strong><\/h6>\n
    nobind<\/strong><\/h6>\n
    persist-key<\/strong><\/h6>\n
    persist-tun<\/strong><\/h6>\n
    ca \/config\/openvpn\/keys\/ca.crt<\/strong><\/h6>\n
    cert \/config\/openvpn\/keys\/telefon.crt<\/strong><\/h6>\n
    key \/config\/openvpn\/keys\/telefon.key<\/strong><\/h6>\n
    tls-auth \/config\/openvpn\/keys\/ta.key 1<\/strong><\/h6>\n
    ns-cert-type server<\/strong><\/h6>\n
    comp-lzo<\/strong><\/h6>\n
    verb 3<\/strong><\/h6>\n

    na ko\u0144cu wykonujemy komend\u0119 tar -cvpf telefon.tar *<\/em> – aby utworzy\u0107 archiwum telefon.tar kt\u00f3re umie\u015bcimy w telefonie.<\/p>\n

    Wgrywanie konfiguracji tunelu OpenVPN do aparatu<\/span><\/h2>\n
      \n
    1. Logujemy si\u0119 do panelu administracyjnego przegl\u0105dark\u0105.<\/li>\n
    2. Odnajdujemy sekcj\u0119 ustawie\u0144 Network\/Advanced<\/em>.<\/li>\n
    3. Na samym dole odnajdujemy sekcj\u0119 odpowiedzialn\u0105 za OpenVPN. W\u0142\u0105czamy funkcj\u0119 na enable<\/em>. (Uwaga wymagany restart).<\/li>\n
    4. Po restarcie wgrywamy przygotowany wcze\u015bniej plik telefon.tar – potwierdzamy – confirm<\/em>.<\/li>\n<\/ol>\n

      Nie wiem po jakim czasie telefon nawi\u0105\u017ce pr\u00f3b\u0119 zestawienia tunelu. Nie chcia\u0142em na to czeka\u0107 i wykona\u0142em restart telefonu.<\/p>\n

      Po ponownym uruchomieniu pojawi\u0142a si\u0119 mi\u0142a ikonka na ekranie telefonu i parafrazuj\u0105c pewnego profesora UAM – Co nale\u017ca\u0142o dowie\u015b\u0107.<\/em><\/p>\n

      Informacyjnie uruchomienie klienta OpenVPN w telefonie powoduje jego d\u0142u\u017csze uruchamianie. Normalnie dla T22p jest to 1 minuta i 5 sekund. Po uruchomieniu klienta OVPN czas ten wynosi 1 minuta i 25 sekund. Na ko\u0144cu zosta\u0142o skonfigurowa\u0107 konto pod adresem serwera po drugiej stronie tunelu. Adres serwera OpenVPN jest to pierwszy adres wolny w podsieci wskazanej przy dyrektywie server <\/em>– czyli 10.9.8.1<\/strong> Je\u015bli za serwer OVPN b\u0119dzie s\u0142u\u017cy\u0142a inna maszyna ni\u017c centralka SIP – pami\u0119tajcie o wpisaniu statycznego routingu na serwerze SIP do serwera OpenVPN. Bez tego serwer SIP nie b\u0119dzie wiedzia\u0142 gdzie kierowa\u0107 pakiety z powrotem do klient\u00f3w OpenVPN.<\/p>\n","protected":false},"excerpt":{"rendered":"

      Od niedawna telefony Yealink maj\u0105 wsparcie klienta OpenVPN w fabrycznym firmware. Jest to wygodne rozwi\u0105zanie dla u\u017cytkownik\u00f3w \u0142\u0105cz\u0105cych si\u0119 do centrali SIP z Internetu. Zamiast otwiera\u0107 porty na routerze dla po\u0142\u0105cze\u0144 sip i rtp lepiej b\u0119dzie zabezpieczy\u0107 ca\u0142\u0105 komunikacj\u0119 tunelem … Czytaj dalej →<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.rsync.pl\/index.php?rest_route=\/wp\/v2\/posts\/154"}],"collection":[{"href":"http:\/\/www.rsync.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.rsync.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.rsync.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.rsync.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=154"}],"version-history":[{"count":61,"href":"http:\/\/www.rsync.pl\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions"}],"predecessor-version":[{"id":218,"href":"http:\/\/www.rsync.pl\/index.php?rest_route=\/wp\/v2\/posts\/154\/revisions\/218"}],"wp:attachment":[{"href":"http:\/\/www.rsync.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=154"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.rsync.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=154"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.rsync.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=154"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}