Eu configurei o /etc/hosts.allow
na máquina 192.168.122.50 com a seguinte opção.
sshd : ALL EXCEPT 192.168.122.1
e tentei ssh root@192.168.122.50
da máquina 192.168.122.1 e eu estava
capaz de se conectar à máquina 192.168.122.50 como root.
Em seguida, adicionei a seguinte regra ao arquivo /etc/hosts.deny
em 192.168.122.50
sshd : 192.168.122.1
Novamente, tentei ssh root@192.168.122.50
da máquina 192.168.122.1.
Mas desta vez eu estava não conseguindo me conectar e recebi o erro
ssh_exchange_identification: Connection closed by remote host
Isso me fez duvidar do comportamento real da diretiva EXCEPT em /etc/hosts.allow
e /etc/hosts.deny
. Abaixo está o que eu entendo disto.
Se colocarmos a diretiva EXCEPT em hosts.allow, isso significa apenas que não estamos permitindo o host / rede específico que vem depois dela, mas uma conexão ainda é possível até mencionamos explicitamente esse host / rede em /etc/hosts.deny
. Simplificando, não permitir não significa negar
Se colocarmos a diretiva EXCEPT em hosts.deny, isso significa que estamos indiretamente permitindo que o host / rede particular faça uma conexão. Simplificando, não negar significa permitir
Estou certo no meu julgamento?
Nota 1: o daemon ssh é reiniciado sempre que eu faço uma alteração em /etc/hosts.allow
e /etc/hosts.deny
, mesmo que não seja necessário.
Nota 2: Eu entendo que a permissão tem mais prioridade do que negar.