Login

   Registeren   

Je bent hier: Home » Artikelen » Een Firewall met IPTables

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


feed Reacties

  1. Door Jos op 24 Jan 2009 21:05

    Eindelijk een duidelijke tutorial voor het opzetten van een firewall.

    Bedankt!

Plaats een reactie

Je moet ingelogd zijn om te reageren.


"Weet je zeker dat je niks gemist hebt?"
RSS Feed   Legal   Contact   ©2008 Lienuks.nl - ontwerp & realisatie door StefM