Server::Firewall
Firewall Algemeen
Linux heeft, net als bijv. Windows, een eigen ingebouwde firewall, namelijk IPtables.
IPtables is een front-end voor de “netfilter hooks” op kernelniveau welke de Linux-netwerkstack kunnen manipuleren.
IPtables werkt door elk pakket dat de netwerkinterface doorkruist te vergelijken met een reeks regels om te beslissen wat te doen, vergelijkbaar met een policy-based ofwel rule-based firewall.
UFW
Uncomplicated FireWall, is een interface met IPtables, dat er op gericht is het configuratieproces van een firewall te vereenvoudigen.
Zie ook
How to Set Up a Firewall with UFW on Ubuntu
Hoewel IPtables een solide en flexibel tool is, is het vooral voor beginners moeilijk om te leren hoe ze het moeten gebruiken om een firewall correct te configureren.
Ubuntu maakt gebruik van Linux IPtables, waarmee een volwaardige pakket-filtering firewall geconfigureerd kan worden.
Deze techniek, op kernelnivaeu en daardoor zeer snel, wordt met name nogal eens ingezet als een router wordt ingericht.
Deze iptables kunnen ook geheel met shell commando's beheerd worden, zie ook #man iptables.
Voor meer informatie is het het eenvoudigste de term 'iptables' in Google los te laten. Er zijn zeer informatieve sites zoals Wikipedia en Understanding UFW.
Trusted IP's en IP Notatie
In het thuisnetwerk van de Home- en Testserver worden de vertrouwde apparaten in de router voorzien van een, aan hun MAC waarde gekoppeld, vast IP adres.
De toe te kennen vaste IP's moeten beperkt worden tot de range 192.168.178.0/26 (0-63). Op de router moeten deze adressen uitgesloten worden van de DHCP-pool.
Fritz!Box > Homenetwork > Network > Networksettings > IP Adresses > IPv4 Settings : DHCP-pool 192.168.178.64-200
Op deze manier kunnen we firewall regels maken die al dan niet van toepassing zijn op vertrouwde apparaten in het netwerk.
Het is nu bijvoorbeeld eenvoudig alle poorten gesloten te houden voor onbekende apparaten, die zich verbinden met het netwerk.
Note:
Als we Samba toegang willen beperken tot alleen de trusted PC's van het locale netwerk (LAN) of één specifieke IP dan moet dit gedaan worden in het Samba configuratiebestand /etc/samba/smb.conf.
Zie sectie Server::Samba > Samba Netwerk File Server
Notatie IP Adressen
Adres 192.168.1.0/24 is het zelfde als mask 255.255.255.0, dus alle IP's van de LAN 192.168.1.0 t/m 255.
Op de zelfde manier:
192.168.178.0/25 = 192.168.178.0 t/m 192.168.178.127
192.168.178.128/25 = 192.168.178.128 t/m 192.168.178.255
192.168.178.0/26 = 192.168.178.0 t/m 192.168.178.63 # Onze trusted IP-range
192.168.178.64/26 = 192.168.178.64 t/m 192.168.178.127
192.168.178.128/26 = 192.168.178.128 t/m 192.168.178.191
192.168.178.192/26 = 192.168.178.192 t/m 192.168.178.255
UFW activeren
UFW is standaard al geïnstalleerd op Ubuntu.
Als het om een of andere reden gede-ïnstalleerd is, dan kan het opnieuw geïnstalleerd worden met: # apt install ufw.
Waarschuwing!
Bij de eerste installatie van UFW zijn in de Firewall geen poorten open gezet.
Als we nu de firewall te activeren, dan verliezen we communicatie met puTTY (SSH tcp 22).
Zorg er dus dat voor activatie van UFW de inkomende poort voor puTTY opengezet is.
Mocht de fierwal geactiveerd worden met poort 22 gesloten, dan moeten monitor en keyboard op de server aangesloten worden.
Stop nu de firewall met het commando # systemctl stop ufw.service
Check status UFW:
root@testserver:~# ufw status verbose Status: inactive Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed)
Eerst poort 22 voor puTTY open zetten inkomend van trusted IP's:
root@testserver:~# ufw allow from 192.168.178.0/26 to any port 22 Rule added
Check:
Note:
Normaal worden rules geschreven voor beide V4 en V6. Maar omdat we als source V4 IP adressen specificeren, wordt er geen V6 rule aangemaakt
root@testserver:~# ufw show added Added user rules (see 'ufw status' for running firewall): ufw allow from 192.168.178.0/26 to any port 22
Het is nu veilig de firewall te activeren
root@testserver:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Check:
root@testserver:~# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN 192.168.178.0/26
Firewall configuratie
![]() |
![]() |
Zodra de firewall ingeschakeld is, worden per default alle inkomende verbindingen geblokkeerd en alle uitgaande verbindingen toegestaan. Voor het alsnog toelaten van inkomende verbindingen en het blokkeren van uitgaande verbindingen moet de firewall configuratie in iptables aangepast worden. |
Benodigde SAMBA poorten
In het bestand /etc/services (# grep -i 'NETBIOS\| CIFS' /etc/services ) staan de regels die refereren naar Samba services en samengevat zijn dat:
|
Voorbeelden bewerken rules
Zie ook Ubuntu UFW
Maak regel voor app (# ufw app list) of service (# less /etc/services):
# ufw allow Postfix (app)
# ufw allow http (service)
Maak regel voor bv webmin inkomend van trusted IP's:
# ufw allow from 192.168.178.0/26 to any port 10000
Maak regel voor bijv. SSH inkomend van Trusted IP's alleen TCP:
# ufw allow from
192.168.178.0/26 to any port 22 proto TCP
Delete regel en vervang met nieuwe regel op zelfde plaats in tabel:
# ufw status numbered (vind nummer)
# ufw delete <nr>
# ufw insert <nr> allow from 192.168.178.0/26 to any port 137 proto udp
# ufw reload
# ufw status
Bekijk status:
# ufw status
# ufw status verbose
Benodigde open inkomende verbindingen
![]() |
||
1. | WEBMIN | TCP/UDP poort 10000 inkomend van trusted ip's (192.168.178.0/26) |
2. | HTTP | TCP poort 80 voor webserver inkomend van anywhere |
3. | HTTPS | TCP/UDP poort 443 voor secure webserver inkomend van anywhere. |
4. | LDAP | TCP/UDP poort 389 voor LDAP inkomend van anywhere. |
5. | LDAPS | TCP/UDP poort 636 voor LDAPS inkomend van anywhere. |
6. | SAMBA | UDP poort 137 voor netbios-ns (NetBIOS Name Service), inkomend van trusted ip's |
7. | SAMBA | UDP poort 138 voor netbios-dgm (NetBIOS Datagram Service), inkomend van anywhere |
8. | SAMBA | TCP poort 139 voor netbios-ssn (NetBIOS Session Service), inkomend van anywhere |
9. | SAMBA | TCP poort 445 voor microsoft-ds (Directory Service), inkomend van anywhere |
10. | SSH | TCP/UDP poort 22 inkomend van trusted ip's (192.168.178.0/26) |
11. | POSTFIX | TCP poort 25 voor App Postfix inkomend van anywwhere. |
12. | phpMyAdmin | TCP poort 81 voor phpMyAdmin inkomend van trusted ip's (192.168.178.0/26) |
13. | BackupPC | TCP poort 81 voor BackupPC inkomend van trusted ip's (192.168.178.0/26) |
14. | ReadyMedia | TCP poorten 8200 en 1900 voor ReadyMedia inkomend van alle lokale netwerk ip's (192.168.178.0/24) |
Maak rules Thuis- en Testserver
1. WEBMIN poort 10000 inkomend van trusted ip's
root@testserver:~# ufw allow from 192.168.178.0/26 to any port 10000 Rule added less /etc/ufw/user.rules: ### tuple ### allow any 10000 0.0.0.0/0 any 192.168.178.0/26 in -A ufw-user-input -p tcp --dport 10000 -s 192.168.178.0/26 -j ACCEPT -A ufw-user-input -p udp --dport 10000 -s 192.168.178.0/26 -j ACCEPT
2. HTTP
root@testserver:~# ufw allow http Rule added less /etc/ufw/user.rules: ### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p tcp --dport 80 -j ACCEPT
3. HTTPS
root@testserver:~# ufw allow https Rule added less /etc/ufw/user.rules: ### tuple ### allow any 443 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p tcp --dport 443 -j ACCEPT -A ufw-user-input -p udp --dport 443 -j ACCEPT
4. LDAP
root@testserver:~# ufw allow ldap Rule added less /etc/ufw/user.rules: ### tuple ### allow any 389 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p tcp --dport 389 -j ACCEPT -A ufw-user-input -p udp --dport 389 -j ACCEPT
5. LDAPS
root@testserver:~# ufw allow ldaps Rule added less /etc/ufw/user.rules: ### tuple ### allow any 636 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p tcp --dport 636 -j ACCEPT -A ufw-user-input -p udp --dport 636 -j ACCEPT
6. SAMBA netbios-ns poort 137 UDP inkomend van trusted ip's
root@testserver:~# ufw allow from 192.168.178.0/26 to any port 137 proto udp Rule added less /etc/ufw/user.rules: ### tuple ### allow udp 137 0.0.0.0/0 any 192.168.178.0/26 in -A ufw-user-input -p udp --dport 137 -s 192.168.178.0/26 -j ACCEPT
7. SAMBA netbios-dgm poort 138 UDP
root@testserver:~# ufw allow netbios-dgm Rule added less /etc/ufw/user.rules: ### tuple ### allow udp 138 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p udp --dport 138 -j ACCEPT
8. SAMBA netbios-ssn poort 139 TCP
root@testserver:~# ufw allow netbios-ssn Rule added less /etc/ufw/user.rules: ### tuple ### allow tcp 139 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p tcp --dport 139 -j ACCEPT
9. SAMBA microsoft-ds poort 445 TCP
root@testserver:~# ufw allow microsoft-ds Rule added less /etc/ufw/user.rules: ### tuple ### allow tcp 445 0.0.0.0/0 any 0.0.0.0/0 in -A ufw-user-input -p tcp --dport 445 -j ACCEPT
10. SSH poort 22 inkomend van trusted ip's
root@testserver:~# ufw allow from 192.168.178.0/26 to any port 22 Rule added less /etc/ufw/user.rules: ### tuple ### allow any 22 0.0.0.0/0 any 192.168.178.0/26 in -A ufw-user-input -p tcp --dport 22 -s 192.168.178.0/26 -j ACCEPT -A ufw-user-input -p udp --dport 22 -s 192.168.178.0/26 -j ACCEPT
11. POSTFIX
root@testserver:~# ufw allow postfix Rule added less /etc/ufw/user.rules: ### tuple ### allow tcp 25 0.0.0.0/0 any 0.0.0.0/0 Postfix - in -A ufw-user-input -p tcp --dport 25 -j ACCEPT -m comment --comment 'dapp_Postfix'
12. phpMyAdmin poort 81 inkomend van trusted ip's
root@testserver:~# ufw allow from 192.168.178.0/26 to any port 81 Rule added less /etc/ufw/user.rules: ### tuple ### allow any 81 0.0.0.0/0 any 192.168.178.0/26 in -A ufw-user-input -p tcp --dport 81 -s 192.168.178.0/26 -j ACCEPT -A ufw-user-input -p udp --dport 81 -s 192.168.178.0/26 -j ACCEPT
13. BackupPC poort 81 inkomend van trusted ip's
root@testserver:~# ufw allow from 192.168.178.0/26 to any port 81 Rule added less /etc/ufw/user.rules: ### tuple ### allow any 81 0.0.0.0/0 any 192.168.178.0/26 in -A ufw-user-input -p tcp --dport 81 -s 192.168.178.0/26 -j ACCEPT -A ufw-user-input -p udp --dport 81 -s 192.168.178.0/26 -j ACCEPT
14. ReadyMedia poorten 1900 en 8200 inkomend van alle netwerk ip's
root@testserver:~# ufw allow from 192.168.178.0/24 to any port 1900 Rule added root@testserver:~# ufw allow from 192.168.178.0/24 to any port 8200 Rule added less /etc/ufw/user.rules: ### tuple ### allow any 8200 0.0.0.0/0 any 192.168.178.0/24 in -A ufw-user-input -p tcp --dport 8200 -s 192.168.178.0/24 -j ACCEPT -A ufw-user-input -p udp --dport 8200 -s 192.168.178.0/24 -j ACCEPT ### tuple ### allow any 1900 0.0.0.0/0 any 192.168.178.0/24 in -A ufw-user-input -p tcp --dport 1900 -s 192.168.178.0/24 -j ACCEPT -A ufw-user-input -p udp --dport 1900 -s 192.168.178.0/24 -j ACCEPT