Negar conexão SSH com mensagem

3

Gostaria de permitir que apenas determinados hosts se conectassem ao meu servidor via SSH e rejeitassem o restante com uma mensagem de erro amigável. Os usuários autorizados do sistema geralmente não são técnicos, acessando este sistema via Filezilla.

Pensei que poderia fazer isso com TCP Wrappers, mas quando eu insiro o abaixo em meu hosts.deny , o cliente apenas recebe a mensagem de erro "ssh_exchange_identification: Conexão fechada pelo host remoto"

sshd : ALL \
  : twist /bin/echo "Sorry, but your host is not allowed to connect to this server." \
  : deny

Me deparei com um script, SSH Twist , que parecia resolver esse problema, mas só vejo o mesmo erro no cliente.

Por que vale a pena, estou testando no RHEL 6.1 com o OpenSSH 5.3p1.

    
por PunchMonkey 12.07.2011 / 22:26

2 respostas

3

O

SSH Twist parece um pouco hackeado, e eu não apostaria nisso trabalhando com todas as sshd versões - faz uma suposição sobre o que ele pode enviar durante o estabelecimento da sessão que não é necessariamente verdade.

É um pouco feio, mas você pode fazer algo assim em sshd_config :

Match Host allowedhost1
Match Host allowedhost2
# one for each host (or hostname pattern or address range) permitted
# no commands in them, just the match entries
# this just makes sure they don't fall into the following catch-all

Match Host *
    Banner /etc/ssh/refuse_msg
    DenyUsers *
    
por 12.07.2011 / 22:39
0

Por analogia com o anwer por geekosaur, eu vim finalmente acima com a seguinte solução: (I necessário a mensagem não para diferentes hospedeiros, mas os usuários diferentes, mas deve ser o mesmo princípio.)

Match User *,!user1,!user2,!root
    Banner /etc/ssh/refuse_msg
    ForceCommand echo

Eu não obter o ForceCommand para trabalhar com várias linhas "Match" (como na resposta por geekosaur), porque sempre usou o ForceCommand, talvez porque não há opção "ForceCommand off".

A página do manual diz que a primeira instrução dentro de Match-Secção "vitórias", mas porque os anteriores match-Demonstrações não continha bandeira ou ForceCommand, foram utilizadas as declarações no final. Com Banner eu poderia usar "Banner / dev / null", mas não há nada que se possa colocar no ForceCommand ...

    
por 22.12.2016 / 15:28

Tags