Skip to main content

Je Netwerk, Jouw Controle

futuristic-vault.pngOPNsense is een krachtige open-source firewall en router die je volledige controle geeft over je netwerk. Met zijn intuïtieve interface en uitgebreide functionaliteit, kun je snel en efficiënt je netwerk beveiligen en beheren.

Snelle Tips voor Netwerkbeheer:

  • Dashboard: Krijg een snel overzicht van de status van je netwerk, inclusief CPU-gebruik, geheugengebruik, netwerkverkeer en actieve verbindingen.
  • Firewall regels: Beheer eenvoudig je firewall regels om te bepalen welk verkeer is toegestaan en welk verkeer wordt geblokkeerd.
  • NAT (Network Address Translation): Stel port forwarding en andere NAT-regels in om toegang te krijgen tot services binnen je netwerk vanaf het internet.
  • VPN (Virtual Private Network): Creëer veilige VPN-verbindingen om op afstand toegang te krijgen tot je netwerk of om je internetverkeer te versleutelen.
  • Load balancing: Verdeel netwerkverkeer over meerdere servers om de prestaties en beschikbaarheid te verbeteren.
  • Captive portal: Creëer een captive portal om gebruikers te laten authenticeren voordat ze toegang krijgen tot je netwerk.
  • Monitoring en logging: Houd je netwerk in de gaten en los problemen snel op met behulp van real-time monitoring en uitgebreide logging.

Extra handigheidjes:

  • Shell toegang: Gebruik de ingebouwde shell voor geavanceerde configuratie en probleemoplossing.
  • Plugins: Breid de functionaliteit van OPNsense uit met behulp van plugins.
  • Documentatie: Raadpleeg de uitgebreide O

Extra's

Daar waar de switch het hart is van het netwerk op hardware vlak, is Opnsense het hart op software niveau. Als deze (virtuele) server niet draait, wel dan draait er niks. Dit is onze centrale routering, onze firewall, onze DHCP, ons… alles.

De belangrijkste functie van is firewall, maar daarnaast verleent hij ook tal van andere netwerkfuncties. Ik probeer ze hieronder wat voor te stellen. Ik kan hier boeken over schrijven, maar ik ga me trachten te beperken tot het hoofdzakelijke. Kwestie dat je weet waar je kan ‘zoeken’ indien dit nodig lijkt…

Verschillende onderdelen

Enkele zaken die toch nuttig zijn om eventjes te overlopen.

Firewall

Elk goed netwerk begint met een firewall. Een soort fysieke scheiding tussen je interne en je externe netwerk. Meestal zal de firewall alle trafiek naar buiten wel toelaten, maar slechts beperkte verbindingen naar binnen toelaten.

Routering

De firewall zorgt ook voor de verbindingen tussen de verschillende VLAN’s. Indien de firewall niet (correct) werkt, dan zal je bv niet meer vanop een gewone computer op een server kunnen connecteren. Netwerken die hij kent, laat hij met elkaar praten. Netwerken die hij niet kent, jaagt hij het internet op. In vaktermen zijn default gateway.

NAT

De meeste firewalls zijn ook in staat om NAT te verwezenlijken. NAT staat voor Network Adress Translation. Het probleem is namelijk meestal dat je publieke IP-adres maar bestaat uit 1 adres. En in vele huis-tuin-keuken opstellingen kan deze ook nog es van tijd tot tijd wijzigen.  Je kan moeilijk 1 publieke adres doorsturen naar meerdere interne servers. Gelukkige bestaan er vele poorten (van 1 tem 65535). En dankzij deze poorten kunnen we verschillende aanvragen doorsturen naar verschillende server. Als je kan zien, draait deze server extern op poort 17600, maar intern is dit eigenlijk poort 80 (standaard webserver poort). Het is de firewall die deze poorten vertaalt.

VPN

Om op een veilige manier een connectie te maken met het interne netwerk als je bv op reis bent, kan je gebruik maken van VPN. Virtual Private Network. Dankzij deze technologie bouw je als het ware een tunnel doorheen de verschillende netwerken. En als dit succesvol is, dan is het net alsof je remote client (laptop, smartphone…) direct verbonden is met je huisnetwerk.

DHCP

Elke toestel dat iets wil doen op een netwerk, moet beschikken over een IP-adres. Je kan dit manueel instellen, wat natuurlijk het nodige werk met zich meebrengt, of je kan dit laten afhandelen door een DHCP server. DHCP staat voor Dynamic Host Configuration Protocol.
In onze DHCP server zijn er een paar zaken te weten.
 Zo heb je een (kleine) range IP-adressen voor vrij gebruik. Denk bv aan gsm, laptops… die niet alledaags zijn. Deze IP-adressen zijn niet vast. Wat wil zeggen dat je vandaag bv .102 krijgt, en morgen .132.
 En zo heb je ook een range IP-adressen die gekoppeld worden aan gekende toestellen. Dit is handig, omdat je dan telkens hetzelfde IP-adres toekent aan hetzelfde toestel. Zo weet je hoe dat toestel te bereiken is, en zo weet ook de firewall wie er juist zaken aan het versturen is.

Dynamic DNS

Indien je een standaard abonnement hebt bij een internet provider, dan heb je vaak een dynmisch publiek IP adres. Wat betekent dat het IP-adres waarmee je op internet verbonden bent, kan wijzigen door bv een herstart van de modem. Indien je een vast publiek IP adres wenst, is dit natuurlijk geen probleem. Mits goed bij te betalen.
OPNsense heeft een klein mechanischme ingebouwd, die om de x-tijd (bv 15 minuten) controleert of het publieke IP adres is gewijzigd. Is dit niet gewijzigd, dan doet hij er verder niks mee. Is het wel gwijzigd, dan zal hij dit communiceren naar de desbetreffende service provider.
Ik gebruik hier bv de service ‘[Free DNS van afraid](http://freedns.afraid.org/)‘. Deze houdt dus een door mij gekozen subdomein (xxx.mooo.com) bij, en koppelt dit aan het publiek IP adres van het moment. Wel op letten dat mooo.com om de zoveel tijd een soort menselijk antwoord wil. Zij sturen meestal een mailtje, om te vragen of dit nog gebruikt wordt. Indien hier niet op geantwoord wordt, tja, dan gooien ze die xxx.mooo.com in de vuilbak. Daarnaast forward mijn eigen domein (xxx.oniria.be) zijn naam naar dit xxx.mooo.com. Daardoor is het makkelijk te onthouden.

DNSmasq DNS of unbound DNS

IP-adressen zijn leuk. Ze zijn eenvoudig. Het is namelijk gewoon 1, 2, 3… Maar als je zo’n 100 IP-adressen tot je beschikking hebt, begint het al vlug iets moeilijker te worden. Allé, voor mij toch.
Daarom kan je bij OPNsense gebruik maken van een DNS. DNS staat voor Domain Name System.
Eerst en vooral moeten al je toestellen tot een domein behoren. In ons geval is dit oniria.be.
En vervolgens moet elke toestel een unieke naam hebben. Logisch, niet? Want als je 5 Assepoetsers hebt rondlopen, welke gaat er antwoorden als je haar roept?
De DNS zal vervolgens deze naam vertalen naar een IP-adres. Zo hoef jij niet de nummertjes te onthouden, maar enkel de naam.
Enkele voorbeelden?
   - Dina = 192.168.111.63
   - Dommel = 192.168.111.44
   - Kapser = 192.168.111.74
Je ziet, wat ga je vlugger onthouden? De namen, of de IP adressen?

Intrusion Detection

Dit is een heel speciale techniek in de firewall die gaat onderzoeken of er geen louche mensen aan de voordeur staan. Als er bv IP-adressen uit China veelvuldig op de firewall zijn deur bonken, dan gaat het Intrusion Detection systeem hun gewoon bruutweg blokkeren. Bekijk hem als een soort buitenwipper.
Wel opletten, deze technieken zijn soms nogal es ‘gevoelig’, waardoor er soms wel es iets verkeerd wordt geblokkeerd. Dus als er iets niet direct binnen geraakt die wel zou moeten binnen geraken, schakel dan even deze functie uit. Je weet maar nooit.

NTP

NTP, oftewel Network Time Protocol.  Het is altijd leuk dat iedereen op dezelfde golflengte, of tin dezelfde tijdzone zit. Daarom kan iedereen op het interne netwerk zijn klokjes gelijk zetten met OPNsense. Op zijn buurt zet OPNsense de tijd gelijk met de NTP-server van de provider. En de wereldwijde servers op internet.

Log

En een van de laatste handigheden van zo’n firewall is het debuggen. Het controleren van alles wat al dan niet passeert. Als er bv iemand niet kan connecteren, dan kan je hier even in snuisteren, en zien of je zijn of haar connectie ziet. En wat er met gebeurd.
Iets dieper in de zaken?

VPN

Om op een veilige manier een connectie te maken met het interne netwerk als je bv op reis bent, kan je gebruik maken van VPN. Virtual Private Network. Dankzij deze technologie bouw je als het ware een tunnel doorheen de verschillende netwerken. En als dit succesvol is, dan is het net alsof je remote client (laptop, smartphone…) direct verbonden is met je huisnetwerk.

VPN (IPSEC)

1. **Om een gebruiker access geven via VPN:**

* Open in het linkse menu Systeem > Access > Users
* Kies de juiste gebruikersnaam (of maak een nieuwe)
* Sla de gebruiker op en wijzig deze vervolgens
* Voeg bij privileges de optie "IPsec xauth Dialin" toe.


2. **Om de algemene instellingen te kennen (preshared key bv):**

* Open de firewall (opnsense):
http://IPadresVanFirewall (bv http://192.168.0.1)
* Ga links naar VPN 
* Kies voor IPSEC
* Kies onder 'Tunnel settings' de juiste configuratie. Meestal zal je er maar ene hebben, en klik op het potloodje (edit).
* Noteer de gebruikersnaam onder 'My identifier', bv iets@dom.org
* Noteer de preshared key: bv AdfqsdfISDU5614

3. **Windows Clients**
Te schrijven/testen

4. **Android Clients**
* Open de instellingen van je telefoon
* Connecties
* 'Meer' / VPN
* Klik op + om nieuwe toe te voegen.
* Naam: Iets vrij te kiezen, bv MijnVPNservertje
* Type: IPSec Xauth PSK
* Server adres: Publiek IP van je server of domeinnaam (bv VPN.DOM.ORG of 160.125.124.1)
* IPsec-ID: iets@dom.org (voorbeeldje uit stap 2)
* AdfqsdfISDU5614 (voorbeeldje uit stap 2)
* Sla dit op en porobeer te connecteer.
* Gebruik de gebruikersnaam en het wachtwoord van hierboven.

5. **MAC Clients**

6. **IOS Clients**


Goede handleiding voor de setup vind je onder: https://wiki.opnsense.org/manual/how-tos/ipsec-road.html

VPN deel 1 (OpenVPN op firewall)

Om een gebruiker access geven via VPN, moet je eerste een gebruiker aanmaken op de firewall, en diens certificaat download.

  1. Open in het linkse menu Systeem > Access > Users
  2. Maak een nieuwe gebruiker
    1. Geef de juiste gebruikernaam
    2. Maak een wachtwoord aan
    3. Selecteer 'create user certificaat'
    4. Kies 'create'
  3. Selecteer 'Create an internal certificate'
    1. Wijzig Certificate authority naar OPNsense-CA
    2. Wijzig Lifetime (days) naar de gewenste duur (bv 3650 = 10 jaar)

  4. Om het certificaat te downloaden
    1. Ga links naar VPN
    2. Kies voor OpenVPN
    3. Ga naar 'Client Export'
    4. Bij 'Host Name Resolution' kies je voor 'Dynamic DNS (....)'
    5. Bij Additional Configuration Option zet je 'dev tun'
    6. Onder 'Client Install Packages' kies je in de dropdown lijst naast de juiste gebruikersnaam voor 'OpenVPN Connect'. En dit OVPN-bestandje moet je aan de desbetreffende eindgebruiker (met bijhorend gebruikersnaam/wachwoord) leveren.

Netwerk, Algemeen

Network settings

Je kent het wel: "dju, waar moest ik dat nu weer aanpassen?' of "Waar fixeerde ik dat ip-adres?"...
You'll recognize it: ""hmmm, what was that f****ng file to change my local dns? Or we could I fix that IP-address again?

Enkele netwerkinstellingen

IP-addres
>/etc/sysconfig/network-scripts/ifcfg-eth0 
of
/etc/network/interfaces
>
>See with: ifconfig

Gateway:
>/etc/sysconfig/network-scripts/ifcfg-eth0 
of
/etc/network/interfaces
>
>See with: netstat -nr

Subnet:
>/etc/sysconfig/network-scripts/ifcfg-eth0 
of 
/etc/network/interfaces
>
>Controleert je routeringen: route -n

DNS:
>/etc/resolv.conf
>
>In here, you can also specify the search domain
DNS local:
/etc/hosts
>
>Hostname:
/etc/sysconfig/network
>
>See with: hostname

NTP:
>/etc/ntp.conf

Aanpassen vast IP-adres
>vi /etc/network/interfaces 
of 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
auto eth0
iface eth0 inet static
    address 192.168.1.15
    netmask 255.255.255.0
    gateway 192.168.1.1 
>
>auto eth1
iface eth1 inet dhcp 

Some out of the box things
Add second IP on card
>ifconfig eth0:0 111.222.333.444
ifconfig eth0:1 111.222.333.445

Remove second IP on card
>ifconfig eth0:0 del 111.222.333.444

 

MS 2 Network cards, same network

How to add a route on a desktop with two network cards and on same lan?
This comes from a ""problem"" i had configuring a desktop with two interfaces.

The interfaces are on the same lan (take IP .10 and .11) and should go to the same gateway (take IP .1).
The goal is to route FeedA via the first and FeedB via the second card, so they arrive with different source-addresses (that way, different routing is also possible for example on a different pvc).
Anyway, this is what routes to add in the dos-prompt Code:
>route ADD MASK 255.255.255.255 x.x.x.1 METRIC 5 IF 1
route ADD MASK 255.255.255.255 x.x.x.1 METRIC 5 IF 2

So the x.x.x.1 is the same gateway for both routes, the source given with the packets is determined by the IF-argument.

There is a know bug on this!
Issue : When you apply the above route ADD's after a reboot the desktop will go crazy on this and use only one card.

Solution : None, it is a windows feature
Workaround Configure some ""startup""-script with admin rights to apply above route ADD's every time computer is restarted (should be somewhere defined in the registry)

NGinx en https encryptie


NGINX met Cloudflare

https://homenetworkguy.com/how-to/deploy-nginx-proxy-manager-in-dmz-with-opnsense/


https://wiki.slemoal.fr/index.php/OPNSense_NGINX


Simepele NGINX test met gewone webserver???

https://medium.com/@jccwbb/website-protection-with-opnsense-3586a529d487

https://forum.opnsense.org/index.php?topic=19305.0

https://docs.opnsense.org/manual/how-tos/nginx.html

https://homenetworkguy.com/how-to/configure-dynamic-dns-opnsense/

https://forum.opnsense.org/index.php?topic=25198.0

https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-20-04

VPN

Linux - OpenVPN - Aanmaken van vpn certificaten

Vervang in onderstaande procedure de naam GEBRUIKER door de gewenste gebruiker (bv Jan, Piet...), en GEBRUIKER_EMAIL door hun effectieve e-mail adres. Let bij de keuze van de gebruikersnaam op de juiste manier, daar dit later de manier wordt om in de logs de zaken te kunnen analyseren. Alsook is dit belangrijk om later hun certificaat te blokkeren.
1. Open een ssh connectie naar de server
1. Ga naar /etc/openvpn/easy-rsa
1. Voer uit: . ./vars
1. Voer uit: ./build-key vpn_psy_GEBRUIKER
1. Ga naar keys
1. Voer uit: cp keys/psy_vpn_empty.ovpn keys/psy_vpn_GEBRUIKER.ovpn
1. Kopieer de gegevens uit keys/psy_vpn_GEBRUIKER.key onder key in key/psy_vpn_GEBRUIKER.OVPN
1. Kopieer de gegevens uit keys/psy_vpn_GEBRUIKER.crt onder cert in key/psy_vpn_GEBRUIKER.OVPN
1. Zorg ervoor dat je de gebruiker 'beheerder' bent
1. mutt -s "Firm VPN Certificaat" -e "set content_type=text/html" -a "/etc/openvpn/easy-rsa/keys/psy_vpn_GEBRUIKER.ovpn" -- GEBRUIKERS_EMAIL < /var/www/templates/mail_cert.html

VPN Gebruiker, deel 2 (op MS Windows client machine)

  1. Installatie (eenmalig)
  2. Download de OpenVPN Client.
    Voor andere versies, zie de site van OpenVPN.
  3. Start de setup en volg de installatiestappen
    (next, next, ja, ja...)
  4. Kopieer het doorgestuurde VPN-bestandje naar de OpenVPN configuratie map:
    1. C-Schijf > Users (Gebruikers) > Gebruikersnaam > OpenVPN > config
      of (algemener)
    2. C-Schijf > Program files > OpenVPN > config

  5. Openen van VPN connectie
    1. Start OpenVPN** op
      (via bv start of desktop icoontje)
    2. Rechtsklik op het OpenVPN icoontje naast je klokje, en kies voor 'verbinden'
      Indien je meerdere VPN configuraties hebt, zal je hier verschillende locaties zien.
    3. Vul de correcte gebruikersnaam en het bijpassend wachtwoord in.

  6. Sluiten van de VPN connectie
    1. Druk op de knop 'verbreken.

Hoe gebruik ik VPN onder MS Windows?

  1. Openen van VPN connectie
    1. Start OpenVPN** op
      (via bv start of desktop icoontje)
    2. Rechtsklik op het OpenVPN icoontje naast je klokje, en kies voor 'verbinden'
      Indien je meerdere VPN configuraties hebt, zal je hier verschillende locaties zien.
    3. Vul de correcte gebruikersnaam en het bijpassend wachtwoord in.

  2. Sluiten van de VPN connectie
    1. Druk op de knop 'verbreken.

VPN Gebruiker, deel 3 (op Apple)

Wens je een VPN tunnel maken vanop een mac (Apple)?
Dan maak je best gebruik van de gratis client tunnelblick

  1. Download tunnelblick vanaf https://tunnelblick.net
  2. Installeer het 'dmg'-bestandje
  3. Als alles goed is, zou je vervolgens een icoontje (van een tunnel) moeten zien op je balk
  4. Sleep het ovpn bestand van de server hier naartoe.

VPN Gebruiker, deel 3 (op Linux Mint)

  1. Open een terminal venster in linux, en geef volgende commando in (vlugste manier):

    sudo apt install network-manager-openvpn-gnome openvpn-systemd-resolved
  2. Open 'Network verbindingen'
  3. Klik op 'Toevoegen'
  4. Kies voor 'importeer van bestand
  5. Kies je ovpn bestandje

  6. Installatie via CLI
    Je kan ook via command line dit makkelijk toevoegen:

    nmcli connection import type openvpn file ****.ovpn

Wat ik wel al gemerkt heb, is dat je ook best de sleutelrichting van de extra TLS-authenticatie op 1 vast zet. Anders kan het gebeuren dat er timeouts optrenden...

Pin Layout Cisco console USB A <> RJ45

Following pin layout can be used to connect a USB cisco console port towards a RJ45 connector (fe a console server).
I've used a standard USB cable (standard colors) and a blue cisco console cable (flat one). 
Don't know why, but with a normal UTP cable, I had issues...

**PIN Layout** 

| USB | Color A | Color B | RJ45 |
| -- | -- | -- | -- |
| 1 | Red | Brown | 2 |
| 2 | White | Red | 3 |
| 3 | Green | Green | 6 |
| 4 | Black | Orange | 4 |

Snmpd.conf:

>SNMP
com2sec readonly  default         SNMPROSTRING
com2sec readwrite default         SNMPRWSTRING
group MyROSystem v1        paranoid
group MyROSystem v2c       paranoid                                                                                                                                            
group MyROSystem usm       paranoid                                                                                                                                            
group MyROGroup v1         readonly                                                                                                                                            
group MyROGroup v2c        readonly                                                                                                                                            
group MyROGroup usm        readonly                                                                                                                                            
group MyRWGroup v1         readwrite                                                                                                                                           
group MyRWGroup v2c        readwrite                                                                                                                                           
group MyRWGroup usm        readwrite                                                                                                                                           
view all    included  .1                               80                                                                                                                      
view system included  .1.3.6.1.2.1.1                                                                                                                                           
access MyROSystem ""     any       noauth    exact  system none   none                                                                                                         
access MyROGroup ""      any       noauth    exact  all    none   none                                                                                                         
access MyRWGroup ""      any       noauth    exact  all    all    none                                                                                                         
proc apache2 20 0                                                                                                                                                                        
syslocation Atelier; Rack                                                                                                                                                      
syscontact info@oniria.be

Some basic steps to configure a switch port

First of all, you should figure out in which vlan you want to put the port (host). You can have a nice overview of the vlans with following command:
>show vlan

To change the port settings, you can use following commands.
Go into the proper port:
>conf t (configure terminal)
int fa 0/3 (interface fastethernet 0/3)
speed 100
dupflex full
sw ac vl 1 (switchport access vlan 1)
Description fehostname

For a CATOS, this is a little bit different:
>set port speed 4/6 1000
set port duplex 4/6 full
set port name 4/6 hostname

Switchport information

If you want to know on which port your server is connected, you can use following commands.

>lldpctl is based on and validated with cisco CDP (Cisco Discovery Protocol)
lldpctl 
> ____
>LLDP neighbors:
> ____
>Interface:    eth0, via: CDPv2, RID: 3, Time: 64 days, 03:09:46
  Chassis:     
    ChassisID:    local 123123132
    SysName:      123123132
    SysDescr:     cisco WS-C6506 running on
                  Cisco Internetwork Operating System Software 
                  IOS (tm) s3223_rp Software (s3223_rp-ENTSERVICESK9_WAN-M), Version 12.2(18)SXF17a, RELEASE SOFTWARE (fc1)
                  Technical Support: http://www.cisco.com/techsupport
                  Copyright (c) 1986-2010 by cisco Systems, Inc.
                  Compiled Mon 01-Mar-10 20:55 by tinhuang
    TTL:          180
    MgmtIP:       192.168.0.1
    Capability:   Bridge, on
    Capability:   Router, on
  Port:        
    PortID:       ifname GigabitEthernet2/1
    PortDescr:    GigabitEthernet2/1
  VLAN:         111, pvid: yes VLAN #111
> ____
>Interface:    eth1, via: LLDP, RID: 2, Time: 64 days, 03:09:56
  Chassis:     
    ChassisID:    mac 67:be:db:c8:51:81
    SysName:      123123132
    SysDescr:     Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 12.2(53)SE2, RELEASE SOFTWARE (fc3)
                  Technical Support: http://www.cisco.com/techsupport
                  Copyright (c) 1986-2010 by Cisco Systems, Inc.
                  Compiled Wed 21-Apr-10 06:08 by prod_rel_team
    TTL:          120
    MgmtIP:       172.12.12.1
    Capability:   Bridge, on
    Capability:   Router, off
  Port:        
    PortID:       ifname Gi0/5
    PortDescr:    GigabitEthernet0/5
> ____

Or you can check this also with tcpdump which should work for all type of hardware switches:

>tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000'   
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
13:59:12.961511 CDPv2, ttl: 180s, checksum: 692 (unverified), length 477
        Device-ID (0x01), length: 34 bytes: '123123132'
        Version String (0x05), length: 291 bytes: 
          Cisco Internetwork Operating System Software 
          IOS (tm) s3223_rp Software (s3223_rp-ENTSERVICESK9_WAN-M), Version 12.2(18)SXF17a, RELEASE SOFTWARE (fc1)
          Technical Support: http://www.cisco.com/techsupport
          Copyright (c) 1986-2010 by cisco Systems, Inc.
          Compiled Mon 01-Mar-10 20:55 by tinhuang
        Platform (0x06), length: 14 bytes: 'cisco WS-C6506'
        Address (0x02), length: 13 bytes: IPv4 (1) 192.168.255.42
        Port-ID (0x03), length: 18 bytes: 'GigabitEthernet1/5'
        Capability (0x04), length: 4 bytes: (0x00000009): Router, L2 Switch
        Prefixes (0x07), length: 30 bytes:  IPv4 Prefixes (6): 127.0.0.0/8 192.168.255.32/28 
        VTP Management Domain (0x09), length: 0 byte: ''
1 packets captured
1 packets received by filter
0 packets dropped by kernel

TCPdump

TCPDump is een heel goed commandootje om diepgaandere analyses te verwezenlijk. Ware het niet dat het altijd verdomd moeilijk is om die opties juist te zetten. Daarvoor volgen hier enkele van de meest gebruikte commando's...

Listen for all traffic for host x on network eth0
>tcpdump -n host 10.10.10.20 -i eth0 -vvv

Listen for all traffic for host x and y on network eth0
>tcpdump -n host 10.10.10.20 and host 10.10.10.21 -i eth0 -vvv

Listen for all traffic for connection on port x on network eth0
> tcpdump -n dst port 8080 -i eth0 -vvv

Listen for all traffic for host x:
> tcpdump -n host 10.10.10.20 -i any -vvv

Export to file
>tcpdump -w export1.cap -s 1514 host 192.168.254.110
>tcpdump -i eth-s4p4c0 -w dump1.cap host 192.168.254.203 and host 172.18.235.51

Nice article about the options: rationallyparanoid.com/articles/tcpdump.html

Tests on a vpn-box

These are some fast test to see if your vpn-boxes is done the things he needs to do...

How to check if your tunnels are correctly mounted?
>show crypto session

You'll need a result that looks like (pay special attention to the session status):
>Crypto session current status
Interface: Ethernet0
Session status: UP-ACTIVE
Peer: 212.71.17.65 port 4500
IKE SA: local 192.168.253.26/4500 remote 212.71.17.65/4500 Active
IPSEC FLOW: permit 47 host 10.128.76.128 host 212.71.17.65
Active SAs: 2, origin: crypto map
>
>Interface: Ethernet0
Session status: UP-ACTIVE
Peer: 194.7.19.33 port 4500
IKE SA: local 192.168.253.26/4500 remote 194.7.19.33/4500 Active
IPSEC FLOW: permit 47 host 10.128.76.128 host 194.7.19.33
Active SAs: 2, origin: crypto map

Some steps to troubleshoot a vpn tunnel
>debug crypto isakmp (deb cry is)
terminal monitor (term mon)
clear crypto session (cle cry ses)

This will disconnect your vpn-box for a while (+/- 5 seconds), but it should come back up rarther quick, and give you a lot of information about the tunnels.

How to test a 'unicast' connection?
>telnet 194.7.19.65 1494 /source-interface vlan 2

Basiclly, you connect towards a public ip (make sure that the route is known) on a specific port (make sure that there's no blocking firewall) from a specific source (make sure about the route, access-list and maybe natting).

How can you now test if the mutlicast is coming in?
>sh ip mroute (see if the dedicated group is in there)
sh ip mroute count (see if any packets are passing by)
sh ip igmp membership all (who's asking what?)

Wifi Beheer met Omada

Omada Controller software is een handig tooltje voor mensen die een TP-link Access Point hebben. Of eigenlijk moet ik zeggen, een heel handig tooltje voor mensen die meerdere TP-link Access Points hebben.
Dankzij de software kan je per Access Point zaken gaan configureren. Maar nog beter, de WIFI instellingen wijzigen voor alle Access Points. Zo kan je op een vlugge manier een nieuw wachtwoord geven voor je draadloze netwerk. Wat elke goede huisvader van tijd tot tijd es zou moeten doen. 

Hoe ga je nu te werk?

1. Start het programma Omada controller op. 
Dit start als het ware een webserver op de achtergrond die je toelaat om de beheerspagina te openen.
[center]![omada_01|293x216, 50%](upload://wVFFrMrtXrhrmrJqSL2aTROOvMx.png)[/center] 

2. Login
Geef de gebruikersnaam en wachtwoord in.
[center]![omada_02|690x405, 50%](upload://5WLfzgDH17NShdJfCorfvykp5S2.png)[/center] 

3. Controlebord
Als alles goed is, zou je nu op het dashboard terecht moeten komen. Hier krijg je een overzicht van de access points die online zijn (of niet), van eventuele gebruikers die aangelogd zijn, van het verbruik van sommigen (je zou versteld staan)...
[center]![omada_03|690x469, 75%](upload://DaWDmiirQaMYpOT9KbQESfo3Rj.png)[/center] 

4. Wifi Instellingen
Klik je nu onderaan op de knop 'Wireless Settings', dan krijg je een soort popup met de meest belangrijke instellingen van je wifi netwerken.
[center]![omada_04|632x500, 50%](upload://nF5FXA8mMnWj4GiTeUv4BNCekxx.png)[/center] 

1. Wifi wachtwoorden
En tot slot is het maar even op de instellingsknop te drukken van het desbetreffende wifi netwerk, en je kan het wachwoord (of de naam) makkelijk wijzigen...
[center]![omada_05|682x467, 50%](upload://d73qugsl2ddHBS1mumtFRnovOoj.png)[/center]

Sniffen op een firewall

Soms is het nodig om een beter zicht te hebben op wat er nu juist gebeurt op het netwerk. De standaard logging is gewoonweg niet voldoende. Heb je nood aan een diepere analyse, dan kan je de daadwerkelijke trafiek gaan inspecteren. Los van het feit of het correct afgehandeld wordt of niet. Elke request komt toe op je firewall, en zal geweigerd worden of toegelaten worden.
Zo'n diepere analyse noemt men sniffing. Je ziet als het ware alles binnen komen, verwerkt worden en terug buiten gaan.

Bij checkpoint kan je dit doen met het commando fw monitor. Hieronder volgen enkele voorbeelden.
>FW monitor
fw monitor -e 'accept src=10.10.10.111 or dst=10.10.10.11;' -u

Dit controleert alles van en naar het IP-adres 10.10.10.11
De -u optie zorgt ervoor dat je de ID ziet van het pakket (makkelijk voor samenhorende pakketten te bekijken).
>fw monitor -e 'accept src=10.10.10.11 or dst=10.10.10.11;' -u -o 10101011.snif

Dit controleert alles van en naar het IP-adres 10.10.10.11
De -u optie zorgt ervoor dat je de ID ziet van het pakket (makkelijk voor samenhorende pakketten te bekijken).
De optie -o schrijft dan terug de volledig sniffing weg in het bestandje 10101011.snif

>fw monitor -e 'accept sport=80 or dport=80;' -u

Dit controleert alles van en naar de poort 80 (internet trafiek)
De -u optie zorgt ervoor dat je de ID ziet van het pakket (makkelijk voor samenhorende pakketten te bekijken).

Je ziet, met enkele kleine optie kan je de sniffing vergemakkelijken. Je moet maar gewoon even 'fw monitor' opstarten. Veel geluk met je analyse. ;)


**TCP dump**

Naast fw monitor, kan je ook gebruik maken van het welgekende 'tcpdump'. Hiermee kan op een bepaalde interface alle (gefilterde) traffic analyzeren. Even opletten dat dit soms wel een pak informatie kan opleveren. Dus bezint vooraleer ge begint.
>tpcdump -i eth-s1p4 -vvv -w dumpfile.cap 'host 192.168.168.168'

Met dit commando filter je alle traffic op de interface 1/4 voor de machine 192.168.168.168.
Vervolgens schrijft dit het resultaat weg in een bestandje dumpfil.cap.
In mijn ogen geeft dit het beste resultaat.
> tpcdump -i eth-s1p4 -vvv 'host 192.168.168.168'

Dit doet juist hetzelfde, met dit verschil dat er bestandje wordt aangemaakt, maar dat je alles live op je scherm krijgt.
In geval van veel traffic, niet zo interessant natuurlijk...


**Wireshark**
Een handigheidje is dat je extra software gebruikt om de sniffing te analyseren. Dit kan je bv doen met wireshark. Wireshark laat je tevens toe een snif uit te voeren op de machine waarop dit geinstalleerd is. En laat je ook toe om andere snif bestanden in te lezen. Dus degene die je creeerde met de optie -o.

O ja, wens je de snif te stoppen? Hiervoor gebruik je de gewone break-sequence (in ons geval CTRL-C).

Sniffen op een cisco router

Yes you can capture/snif traffic on a Cisco router, can be very useful for troubleshooting ;-).
The only requirement is IOS 12.4(20) and DRAM is the limit for buffering captured data.

> create access-list that filters traffic you want to capture
> conf t
> no ip access-list extended CAPTURE_ACL
> ip access-list extended CAPTURE_ACL
> permit tcp 194.7.19.0 0.0.0.255 any
> permit tcp any 194.7.19.0 0.0.0.255
> end

Create buffer and link buffer with access-list
> monitor capture buffer CAPTURE
> monitor capture buffer CAPTURE filter access-list CAPTURE_ACL

Optionally change the packet-size to be captured
> monitor capture buffer CAPTURE max-size 256

Create capture point (interface where to capture)
> monitor capture point ip cef INT Vlan1 both

Create capture point (complete 'router')
> monitor capture point ip process-swiched INT both

Start/stop the capture
> monitor capture point start INT
> monitor capture point stop INT

Export the capture to a file
> monitor capture buffer CAPTURE export flash:filename.cap

On the router make sure the scp server is running (ip scp server enable) if you want to copy the file to a server with the > SCP protocol e.g. Cacti. This file can be read with wireshark/ethereal or tcpdump.

Remove the configuration of the capture
> conf t
> no ip access-list extended CAPTURE_ACL
> end
> no monitor capture buffer CAPTURE
> no monitor capture point ip cef INT Vlan1 both