Fortinet - Netwerkproblemen analyseren met een FortiGate
Fortinet
Netwerken worden steeds complexer en onoverzichtelijker. Daarom zijn er hulpmiddelen nodig om problemen te analyseren en op te sporen.
Een FortiGate firewall biedt hier een breed scala aan tools. Vandaag wil ik er een paar introduceren en uitleggen hoe ze te gebruiken.
De eenvoudigste tool is natuurlijk de klassieke ping, die in een FortiGate wordt uitgevoerd via de CLI met het commando execute ping. Er zijn echter nog mogelijkheden om de ping gerichter te gebruiken. Gebruik hiervoor het commando execute ping-options <'parameter'>. Hierbij kunnen de volgende parameters worden gebruikt:
-
adaptive-ping
FortiGate stuurt het volgende pakket zodra het laatste antwoord is ontvangen. - data-size <'bytes'> Specificeer de datagramgrootte in bytes.
- df-bit <'yes | no'> Stel df-bit in op yes om te voorkomen dat het ICMP-pakket wordt gefragmenteerd. Stel df-bit in op no om fragmentatie van het ICMP-pakket toe te staan.
- pattern <'2-byte_hex'> Wordt gebruikt om de optionele gegevensbuffer aan het einde van het ICMP-pakket te vullen. De grootte van de buffer wordt gespecificeerd met de parameter data_size. Hiermee kunnen pakketten van verschillende grootte worden verstuurd om het effect van de pakketgrootte op de verbinding te testen.
- repeat-count <'repeats'> Geef aan hoe vaak de ping moet worden herhaald.
- Source {auto | <'source-intf_ip'> } Geef aan vanaf welke FortiGate interface de ping moet worden verzonden. Als u auto specificeert, selecteert de FortiGate unit het bronadres en de interface op basis van de route naar de <'host-name_str'> of <'host_ip'>. Het opgeven van het IP-adres van een FortiGate interface wordt gebruikt om verbindingen naar verschillende netwerksegmenten te testen vanaf de opgegeven interface.
- timeout <'seconds'> Geef in seconden aan hoe lang er gewacht moet worden tot de ping-tijd verstreken is.
- tos <'service_type'> Stel het ToS-veld (Type of Service) in de pakkethoofding in om een indicatie te geven van de gewenste kwaliteit van de dienst .
- Vertraging minimaliseren
- doorvoer Maximaliseer doorvoer
- betrouwbaarheid Maximaliseer de betrouwbaarheid
- Minimaliseerlage kosten
-
ttl
Specificeer de tijd tot leven. Time to live is het aantal hops dat het ping-pakket mag maken voordat het wordt weggegooid of teruggestuurd. - validate-reply {yes | no} Kies ja om antwoordgegevens te valideren.
- view-settings Toont de huidige instellingen van de ping-opties.
- reset Reset de instellingen.
Natuurlijk kunt u opties combineren om het gewenste resultaat te krijgen. Hier is een voorbeeld:
ping-opties uitvoeren source 192.168.10.254 repeat-count 50
ping 10.10.10.234 uitvoeren
Deze combinatie zou een ping uitvoeren met het bronadres 192.168.10.254 en het bestemmingsadres 10.10.10.234. Er worden 50 PING-pakketten verzonden.
Als u wilt weten welke firewallregel in een specifiek geval van toepassing is, kunt u dit ook achterhalen via de CLI. Hiervoor wordt het volgende commando gebruikt:
diag firewall iprope lookup <'src_ip'> <'src_port'> <'dst_ip'> <'dst_port'> <'protocol'> <'Source interface'>
- <'src_ip'> Bron adres
- <'src_port'> Bronpoort
- <'dst_ip'> Bestemmingsadres
- <'dst_port'> Bestemmingspoort
- <'protocol'> Welk protocol moet worden gesimuleerd, bijvoorbeeld TCP of UDP?
- <'source interface'> Broninterface waarvan het verzoek moet worden gesimuleerd
Als de verzoeken correct worden uitgevoerd, krijg je resultaten als deze:
FortiGate # diag firewall iprope lookup 10.187.1.100 12345 8.8.8.8 53 udp port2
FortiGate # diag firewall iprope lookup 10.187.1.100 12345 8.8.8 53 tcp port2
De eerste query resulteert in het firewall beleid met ID 0. Dit zou de impliciete deny regel zijn die altijd onderaan staat en alle netwerkverkeer blokkeert dat niet in een van de voorgaande regels past.
Met de tweede query krijgen we het resultaat dat het firewallbeleid met ID 2 verantwoordelijk is. Dit zorgt ervoor dat de juiste firewallregel wordt toegepast.
Maar wat doe je als alles lijkt te kloppen, maar het nog steeds niet netjes loopt?
Dan moet je direct naar het netwerkverkeer kijken. FortiGate biedt hiervoor verschillende mogelijkheden. Via de WebGUI of de CLI.
Pakketopname via WebGUI
Via Network --> Packet Capture in de FortiGate WebGUI kunt u met behulp van enkele opties snel gegevens genereren voor analyse.
- Selecteer de interface waarop de FortiGate de gegevens moet verzamelen.
- Het aantal pakketten dat verzameld moet worden, het maximum is 10.000.
Als u de filters activeert, hebt u nog de volgende nuttige opties:
- Host(s) Voer adressen in waarvan de gegevens moeten worden verzameld. U kunt meerdere adressen invoeren met een , . Voorbeeld: 192.168.10.254, 10.10.10.234
- Poort(en) Ook hier kunt u meerdere poorten invoeren, gescheiden door een , . Voorbeeld: 443, 80
- VLAN(s) Als u meerdere VLAN's op één interface in uw netwerk gebruikt, kunt u de VLAN's specifiek specificeren. Voorbeeld: 1, 4096
- Protocol(en) Hier voert u de nummers in van de protocollen die u wilt analyseren. U vindt de nummers in de officiële IANA-documentatie: IANA Protocol numbers
- Include IPv6 Packets Hiermee kunt u niet alleen IPv4-pakketten opnemen, maar ook IPv6-pakketten, mochten die in uw netwerk worden gebruikt.
- IncludeNon-IP Packets Als u ARP, DHCP of andere protocollen die niet altijd IP's gebruiken wilt opnemen, kunt u ze via deze optie opnemen.
Sla de selectie op. Deze kan vervolgens worden geselecteerd onder Netwerk -> Pakketopname. U kunt de opname starten via het rechtsklik menu.
Als u de opname downloadt, wat ook mogelijk is terwijl de opname nog loopt, krijgt u een PCAP-bestand dat u kunt openen en bekijken in een analysetool zoals Wireshark.
Pakketsnuffelen via CLI
U kunt ook snel en gemakkelijk gericht netwerkverkeer observeren via de opdrachtregel.
Het commando is als volgt opgebouwd:
diag sniffer pakket <'interface'> <'filter'> <'verbose'> <'count'> a
- <'interface'> De interface die moet worden gebruikt voor het afluisteren. De naam is hier verplicht. Voorbeeld: wan1 of WLAN-Gaeste. Merk op dat de naam hoofdlettergevoelig is. Als je een tunnelinterface hebt die WLAN-Gaeste heet, zal wlan-gaeste niet werken.
- <'filter'> Waarschijnlijk de meest complexe en krachtige parameter. Hier heb je verschillende mogelijkheden die gecombineerd kunnen worden:
-
src|dst host
Specificatie van het bron- of bestemmingsadres. - arp|ip|gre|esp|udp|tcp Welke protocollen moeten worden gecontroleerd.
-
port
Welke poort moet worden bewaakt. - <'verbose'> Hoe uitgebreid de pakketten moeten worden geregistreerd:
- 1: Output headers van pakketten.
- 2: Uitvoer koppen en gegevens van IP-pakketten.
- 3: Uitvoer kop en gegevens van Ethernet-pakketten.
- 4: Output headers van pakketten met interface namen.
- 5: Output headers en data van IP van pakketten met interface namen.
- 6: Output headers en data van Ethernet van pakketten met interface naam.
-
Hoeveel pakketten moeten worden opgenomen. Als hier een 0 wordt ingevuld, is de opname permanent. De opname kan worden gestopt met Ctrl+C. - a Hier worden dan absolute tijdstempels gebruikt. Normaal gesproken wordt de tijd weergegeven in oplopende volgorde vanaf het begin van de opname in seconden. De parameter geeft dan de huidige tijd en datum weer.
Voorbeeld: diag sniffer pakket intern "host 192.168.0.130 en 192.168.0.1 en tcp poort 80" 1
Hier wordt alleen het netwerkverkeer geregistreerd dat heeft plaatsgevonden tussen de twee hosts op poort 80 met het TCP-protocol.
Ik hoop dat ik u een goede eerste indruk heb kunnen geven van de analysemethoden van de FortiGate.