~ lista de rotas

~ lista de rotas

No último mês não consegui resolver isso, fiz regras de iptables diferentes, habilitei e desabilitei módulos no kernel, mas obtive os mesmos resultados e ainda mais pacotes foram descartados pelo iptables. Isso faz com que os usuários tenham um atraso de 3/5 segundos ao tentar acessar diferentes pastas compartilhadas de 192.168.1.0/24 a 192.168.3.0/28 na máquina virtual.

Eu vejo isso nos logs:

14 de fevereiro 13:53:02 kernel ns129115: [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 DF PROTO=TCP SPT=22115 DPT=49225 JANELA=384 RES=0x00 ACK PSH URGP=0
14 de fevereiro 13:53:02 kernel ns129115: [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 JANELA=384 RES=0x00 ACK URGP=0
14 de fevereiro 13:53:02 kernel ns129115: [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 JANELA=384 RES=0x00 ACK URGP=0
14 de fevereiro 13:53:02 kernel ns129115: [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 DF PROTO=TCP SPT=22115 DPT=49225 JANELA=384 RES=0x00 ACK PSH URGP=0
14 de fevereiro 13:53:19 kernel ns129115: [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 JANELA=256 RES= 0x00 ACK PSH URGP=0
14 de fevereiro 13:53:39 kernel ns129115: [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 DF PROTO=TCP SPT=22115 DPT=52214 JANELA=263 RES=0x00 ACK PSH URGP=0
14 de fevereiro 13:53:49 kernel ns129115: [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 JANELA=1879 RES= 0x00 ACK URGP=0
14 de fevereiro 13:53:50 kernel ns129115: [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 JANELA=263 RES=0x00 ACK PSH URGP=0
14 de fevereiro 13:54:19 kernel ns129115: [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 JANELA=256 RES= 0x00 ACK PSH URGP=0
14 de fevereiro 13:54:42 kernel ns129115: [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 DF PROTO=TCP SPT=22115 DPT=49225 JANELA=384 RES=0x00 ACK PSH URGP=0

O servidor Debian com iptables e 2 pontes

  • BR0, é a ponte de acesso à Internet para o gateway 192.168.1.1 e todos os usuários estão nesta rede
  • VIRBR10, a 2ª ponte, vm1 foi conectado nessa ponte com ip 192.168.3.12 (192.168.3.0/28) e tem nat com iptables para fora passando por br0

Aqui »» O gráfico da rede com gateway e hipervizor

Aqui está minha tabela de rotas

~ lista de rotas

Tabela de roteamento IP do kernel
Gateway de destino Genmask Flags Métrica Ref Use Iface
padrão 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 mostrar

nome da ponte ID da ponte Interfaces habilitadas para STP
br0 8000.0cc47ac18d3c sim eth2
virbr10 8000.525400c4b847 sim virbr10-dummy
                                                        vnet2

~ regras do iptables

#!/bin/sh
#Liberando todas as regras
iptables -P ENTRADA ACEITAR
iptables -P FORWARD ACEITAR
iptables -P SAÍDA ACEITAR
iptables -t nat -F
iptables -t mangle -F
tabelas de ip -F
tabelas de ip -X

# Permitir tráfego INPUT básico.
iptables -A INPUT -m state --state ESTABELECIDO, RELACIONADO -j ACEITAR
iptables -A INPUT -i lo -j ACEITAR
iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NOVO -j ACEITAR
iptables -A INPUT -p icmp -m conntrack --ctstate NOVO -j ACEITAR

#
#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

#PME
#Porta: netbios - 445/tcp
#Porta: netbios-ns – 137/udp – Serviço de nomes NETBIOS
#Porta: netbios-dgm – 138/udp – Serviço de datagrama NETBIOS
#Porta: netbios-ssn – 139/tcp – Serviço de sessão NETBIOS
iptables -A INPUT -m estado --state NOVO -m tcp -p tcp --dport 445 -j ACEITAR
iptables -A INPUT -p udp -m udp --dport 445 -j ACEITAR
iptables -A INPUT -p udp -m udp --dport 137:138 -j ACEITAR
iptables -A INPUT -m estado --state NOVO -m tcp -p tcp --dport 139 -j ACEITAR
#iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NOVO --sport 137 -j ACEITAR
#iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NOVO --sport 138 -j ACEITAR
#iptables -A INPUT -p tcp -m tcp -m conntrack --ctstate NOVO --sport 139 -j ACEITAR

#RDP
#Porta: 3389
# conexões externas
iptables -I FORWARD -o virbr10 -d 192.168.3.12 -j ACEITAR
iptables -t nat -I PREROUTING -p tcp --dport 3589 -j DNAT --to 192.168.3.12:3389

# Mascarar sub-rede local
iptables -I FORWARD -o virbr10 -d 192.168.3.0/28 -j ACEITAR
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 -j MASQUERADE
iptables -A FORWARD -o virbr10 -m state --state RELACIONADO, ESTABELECIDO -j ACEITAR
#Permite conexões salientes de virbr10 para o vermelho 192.168.1.0/24
iptables -A FORWARD -i virbr10 -o br0 -j ACEITAR
iptables -A FORWARD -o virbr10 -i br0 -j ACEITAR
iptables -A FORWARD -i virbr10 -o lo -j ACEITAR

###
#KVM convidado roteado
# Pacotes DHCP enviados para VMs não possuem soma de verificação (devido a um bug antigo).
iptables -t mangle -A POSTROUTING -o virbr10 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fil

# Não se disfarce nesses blocos de endereços reservados.
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
# Mascarar todos os pacotes que vão das VMs para a LAN/Internet.
iptables -t nat -A POSTROUTING -s 192.168.3.0/28 ! -d 192.168.3.0/28 -p tcp -j MASQUERADE --to-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 MASQUERADA

# Aceite conexões SSH.
iptables -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NOVO --dport 22 -j ACEITAR

#Aceite o Radmin
iptables -A INPUT -p tcp -m tcp --syn -m conntrack --ctstate NOVO --dport 4899 -j ACEITAR

# Permitir tráfego de entrada para a sub-rede privada.
iptables -A FORWARD -d 192.168.3.0/28 -o virbr10 -m state --state ESTABELECIDO, RELACIONADO -j ACEITAR
#7218-12_07 Acesso lento à mesa iptables -A FORWARD -d 192.168.1.0/24 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#7218-12_07 Acesso lento à mesa iptables -A FORWARD -d 192.168.3.0/28 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Permitir tráfego de saída da sub-rede privada.
iptables -A FORWARD -s 192.168.3.0/28 -i virbr10 -m state --state ESTABELECIDO, RELACIONADO -j ACEITAR
#7218-12_07 Acesso lento à mesa iptables -A FORWARD -s 192.168.1.0/24 -i br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#7218-12_07 Acesso lento à mesa iptables -A FORWARD -s 192.168.3.0/28 -i br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Permitir tráfego entre máquinas virtuais.
iptables -A FORWARD -i virbr10 -o virbr10 -j ACEITAR
# Rejeite todo o resto.
iptables -A FORWARD -i virbr10 -j REJECT --reject-with icmp-port-unreachable
# Aceite pacotes DNS (porta 53) e DHCP (porta 67) de VMs.
iptables -A INPUT -i virbr10 -p udp -m udp -m multiporta --dports 53,67 -j ACEITAR
iptables -A INPUT -i virbr10 -p tcp -m tcp -m multiporta --dports 53,67 -j ACEITAR

#ICMP
iptables -A SAÍDA -p icmp -m conntrack --ctstate ESTABELECIDO, RELACIONADO -j ACEITAR

# Rejeite todo o resto.
iptables -A INPUT -m conntrack --ctstate INVÁLIDO -j DROP
iptables -A INPUT -p tcp -m tcp -j REJECT --rejeitar-com tcp-reset
iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable

#Log pacotes descartados
iptables -A INPUT -m limite --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
iptables -A FORWARD -m limite --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

Atualizações

  1. Alterou a cadeia de logs para o final do script e cole as novas entradas de log

Responder1

Depois de pesquisar no Google posso resolver isso.

  1. O acesso lento a arquivos compartilhados com SMB no controlador de domínio no Windows Server 2012 R2 ocorre porque o GPO de redirecionamento de pasta faz alterações nas permissões na pasta de perfil do usuário durante o processo de redirecionamento quando a pasta não existe no destino. Baseado em iamrafic da Microsfot Technet (link), precisamos alterar as permissões da pasta para isto:

Crie a pasta no local desejado. Desative a herança de permissões do pai e remova todas as permissões herdadas clicando no botão apropriado. Uma entrada já estará na DACL: Administradores Locais.

Alterar administradores locais: controle total: esta pasta, subpastas e arquivos

Adicionar SISTEMA: Controle Total: Esta pasta, subpasta e arquivos.

Adicionar PROPRIETÁRIO DO CRIADOR: Controle total: esta pasta, subpastas e arquivos.

Adicionar usuários autenticados: listar pasta/ler dados, criar pastas/anexar dados: apenas esta pasta

Adicionar administradores de domínio: Controle total: esta pasta, subpastas e arquivos.

Clique OK.

  1. O outro problema eram minhas regras de iptables, eu precisava realizar novas cadeias completas e corrigir a ordem de cada regra FORWARD porque isso altera o desempenho quando o pacote é analisado. Aqui os novos.
    #!/bin/sh
    
    #Liberando todas as regras
    iptables -P ENTRADA ACEITAR
    iptables -P FORWARD ACEITAR
    iptables -P SAÍDA ACEITAR
    iptables -t nat -F
    iptables -t mangle -F
    tabelas de ip -F
    tabelas de ip -X
    iptables -t bruto -F
    
    # Tabelas básicas
    iptables -A INPUT -m conntrack --ctstate ESTABELECIDO,RELACIONADO -j ACEITAR
    iptables -A INPUT -i lo -j ACEITAR
    
    #
    
    iptables -A FORWARD -o virbr32 -s 192.168.1.0/24 -d 192.168.100.0/28 -m conntrack --ctstate ESTABELECIDO, RELACIONADO -j ACEITAR
    iptables -A FORWARD -i virbr32 -s 192.168.100.0/28 -d 192.168.1.0/24 -m conntrack --ctstate ESTABELECIDO, RELACIONADO -j ACEITAR
    iptables -A FORWARD -o virbr32 -i br0 -j ACEITAR
    iptables -A FORWARD -i virbr32 -s 192.168.100.0/2 -j ACEITAR
    iptables -A FORWARD -i virbr32 -o virbr32 -j ACEITAR
    iptables -A FORWARD -i virbr32 -j LOG --log-prefix "iptables-FORWARD-REJECT:"
    iptables -A FORWARD -i virbr32 -j REJECT --reject-with icmp-port-unreachable
    
    # Mascarar sub-rede local
    iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -j MASQUERADE
    # Não se disfarce nesses blocos de endereços reservados.
    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
    
    #PME
    #RPC EPM TCP 135
    # RPC sobre HTTPS TCP 593
    # SMB (para pipes nomeados) TCP 445
    # Alcance Efêmero, Dinâmico *
    iptables -I FORWARD 6 -o virbr32 -i br0 -m conntrack --ctstate NOVO -p tcp -d 192.168.100.12 --dport 445 -j ACEITAR
    iptables -I FORWARD 7 -o virbr32 -i br0 -m conntrack --ctstate NOVO -p tcp -d 192.168.100.12 --dport 139 -j ACEITAR
    
    # Aceite pacotes DNS (porta 53) e DHCP (porta 67) de VMs.
    iptables -I FORWARD 8 -o virbr32 -i br0 -m conntrack --ctstate NOVO -p tcp -m tcp -m multiport --dports 53,67 -j ACEITAR
    iptables -I FORWARD 9 -i virbr32 -o br0 -m conntrack --ctstate NOVO -p udp -m udp -m multiport --dports 53,67 -j ACEITAR
    
    #
    
    #
    
    # As duas regras abaixo garantem que apenas os pacotes TCP sejam examinados. Todos os outros
    # continue na tabela *filter.
    iptables -t raw -N TCPFLAGS
    iptables -t raw -A PREROUTING -p tcp -j TCPFLAGS
    iptables -t raw -A PREROUTING -j ACEITAR
    
    # Aceite rapidamente apertos de mão padrão
    # PERMITIR ACK ou ACK/SYN
    #-A TCPFLAGS -j ACEITAR
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,ACK,URG,PSH,RST ACK -j ACEITAR
    
    # Permitir ACK/FIN com URG ou PSH, ou ambos, ou nenhum
    # mas SYN e RST não podem ser configurados
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,ACK,RST ACK,FIN -j ACEITAR
    
    # Permitir SYN ou ACK/SYN
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST SYN -j ACEITAR
    
    #Permitir RST ou ACK/RST
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN,SYN,URG,PSH,RST RST -j ACEITAR
    
    # Esta regra captura ataques de árvores de natal e barbatanas
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags FIN FIN -j DROP
    # Esta regra captura ataques xmas-tree e syn/rst
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags SYN SYN -j DROP
    
    #Esta regra captura ataques nulos
    iptables -t raw -A TCPFLAGS -p tcp --tcp-flags TODOS NENHUMA -j DROP
    
    #-A TCPFLAGS -p tcp -ecn-tcp-cwr -j DROP
    # essas regras detectam combinações de ack ruins
    #-A TCPFLAGS -p tcp --tcp-flags ACK ACK -j ACC
    #iptables -t raw -A TCPFLAGS -j ACEITAR
    
    # Então, o que aceitamos para tcp?
    # apertos de mão (ACK/FIN), (ACK/SYN), (SYN), (ACK), (RST), (ACK/RST),
    # e pacotes de dados com PSH ou URG ou FIN ou ACK
    
    #
    
    #Log pacotes descartados
    iptables -A INPUT -m limite --limit 2/min -j LOG --log-prefix "IPTables-INPUT-Dropped: " --log-level 4
    iptables -A FORWARD -m limite --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
  • Como você pode ver, usei iptables -I FORWARD em vez de iptables -A FORWARD porque com isso posso executar regras ordenadas na minha tabela de filtros colocando primeiro as regras mais importantes e depois ir mais fundo após DROP ou negar o resto. Todas as regras FORWARD vão antes desta linha
    iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NOVO -j ACEITAR

Editar: Só preciso fazer algumas alterações para ter mais taxa de transferência na hora de copiar arquivos da vm para fora na lan 192.168.1.0/24, não aguento mais que 4Mb/s. Qualquer conselho será apreciado!!

informação relacionada