DUVIDA SOBRE FLAGS TCP

1. DUVIDA SOBRE FLAGS TCP

Fernando
volbit

(usa Debian)

Enviado em 16/12/2015 - 15:30h

Pessoal estou com uma dúvida que não consigo compreender, sobre flags TCP, já procurei na internet inteira e não consigo achar uma solução para minha dúvida, ja achei várias receitas de bolo com comandos e sem explicações, mas vamos la, minha dúvida é a seguinte. Dado este comando abaixo:

pass in on fxp0 proto tcp from any to any port ssh flags S/SA (OPENBSD)

ou em iptables

iptables -A INPUT -i fxp0 --p tcp --tcp-flags SYN,ACK SYN --dport 22 -j ACCEPT

Ou seja pela minha interpretação, cada pacote com requisição (SYN habilitado e ACK desabilitado) na porta 22 da minha interface fxp0 eu deixo passar, até ai tudo OK. Porem na minha lógica para estabelecer a conexão o three way handshake tem que ser feito, ou seja a maquina interna enviar um SYN+ACK para a maquina que requisitou a conexão e logo após isso, a outra máquina tem que enviar um ACK para a estabelecer a conexão e fechar o handshake, porém na regra do meu firewall eu não especifico que o ACK também deve estar habilitado, ou seja o firewall irá bloquear a passagem do ACK impossibilitando a fehcar o handshake, e eu fiz um teste em uma maquina virtual e ele funciona (oO) . Não consigo entender isso , por favor alguem pode me dar uma luz???

Pesquisei também no site do openbsd e eles me falam o seguinte na documentação:

" pass in on fxp0 proto tcp from any to any port ssh flags S/SA

A regra acima autoriza tráfego TCP com o sinalizador SYN definido, mas verifica somente os sinalizadores SYN e ACK. Um pacote com os sinalizadores SYN e ECE corresponderia à regra acima, enquanto um pacote com SYN e ACK ou somente ACK não corresponderia. "

Porque cargas da agua, um pacote marcado com SYN e ECE passaria por essa regra, se nela só é verificado o SYN e o ACK e só o SYN é permitido ??????????????????????

Por favor alguem me de uma luz pessoal, já pesquisei a net inteira e não consegui achar a resposta pra isso, Obrigado


  


2. Re: DUVIDA SOBRE FLAGS TCP

Jonathan Santos Pereira
jonathanspereira

(usa Ubuntu)

Enviado em 16/12/2015 - 19:06h

Boa noite camarada! Vamos trabalhar juntos no seu problema, mas a questão ficou um pouco confusa. Seria possível elaborar melhor a questão???


3. Re: DUVIDA SOBRE FLAGS TCP

Fernando
volbit

(usa Debian)

Enviado em 16/12/2015 - 21:33h

Certo amigo, vamos la, como mencionei acima dado estes comandos:

pass in on eth0 proto tcp from any to any port ssh flags S/SA (OPENBSD)

ou em iptables

iptables -A INPUT -i eth0 --p tcp --tcp-flags SYN,ACK SYN --dport 22 -j ACCEPT

os dois comandos fazem basicamente a mesma coisa mas um é no openbsd e o outro é o iptables q todos conhecem, devido a isso, vamos imaginar o handshake triplo do tcp, para estabelecer a conexão o handshake é necessário concluir os 3 passos (SYN,SYN/ACK e ACK) certo? . A regra diz para passar somente o SYN correto? Blz depois disso o servidor envia o SYN/ACK e então a novamente o computador que fez a requisição deve enviar o ACK, porem NÃO POSSUI NENHUMA REGRA EXPLICITA QQUE PERMITE O ACK PASSAR, no caso do pfsense toda regra por padrão vem com esse argumento no final de liberar somente o ACK. A minha dúvida é porque a conexão estabelece se eu só liberei o SYN e não o ACK??? entende.

Outra questão é aquela que eu coloquei embaixo que na documentação do OPENBSD ou no PFSENSE diz que essa regra:

pass in on fxp0 proto tcp from any to any port ssh flags S/SA

que um pacote com os flags SYN e ECE corresponderia à regra acima se eu nem ao menos esta especificado a flag ECE na regra, o link da documentação é esse:

http://openbsd.das.ufsc.br/faq/pf/pt/filter.html#tcpflags

outra coisa que eles mencionaram:

#### Deve-se tomar cuidado ao usar sinalizadores -- entenda o que você está fazendo e o porquê, e tenha cuidado com conselhos dados pelos outros, pois grande parte deles são incorretos. Algumas pessoas sugerem a criação de estado "somente se o sinalizador SYN estiver marcado, e nenhum outro". Essa regra deve ficar assim:

. . . flags S/FSRPAUEW má ideia!!

A teoria é criar estado apenas no início da sessão TCP, e a sessão deve ser iniciada somente com um sinalizador SYN, e nenhum outro. O problema é que alguns lugares estão começando a usar o sinalizador ECN, e qualquer um que use ECN e tente se conectar ao seu servidor seria rejeitado por essa regra. Uma abordagem muito melhor seria não especificar sinalizador nenhum e deixar o PF aplicar os sinalizadores padrão nas suas regras. Se você realmente necessita de especificar os sinalizadores você mesmo, então esta combinação seria segura:

. . . flags S/SAFR ####

Qual a diferença dessa regra (openbsd) "flags S/FSRPAUEW" e dessa "flags S/SA" ??????????
Qual a diferença dessa regra (iptables) : --tcp-flags ALL SYN e dessa --tcp-flags SYN,ACK SYN ????????

Na documentação eles mensionam que a segunda é mais segura que a primeira , mas para mim não muda nada , podes me explicar a diferença??

obrigado




4. Re: DUVIDA SOBRE FLAGS TCP

Fernando
volbit

(usa Debian)

Enviado em 17/12/2015 - 10:22h

alguem ???


5. Re: DUVIDA SOBRE FLAGS TCP

Fernando
volbit

(usa Debian)

Enviado em 18/12/2015 - 13:04h

por favor alguém consegue sanar a minha dúvida?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts