Mostrando postagens com marcador firewall. Mostrar todas as postagens
Mostrando postagens com marcador firewall. Mostrar todas as postagens

domingo, 29 de julho de 2007

Port Knocking

Bom esse post explica como fazer um Port Knocking com Iptables.

Port Knocking seria mais ou menos liberar uma porta no iptables caso seu ip esteja numa lista, caso contrário deixá-la bloqueada.

O exemplo que vou usar será o do ssh.

Antes de mais nada verifique se seu kernel possui o módulo ipt_recent
# modprobe -l | grep recent

se a saida do comando for parecida com
/lib/modules/2.6.20-15-generic/kernel/net/ipv4/netfilter/ipt_recent.ko

você não precisará compilar seu kernel. Agora suba o módulo
# modprobe ipt_recent

Agora crie um arquivo, o nome que utilizarei é pknock.sh e adicione ao seu conteúdo

Obs: As portas e o nome da lista podem e devem ser alterados para maior segurança.

#!/bin/bash
# bloqueia a porta do ssh, no caso a 2000 iptables -A INPUT -p tcp -s 0/0 --dport 2000 -j DROP
# libera a porta do ssh caso o ip esteja na lista SSHKNOCK
iptables -I INPUT -p tcp -s 0/0 --sport 1024:65535 --dport 2000 -m recent --rsource --name SSHKNOCK --rcheck -j ACCEPT
# ao se conectar na porta 2100 adiciona o ip na lista SSHKNOCK
iptables -I INPUT -p tcp -s 0/0 --sport 1024:65535 --dport 2100 -m recent --rsource --set --name SSHKNOCK -j DROP
# ao se conectar na porta 2200 retira o ip da lista SSHKNOCK
iptables -I INPUT -p tcp -s 0/0 --sport 1024:65535 --dport 2200 -m recent --rsource --name SSHKNOCK --remove -j DROP

salve o arquivo.

Agora para aplicar as regras ao iptables sempre que iniciar, no ubuntu edite o arquivo /etc/rc.local como root

# pico /etc/rc.local

antes da linha "exit 0"
adicione bash /home/user/pknock.sh

troque isso pela localização exata no teu pc.

salve o arquivo rc.local

Agora de permissão de execução para ele:
# chmod +x /etc/rc.local

Agora sempre que inicar seu pc as regras já estarão no iptables.

Dúvidas? comentem