Voer een zoektekst in:
Op het web Op Aesir.nl

INFORMATIE

Home

Download
   FloppyT (Mirrored)
   FloppyT modules (Mirrored)
   Overige Downloads

Documentatie
   FloppyT HOWTO
   RAID Gids
   Active vs Passive FTP
   SCSI Technieken
   Wireless Networking beveiliging

Artikelen
   Linux mythen en fabels
   Netwerkbeveiliging met FloppyT
   Review FloppyT 0.9

Vaste prik
   Dagboek van een Geek
   Geekworld

Resources
   FloppyT Forum
   FloppyT FAQ (Officieel)
   FloppyT FAQ (Onofficieel)
   FloppyT Links
   Links

Bazar
   Software
   Hardware
   Boeken
   Diversen

NETWERKBEVEILIGING MET FLOPPYT

(Dit is een bewerking van de voormalige FloppyT HOWTO. Deze HOWTO was geschreven als een artikel met wat kleine aanpassingen en een andere intro.)

Met de opkomst van breedband netwerken zoals kabel en ADSL neemt ook het aantal virusbesmettingen en computer inbraken een vlucht. Dit omdat deze diensten vaak een "altijd verbonden" karakter hebben en veel mensen hun computersysteem niet meer afsluiten zodra ze deze niet meer nodig hebben. Daarnaast zijn ook vele hobbyisten begonnen met het gebruiken van eigen webservers, FTP servers of gameservers.

Om deze veiligheidslekken te dichten zijn er vele toepassingen mogelijk zoals het installeren van een firewall op je computer. Echter, wil je een geheel netwerkje beveiligen dan zul je op iedere machine afzonderlijk een firewall moeten installeren en instellen. Dit is natuurlijk mogelijk maar het risico bestaat dan dat er bijvoorbeeld geen updates op een enkel systeem geinstalleerd word met als gevolg dat er dus een beveiligingslek ontstaat. Aangezien ik een netwerk heb draaien (met daarin de server waarop deze site draait) welke met MXstream een verbinding heeft met het Internet wil ik er zeker van zijn dat mijn systemen beschermd zijn. Voor dit soort toepassingen bestaat FloppyT.


Met de opkomst van breedband netwerken zoals kabel en ADSL neemt ook het aantal virusbesmettingen en computer inbraken een vlucht.

FloppyT is een minimale linux distributie op 1 diskette en is speciaal geschikt gemaakt voor het draaien van een Firewall. Speciaal voor de MXstream variant van ADSL is er nu een firewall welke weinig tot niets kost. Naast de MXstream beveiliging is het ook mogelijk, met wat gesleutel, om een kabel internet verbinding te beveiligen.

Je kunt FloppyT zo downloaden en aanpassen. De enige kosten zijn de eventuele aanschafkosten voor hardware als netwerkkaarten of een oude computer.

Hardware

Je hebt waarschijnlijk nog wel ergens een wat oudere PC staan die je nergens meer voor gebruikt. Het HOEFT dus geen geld te kosten. Wel moet de PC aan een aantal vereisten voldoen:

  • Intel 386 of hoger
  • Minimaal 8MB RAM, 16MB is aanbevolen.
  • 3.5" floppy drive
  • Videokaart
  • 2 of meer netwerkkaarten
  • Keyboard
  • Monitor

Je hebt een monitor en keyboard alleen maar nodig voor het opzetten. Je kunt de Firewall namelijk ook zonder draaien om kosten te drukken en ruimte te besparen.. wel zo handig als je maar beperkte middelen of ruimte hebt.

Zorg ervoor dat elke netwerkkaart zijn eigen IRQ en geheugen adres heeft. Soms kan dit met jumpers maar meestal heb je de standaard software nodig die bij de kaarten geleverd wordt. Ikzelf gebruik 3Com 3c509 kaarten. Om nu te voorkomen dat ze beiden hetzelfde adres gebruiken heb ik met de bijgeleverde software 1 van de kaarten een ander IRQ en geheugenadres gegeven. Standaard zijn de meeste kaarten ingesteld op IRQ 10 en geheugenadres 0x300. Via de software utility heb ik 1 ervan op IRQ 11 en geheugenadres 0x310 gezet. PCI netwerkkaarten hoeven niet specifiek ingesteld te worden aangezien het BIOS hier al voor zorgt.


Het HOEFT ... geen geld te kosten. Wel moet de PC aan een aantal vereisten voldoen.

Software

Het maken van de floppyt diskette is simpel. Download de laatste image van:

http://www.lintegrate.nl/

Op dit moment is versie 0.6 de laatste stabiele versie en versie 0.7pre3 de laatste béta versie.

Zet de image over op een (lege) diskette.

Met Linux doe je dit met het volgende commando:

# dd if=floppyfw-mxstream-0.5.1.img of=/dev/fd0

Onder windows 95 kun je de utility rawrite.exe of winimage gebruiken. Voor Windows NT 4, 2000 of XP heb je winimage nodig.

c:\>rawrite
Enter disk image source file name: floppyfw-mxstream-0.6.img
Enter target diskette drive: a

Configuratie

Deze diskette is een gewone DOS geformateerde diskette.Voordat ik de diskette kon gebruiken om het systeem op te starten moest ik eerst e.e.a. aanpassen. Dit heb ik gedaan met een gewone tekst editor. Gebruik onder Windows trouwens NOOIT notepad omdat dit om de een of andere reden niet goed omgaat met dos tekstbestanden zoals die gebruikt worden door FloppyT. Daarvoor in de plaats heb ik het dos commando edit gebruikt.

De volgende bestanden zijn aanpasbaar:

  • config (hoofd configuratie)
  • firewall.ini (ipfilter regels)
  • modules.lst (extra ip_masq modules)
  • syslinux.cfg (kernel boot parameters)
  • syslog.cfg (systeemlog configuratie)

Ik heb hiervan alleen de config en firewall.ini aangepast.

Hieronder zie je een config bestand behorend bij 0.6. De regels die aangepast kunnen worden zijn voorzien van commentaar achter de <--- pijltjes.

USER_IDENT='xxxxx' <--- vul hier je MXstream usernaam in.
USER_PASSWORD='xxxxx' <--- vul hier het bijbehorende wachtwoord in.

# Vul hieronder 2 IP adressen in om de verbinding te checken.
# ping.xs4all.nl = 194.109.6.11
# www.cisco.com = 198.133.219.25
PING1=194.109.6.11
PING2=198.133.219.25

#Voor Homenet versie 3.0 via intranet (y/n)
ABN_AMRO_HOME_NET=y <--- maak hier n van als je geen ABNAMRO telebankieren via internet gebruikt.

# Outside network:
OUTSIDE_IP=PPTP

# eth0 default device.
#
OUTSIDE_DEV=ppp0
OUTSIDE_NETMASK=255.255.255.0
OUTSIDE_BROADCAST=10.0.0.255

# Inside network:
#
# This has 192.168.0.* set as default, addresses assigned for internal networks according
# according RFC 1918.
#
# eth1 is the default device for the internal network.
#
INSIDE_IP=192.168.0.2
INSIDE_DEV=eth1
INSIDE_NETMASK=255.255.255.0
INSIDE_BROADCAST=192.168.0.255

# Modem settings:
#
MODEMSIDE_DEV=eth0
MODEMSIDE_IP=10.0.0.150
MODEMSIDE_BROADCAST=10.0.0.255
MODEMSIDE_NETMASK=255.255.255.0
MODEM_IP=10.0.0.138

# Vul hier de DNS'en in.
# En eventueel domeinnaam en hostname.
#
NAME_SERVER_IP1=194.109.6.66 <--- vul hier de DNS server adressen in van je provider. In dit geval xs4all.
NAME_SERVER_IP2=194.109.9.99
DOMAIN=xs4all.nl
HOSTNAME=floppyfw

#
# (y)es or (n)o
#
OPEN_SHELL=y
ONLY_8M=n <--- maak hier y van indien er maar 8MB in de computer zit.

USE_SYSLOG=y
SYSLOG_FLAGS="-m 360"

Filter Regels

We gaan nu kijken naar de firewall.ini. Het originele bestand heeft alleen maar de standaard regels. Als we andere dingen willen doen achter de firewall zoals Netmeeting, VPN, eigen servers opzetten enz. dan zal een aantal regels moeten worden toegevoegd. Om dit fatsoenlijk te kunnen doen was het nodig om mezelf te verdiepen in ipchains. Aangezien we hier een firewall aan het opzetten zijn moest ik zeer zeker uitkijken met wat ik deed. Een klein foutje kan immers grote gevolgen hebben voor de betrouwbaarheid van de firewall.

Het aanpassen van het bestand kan net als met het config bestand gedaan worden met edit of een andere dos editor onder windowsof met een editor als pico of vi onder linux.

Op het forum van www.lintegrate.nl staan een aantal firewall.ini scripts. Je kunt deze in hun geheel overnemen of je kunt ze gebruiken als een voorbeeld.

Er bestaan ook kant en klare regel sets op het internet en zelfs een aantal sites die het maken van een dergelijk bestand grotendeels automatiseren. Als je via google zoekt op "ipchains generator" kom je er een aantal tegen.

Let er wel op dat het bestand niet te groot word. Je wilt hem immers op een floppy plaatsen met maar een beperkte ruimte. Zie hieronder voor de basis. Let wel... Dit is echt alleen maar de basis die je iets iets meer kennis geeft van IPChains. Wil je meer dan je firewall.ini script aanpassen dan zul je je echt in IPChains moet gaan verdiepen anders zul je alleen maar problemen creëeren.

IP filtering setup (IPCHAINS)

Ik ga niet te diep in op hoe je een IPChains firewall moet hanteren. Daar is een uitstekende HOWTO voor geschreven. Je kunt deze vinden op http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html. Ik zou hem alleen maar kopiëren hier. Hier zijn in ieder geval de basics te vinden.

Je werkt met chains bij naam. Je start met drie ingebouwde chains input, output en forward welke je niet kan deleten. Je kunt natuurlijk ook zelfs chains maken. Rules (regels) kunnen toegevoegd en verwijderd worden in de deze set.

De bewerkingen om te werken aan volledige chains zijn;

  1. Creëer een nieuwe chain (-N).
  2. Verwijder een lege chain (-X).
  3. Wijzig de policy van een ingebouwde chain. (-P).
  4. List de rules in een chain (-L).
  5. Verwijder de regels uit een chain (-F).
  6. Stel de packet en byte counters van alle rules in een chain (-Z).

Er zijn verschillende manieren om rules in een chain te manipuleren;

  1. Voeg een nieuwe rule toe aan een chain (-A).
  2. Voer een nieuwe toe in een positie in eenchain (-I).
  3. Vervang een rule in een positie in een chain (-R).
  4. Verwijder een rule van een positie in een chain (-D).
  5. Verwijder de eerste regel die matched in een chain (-D).

Er zijn een paar mogelijkheden voor masquerading in ipchains bij gebrek aan een betere plaats;

  1. Geeft een listing van de huidige masqueraded connecties (-M -L).
  2. Stel de timeout waarden van masquerading in (-M -S).

Er zijn wat timing zaken bij het veranderen van firewall rules. Als je niet voorzichtig bent kun je pakketjes halverwege doorzenden terwijl je je veranderingen nog niet klaar hebt. Een simplistische benadering van wat je moet doen is het volgende:

     # ipchains -I input 1 -j DENY
     # ipchains -I output 1 -j DENY
     # ipchains -I forward 1 -j DENY

... maak de wijzigingen ...

     # ipchains -D input 1
     # ipchains -D output 1
     # ipchains -D forward 1
     # 

Dit laat alle pakketjes vallen terwijl je de wijzigingen aanbrengt.

Hier is een kopie van de bovenvermelde firewall rules in IPChains.

#!/bin/sh
#
# rc.firewall
#
## Flush everything, start from scratch
  /sbin/ipchains -F input
  /sbin/ipchains -F output
  /sbin/ipchains -F forward

## Redirect for HTTP Transparent Proxy
  #$IPCHAINS  -A input -p tcp -s 192.1.2.0/24 -d 0.0.0.0/0 80 -j REDIRECT 8080

## Create your own chain
  /sbin/ipchains -N my-chain
  # Allow email to got to the server
  /sbin/ipchains -A my-chain -s 0.0.0.0/0 smtp -d 192.1.2.10 1024:-j ACCEPT
  # Allow email connections to outside email servers
  /sbin/ipchains -A my-chain -s 192.1.2.10 -d 0.0.0.0/0 smtp -j ACCEPT  
  # Allow Web connections to your Web Server
  /sbin/ipchains -A my-chain -s 0.0.0.0/0 www -d 192.1.2.11 1024: -j ACCEPT
  # Allow Web connections to outside Web Server
  /sbin/ipchains -A my-chain -s 192.1.2.0/24 1024: -d 0.0.0.0/0 www -j ACCEPT
  # Allow DNS traffic
  /sbin/ipchains -A my-chain -p UDP -s 0.0.0.0/0 dns -d 192.1.2.0/24 -j ACCEPT

## If you are using masquerading
  # don't masq internal-internal traffic
  /sbin/ipchains -A forward -s 192.1.2.0/24 -d 192.1.2.0/24 -j ACCEPT
  # don't masq external interface direct
  /sbin/ipchains -A forward -s 24.94.1.0/24 -d 0.0.0.0/0 -j ACCEPT
  # masquerade all internal IP's going outside
  /sbin/ipchains -A forward -s 192.1.2.0/24 -d 0.0.0.0/0 -j MASQ

## Deny everything else
  /sbin/ipchains -P my-chain input DENY

Stop niet hier ! Dit is geen goede firewall en ik weet zeker dat je andere diensten wilt aanbieden achter je firewall. Lees de IPCHAINS-HOWTO. Dat is een goede plek om te starten.


Firewalls alleen zijn niet genoeg

 

In gebruik nemen van je FloppyT.

Als je je bestanden eenmaal geconfigureerd hebt en op je floppy hebt weggeschreven kunnen we e.e.a. gaan testen. Start daarom met je floppy je systeem op. Op die manier kun je zien of je je bestanden goed hebt geconfigureerd. Via Alt+F4 kun je op je FloppyT systeem zien wat er gebeurd. Is alles goed dan kun je je systeem ergens plaatsen waar hij niet in de weg staat en kun je de rest van je netwerk gaan configureren voor het gebruik van de firewall. Let regelmatig op je log bestanden om te zien of er geen rare dingen gebeuren.

Er bestaan een aantal sites welke kunnen helpen om je firewall te testen.

Shields UP

Security Metrics

Nawoord.

Firewalls alleen zijn tegenwoordig niet genoeg om de geoefende systeem kraker te weerhouden van zijn activiteiten. Deze zal echter bijlange na niet genoeg geinteresseerd zijn om het gemiddelde thuissysteem te kraken en zal al snel de kleine visjes met rust laten. Ben je echter bang dat je gegevens op straat komen te liggen of dat je netwerk gekraakt wordt dan kun je je beveiligings maatregelen uit kunnen breiden met inbraak detectie software als SNORT of PortSentry. Deze toepassingen gaan te ver om dit in een kort verhaal als hierboven te kunnen uitleggen. In de nabije toekomst zal ik hier echter wel wat aandacht aan besteden omdat je niet paranoïde genoeg kunt zijn als het aankomt op beveiliging.

Referenties

FloppyT van Edo Martijn Janssen:
http://www.lintegrate.nl

FloppyFW van Thomas Lunquist:
http://www.zelow.no/floppyfw

FloppyT HOWTO van Walther Ligtvoet:
http://www.aesir.nl/FloppyT-Firewall-HOWTO.html

© 2003 Walther Ligtvoet. Powered by Linux, Apache, Perl and MySQL.