TCP wrapper opção “except”

4

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 [email protected] 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 [email protected] 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.

    
por sjsam 24.09.2013 / 20:12

1 resposta

4

Você talvez esteja supondo que há uma "negação padrão" implícita: não existe.

ALL EXCEPT 192.168.122.1 simplesmente não se aplica ao host 192.168.122.1, portanto, as entradas subsequentes são verificadas.

Supondo que você não tenha um antigo tcpwrappers (ou seja, ele é compatível com e foi criado com -DHOSTS_ACCESS ), você realmente só deve usar hosts.allow :

sshd: 192.168.122.1 : DENY
sshd: ALL : ALLOW

(Note que default allow é má prática, é claro)

    
por 24.09.2013 / 20:24