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

FLOPPYT HOWTO

Vorige Inhoud Volgende


4. IP filtering setup (IPCHAINS)

Linux ipchains is een herschreven versie van de Linux IPv4 firewalling code en een herschreven versie van ipfwadm, die op zijn beurt weer een herschrijving was van BSD's ipfw. Het is bedoeld om de IP packet filters in Linux kernel versies 2.1.102 en hoger te hanteren.

De oude code kan niet omgaan met fragmenten, heeft 32 bits counters (tenminste op het Intel platform), staat geen specificatie van andere protocollen dan TCP, UDP of ICMP toe, kan geen grote automatische veranderingen aan, kan geen omgekeerde rules aan, heeft in ieder geval een aantal eigenaardigheden en kan moeilijk te managen zijn waardoor het weer gevoeliger is voor gebruikers fouten.

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. Voorbeeld bestanden zijn te vinden in APPENDIX A - Voorbeeld Scripts


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