Knockd (bate, bate, bate na porta do céu)
Knockd é um servidor port-knock. Ele escuta todo o tráfego em uma interface Ethernet (ou PPP), procurando por "batidas" sequências de requisições. Um cliente faz requisições para o servidor enviando um pacote TCP (ou UDP) para uma porta no servidor.
[ Hits: 10.705 ]
Por: Bruno Viana em 08/05/2017 | Blog: https://myshell.blog
function printUsage() { echo "" echo "$(basename "$0") -s Server_Knockd -p PORTA1 PORTA2 PORTA2 -P Pora_ssh_diferente" echo "$(basename "$0") -s 192.168.0.222 -p 7000 8000 9000 -P 2222" echo "" echo "-s ou --host: Especifica o servidor alvo" echo "-p ou --port: Especifica as portas para batida (knock)" echo "-P ou --port-ssh: Especifica as porta padrão, se nada for passado sera usado as padrão (22)" echo "" exit } if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] || [ -z "$6" ];then printUsage fi
while true ;do case "$1" in -s | --host) ip="$2"; shift 2 ;; -p | --port) porta0="$2" porta1="$3" porta2="$4" shift 4 ;; -P | --port-ssh) portaSSH="$2"; shift 2 ;; -h | --help) printUsage ; exit ;; *) break ;; esac done
function verificaPorta() { for port in "$porta0" "$porta1" "$porta2"; do if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ];then echo "A porta deve ser um numero entre 1 e 65535" printUsage fi done }
function testaSSH() { timeout 1 bash -c "echo > /dev/tcp/$ip/$1" }
function openClose() { for i in "$porta0" "$porta1" "$porta2"; do echo > /dev/tcp/"$ip"/"$i" sleep 2 done }
function main() { verificaPorta openClose test -z "$portaSSH" && testaSSH 22 test -n "$portaSSH" && testaSSH "$portaSSH" }
#! /bin/bash # Knock Open Close 0.1 # @Author: Bruno Viana function printUsage() { echo "" echo "$(basename "$0") -s Server_Knockd -p PORTA1 PORTA2 PORTA2 -P Pora_ssh_diferente" echo "$(basename "$0") -s 192.168.0.222 -p 7000 8000 9000 -P 2222" echo "" echo "-s ou --host: Especifica o servidor alvo" echo "-p ou --port: Especifica as portas para batida (knock)" echo "-P ou --port-ssh: Especifica as porta padrao, se nada for passado sera usado as padrao (22)" echo "" exit } if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ] || [ -z "$5" ] || [ -z "$6" ];then printUsage fi function openClose() { for i in "$porta0" "$porta1" "$porta2"; do echo > /dev/tcp/"$ip"/"$i" sleep 2 done } function testaSSH() { timeout 1 bash -c "echo > /dev/tcp/$ip/$1" } function verificaPorta() { for port in "$porta0" "$porta1" "$porta2"; do if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ];then echo "A porta deve ser um numero entre 1 e 65535" printUsage exit fi done } while true ;do case "$1" in -s | --host) ip="$2"; shift 2 ;; -p | --port) porta0="$2" porta1="$3" porta2="$4" shift 4 ;; -P | --port-ssh) portaSSH="$2"; shift 2 ;; -h | --help) printUsage ; exit ;; *) break ;; esac done function main() { verificaPorta openClose test -z "$portaSSH" && testaSSH 22 test -n "$portaSSH" && testaSSH "$portaSSH" } main # End of scrpit
SELinux - Security Enhanced Linux
Os segredos da criptografia com o Gcipher
AUDIT: Auditoria de arquivos no Linux para conhecer quem fez alterações em arquivos
Framework OSSIM - Open Source Security Information Management
Implementação de OpenVAS-5 em Ubuntu 10.04.4 LTS
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (8)
systemd-resol... precisa ser reiniciado periodicamente (6)
Meu Amigo não consegue entrar em meu mundo, via tailscale, hamachi e z... (2)