[gelöst] iptables script automatisch starten

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
seels

[gelöst] iptables script automatisch starten

Beitrag von seels » 30.04.2007 01:10:19

Moin!

Ich bin hier am verzweifeln! Ich habe mir ein iptables Script geschrieben und es nach /etc/network/if-pre-up.d/iptables.sh verschoben. Dazu mit chmod a+x ausführbar gemacht.

Vorher hatte ich das Script auch in /etc/init.d und per ln -s einen Link auf /etc/rcS.d/s55iptables.sh gesetzt.

Doch egal was ich mache, er führt es einfach nicht aus!

iptables -L ergibt immer nur die Debian Defaultregeln:

Code: Alles auswählen

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Hier ein Auszug aus dem Anfang des Scriptes:

Code: Alles auswählen

!/bin/bash
# Pfad-Variable, damit die Befehle gefunden werden, wenn die Firewall automatisch
# von ip-up.local/ip-down.local ausgeführt wird.
PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin
export PATH

# Das Interface, also eth0,ippp0, etc.
IF=eth1

# Ermitteln der vom ISP zugewiesenen IP-Adresse
# LOCIP = lokale IP-Adresse/IP-Adresse des Interface,
# awk wird als Feldseparator der ":" und Whitespace
# zugewiesen, in Feld 4 steht die locale IP-Adresse,
# gesucht wird nach der Zeile die "inet" enthält.
LOCIP=$(ifconfig $IF | awk '{ FS=":|[ \t]+" } ; /\<inet\>/ { print $4 }')

# Module laden
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG
# sind hier auskommentiert da für das Firewall-Beispiel nicht benötigt
#modprobe iptable_mangle
#modprobe iptable_nat
#modprobe ip_nat_ftp
#modprobe ipt_MASQUERADE

# alle chains entleeren
# Tabelle filter
iptables -F
# Tabelle nat
iptables -t nat -F
# Tabelle mangle
iptables -t mangle -F

# Setzt in allen Tabellen die policy, entsprechend den Regeln des Einzelplatz Firewalls.
# Es werden alle 3 chains der Tabelle filter auf DROP, der Rest auf Accept gesetzt.
# Tabelle filter
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Tabelle nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# Tabelle mangle
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT


# Pakete mit privaten IP-Adressen bzw. Loopback-Adressen abweisen
iptables -A INPUT -i $IF -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i $IF -s 172.16.0.0/12 -j DROP

iptables -A INPUT -i $IF -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i $IF -s 127.0.0.0/8 -j DROP


# neue und ungültige Packete abweisen
iptables -A INPUT -i $IF -m state --state NEW,INVALID -j DROP
[...]
Was mache ich falsch?

Gruß
seels
Zuletzt geändert von seels am 02.05.2007 19:26:29, insgesamt 3-mal geändert.

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 30.04.2007 07:58:43

Gab es da nicht so eine komische Regel, nach der die Dateien in diesen Verzeichnissen keinen Punkt haben dürfen? Benenne es mal um in "firewall" oder so (nicht genau "iptables", da kann es dann zu lustigen Effekten wg. /sbin/iptables kommen).

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

adrian
Beiträge: 234
Registriert: 15.09.2004 20:09:46
Wohnort: Langnau CH
Kontaktdaten:

Beitrag von adrian » 30.04.2007 13:09:57

@mistersixt
Nach meinem Wissen sollte dies keine Rolle spielen, mit oder ohne Punkt, hab vorhin auch ein iptables script mit Dateinamen nat.sh geschrieben, läuft einwandfrei....

@ seels
wird eine Meldung ausgegeben?
versuchs mal mit einem einfacheren script.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT
oder ähnlich... so kannste ev. schon mal nen Fehler ausmachen...

Gruss

Henrykater
Beiträge: 10
Registriert: 15.02.2007 13:27:00

Beitrag von Henrykater » 30.04.2007 18:25:17

Bin mir nicht ganz sicher. Aber ich glaub, daß in Deinem Script in die erste Zeile vor dem Ausrufezeichen eine Raute gehört.

Gruß

Henrykater
Beiträge: 10
Registriert: 15.02.2007 13:27:00

Beitrag von Henrykater » 30.04.2007 19:04:02

Du kannst dir auch hier eine Firewall mit dem Firewallgenerator zusammenstellen.

http://easyfwgen.morizot.net/gen/index.php

Das Script nach /etc/init.d kopieren.
Dann mit chmod 755 meinfirewallscriptname ausfühbar machen.
Dann mit update-rc.d meinfirewallscriptname defaults die Links für die Runlevel anlegen.
Vorher deinen alten Link zum Runlevel mit update-rc.d deinalterfirewallscriptname remove löschen.

Dann läufts, Gruß

seels

Beitrag von seels » 01.05.2007 18:53:42

Henrykater hat geschrieben:Bin mir nicht ganz sicher. Aber ich glaub, daß in Deinem Script in die erste Zeile vor dem Ausrufezeichen eine Raute gehört.

Gruß
Ja die gehört da hin, ist allerdings nur beim Kopieren verloren gegangen ;)

Aber danke für deinen zweiten Beitrag... habs danach gemacht und nun wird das Script auch geladen und funktioniert einwandfrei, danke danke danke :D

seels

Beitrag von seels » 02.05.2007 14:25:25

Wenn ich nun mein Script änder und neue Regeln eintrage, wie kann ich die Firewall dann neustarten damit er die regeln von dem Script liest und ich nicht gleich den ganzen Rechner neustarten muss?

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 02.05.2007 14:46:04

Hm, einfach

Code: Alles auswählen

/etc/init.d/deinskript
als root ausführen?

Antworten