Como usar o Knocking de portas no Linux (e por que você não deveria)
Bater à porta é uma maneira de proteger um servidor fechando as portas do firewall — mesmo aquelas que você conhece serão usadas. Essas portas são abertas sob demanda se o — e somente se — a solicitação de conexão fornecer uma batida secreta.
Batida na porta é uma "batida secreta" ”
Na década de 1920, quando a proibição estava em pleno andamento, se você queria entrar em uma conversa, precisava conhecer a batida secreta e tocar nela corretamente para entrar.
Bater à porta é um equivalente moderno. Se você deseja que as pessoas tenham acesso aos serviços no seu computador, mas não deseja abrir o firewall na Internet, pode usar a porta batendo. Permite fechar as portas do firewall que permitem conexões de entrada e abri-las automaticamente quando é feito um padrão previamente combinado de tentativas de conexão.A sequência de tentativas de conexão atua como uma batida secreta. Outra batida secreta fecha a porta.
A batida na porta é uma novidade, mas é importante saber que é um exemplo de segurança através da obscuridade, e esse conceito é fundamentalmente falho.O segredo de como acessar um sistema é seguro, porque somente aqueles de um grupo específico o conhecem. Mas uma vez que esse segredo é revelado, ou porque é revelado, observado, adivinhado ou elaborado, sua segurança é nula.É melhor proteger seu servidor de outras maneiras mais fortes, como exigir logins com base em chaves para um servidor SSH.
As abordagens mais robustas à segurança cibernética são em várias camadas; portanto, talvez seja necessário bater à porta. uma dessas camadas. Quanto mais camadas, melhor, certo?No entanto, você pode argumentar que a batida na porta não adiciona muito (se houver) a um sistema seguro e bem endurecido.
A segurança cibernética é um tópico vasto e complicado, mas você não deve usarporta batendo como sua única forma de defesa.
RELACIONADO: Como criar e instalar chaves SSH a partir do shell Linux
Instalando knockd
Para demonstrar a batida na porta,vamos usá-lo para controlar a porta 22, que é a porta SSH. Usaremos uma ferramenta chamada knockd. Use o apt-get para instalar este pacote no seu sistema se você usar o Ubuntu ou outra distribuição baseada no Debian. Em outras distribuições Linux, use a ferramenta de gerenciamento de pacotes da sua distribuição Linux.
Digite o seguinte:
sudo apt-get install knockd
Você provavelmente já possui o firewall iptables instalado no seu sistema, mas pode ser necessário instalar o pacote iptables-persistent. Ele lida com o carregamento automático de regras iptable salvas.
Digite o seguinte para instalá-lo:
sudo apt-get install iptables-persistent
Quando a tela de configuração do IPV4 aparecer, pressione a barra de espaço para aceitar o “ Yes ”opção.
Pressione a barra de espaço novamente na tela de configuração do IPv6 para aceitar o “ Yes ”opção e siga em frente.
O comando a seguir diz ao iptables para permitir que conexões estabelecidas e contínuas continuem. Agora, emitiremos outro comando para fechar a porta SSH.
Se alguém estiver conectado pelo SSH quando emitirmos esse comando, não queremos que eles sejam cortados:
sudo iptables -A INPUT -m conntrack --ctstate ESTABELECIDO, RELACIONADO -j ACEITA
Este comando adiciona uma regra ao firewall, que diz:
- -A: anexe a regra à tabela de regras do firewall. Ou seja, adicione-o ao final.
- INPUT: Esta é uma regra sobre conexões de entrada.
- -m conntrack: as regras de firewall agem sobre o tráfego de rede (pacotes) que correspondem aos critérios ema regra.O parâmetro -m faz com que o iptables use módulos extras de correspondência de pacotes. Nesse caso, o chamado conntrack funciona com os recursos de rastreamento de conexão de rede do kernel.
-
- -j ACEITAR: Se o tráfego corresponder à regra, vá para o destino ACEITAR no firewall. Em outras palavras, o tráfego é aceito e autorizado a passar pelo firewall.
Agora podemos emitir o comando para fechar a porta:
sudo iptables -A INPUT -p tcp --dport 22 -j REJEITAR
Este comando adiciona uma regra ao firewall, que diz:
- -A: Anexe a regra à tabela de regras do firewall, ou seja, adicione-a na parte inferior.
- ENTRADA: Esta regra é sobre conexões de entrada.
- -p tcp: Esta regra se aplica ao tráfego que usa o Transmission Control Protocol.
- & # 8211; dport 22: IssoA regra se aplica especificamente ao tráfego TCP que visa a porta 22 (a porta SSH).
- -j REJECT: Se o tráfego corresponder à regra, vá para o destino REJECT no firewall. Portanto, se o tráfego for rejeitado, não será permitido pelo firewall.
Precisamos iniciar o daemon persistente do netfilter. Podemos fazer isso com este comando:
sudo systemctl start netfilter-persistent
Queremos que o netfilter-persistent passe por um salvamento erecarregar ciclo, para carregar e controlar as regras do iptable.
Digite os seguintes comandos:
sudo netfilter-persistent save
sudo netfilter-persistent recarregar
Agora você instalou os utilitários e a porta SSH está fechada (felizmente, sem encerrar ninguém) #8217; conexão de s). Agora, é hora de configurar o toque secreto.
Configurando o knockd
Existem dois arquivos que você edita para configurar o knockd.O primeiro é o seguinte arquivo de configuração de bloqueio:
sudo gedit /etc/knockd. conf[/PREunette
O editor do gedit é aberto com a configuração de bloqueioarquivo carregado.
Editaremos este arquivo para atender às nossas necessidades. As seções nas quais estamos interessados são openSSH ”e “ closeSSH. ”As quatro entradas a seguir estão em cada seção:
- sequência: a sequência de portas que alguém deve acessar para abrir ou fechar a porta 22. As portas padrão são 7000, 8000 e 9000 para abri-la e9000, 8000 e 7000 para fechá-lo. Você pode alterá-las ou adicionar mais portas à lista. Para nossos propósitos, permaneceremos com os padrões.
- seq_timeout: o período de tempo em que alguém precisa acessar as portas para acioná-lo para abrir ou fechar.
- comando: O comando enviado ao firewall do iptables quando a ação de abrir ou fechar é acionada. Esses comandos adicionam uma regra ao firewall (para abrir a porta) ou retiram-na (para fechar a porta).
- tcpflags: o tipo de pacote que cada porta deve receber na sequência secreta. Um pacote SYN (sincronização) é o primeiro de uma solicitação de conexão TCP, chamada handshake de três vias.
O “ openSSH ”A seção pode ser lida como "uma solicitação de conexão TCP deve ser feita nas portas 7000, 8000 e 9000" nessa ordem e em 5 segundos para que o comando para abrir a porta 22 seja enviado ao firewall. ”
O “ closeSSH ”A seção pode ser lida como "uma solicitação de conexão TCP deve ser feita nas portas 9000, 8000 e 7000" nessa ordem e em 5 segundos para que o comando fechar a porta 22 seja enviado ao firewall. ”
As regras do firewall
O “ comando ”as entradas nas seções openSSH e closeSSH permanecem as mesmas, exceto por um parâmetro.É assim que eles são compostos:
- -A: Anexe a regra ao final da lista de regras de firewall (para o comando openSSH).
- -D: Exclua o comando da lista de regras de firewall (para o comando closeSSH).
- ENTRADA: Esta regra está relacionada ao tráfego de rede recebido.
- -s% IP%: o endereço IPdo dispositivo que está solicitando uma conexão.
- -p: Protocolo de rede;nesse caso, é o TCP.
- & # 8211; dport: A porta de destino;em nosso exemplo, é a porta 22.
- -j ACEITAR: Pule para o destino de aceitação no firewall. Em outras palavras, deixe o pacote passar pelo restante das regras sem agir de acordo.
O arquivo de configuração inicial edita
As edições que faremospara o arquivo são destacados em vermelho abaixo:
Estendemos o “ seq_timeout ”a 15 segundos. Isso é generoso, mas se alguém disparar manualmente em solicitações de conexão, ele poderá precisar de muito tempo.
No “ openSSH ”Na seção, alteramos a opção -A (acrescentar) no comando para -I (inserir). Este comando insere uma nova regra de firewall no topo da lista de regras de firewall. Se você deixar a opção -A, ela anexa a lista de regras do firewall e a coloca na parte inferior.
O tráfego de entrada é testado em cada regra de firewall da lista, de cima para baixo.Já temos uma regra que fecha a porta 22. Portanto, se o tráfego de entrada for testado com relação a essa regra antes de ver a regra que permite o tráfego, a conexão será recusada;se vir essa nova regra primeiro, a conexão será permitida.
O comando close remove a regra adicionada pelo openSSH das regras do firewall.O tráfego SSH é mais uma vez tratado pela porta 22 pré-existente está fechada ”regra.
Depois de fazer essas edições, salve o arquivo de configuração.
RELACIONADO: Como editar arquivos de texto graficamente no Linux com o gedit
O arquivo de controle imbecilEdições
O arquivo de controle descartável é totalmente mais simples. Antes de mergulharmos e editarmos isso, precisamos saber o nome interno da nossa conexão de rede;para encontrá-lo, digite este comando:
endereço IP
A conexão que esta máquina usa para pesquisar este artigo é chamada enp0s3. Anote o nome da sua conexão.
O comando a seguir edita o arquivo de controle knockd:
sudo gedit / etc / default / knockd
Aqui está o arquivo final do gedit.
As poucas edições que precisamos fazer são destacadas em vermelho:
Alteramos o “ START_KNOCKD = ”entrada de 0 a 1.
Também removemos o hash # do início do “ KNOCKD_OPTS = ”entrada e substituiu “ eth1 ”com o nome da nossa conexão de rede, enp0s3. Obviamente, se sua conexão de rede for eth1, você não a alterará.
A prova está no pudim
Está na hora de ver se isso funciona. Vamos iniciar o daemon knockd com este comando:
sudo systemctrl start knockd
Agora, vamos pularem outra máquina e tente conectar-se. Também instalamos a ferramenta knockd no computador, não porque queremos configurar a porta batendo, mas porque o pacote knockd fornece outra ferramenta chamada knock. Usaremos esta máquina para disparar em nossa sequência secreta e fazer a batida por nós.
Use o comando a seguir para enviar sua sequência secreta de solicitações de conexão para as portas no computador host como endereço IP 192.168.4.24:
bate em 192.168.4.24 7000 8000 9000 -d 500
Isso indica ao bater para direcionar o computador ao endereço IP 192.168.4.24 e disparar umsolicitação de conexão às portas 7000, 8000 e 9000, por sua vez, com um -d (atraso) de 500 milissegundos entre elas.
Um usuário chamado “ dave ”em seguida, faz uma solicitação SSH para 192.168.4.24:
ssh dave@192.168.4.24
Sua conexão é aceita, ele digita sua senha e a sessão remota é iniciada. Seu prompt de comando muda de dave @ nostromo para dave @ howtogeek. Para sair do computador remoto, ele digita:
exit
O prompt de comando retorna ao computador local. Ele usa knock mais uma vez e, desta vez, direciona as portas na ordem inversa para fechar a porta SSH no computador remoto.
knock 192.168.4.24 9000 8000 7000 -d 500
É verdade que esta não foi uma sessão remota particularmente proveitosa, mas demonstra a abertura e o fechamento da porta via porta batendo e se encaixa em uma única captura de tela.
Então, como isso foi do outro lado?O administrador do sistema no host batendo na porta usa o seguinte comando para exibir novas entradas que chegam no log do sistema:
tail -f / var / log / syslog
- Você vê três entradas do openSSH. Eles são aumentados à medida que cada porta é direcionada pelo utilitário de batida remota.
- Quando todos os três estágios da sequência de gatilhos são atingidos, uma entrada que diz "OPEN SESAME", ”está registrado
- O comando para inserir a regra na lista de regras do iptables é enviado. Permite o acesso via SSH na porta 22 a partir do endereço IP específico do PC que deu a batida secreta correta (192.168.4.23).
- O usuário “ dave ”conecta apenas por alguns segundos e, em seguida, desconecta.
- Você vê três entradas closeSSH. Eles são aumentados à medida que cada porta é direcionada pelo utilitário de batida remota - ele informa ao host de batida da porta para fechar a porta 22.
- Depois que os três estágios são acionados, obtemos o “ OPEN SESAME ”mensagem novamente.O comando é enviado ao firewall para remover a regra.(Por que não "CLOSE SESAME" quando fecha a porta? Quem sabe?)
Agora, a única regra na lista de regras do iptables referente à porta 22 é a que digitamos no início para fechar essa porta. Portanto, a porta 22 agora está fechada novamente.
Bata na cabeça
Essa é a porta que está batendo no truque da sala de estar. Trate-o como uma diversão e não faça isso no mundo real. Ou, se necessário, não confie nele como sua única forma de segurança.
Via: How to Geek
Veja Também:
- O que é um "hot take" e de onde veio a frase?
- Como as “Atualizações de segurança estendidas” do Windows 7 funcionarão
- As chamadas telefônicas do Windows 10 serão compatíveis com todos os telefones Android 7+
- O que é o Patch Tuesday para Windows e quando é?
- Como desativar anúncios pop-up interativos na sua TV Roku
Nenhum comentário