
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
- 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.
- 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.
- 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!!