Lugs Penguin Logo

LUGS - Vorträge: ipchains vom 3.8.2000

LUGS

Über die LUGS
Statuten und Protokolle
Sektionen
Terminliste
IRC
Mailinglisten
Kontaktadressen
Mitglied werden
Internes
Mitgliederliste

LINUX

Was ist Linux?
   Screenshots
Distributionen
   kmLinux
Firmen
Ressourcen
LIB

Dokumentation
Events
Projekte
Vorträge
Allgemeines

ChangeLog
Sprache
Galerie

Am 3.8.2000 erzählte Attila Kinali vor grossem Publikum einiges über ipchains. Hier ist das, was er uns als Folien gezeigt hat.

IPCHAINS - Paketfilter des 2.2er Kernels

Was ist ipchains?

  • Ein Filterkonzept auf IP Ebene
  • Ein Userspace Programm

Wofür ist ipchains zu gebrauchen?

  • Paket Firewall
  • Masquerading Firewall
  • Transparent Proxies
  • Port redirection

Wie funktioniert ipchains ?

  • Ipchains filtert auf IP Ebene.
  • Ipchains ist dem Routing zwischengeschaltet
ipchains-flow

benötigte Kerneloptionen

  • Network Firewall
  • IP: Firewalling
  • IP: Masquerading
  • IP: ICMP Masquerading

Synopsis

ipchains <Befehl> <Chain> <Optionen>
ipchains -A input -j REJECT
ipchains -I output -j ACCEPT
ipchains -P forward -j DENY
ipchains -N internet
ipchains -I input -s 0.0.0.0/0 -j internet
ipchains -I internet -d 192.168.1.0/24 -j DENY
ipchains -A internet -p UDP -j REJECT

Ein Beispiel Firewall

#!/bin/sh
local_net=192.168.1.0/24
Forwarding einschalten
echo "1" > /proc/sys/net/ipv4/ip_forward
Port Bereich für Ausgehende Verbindungen setzen
echo "32768 61000" \
> /proc/sys/net/ipv4/ip_local_port_range
fragmentierte IP Packete wieder zusammensetzen
echo "1" > /proc/sys/net/ipv4/ip_always_defrag
Zusätzliche Module laden
modprobe ip_masq_ftp
modprobe ip_masq_irc
Default Rules setzen
ipchains -P input  REJECT
ipchains -P forward  REJECT
ipchains -P output  ACCEPT
Alles auf lo freigeben
ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT
Auf dem lokalen Netz alles erlauben
ipchains -A input -s ${local_net} \
         -i eth0 -j ACCEPT
ipchains -A output -d ${local_net} \
         -i eth0 -j ACCEPT
Masquerading einschalten und Rückweg für Verbindungen öffnen
ipchains -A forward -s ${local_net} \
         -d 0.0.0.0/0 -j MASQ
ipchains -A input -s 0.0.0.0/0  \
         ! -y -i eth1 \
         --destination-port ! 0:32767 \
         -p TCP
         -j ACCEPT
ipchains -A input -s 0.0.0.0/0\
         -i eth1 \
         --destination-port ! 0:32767 \
         -p UDP -j ACCEPT
ssh und http öffnen
ipchains -A input -s 0.0.0.0/0\
         -i eth1 \
         --destination-port 80\
         -p TCP -j ACCEPT
ipchains -A output -d 0.0.0.0/0\
         --source-port 80  \
         -p TCP -j ACCEPT

ipchains -A input -s 0.0.0.0/0\
         -i eth1  \
         --destination-port 22 \
         -p TCP -j ACCEPT
ipchains -A output -d 0.0.0.0/0\
         --source-port 22  \
         -p TCP -j ACCEPT
ICMPs erlauben/sperren:
ICMPs erlauben
ipchains -I input -p ICMP\
         -j ACCEPT
ipchains -I output -p ICMP\
         -j ACCEPT
ICMP Redirects sperren
ipchains -I input -p ICMP\
         --icmp-type redirect\
         -j DENY

Powered by Linux, served by Apache / PHP, last changes done 04.02.2008 -- Copyright