firewall para o compartilhamento, qual o erro?

Iniciado por linuxerbel, 19 de Julho de 2009, 02:38

tópico anterior - próximo tópico

linuxerbel

Caros amigos,

Estou configurando um pequeno servidor para compartilhar a internet e proxy cache com squid, tudo  ia perfeitamente, até qdo resolvi acrescentar o firewall. primeiramente compartilhei a internet como os comando abaixo no arquivo /etc/rc.local:

modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 80 -j REDIRECT --to-port 3128

Depois resolvi acrescentar no mesmo arquivo /etc/rc.local, acrescentar o firewall e depois disso o servidor parou de compartilhar. O que será que tem de errado? segue abaixo o firewall.

até mais

echo "Carregando o firewall..."

# Carregando os módulos
modprobe ip_tables
modprobe iptable_nat

# Limpando todas as tabelas e regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# Politica padrao
iptables -P INTPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Interface de loopback
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

# Abre para uma faixa de endereços da rede local
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT

# Proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

# Proteção contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Bloqueia traceroute
iptables -A INPUT -p udp --dport 33435:33525 -j DROP

# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A INPUT -m state --state INVALID -j DROP

# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

# Fecha as portas udp de 1 a 1024
iptables -A INPUT -p udp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 59229 -j DROP

# Compartilha a web na rede interna e ativa o proxy transparente
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 80 -j REDIRECT --to-port 3128

# Bloqueia tudo
iptables -A INPUT -p tcp --syn -j DROP
iptables -A OUTPUT -p tcp --syn -j DROP
iptables -A FORWARD -p tcp --syn -j DROP

# ----------------------------------------------------------------
# Bloqueia ping
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# ----------------------------------------------------------------
echo "Firewall carregado..."

EOF

cleberrecebe

#1
Fala velhote,

      Tudo lindo porém como definiu a regra de política default forward como DROP em  "iptables -P FORWARD DROP" precisa colocar na tabela filter o accept do forward para sua rede ou os protocolos que deseja liberar hehe, mas tá tudo show, vamos lá :

iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -j ACCEPT

se não o pacote não consegue passar para a outra interface ;-)

e só complementando a parte de bloqueia tudo é redundante quando se define a politica padrão como DROP:

# Politica padrao
iptables -P INTPUT DROP
iptables -P FORWARD DROP

# Bloqueia tudo
iptables -A INPUT -p tcp --syn -j DROP
iptables -A FORWARD -p tcp --syn -j DROP

AIUHAuihaIUHAI, falta só criar um script start stop restart para este firewall =D aí fica show !

abraço !

sosouteiro

#2
Citação de: linuxerbel online 19 de Julho de 2009, 02:38
Caros amigos,

Estou configurando um pequeno servidor para compartilhar a internet e proxy cache com squid, tudo  ia perfeitamente, até qdo resolvi acrescentar o firewall. primeiramente compartilhei a internet como os comando abaixo no arquivo /etc/rc.local:

modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 80 -j REDIRECT --to-port 3128

Depois resolvi acrescentar no mesmo arquivo /etc/rc.local, acrescentar o firewall e depois disso o servidor parou de compartilhar. O que será que tem de errado? segue abaixo o firewall.

até mais

echo "Carregando o firewall..."

# Carregando os módulos
modprobe ip_tables
modprobe iptable_nat

# Limpando todas as tabelas e regras
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# Politica padrao
iptables -P INTPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


# Interface de loopback
iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

# Abre para uma faixa de endereços da rede local

iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT

# Proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

# Proteção contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Bloqueia traceroute
iptables -A INPUT -p udp --dport 33435:33525 -j DROP

# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A INPUT -m state --state INVALID -j DROP

# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

# Fecha as portas udp de 1 a 1024
iptables -A INPUT -p udp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 59229 -j DROP

# Compartilha a web na rede interna e ativa o proxy transparente
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 80 -j REDIRECT --to-port 3128


# Bloqueia tudo
iptables -A INPUT -p tcp --syn -j DROP
iptables -A OUTPUT -p tcp --syn -j DROP
iptables -A FORWARD -p tcp --syn -j DROP

# ----------------------------------------------------------------
# Bloqueia ping
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# ----------------------------------------------------------------
echo "Firewall carregado..."

EOF

Cara, você ta dropandoo FORWARD e o INPUT antes das regras de liberação da faixa de IPs. Assim nunca irá funcionar, você não pode bloquear e mais na frente informar que tem que liberar a entrada de informação, o INPUT ou o FORWARD.

Verifique as placas de rede das duas linhas em azul, veja se a sua placa de rede local está correta.

junniox

Olá...
Não respondendo à sua pergunta mas dando uma pequena sugestão...
IPTABLES é muito chato de configurar na mão, existe uma ferramenta gráfica excelente para isso que é o Firestarter

sudo apt-get install firestarter

Aplicativos >> Internet >> Firestarter

Daí é só configurar!

Abraços