Conexão SSH recusada somente a partir de um local específico

4

Eu e minha namorada compartilhamos um servidor Ubuntu que configuramos para coisas diferentes. Ultimamente, no entanto, ela está passando por um problema que deixa eu, ela e nossos dois colegas confusos e confusos.

Sempre que ela está trabalhando usando o Wi-Fi de seu trabalho, ela se conecta usando o PuTTy, mas recebe apenas um erro "Conexão de rede inesperadamente fechada do servidor". Ela nunca é solicitada uma senha antes do erro. Se ela configurar seu telefone como um hotspot ao qual ela conecta seu laptop, poderá fazer o login com sucesso. Se ela estiver em casa ou na minha casa, ela também poderá fazer login usando o mesmo laptop (sem hotspot). Ela também pode fazer login usando o telefone enquanto o telefone está conectado ao Wi-Fi do trabalho.

No auth.log no servidor, vejo a tentativa de conexão dela entrar, mas o único post é que é uma afirmação

refused connect from [IP-ADDRESS] ([IP-ADDRESS])

Não há mais informações nesse registro.

Coisas que tentamos até agora (incluindo "duvido seriamente que isso funcione, mas porque não" - tentativas):

  • Exclua as entradas do registro PuTTy para redefinir as chaves de sessão em seu computador.
  • Exclua e adicione o usuário do servidor a partir do zero.
  • Execute ssh-keygen -A para atualizar os conjuntos de chaves, com o serviço sudo ssh restart para atualizar as alterações.
  • Tente fazer login usando apenas o endereço IP e não o endereço da web.
  • Tente fazer login usando o formato [nome do usuário] @ [endereço_do_servidor] e apenas [endereço_do_servidor].
  • Adicionando um addon do SecureShell no Chrome para substituir o Putty (mesmo resultado, embora com um erro ligeiramente diferente:

    ssh_exchange_identification: Connection closed by remote host NaCl plugin exited with status code 255
    

Alguma outra ideia do que pode estar acontecendo aqui?

EDITAR:

O conteúdo de / etc / ssh / sshd_config e a saída se iptables -L foi solicitado:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

também; o outout do iptables -L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

EDIT2:

Não posso ter certeza, mas não acho que seja muito provável que o trabalho dela bloqueie o tráfego de saída na porta 22 por alguns motivos:

  1. Funcionou bem até alguns dias atrás.
  2. Ela trabalha em uma organização que é basicamente um instituto de pesquisa que pesquisa em TI. A maioria das pessoas lá usa o Linux quase religiosamente, e eu acredito que a grande maioria das pessoas lá ficaria bastante irritada se elas não pudessem usar conexões SSH.
  3. O chefe de TI lá, que tem doutorado em informática, analisou por 5 minutos o problema e também ficou perplexo. Eu acho que ele de todas as pessoas deveria saber se era política da empresa bloquear a porta 22.
  4. Meu servidor registra uma solicitação de conexão de entrada e a recusa ativamente. Se a porta 22 foi bloqueada, isso não resultaria em nenhuma atualização no auth.log?
por Geir K.H. 10.04.2015 / 16:06

3 respostas

10
refused connect from [IP-ADDRESS] ([IP-ADDRESS])

Esta mensagem em particular é emitida pela biblioteca TCP wrappers quando decide rejeitar uma conexão. O sshd do Ubuntu é construído para usar TCP wrappers.

Verifique os dois arquivos "/etc/hosts.allow" e "/etc/hosts.deny" no servidor ssh. Você tem uma entrada em um desses arquivos que faz com que as conexões ssh daquele endereço sejam rejeitadas. Veja a página do manual do Ubuntu para estes arquivos .

    
por Kenster 12.04.2015 / 21:37
3

É provável que o que está acontecendo é que o administrador de rede da rede de trabalho esteja bloqueando a saída TCP 22 da porta e a porta UDP 22 de saída, para bloquear o acesso SSH. Isso é feito para uma questão de segurança de dados sendo "enviados" da rede interna para um servidor que não é controlado pela organização. Isso também é feito como uma questão de política no local de trabalho.

Como profissional de segurança de TI, é meu dever NÃO fornecer respostas que comprometam a segurança do servidor compartilhado ou a segurança do local de trabalho, mas eu estou dando a você três opções aqui e identificando quais eu recomendo nas seções abaixo. Um viola a política do local de trabalho para a namorada provavelmente, e também diminui a segurança do seu servidor, os outros dois são potenciais outras opções.

Opção 1: experimente e execute um cliente de shell voltado para a Web ou defina sshd para usar a porta 80.

NÃO RECOMENDADO

A única solução neste caso é executar algum tipo de cliente de shell voltado para a Web, mas é provável que você precise de um servidor da Web. A outra solução, proposta por Nitin J Mutkawoa de colocar seu servidor SSH na porta 80, é outra opção. Ambas as opções abrem vários riscos de segurança, incluindo, entre outros:

  • Colocar o SSH em uma porta HTTP significa que MUITOS servidores podem tentar acessar uma página da web no endereço IP, mas em vez disso, atingirão uma conexão SSH, o que será um risco de segurança, pois os scanners de serviço veem isso.
  • Colocar o que deve ser considerado um serviço "seguro" em uma porta da Web abrirá você para ataques baseados na Web contra a porta
  • Colocar o SSH no sistema voltado para a web abrirá você para muitos vetores de ataque de força bruta.
  • Colocar um cliente de shell baseado na Web voltado para a Web abrirá você também para tentativas de força bruta
  • Colocar um cliente shell baseado na Web voltado para a web abrirá você para vetores de ataque de qualquer que seja o 'cliente' escrito (Java, PHP, etc.) que pode incluir, mas não está limitado a:
    • Vulnerabilidades de execução remota de código
    • Vulnerabilidades de escalonamento de privilégios
    • Vulnerabilidades de negação de serviço.

Isso também abre a sua namorada a violações de políticas no local de trabalho, fazendo algo que a política do local de trabalho deve negar. Ela pode enfrentar medidas disciplinares até e inclusive ser demitida. Por esse motivo, além dos motivos de segurança acima, você não deve implementar essa opção.

Opção 2: Não tente contornar a política de TI no local de trabalho

RECOMENDADO

Como profissional de segurança de TI, que teve que encerrar o acesso à rede devido a violações de políticas de outros indivíduos em um local de trabalho no passado, minha recomendação é que sua namorada não tente e SSH em seu servidor compartilhado um ambiente de trabalho / rede . Se houver algum tipo de auditoria sendo realizada na rede, as auditorias de rede podem mostrar que alguém está tentando executar o SSH em um servidor não seguro e não-protegido. Embora você ou sua namorada possam individualmente não ter nenhuma intenção maliciosa, a maioria das "Políticas de Uso Aceitável de Rede / Computador" do local de trabalho incluirá que você não fará itens pessoais na rede sem autorização ou necessidade absoluta. Outra coisa é provável afirmar "Você não deve usar certos serviços, tais como: [lista]".

Eu recomendaria que você revisasse a política de uso aceitável do local de trabalho da namorada e determinasse se ela violaria essa política, o suficiente para que ela pudesse enfrentar medidas disciplinares, como remoção de acesso à rede, remoção de acesso ao computador, ou demissão em potencial. Não tente contornar a política, porque sua namorada pode ser demitida, contornando-a.

Opção 3: Se o SSH for necessário para tarefas relacionadas ao trabalho, entre em contato com supervisores / gerentes para ver se isenções de restrição podem ser dadas à namorada.

TAMBÉM RECOMENDADO

Se o acesso ao seu servidor SSH compartilhado for um requisito para o local de trabalho , sua namorada precisará conversar com seu supervisor para determinar se há uma violação da política permitindo o acesso como tal. Teria então de ser discutido pela gerência se eles podem ou não dar acesso, e então a partir daí determina se é seguro / são ou não permitir o acesso através da rede.

Esta é provavelmente a segunda opção mais segura

    
por Thomas Ward 10.04.2015 / 17:49
0

Tente reiniciar o serviço ssh:

/etc/init.d/ssh restart
    
por Taha Amine Zeghbib 22.03.2017 / 14:31