Firewallscripts

Gemeinsam ins Internet mit Firewall und Proxy.
Benutzeravatar
Picknicker
Beiträge: 654
Registriert: 25.04.2003 16:28:02
Wohnort: Saarland

Beitrag von Picknicker » 01.02.2004 12:11:14

Weil dann nachfolgende Accept Rules nicht mehr bearbeitet werden da schon alle Packte in der 1. Rule verworfen werden :)
cu
Picknicker

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 01.02.2004 19:58:08

Die Policy kann man setzen wie man will. ACCEPT oder DROP haben keinen Einfluss auf die nachfolgenden Regeln, die Policies werden erst angewendet, wenn *alle* Chains durchlaufen wurden.

Ich habe mir das Skript jetzt nicht nochmal angeschaut, aber ich denke entweder werden die Policies am Ende dann noch auf DROP gesetzt, oder die Chains haben an Ihrem Ende jeweils eine explizte Regeln, die alles matched, was soweit gekommen ist, und es dann dropped.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

blue_kamil
Beiträge: 6
Registriert: 27.03.2004 22:53:38

Beitrag von blue_kamil » 27.03.2004 23:05:46

Hallo

Ich wollte mal Fragen auch Ihr auch ein script habt das zu Absicherung eines Proxy + Samabs Server geeignet ist. Es wäre doch schwach sinn wenn ich IP-Forwarb betreiben würde??
Danke Kamil

Benutzeravatar
kenshi
Beiträge: 10
Registriert: 23.11.2003 00:25:19
Kontaktdaten:

Beitrag von kenshi » 02.04.2004 19:00:26

Was müsste ich in die Firewall schreiben damit oidentd richtig funktioniert?

BrianFFM
Beiträge: 222
Registriert: 21.04.2004 11:54:33
Wohnort: L.A. in Hessen

Beitrag von BrianFFM » 28.04.2004 21:47:36

Das Firewall Thema ist für mich immer das mit interessanteste Thema gewesen .. nur habe ich leider nie die Zeit mich mal mit iptables genauer auseinander zu setzen.

für alle die es gerne leicht haben und den syntax nicht verstehen ist der fwbuilder absolut gut .. der hat mir gute Dienste geleistet.

Vorteil: durch die Oberfläche lernt man zunächst einmal die Regeln zu verstehen. Was die Voraussetzung für eine Firewall ist.

Nachteil: ist so nett zu bedienen, daß man nie iptables lernt :?

*smile*

Gruß, Brian

fte213
Beiträge: 70
Registriert: 11.01.2004 12:31:28
Wohnort: 74889 Sinsheim

Beitrag von fte213 » 30.04.2004 12:39:47

Hört sich vielleicht en bissl doof an, aber gibt es auch ein Tool, dass unter Windows läuft, man ein Script erstellen kann und dann per SSH z.B. in mein Linux-Script kopieren kann?

Hab grad das Problem, dass ich ein Script fürn Ethernet-Router benötige, die ganzen Beispiele aber immer für einen WAN Router sind und ich denke, dass hier das Netz schon vom fli4l abgesichert ist (hoffe ich mal)!

Was erstelle ich den hier für Regeln? Bisher kann ich ausschliesslich pingen, mehr geht nicht durch :-(

Benutzeravatar
pierre
Beiträge: 363
Registriert: 03.12.2003 21:21:34
Wohnort: Berlin

Beitrag von pierre » 30.04.2004 19:01:20

Hi,
fte213 hat geschrieben:Hört sich vielleicht en bissl doof an, aber gibt es auch ein Tool, dass unter Windows läuft, man ein Script erstellen kann und dann per SSH z.B. in mein Linux-Script kopieren kann?
putty, ein Editor und dos2unix.

Mti Hilf von dos2unix kannst du dos formatierte Dateien in Unix formatierte umwandeln.
Das ganze gibt es auch umgekehrt.

MfG
pierre

Benutzeravatar
haga43
Beiträge: 31
Registriert: 29.08.2003 14:23:50
Wohnort: Oldenburg

Beitrag von haga43 » 01.05.2004 00:01:55

nabend zusammen,

die Geschichte mit den Grundlagen ist nicht unwichtig. Will es wirklich nicht runter machen.

Aber für die Praxis im home- oder im Small-Office Bereich gibt es für mich nur eines:

fwbilder

fwbilder vergisst keinen Rückweg zu öffnen.

fwbilder ist leicht per gtk zu konfigurieren

Für verschiedene spezielle FW habe ich mit awk und bash Scripte für Firewalling gebaut, bis ich
fwbilder entdeckte.

Es gibt bestimmt ähnliche gute Tools, die ich nicht kenne.

Gruß haga43

Azra3l-XES
Beiträge: 7
Registriert: 15.03.2004 10:33:41
Wohnort: rosenheim

Beitrag von Azra3l-XES » 01.05.2004 19:49:47

da gibts meiner meinung nach auch nen relativ guten iptables-generator unter http://www.harrry.homelinux.org

benutze den auch und bin damit soweit zufrieden. ok höheren anprüchen genügt es natürlich nicht aber ist mal ein anfang :)

pugnacity
Beiträge: 187
Registriert: 13.04.2004 15:02:45
Wohnort: Berlin
Kontaktdaten:

Beitrag von pugnacity » 03.05.2004 13:58:20

leider funktioniert der von dir angebene link nicht.... :( :(

fte213
Beiträge: 70
Registriert: 11.01.2004 12:31:28
Wohnort: 74889 Sinsheim

Beitrag von fte213 » 03.05.2004 14:45:35

Wollts noch posten, weil mir gleich aufgefallen ist als er nicht getan hat:

http://www.harry.homelinux.org

Er hat ein "r" zuviel reingeschmuckelt :-)

Azra3l-XES
Beiträge: 7
Registriert: 15.03.2004 10:33:41
Wohnort: rosenheim

Beitrag von Azra3l-XES » 03.05.2004 16:06:36

ups ja mist :D
verdammt

Laynon
Beiträge: 22
Registriert: 04.12.2003 08:01:24

Iptables für router

Beitrag von Laynon » 11.05.2004 21:12:56

Moin moin,

dieses Forum hat mir schon oft geholfen durch reines suchen, jedoch brauch ich bei den iptables nun doch noch bissel hilfe. Hab das Script für Router aus diesem Thread bissel für mich angepasst (thx k-pl). Läuft auch so wie gewünscht bis auf eine merkwürdige Sache:

Code: Alles auswählen


  # Lokal -> Internet: Alles erlauben
  iptables -A FORWARD -i $IFACE_INT -o $IFACE_EXT -j ACCEPT

  # Ins Internet : Alles erlauben
  iptables -A OUTPUT -o $IFACE_EXT -j ACCEPT
Die erste Zeile erlaubt es mir vom Client ins Inetnet zu kommen.
Die zweite Zeiile erlaubt es generell inst internet zu kommen.

Wenn ich nun die zweite auf DROP setze, komme ich vom Router nicht mehr ins Internet vom Client aus kann ich aber immer noch ins Inernet, erst wenn ich die erste Zeile auch auf DROP setze wird der Client geblockt.

Die erste Zeile "FORWARD" soll nur weiterleiten wenn die zweite auf "ACCEPT" steht und nicht eigenstendig das Internet offen lassen..

bearbeite die Iptables grade mir dem Buch "Linux Wegweiser für Netzwerker" bin aber noch am Anfang mit den iptables.

Ich hoffe ich das die Infos reichen. Das Script ist so aufgebaut, wie das auf Seite 1 in diesem Thread.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 12.05.2004 01:02:38

Das geht nicht, weil FORWARD alle Pakete betrifft, die *durch* den Router gehen, und OUTPUT nur die Pakete betrifft, die wirklich *vom* Router sind.

Ergo: Für die Clients ist FORWARD zuständig, und für den Router selbst ist OUTPUT zuständig. Die beiden Regeln haben keinen gegenseitigen Einfluss.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

michaschmieder
Beiträge: 1
Registriert: 12.05.2004 11:45:50

Beitrag von michaschmieder » 12.05.2004 12:32:18

Nochmal zum Thema: Wie konfiguriere ich den Kernel zum Firewalling per IPTABLES ...
Da hätte ich hier einen Auszug aus "Das Firewall Buch" von Wolgang Barth, bezieht sich auf Kernel 2.4 ...

...Um von den Filterfähigkeiten des Kernel Gebrauch machen zu können, müssen die zum Firewalling gehörenden Teile einkompiliert sein. Mit

# make menuconfig

kann die Kernelkonfiguration verändert werden. Neben der generellen Netzwerkunterstützung unter General setup werden folgende Einstellungen aus dem Menü Networking options benötigt:

<*> Packet socket
[*] Network packet filtering (replaces ipchains)
[*] Network packet filtering debugging
....
[*] TCP/IP networking
....
[*] IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration --->[/i]

Das Submenü Nefilter Configuration faßt alle für die Netfilter-Architektur möglichen Parameter zusammen.

<*> Connection tracking (required for masq/NAT)
<M> FTP protocol support
<*> IP tables support (required for filtering/masq/NAT)
<M> limit match support
<M> MAC adress match support
<M> netfilter MARK match support
<M> Multiple port match support
<M> TOS match support
<M> Connection state match support
<*> Packet filtering
<M> REJECT target support
<*> Full NAT
<M> MASQUERADE target support
<M> REDIRECT target support
<*> Packet mangling
<M> TOS target support
<M> MARK target support
<*> LOG target support
<M> TCPMSS target support
<M> ARP tables support
<M> ARP packet filtering


Die einzelnen Einstellungen werden in

/usr/src/linux/Documentation/Configure.help

näher beschrieben. Diese zu jedem Eintrag entsprechende Hilfe erhält man auch im Konfigurationsmenü über die Auswahl Help

Die wesentlichen Einstellungen daraus sind:

Network packet filtering
Schaltet grundsätzlich das Netfilter Framework ein. Ist nötig, sobald der Rechner als Paketfilter arbeiten soll oder NAT durchgeführt werden muss.

IP: TCP syncookie support
ist eine Abwehrmaßnahme gegen SYN flooding, eine Denial-of-Service-Attacke. Auf dem äußeren Router/Filter unbedingt anwenden. Allerdings muß der SYN-Cookie Support nach dem Booten aktiviert werden:
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

IP tables support (required for filtering/masq/NAT)
Der eigentliche Kern der Paket-Manipulation im Kernel 2.4. Darunter finden sich eine Reihe von Funktionalitäten als einzelne Module implementiert. Im Gegensatz zu früheren Kernels sind auch schon nichttriviale Targets wie REJECT, MASQUERADE und REDIRECT sowie Logging in eigene Module ausgelagert worden. Das hält den eigentlichen Kernelcode klein und übersichtlich und erleichtert die Erweiterung.
....

Connection tracking (required for masq/NAT)
In einer eigenen Tabelle werden ausgehende Pakete und Verbindungen gelistet, um eingehende Pakete besser einer bestehenden Verbindung zuordnen zu können. Das ermöglicht erst NAT, erlaubt aber auch eine dynamische Paketfilterung (Modul Connection state match support ).

cu Micha

PS: I like SuSE ...

Benutzeravatar
DiWoWo
Beiträge: 51
Registriert: 05.06.2004 21:51:19

Re: Firewallscripts

Beitrag von DiWoWo » 06.06.2004 18:05:42

Ich möchte einen Debian-PC als router verwenden, und habe dieses Script ausprobiert. Das einzige was auf meinem Clientrechner funktionierte war ICQ. Ansonsten ging nichts. Keine Webseite, und auch meine eMails konnte ich nicht aufrufen. Hatte zuvor noch auf mein internes Netzwerk angepasst, aber es funktionierte nicht! Was muss ich noch beachten?
k-pl hat geschrieben:Da immer wieder die Frage kommt, wo die iptables-Befehle eingetragen werden sollen, hier nochmal das Script von glatzor aus http://www.debianforum.de/forum/viewtopic.php?t=151 . Dieses Script lege man in /etc/init.d ab und erstelle Symlinks im Verzeichnis des benutzren Runlevels.

Achtung: Das Script ist ein Beispiel. Umbedingt die iptables-Eintrage anpassen.

Eine ausführlichere Anleitung befindet sich in der Tipp-Sektion.

Code: Alles auswählen

#!/bin/sh

  # Schnittstelle zum lokalen Netzwerk
  IFACE_INT=eth0

  # Internetschnittstelle - "ippp+" für ISDN
  IFACE_EXT=ppp+

  # Loopback device - bedraf keiner Anpassung
  IFACE_LO=lo


# ************
# * POLICIES *
# ************

  # Zurücksetzen der Konfiguration
  iptables -F
  iptables -t nat -F

  iptables -X
  iptables -t nat -X 

  # Default-Policies setzen - alles fliegt raus
  iptables -P INPUT DROP
  iptables -P FORWARD DROP
  iptables -P OUTPUT DROP

  # Einschalten von ip-Forwarding
  echo "1" > /proc/sys/net/ipv4/ip_forward


# *********
# * INPUT *
# *********

  # Soll nicht sein
  iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

  # Vom internen Netz alles erlauben
  iptables -A INPUT -i $IFACE_INT -j ACCEPT

  # Vom Loopback Alles erlauben
  iptables -A INPUT -i $IFACE_LO -j ACCEPT

  # Vom Internet: Darf nicht sein
  iptables -A INPUT -i $IFACE_EXT  -s 10.0.0.0/8 -j DROP
  iptables -A INPUT -i $IFACE_EXT  -s 172.16.0.0/12 -j DROP
  iptables -A INPUT -i $IFACE_EXT  -s 192.168.0.0/24 -j DROP

  # Vom Internet Erlauben von bereits initialisierten Verbindungen
  iptables -A INPUT -i $IFACE_EXT -m state \
--state ESTABLISHED,RELATED -j ACCEPT


# ***********
# * FORWARD *
# ***********
  
  # Wegen der Telekom
  iptables -I FORWARD -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
  
  # Lokal -> Internet: Alles erlauben
  iptables -A FORWARD -i $IFACE_INT -o $IFACE_EXT -j ACCEPT


  # Internet -> Lokales: Nur Verkehr über bereits bestehende Verbindungen erlauben
  iptables -A FORWARD -i $IFACE_EXT -o $IFACE_INT -m state \
--state ESTABLISHED,RELATED -j ACCEPT


# **********
# * OUTPUT *
# **********

  # Ins lokale Netzwerk: Alles erlauben
  iptables -A OUTPUT -o $IFACE_INT -j ACCEPT

  # Ans Loopback: Alles erlauben
  iptables -A OUTPUT -o $IFACE_LO -j ACCEPT

  # Ins Internet : Alles erlauben
  iptables -A OUTPUT -o $IFACE_EXT -j ACCEPT



  # Masquerading
  iptables -A POSTROUTING -o $IFACE_EXT -t nat -j MASQUERADE


  # Den Rest mitprotokollieren
  iptables -A OUTPUT -j LOG --log-prefix "Nicht raus: "
  iptables -A FORWARD -j LOG --log-prefix "Nicht durch: "
  iptables -A INPUT -j LOG --log-prefix "Nicht rein: " 

Changelog:
21.April 2003 - glatzor: Ich habe das Skript leicht modifiziert und einen Verweis auf eine HOWTO hinzugefügt

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Beitrag von fabske » 12.06.2004 12:34:38

ich hab mein server neuinstalliert und bei der gelegenheit gleich meine firewall überarbeitet. nun wollt ich noch ein feedback haben, danke :)

Code: Alles auswählen

# sicherheitsstufe4b firewall script by mohameth@gmx.net

############################################################

# reset settings
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

iptables -F
iptables -t nat -F
iptables -t mangle -F

iptables -X
iptables -t nat -X
iptables -t mangle -X

############################################################

# definitions
# inet
A=eth1
# lan
B=eth0

############################################################

# INPUT:
# input drop
iptables -P INPUT DROP

# allow pakets from lo
iptables -A INPUT -i lo -j ACCEPT

# allow icmp echo-request till 5 per second. load modul ipt_limit!
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

# allow icmp 3, 4, 11 and 12
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT

# allow fragments
iptables -A INPUT -f -j ACCEPT

# allow reply pakets. modul ipt_state laden!
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# block ftp dos attack
iptables -A INPUT -m tcp -p tcp --dport ftp --syn -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport ftp --syn -j DROP

# allow ftp (ftp server)
#iptables -A INPUT -m tcp -p tcp --dport ftp -j ACCEPT
#iptables -A INPUT -m tcp -p tcp --dport ftp-data -j ACCEPT

# block ssh dos attack
iptables -A INPUT -m tcp -p tcp --dport ssh --syn -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport ssh --syn -j DROP

# allow ssh incoming
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT

# allow arp requests from lan (nameserver)
#iptables -A INPUT -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT
#iptables -A INPUT -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT

# allow samba from lan
#iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 137 -j ACCEPT
#iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 138 -j ACCEPT
#iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 139 -j ACCEPT
#iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 137 -j ACCEPT
#iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 138 -j ACCEPT
#iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 139 -j ACCEPT

# FORWARD:
# default drop
iptables -P FORWARD DROP

# allow icmp echo-request till 5 per second. load modul ipt_limit!
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP

# allow icmp 3, 4, 11 and 12
iptables -A FORWARD -p icmp --icmp-type 3 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 4 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type 12 -j ACCEPT

# allow reply pakets. modul ipt_state laden!
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow fragments
iptables -A FORWARD -f -j ACCEPT

# allow dns requests from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT
iptables -A FORWARD -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 53 -j ACCEPT

# allow http from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 80 -j ACCEPT
iptables -A FORWARD -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport 80 -j ACCEPT

# allow jabber from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 5222 -j ACCEPT
# allow jabber over ssl from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport 5223 -j ACCEPT

# allow ftp from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport ftp -j ACCEPT

# allow pop3 from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport pop3 -j ACCEPT

# allow pop3 over ssl from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport pop3s -j ACCEPT
iptables -A FORWARD -m udp -p udp -s 192.168.0.0/255.255.255.0 -i $B --dport pop3s -j ACCEPT

# allow smtp from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport smtp -j ACCEPT

# allow irc from lan
iptables -A FORWARD -m tcp -p tcp -s 192.168.0.0/255.255.255.0 -i $B --dport ircd -j ACCEPT

# OUTPUT:
# default drop
iptables -P OUTPUT DROP

# allow pakets to lo
iptables -A OUTPUT -o lo -j ACCEPT

# allow reply pakets. modul ipt_state laden!
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow icmp till 5 per second. load modul ipt_limit!
iptables -A OUTPUT -p icmp -m limit --limit 5/s -j ACCEPT
iptables -A OUTPUT -p icmp -j DROP

# allow ssh to lan
iptables -A OUTPUT -m tcp -p tcp -d 192.168.0.0/255.255.255.0 -o $B --dport ssh -j ACCEPT

# allow ftp
iptables -A OUTPUT -m tcp -p tcp --dport ftp -j ACCEPT

# allow http
iptables -A OUTPUT -m tcp -p tcp --dport www -j ACCEPT
iptables -A OUTPUT -m udp -p udp --dport www -j ACCEPT

# allow dns requests
iptables -A OUTPUT -m tcp -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -m udp -p udp --dport 53 -j ACCEPT

# allow samba to lan
#iptables -A OUTPUT -p tcp -d 192.168.0.0/255.255.255.0 -o $B --sport 137 -j ACCEPT
#iptables -A OUTPUT -p tcp -d 192.168.0.0/255.255.255.0 -o $B --sport 138 -j ACCEPT
#iptables -A OUTPUT -p tcp -d 192.168.0.0/255.255.255.0 -o $B --sport 139 -j ACCEPT
#iptables -A OUTPUT -p udp -d 192.168.0.0/255.255.255.0 -o $B --sport 137 -j ACCEPT
#iptables -A OUTPUT -p udp -d 192.168.0.0/255.255.255.0 -o $B --sport 138 -j ACCEPT
#iptables -A OUTPUT -p udp -d 192.168.0.0/255.255.255.0 -o $B --sport 139 -j ACCEPT

# PREROUTING:
# forward emule
#iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 4660 -j DNAT --to-destination 192.168.0.2:4660
#iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 4672 -j DNAT --to-destination 192.168.0.2:4672

# POSTROUTING:
# aktivate masquerade
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

############################################################

# aktivate forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward


Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?

arzie
Beiträge: 134
Registriert: 17.02.2002 15:51:03

Beitrag von arzie » 15.06.2004 22:13:03

-m tcp und -m udp sind ueberfluessig, wenn mit -p das Protokoll definiert wird.
siehe auch die manpage von iptables. Also wo '-m tcp -p tcp' steht reicht '-p tcp'

http und pop3s nutzen kein udp, die Erlaubnisse sind ueberfluessig.

Eine verwurmte Windose (zB Laptop eines Gastes) darf rausspammen, das ist schlecht.
Gibt die IP des erlaubten SMTP Servers als Destination an, damit duerfen Wuermer die mit einem eigenen SMTP direkt zustellen wollen nicht raus.

Code: Alles auswählen

# allow ssh incoming 
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
ist schlecht und ueberfluessig weil man damit Pakete reinlaesst die kein syn-flag haben und gleichzeitig zu keiner bekannten Verbindung gehoeren, denn die wurden ja schon weiter oben von --state ESTABLISHED,RELATED erlaubt.

# allow samba from lan geht kuerzer wenn man mit 137:139 die Portrange angibt
Und anstelle von /255.255.255.0 schreib ich persoenlich lieber /24

An manchen Stellen hast du den Port nummerisch angegeben und an andern Stellen den Dienst hingeschrieben. Das aendert nichts aber sieht aber inkonsistent aus.

Wenn man den Dienst hinschreibt ist's schoener zu lesen und man erkennt was 'gemeint ist'. Wenn man den Port hinschreibt sieht man was wirklich passiert. (Es kann jeder Dienst auf Port 80 laufen nicht nur http)

Wenn du die User wirklich auf Dienste festnageln willst, dann brauchst du ein Application-Gateway/Proxy.
Im Falle von http ist das sogar besser weil die User dann auch die Seiten von http Servern bekommen die nicht auf Port 80 laufen aber zB keinen SMTP auf Port 80 benutzen koennen.

https (443) fehlt voellig, das wuerde ich als LAN-User nicht akzeptieren wollen.

Wenn du hoeflich sein moechtest dann haenge doch als letzte Regeln in der Input Chain noch das hier ran.

Code: Alles auswählen

$IPTABLES -A INPUT -p tcp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -p udp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with icmp-port-unreachable
Wenn jemand eine Verbindung zu einem Port aufbauen moechte auf dem du kein Dienst anbietest bekommt er dann von dir gesagt das es nichts gibt, und er hoert auf.
Wenn du (bei tcp) den Syn bis zur DROP Policy laufen laesst, wird er es noch oefter Probieren weil er davon ausgeht das sein syn nicht bei dir angekommen ist. 5 mal ist Default
Meiner Erfahrung nach sind das meistens Syn die fuer denjenigen gedacht waren von dem man die Dynamische IP geerbt hat und eben die ueblichen WinWuermer.
Bei einem echten Portscann spielt es kaum eine Rolle ob man nun sofort dropt oder die ersten 60 noch rejectet.

BTW: Ich habe gute Erfahrungen mit dnsmasq gemacht.
Das ist ein kleiner Caching-dns den die LAN Clients benutzen koennen. Man muss die Clients nicht mehr auf Port 53 raus lassen und Namen die schon einmal aufgeloest wurden verursachen keinen Internet-traffic mehr, geht also schneller. Es gibt auch keine Probleme wenn man die Addressen der DNS Server dynamisch bei der Einwahl bekommt bzw wenn diese sich mal aendern, denn man gibt bei den Clients einfach die LAN IP des Rechners an der die Internetverbindung macht als DNS-Server an.

arzie

Benutzeravatar
fabske
Beiträge: 2023
Registriert: 14.06.2003 15:07:51

Beitrag von fabske » 16.06.2004 21:08:59

arzie hat geschrieben:-m tcp und -m udp sind ueberfluessig, wenn mit -p das Protokoll definiert wird.
siehe auch die manpage von iptables. Also wo '-m tcp -p tcp' steht reicht '-p tcp'

http und pop3s nutzen kein udp, die Erlaubnisse sind ueberfluessig.
das -m mach ich raus, aber bei den udp ports muss ich dir widersprechen.
1. steht in der /etc/services dass es für pop3 genau so wie für http udp gibt
2. hab ich früher kein udp für http gehabt, und dann konnte ich mich z.b. nicht per webinterface bei gmx anmelden.
arzie hat geschrieben:Eine verwurmte Windose (zB Laptop eines Gastes) darf rausspammen, das ist schlecht.
Gibt die IP des erlaubten SMTP Servers als Destination an, damit duerfen Wuermer die mit einem eigenen SMTP direkt zustellen wollen nicht raus.

Code: Alles auswählen

# allow ssh incoming 
iptables -A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
ist schlecht und ueberfluessig weil man damit Pakete reinlaesst die kein syn-flag haben und gleichzeitig zu keiner bekannten Verbindung gehoeren, denn die wurden ja schon weiter oben von --state ESTABLISHED,RELATED erlaubt.
aber ich will dass ich meinen server von außen erreichen kann!?
arzie hat geschrieben:# allow samba from lan geht kuerzer wenn man mit 137:139 die Portrange angibt
Und anstelle von /255.255.255.0 schreib ich persoenlich lieber /24

An manchen Stellen hast du den Port nummerisch angegeben und an andern Stellen den Dienst hingeschrieben. Das aendert nichts aber sieht aber inkonsistent aus.

Wenn man den Dienst hinschreibt ist's schoener zu lesen und man erkennt was 'gemeint ist'. Wenn man den Port hinschreibt sieht man was wirklich passiert. (Es kann jeder Dienst auf Port 80 laufen nicht nur http)

Wenn du die User wirklich auf Dienste festnageln willst, dann brauchst du ein Application-Gateway/Proxy.
Im Falle von http ist das sogar besser weil die User dann auch die Seiten von http Servern bekommen die nicht auf Port 80 laufen aber zB keinen SMTP auf Port 80 benutzen koennen.
ich werd es in portnummern ändern. proxyserver is aber etwas übertrieben in meinem kleinen lan.
arzie hat geschrieben:https (443) fehlt voellig, das wuerde ich als LAN-User nicht akzeptieren wollen.
mach ich rein
arzie hat geschrieben:Wenn du hoeflich sein moechtest dann haenge doch als letzte Regeln in der Input Chain noch das hier ran.

Code: Alles auswählen

$IPTABLES -A INPUT -p tcp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with tcp-reset
$IPTABLES -A INPUT -p udp -m limit --limit 30/minute --limit-burst 60 -j REJECT --reject-with icmp-port-unreachable
Wenn jemand eine Verbindung zu einem Port aufbauen moechte auf dem du kein Dienst anbietest bekommt er dann von dir gesagt das es nichts gibt, und er hoert auf.
Wenn du (bei tcp) den Syn bis zur DROP Policy laufen laesst, wird er es noch oefter Probieren weil er davon ausgeht das sein syn nicht bei dir angekommen ist. 5 mal ist Default
Meiner Erfahrung nach sind das meistens Syn die fuer denjenigen gedacht waren von dem man die Dynamische IP geerbt hat und eben die ueblichen WinWuermer.
Bei einem echten Portscann spielt es kaum eine Rolle ob man nun sofort dropt oder die ersten 60 noch rejectet.
ich bin eigentlich ein höflicher mensch, aber es sollte nicht auf meine performance gehen.
ich hab die beiden regeln aber leider immer noch nicht ganz verstanden :/
BTW: Ich habe gute Erfahrungen mit dnsmasq gemacht.
Das ist ein kleiner Caching-dns den die LAN Clients benutzen koennen. Man muss die Clients nicht mehr auf Port 53 raus lassen und Namen die schon einmal aufgeloest wurden verursachen keinen Internet-traffic mehr, geht also schneller. Es gibt auch keine Probleme wenn man die Addressen der DNS Server dynamisch bei der Einwahl bekommt bzw wenn diese sich mal aendern, denn man gibt bei den Clients einfach die LAN IP des Rechners an der die Internetverbindung macht als DNS-Server an.

arzie
danke, aber ein dns server kommt hier nimmer zum einsatz. bind für 4 rechner is schwachsinn. dnsmasq kenn ich, ist gut, aber eigentlich brauch ich keinen dns server.


btw: brauch ich bei ftp und ssh auch udp?
Bevor Du einen Beitrag postest:
- Kennst Du unsere Verhaltensregeln?
- Hast Du die Suchfunktion benutzt? Deine Frage wurde vielleicht schon in einem anderen Beitrag beantwortet.
- Ist schon ein Artikel in unserem Wiki vorhanden, der Deine Frage beantwortet?

Benutzeravatar
LinuxMichi
Beiträge: 6
Registriert: 26.07.2004 21:08:16
Wohnort: Strasbourg und Marrakech
Kontaktdaten:

Beitrag von LinuxMichi » 26.07.2004 21:23:42

[quote="Natas12"]argh! also: jetzt hab ich mich durch mehrere tutorials durchgeklickt, diverse programme ausprobiert. so richtig schlau werd ich da nicht draus...
hab auf http://www.iptables.de folgendes skript für "eilige" gefunden - taugt das was (einfach nur dialup, modem, mehr nicht):


Der Server sieht ein bischen eigenartige aus...

Auch http://www.netfilter.org ist verschwunden... :(
--
Was soll ich als Signatur angeben ?

Benutzeravatar
holger.lehn
Beiträge: 81
Registriert: 06.04.2004 22:11:38
Wohnort: Waghäusel

Beitrag von holger.lehn » 14.10.2004 21:24:22

Hi,

schaut euch mal die Seite http://www.fwbuilder.org an.

Eine grafiche Oberfläche um Paketfilterregeln für verschiedene Zielsysteme, auch IPTABLES mit Linux 2.6 zu erstellen. Über eine COMPILE Funktion erstellt dass Programm ein Shell-Script das man nur noch ausführen muss und dass die IPTABLES Befehle absetzt.
Gruss
Holger

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 19.10.2004 15:46:33

Ich hab mal ne frage zu Log Files:

Code: Alles auswählen

iptables -A OUTPUT -j LOG --log-prefix "OUTPUT geblockt: "
          iptables -A FORWARD -j LOG --log-prefix "FORWARD geblockt: " 
          iptables -A INPUT -j LOG --log-prefix "INPUT geblockt: " 
Ich hab das in meinem Firewallscript stehen, und damit gibt er ja seine Ausgabe an das Kernel Log weiter.
Wie ist es möglich das ich das in drei Dateien umleite ? mit &> gehts ja nicht . . . :oops:
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 22.10.2004 11:33:16

_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Benutzeravatar
jm
Beiträge: 3
Registriert: 01.12.2004 06:02:18

Beitrag von jm » 02.12.2004 17:34:29

was haltet ihr so von 'guarddog' ?

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 03.12.2004 19:17:35

was ist das ?
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Antworten