Fakt, że po zainstalowaniu 3CX nie możesz od razu z niego skorzystać, zaskoczył już niejednego użytkownika systemu. Jeśli jesteś przyzwyczajony do systemów typu Asterisk, gdzie do pełni funkcjonalności wystarczy sama instalacja, to 3CX działa zupełnie inaczej. Prawidłowo skonfigurowane przekierowania są WYMAGANE do działania systemu.
Na pierwszy rzut oka wydaje się to dziwnym pomysłem. Jeśli jednak walczyłeś z jednostronnym audio lub rozłączaniem połączeń po 32 sekundach, to wymaganie poprawnych przekierowań od samego początku, przestaje być takie głupie ?
Oczywiście 90% osób, które to czyta stwierdzi, że ma innego firewalla i nie może w pełni skorzystać z opisanych tutaj poleceń. Powiem więc na wstępie: Google to Twój dobry przyjaciel.
W tym poście pokaże jak poprawnie skonfigurować Fortigate 60C chociażby z powodu, że większość użytkowników nie korzysta z najnowszego Fortigate 50F, a nawet jeśli, to polecenia będą bardzo podobne … no może nie licząc SIP ALG, które w różnych wersjach wyłącza się nieco inaczej.
Spis treści
1) Lista portów do przekierowania
Poniżej znajduje się kompletna lista portów przekierowania w 3CX (dla wersji 15+). Dotyczy to oczywiście domyślnych wartości, jeśli podczas instalacji nie zaznaczono inaczej.
Port | Protokół | Opis | Czy wymagany? |
---|---|---|---|
5001 lub 443 | TCP | Port HTTPs serwera WWW. Ten port można skonfigurować | Tak – jeśli zamierzasz korzystać z klienta 3CX, funkcji Bridge Presence, zdalnych telefonów IP spoza sieci LAN i funkcji 3CX WebMeeting |
5015 | TCP | Ten port jest używany przez kreator instalacji online (NIE narzędzie wiersza poleceń konfiguracji 3CX) tylko podczas procesu instalacji | Opcjonalnie – tylko podczas procesu instalacji, gdy instalator internetowy jest używany ze źródła zewnętrznego |
5060 | UDP oraz TCP | System telefoniczny 3CX (SIP) | Tak – jeśli zamierzasz korzystać z dostawców VoIP i zdalnych rozszerzeń, które NIE używają protokołu 3CX Tunnel Protocol / 3CX SBC |
5061 | TCP | System telefoniczny 3CX (SecureSIP) TLS | Tak – jeśli zamierzasz używać bezpiecznych zdalnych kont SIP |
5090 | UDP oraz TCP | Odbiornik usług protokołu tunelu 3CX | Tak – jeśli zamierzasz używać zdalnych kont przy użyciu protokołu 3CX Tunnel (w klientach 3CX dla systemów Windows / Android / iOS) lub podczas korzystania z kontrolera granicznego sesji 3CX (SBC) |
9000-10999 | UDP | Serwer multimediów 3CX (RTP) – strumienie audio / wideo / t38 w sieci WAN | Tak – jeśli zamierzasz korzystać z rozszerzeń zdalnych, WebRTC lub dostawcy VoIP |
2528 | TCP | Serwer 3CX SMTP – musi pozwolić PBX passthrough w sieci, aby centrala PBX wysyłała powiadomienia e-mail za pośrednictwem 3CX SMTP | Nie |
2) Przekierowanie portów
Na początek przejdź do VDOM, jeśli korzystasz, a następnie „Policy & Objects” > „Objects” > „Virtual IPs” > „New Virtual IP„
Następnie zdefiniuj następujące zmienne (nie opisywałem zmiennych, których nie potrzebujemy):
- Name – unikalna nazwa np. 3CX SIP UDP
- Interface – możesz opcjonalnie wybrać publiczny interfejs np. wan1
- External IP Address/Range – publiczny adres IP
- Mapped IP Address/Range – lokalny adres IP centrali
- Port Forwarding – definicja portu(ów) do przekierowania
- Protocol – np. UDP
- External Service Port – port do przekierowania np. 5060-5060 (lub zakres portów 9000-10999)
- Map to Port – port lokalny np. 5060-5060 (lub zakres portów 9000-10999)
Na tą chwile nie będziemy definiowali „Source Address Filter„, ale możemy zawężyć ruch przychodzący z poziomu „IPv4 Policy„.
Na podobnej zasadzie skonfiguruj wszystkie pozostałe porty omówione w pkt. 1.
Na koniec dodaj politykę przychodzącą w „Policy & Objects” > „Policy” > „IPx4” > „New Policy„, a w niej:
- Incoming Interface – interfejs publiczny np. WAN1
- Source Address – 'all’
- Outgoing Interface – interfejs lokalny np. LAN
- Destination Address – wybierz z listy wszystkie przekierowania zdefiniowane przed chwila w „Virtual IPs”
- Schedule – 'always’
- Service – 'ALL’ lub poszczególne usługi, jeśli zdefiniowano
- Action – 'ACCEPT’
- Firewall / Network Options
- NAT – 'OFF’
- Security Profiles / Traffic Shaping / Logging Options – według własnych preferencji
- Enable this policy – 'ON’
3) SIP ALG
SIP ALG (SIP Application Layer Gateway) to rozwiązanie, którego celem jest zapobieganie niektórym problemom powodowanym przez zapory routera poprzez sprawdzanie ruchu VoIP (pakietów typu REGISTER, INVITE) i w razie potrzeby modyfikowanie informacji, żeby rozwiązać problemy z NAT. W praktyce jednak powoduje to więcej problemów niż rozwiązuje.
Wyłączmy więc SIP ALG w naszym Fortigate 60C.
Źródło: https://kb.fortinet.com/kb/documentLink.do?externalID=FD36405
Usunięcie odpowiedniego pomocnika sesji. Sprawdź identyfikator pomocnika sesji SIP:
# config system session-helper
show
Wśród wyświetlanych ustawień będzie jeden podobny do poniższego przykładu:
edit 13
set name sip
set protocol 17
set port 5060
next
Tutaj wpis 13 jest tym, który wskazuje na ruch SIP, który wykorzystuje port UDP 5060 do sygnalizacji.
W tym przykładzie następnymi poleceniami do usunięcia odpowiedniego wpisu będą:
delete 13
end
Zauważ, że wpis SIP nie musi mieć wartości 13, więc warto się upewnić czy usuwamy właściwy wpis.
Zmień domyślny tryb voip-alg, aby wyłączyć SIP-ALG.
Domyślnie SIP-ALG jest włączony. Za pomocą polecenia „show full” można wcześniej zweryfikować te ustawienia.
Uruchamiając następujące polecenie, przekażemy do FortiGate informację, aby wyłączyć SIP-ALG (oparte na proxy) i użyć SIP-helper (oparte na kernel-helper):
# config system settings
set default-voip-alg-mode kernel-helper-based
set sip-helper disable
set sip-nat-trace disable
end
Żeby zastosować zmiany musimy wyczyścić sesje lub zrestartować naszego firewalla. Polecenie wyczyszczenia sesji dotyczy WSZYSTKICH sesji, chyba że zostanie zastosowany filtr, a zatem przerwie cały ruch!
# diagnose system session clear
Alternatywnie, uruchom ponownie FortiGate za pomocą GUI lub CLI. Polecenie CLI to:
# execute reboot
W razie potrzeby można również wyłączyć SIP-ALG z profilu VoIP.
W tym przypadku ruch SIP będzie obsługiwany przez pomocnika SIP, nawet jeśli domyślny tryb voip-alg jest ustawiony na oparty na proxy.
Dzięki temu SCCP może być obsługiwany przez SIP-ALG, a SIP przez pomocnika sesji sip.
# config voip profile
edit default
# config sip
set status disable
end
end
end
Osobiście zazwyczaj po prostu restartuję Fortigate, ale oczywiście zrobisz jak uważasz.
I warto pamiętać, że jeśli posiadasz VDOMy to musisz zastosować te zmiany dla każdego z nich indywidualnie.
4) Statyczny NAT 1:1
Niestety ustawienie przekierowania ruchu przychodzącego nie gwarantuje, że nasza centrala będzie odpowiadać na zapytania tych samym portem. W efekcie testy firewalla mogą pokazywać niezgodność portów (ang. „port mismatch”). Żeby rozwiązań ten problem warto dodać statyczny NAT 1 do 1 dla ruchu wychodzącego z centrali VoIP.
Żeby dodać te ustawienia, na początek zdefiniujmy nasz adres lokalny adres IP w „Policy & Objects” > „Objects” > „Addresses” > „New Address„, a w nim:
- Name – nazwa adresu np. 3CX
- Type – 'IP/Netmask’
- Subnet / IP Range – lokalny adres IP centrali
- Interface – może być 'any’ lub interfejs LAN
- Show in Address List – zaznaczone
W dalszej kolejności dodamy nasz publiczny adres IP w „Policy & Objects” > „Objects” > „IP Pools” > „New Dynamic IP Pool„, a w nim:
- Name – nazwa np. WAN1
- Type – 'One-to-One’
- External IP Range – publiczny adres IP
- ARP Reply – odznaczone (domyślnie zaznaczone)
Na koniec dodaj politykę wychodzącą w „Policy & Objects” > „Policy” > „IPx4” > „New Policy„, a w niej:
- Incoming Interface – interfejs lokalny np. LAN, VLAN lub podobny
- Source Address – adres zdefiniowany w „Addresses”
- Outgoing Interface – interfejs publiczny np. WAN
- Destination Address – 'all’
- Schedule – 'always’
- Service – 'ALL’ lub poszczególne usługi, jeśli zdefiniowano
- Action – 'ACCEPT’
- Firewall / Network Options
- NAT – ON
- Use Dynamic IP Pool – wybierz z list pozycję zdefiniowaną wcześniej w „IP Pools”
- Security Profiles / Traffic Shaping / Logging Options
- Enable this policy – 'ON’
Zastosowanie wszystkich powyższych ustawień sprawi, że Firewall w 3CX przejdzie wszystkie testy i będziesz mógł bez problemu zacząć korzystać ze swojej nowej centrali.
To jest tylko podstawowa konfiguracja przekierowań portów, która nie uwzględnia dodatkowych zabezpieczeń, takich jest np. zawężenie ruchu przychodzącego tylko do określonych adresów IP i/lub FQDN *.3cx.com.