IPTables - will nicht so

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

IPTables - will nicht so

Beitrag von ObiTobi » 03.08.2016 21:12:23

Hallo,

aus Linux und IPTables bin ich mindestens 10 Jahre raus. Nun brauche ich doch eine Kiste die Router und FW macht.
Ich habe eine Debian Kiste aufgebaut die 4 Netzwerkkarten hat - eth0-eth3. An eth3 hängt noch Fritzbox die an DSL hängt.

Damit ich das wieder etwas verstehe, wurde mir einfaches Ping zwischen den Netzen reichen. Nur das kriege ich warum auch immer nicht hin

Aus der /etc/iptables/rules.v4

Code: Alles auswählen

*filter
-F
-X
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT

-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth2 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth2 -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j DROP
COMMIT
Nach einem iptables -F funktioniert ping. So bald ich aber die Relegn aktiviere ist nicht mehr mit Ping.
Wo liegt mein Denkfehler? Ich finde im Netz keine Beispiele für mehrere Netzwerkkarten an den ich mich orientieren könnte Ich habe es so verstanden dass die INPUT für alles was auf dem Router lokal läuft zuständig ist. FORWARD für alles war sonst irgendwo. Scheinbar ist aber trotzdem etwas falsch, im Log wird aber nichts drüber protokolliert.

Tobi

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 03.08.2016 21:43:22

ping ( echo-request: icmp-type 8 ) ist erlaubt, pong ( echo-reply: icmp-type 0 ) scheinbar nicht.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 03.08.2016 22:21:39

Danke.
Verstehen tue ich es irgendwie nicht ganz aber erst mal egal.
Warum ich nicht so ganz verstehe - für DNS/ DHCP musste ich irgendwie keine Regel definieren die Rückantwort erlaubt.

Aber Ping funktioniert schon mal :D

Benutzeravatar
MSfree
Beiträge: 11748
Registriert: 25.09.2007 19:59:30

Re: IPTables - will nicht so

Beitrag von MSfree » 04.08.2016 08:58:31

ObiTobi hat geschrieben:Warum ich nicht so ganz verstehe - für DNS/ DHCP musste ich irgendwie keine Regel definieren die Rückantwort erlaubt.
Das liegt vielleicht auch daran, daß du zwar die Regeln:

Code: Alles auswählen

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
angelegt hast, die Regel:

Code: Alles auswählen

-A FORWARD -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT
aber fehlt.

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: IPTables - will nicht so

Beitrag von Dimejo » 04.08.2016 19:35:29

ObiTobi hat geschrieben:aus Linux und IPTables bin ich mindestens 10 Jahre raus. Nun brauche ich doch eine Kiste die Router und FW macht.
Ich habe eine Debian Kiste aufgebaut die 4 Netzwerkkarten hat - eth0-eth3. An eth3 hängt noch Fritzbox die an DSL hängt.
Wenn die Kiste nur als Router und Firewall dienen soll würde ich Dir eine eigene Firewall-Distribution empfehlen. IPFire basiert z.B. auf Linux und kann mit bis zu 4 Netzen umgehen. pfSense basiert auf FreeBSD und ist bei der Konfiguration der Netzwerke sehr flexibel. Beide Distributionen bieten eine übersichtliche Web-UI und viele Features wie z.B. DHCP- und DNS-Server.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 05.08.2016 22:21:23

Hallo,

ja die FORWARD Rule habe ich nun auch hinzugefügt.
Der Rechner soll nur Router/FW machen. Ich werde mir später vielleicht tatsächlich pfSense anschauen. Im Moment möchte ich das Konstrukt aber "irgendwie" ans laufen kriegen.

Ganz, ganz grob funktioniert es auch. Aber eben nur ganz ganz grob.
Was mir wirklich fehlt ist ein "brauchbares" Loging.

Ich habe die Zeile

-A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4

und dann in rsyslog.conf

kern.warn -/var/log/iptables.log

Mit den Angaben bin ich zumindest im Moment nicht glücklich.
Ich hätte für den Anfang auch gerne, dass Pakete die durchgelassen und/ oder geforwardert werden auch protokolliert werden, damit ich sehen kann ob vielleicht doch irgendwo noch eine unnötige Tür offen ist.

Was der Parameter --limit 2/min wirklich machten soll habe ich auch nicht herausgefunden - 2 Minuten lag die gleiche Meldung oder max 2x die Meldung inerhalb einer Minute?. Mir kommt es hier so vor, dass es überhaupt gar nicht wirkt.


EDIT
Im Netz habe ich den Hinweis auf ULOG gefunden. Das Paket ulogd2 installiert aber irgendwie mit der Angabe

-A INPUT -j ULOG
-A FORWARD -j ULOG
-A OUTPUT -j ULOG
passiert überhaupt gar nichts.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 06.08.2016 00:46:26

Und ich dachte dass es an sich irgendwie funktioniert. Tuts aber irgendwie immer weniger ;(

Code: Alles auswählen

IPTables-INPUT-Dropped: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:e8:50:8b:d7:25:97:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=336 TOS=0x00 PREC=0x00 TTL=64 ID=1613 PROTO=UDP SPT=68 DPT=67 LEN=316 
obwohl in den Regeln steht

Code: Alles auswählen

-A FORWARD -i eth1 -o eth0 -m udp -p udp --dport 67 -d 255.255.255.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth2 -o eth0 -m udp -p udp --dport 67 -d 255.255.255.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth3 -o eth0 -m udp -p udp --dport 67 -d 255.255.255.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
Ich muss halt DHCP in anderes Netz relayen. Die Infrastruktur sieht so aus:

Client--WLAN-Router--[Router/FW]---[DNS/DHCP]

Im Moment kommen die Anfragen eben gar nicht an dem DHCP Server an.

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 06.08.2016 08:14:03

Das ist so gemein!
;)

Hier das Bildchen dazu: https://upload.wikimedia.org/wikipedia/ ... t-flow.svg

Der Broadcast kommt in "Network Layer/routing decision" an und wird in die INPUT weitergeleit,
denn broadcast ist ja für alle da einschließlich dem router selbst. In der input wird das Paket gedroppt,
wie auch Dein log zeigt.

Man müsste diese Paket zuerst in der PREROUTING ummodeln, damit sie in die FORWARD gelangen.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 06.08.2016 10:07:42

Ja ist es wirklich gemein, denn gestern (warum auch immer) ging das.
Ich habe wegen DNS Abfragen einige INPUT/ OUTPUT Regeln hinzugefügt damit ich zumindest in der Testphase Ping, DNS Abfragen und auch noch einige Pakete auf dem Router/FW Installieren kann aber daran wird es doch nicht gelegen haben oder?

Hättest Du vielleicht passende Zeiten wie es dann aussehen musste?

Danke

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 06.08.2016 15:05:07

Mmmh, ich glaub', da war ich ein bisschen vorlaut ;)
Man muss ja nicht nur die Layer3-Info forwarden, sondern sich ja auch noch die MAC-Addresse des Absenders merken.
Ob das so leicht mit iptables bzw. ebtables machen lässst?

Vielleicht ist es einfacher, Du installiert das Paket "dhcp-helper", das übernimmt dann das ganze "DHCP-Relaying".

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 06.08.2016 16:14:55

Nicht ganz. Also ich habe jetzt einfach den DHCP-Helper installiert, kriege im LOG aber die Meldung:

Code: Alles auswählen

IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.255 LEN=328 TOS=0x00 PREC=0x00 TTL=64 ID=58284 PROTO=UDP SPT=67 DPT=67 LEN=308 

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 06.08.2016 16:38:59

Also ich habe jetzt die Rules etwas modifiziert aber DHCP will trotzdem nicht.

Code: Alles auswählen

IPTables-INPUT-Dropped: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:f0:db:f8:ab:8b:28:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x00 PREC=0x00 TTL=255 ID=18881 PROTO=UDP SPT=68 DPT=67 LEN=308 
IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.255 LEN=328 TOS=0x00 PREC=0x00 TTL=64 ID=26176 PROTO=UDP SPT=67 DPT=67 LEN=308 
Nach dem was ich so verstanden habe musste es so aussehen. Scheinbar aber doch nicht :.

Code: Alles auswählen

-A INPUT -i eth1 -m udp -p udp --sport 68 --dport 67 -d 255.255.255.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth2 -m udp -p udp --sport 68 --dport 67 -d 255.255.255.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth3 -m udp -p udp --sport 68 --dport 67 -d 255.255.255.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -m udp -p udp --sport 67 --dport 67 -d 192.168.14.255 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth1 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth2 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth3 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 06.08.2016 16:54:02

Mmmh, vieleicht werden limited/directed broadcast besonderns ge-matched.
Ich würde mal "-d 255.255.255.255" bzw. "-d 192.168.14.255" weglassen.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 06.08.2016 17:04:36

Mit der Einstellung:

Code: Alles auswählen

-A INPUT -i eth1 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth2 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth3 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth1 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth2 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth3 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
kommen die Requests am Server an aber der Kleint bekommnt die Antwort nicht nd im Log steht nach wie vor:

Code: Alles auswählen

IPTables-INPUT-Dropped: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:f0:db:f8:ab:8b:28:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x00 PREC=0x00 TTL=255 ID=18910 PROTO=UDP SPT=68 DPT=67 LEN=308 
IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.255 LEN=328 TOS=0x00 PREC=0x00 TTL=64 ID=60996 PROTO=UDP SPT=67 DPT=67 LEN=308

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 06.08.2016 17:27:11

Die letzten drei OUTPUT-Regeln müssten "--dport 68" sein.
Sag ich mal so ;)

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 06.08.2016 17:38:11

Bringt leider nichts.

Code: Alles auswählen

IPTables-INPUT-Dropped: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:f0:db:f8:ab:8b:28:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x00 PREC=0x00 TTL=255 ID=18917 PROTO=UDP SPT=68 DPT=67 LEN=308
IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.255 LEN=328 TOS=0x00 PREC=0x00 TTL=64 ID=17448 PROTO=UDP SPT=67 DPT=67 LEN=308
Selbst wenn ich die Ports komplett rausnehme ändert es nichts.

Code: Alles auswählen

-A INPUT -i eth1 -m udp -p udp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth2 -m udp -p udp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth3 -m udp -p udp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -m udp -p udp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -m udp -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth1 -m udp -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth2 -m udp -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth3 -m udp -p udp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: IPTables - will nicht so

Beitrag von ThorstenS » 07.08.2016 10:06:17

Ich habe das Paket Debianisc-dhcp-relay installiert und folgende Regeln reichen, damit der dhcp-server im Netz „dmz“ (vlan 11) auch das Netz „intern“ ( vlan 16) bedienen kann:

Code: Alles auswählen

                # chains anlegen
                iptables -N dmz-in
                iptables -N dmz-intern-fwd
                …
                # die jumps zu den chains 
                iptables -A INPUT -i eth0.11 -j dmz-in
                iptables -A FORWARD -i eth0.11 -o eth0.16 -j dmz-intern-fwd
                …
                # DHCP (bootps und bootpc)
                iptables -A dmz-in -p tcp --dport 67:68 -j ACCEPT
                iptables -A dmz-in -p udp --dport 67:68 -j ACCEPT
                …
                iptables -A dmz-intern-fwd -p tcp --dport 67:68 -j ACCEPT
                iptables -A dmz-intern-fwd -p udp --dport 67:68 -j ACCEPT

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 07.08.2016 17:43:31

Also irgendwie läuft das hier sehr unbefriedigend. Und vor allem ganz großes Woodoo

Plötzlich funktioniert das mit dem DHCP-Relay (und das ohne dass ich weiter was verändert habe)

Vielleicht kann sich bitte mein bisheriges Konstrukt jemand anschauen der etwas mehr davon versteht als ich und mein Fehler entdecken.

Code: Alles auswählen

# Generated by iptables-save v1.3.3 on Wed Apr  9 10:51:08 2008
# Flush out any rules that are already in there
*filter
-F
-X
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# Protokolierung Einschalten
#############################
-A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
-A FORWARD -m limit --limit 2/min -j LOG --log-prefix "IPTables-FORWARD-Dropped: " --log-level 4
-A OUTPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4


# Erlaube Kernel interne Verbindungen
#####################################
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

# Bestehende Verbindungen weiter erlauben
############################################
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT


# ===================BEGIN SPECIFIC PORT RULES=================================
# ETH0 - Green - 192.168.14.0 (Internal Network)
# ETH1 - Blue  - 192.168.1.0  (WLAN for Guests)
# ETH2 - Red   - 192.168.2.0  (Freifunk WLAN)
# ETH3 - Black - 192.168.3.0  (DSL Interface)

# Allow Pinlube Ping überall
############################
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth2 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth2 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth2 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -i eth1 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -i eth2 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT

# Erlaube SSH auf Router/FW vom Grünen Netzwerk
########################################
-A INPUT -p tcp -m tcp --dport 22 -s 192.168.14.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -d 192.168.14.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Erlaube DNS Anfragen vom Blauen,Roten und Schwarzen Netzwerk
######################################################
-A FORWARD -i eth1 -o eth0 -m udp -p udp --dport 53 -s 192.168.1.0/24 -d 192.168.14.101 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth2 -o eth0 -m udp -p udp --dport 53 -s 192.168.2.0/24 -d 192.168.14.101 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth3 -o eth0 -m udp -p udp --dport 53 -s 192.168.3.0/24 -d 192.168.14.101 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m udp -p udp --sport 53 -d 192.168.1.0/24 -s 192.168.14.101 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth0 -o eth2 -m udp -p udp --sport 53 -d 192.168.2.0/24 -s 192.168.14.101 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth0 -o eth3 -m udp -p udp --sport 53 -d 192.168.3.0/24 -s 192.168.14.101 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -m udp -p udp --dport 53 -s 192.168.14.10 -d 192.168.14.101 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -m udp -p udp --sport 53 -d 192.168.14.10 -s 192.168.14.101 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# DNS Anfragen vom lokalen DNS Server weiterleiten
##################################################
-A FORWARD -p udp -i eth0 -o eth3 --dport 53 -m mac --mac-source 00:15:17:36:75:d1 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p udp -i eth3 -o eth0 --sport 53 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Erlaube DHCP vom Blauen,Roten und Schwarzen Netzwerk
################################################
-A INPUT -i eth1 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth2 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth3 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth0 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -m udp -p udp --sport 67 --dport 67 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth1 -m udp -p udp --sport 67 --dport 68 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth2 -m udp -p udp --sport 67 --dport 68 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -o eth3 -m udp -p udp --sport 67 --dport 68 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Erlaube NTP vom Blauen und Roten Netzwerk
##############################################
-A FORWARD -i eth1 -o eth0 -m udp -p udp --dport 123 -s 192.168.1.0/24 -d 192.168.14.113 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth2 -o eth0 -m udp -p udp --dport 123 -s 192.168.2.0/24 -d 192.168.14.113 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m udp -p udp --sport 123 -d 192.168.1.0/24 -s 192.168.14.113 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth0 -o eth2 -m udp -p udp --sport 123 -d 192.168.2.0/24 -s 192.168.14.113 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# NTP vom lokalen NTP Server weiterleiten
#########################################
-A FORWARD -i eth0 -o eth3 -m udp -p udp --sport 123 --dport 123 -s 192.168.14.1 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i eth3 -o eth0 -m udp -p udp --sport 123 --dport 123 -d 192.168.14.1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Forward SMTP,POP3,IMAP,HTTP,HTTPS,IMAP SSL,MSN,ICQ,Jabber,IRC  Access from Green, Blue and Red Subnet to Internet
#####################################################################################################################
-A FORWARD -p tcp -i eth0 -o eth3 -m multiport --dports 25,80,110,143,443,993,1863,5190,5222,5223,6665,6666,6667,6668,6669 -s 192.168.14.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p tcp -i eth1 -o eth3 -m multiport --dports 25,80,110,143,443,993,1863,5190,5222,5223,6665,6666,6667,6668,6669 -s 192.168.1.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p tcp -i eth2 -o eth3 -m multiport --dports 25,80,110,143,443,993,1863,5190,5222,5223,6665,6666,6667,6668,6669 -s 192.168.2.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p tcp -i eth3 -o eth0 -m multiport --sports 25,80,110,143,443,993,1863,5190,5222,5223,6665,6666,6667,6668,6669 -d 192.168.14.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p tcp -i eth3 -o eth1 -m multiport --sports 25,80,110,143,443,993,1863,5190,5222,5223,6665,6666,6667,6668,6669 -d 192.168.1.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -p tcp -i eth3 -o eth2 -m multiport --sports 25,80,110,143,443,993,1863,5190,5222,5223,6665,6666,6667,6668,6669 -d 192.168.2.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 80,,443 -s 192.168.3.10 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m multiport --sports 80,,443 -d 192.168.3.10 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# ===================END SPECIFIC PORT RULES=================================

# Drop everything that hasn't been picked up by one of the rules above
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j DROP

COMMIT
Die Probleme die ich bis jetzt beobachtet/ festgestellt habe:
Die Verbindung bleibt immer wieder kurz "hängen" also es passiert im Netz gar nichts. - So als ob auf dem Router/FW irgendein Buffer voll laufen wurde und erst wenn alles "ressetet" wird, geht es wieder weiter.

Im syslog finden sich Einträge die meiner Meinung nach gar nicht vorhanden sein dürften
Hier so Beispiel:

Code: Alles auswählen

[68506.544193] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ea:5d:90:92:9e:88:94:de:80:a2:41:1a:08:00 SRC=192.168.14.15 DST=192.168.14.10 LEN=96 TOS=0x10 PREC=0x00 TTL=64 ID=40458 DF PROTO=TCP SPT=63082 DPT=22 WINDOW=4096 RES=0x00 ACK PSH URGP=0 
[68519.931755] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=56905 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK URGP=0 
[68524.815363] IPTables-FORWARD-Dropped: IN=eth0 OUT=eth3 MAC=ea:5d:90:92:9e:88:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=2.17.122.33 LEN=1014 TOS=0x00 PREC=0x00 TTL=63 ID=52254 DF PROTO=TCP SPT=54598 DPT=80 WINDOW=4096 RES=0x00 ACK PSH URGP=0 
[68540.124476] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=192.168.14.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=28621 PROTO=UDP SPT=56533 DPT=8612 LEN=24 
[68555.237263] IPTables-FORWARD-Dropped: IN=eth3 OUT=eth0 MAC=22:63:e6:90:f0:94:c8:0e:14:4f:12:5e:08:00 SRC=85.13.130.70 DST=192.168.14.15 LEN=83 TOS=0x00 PREC=0x00 TTL=58 ID=62405 DF PROTO=TCP SPT=443 DPT=63534 WINDOW=255 RES=0x00 ACK PSH URGP=0 
[68555.314257] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=376 TOS=0x12 PREC=0x00 TTL=64 ID=56920 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
[68567.522481] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=192.168.14.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=60206 PROTO=UDP SPT=55190 DPT=8612 LEN=24 
[68584.784267] IPTables-FORWARD-Dropped: IN=eth0 OUT=eth3 MAC=ea:5d:90:92:9e:88:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=2.17.122.33 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=4777 DF PROTO=TCP SPT=54598 DPT=80 WINDOW=4140 RES=0x00 ACK URGP=0 
[68584.861651] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=368 TOS=0x12 PREC=0x00 TTL=64 ID=56923 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
[68603.032712] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=192.168.14.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=24452 PROTO=UDP SPT=52755 DPT=8612 LEN=24 
[68614.784247] IPTables-FORWARD-Dropped: IN=eth3 OUT=eth0 MAC=22:63:e6:90:f0:94:c8:0e:14:4f:12:5e:08:00 SRC=2.17.122.33 DST=192.168.14.11 LEN=1492 TOS=0x00 PREC=0x00 TTL=58 ID=45681 PROTO=TCP SPT=80 DPT=54598 WINDOW=3958 RES=0x00 ACK URGP=0 
[68614.860744] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=368 TOS=0x12 PREC=0x00 TTL=64 ID=56926 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
[68630.064690] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ea:5d:90:92:9e:88:94:de:80:a2:41:1a:08:00 SRC=192.168.14.15 DST=192.168.14.10 LEN=52 TOS=0x10 PREC=0x00 TTL=64 ID=21495 DF PROTO=TCP SPT=63057 DPT=22 WINDOW=4077 RES=0x00 ACK URGP=0 
[68644.875445] IPTables-FORWARD-Dropped: IN=eth0 OUT=eth3 MAC=ea:5d:90:92:9e:88:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=2.17.122.33 LEN=1069 TOS=0x00 PREC=0x00 TTL=63 ID=28059 DF PROTO=TCP SPT=54601 DPT=80 WINDOW=4096 RES=0x00 ACK PSH URGP=0 
[68644.950887] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=376 TOS=0x12 PREC=0x00 TTL=64 ID=56930 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
[68658.806184] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=192.168.14.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=79 PROTO=UDP SPT=57650 DPT=8612 LEN=24 
[68675.140676] IPTables-FORWARD-Dropped: IN=eth0 OUT=eth3 MAC=ea:5d:90:92:9e:88:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=2.17.122.33 LEN=1036 TOS=0x00 PREC=0x00 TTL=63 ID=34512 DF PROTO=TCP SPT=54601 DPT=80 WINDOW=4096 RES=0x00 ACK PSH URGP=0 
[68675.216445] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=376 TOS=0x12 PREC=0x00 TTL=64 ID=56933 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
[68687.226192] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=192.168.14.255 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=50457 PROTO=UDP SPT=58910 DPT=8612 LEN=24 
[68705.222969] IPTables-FORWARD-Dropped: IN=eth3 OUT=eth0 MAC=22:63:e6:90:f0:94:c8:0e:14:4f:12:5e:08:00 SRC=85.13.130.70 DST=192.168.14.15 LEN=83 TOS=0x00 PREC=0x00 TTL=58 ID=4149 DF PROTO=TCP SPT=443 DPT=63621 WINDOW=255 RES=0x00 ACK PSH URGP=0 
[68705.226924] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=368 TOS=0x12 PREC=0x00 TTL=64 ID=56936 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
[68720.078080] IPTables-INPUT-Dropped: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:94:de:80:a2:41:1a:08:00 SRC=192.168.14.15 DST=255.255.255.255 LEN=68 TOS=0x00 PREC=0x00 TTL=64 ID=18337 PROTO=UDP SPT=57103 DPT=1947 LEN=48 
[68734.807815] IPTables-FORWARD-Dropped: IN=eth0 OUT=eth3 MAC=ea:5d:90:92:9e:88:d4:9a:20:bf:87:2e:08:00 SRC=192.168.14.11 DST=2.17.123.210 LEN=40 TOS=0x00 PREC=0x00 TTL=63 ID=6287 PROTO=TCP SPT=54789 DPT=80 WINDOW=4128 RES=0x00 ACK URGP=0 
[68734.884716] IPTables-OUTPUT-Dropped: IN= OUT=eth0 SRC=192.168.14.10 DST=192.168.14.15 LEN=368 TOS=0x12 PREC=0x00 TTL=64 ID=56939 DF PROTO=TCP SPT=22 DPT=63057 WINDOW=430 RES=0x00 ACK PSH URGP=0 
Besonders die Ports 22, 80 und 443 wundern mich sehr.

/Ich habe gestern Nacht noch pfSense installiert. Die Konfig ist aber auch nicht in 5 Minuten gemacht. Von daher wurde ich schon bevorzügen die Lösung mit IPTables erst mal wirklich Funktionsfähig zu machen und später in aller Ruhe mir pfSense zu Brust nehmen /

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 07.08.2016 19:40:42

Schön, dass man mittles mininet/name spaces so schön alles nachspielen kann :)

Ich denke, die Hauptverwirrung kommt daher:
Wenn Du mal ein
# iptables -L -n -v
machst, siehst Du dass die Logginzeile gleich die erste ist => Du loggst alles [1] mit (egal ob dropped oder nicht).
Die Logging-Zeile müsste jeweils als letztes einer Kette stehen, damit sie auch der Angabe "Dropped" entspricht.
Die "DROP" für INPUT/OUTPUT/FORWARD nimmt man typischerweise als "policy: DROP" auf, also als

Code: Alles auswählen

iptables -P INPUT DROP
In Zeile 104 bzw. 105 steht
--dports 80,,443
Das wirft bei mir einen Fehler (ein Komma zuviel)

[1] "alles" stimmt jetzt auch nicht, da Du 'nur' 2 messages pro minute loggst.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 07.08.2016 20:13:13

dufty2 hat geschrieben:Schön, dass man mittles mininet/name spaces so schön alles nachspielen kann :)
Tja, damit weiß ich auch wieder wo mein Mac überall so hin will. Das großes Kino finde ich dass einige IP Adressen die er so anspricht/ ansprechen will gar nicht auflösbar sind. Aber Macs sind nicht "böse" :D

Mit dem Logging wenn ich ehrlich sein soll, habe ich nicht so ganz verstanden.
Musste ich die Zeilen

Code: Alles auswählen

# Protokolierung Einschalten
#############################
-A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
-A FORWARD -m limit --limit 2/min -j LOG --log-prefix "IPTables-FORWARD-Dropped: " --log-level 4
-A OUTPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
komplett rausnehmen und dann immer so einbauen (Ping als Bsp.)?

Code: Alles auswählen

# Erlaube Ping überall
############################
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth2 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
-A FORWARD -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -i eth2 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPTables-FORWARD-Dropped: " --log-level 4
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth2 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
-A FORWARD -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -i eth1 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -i eth2 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPTables-FORWARD-Dropped: " --log-level 4
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
oder müssen die einfach nach unten direkt vor dem "COMMIT"?


Was ist damit gemeint?
Die "DROP" für INPUT/OUTPUT/FORWARD nimmt man typischerweise als "policy: DROP" auf, also als

Code: Alles auswählen

iptables -P INPUT DROP
ich habe doch vor dem "COMMIT" die 3 Zeilen:

Code: Alles auswählen

# Drop everything that hasn't been picked up by one of the rules above
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j DROP

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: IPTables - will nicht so

Beitrag von dufty2 » 07.08.2016 20:24:03

ObiTobi hat geschrieben: oder müssen die einfach nach unten direkt vor dem "COMMIT"?
Yep, so ist es.
ObiTobi hat geschrieben: Was ist damit gemeint?
Die "DROP" für INPUT/OUTPUT/FORWARD nimmt man typischerweise als "policy: DROP" auf, also als

Code: Alles auswählen

iptables -P INPUT DROP
ich habe doch vor dem "COMMIT" die 3 Zeilen:

Code: Alles auswählen

# Drop everything that hasn't been picked up by one of the rules above
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j DROP
Ja, schon richtig, mir ist es aber schon mal so gegangen, dass ich Zeilen nach den DROP-Regeln gesetzt habe, und "-A" steht ja für Append, also "anhängen",
und mich dann wunderte, dass es nicht ging.
Benutzt man "-P" hat man sozusagen die default-policy auf Drop gesetzt.

ObiTobi
Beiträge: 67
Registriert: 03.08.2016 20:50:26

Re: IPTables - will nicht so

Beitrag von ObiTobi » 07.08.2016 22:56:22

dufty2 hat geschrieben: Benutzt man "-P" hat man sozusagen die default-policy auf Drop gesetzt.
Dann mussten die aber nach dem was ich verstanden habe am Anfang stehen oder damit das Prinzip greift zuerst alles verbieten und durch weitere Zeilen werden nach und nach Sachen wieder erlaubt.
Schreibt man hier ein -A für Anhängen müssen die am Ende stehen damit alles was vorher nicht explizit erlaubt war, verboten wird.

Mag mich aber täuschen

Antworten