Script Firewall - Regras do Iptables

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

[ Hits: 11.639 ]

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

Administrar squid com autenticação, simples e objetivo.

Claro 3g Sony Ericsson md300 script conexao - Revisado

Plugin do Nagios para checar disco via SNMP

Obter ip a partir de um NO-IP ou DYNDNS e atualizar o endereço do MUNIN MESTRE em um nó linux.

Firefox + Dmix


  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts