Bloqueio de icmp [RESOLVIDO]

1. Bloqueio de icmp [RESOLVIDO]

dbbrito
dbbrito

(usa CentOS)

Enviado em 18/07/2010 - 14:59h

Amigos, já procurei e testei de tudo que tinha na internet sobre icmp mas não consegui nada, preciso bloquear todo tráfego icmp e liberar para alguns ips, até aí tudo bem, mas acaba que quando aplico as regras ele também bloqueia o ping de dentro pra fora, é isso que não consigo resolver. Então peço a ajuda de voçês pra esse caso, essa é pra vocês que são especialistas mesmo, segue abaixo o script que tenho, TAMBÉM GOSTARIA DE UMA REGRA PRA LIMITAR A QUANTIDADE USUÁRIOS NA PORTA 80,
Desde já muito obrigado a todos.


#!/bin/bash

/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
/sbin/iptables -A INPUT -m state --state INVALID -j DROP

# Abre para a interface de loopback:
/sbin/iptables -A INPUT -p tcp -i lo -j ACCEPT

#LIBERA ICMP PARA DOIS IPS (onde ta XX é só por questão de privacidade)
/sbin/iptables -A INPUT -s 201.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -d 201.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -s 201.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -s 200.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -d 200.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -s 200.XX.XX.XX.XXX/28 -p icmp -j ACCEPT

#Bloqueia ICMP PARA O RESTANTE:
/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j DROP
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP

# Abre as portas referentes aos serviços usados:

# DNS:
/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT

# HTTP e HTTPS:
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# SSH:
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Bloqueia conexões nas demais portas:
/sbin/iptables -A INPUT -p tcp --syn -j DROP

# Garante que o firewall permitirá pacotes de conexões já iniciadas:
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Bloqueia as portas UDP de 0 a 1023 (com exceção das abertas acima):
/sbin/iptables -A INPUT -p udp --dport 0:1023 -j DROP

#echo FIREWALL INICIADO COM SUCESSO!!!


  


2. Re: Bloqueio de icmp [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/07/2010 - 15:35h

Pelo que observei no seu firewall, falta atribuir as politicas padrão:
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

#Bloqueando o "Echo" (PEDIDO) no servidor.
#Mas não precisa adicionar se for atribuir as politica padrão que eu mostrei ai cima.
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP

#Liberando o "Echo Reply" (RESPOSTA) no servidor
/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT

#Liberando o "Echo" e "Echo Reply" para o IP XXX.XXX.XXX.1
/sbin/iptables -A FORWARD -p icmp -s XXX.XXX.XXX.1 --icmp-type 8 -j ACCEPT
/sbin/iptables -A FORWARD -p icmp -d XXX.XXX.XXX.1 --icmp-type 0 -j ACCEPT

#Liberando porta 80 para usuario do IP XXX.XXX.XXX.2
/sbin/iptables -A FORWARD -p tcp -s XXX.XXX.XXX.2 --dport 80 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d XXX.XXX.XXX.2 --sport 80 -j ACCEPT


3. Resposta

dbbrito
dbbrito

(usa CentOS)

Enviado em 18/07/2010 - 17:48h

Muito obrigado pela ajuda cesarasilva, fiz a regra igual você falou, aí sim ele libera o ping de dentro pra fora, mas não libera o IP cadastrado para fazer ping no server, ou seja, ele bloqueia o ping de fora pra dentro de todos os ips, mesmo para os ips liberados. Muito obrigado


4. Re: Bloqueio de icmp [RESOLVIDO]

dbbrito
dbbrito

(usa CentOS)

Enviado em 18/07/2010 - 18:12h

cesarasilva, descobri o erro com a sua dica, bastou eu alterar o icmp type 0 para accept e pronto, não precisou alterar mais nada: Valew muito cara, obrigado

# Abre para a interface de loopback:
/sbin/iptables -A INPUT -p tcp -i lo -j ACCEPT

#LIBERA ICMP PARA DOIS IPS (onde ta XX é só por questão de privacidade)
/sbin/iptables -A INPUT -s 201.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -d 201.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -s 201.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -s 200.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -d 200.XX.XX.XX.XXX/28 -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -s 200.XX.XX.XX.XXX/28 -p icmp -j ACCEPT

#Bloqueia ICMP PARA O RESTANTE:
/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT <<<<<<<<<<<<<<<<<<<<
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP


5. Re: Bloqueio de icmp [RESOLVIDO]

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 18/07/2010 - 18:15h

seu fwll está muito desorganizado e tenho preguiça de ler; acredito que vc mesmo possa encontrar o problema:

organize seu script de modo que as regras fiquem agrupadas: todos os INPUT, todos os FORWARD, todos os OUTPUT. As portas de um mesmo protocolo podem ficar em uma única regra, desde que incluindo o módulo multiport:

tcp --> 80,22,443,domain (-m --multiport, --dports..)
udp --> domain

depois olhe APENAS nas input e acrescente ou inclua regra, logo no começo, permitindo o ping para essa máquina






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts