A correspondência do OpenBSD pf 'em todo o scrub (no-df)' faz com que o HTTPS fique inacessível na rede móvel

1

Primeiro de tudo: desculpe-me pelo meu mau uso da língua inglesa.

Por vários anos, estou tendo problemas com a regra 'match in all scrub (no-df)' no pf. Não consigo descobrir o que está acontecendo aqui.

Vou tentar ser claro e simples. O pf.conf foi extremamente reduzido para este fórum.

Aqui está o meu pf.conf:

set skip on lo0
match in all scrub (no-df)
block all
block in quick from urpf-failed
pass in on em0 proto tcp from any to 213.125.xxx.xxx port 80 synproxy state
pass in on em0 proto tcp from any to 213.125.xxx.xxx port 443 synproxy state
pass out on em0 from 213.125.xxx.xxx to any modulate state

HTTP e HTTPS estão funcionando bem. Até o momento em que um cliente na França (Wanadoo DSL) não pôde visualizar as páginas HTTPS! Eu culpei seu provedor e não fiz nenhuma investigação sobre esse problema.

Mas então ... eu comprei um Android Samsung Galaxy SII (Vodafone) para monitorar meus servidores. Horas depois eu saí da loja de telefone: não há conexões HTTPS no meu servidor! Eu pensei que meus servidores estavam em baixo, dirigi de volta ao escritório muito rápido. Mas eles estavam em pé.

Eu descobri que desativar a regra

match in all scrub (no-df)

resolve o problema. O telefone Android (Vodafone NL) e o Wanadoo DSL FR estão agora em HTTPS.

Mas agora eu não tenho mais nada. Não é isso que eu quero.

Alguém aqui entende o que está acontecendo? Eu não. Ativar a depuração faz com que as páginas da web HTTPS não sejam carregadas em alguns ISPs, mas não em todos.

No systat, eu estranhamente vejo um estado criado e pacotes recebidos daqueles ISPs ...

Ainda confuso. Estou usando o OpenBSD 5.1 / amd64 e o OpenBSD 5.0 / i386. Eu tenho dois ISPs no meu escritório (um DSL e um cabo). Afeta os dois.

Isso pode ser reproduzido facilmente. Espero que alguém tenha experiência com este problema.

Saudações

Frank

    
por Frank ter V. 28.07.2012 / 14:18

2 respostas

1

Pelo que li no pf.conf manpage pode ser necessário alterar a regra para:

match in all scrub (no-df random-id)    
    
por 28.07.2012 / 15:56
0

Quanto a mim, parece que você está tendo problemas para bloquear o ICMP, que é parte integrante do TCP / IP. O ICMP está sendo usado pelo menos para a descoberta MTU do caminho . Trecho do manual do FreeBSD, seção do PF :

The ICMP protocol sends and receives control messages between hosts and gateways, mainly to provide feedback to a sender about any unusual or difficult conditions enroute to the target host. Routers use ICMP to negotiate packet sizes and other transmission parameters in a process often referred to as path MTU discovery.

O PMTU funciona exatamente usando o DF, que você remove, a menos que scrub seja removido.

    
por 28.06.2014 / 08:42