Pedro Debian wrote:
Rondineli Gama Saad escreveu:
Pedro Debian wrote:
Olá Pessoal,
Estou fazendo algumas implementações no firewall e uma das
funcionalidade que gostaria de inserir é uma regra para barrar
tentativas de escaneamento de portas externas. Fiz alguns testes
usando módulo recent do iptables mas não tive muito sucesso para
detectar a varredura para todas as portas.
Alguém já fez algum implementação neste sentido?
Obrigado
Abraços
Pedro
Olá Pedro,
Basta colocar no inicio do script as seguintes regras:
# Negar pacotes com bad flags
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG
--log-level alert --log-prefix "FIREWALL: Pkt Invalido! L1: "
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG
--log-level alert --log-prefix "FIREWALL: Pkt Invalido! L2: "
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j LOG
--log-level alert --log-prefix "FIREWALL: Pkt Invalido! L3: "
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j LOG
--log-level alert --log-prefix "FIREWALL: Pkt Invalido! L4: "
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG
--log-level alert --log-prefix "FIREWALL: Pkt Invalido! L5: "
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
Ou seja, estas regras vai barrar todas as tentativas de escaneamento
de portas usando as combinações de flags do TCP e ainda vai criar
logs das tentativas com seus respectivos supostos ips atacantes.
Espero ter ajudado.
Rondineli Saad
Olá,
Por algum motivo, aqui não funcionou. Todos os testes que fiz com o
nmap ele conseguiu detectar as portas abertas. Exceto o momento que
Dropei as tabelas INPUT e FORWARD mas neste caso mesmo sem qualquer
regra ele bloqueou o acesso à máquina.
Tem algum script que consegue detectar o escaneamento da porta
bloqueia por certo tempo qualquer tentativa deste ip acessar a
máquina? Um artigo a Linux Magazine comentou que é possuivel fazer
isso com o módulo recent do iptables mas não estou conseguindo montar.
Alguém pode dar um luz?
Obrigado
Pedro
Olá Pedro,
As regras citadas acima refere-se a tentativas de escaneamento de portas
com flags anormais, ou seja quando o nmap usa combinações de flags que
não seja SYN --> SYN+ACK --> SYN (three handshake) ele irá criar um log
e dropar os pacotes. Quando vc configura um firewall onde no INPUT é
liberado por exemplo as porta 22 e 80 vc esta dizdo que existe um
servidor ssh e um servidor http, ou seja, se alguém tentar escanear
usando as flags do three handshake as portas que foram liberadas (22 e
80) serão indicadas que estão abertas. Então imaginemos que alguém tente
acessar via ssh, o invasor pode usar um script com varias senha que vai
tentar acessar o seu servidor, ou seja, ela vai usar de tentativa brote
force para invadir o seu servidor. Neste caso eu posso usar o modulo
recent para bloquear todos os ips que tentou x vezes em um intervalo de
tempo acessar o seu servidor. Sendo mais explicito: o firewall bloqueará
o ip se em um intervalo de 60 seg tentou acessar 3 vezes. Abaixo umas
regras que podem ser adicionadas no seu firewall:
# Regras Iptables para Bloquear ataques Brute Force no SSH
# copia da Dicas-L
# http://www.dicas-l.com.br/dicas-l/20060724.php
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name sshattack --set
iptables -A INPUT -p tcp --dport 22 --syn -m recent --name sshattack
--rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: '
iptables -A INPUT -p tcp --dport 22 --syn -m recent --name sshattack
--rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p tcp --syn --dport 22 -m recent --name sshattack --set
iptables -A FORWARD -p tcp --dport 22 --syn -m recent --name sshattack
--rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix 'SSH REJECT: '
iptables -A FORWARD -p tcp --dport 22 --syn -m recent --name sshattack
--rcheck --seconds 60 --hitcount 3 -j REJECT --reject-with tcp-reset
Para entender melhor o modulo recent acesse o link abaixo:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5551
Espero ter ajudado.
Rondineli Saad
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]