Tunel OpenVPN realizowany przez telefon Yealink SIP-T22P
Od niedawna telefony Yealink mają wsparcie klienta OpenVPN w fabrycznym firmware. Jest to wygodne rozwiązanie dla użytkowników łączących się do centrali SIP z Internetu. Zamiast otwierać porty na routerze dla połączeń sip i rtp lepiej będzie zabezpieczyć całą komunikację tunelem vpn. Standard OpenVPN jest dobrze udokumentowany i wspierany przez wiele urządzeń. Zawsze można sobie postawić maszynę która będzie terminowała połączenia od użytkowników zdalnych. Również na tej samej maszynie możemy skonfigurować firewalla tak by dodatkowo ograniczyć komunikację do wybranych serwerów.
Przygotowanie do uruchomienia serwera OpenVPN
Do szyfrowania komunikacji między klientem a serwerem będziemy używali certyfikatów. Wiąże się to z tym, że musimy mieć jakieś CA (Certificate Authority) w którym wygenerujemy certyfikaty dla serwera openvpn oraz klientów.
Jeśli nie dysponujemy CA najlepiej jest utworzyć swoje – korzystając z narzędzi dostępnych w pakiecie easy-rsa. Postępując zgodnie z tym co jest opisanie na stronie openvpn-howto od części Generate the master Certificate Authority (CA) certificate & key dochodzimy do punktu w którym mamy wygenerowane certyfikaty:
- CA
- serwera OpenVPN
- klienta OpenVPN (w naszym przypadku telefonu)
- plik z parametrami dh1024.pem
Podstawowy konfig serwera OpenVPN
proto tcp – wybieramy czy będziemy korzystali z tcp czy udp do tunelu
port 12345 – numer portu na jakim serwer będzie nasłuchiwał połączeń
dev tun – typ urządzenia tunelującego w naszym przypadku w 3 warstwie
ca /etc/openvpn/easy-rsa/keys/ca.crt – ścieżka do certyfikatu CA
cert /etc/openvpn/easy-rsa/keys/server.crt – ścieżka do certyfikatu serwera OpenVPN
key /etc/openvpn/easy-rsa/keys/server.key – ścieżka do klucza serwera OpenVPN
dh /etc/openvpn/easy-rsa/keys/dh1024.pem – ścieżka do pliku z parametrami DH
tls-auth ta.key 0 – ścieżka do pliku ta.key. Korzystanie z mechanizmu tls-auth znacznie zabezpiecza nas przed atakami na serwer OpenVPN.
tls-server – będziemy korzystali z tls
server 10.9.8.0 255.255.255.0 – adres serwera OpenVPN jakim będzie się przedstawiał klientom
keepalive 10 120 – ustawienia keepalive
comp-lzo – będziemy korzystali z kompresji lzo. Wymaga modułu lzo
persist-key – nie odczytuj ponownie kluczy podczas wywołania SIGUSR1
persist-tun – nie wyłączaj interfejstu TUN podczas wywołania SIGUSR1
push “route 192.168.1.0 255.255.255.0”– wpychaj routing do takiej sieci po stronie klienta
status /var/log/openvpn-status.log – zapisz plik ze statusem połączenia (Przydatne w debugingu)
client-to-client -klienci będą się widzieli wzajemnie.
<na szybko do wklejenia do pliku>
proto tcp
port 12345
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
tls-auth ta.key 0
tls-server
server 10.9.8.0 255.255.255.0
keepalive 10 120
comp-lzo
persist-key
persist-tun
push “route 192.168.1.0 255.255.255.0”
status /var/log/openvpn-status.log
client-to-client
Podstawowy konfig klienta OpenVPN – telefonu Yealink
W celu skonfigurowania klienta konieczne będzie przygotowanie archiwum .tar które musi zawierać określoną strukturę plików. W tym celu najlepiej pod linuksem uruchamiany komendy:
mkdir telefon
cd telefon
mkdir keys
cd keys
następnie kopiujemy utworzone wcześniej pliki do lokalnego katalogu:
cp /etc/openvpn/easy-rsa/keys/ca.crt
cp /etc/openvpn/easy-rsa/keys/ta.key
cp /etc/openvpn/easy-rsa/keys/telefon.crt
cp /etc/openvpn/easy-rsa/keys/telefon.key
cd ..
Do pełni szczęścia potrzebujemy jeszcze pliku konfiguracyjnego klienta OpenVPN. Nie różni się on zbytnio od typowych ustawień każdego użytkownika OpenVPN. Tworzymy plik o nazwie vpn.cnf w którym umieszczamy dyrektywy konfiguracyjne
client
dev tun
dev-type tun
proto tcp
remote 172.16.0.1 12345
resolv-retry infinite
nobind
persist-key
persist-tun
ca /config/openvpn/keys/ca.crt
cert /config/openvpn/keys/telefon.crt
key /config/openvpn/keys/telefon.key
tls-auth /config/openvpn/keys/ta.key 1
ns-cert-type server
comp-lzo
verb 3
na końcu wykonujemy komendę tar -cvpf telefon.tar * – aby utworzyć archiwum telefon.tar które umieścimy w telefonie.
Wgrywanie konfiguracji tunelu OpenVPN do aparatu
- Logujemy się do panelu administracyjnego przeglądarką.
- Odnajdujemy sekcję ustawień Network/Advanced.
- Na samym dole odnajdujemy sekcję odpowiedzialną za OpenVPN. Włączamy funkcję na enable. (Uwaga wymagany restart).
- Po restarcie wgrywamy przygotowany wcześniej plik telefon.tar – potwierdzamy – confirm.
Nie wiem po jakim czasie telefon nawiąże próbę zestawienia tunelu. Nie chciałem na to czekać i wykonałem restart telefonu.
Po ponownym uruchomieniu pojawiła się miła ikonka na ekranie telefonu i parafrazując pewnego profesora UAM – Co należało dowieść.
Informacyjnie uruchomienie klienta OpenVPN w telefonie powoduje jego dłuższe 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ńcu zostało skonfigurować konto pod adresem serwera po drugiej stronie tunelu. Adres serwera OpenVPN jest to pierwszy adres wolny w podsieci wskazanej przy dyrektywie server – czyli 10.9.8.1 Jeśli za serwer OVPN będzie służyła inna maszyna niż centralka SIP – pamiętajcie o wpisaniu statycznego routingu na serwerze SIP do serwera OpenVPN. Bez tego serwer SIP nie będzie wiedział gdzie kierować pakiety z powrotem do klientów OpenVPN.
Konfiguracja modemu lucent DSLPipe z interfejsem V35 do Maxa 20
Zasadniczo wystarczy uzgodnić tę samą enkapsulację po stronie routera i maxa. Najczęściej korzystam z frame-relay. W takim przypadku należy stworzyć profil frame-relay w którym trzeba wskazać numer dlci oraz włączyć link mgmt na T1.617D. Oczywiście w definicji połączenia trzeba wybrać enkapsulację frame-relay i wskazać nazwę profilu tę samą co w ustawieniach frame-relay.
Po stronie routera wystarczy takie coś:
Interface serial0
ip address 10.10.10.2 255.255.255.252
encapsulation frame-relay IETF
frame-relay interface-dlci 16
Po stronie pipe ustawiamy prędkość przełącznikami i tryb coe.
Zrzut konfiga z maxa:
Station=test
Active=yes
Encaps=FR
PRI # Type=N/A
DIAL #=N/A
ROUTE IP=YES
BRIDGE=N/A
DIAL BRDCAST=N/A
SHARED PROF=NO
//ENCAPS OPTIONS//
FR PROF=name-fr
DLCI=16
CIRCUIT=N/A
MFR BUNDLE NAME=
//ip options//
LAN ADRS=10.10.10.2/30
IF ADRS=10.10.10.1/30
PREFERENCE=60
METRIC=1
DOWNPREFERENCE=120
DOWNMETRIC=7
PRIVATE=NO
SOURCEIP CHECK=NO
RIP=OFF
POOL=0
MULTICAST CLIENT=NO
MULTICAST RATE LIMIT=100
MULTICAST GRP LEAVE DELAY=0
CLIENT PRI DNS=0.0.0.0
CLIENT SEC DNS=0.0.0.0
CLIENT ASSIGN DNS=NO
CLIENT PRI WINS=0.0.0.0
CLIENT SEC WINS=0.0.0.0
CLIENT ASSIGN WINS=NO
CLIENT GATEWAY=0.0.0.0
TOS ENABLED=NO
PRECEDENCE=N/A
TOS=N/A
APPLY TO=N/A
TOS FILTER=N/A
//SESSION OPTIONS//
Data Filter=0
Call Filter=0
Filter Persistence=No
Idle=N/A
Max Call Duration=0
Preempt=N/A
BackUp=
Block calls after=0
Blocked duration=0
Ses Rate Type=disabled
Ses Rate Mode=N/A
Ses Line Rate=N/A
Rx Data Rate Limit=0
Tx Data Rate Limit=0
Cir Timer=5000
IP Direct=0.0.0.0
ATMP Gateway=N/A
Max ATMP Tunnels=N/A
ATMP RIP=N/A
FR Direct=N/A
FR Prof=N/A
FR DLCI=N/A
Traffic shaper=16
Priority=Normal
//ospf options//
runospf=no
…
//telco options/
AnsOrig=N/A
Callback=N/A
Exp Callback=N/A
Callback Delay=N/A
Call Type=N/A
Group=N/A
FT1 Caller=N/A
Data Svc=64K
Force 56=N/A
Bill #=N/A
Transit #=N/A
NAS Port Type=Any
//acounting//
Acct Type=None
Acct Host=N/A
Acct Port=N/A
Acct Timeout=N/A
Acct Key=N/A
Acct-ID Base=N/A
//dhcp options//
Reply Enabled=No
Pool Number=N/A
Max Leases=N/A
//bridge options//
Bridge Group=N/A
Designate Egress=N/A
//bir options..
Enabled=No
Proxy Arp=N/A
////frame-relay////
//nazwa-fr//
Name=nazwa-fr
Active=Yes
Call Type=Nailed
FR Type=DCE
Nailed Grp=10
Data Svc=64K
PRI # Type=N/A
Dial #=N/A
Bill #=N/A
Transit #=N/A
Link Status Dlci=0
Link Mgmt=T1.617D
N391=N/A
DTE N392=N/A
DTE N393=N/A
DCE N392=3
DCE N393=4
T391=N/A
T392=15
MRU=1532
MFR Bundle Name=
//FRF.5 Options…//
Enable=No
vpi=N/A
vci=N/A
Traffic shaper=N/A
/////10-000 Net/Sdsl-16 /////
///10-100 Line Config///
//10-1** Factory//
/Line n…/
Enabled=Yes
TrnkGrp=0
Nailed-group=10
Activation=Static
Data Sense=Inverted
2B1Q Line Code=Sign bit 1st
Rate Mode=singlebaud
Line Rate=528000
Auto Base Rate=528000
Unit Type=COE
Konfiguracja modemu Ascom z interfejsem V.35
Przejściówka z RJ45 na DB9
Dla pinów 1,2,4,5
2 zielony tx
5 pomarańczowy rx
7 czerwony tx
9 niebieski rx
Cisco consola po RJ45
DSLPipe bridge po fr
Konfiguracja modemów DSLPipe kiedy po jednej stronie jest Eth a po drugiej złącze V35
Konfiguracja dslpipe w bridgingu przeźroczystym.
Configure
chan usage leased/unused
My name testcpe
Rem name testcoe
bridge yes
route none
SDSL line rate ta sama na obu
Unit type = jeden CPE, a drugi COE
Connections
testcoe
station testcoe
active yes
encaps fr
route ip no
route ipx no
bridge yes
encap options
fr prof testfr (ta sama nazwa po obu stronach)
dlci ten sam 16
ethernet
frame relay
name testfr (ta sama nazwa po obu stronach)
fr type dte (po drugiej stronie dce)
link status dlci 0
link management none
DB9 dla konwertera Lanex
Generalnie rozpiska jest na obudowie, ale na wszelki wypadek podaję:
DB9-Pin 7 – TXA
DB9-Pin 2 – TXB
DB9-Pin 5 – RXA
DB9-Pin 9 – RXB
Serwer DHCP na modemie DSLPipe
Ethernet -> Mod Config -> DHCP Spoofing -> DHCP Spoofing=Yes
Ethernet -> Mod Config -> DHCP Spoofing -> DHCP PNP Enabled=Yes
Ethernet -> Mod Config -> DHCP Spoofing -> Renewal Time=65535 // (czas do ponownej negocjacji, dalem max)
Ethernet -> Mod Config -> DHCP Spoofing -> IP Group 1=10.10.10.0/24 // (pula ip na eth)
Ethernet -> Mod Config -> Pri DNS=217.8.168.244
Ethernet -> Mod Config -> Sec DNS=157.25.5.18
Jest jeszcze “Group 1 count=20” (na przykład). Zakładając, że “IP Group 1″ ustawimy na 10.1.1.10/24, to DHCP będzie przyznawał 20 adresów (tyle ile wpisaliśmy w Group Count”. Przy czym adresy przyznawane będą zaczynały się od 10.1.1.11. Przydatne, jak ktoś chce mieć jakiś lokalny serwer pod lanowskim adresem np. 10.1.1.2 (i na nim pocztę czy WWW realizowaną przez port forwarding).
Witkom device konfiguracja na routerze
Sprawdzamy na którym interfejsie jest AUX:
poz-gronowa#show line | include AUX
A 65 AUX 115200/115200- inout – – 150 0 0 0/0 –
interface Async65
description Monitoring zasilania UPS!!! (witkom)
ip address 217.153.40.129 255.255.255.252
async mode dedicated
encapsulation slip <—- to mozna dodac ale z reguly jest jako default
line aux 0
location Monitoring zasilania UPS!!! (witkom)
access-class 150 in <—- to jest lokalna access-lista, mozliwe ze macia taka sama
no exec-banner
exec-timeout 0 0
modem InOut
transport input all
autoselect slip <—- tego sie chyba na nowym sofcie nie daje wpisac
stopbits 1
flowcontrol hardware
W przypadku flapowaniu interfejsów można spróbuować skrócić kabel, pomiędzy routerem a pudełkiem Witkoma.
Lucent DSLPipe – ustawienia fabryczne
CTRL+D
DIAGNOSTICS
dajesz FCLEAR
dajesz NVRAM
RESET
Konfiguracja modemu Ascom z interfejsem G.703
pary 7-8,4-5
1. Desktop lecar 053 R4
2. Pierwszy modem ustawiamy jako lt-nt i wybieramy czy ma chodzić na 1 czy 2 parach ma chodzić połączenie dsl.
3. Mode of operation – tu według wyboru, ale najczęsciej G.703 transparent
4. Drugi modem ustawiamy typ remote, wybieramy czy na 1 czy 2 parach ma chodzić połączenie dsl
5. Mode of operatiob – Remote Access
6. Modem chodzi na parach 4,5,7,8 czyli działa na rj-tach crossowych i zwykłych.
Żeby całą akcję wykonać trzeba mieć specjalny kabelek z jakimś scalakiem w środku. Poza tym w interfejsie wybieramy opcję download aby wgrać konfig do urządzenia. Niezbyt to logiczne, ale działa…
Konfiguracja modemu Ascom z interfejsem Ethernet
pary 7-8,4-5
1.Desktop lecar 051 r3
2.Drugi modem to samo.
3.Ustawiamy połączenie client to client prędkość, i download.
4.Drugi modem ustawiamy typ remote, wybieramy remote-access, ok, download.
5.Modem chodzi na parach 4,5,7,8 czyli działa na rj-tach crossowych i zwykłych.
Odzyskanie hasła dla modemu Lucent DSLPipe
Metoda 1.
1. brute force 😉
2. wchodzisz w tryb serwisowy i ładujesz najstarszy soft jaki masz.
jeżeli oryginalny soft na pipe był dostatecznie nowy, pipe zainicjuje konfigurację ustawieniami fabrycznymi. 3. być może jest coś prostszego, o czym nie wiem.
Metoda 2.
– otworzyć obudowę Pipe’a
– zewrzeć zworkę JP12 (środkowy)
– ustawić konsolę terminala na prędkość 57600, włączyć zasilanie
– w linii komend wydać polecenie df (download to flash)
– wysłać Xmodemem plik z softem l.s15 (wersja 7.10.12)
– wyłączyć zasilanie, sciągnać zworkę
– ustawić konsolę terminala na prędkość 9600, włączyć zasilanie
– po ukazaniu sie komunikatu Configure Unit nacisnać po kolei klawisze: Esc [ Esc = ( cztery klawisze w ciągu jednej sekundy)
– pojawi się prompt Diagnostic
– zrobić Ctrl-C hash codów (wszystkie linie) dla danego nr seryjnego – Wklej do hosta hash code`ów
– zatwierdzić ostatnia linię klawiszem Enter
– uruchomić ponownie router
– wejść w tryb diagnostic (Ctrl-D, D) i wydać polecenia: fclear, nvram
Te kody dostaje się z serwisu Lucenta (w naszym przypadku dostawcy modemów, chyba TechData). Ja mam kilka z wcześniej odzyskanych po naprawach tych zawieszonych “Configure Unit”. Można je wgrywać ale jest jeden problem. Jak nie masz oryginalnego kodu i wgrasz byle jaki to zmieni Ci mac-address i numer seryjny wyświetlany w sofcie. Niby nie problem, dopóki nie postawisz dwóch takich samych w tym samym segmencie eth;)
10707487
revision 00 1 10 10707487 3W2V70?<:RN>KQ
update 102 511 0 :X;Y>O6C3]WAR^
update 7 1023 64 bQcPfFnJkT~HzW
update 8 65535 32 PrQsTeiY7MkHt
update 9 65535 2368 2~3~6i>e;;_gZx
update 10 65535 1 ;[:Z?<702^V2S]
update 11 65535 2 0<1=4[4R1M
update 113 65535 0 65742B:N?p[L^3
update 14 255 3 15045R=^8@\Y3
update 1 255 1 sOrNwX~Tz:nVkI
9735490
revision 00 1 10 9735490 =W<4RP>UQ
update 102 511 0 4X5Y0O8C=]IAL^
update 7 1023 64 Q]PXFPJUTAHDW
update 8 65535 32 nrosjebig7skvt
update 9 65535 2368 <~=~8i0e5;AgDx
update 10 65535 1 5[4Z1<90<^H2M]
update 11 65535 2 >:R?M
update 113 65535 0 85944;R3^6@BG3
update 1 255 1 MOLNIXATD:PVUI
11626204
revision 00 1 10 11626204 0B1C45<99g];XD
update 102 511 0 9m8l=z5v0HDtAk
update 7 1023 64 QdPeUs]~XAL}Ib
update 8 65535 32 cGbFgPoj2~^{A
update 9 65535 2368 1K0J5=P8>LRIM
update 10 65535 1 8N9O<9451kE7@H
update 11 65535 2 39287N?B:|N@K?
update 112 65534 0 Z~[~^iVeS;7g2x
update 113 65535 0 50411W9[K;uOIJ6
update 1 255 1 @zA{DmLaI?]cX|
11625929
revision 00 1 10 11625929 O`NaKwC{FERyWf
update 102 511 0 vOwNr8z4~jk6nI
update 7 1023 64 ^F_GZ1R=Wc3?6@
update 8 65535 32 L5M4HR@^E@143
update 9 65535 2368 ~9~8z^rRwLcPf?
update 10 65535 1 wlvms{{w~Ijuoj
update 11 65535 2 |{}zxlp`u>abd}
update 112 65534 0 U9;O3C6}RAW>
10645441
revision 00 1 10 10645441 RTSUVC^O[Q?M:R
update 102 511 0 K[JZOD;;
update 10 65535 1 JXKYNOFCC]7A2^
update 11 65535 2 AO@NEXMTH:<_4S1MUQP>
update 113 65535 0 GvFwCaKmN3:o?p
update 14 255 3 @FAGDQL]I3=_8@
update 1 255 1 R<]PXO
update 102 511 0 y6x7}Qu]pCd_a0
update 7 1023 64 Q?P>UX]TXJ5;J
update 9 65535 2368 q@pAu7};xel9iF
update 10 65535 1 xEyD|Rt^q0e`C
update 11 65535 2 sRrSwE~IzWnKkT
update 112 65534 0 ZU[T^2V>SPG<:9T]8XW
10682367
revision 00 1 10 10682367 `taudcloi1}mxr
update 102 511 0 Y;X:]LU@P~DBA=
update 7 1023 64 12035E=I8wLKI4
update 8 65535 32 3Q2P76?::T^8[W
update 9 65535 2368 Q]PU:]6XXL4I[
update 10 65535 1 XxYyoTcQ=Ea@~
update 11 65535 2 SoRnWx_tZJNvKi
update 112 65534 0 zH{I~?v3smg1bN
update 113 65535 0 UVTWQAYMSHOMP
update 14 255 3 RfSgVq^}[CO~J`
update 1 255 1 @LAMD;L7Ii=58J
10707544
revision 00 1 10 10707544 :T;U>36?3QG=BR
update 102 511 0 3[2Z7L?@:^^B[]
update 7 1023 64 kRjSoEgIbWvKsT
update 8 65535 32 YqXp]fUjP4DhAw
update 9 65535 2368 ;}:|?j7f28VdS{
update 10 65535 1 2X3Y6?>3;]_1Z^
update 11 65535 2 9?8>=X5T0JTVQ9
update 112 65534 0 @HAID_LSI==Q8N
update 113 65535 0 ?6>7;A3M6sROW0
update 14 255 3 8697<7=2[:W?IKUN:
update 102 511 0 ?C>B;T3X66RZWE
update 7 1023 64 gJfKc]kQn?zS~L
update 8 65535 32 UiThQ~YrLHpMo
update 9 65535 2368 7e6d3r;~>@Z|_c
update 10 65535 1 >0?1:W2[7ESYV6
update 11 65535 2 5W4V109<]Q
update 112 65534 0 LPMQHG@KEU1I4V
update 113 65535 0 3N2O79?5:k^7[H
update 14 255 3 4^5_0985=[Y7X
update 1 255 1 vTwUrCzO~QkMnR
10687293
revision 00 1 10 10687293 eBdCaUiYl7x[}D
update 102 511 0 =]^A
update 9e 9 65535 2368 TKUJP<;471iU5PJ
update 102 511 0 1c0b5t=x8FLzIe
update 7 1023 64 YjXk]}UqPODsAl
update 8 65535 32 kIjHo^gRb<;9eM9HF
update 11 65535 2 ;7:6?@7L2rFNC1
update 112 65534 0 RpSqVg^k[5?i:v
update 113 65535 0 =>;?>I6E3{GGB8
update 1 255 1 HtIuLcDoA1UmPr
Konfiguracja modemów Nokia DNT2M i DNT2MI
Rzadko się z tego korzysta bo technologie miedziane poszły mocno do przodu 🙂 Jednak może się to komuś przydać.
DNT2M
Pary: 1, 2; 5, 6
Payload Fractional
512kbps, 1 para – 0,1,3,5,9,11,13,15
1Mbps, 1 para – 0,1,3,5,7,9,11,13,15,16,18,20,22,24,26,28
1Mbps, 2 pary – payload sync, sloty 0-1
Jak chcemy mieć 2Mbps to włączamy wszystkie timesloty, bez względu na ilość par. configure-line-payload sync to 2 pary, fractional to 1 para.
DNT2Mi
Można je zresetować do ustawień fabrycznych, później jeden z modemów na Fixed, wybór 2/4 parowego i predkość. Drugi na Adaptive 2/4 parowy i wybrana predkość i zostaje ustawić timesloty. Zmieniły się ustawienia timeslotów w stosunku do DNT2M. Pary: 1, 2; 5, 6
np:
192kbps, 1 para – 0-3
512kbps, 1 para – 0-7
2Mbps, 1 para – 0-31
512kbps, 2 pary – 0-7