~ Routenliste

~ Routenliste

Seit einem Monat kann ich das nicht lösen. Ich erstelle verschiedene iptables-Regeln, aktiviere und deaktiviere Module im Kernel, habe aber immer das gleiche Ergebnis und sogar mehr Pakete wurden von iptables verloren. Dies führt bei Benutzern zu einer Verzögerung von 3 bis 5 Sekunden, wenn sie versuchen, auf verschiedene freigegebene Ordner von 192.168.1.0/24 bis 192.168.3.0/28 auf der virtuellen Maschine zuzugreifen.

Ich sehe dies in den Protokollen:

14. Februar 13:53:02 ns129115 Kernel: [12426815.202643] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=104 TOS=0x10 PREC=0x00 TTL=64 ID=61932 DF PROTO=TCP SPT=22115 DPT=49225 WINDOW=384 RES=0x00 ACK PSH URGP=0
14. Februar 13:53:02 ns129115 Kernel: [12426815.393379] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=40 TOS=0x10 PREC=0x00 TTL=64 ID=61933 DF PROTO=TCP SPT=22115 DPT=49225 WINDOW=384 RES=0x00 ACK URGP=0
14. Februar 13:53:02 ns129115 Kernel: [12426815.834944] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=40 TOS=0x10 PREC=0x00 TTL=64 ID=61934 DF PROTO=TCP SPT=22115 DPT=49225 WINDOW=384 RES=0x00 ACK URGP=0
14. Februar 13:53:02 ns129115 Kernel: [12426815.835219] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=136 TOS=0x10 PREC=0x00 TTL=64 ID=61935 DF PROTO=TCP SPT=22115 DPT=49225 WINDOW=384 RES=0x00 ACK PSH URGP=0
14. Februar 13:53:19 ns129115 Kernel: [12426832.829664] IPTables-FWD-Dropped: IN=br0 OUT=br0 PHYSIN=vnet0 PHYSOUT=eth2 MAC=70:85:c2:4f:14:c1:00:16:3e:ea:18:01:08:00 SRC=192.168.1.156 DST=192.168.1.125 LEN=319 TOS=0x00 PREC=0x00 TTL=128 ID=16660 DF PROTO=TCP SPT=49169 DPT=54820 WINDOW=256 RES=0x00 ACK PSH URGP=0
14. Februar 13:53:39 ns129115 Kernel: [12426852.496117] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=104 TOS=0x10 PREC=0x00 TTL=64 ID=29023 DF PROTO=TCP SPT=22115 DPT=52214 WINDOW=263 RES=0x00 ACK PSH URGP=0
14. Februar 13:53:49 ns129115 Kernel: [12426862.856776] IPTables-FWD-Dropped: IN=br0 OUT=br0 PHYSIN=eth2 PHYSOUT=vnet0 MAC=00:16:3e:ea:18:01:90:2b:34:b0:20:a4:08:00 SRC=192.168.1.237 DST=192.168.1.156 LEN=40 TOS=0x00 PREC=0x00 TTL=128 ID=1644 DF PROTO=TCP SPT=49244 DPT=49169 WINDOW=1879 RES=0x00 ACK URGP=0
14. Februar 13:53:50 ns129115 Kernel: [12426863.288983] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=104 TOS=0x10 PREC=0x00 TTL=64 ID=29069 DF PROTO=TCP SPT=22115 DPT=52214 WINDOW=263 RES=0x00 ACK PSH URGP=0
14. Februar 13:54:19 ns129115 Kernel: [12426892.906806] IPTables-FWD-Dropped: IN=br0 OUT=br0 PHYSIN=eth2 PHYSOUT=vnet0 MAC=00:16:3e:ea:18:01:74:d4:35:6a:18:7a:08:00 SRC=192.168.1.199 DST=192.168.1.156 LEN=248 TOS=0x00 PREC=0x00 TTL=128 ID=13244 DF PROTO=TCP SPT=49678 DPT=49169 WINDOW=256 RES=0x00 ACK PSH URGP=0
14. Februar 13:54:42 ns129115 Kernel: [12426915.939242] IPTables-OUTPUT-Dropped: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=136 TOS=0x10 PREC=0x00 TTL=64 ID=61969 DF PROTO=TCP SPT=22115 DPT=49225 WINDOW=384 RES=0x00 ACK PSH URGP=0

Der Debian-Server mit iptables und 2 Bridges

  • BR0 ist die Brücke mit Internetzugang zum Gateway 192.168.1.1 und alle Benutzer befinden sich in diesem Netzwerk
  • VIRBR10, die 2. Brücke, vm1 wurde mit dieser Brücke mit IP 192.168.3.12 (192.168.3.0/28) verbunden und hat NAT mit iptables nach außen über br0

Hier »» Der Netzwerkgraph mit Gateway und Hypervisor

Hier ist meine Routentabelle

~ Routenliste

Kernel-IP-Routing-Tabelle
Ziel-Gateway Genmask Flags Metrik Ref Verwendung Iface
Standard 192.168.1.1 0.0.0.0 UG 0 0 0 br0
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
192.168.3.0 * 255.255.255.240 U 0 0 0 virbr10

~ brctl zeigen

Bridge-Name Bridge-ID STP-fähige Schnittstellen
br0 8000.0cc47ac18d3c ja eth2
virbr10 8000.525400c4b847 ja virbr10-dummy
                                                        vnet2

~ iptables-Regeln

#!/bin/sh
#Alle Regeln außer Kraft setzen
iptables -P INPUT AKZEPTIEREN
iptables -P WEITERLEITEN AKZEPTIEREN
iptables -P AUSGABE AKZEPTIEREN
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

# Grundlegenden INPUT-Verkehr zulassen.
iptables -A INPUT -m Status --state ESTABLISHED, RELATED -j AKZEPTIEREN
iptables -A INPUT -i lo -j AKZEPTIEREN
iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEU -j AKZEPTIEREN
iptables -A INPUT -p icmp -m conntrack --ctstate NEU -j AKZEPTIEREN

#
#MTU
iptables -t mangle -A VORWÄRTS -o virbr1 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1460
iptables -t mangle -A VORWÄRTS -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#KMU
#Port: Netbios – 445/TCP
#Port: netbios-ns – 137/udp - NETBIOS-Namensdienst
#Port: netbios-dgm – 138/udp - NETBIOS-Datagrammdienst
#Port: netbios-ssn – 139/tcp -- NETBIOS-Sitzungsdienst
iptables -A INPUT -m Status --state NEU -m tcp -p tcp --dport 445 -j AKZEPTIEREN
iptables -A INPUT -p udp -m udp --dport 445 -j AKZEPTIEREN
iptables -A INPUT -p udp -m udp --dport 137:138 -j AKZEPTIEREN
iptables -A INPUT -m Status --state NEU -m tcp -p tcp --dport 139 -j AKZEPTIEREN
#iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NEU --sport 137 -j AKZEPTIEREN
#iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NEU --sport 138 -j AKZEPTIEREN
#iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NEU --sport 139 -j AKZEPTIEREN

#RDP
#Hafen: 3389
# Verbindungen von außen
iptables -I WEITER -o virbr10 -d 192.168.3.12 -j AKZEPTIEREN
iptables -t nat -I PREROUTING -p tcp --dport 3589 -j DNAT --to 192.168.3.12:3389

# Lokales Subnetz maskieren
iptables -I WEITER -o virbr10 -d 192.168.3.0/28 -j AKZEPTIEREN
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -j MASQUERADE
iptables -A VORWÄRTS -o virbr10 -m Status --state VERWANDTE, ETABLIERTE -j AKZEPTIEREN
#Erlauben Sie herausragende Verbindungen von virbr10 über die Red 192.168.1.0/24
iptables -A WEITER -i virbr10 -o br0 -j AKZEPTIEREN
iptables -A WEITER -o virbr10 -i br0 -j AKZEPTIEREN
iptables -A WEITER -i virbr10 -o lo -j AKZEPTIEREN

###
#KVM-gerouteter Gast
# An VMs gesendete DHCP-Pakete haben keine Prüfsumme (aufgrund eines seit langem bestehenden Fehlers).
iptables -t mangle -A POSTROUTING -o virbr10 -p udp -m udp --dport 68 -j PRÜFSUMME --checksum-fil

# Maskieren Sie sich nicht mit diesen reservierten Adressblöcken.
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -d 224.0.0.0/24 -j RETURN
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -d 255.255.255.255/32 -j RETURN
# Maskieren Sie alle Pakete, die von VMs zum LAN/Internet gehen.
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p tcp -j MASQUERADE --zu-Ports 1024-65535
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p udp -j MASQUERADE --to-ports 1024-65535
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -j MASQUERADE

# SSH-Verbindungen akzeptieren.
iptables -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEU --dport 22 -j AKZEPTIEREN

# Radmin akzeptieren
iptables -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NEU --dport 4899 -j AKZEPTIEREN

# Erlauben Sie eingehenden Datenverkehr zum privaten Subnetz.
iptables -A VORWÄRTS -d 192.168.3.0/28 -o virbr10 -m Status --state ESTABLISHED, RELATED -j AKZEPTIEREN
#7218-12_07 Langsamer Schreibtischzugriff iptables -A FORWARD -d 192.168.1.0/24 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#7218-12_07 Langsamer Schreibtischzugriff iptables -A FORWARD -d 192.168.3.0/28 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Ausgehenden Datenverkehr aus dem privaten Subnetz zulassen.
iptables -A VORWÄRTS -s 192.168.3.0/28 -i virbr10 -m Status --state ESTABLISHED, RELATED -j AKZEPTIEREN
#7218-12_07 Langsamer Schreibtischzugriff iptables -A FORWARD -s 192.168.1.0/24 -i br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#7218-12_07 Langsamer Schreibtischzugriff iptables -A FORWARD -s 192.168.3.0/28 -i br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Datenverkehr zwischen virtuellen Maschinen zulassen.
iptables -A WEITER -i virbr10 -o virbr10 -j AKZEPTIEREN
# Alles andere ablehnen.
iptables -A FORWARD -i virbr10 -j REJECT --reject-with icmp-port-unreachable
# Akzeptieren Sie DNS- (Port 53) und DHCP-Pakete (Port 67) von VMs.
iptables -A INPUT -i virbr10 -p udp -m udp -m multiport --dports 53,67 -j AKZEPTIEREN
iptables -A INPUT -i virbr10 -p tcp -m tcp -m multiport --dports 53,67 -j AKZEPTIEREN

#ICMP
iptables -A AUSGABE -p icmp -m conntrack --ctstate ESTABLISHED,RELATED -j AKZEPTIEREN

# Alles andere ablehnen.
iptables -A INPUT -m conntrack --ctstate UNGÜLTIG -j DROP
iptables -A INPUT -p tcp -m tcp -j REJECT --Ablehnung mit tcp-reset
iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable

#Log-Pakete verloren
iptables -A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
iptables -A FORWARD -m limit --limit 2/min -j LOG --log-prefix "IPTables-FWD-Dropped: " --log-level 4
iptables -A OUTPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4

Aktualisierung

  1. Die Protokollkette wurde an das Ende des Skripts geändert und die neuen Protokolleinträge eingefügt

Antwort1

Nach einer Suche bei Google kann ich das Problem lösen.

  1. Der langsame Zugriff auf freigegebene Dateien mit SMB auf dem Domänencontroller in Windows Server 2012 R2 liegt daran, dass die Ordnerumleitungs-GPO während des Umleitungsprozesses Änderungen an den Berechtigungen im Benutzerprofilordner vornimmt, wenn der Ordner im Ziel nicht vorhanden ist. Basierend auf iamrafic von Microsfot Technet (Verknüpfung), müssen wir die Ordnerberechtigungen wie folgt ändern:

Erstellen Sie den Ordner am gewünschten Ort. Deaktivieren Sie die Vererbung von Berechtigungen vom übergeordneten Element und entfernen Sie alle geerbten Berechtigungen, indem Sie auf die entsprechende Schaltfläche klicken. Ein Eintrag befindet sich bereits in der DACL: Lokale Administratoren.

Alter Lokale Administratoren: Vollzugriff: Dieser Ordner, Unterordner und Dateien

SYSTEM hinzufügen: Vollzugriff: Dieser Ordner, Unterordner und Dateien.

CREATOR OWNER hinzufügen: Vollzugriff: Dieser Ordner, Unterordner und Dateien.

Authentifizierte Benutzer hinzufügen: Ordner auflisten / Daten lesen, Ordner erstellen / Daten anhängen: Nur dieser Ordner

Domänenadministratoren hinzufügen: Vollzugriff: Dieser Ordner, Unterordner und Dateien.

OK klicken.

  1. Das andere Problem waren meine iptables-Regeln. Ich musste komplett neue Ketten erstellen und die Reihenfolge für jede FORWARD-Regel korrigieren, da dies die Leistung bei der Paketanalyse beeinträchtigt. Hier die neuen.
    #!/bin/sh
    
    #Alle Regeln außer Kraft setzen
    iptables -P INPUT AKZEPTIEREN
    iptables -P WEITERLEITEN AKZEPTIEREN
    iptables -P AUSGABE AKZEPTIEREN
    iptables -t nat -F
    iptables -t mangle -F
    iptables -F
    iptables -X
    iptables -t raw -F
    
    # Basistabellen
    iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j AKZEPTIEREN
    iptables -A INPUT -i lo -j AKZEPTIEREN
    
    #
    
    iptables -A VORWÄRTS -o virbr32 -s 192.168.1.0/24 -d 192.168.100.0/28 -m conntrack --ctstate ETABLIERTES, VERWANDTES -j AKZEPTIEREN
    iptables -A VORWÄRTS -i virbr32 -s 192.168.100.0/28 -d 192.168.1.0/24 -m conntrack --ctstate ETABLIERTES, VERWANDTES -j AKZEPTIEREN
    iptables -A WEITER -o virbr32 -i br0 -j AKZEPTIEREN
    iptables -A VORWÄRTS -i virbr32 -s 192.168.100.0/2 -j AKZEPTIEREN
    iptables -A WEITER -i virbr32 -o virbr32 -j AKZEPTIEREN
    iptables -A FORWARD -i virbr32 -j LOG --log-prefix "iptables-FORWARD-REJECT: "
    iptables -A FORWARD -i virbr32 -j REJECT --reject-with icmp-port-unreachable
    
    # Lokales Subnetz maskieren
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -j MASQUERADE
    # Maskieren Sie sich nicht mit diesen reservierten Adressblöcken.
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -d 224.0.0.0/24 -j RETURN
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -d 255.255.255.255/32 -j RETURN
    
    # KMU
    # RPC EPM TCP 135
    # RPC über HTTPS TCP 593
    # SMB (für benannte Pipes) TCP 445
    # Vergänglicher Bereich, dynamisch *
    iptables -I FORWARD 6 -o virbr32 -i br0 -m conntrack --ctstate NEU -p tcp -d 192.168.100.12 --dport 445 -j AKZEPTIEREN
    iptables -I WEITER 7 -o virbr32 -i br0 -m conntrack --ctstate NEU -p tcp -d 192.168.100.12 --dport 139 -j AKZEPTIEREN
    
    # Akzeptieren Sie DNS- (Port 53) und DHCP-Pakete (Port 67) von VMs.
    iptables -I WEITER 8 -o virbr32 -i br0 -m conntrack --ctstate NEU -p tcp -m tcp -m multiport --dports 53,67 -j AKZEPTIEREN
    iptables -I WEITER 9 -i virbr32 -o br0 -m conntrack --ctstate NEU -p udp -m udp -m multiport --dports 53,67 -j AKZEPTIEREN
    
    #
    
    #
    
    # Die beiden folgenden Regeln stellen sicher, dass nur TCP-Pakete untersucht werden. Alle anderen
    # weiter in die *Filtertabelle.
    iptables -t raw -N TCPFLAGS
    iptables -t raw -A PREROUTING -p tcp -j TCPFLAGS
    iptables -t raw -A PREROUTING -j AKZEPTIEREN
    
    # Standard-Handshakes schnell akzeptieren
    # ACK oder ACK/SYN ERLAUBEN
    #-A TCPFLAGS -j AKZEPTIEREN
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,ACK,URG,PSH,RST ACK -j AKZEPTIEREN
    
    # Erlaube ACK/FIN mit entweder URG oder PSH, oder beidem, oder keinem von beiden
    # aber SYN und RST können nicht gesetzt werden
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,ACK,RST ACK,FIN -j AKZEPTIEREN
    
    # SYN oder ACK/SYN zulassen
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST SYN -j AKZEPTIEREN
    
    # RST oder ACK/RST zulassen
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST RST -j AKZEPTIEREN
    
    # Diese Regel fängt Weihnachtsbaum- und Fin-Angriffe ab
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN FIN -j DROP
    # Diese Regel fängt Xmas-Tree- und SYN/RST-Angriffe ab
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags SYN SYN -j DROP
    
    # Diese Regel fängt Nullangriffe ab
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags ALLE KEINE -j DROP
    
    #-A TCPFLAGS -p tcp -ecn-tcp-cwr -j DROP
    # diese Regeln fangen schlechte ACK-Kombinationen ab
    #-A TCPFLAGS -p tcp --tcp-flags ACK ACK -j ACC
    #iptables -t raw -A TCPFLAGS -j AKZEPTIEREN
    
    # Also, was akzeptieren wir für TCP?
    # Handshakes (ACK/FIN), (ACK/SYN), (SYN), (ACK), (RST), (ACK/RST),
    # und Datenpakete mit PSH oder URG oder FIN oder ACK
    
    #
    
    #Log-Pakete verloren
    iptables -A INPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
    iptables -A FORWARD -m limit --limit 2/min -j LOG --log-prefix "IPTables-FWD-Dropped: " --log-level 4
    iptables -A OUTPUT -m limit --limit 2/min -j LOG --log-prefix "IPTables-OUTPUT-Dropped: " --log-level 4
  • Wie Sie sehen, habe ich iptables -I FORWARD anstelle von iptables -A FORWARD verwendet, weil ich damit geordnete Regeln auf meine Filtertabelle anwenden kann, indem ich zuerst die wichtigeren Regeln setze und dann nach DROP oder Denial den Rest vertiefe. Alle FORWARD-Regeln stehen vor dieser Zeile
    iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEU -j AKZEPTIEREN

Bearbeiten: Ich muss nur einige Änderungen vornehmen, um eine höhere Übertragungsrate zu erreichen, wenn ich Dateien von der VM nach außen im LAN 192.168.1.0/24 kopiere. Mehr als 4 Mbit/s kann ich nicht erreichen. Jeder Ratschlag ist willkommen!!

verwandte Informationen