Como usar a batida portuária para proteger o serviço SSH no Linux

- 2875
- 79
- Wendell Legros
Porto batendo é uma técnica bacana para controlar o acesso a uma porta, permitindo apenas os usuários legítimos acesso ao serviço em execução em um servidor. Funciona de tal maneira que, quando a sequência certa de tentativas de conexão é feita, o firewall abre de bom grado a porta que foi fechada.
A lógica por trás da batida do porto é proteger seu sistema Linux de scanners de porta automatizados que procuram portas abertas. Neste guia, examinamos como você pode instalar a porta da porta e como pode configurá -lo para proteger o serviço SSH. Para fins de demonstração, usaremos Ubuntu 18.04.
Etapa 1: Instale e configure Knockd
Para começar, faça login no seu sistema Linux e instale o Knockd Daemon como mostrado.
$ sudo apt install knockd
Uma vez instalado, abra o Knockd.conf Configuração com seu editor de texto preferido. Aqui, estamos usando o editor de texto da linha de comando Vim.
$ sudo vim /etc /knockd.conf
O arquivo de configuração padrão aparece o seguinte.

Debaixo de [OpenSsh]
Seção, precisamos alterar a sequência de bate padrão - 7000,8000,9000 - para outra coisa. Isso ocorre porque esses valores já são conhecidos e podem comprometer a segurança do seu sistema.
Para fins de teste, definimos os valores para 10005, 10006, 10007. Esta é a sequência que será usada para abrir a porta SSH de um sistema de clientes.
Na terceira linha - começando com comando, mudar -A
para -EU
logo após o /sbin/iptables
comando e antes ENTRADA
.
E por último, sob o [Closessh]
Seção, novamente, altere a sequência padrão para sua escolha preferida. Esta é a sequência que será usada para fechar a conexão SSH assim que o usuário for feito e registrar o servidor.
Aqui está nossa configuração completa.

Depois de terminar, salve as mudanças e saia.
Outra configuração que precisamos modificar é o /etc/default/knockd. Mais uma vez, abra -o usando seu editor de texto.
$ sudo vim/etc/default/knockd

Localize a linha Start_knockd = 0
. Descompor -o e definir o valor para 1
.
Em seguida, vá para a linha Knockd_opts = ”-i eth1”
Descompor -o e substitua o padrão Eth1
valor com a interface de rede ativa do seu sistema. Para verificar sua interface de rede, basta executar o comando ip addr ou o ifconfig.
Para o nosso sistema, ENP0S3 é a placa de rede ativa.

A configuração completa é como mostrado.

Salve as mudanças e saia.
Em seguida, inicie e habilite Knockd Daemon como mostrado.
$ sudo systemctl start knockd $ sudo systemctl atabille knockd
Para verificar o status de Knockd Daemon, execute o comando:
$ sudo systemctl status knockd

Etapa 2: Feche a porta SSH 22 no firewall
Desde o objetivo do Knockd Serviço é para conceder ou negar acesso ao serviço SSH, vamos fechar a porta SSH no firewall. Mas primeiro, vamos verificar o status do firewall da UFW.
$ sudo ufw status numerado

Da saída, podemos ver claramente que Ssh porta 22 está aberto em ambos IPv4 e IPv6 protocolos numerados 5 e 9 respectivamente.
Precisamos excluir essas duas regras como mostrado, começando com o maior valor - que é 9.
$ sudo ufw excluir 9 $ sudo ufw excluir 5

Agora, se você tentar fazer login remotamente no servidor, você receberá um erro de tempo limite de conexão, como mostrado.

Etapa 3: Configure um cliente de knock para se conectar ao servidor SSH
Na etapa final, configuraremos um cliente e tentaremos fazer login enviando primeiro a sequência de batidas que configuramos no servidor.
Mas primeiro, instale Knockd Daemon como você fez no servidor.
$ sudo apt install knockd
Depois que a instalação estiver concluída, envie a sequência de batida usando a sintaxe mostrada
$ knock -v server_ip knock_sequence
No nosso caso, isso se traduz em:
$ knock -v 192.168.2.105 10005 10006 10007
Você deve obter produção semelhante ao que temos, dependendo da sua sequência. Isso mostra que as tentativas de batida foram bem -sucedidas.

Neste ponto, você deve estar em posição de fazer login com sucesso no servidor usando SSH.

Depois de terminar de fazer seu trabalho no servidor remoto, feche a porta SSH enviando a sequência de batida de fechamento.
$ knock -v 192.168.2.105 10007 10006 10005
Qualquer tentativa de fazer login no servidor falhará como demonstrado.

Pensamentos finais
Isso encerra este guia sobre como alavancar a porta da porta para proteger o serviço SSH em seu servidor. Uma abordagem melhor e mais fácil seria configurar a autenticação ssh de senha usando pares de chaves ssh. Isso garante que apenas o usuário com a chave privada possa se autenticar com o servidor em que a chave pública é armazenada.
- « 9 melhores clientes do IRC para Linux em 2021
- LFCA Aprenda os conceitos básicos de usar recipientes - Parte 22 »