Een Firewall met IPTables
Het beveiligen van je computer is moeilijk maar toch heel belangrijk. Na wat gezoek op het internet heb gevonden hoe je een linux desktop / server kan beveiligen door middel van een firewall. LET OP: Dit is geen garantie dat uw computer nu compleet veilig is!!!
We beginnen met:
sudo nano /usr/bin/firewall
Daarin voegen we in:
Activeer forwarding in je kernel:
echo 1 > /proc/sys/net/ipv4/ip_forward# Verwijder alle huidige instellingen:
iptables -F
iptables -t nat -F
iptables --delete-chain
iptables --table nat --delete-chain
# Blokkeer om te beginnen alle ingaande en doorgaande verkeer, laat uitgaand verkeer toe:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Blokkeer steeds alle verkeer van/naar onbekende connecties:
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
# Laat verkeer van de router naar de router zelf toe:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Aanvaard verkeer van het Internet als je de connectie zelf geinitaliseerd hebt:
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Maar als je een server hebt wil je dat mensen wel op bijvoorbeeld je webserver of mailserver kunnen komen daarom moet je die poorten "open zetten". Voor elke poort moet je dan een regel in /usr/bin/firewall zetten. Met deze regel zet je tcp poort 80 open:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
Met deze regel zet je udp poort 53 open
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
Je moet zel kijken welke poorten je open wil hebben, afhankelijk van welke servers je draait.
LET OP: Als je via ssh je server beheerd is het verstandig om de ssh poort open te zetten (port 22) anders kan je straks niet meer inloggen.
Sommige mensen willen ook dat hun computer onzichtbaar is in een netwerk, als je dat niet wilt moet je deze regels aan je /usr/bin/firewall toevoegen. Zo ontvang je wel pings:
#allow ping
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Als je wilt dat alles gelogged word moet je dit toevoegen. LETOP: Alles wordt gelogged en dat kan een overvolle schijf tot gevolgen hebben!!:
#logging, terug te vinden in /var/log/messages
iptables -A OUTPUT -j LOG
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG
Z'n log kan er dan zo uit zien (dit is 1 pakket):
Jun 23 17:09:40 server1 kernel: [43733080.120000] IN= OUT=eth0 src=192.168.1.5 DST=192.168.0.5 LEN=1300 TOS=0x10 PREC=0x00 TTL=64 ID=31650 DF PROTO=TCP SPT=22 DPT=48434 WINDOW=3032 RES=0x00 ACK PSH URGP=0
Nu moet je nog zorgen dat je firewall start tijdens het opstarten.
Dit doe je zo:
sudo chmod +x /usr/bin/firewall
Tik
sudo nano /etc/init.d/firewall
En plak dit in het bestand:
#!/bin/bash
if [[ $1 == start ]] ; then
sudo firewall
echo Firewall started
elif [[ $1 == restart ]] ; then
sudo firewall
echo Firewall restarted
elif [[ $1 == reload ]] ; then
sudo firewall
echo Firewall reloaded
elif [[ $1 == stop ]] ; then
sudo iptables -F
echo Firewall SHUTDOWN
else
sudo firewall
echo Firewall booted
fi
En voer deze commando's uit:
sudo chmod +x /etc/init.d/firewall
sudo update-rc.d firewall start 20 2 3 4 5 . stop 99 0 1 6 .
Test nu je firewall door in de terminal te tikken:
sudo /etc/init.d/firewall start
Je krijgt nu als het goed is Firewall started te zien en dan draait hij.
Bronnen:
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables
http://townx.org/simple_firewall_for_ubuntu_using_iptables
http://www.bartendavid.be/doc/howto/netwerk/misc/router-install.html
Plaats een reactie
Je moet ingelogd zijn om te reageren.

Artikel Info
Tags
Eindelijk een duidelijke tutorial voor het opzetten van een firewall.
Bedankt!