
Durante el último mes no pude resolver esto, hice diferentes reglas de iptables, habilité y deshabilité módulos en el kernel, pero obtuve los mismos resultados e iptables ha eliminado aún más paquetes. Esto hace que los usuarios tengan un retraso de 3/5 segundos al intentar acceder a diferentes carpetas compartidas desde 192.168.1.0/24 a 192.168.3.0/28 en la máquina virtual.
Veo esto en los registros:
14 de febrero 13:53:02 kernel ns129115: [12426815.202643] IPTables-OUTPUT-Drop: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=104 TOS=0x10 PREC=0x00 TTL=64 ID=6193 2DF PROTO=TCP SPT=22115 DPT=49225 VENTANA=384 RES=0x00 ACK PSH URGP=0 14 de febrero 13:53:02 ns129115 kernel: [12426815.393379] IPTables-OUTPUT-Drop: 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 VENTANA=384 RES=0x00 ACK URGP=0 14 de febrero 13:53:02 kernel ns129115: [12426815.834944] IPTables-OUTPUT-Drop: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=40 TOS=0x10 PREC=0x00 TTL=64 DF PROTO=TCP SPT=22115 DPT=49225 VENTANA=384 RES=0x00 ACK URGP=0 14 de febrero 13:53:02 kernel ns129115: [12426815.835219] IPTables-OUTPUT-Drop: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=136 TOS=0x10 PREC=0x00 TTL=64 ID=6193 5DF PROTO=TCP SPT=22115 DPT=49225 VENTANA=384 RES=0x00 ACK PSH URGP=0 14 de febrero 13:53:19 kernel ns129115: [12426832.829664] IPTables-FWD-eliminado: 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 VENTANA=256 RES= 0x00 CONFIGURACIÓN PSH URGP=0 14 de febrero 13:53:39 kernel ns129115: [12426852.496117] IPTables-OUTPUT-Drop: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=104 TOS=0x10 PREC=0x00 TTL=64 ID=2902 3DF PROTO=TCP SPT=22115 DPT=52214 VENTANA=263 RES=0x00 ACK PSH URGP=0 14 de febrero 13:53:49 kernel ns129115: [12426862.856776] IPTables-FWD-eliminado: 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 VENTANA=1879 RES= 0x00 CONFIGURACIÓN URGP=0 14 de febrero 13:53:50 kernel ns129115: [12426863.288983] IPTables-OUTPUT-Drop: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=104 TOS=0x10 PREC=0x00 TTL=64 ID=2906 9DF PROTO=TCP SPT=22115 DPT=52214 VENTANA=263 RES=0x00 ACK PSH URGP=0 14 de febrero 13:54:19 kernel ns129115: [12426892.906806] IPTables-FWD-eliminado: 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 VENTANA=256 RES= 0x00 CONFIGURACIÓN PSH URGP=0 14 de febrero 13:54:42 kernel ns129115: [12426915.939242] IPTables-OUTPUT-Drop: IN= OUT=br0 SRC=192.168.1.115 DST=192.168.1.231 LEN=136 TOS=0x10 PREC=0x00 TTL=64 ID=6196 9DF PROTO=TCP SPT=22115 DPT=49225 VENTANA=384 RES=0x00 ACK PSH URGP=0
El Servidor Debian con iptables y 2 puentes
- BR0, es el puente con acceso a Internet hasta la puerta de enlace 192.168.1.1 y todos los usuarios están en esta red
- VIRBR10, el 2do puente, vm1 se ha conectado a este puente con ip 192.168.3.12 (192.168.3.0/28) y tiene nat con iptables al exterior pasando por br0
Aquí »» El gráfico de red con gateway e hipervizor
Aquí está mi tabla de rutas.
~ lista de rutas
Tabla de enrutamiento IP del kernel Destino Gateway Genmask Banderas Métrica Ref Uso Iface predeterminado 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
~ espectáculo brctl
nombre del puente ID del puente Interfaces habilitadas para STP br0 8000.0cc47ac18d3c sí eth2 virbr10 8000.525400c4b847 sí virbr10-maniquí vnet2
~ reglas de iptables
#!/bin/sh #Limpiando todas las reglas iptables -P ENTRADA ACEPTAR iptables -P ADELANTE ACEPTAR iptables -P SALIDA ACEPTAR iptables -t nat -F iptables -t mangle -F iptables-F iptables -X # Permitir tráfico de ENTRADA básico. iptables -A ENTRADA -m estado --estado ESTABLECIDO,RELACIONADO -j ACEPTAR iptables -A ENTRADA -i lo -j ACEPTAR iptables -A ENTRADA -p icmp --icmp-type 8 -m conntrack --ctstate NUEVO -j ACEPTAR iptables -A ENTRADA -p icmp -m conntrack --ctstate NUEVO -j ACEPTAR # #MTU iptables -t mangle -A FORWARD -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 FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu #PYME #Puerto: netbios - 445/tcp #Puerto: netbios-ns – 137/udp – Servicio de nombres NETBIOS #Puerto: netbios-dgm – 138/udp – Servicio de datagramas NETBIOS #Puerto: netbios-ssn – 139/tcp – servicio de sesión NETBIOS iptables -A ENTRADA -m estado --estado NUEVO -m tcp -p tcp --dport 445 -j ACEPTAR iptables -A ENTRADA -p udp -m udp --dport 445 -j ACEPTAR iptables -A ENTRADA -p udp -m udp --dport 137:138 -j ACEPTAR iptables -A ENTRADA -m estado --estado NUEVO -m tcp -p tcp --dport 139 -j ACEPTAR #iptables -A ENTRADA -p tcp -m tcp -m conntrack --ctstate NUEVO --sport 137 -j ACEPTAR #iptables -A ENTRADA -p tcp -m tcp -m conntrack --ctstate NUEVO --sport 138 -j ACEPTAR #iptables -A ENTRADA -p tcp -m tcp -m conntrack --ctstate NUEVO --sport 139 -j ACEPTAR #RDP #Puerto: 3389 # conexiones desde el exterior iptables -I ADELANTE -o virbr10 -d 192.168.3.12 -j ACEPTAR iptables -t nat -I PREROUTING -p tcp --dport 3589 -j DNAT --to 192.168.3.12:3389 # Enmascarar subred local iptables -I ADELANTE -o virbr10 -d 192.168.3.0/28 -j ACEPTAR iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -j MASCARADA iptables -A ADELANTE -o virbr10 -m estado --estado RELACIONADO,ESTABLECIDO -j ACEPTAR #Permite conexiones salientes de virbr10 hacia la red 192.168.1.0/24 iptables -A ADELANTE -i virbr10 -o br0 -j ACEPTAR iptables -A ADELANTE -o virbr10 -i br0 -j ACEPTAR iptables -A ADELANTE -i virbr10 -o lo -j ACEPTAR ### #Invitado enrutado KVM # Los paquetes DHCP enviados a las máquinas virtuales no tienen suma de comprobación (debido a un error de larga data). iptables -t mangle -A POSTROUTING -o virbr10 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fil # No se haga pasar por estos bloques de direcciones reservadas. iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -d 224.0.0.0/24 -j RETORNO iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -d 255.255.255.255/32 -j RETORNO # Enmascarar todos los paquetes que van desde las máquinas virtuales a la LAN/Internet. iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p tcp -j MASQUERADE --a-puertos 1024-65535 iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p udp -j MASCARADA --a-puertos 1024-65535 iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -j MASCARADA # Aceptar conexiones SSH. iptables -A ENTRADA -p tcp -m tcp --syn -m conntrack --ctstate NUEVO --dport 22 -j ACEPTAR # Aceptar Radimin iptables -A ENTRADA -p tcp -m tcp --syn -m conntrack --ctstate NUEVO --dport 4899 -j ACEPTAR # Permitir el tráfico entrante a la subred privada. iptables -A FORWARD -d 192.168.3.0/28 -o virbr10 -m estado --estado ESTABLECIDO, RELACIONADO -j ACEPTAR #7218-12_07 Acceso lento al escritorio iptables -A FORWARD -d 192.168.1.0/24 -o br0 -m state --state ESTABLECIDO, RELACIONADO -j ACEPTAR #7218-12_07 Acceso lento al escritorio iptables -A FORWARD -d 192.168.3.0/28 -o br0 -m state --state ESTABLECIDO, RELACIONADO -j ACEPTAR # Permitir el tráfico saliente desde la subred privada. iptables -A FORWARD -s 192.168.3.0/28 -i virbr10 -m estado --estado ESTABLECIDO,RELACIONADO -j ACEPTAR #7218-12_07 Acceso lento al escritorio iptables -A FORWARD -s 192.168.1.0/24 -i br0 -m state --state ESTABLECIDO, RELACIONADO -j ACEPTAR #7218-12_07 Acceso lento al escritorio iptables -A FORWARD -s 192.168.3.0/28 -i br0 -m state --state ESTABLECIDO, RELACIONADO -j ACEPTAR # Permitir el tráfico entre máquinas virtuales. iptables -A ADELANTE -i virbr10 -o virbr10 -j ACEPTAR # Rechaza todo lo demás. iptables -A FORWARD -i virbr10 -j REJECT --reject-with icmp-port-inalcanzable # Acepte paquetes DNS (puerto 53) y DHCP (puerto 67) de las máquinas virtuales. iptables -A ENTRADA -i virbr10 -p udp -m udp -m multipuerto --dports 53,67 -j ACEPTAR iptables -A ENTRADA -i virbr10 -p tcp -m tcp -m multipuerto --dports 53,67 -j ACEPTAR #ICMP iptables -A SALIDA -p icmp -m conntrack --ctstate ESTABLECIDO,RELACIONADO -j ACEPTAR # Rechaza todo lo demás. iptables -A ENTRADA -m conntrack --ctstate NO VÁLIDO -j DROP iptables -A ENTRADA -p tcp -m tcp -j RECHAZO --rechazar-con tcp-reset iptables -A ENTRADA -j RECHAZO --rechazar-con puerto-icmp-inalcanzable #Paquetes de registro eliminados iptables -A ENTRADA -m límite --límite 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4 iptables -A FORWARD -m límite --límite 2/min -j LOG --log-prefix "IPTables-FWD-Dropped: " --log-level 4 iptables -A SALIDA -m límite --límite 2/min -j LOG --log-prefix "IPTables-SALIDA-Dropped: " --log-level 4
Actualizaciones
- Cambió la cadena de registros hasta el final del script y pegó las nuevas entradas del registro.
Respuesta1
Después de buscar en Google puedo solucionar esto.
- El acceso lento a archivos compartidos con SMB en el controlador de dominio en Windows Server 2012 R2 se debe a que el GPO de redirección de carpetas realiza cambios en los permisos en la carpeta de perfil de usuario durante el proceso de redirección cuando la carpeta no existe en el destino. Basado en iamrafic de Microsfot Technet (enlace), necesitamos cambiar los permisos de la carpeta a esto:
Cree la carpeta en la ubicación requerida. Deshabilite la herencia de permisos del padre y elimine todos los permisos heredados haciendo clic en el botón correspondiente. Una entrada ya estará en DACL: Administradores locales.
Modificar administradores locales: Control total: esta carpeta, subcarpetas y archivos
Agregar SISTEMA: Control total: esta carpeta, subcarpeta y archivos.
Agregar CREADOR PROPIETARIO: Control total: esta carpeta, subcarpetas y archivos.
Agregar usuarios autenticados: enumerar carpetas/leer datos, crear carpetas/añadir datos: solo esta carpeta
Agregar administradores de dominio: Control total: esta carpeta, subcarpetas y archivos.
Haga clic en Aceptar.
- El otro problema eran mis reglas de iptables, necesitaba realizar cadenas completamente nuevas y arreglar el orden de cada regla FORWARD porque esto altera el rendimiento cuando se analiza el paquete. Aquí los nuevos.
#!/bin/sh #Limpiando todas las reglas iptables -P ENTRADA ACEPTAR iptables -P ADELANTE ACEPTAR iptables -P SALIDA ACEPTAR iptables -t nat -F iptables -t mangle -F iptables-F iptables -X iptables -t crudo -F # Tablas básicas iptables -A ENTRADA -m conntrack --ctstate ESTABLECIDO,RELACIONADO -j ACEPTAR iptables -A ENTRADA -i lo -j ACEPTAR # iptables -A FORWARD -o virbr32 -s 192.168.1.0/24 -d 192.168.100.0/28 -m conntrack --ctstate ESTABLECIDO,RELACIONADO -j ACEPTAR iptables -A FORWARD -i virbr32 -s 192.168.100.0/28 -d 192.168.1.0/24 -m conntrack --ctstate ESTABLECIDO, RELACIONADO -j ACEPTAR iptables -A ADELANTE -o virbr32 -i br0 -j ACEPTAR iptables -A ADELANTE -i virbr32 -s 192.168.100.0/2 -j ACEPTAR iptables -A ADELANTE -i virbr32 -o virbr32 -j ACEPTAR iptables -A FORWARD -i virbr32 -j LOG --log-prefix "iptables-FORWARD-REJECT: " iptables -A FORWARD -i virbr32 -j REJECT --reject-with icmp-port-inalcanzable # Enmascarar subred local iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -j MASCARADA # No se haga pasar por estos bloques de direcciones reservadas. iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -d 224.0.0.0/24 -j RETORNO iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -d 255.255.255.255/32 -j RETORNO # PYME #RPC EPM TCP 135 # RPC sobre HTTPS TCP 593 # SMB (para canalizaciones con nombre) TCP 445 # Rango efímero, dinámico * iptables -I FORWARD 6 -o virbr32 -i br0 -m conntrack --ctstate NUEVO -p tcp -d 192.168.100.12 --dport 445 -j ACEPTAR iptables -I FORWARD 7 -o virbr32 -i br0 -m conntrack --ctstate NUEVO -p tcp -d 192.168.100.12 --dport 139 -j ACEPTAR # Acepte paquetes DNS (puerto 53) y DHCP (puerto 67) de las máquinas virtuales. iptables -I FORWARD 8 -o virbr32 -i br0 -m conntrack --ctstate NUEVO -p tcp -m tcp -m multiport --dports 53,67 -j ACEPTAR iptables -I FORWARD 9 -i virbr32 -o br0 -m conntrack --ctstate NUEVO -p udp -m udp -m multiport --dports 53,67 -j ACEPTAR # # # Las dos reglas siguientes garantizan que sólo se examinen los paquetes TCP. Todos los otros # continuar en la *tabla de filtros. iptables -t raw -N TCPFLAGS iptables -t raw -A PREROUTING -p tcp -j TCPFLAGS iptables -t raw -A PREROUTING -j ACEPTAR # Acepte rápidamente apretones de manos estándar # PERMITIR ACK o ACK/SYN #-A TCPFLAGS -j ACEPTAR iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,ACK,URG,PSH,RST ACK -j ACEPTAR # Permitir ACK/FIN con URG o PSH, o ambos, o ninguno # pero no se pueden configurar SYN y RST iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,ACK,RST ACK,FIN -j ACEPTAR # Permitir SYN o ACK/SYN iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST SYN -j ACEPTAR # Permitir RST o ACK/RST iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST RST -j ACEPTAR # Esta regla detecta ataques de aletas y árboles de Navidad iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN FIN -j DROP # Esta regla detecta los ataques xmas-tree y syn/rst iptables -t raw -A TCPFLAGS -p tcp --tcp-flags SYN SYN -j DROP # Esta regla detecta ataques nulos iptables -t raw -A TCPFLAGS -p tcp --tcp-flags TODO NINGUNO -j DROP #-A TCPFLAGS -p tcp -ecn-tcp-cwr -j DROP # estas reglas detectan malas combinaciones de ataques #-A TCPFLAGS -p tcp --tcp-flags ACK ACK -j ACC #iptables -t raw -A TCPFLAGS -j ACEPTAR # Entonces, ¿qué aceptamos para TCP? # apretones de manos (ACK/FIN), (ACK/SYN), (SYN), (ACK), (RST), (ACK/RST), # y paquetes de datos con PSH o URG o FIN o ACK # #Paquetes de registro eliminados iptables -A ENTRADA -m límite --límite 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4 iptables -A FORWARD -m límite --límite 2/min -j LOG --log-prefix "IPTables-FWD-Dropped: " --log-level 4 iptables -A SALIDA -m límite --límite 2/min -j LOG --log-prefix "IPTables-SALIDA-Dropped: " --log-level 4
- Como puede ver, usé iptables -I FORWARD en lugar de iptables -A FORWARD porque con esto puedo realizar reglas ordenadas en mi tabla de filtros poniendo primero las reglas más importantes y luego profundizar después de DROP o negar el resto. Todas las reglas ADELANTE van antes de esta línea
iptables -A ENTRADA -p icmp --icmp-type 8 -m conntrack --ctstate NUEVO -j ACEPTAR
Editar: Sólo necesito hacer algunos cambios para obtener una mayor velocidad de transferencia cuando copie archivos desde la máquina virtual al exterior en la LAN 192.168.1.0/24, no puedo tomar más de 4 Mb/s. ¡Cualquier consejo será apreciado!