iptables incapazes de bloquear a conexão ssh local

2

Aqui está a minha pergunta: Por que o iptables não consegue impedir que o SSH se conecte ao localhost?

Segue-se uma descrição mais detalhada.

Durante um processo de experimentação com iptables me deparei com a seguinte curiosidade que gostaria de entender. Mesmo quando eu defino cada política para DROP, ainda consigo acessar a máquina localmente via SSH.

Aqui está o que estou fazendo.

Primeiro, uso iptables para definir todos os valores POLICY para DROP:

cat <<HEREDOC | sudo iptables-restore

*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT DROP
COMMIT

*mangle
:PREROUTING DROP
:INPUT DROP
:FORWARD DROP
:OUTPUT DROP
:POSTROUTING DROP
COMMIT

*nat
:PREROUTING DROP
:POSTROUTING DROP
:OUTPUT DROP
:INPUT DROP
COMMIT

*raw
:PREROUTING DROP
:OUTPUT DROP
COMMIT
HEREDOC

Então eu tento conectar via SSH:

ssh localhost

E, para minha surpresa, isso funciona! Eu sou apresentado com uma nova sessão de shell como se não houvesse firewall. Como uma verificação de sanidade eu tente pingar localhost, o que resulta na seguinte mensagem de erro:

ping: sendmsg: Operation not permitted

Isso parece sugerir que o firewall está de fato operacional. Finalmente eu tento SSH usando um endereço IP

ssh 127.0.0.1

Isso trava, como eu esperava.

Então, meu melhor convidado é que o SSH está fazendo algo diferente quando ele passa a string "localhost" como um argumento - algo que realmente não envolve a interface de loopback. Se este é de fato o caso, então minha pergunta se torna: "O que exatamente o ssh está fazendo?"

    
por igal 20.09.2017 / 01:23

2 respostas

4

Provavelmente, localhost resolve um endereço IPv6 ( ::1 ) que não é filtrado por iptables (use ip6tables ).

A saída de:

strace -e connect ssh localhost

informará qual endereço IP e qual protocolo é usado.

    
por 20.09.2017 / 01:57
2

como sugerido por xhienne provavelmente está se conectando a :: 1. você pode tentar ssh -vv localhost e ver a saída de depuração completa de ssh.

    # ssh -vvv localhost
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [::1] port 22.
    
por 20.09.2017 / 07:52