Przekierowanie portów Fortigate do 3CX (statyczny NAT 1:1)

For privacy reasons YouTube needs your permission to be loaded. For more details, please see our Polityka Prywatności.
I Accept

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.

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.
    By Published On: 31 maja, 2021Categories: 3CXMożliwość komentowania Przekierowanie portów Fortigate do 3CX (statyczny NAT 1:1) została wyłączonaTags: , ,