Logo Hardware.com.br
RR_Fang
RR_Fang Super Participante Registrado
430 Mensagens 39 Curtidas
#3 Por RR_Fang
25/04/2009 - 21:05
O mesmo se aplica a pacotes UDP... Exemplo :

# Rejeitar pacote UDP
iptables -A INPUT -p udp -j REJECT
# Ou então, rejeitar com uma resposta específica
iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
# Ou mesmo descartar silenciosamente, se desejado
iptables -A INPUT -p udp -j DROP
Mas, ao montar um stateful firewall, podemos usar a seguinte regra para descartar quaisquer pacotes que não se encaixaram nas regras anteriores da chain:

# ' -P ' = "Policy" (pensemos como a "política padrão" para a chain)
iptables -P INPUT DROP

# O mesmo vale para a chain FORWARD...
# Em uma máquina que não servirá de gateway NAT,
# podemos simplesmente descartar o que vier nesta chain:
iptables -P FORWARD DROP

# Em geral, aceitamos por padrão o tráfego de saída
# Filtrá-lo é trabalhoso e exige maior cuidado
iptables -P OUTPUT ACCEPT
Referência Interessante:
http://wiki.archlinux.org/index.php/Simple_stateful_firewall_HOWTO
Ricardo "Fang MoonRupt"
< Archlinux User >
Core_Dump
Core_Dump General de Pijama Registrado
3.2K Mensagens 111 Curtidas
#4 Por Core_Dump
29/04/2009 - 12:53
Configurei o Iptables e esta como abaixo, nao sei se existem vulnerabilidades, mas ao menos funciona:


#!/bin/sh
# Interface que recebera requisicoes, no meu caso modem adsl roteado

IF="eth0"

# IP atribudo a interface do servidor, no meu caso eth0 e a faixa de IPs da rede

IP_SERV="10.0.0.2"
REDE="10.0.0.1/24"
# Limpando regras antigas

iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F
iptables -t nat -X
iptables -t filter -X
iptables -t mangle -X

#Definindo politicas padrao restritivas

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP



#compartilhando a internet

#iptables -t nat -A POSTROUTING -o $IF -j MASQUERADE
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu


# Portas TCP que terao acesso liberado (SSH,SMTP,WWW,POP3 etc)
TCP=21,22,80,3306,6881,8000,8118,9050

# Portas UDP que terao acesso liberado

UDP=4444,27043

#aceitar conexoes locais

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Bloqueia pacotes com estado INVALID

iptables -A INPUT -i $IF -m state --state INVALID -j DROP


#aceita conexoes Telnet da rede interna apenas
iptables -t filter -A INPUT -s ! $REDE -p tcp --dport 23 -j DROP

# Aceita conexoes das portas especificadas em TCP

iptables -A INPUT -i $IF -d $IP_SERV -p tcp -m multiport --dports $TCP -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp -m multiport --dports $TCP -j ACCEPT


# Aceita conexoes das portas especificadas em UDP

iptables -t filter -A INPUT -i $IF -p udp -m multiport --dports $UDP -j ACCEPT


# Protecao contra SynFloods

iptables -t filter -A INPUT -i $IF -p tcp --syn -m limit --limit 3/s -j ACCEPT

# Protecao contra ping da morte

iptables -t filter -A INPUT -i $IF -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Aceita conexoes de pacotes com estado RELATED e ESTABLISHED
iptables -t filter -A OUTPUT -o $IF -m state --stat NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A INPUT -i $IF -m state --stat NEW,ESTABLISHED,RELATED -j ACCEPT


adeus.gif
jqueiroz
jqueiroz Cyber Highlander Registrado
104K Mensagens 5.7K Curtidas
#8 Por jqueiroz
08/05/2009 - 01:09
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Não deve aparecer no final?


Essas diretivas definem a política padrão. Assim, elas podem aparecer em qualquer lugar do seu script, já que não são regras.

Você vai notar que os scripts do tópico "iptables comunitário" quase todos colocam essas linhas no início do script.

Por que quando eu omito o protocolo parece que nem sequer consigo resolver os DNS..


É difícil dizer, sem ver seu script completo. Mas há algumas armadilhas em usar política DROP:

1) As consultas DNS feitas pelas estações da sua rede para servidores DNS na internet passam pela cadeia FORWARD, não pela cadeia INPUT.

2) Vai usar política DROP na cadeia OUTPUT??? Passarinho que come pedra... você entende. Não esqueça de liberar o tráfego de loopback, de qq forma:

iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

3) É sempre mais fácil fazer seu firewall lembrar das conexões já liberadas, e liberar todos os pacotes relacionados a elas:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

A terceira linha só é necessária se estiver usando política DROP na cadeia OUTPUT.

Essas linhas devem aparecer logo após as regras de sanidade, e antes dos bloqueios administrativos.
"chmod 777 nunca ajudou ninguém" (c) 2002-2021 JQueiroz/FGdH
Conheça o Blog do Zekke
renanlnx
renanlnx Membro Junior Registrado
119 Mensagens 1 Curtida
#9 Por renanlnx
08/05/2009 - 13:26
As consultas DNS feitas pelas estações da sua rede para servidores DNS na internet passam pela cadeia FORWARD, não pela cadeia INPUT.
No caso, de apenas uma maquina...
É a input nao é?
ex:
iptables -A INPUT -i ppp+ -p udp -s 208.67.222.222 -j ACCEPT
iptables -A INPUT -i ppp+ -p udp -s 208.67.220.220 -j ACCEPT

Segue abaixo a iptables completa


# carregando os modulos
modprobe ip_tables
modprobe iptable_nat

# limpando as tabelas
iptables -F
iptables -t nat -F

#liberar loopback
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

# Protege contra os "Ping of Death"
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

# Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados ...
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Logar os pacotes mortos por inatividade ...
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG

# Protege contra port scanners avançados (Ex.: nmap)
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

# libera conexoes de fora pra dentro
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1863 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 49153 -j ACCEPT

# Deixa passar as portas UDP do servidores DNS
iptables -A INPUT -i ppp+ -p udp -s 208.67.222.222 -j ACCEPT
iptables -A INPUT -i ppp+ -p udp -s 208.67.220.220 -j ACCEPT

#libera conexoes de dentro pra fora:
iptables -A OUTPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 20 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 21 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 1863 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 6667 -j ACCEPT



# Rlembrar das conexões já liberadas, e liberar todos os pacotes relacionados a elas:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# Protege contra pacotes que podem procurar e obter informações da rede interna ...
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

# Protege contra todos os pacotes danificados e ou suspeitos ...
#iptables -A FORWARD -m unclean -j DROP

# Bloqueando tracertroute
iptables -A INPUT -p udp -s 0/0 -i ppp+ --dport 33435:33525 -j DROP

# Protecoes contra ataques
iptables -A INPUT -m state --state INVALID -j DROP



# bloqueia o resto
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

Abraço
Got Slack?dorminhoco.gif
jqueiroz
jqueiroz Cyber Highlander Registrado
104K Mensagens 5.7K Curtidas
#10 Por jqueiroz
08/05/2009 - 14:24
As consultas DNS feitas pelas estações da sua rede para servidores DNS na internet passam pela cadeia FORWARD, não pela cadeia INPUT.
No caso, de apenas uma maquina...
É a input nao é?


Como assim, apenas uma máquina? Essa máquina é o firewall de uma rede local, não?
"chmod 777 nunca ajudou ninguém" (c) 2002-2021 JQueiroz/FGdH
Conheça o Blog do Zekke
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal