Opções IP são descartadas no Ubuntu 16.10

1

Estou usando o Ubuntu 16.10 para executar uma experiência. Eu uso Phyton scapy para enviar dois pacotes para uma máquina conectada através de um switch. O primeiro pacote é um pacote TCP SYN normal e é recebido pelo aplicativo nc na segunda máquina e eu posso ver o pacote SYN / ACK correspondente. No entanto, o segundo pacote que envio contém uma opção de IP Loose Source Routing . Este segundo pacote é recebido na outra máquina (eu posso vê-lo no wireshark) mas não entregue ao aplicativo, portanto, nenhum SYN / ACK é enviado. Eu estou querendo saber por que esse é o caso.

Este é o código scapy que estou usando:

Pacote 1:

pkt1=IP(src="10.0.0.2", dst="10.0.0.3")/TCP(sport=random.randint(54100,54300),dport=23800)
send(pkt1)

Pacote 2:

pkt2=IP(src="10.0.0.2", dst="10.0.0.3",options=IPOption('\x83\x03\x10'))/TCP(sport=random.randint(54100,54300),dport=23800)
send(pkt2)
    
por Hooman 14.03.2017 / 23:48

1 resposta

1

Os pacotes roteados de origem podem não ser aceitos por padrão. Verifique as configurações de net.ipv4.conf.eth0.accept_source_route (alterar interface eth0 de acordo com sua configuração) na segunda máquina. Mesmo quando você é capaz de ver o pacote com o wireshark, ele provavelmente está sendo bloqueado pelo kernel.

Você pode alterar o comportamento para aceitar pacotes roteados de origem usando o comando abaixo

# /sbin/sysctl -w net.ipv4.conf.all.accept_source_route=1

Tenha em atenção que a ativação deste é um risco de segurana

    
por 15.03.2017 / 00:26