Eu tenho um Raspberry Pi em casa que conectei à minha rede doméstica. Eu o uso para executar um servidor VPN, um túnel SSH e, ocasionalmente, faço o SSH nele para executar manutenção nele.
É uma má idéia ter portas abertas (TCP) no meu roteador para que eu possa conectar-me remotamente ao meu Pi enquanto estiver fora de casa? Eu não uso a porta 22 habitual; é uma porta aleatória que eu escolhi. No entanto, quando digitalizo meu endereço IP usando nmap
on pentest-tools.com
, vejo a porta aberta que escolhi usar para SSH. Meu Pi é protegido por senha e não há dados confidenciais ou números de cartão de crédito nele que eu conheça. Mas, considerando que eu o uso para tunelamento VPN ou SSH, dados confidenciais podem passar por ele. Então, é ruim ter essa porta SSH aberta no meu roteador? Alguém pode fazer algo malicioso na minha rede doméstica com essa porta aberta, considerando que o meu Pi está sempre ligado e escutando essa porta?
fonte
Respostas:
Em termos de segurança, três métodos adicionais me vêm à mente.
A: use autenticação de chave pública
Para aumentar a segurança, você pode configurar o servidor SSH para usar a autenticação de chave pública. Ou seja, além de ou em vez de uma senha forte, a conexão será aberta apenas se o cliente SSH fornecer a chave privada que corresponde à chave pública no servidor. Mesmo que um invasor pudesse obter a chave pública de alguma forma, ele não poderia recuperar a chave privada disso. No entanto, isso não ocultará sua porta dos scanners de portas.
B: use uma porta diferente
Além disso, fiz uma boa experiência em termos de menos verificações de porta com a configuração do servidor SSH para escutar uma porta diferente de 22. A opção de configuração padrão correspondente
/etc/ssh/sshd_config
éVocê pode mudar isso para, digamos 54322:
Lembre-se de reiniciar o servidor SSH posteriormente; dependendo do Linux no seu Raspberry, pode ser um dos
(O
#
sinal, se não estiver em um arquivo, deve indicar um prompt raiz aqui nos meus exemplos.)Não se preocupe, sua sessão SSH atual permanecerá ativa. Vale a pena tentar abrir uma segunda sessão SSH na porta 54322 para ver se o logon ainda funciona. Lembrar de
C: feche a porta e abra-a apenas mediante solicitação
Se você realmente não deseja mostrar à "Internet" que você tem essa porta aberta, consulte daemons de porta aberta, por exemplo
knockd
. Esses programas escutam portas (fechadas) definidas por você e, após uma seqüência de batida, também definida por você, abrem uma porta diferente, por exemplo, sua porta SSH. Em um telefone celular ou laptop, você inicia a sequência de batidas e o daemon de batida no Raspberry Pi abre a porta SSH, que não era visível.Mais detalhadamente, a batida na porta adicionará uma linha à sua
iptables
configuração. Esta linha abrirá a porta do seu Raspberry. Isso também significa que a porta SSH deve ser fechadaiptables
antes. E isso significa que você não pode fazer login via SSH.Um exemplo
knockd.conf
pode ser assim:Além disso, lembre-se de encaminhar as portas a serem batidas do seu roteador da Internet para o seu Raspberry.
Os scripts de abertura / fechamento correspondentes podem ter a seguinte aparência:
e
Lembre-se de tornar os dois scripts executáveis com
chmod +x /usr/local/bin/knockd*
. Além disso, você deve iniciar e ativar o serviço de bloqueio com um dos seguintesEspecialmente se você usar um computador remoto no qual não tenha acesso ao console, convém
atd
revogar automaticamente quaisquer alterações e / ou reiniciar o Raspberry em caso de erros de configuração.Como o iptables não será armazenado automaticamente nas reinicializações, em um exemplo, você pode ser root (via
su
) eUm exemplo
./script-which-closes-iptables.sh
pode ser assim (lembre-se de torná-lo executável comchmod +x
)Se sua sessão SSH estiver acabando agora, o Raspberry será reiniciado em 5 minutos. Se sua sessão SSH ainda estiver ativa, revogue a reinicialização pendente com
Se a sua sessão SSH ainda estiver ativa, tente fazer login através de uma segunda sessão SSH. Isso não deve funcionar. Em seguida, use seu telefone celular e bata nas portas que você configurou
/etc/knockd.conf
. Depois disso, tente novamente fazer login através de uma segunda sessão SSH. Desta vez, deve funcionar.Então você pode fazer com que o iptables persista uma reinicialização. No seu sistema, pode ser necessário instalar um pacote via
Salve suas iptables com
e habilite o serviço iptables com
fonte
Se o seu Raspberry Pi tiver uma senha forte e uma segurança SSH forte, você estará bem; os invasores não podem fazer nada com o SSH se não puderem fazer login ou explorá-lo. Eles encontrarão a porta com certeza, no entanto.
Nota histórica: No passado, houve um problema com a configuração do SSH; a chave gerada automaticamente era previsível. Isso foi consertado.
Se os atacantes não conseguem ter acesso SSH, eles próprios de forma eficaz o dispositivo. Em seguida, eles podem usá-lo para fazer coisas ruins, como ARP Poisoning , que permite capturar e alterar dados não criptografados que cruzam sua rede. Eles também podem usar o Pi como ponto de partida para ataques a outros hosts. O Pi é um computador como outro qualquer, e você precisa ter cuidado para protegê-lo.
fonte