Copyright (c) 1999-2008 Maurice de Bijl
Copyright (c) 1999-2008 Maurice de Bijl
Nederlandstalige site teksten Nederlandstalige site teksten English site texts English site texts Deutsche sprache
Start pagina
Projectjes
Reviews
How-to's
Automotive
Blog
Archief

Downloads
Smartphone
PocketPC
Windows
Linux
Scripts
Alle downloads

Overzichten van artikelen en software
Meest populair
Laatst geupdate
Op alfabet
Alle tags

Handigheidjes
Sitemap
Alle trefwoorden
RSS Feed RuweBit General RSS Feed
Del.icio.us
eKudos
Mail webmaster
Disclaimer

Gerelateerde sites
Software kopen
Leo Bueno
Mijn Eigen Wereld


Linux  How-to`s  
Netfilter/IPTables Mini-HOEDOE
Talen:Lees in originele taal(Nederlands) Translate to English Deutsche Übersetzung Tools:Printer vriendelijke versieDownload artikel als PDFBookmark:Bookmark deze pagina in je browserBookmark deze pagina op GoogleBookmark deze pagina op DiggBewaar dit artikel op del.icio.usGeef dit artikel een eKudo
auteur: martijn, geplaatst: 2001-11-03, laatste update: 2001-11-03, populariteit: 16949 keer opgevraagd16949 keer opgevraagd16949 keer opgevraagd16949 keer opgevraagd16949 keer opgevraagd 16900+



Ik heb hier een Linux-bakje met RedHat 62 draaien, met daarop een vuurmuurtje. Deze PC gebruik ik als servertje met daarachter een aantal Windows machines. (Natuurlijk heb ik liever een Windows machine met daarop WinGate ofzo maar dat kan ik niet betalen ;)) Deze Linux-bak moet dus al het verkeer van deze windows-bakken door sturen (IP masquerading) verder heb ik een FTP-server (ProFTPD) en deze moet vanaf overal benaderd kunnen worden.

Voor de firewall gebruik ik netfilter, dit is onderdeel van kernel 2.4. iptables is een utility om netfilter te configureren. Mijn vuurmuur moet het volgende verkeer doorlaten:
- Ping requests en replies. (van m'n linuxbak naar internet en omgekeerd)
- FTP verkeer (ook twee kanten op)
- Samba (alleen voor m'n LAN)
- DNS verkeer. (twee kanten op)
- HTTP (alleen naar buiten toe, ik heb Apache nog niet draaien)

Kernel aanpassen

Voordat je je firewall op kunt zetten dient netfilter aan de kernel toegevoegd te worden.

In de kernel (onder Networking options) even "Network packet filtering" aanzetten. Bij "Netfilter Configuration" heb ik alles (behalve ipchains en ipfwadm) aangezet. Ik heb alles als module gecompileerd maar het schijnt veiliger te zijn om netfilter in je kernel zelf te bakken.

Oké, nu even je uptime om zeep helpen zodat netfilter geladen wordt....

IPTables

Zoals gezegd kun je met IPTables netfilter instellen, iptables is een command-line utility.

Met de optie -P kan de policy ingesteld worden voor een bepaalde chain. De meest gebruikte chains zijn:
- INPUT
- OUTPUT
- FORWARD

De INPUT-chain regelt het verkeer dat als doel onze server heeft.
De OUTPUT-chain regelt het verkeer dat onze server verlaat en de FORWARD-chain bepaald welk verkeer er door gestuurd wordt. (Nodig voor o.a. ip masquerading)

De policy kan zijn:
- ACCEPT
- DROP
- REJECT

Bij ACCEPT wordt het verkeer door gelaten, bij DROP wordt het verkeer zonder melding aan de andere PC gestopt met REJECT wordt het verkeer gestopt met melding aan de andere PC.

Naast de policies kun je nog per chain extra regels toevoegen (poorten open zetten).

Voorbeeld:

iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

De bovenstaande regels zorgen ervoor dat al het inkomende verkeer gestopt wordt (-P INPUT DROP) en dat het TCP-verkeer dat over port 20 en 21 komt toegestaan wordt (FTP).
Op deze manier kun je heel je firewall configureren.

iptables is te downloaden op netfilter.samba.org.

iptables uitpakken, dan "./configure && make all install" runnen en iptables zou geinstalleerd moeten zijn in /sbin.

Nu alleen nog even een scriptje maken.

#!/bin/sh
# /etc/init.d/rc.firewall

# Even alle huidige regels weggooien. (De policies blijven gehandhaafd)
/sbin/iptables -F

# Bakje helemaal dicht gooien.
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
# Zo nu is je bak helemaal dicht! Mooi, nooit meer gehacked, alleen niet echt handig lijkt me zo.

# IP Forwarding & masquerading
# De volgende regel laat al het verkeer van m'n Windows-bakjes door, dus dan blijven de trojans gelukkig werken.
#/sbin/iptables -P FORWARD ACCEPT
# Deze twee regels zorgen ervoor dat de Windows-bakken kunnen surfen.

# HTTP-forwarding
/sbin/iptables -A FORWARD -p tcp --sport 80 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
# DNS-forwarding
/sbin/iptables -A FORWARD -p tcp --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p udp --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p udp --dport 53 -j ACCEPT

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# eth0 is mijn internetnetwerkkaartje (zo, punten voor scrable weer binnen :))
# Al het verkeer van het lokale network wordt nu geforward. En iedereen achter het servertje zou
# toegang moeten hebben tot het netwerk aan de andere kant van m'n LAN.

# ping requests en replies toestaan.
/sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

# DNS lookups... niet nodig als je alle ip's uit je hoofd kent
/sbin/iptables -A INPUT -p tcp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

# Daytime... (CRON-job: /usr/bin/rdate -s time.u.washington.edu)
/sbin/iptables -A INPUT -p tcp --sport 37 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 37 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 37 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 37 -j ACCEPT

# HTTP outgoing.. (Lynx rules, heb natuurlijk geen X op m'n servertje)
/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

# FTP (in en out)
/sbin/iptables -A INPUT -p tcp --sport 20:21 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 20:21 -j ACCEPT

# Nu nog even Samba, alleen voor ons eigen LAN natuurlijk...
/sbin/iptables -A INPUT -p tcp -d 192.168.0.0/24 -dport 137:139 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -s 192.168.0.0/24 -sport 137:139 -j ACCEPT
/sbin/iptables -A INPUT -p udp -d 192.168.0.0/24 -dport 137:139 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -s 192.168.0.0/24 -sport 137:139 -j ACCEPT

:wq
rc.firewall ergens in je opstartscripten linken, even opstart (alleen het scriptje natuurlijk) en alles zou moeten werken.

Zelf heb ik nog DHCP open staan (port 67 en 68 udp) omdat @Home met dit protocol werkt. Maar dat is niet echt nodig, ze bellen vanzelf wel hè Maurice!

Oh, nog even over Samba. In het configuratiebestand van samba kun je aangeven naar welke ethernet kaart Samba moet luisteren, daar zou je natuurlijk eth0 op kunnen geven maar dat heb ik maar niet gedaan, eth1
vond ik meer gepast.

Links:
http://netfilter.samba.org
http://www.linuxfromscratch.org (Zie de firewall hint)


Tags  Linux  How-to`s  

end
Copyright © 1999-2008 Maurice de Bijl
Dit artikel is gepubliceerd op 2001-11-03
Talen:Lees in originele taal(Nederlands) Translate to English Deutsche Übersetzung Tools:Printer vriendelijke versieDownload artikel als PDFBookmark:Bookmark deze pagina in je browserBookmark deze pagina op GoogleBookmark deze pagina op DiggBewaar dit artikel op del.icio.usGeef dit artikel een eKudo

Reacties op dit artikel
Er zijn nog geen reacties geplaatst op dit artikel. Je kunt de eerste zijn.

Reactie toevoegen
Een reactie toevoegen is simpel en registratie is niet nodig!

Je IP-adres wordt gelogd, maar niet gepubliceerd, alle reacties hebben een E-mail bevestiging nodig en worden stuk voor stuk gemodereerd. Misbruik wordt niet getolereerd.
Naderhand wijzigen van je reactie is niet mogelijk

Naam:
E-mail adres:

E-mail wordt alleen gebruikt voor bevestiging en zal niet gepubliceerd worden.

Reactie:

Reacties a.u.b. in taal van artikel (Nederlands).
HTML is niet toegestaan, BB-code wel.


 Gerelateerde onderwerpen Klik om te dicht te klappen
Mijn groene server project
'Module is unknown' bij het inloggen
Waarom Linux software RAID?
Yellow Dog 6 voor de PS3
HOEDOE ik draadloze netwerken kraken
Meer gerelateerde artikelen
 Tag wolk Klik om te dicht te klappen

announcements automotive gaming gran turismo hacking hoedoe htc linux mobile phone news playstation pocketpc projects ps3 reviews smartphone software tv tweaking video virtualization vista windows windows mobile wireless
Laat alle tags zien

 Zoek trefwoord Klik om te dicht te klappen

Meer..
 Populair Klik om te dicht te klappen
WakeOnLan Silvermine Snappixx
 Ondersteuning Klik om te dicht te klappen
WakeOnLan
Silvermine
Snappixx
 Spreuk van de Dag Klik om te dicht te klappen
 Webwinkel Klik om te dicht te klappen
RuweBit Merchandising
Store 1 Store 2
Site's contents and design are copyright © 1999-2008 Maurice de Bijl - 16950 page requests
gegeneerd op Thu, 20 Nov 2008 16:33:31 CET (GMT+0100) in 70.99 msec op host srv010106.webreus.nl
bron: http://www.ruwebit.net/article/47 - [Lage bandbreedte versie]