Script Firewall - Regras do Iptables

Publicado por marilene franklin de melo (última atualização em 06/01/2012)

[ Hits: 12.600 ]

Homepage: http://admnetworks.blogspot.com/

Download 5292.firewall.sh




Olá pessoal, sou nova aki e gostaria de contribuir e ver a opinião de vocês sobre esse script de firewall.
Tenho algumas duvidas sobre se existe erros graves que possa prejudicar a minha rede em questão de segurança.
O script baseia-se no seguinte: Lan empresarial

1 firewall com SSH (eth0-eth1) 192.168.0.1/24 - eth1
1 proxy 192.168.0.3/24
1 S. web com SSH 192.168.0.11/24
1 S.SSh 192.168.0.12/24
Internet 200.200.0.0/8

Lan Domestica:
2 pcs 192.168.0.0/24
1 gateway 192.168.0.254/24

O proposito dessas redes e de que se comuniquem saindo pela internet.
Agradeço desde de já aqueles que quiserem deixar sua opinião. Esse script originalmente é do meu professor de redes e foi dado com a intenção de modifica-lo para ser usado num trabalho, fiz as devida modificações, e esse foi o resultado, por enquanto, pois pretendo trabalhar ainda mais encima dele. Qualquer modificação ire postar aki.
Bjos

  



Esconder código-fonte

#!/bin/sh 

echo "NICIANDO FIREWALL"

# Fechando cadeias
iptables -P INPUT DROP 
iptables -P OUTPUT ACCEPT 
iptables -P FORWARD DROP 

#Limpando as chain
iptables -F 
iptables -F INPUT 
iptables -F OUTPUT 
iptables -F FORWARD 
iptables -F -t mangle 
iptables -X 

# Cadeia criada para tratar LOOPBACK
iptables -N LOOPBACK 
iptables -F LOOPBACK 
iptables -A LOOPBACK -i lo -j ACCEPT 
iptables -A INPUT -i lo -j LOOPBACK
iptables -A OUTPUT -o lo -j LOOPBACK

# Cadeia criada para tratar algumas entradas de Log
iptables -N DROPLOG 
iptables -F DROPLOG 
iptables -A DROPLOG -p udp --dport 137:139 -j DROP 
iptables -A DROPLOG -p tcp ! --syn --sport 80 --dport 1024: -j ACCEPT 
iptables -A DROPLOG -p tcp -j DROP 
iptables -A DROPLOG -p udp -j DROP 
iptables -A DROPLOG -j DROP 

# Cadeia criada para tratar ICMP
iptables -N DROPICMP 
iptables -F DROPICMP 
iptables -A DROPICMP -j DROP
iptables -A INPUT -p icmp -j DROPICMP 

# Cadeia criada para tratar acesso a internet
ipatbles –N WEB
iptables –F WEB
iptables –A INPUT –p tcp –-dport 80 –j WEB
iptables –A INPUT –p tcp –-dport 443 –j WEB
iptables –A FORWARD –p tcp –-dport 80 –j WEB
iptables –A FORWARD –p tcp –-dport 443 –j WEB
iptables –A WEB –j LOG –log-prefix ”WEB”
iptables –A WEB –j ACCEPT

# Cadeia criada para tratar SSH
iptables –N SSH
iptables –F SSH
iptables –A INPUT –p tcp -–dport 22 -i eth0 –j SSH
iptables –A FORWARD –p tcp -–dport 22 -i eth1 –j SSH
iptables –A SSH –j LOG –log-prefix ”SSH”
iptables –A SSH –j ACCEPT

# Cadeia criada para tratar conexões
iptables -N STATEFUL 
iptables -F STATEFUL
iptables -A INPUT -j STATEFUL
iptables -A FORWARD -j STATEFUL
iptables -I STATEFUL -m state --state ESTABLISHED,RELATED -j ACCEPT 
iptables -A STATEFUL -m state --state NEW ! -i eth0 -j ACCEPT 
iptables -A STATEFUL -j DROP

#Liberando DNS
iptables -A INPUT -p udp --sport 53 -j DNS 
iptables -A INPUT -p udp --sport 5353 --dport 5353 -j DNS 
iptables -A FORWARD -p udp --dport 53 -j DNS 

# Liberando Rede Interna
iptables -A INPUT -s 192.168.0.0/24  -j ACCEPT 
iptables -A INPUT -d 192.168.0.0/24  -j ACCEPT 

# Regras na input para tratar certos tipos de protocolo icmp
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT 
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT 
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT 
iptables -A OUTPUT -p icmp -m state --state INVALID -j DROP 

# Regra de Saída com ips mascarados
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#regras de Entrada: redirecionamento de tudo que entrar por essas portas irão para o proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3128

#Regras de alterações especiais de pacotes (modifica tipo de serviços)
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 20 -j TOS --set-tos Maximize-Throughput 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 22 -j TOS --set-tos Maximize-Throughput 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 80 -j TOS --set-tos Maximize-Throughput 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 119 -j TOS --set-tos Maximize-Throughput 

iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 21 -j TOS --set-tos Minimize-Delay 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 22 -j TOS --set-tos Minimize-Delay 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 25 -j TOS --set-tos Minimize-Delay 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 25 -j TOS --set-tos Minimize-Delay 
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 53 -j TOS --set-tos Minimize-Delay 
iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 53 -j TOS --set-tos Minimize-Delay

iptables -A PREROUTING -t mangle -p tcp --sport 20 -j TOS --set-tos Maximize-Throughput 
iptables -A PREROUTING -t mangle -p tcp --sport 80 -j TOS --set-tos Maximize-Throughput

iptables -A PREROUTING -t mangle -p tcp --sport 22 -j TOS --set-tos Minimize-Delay 
iptables -A PREROUTING -t mangle -p tcp --sport 23 -j TOS --set-tos Minimize-Delay

echo "FIREWALL INICIADO________[OK]"

Scripts recomendados

Unificando arquivos de bloqueio e liberação no squid

Enviando comandos para máquinas da rede

Script de busca (google em shell)

instalando o unbound dns no debian via script

Limpando o Squid no Ubuntu


  

Comentários
[1] Comentário enviado por Nander em 14/09/2013 - 06:54h

O uma coisa me intrigou com essa regra abaixo:
# Liberando Rede Interna
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT

o INPUT é direcionado para o firewall ( ou seja acesso a ELE) então o INPUT -s $REDE vc diz que recebe conexões dessa rede, ssh, http e etc.

Mas o INPUT -d $REDE não estaria errado ???

Atenciosamente

Ernander


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts