ti-enxame.com

Acesso remoto a uma máquina Linux atrás de um firewall

Eu vou ser implantando uma máquina Linux como uma espécie de terminal público em um local remoto. Eu gostaria de poder acessar remotamente via ssh para manutenção, mas não quero manter uma porta aberta no firewall remoto para as raras ocasiões que preciso acessar esta máquina. Eu por meio de um script simples para criar um túnel ssh reverso para uma máquina do lado de fora, mas prefiro não ter que ter um usuário ter que fazer qualquer coisa quando preciso acessar. Alguma ideia?

Atualização: Eu decidi ir com meu plano original de um script para criar um túnel ssh reverso. Embora outras soluções sugeridas, como a batida de porta seriam mais ao longo das linhas do que eu realmente quero fazer, neste caso, não tenho acesso para configurar o roteador diferente de andar um usuário através de uma configuração. estremecimento

10
baudtack

Tem menos a ver com se preocupar com um porto sendo aberto e mais para fazer com não querer andar um usuário embora o processo de abrir uma porta. Eu não tenho acesso a este roteador, infelizmente.

Se mudar o roteador estiver completamente fora de questão, talvez seja necessário olhar para uma solução P2P ou VPN como Hamachi . Se você configurar o sistema para estabelecer automaticamente a conexão VPN na inicialização, você poderá se conectar sempre que precisar. Hamachi faz toda a negociação de firewall para você. A única desvantagem é que você precisa confiar nos servidores Hamachi sendo para cima e funcional quando precisar se conectar.

Se você tiver um servidor que esteja sempre pronto, você pode configurar Autossh para que o sistema remoto sempre mantenha um túnel aberto e conectado ao seu servidor. A única desvantagem é o sistema remoto é comprometida que o atacante obterá as chaves que, onde costumava estabelecer a sessão do SSH. Seria muito importante manter seu sistema que aceitasse a conexão SSH realmente trancada.


Abaixo está minha resposta original, eu assumi que a atualização do roteador era uma opção.

Uma solução que você pode querer investigar se o firewall o suporta, é porta batendo . Com alguns firewalls, deve ser possível enviar um conjunto especial de pacotes que o firewall percebe e, em seguida, abre temporariamente o orifício através do firewall.

Existem muitas implementações melhor do que os outros. Alguns usam criptografia forte para torná-lo quase impossível para uma pessoa sem as chaves certas para enviar a batida correta.

5
Zoredache

Eu não estaria preocupado em deixar a porta 22 acessível à Internet, mas eu levaria alguns passos para prendê-lo.

Em primeiro lugar, desative a autenticação interativa do teclado e mova para as teclas SSH.

Em segundo lugar, instale algo como Fail2Ban no seu servidor remoto para endereços IP do Blackball que sonda repetidamente sua máquina. Porque você tem configurações ssh teclas, não deve haver falhas de autenticação para usuários autorizados.

Alternativamente, se você é capaz, pegue o conselho de Werkkrews e configure o firewall na frente da máquina para encerrar uma conexão VPN, só permitir que o daemon ssh no servidor remoto aceite conexões que vivam dessa VPN.

Como alternativa, se o seu firewall não puder encerrar a conexão VPN, você provavelmente poderá encaminhar os pacotes GRE ou IPSec para sua máquina Linux e encerrará-lo lá.

6
Dave Cheney

Parece que você está procurando knockd

Você pode instalar isso no próprio servidor Linux, com iptables para que seja tipo como um firewall de 2º nível. Mesmo com a porta 22 aberta no Frontend Firewall, não estaria aberta no servidor, então Portscans não veria nenhuma porta aberta. Então, quando você envia a "batida secreta", de repente você tem um caminho aberto para a porta 22.

Isso faz sentido?

4
Brent

Para resumir todas as respostas:

use ssh, mas torná-lo mais obscuro e seguro.

Para segurança:

  • Certifique-se de que o login da raiz não seja permitido (autorrootlogin no).
  • Limitar os usuários, que podem efetuar login por instruções de opção de configuração ou alterar grupos.
  • Certifique-se de usar apenas 2 Versão SSH Protocol (Protocolo 2).
  • É aconselhável usar apenas chaves de autenticação, mas a senha é mais conveniente, quando pode haver uma necessidade de se conectar ao servidor do feriado, onde não tem acesso a chaves de autenticação.

Para obscuridade:

  • Altere a porta do SSH para algum porto altamente aleatório que você lembraria, como 20486. Isso se livraria da maioria dos bruteforcers automáticos, mas não o esconderia de toda a varredura da porta no servidor.
  • Ocultar a capacidade de se conectar à porta. Uma maneira é a porta batendo mencionada em outras respostas, mas você precisa de software especial, que não pode ser acessível em todos os lugares. Outra opção simples é usar o Firewall de iptables com módulo recente para criar regra, que permitiria se conectar apenas na segunda ou terceira tentativa. Então você sabe que você tem que tentar várias vezes para se conectar com sucesso, mas simples toda a verificação de porta não revelaria o porto SSH. Regras seriam semelhantes às:

iptables -A INPUT -m tcp -p tcp --dport 20486 -m state --state NEW -m recent --set
iptables -A INPUT -m tcp -p tcp --dport 20486 -m state --state NEW  -m recent --rcheck --seconds 60 --hitcount 2 -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 20486 -j DROP
3
Kazimieras Aliulis

Tarefa agendada O script para o seu túnel SSH reverso ou abra a porta do firewall.

Se você está preocupado com o SSH estar aberto ao mundo, você pode agendar tarefas quando seu período de manutenção com scripts iptables e só tem a porta disponível.

2
sclarson

Olhe para porta-batida para abrir o seu túnel SSH.

Além disso, execute Denyhosts para bloquear as pessoas depois de muitos pedidos ruins.

Ambos os pacotes estão disponíveis no padrão Ubuntu, Fedora e Rhel Repositórios.

2
Tim Howland

Vá em frente e abra um porto, basta torná-lo fora do intervalo normal. Eu faria um porto aleatório acima de 1024. Dessa forma, hackers seria improvável que pareçam por isso.

1
Brad Gilbert

Nenhuma razão para não cutucar o buraco no firewall se você precisar de acesso à máquina remotamente, por mais infrequente.

No entanto, se você ainda preferir (ou não puder) abrir a porta, um script simples de shell poderia monitorar algum recurso disponível na Internet que você controla e ouvir o comando para iniciar o túnel reverso. Contas de e-mail, canais de IRC e páginas da Web vêm imediatamente para se importar como dispositivos de disparo.

Claro, isso é muito mais frágil e menos seguro do que apenas abrir o porto. Mas tenho certeza que você tem suas razões.

0
Brian