Szukaj

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

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

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.

PortProtokółOpisCzy wymagany?
5001 lub 443TCPPort 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
5015TCPTen port jest używany przez kreator instalacji online (NIE narzędzie wiersza poleceń konfiguracji 3CX) tylko podczas procesu instalacjiOpcjonalnie – tylko podczas procesu instalacji, gdy instalator internetowy jest używany ze źródła zewnętrznego
5060UDP oraz TCPSystem 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
5061TCPSystem telefoniczny 3CX (SecureSIP) TLSTak – jeśli zamierzasz używać bezpiecznych zdalnych kont SIP
5090UDP oraz TCPOdbiornik usług protokołu tunelu 3CXTak – 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-10999UDPSerwer multimediów 3CX (RTP) – strumienie audio / wideo / t38 w sieci WANTak – jeśli zamierzasz korzystać z rozszerzeń zdalnych, WebRTC lub dostawcy VoIP
2528TCPSerwer 3CX SMTP – musi pozwolić PBX passthrough w sieci, aby centrala PBX wysyłała powiadomienia e-mail za pośrednictwem 3CX SMTPNie

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.

Share this post

Masz pytania lub potrzebujesz oferty?

Skontaktuj się z naszym doradcą.

Popularne wpisy

Powiązane posty

Projekt wystartował!

Monitorowanie i raportowanie Twojego serwera VoIP