usando twist em hosts.allow

1

No final do meu hosts.allow , tenho o seguinte:

ALL : ALL \
 : spawn (echo  "%d" | /usr/bin/mail -s "tcpf\: %d attempt from %h." root) & \
 : severity auth.info \
 : twist /bin/echo "You are not welcome to use %d from %h."'

Mas isso parece simplesmente colocar esse texto no meu auth.log:

mail sshd[63546]: twist 12.34.56.789 to /bin/echo "You are not welcome to use sshd from 12.34.56.789."

No lado do cliente, vejo apenas "Conexão fechada pelo host remoto" e não vejo a saída do eco. Não há nada em man -k twist

    
por lbutlr 14.08.2017 / 15:23

1 resposta

0

A página de manual para hosts_options(5) explica o comando twist em tcp_wrappers:

twist shell_command

Replace the current process by an instance of the specified shell command, after performing the % expansions described in the hosts_access(5) manual page. Stdin, stdout and stderr are connected to the client process. This option must appear at the end of a rule.

O problema é que o SSH não é apenas um protocolo de texto, mas espera algumas mensagens de protocolo e, se não as receber, falhará. Se você executasse o ssh no modo de depuração ( ssh -v ), veria o seguinte:

debug1: Local version string SSH-2.0-OpenSSH_7.5
debug1: ssh_exchange_identification: You are not welcome to use sshd from ::1.

ssh_exchange_identification: read: Connection reset by peer

Assim, a mensagem é realmente enviada, mas, como não estava correta, ela falha. Não existe uma maneira simples de como inserir suas mensagens no protocolo ssh. Você provavelmente precisaria aceitar esse comportamento.

    
por 15.08.2017 / 13:12