Ajuda com o Script Firewall

1. Ajuda com o Script Firewall

Christopherson F. da Cruz
Khrugger

(usa Ubuntu)

Enviado em 03/08/2009 - 17:01h

Gostaria que me ajudassem com relação ao script do meu firewall, recentemente fiz um curso sobre linux, porém meu script ficou incompleto, pois no curso não deu tempo de pegar o script inteiro!!
estou postando ele aki, se puderem me ajudar a implementá-lo fico muito feliz!!

#!/bin/sh
echo "iniciando firewall"
echo "limpando regras"
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat

echo "bloqueando tudo"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

echo "liberando ping"
iptables -A INPUT -p icmp -s 0/0 -d 192.168.0.2 -j ACCEPT
iptables -A OUTPUT -p icmp -s 192.168.0.2 -d 0/0 -j ACCEPT

echo "liberando loopback"
iptables -A INPUT -i lo -j ACCEPT

echo "liberando portas"
iptables -A INPUT -p tcp --dport 80 -s 0/0 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -s 0/0 -j ACCEPT

echo "liberando dns"
iptables -A FORWARD -p udp --dport 53 -s 0/0 -j ACCEPT

echo "liberando rede interna"
iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j ACCEPT

echo "compartilhando a Internet na rede"
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

echo "ativar roteamento no Kernel"
echo 1 > /proc/sys/net/ipv4/ip_forward

echo "roteamento default"
route add default gw 192.168.0.1

echo "politicas default"
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT


  


2. Re: Ajuda com o Script Firewall

Jefferson Diego
Diede

(usa Debian)

Enviado em 03/08/2009 - 17:10h

Você está repetindo regras...
pode apagar estas:
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT

EDIT: Eu li meu post e resolvi editar:
Não é que estas regras sejam equivalentes, mas são excludentes. Você bloqueou tudo e ao fim liberou tudo nas política padrões, o que de fato equivale a não ter firewall, já que ele é todo baseado em "ACCEPTs".

Pois equivalem a estas:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

Como você dropou tudo, adicione uma regra para permitir pacotes related,established:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT


3. Re: Ajuda com o Script Firewall

Christopherson F. da Cruz
Khrugger

(usa Ubuntu)

Enviado em 03/08/2009 - 17:28h

Muito obrigado amigo!! farei isto!
mas uma dúvida:
Para que seriam estas novas regras que vc me passou???

essas regras que me pediu para retirar, elas não seriam específicamente para a tabela nat??


4. Re: Ajuda com o Script Firewall

Genesco Sousa
gesousa

(usa Ubuntu)

Enviado em 03/08/2009 - 17:46h

Não as regras aqui adotadas :

echo "politicas default"
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT

seria a mesma coisa das regras abaixo...

echo "bloqueando tudo"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

sendo que como a primeita da ordem é a bloqueando tudo será ela que será adotado ... a unica que se refere a tabela nat é a forward.


As outras regras de estado, diz que uma conexão criada e requisitada por alguma maquina deve ser mantida...


5. Re: Ajuda com o Script Firewall

Christopherson F. da Cruz
Khrugger

(usa Ubuntu)

Enviado em 03/08/2009 - 17:55h

Muito obrigado amigo!
consegui entender...


6. Re: Ajuda com o Script Firewall

Christopherson F. da Cruz
Khrugger

(usa Ubuntu)

Enviado em 03/08/2009 - 18:01h

Após eu fazer isso, perdi conexão para a porta 22 (ssh) e porta 901 (Swat), o que devo fazer??


7. Re: Ajuda com o Script Firewall

Christopherson F. da Cruz
Khrugger

(usa Ubuntu)

Enviado em 04/08/2009 - 09:16h

além disso, perdi acesso a pastas compartilhadas pelo samba!


8. Re: Ajuda com o Script Firewall

Jefferson Diego
Diede

(usa Debian)

Enviado em 04/08/2009 - 10:09h

Quanto ao ponto da excludência das regras:

A política default é diferente das outras regras (afinal ela é uma política, não uma regra).
Em regras padrões, você pode adicionar infinitas regras iguais, e todas seriam carregadas pelo kernel.
Como esta:
iptables -A INPUT -p tcp -j ACCEPT
Se você copiar e adicionar esta regra mais 1000 vezes, perceberá com um "iptables-save" que existirão 1000 delas, apesar de só a primeira ser processada, por conta do modo linear de processamento das regras.
Agora, como a tabela padrão do iptables é a filter, "iptables -P INPUT ACCEPT" é o mesmo que "iptables -t filter -P INPUT ACCEPT"
O fato é que ao definir uma política padrão pela segunda vez, a segunda substitui a primeira, e por ela ser uma política, não importa em qual lugar do script ela esteja, será sempre a última regra a ser "testada".
O que tentei dizer é que se você colocar:

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

e depois:

iptables -t filter -P INPUT ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT

As políticas que entrarão em vigor serão as 3 últimas, de ACCEPT, pois políticas se substituem.

Agora, quanto a estrutura do firewall:

Se as políticas padrões estiverem em DROP, você deve basear as regras em ACCEPT.
E vice-versa (se as políticas forem ACCEPT, você deve basear as regras em DROP).

Se você mantiver as regras "iptables -P INPUT DROP" "iptables -P OUTPUT DROP" "iptables -P FORWARD DROP", adicione as seguintes para liberar acesso:
#SSH:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

#SWAT:
iptables -A INPUT -p tcp --dport 901 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 901 -j ACCEPT

#SAMBA:
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A OUTPUT -p udp --dport 137 -j ACCEPT
iptables -A OUTPUT -p udp --dport 138 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 445 -j ACCEPT

Se ainda houver qualquer impossibilidade de conexão, poste a saída do seu "iptables-save"






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts