Quando próximo, finja estar longe; quando longe, finja estar próximo
Imagine que você tem um serviço que fica escutando diretamente para a Internet. Pode ser um micro-serviço rodando em um Container, um Apache, Nginx ou um SSH, não importa, fiz com SSH por que já estava à mão. Logicamente, seu serviço por estar tão exposto, está sujeito a ataques. O que você faz em um caso desses?
[ Hits: 2.799 ]
Por: Carlos Affonso Henriques. em 13/04/2020
#!/bin/bash listenudp() { while true do systemctl -q status sshd.service >/dev/null # Testa se o serviço sshd está rodando se não estiver levanta o netcat escutando na porta 1500 UDP if [ ${?} != 0 ]; then # o Netcat escuta durante 6 segundos e depois cessa isso é usado por duas razões a saber: # 1ª Por que a opção -k, --keep-open que mantém o Netcat ouvindo uma porta não funciona com o protocolo UDP # 2ª Por que o serviço rodando de forma intermitente é indetectável por port-scanners como o Nmap por exemplo. timeout 6 nc -ul 1500 | while read line; do echo -e "$line" > keeper.log; done greplog else # Pára (Tá errado pelo novo acordo gramatical eu sei! Mas sou coroa!) o serviço sshd se ele estiver rodando systemctl -q stop sshd.service >/dev/null fi done } # Chamei de greplog por que estava com preguiça de escolher outro nome para a função! greplog() { # Verifica se a "senha" que defini como "1234" foi inserida no arquivo keeper.log Só pelo amor de Deus não me vão colocar "1234" em um ambiente de produção. grep -oq "1234" keeper.log if [ ${?} = 0 ]; then #echo systemctl -q start sshd.service >/dev/null cat /dev/null > keeper.log # Aguarda uma conexão ssh durante 20 segundos, se não ocorrer o script pára o serviço sshd e recomeça. sleep 20 else : fi } listenudp
Rodando contêineres e aplicações Linux x86 no Raspberry Pi
Filtro de conteúdo autenticado com níveis de privilégio
Enviando e-mail pelo shell com smtp remoto
Sistema de arquivos criptografado
Docker: Uma abordagem didática para tempos obscuros
Mudança de hábito: autenticando usuários em base de dados MySQL
Debian Sarge + Snort + MySQL + Acidlab + Apache
Biometria facial na autenticação do usuário root
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
configurar 2ª monitor via terminal lubuntu (0)
Como atribuir corretamente o CNES final baseado nas regras de certific... (1)
Suporte a Markdown ou BBCODE para o VOL (0)