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:

  1. CA
  2. serwera OpenVPN
  3. klienta OpenVPN (w naszym przypadku telefonu)
  4. plik z parametrami dh1024.pem

Podstawowy konfig serwera OpenVPN

proto tcpwybieramy czy będziemy korzystali z tcp czy udp do tunelu
port 12345numer portu na jakim serwer będzie nasłuchiwał połączeń
dev tuntyp 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.0adres 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.logzapisz 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

  1. Logujemy się do panelu administracyjnego przeglądarką.
  2. Odnajdujemy sekcję ustawień Network/Advanced.
  3. Na samym dole odnajdujemy sekcję odpowiedzialną za OpenVPN. Włączamy funkcję na enable. (Uwaga wymagany restart).
  4. 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

Cisco consola po RJ45

Gniazdo RJ45FemaleRJ45Female Wtyczka RJ45

rj45m

Wtyk żeński DB9 (do komputera)

dsub9f1

Tabela połączeń ×

RJ45    ♦  DB9
RTS1    ♦  8 CTS
DTR2   ♦  6 DSR
TXD3   ♦  2 RXD
GND4  ♦  5 GND
GND5  ♦  5 GND
RXD6  ♦  3 TXD
DSR7  ♦  4 DTR
CTS8   ♦  7 RTS

[table "<the_table_ID>" not found /]

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

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.

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…

e1na2plocal

e1na2premote

e1na1plocal

e1na1premote

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