Asterisk & FreecoNet

Prawidłowa konfiguracja Asteriska wraz ze znanymi nam zabezpieczeniami przed fraudami i redundancja sipproxy.


Ważne ustawienia sekcji [general] w pliku sip.conf:

[general]  
context=default Wszystkie nieznane połączenia kierowane są do kontekstu default extensions.conf
bindport=5172 Zwykle atakujący szukają Asterisk-ów na domyślnym porcie sip, czyli 5060 ustawmy inny np. 5172
Uwaga! w konfiguracji telefonów trzeba będzie wpisać ten port jako port proxy zamiast 5060
srvlookup=yes dla zwiększenia redundancji włączymy rozwiązywanie domeny po rekordach SRV (w przypadku problemów z dodzwonieniem należy ustawić wartość „no”)
defaultexpiry=60 przydatne przy Asterisk-ach na niepublicznych adresach IP (za NATem)
allowguest=no zabezpiecza przed nieautoryzowanymi wywołaniami (domyślnie Asterisk zezwala na takie)
dtmfmode = rfc2833 tak jest we FreecoNet
nat=yes dla bramek/telefonów za NATem

Jeśli Asterisk jest za NAT:

defaultexpiry=60 przydatne przy Asterisk-ach na niepublicznych adresach iIP (za NATem)
localnet=192.168.1.0/255.255.255.0 adres i maska sieci lokalnej
externip=123.234.123.234 adres publiczny routera, za którym jest Asterisk

Rejestracja w pliku sip.conf:

register => uzytkownik:haslo@sip.freeconet.pl/przychodzace1 przychodzące1 można dowolnie zmienić patrz: extensions.conf

Ustawienia peerow w pliku sip.conf:


[freeconet-out]
 
type=peer
do operatora
username=uzytkownik  nazwa konta we FreecoNet
secret=haslo hasło SIP (terminala) konta FreecoNet
fromdomain=sip.freeconet.pl
 
context=freeconet na jaki kontekst w extensions.conf maja iść połączenia
host=sip.freeconet.pl  
port=5060  
outboundproxy=sip.freeconet.pl  
outboundproxyport=5060  
insecure=no maksymalnie nieufny Asterisk
   
[freeconet-in1] podobnie dwa peery dla połączeń przychodzących
type=peer  
fromdomain=sip.freeconet.pl  
port=5060  
context=freeconet  
host=213.218.116.65  
insecure=no  
   
[freeconet-in2]  
type=peer  
fromdomain=sip.freeconet.pl  
port=5060  
context=freeconet  
host=213.218.116.66  
insecure=no  
   
[telefon1] przykład konfiguracji telefonu
context=freeconet w jakim kontekście będzie przetwarzany
type=friend jest użytkownikiem
username=telefon1 nazwa użytkownika
secret=haslo1 hasło którym się ma uwierzytelniać
callerid="Kowalski Jan" <100> id - tekst oraz numer
hos t=dynamic może być gdziekolwiek w sieci
nat=yes również na natem
accountcode=Kowalscy Kowalscy ;dodatkowe dla billingów wewnętrznych Asteriska
allow=all kodeki (tu wszystkie)

Ustawienia extensions.conf


[default]
niebezpieczny kontekst dla nieproszonych gości
exten => _.,1,Hangup
bez szans na wykonanie połączenia
   
[freeconet]  
exten => t,1,Hangup  
exten => h,1,Hangup  
exten => _X.,1,SIPAddHeader(X-Fid: ${SIPCALLID}) opcjonalne to co stanie w miejscu ${SIPCALLID}
pojawi sie w billingach csv w panelu FreecoNet
exten => _X.,2,Dial(sip/${EXTEN}@freeconet-out) reszta podłączenia zajmiemy się my :)
exten => przychodzace1,1,Dial(SIP/telefon1,45,Tt) jeśli rozmowa z FreecoNet na konto użytkownik to skieruj do telefon1


Inny przyklad sip.conf i extension.conf (identyfikowanie rozmowy przychodzącej po numerze docelowym + wewnetrzne)

Zmiany sip.conf

[telefon1]
tworzymy różne konteksty dla telefonów
context=tel1
tworzymy różne konteksty dla telefonów
type=friend  
username=telefon1  
secret=haslo1  
callerid="Kowalski Jan" <10>  
host=dynamic  
nat=yes  
accountcode=Kowalscy  
allow=all  
   
[telefon2]
przykład konfiguracji drugiego telefonu
context=tel2
inny kontekst
type=friend  
username=telefon2 inny użytkownik itd
secret=haslo2  
callerid="Kowalska Janina" <10>  
host=dynamic  
nat=yes  
accountcode=Kowalscy  
allow=all  

Zmiany extension.conf


[default]
niebezpieczny kontekst dla nieproszonych gości 
exten => _.,1,Hangup
bez szans na wkonanie połączenia
   
[freeconet]
kontekst docelowy peerów FreecoNet
exten =>
przychodzace1,1,Set(TOHDR=${SIP_HEADER(To)})
 
exten =>
przychodzace1,2,GotoIf($["${REGEX("221234567" ${TOHDR})}" = "1"]?wew,10,1)
 
exten =>
przychodzace1,3,GotoIf($["${REGEX("221234568" ${TOHDR})}" = "1"]?wew,11,1)
 
   
[tel1]
 
include => wew
 
exten => t,1,Hangup
 
exten => h,1,Hangup
 
exten => _XXX.,1,SIPAddHeader(X-Fid: ${SIPCALLID})
opcjonalne to co stanie w miejscu ${SIPCALLID} pojawi się w billingach csv w panelu FreecoNet
exten => _XXX.,2,Set(CALLERID(num)=48221234567)
ustawienie publicznego numeru telefonu (w panelu trzeba ustawić prezentację "użyj z bramki")
exten => _XXX.,3,Dial(SIP/${EXTEN}@freeconet-out)
resztą połączenia zajmiemy się my :)
   
[tel2]
 
include => wew
 
exten => t,1,Hangup
 
exten => h,1,Hangup
 
exten => _XXX.,1,SIPAddHeader(X-Fid: ${SIPCALLID})
opcjonalne to co stanie w miejscu ${SIPCALLID} pojawi się w billingach csv w panelu FreecoNet
exten => _XXX.,2,Set(CALLERID(num)=48221234568)
ustawienie publicznego numeru telefonu (w panelu trzeba ustawić prezentacje "użyj z bramki")
exten => _XXX.,3,Dial(SIP/${EXTEN}@freeconet-out)
 resztą połączenia zajmiemy się my :)
   
[wew]
 
exten => 10,1,Dial(SIP/telefon1,45,Tt)
 
exten => 11,1,Dial(SIP/telefon2,45,Tt)  

UwagaZalecamy również uruchomienie firewalli na serwerach linuxowych lub/i na firewallach sprzętowych wykorzystywanych do dostępu do internetu. Aby zezwolić wyłącznie na ruch przychodzący/wychodzący do platformy Freeconet należy zezwolić na dostęp następujących adresów IP (protokół UDP):
213.218.116.65
213.218.116.66
213.218.116.68
213.218.116.69
213.218.116.71
213.218.116.73
213.218.116.74
213.218.116.83
213.218.116.85
213.218.116.88
213.218.116.90
213.218.116.93
213.218.125.94
213.218.125.95
88.220.105.90
88.220.105.91
93.159.41.34
93.159.41.35
93.159.41.36
193.192.164.2
193.192.164.3
 
Dodatkowo użytkownikom oprogramowania TrixBox/Elastix zalecamy, aby zwrócili szczególną uwagę na konfigurację swoich urządzeń i zastosowanie się do poniższych zaleceń:

Zmienić domyślne hasła (dotyczy centrali TrixBox):

1. Zmiana domyślnego hasła FOP

    Domyślne hasło do Flash Operator Panel jest następujące: pasw0rd W celu jego zmiany przejść do katalogu FOP:
    /var/www/html/panel
, a następnie edytować plik op_server.cfg.
    Dokonać zmiany w linijce „security_code=passw0rd” ustawiając nowe wybrane hasło.
    Aby zaakceptować zmiany zrestartować serwer amportal restart

2. Zmiana domyślnego hasła meetme.

    Wprowadzić passwd-meetme, a następnie dwukrotnie powtórzyć hasło.

3. Zmiana domyślnego hasła do System Mail.

    Wprowadzić passwd admin, a następnie dwukrotnie powtórzyć hasło.

4. Zmiana domyślnego hasła do SugarCRM.

    Zaloguj się do SugarCRM z dowolnej przeglądarki przez adres HTTP://adres_ip_asterisk_server
    Dane do logowania to admin/password, a następnie po kliknięciu MyAccoun/Change password zmień aktualne hasło.

Analogiczne czynności należy przeprowadzić dla centrali Elastix.

Kolejnym krokiem jest ograniczenie dostępu przez SSH.
Jeśli nie ma takiej konieczności, proszę ograniczyć dostęp SSH tylko wybranym użytkownikom (edycja pliku sshd_config, dodanie AllowUsers username), zaleca się wyłączenie dostępu dla użytkownika root (sshd_config, dodanie PermitRootLogin no).

Dobrym wyjściem jest też zmiana domyślnego portu SSH na inny i zezwolenie na logowanie z konkretnych adresów IP.
Proszę wyłączyć zdalny dostęp do bazy MySQL, zmienić domyślne hasło i usunąć domyślnych (nieużywanych) użytkowników.
Reguły firewalla proszę ograniczyć w taki sposób, aby dostęp do konfiguracji www i bazy danych miały tylko znane osoby (adresu ip).

Zalecamy restrykcyjną politykę dostępu do serwera zarówno dla protokołów VoIP, jak i protokołów dostępu do serwera, na którym zainstalowana jest centrala: ssh, http, https telnet itd. Restrykcyjna polityka powinna dotyczyć również połączeń inicjowanych od strony serwera z zainstalowanym oprogramowaniem TrixBox/Elastix.