mein System ist Debian Etch mit Kernel 2.6..25 von kernel.org.
Das Problem ist, dass ich keine Rules an meine eigenen Chains 'extin' und 'extout'
anhängen kann,
Code: Alles auswählen
wes-nic:~/bin# iptables -A extout -m state --state INVALID -j DROP
iptables: No chain/target/match by that name
Folgende Module sind geladen,
Code: Alles auswählen
wes-nic:~/bin# lsmod
Module Size Used by
ipt_ah 2688 0
ipt_MASQUERADE 4736 0
xt_tcpudp 4224 0
iptable_nat 8464 0
nf_nat 21528 2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4 19472 3 iptable_nat,nf_nat
nf_conntrack 67312 4 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4
ipv6 276552 8
ppdev 10120 0
lp 13828 0
fan 7048 0
iptable_filter 4608 1
ip_tables 20880 2 iptable_nat,iptable_filter
x_tables 24584 5 ipt_ah,ipt_MASQUERADE,xt_tcpudp,iptable_nat,ip_tables
usb_storage 89408 0
sbp2 25356 0
loop 19204 0
usbhid 33248 0
pcmcia 41496 0
firmware_class 11392 1 pcmcia
joydev 13824 0
8139cp 24704 0
firewire_ohci 20224 0
parport_pc 38568 1
parport 41136 3 ppdev,lp,parport_pc
yenta_socket 27916 2
rsrc_nonstatic 12544 1 yenta_socket
pcmcia_core 42916 3 pcmcia,yenta_socket,rsrc_nonstatic
ohci1394 33204 0
ssb 33412 0
8139too 29440 0
ieee1394 97144 2 sbp2,ohci1394
pcspkr 4224 0
psmouse 42012 0
serio_raw 8068 0
snd_intel8x0 37288 1
snd_intel8x0m 19728 0
snd_ac97_codec 112984 2 snd_intel8x0,snd_intel8x0m
k8temp 6784 0
ac97_bus 2816 1 snd_ac97_codec
ide_cd_mod 37920 0
shpchp 34588 0
pci_hotplug 16528 1 shpchp
snd_pcm_oss 43040 0
snd_mixer_oss 17792 1 snd_pcm_oss
cdrom 35880 1 ide_cd_mod
snd_pcm 83720 4 snd_intel8x0,snd_intel8x0m,snd_ac97_codec,snd_pcm_oss
snd_timer 25360 1 snd_pcm
snd_page_alloc 11536 3 snd_intel8x0,snd_intel8x0m,snd_pcm
ehci_hcd 35596 0
ohci_hcd 24068 0
battery 16136 0
container 5888 0
ac 7560 0
i2c_nforce2 7808 0
i2c_core 27040 1 i2c_nforce2
thermal 22944 0
button 10144 0
processor 44264 1 thermal
evdev 13568 4
Code: Alles auswählen
#! /bin/bash
#-----------------------------------------------------------
#Author: Markus Feldmann
#
# Filterregeln fuer IP-Packete
#
# Grundsaetzlicher Aufbau unseres Netzwerkes wird unten angezeigt.
# Die Pfeile geben die Richtung an von wo nach wo welche Verbindung ist,
# mit der Bezeichnung die auch in diesem Script verwendet wird.
#
# Das Skript kann wie folgt auferufen werden:
# firewallDSL start
#
# Dieses Skript ist speziell fuer das Netzwerk Device welches
# sich uebers DSL Modem it dem Internet verbindet.
#
#
#
# ext-fw
# <-----------------------------------------------
#
# int-fw
# ------------------------------------------------>
#
# feld-bert _____
# \
# \______<--LAN(ueber br0)__Feld-server__-->WAN(ueber ppp0)__
# /
# feld-drizzt ____/
# int-in extout
# --------------------------------------> ------------------->
#
# int-out extin
# <-------------------------------------- <-------------------
#
# int-int-fw
# feld-bert ------------------------------->\
# |
# feld-driztt <-------------------------------/
#
#-------------------------------------------
# Grundeinstellungen und Variablen und Konstanten
#EXTIF=$LOGICAL
EXTIF=eth1
#-------------------------------------------
# Ausgabe des Scriptes beim starten mit veschiedenen Parametern.
case "$1" in
start)
echo "Firewall wird gestartet!"
;;
stop)
echo "Firewall wird runtergefahren!"
;;
*)
echo "Benutze: $0 {start|stop}"
;;
esac
#-----------------------------------------------------------
# Regeln die immer gelten sollen!
#
# Loeschen bestimmter Regeln
iptables -t nat -F POSTROUTING
iptables -F extout
iptables -D OUTPUT -o "$EXTIF" -j extout
iptables -X extout
iptables -F extin
iptables -D INPUT -i "$EXTIF" -j extin
iptables -X extin
#-----------------------------------------------------------
# Firewall herunterfahren
#-----------------------------------------------------------
case "$1" in
stop)
# Nichts
;;
#-----------------------------------------------------------
# Firewall hochfahren
#-----------------------------------------------------------
start)
# Eigene Chains erstellen - Externes Interface
iptables -N extin # von Internet in feld-server
iptables -N extout # von feld-server ins internet
# Erstmal alles verbieten
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#Erlaube alle lokale Pakete
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Verteilung der Pakete auf die Chains
iptables -A INPUT -i "$EXTIF" -j extin
iptables -A OUTPUT -o "$EXTIF" -j extout
# Pakete mit entsprechendem Status als DROPED oder ACCEPTED behandeln
iptables -A extout -m state --state INVALID -j DROP
iptables -A extout -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A extin -m state --state INVALID -j DROP
iptables -A extin -m state --state ESTABLISHED,RELATED -j ACCEPT
# Erlaube DHCP (68) nur innerhalb LAN
#iptables -A extin -p tcp --dport 67:68 -j ACCEPT
#iptables -A extin -p udp --dport 67:68 -j ACCEPT
iptables -A extout -p tcp --dport 67:68 -j ACCEPT
iptables -A extout -p udp --dport 67:68 -j ACCEPT
# Erlaube NTP Zeitsynchronisation
#iptables -A extin -p tcp --dport 123 -j ACCEPT
#iptables -A extin -p udp --dport 123 -j ACCEPT
iptables -A extout -p tcp --dport 123 -j ACCEPT
iptables -A extout -p udp --dport 123 -j ACCEPT
# Erlaube Chrony Zeitsynchronisation
#iptables -A extin -p tcp --dport 37 -j ACCEPT
#iptables -A extin -p udp --dport 37 -j ACCEPT
#iptables -A extin -p tcp --dport 323 -j ACCEPT
#iptables -A extin -p udp --dport 323 -j ACCEPT
iptables -A extout -p tcp --dport 37 -j ACCEPT
iptables -A extout -p udp --dport 37 -j ACCEPT
iptables -A extout -p tcp --dport 323 -j ACCEPT
iptables -A extout -p udp --dport 323 -j ACCEPT
# Erlaube DNS (53)
iptables -A extout -p tcp --dport 53 -j ACCEPT
iptables -A extout -p udp --dport 53 -j ACCEPT
#iptables -A extin -p tcp --sport 53 --dport 1024:65535 -j ACCEPT
#iptables -A extin -p udp --sport 53 --dport 1024:65535 -j ACCEPT
# FTP - FTP - FTP
# FTP - Kontrollverbinduung
iptables -A extin -p tcp --dport 1024:65535 --sport 21 ! --syn -j ACCEPT
iptables -A extout -p tcp --sport 1024:65535 --dport 21 -j ACCEPT
# FTP - aktives FTP
iptables -A extin -p tcp --dport 1024:65535 --sport 20 -j ACCEPT
iptables -A extout -p tcp --sport 1024:65535 --dport 20 ! --syn -j ACCEPT
# FTP - passives FTP
iptables -A extin -p tcp --dport 1024:65535 --sport 1024:65535 ! --syn -j ACCEPTiptables -A extout -p tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT
# Erlaube HTTP ( 80 )
#iptables -A extin -p tcp --dport 80 -j ACCEPT
iptables -A extout -p tcp --dport 80 -j ACCEPT
#iptables -A extin -p tcp --dport 8080 -j ACCEPT
iptables -A extout -p tcp --dport 8080 -j ACCEPT
# Erlaube HTTPS ( 443 )
#iptables -A extin -p tcp --dport 443 -j ACCEPT
iptables -A extout -p tcp --dport 443 -j ACCEPT
#Skype
iptables -A extout -p udp --sport 50945 -j ACCEPT
# Erlaube SMTP ( 25 )
iptables -A extout -p tcp --dport 25 -j ACCEPT
#iptables -A extin -p tcp --dport 25 -j ACCEPT
# Erlaube POP3 ( 110 )
#iptables -A extin -p tcp --dport 110 -j ACCEPT
#iptables -A extin -p tcp --dport 995 -j ACCEPT
#iptables -A extin -p tcp --dport 465 -j ACCEPT
iptables -A extout -p tcp --dport 110 -j ACCEPT
iptables -A extout -p tcp --dport 995 -j ACCEPT
iptables -A extout -p tcp --dport 465 -j ACCEPT
# Erlaube POP3S ( 995 )
iptables -A extout -p tcp --dport 995 -j ACCEPT
#iptables -A extin -p tcp --dport 995 -j ACCEPT
# Erlaube IMAP ( 143 )
iptables -A extout -p tcp --dport 143 -j ACCEPT
#iptables -A extin -p tcp --dport 143 -j ACCEPT
# Erlaube IMAPS ( 993 )
iptables -A extout -p tcp --dport 993 -j ACCEPT
#iptables -A extin -p tcp --dport 993 -j ACCEPT
# Erlaube NNTP ( 119 )
iptables -A extout -p tcp --dport 119 -j ACCEPT
#iptables -A extin -p tcp --dport 119 -j ACCEPT
# Erlaube NNTPS ( 563 )
iptables -A extout -p tcp --dport 636 -j ACCEPT
#iptables -A extin -p tcp --dport 636 -j ACCEPT
# Erlaube GOPHER und WAIS ( 70 und 210 )
iptables -A extout -p tcp --dport 210 -j ACCEPT
# Erlaube ICMP ( ... )
#iptables -A extin -p icmp -j ACCEPT
iptables -A extout -p icmp -j ACCEPT
# IRC
iptables -A extout -p tcp --dport 6667:6668 -j ACCEPT
# Alle Packete des lokalen Netzes muessen maskiert werden.
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o "$EXTIF" -j MASQUERADE
;;
esac