Iptables (firewall)

Script firewall com suporte a proxy transparente

Categoria: Init

Software: Iptables

[ Hits: 13.460 ]

Por: Perfil removido


Script firewall com suporte a proxy transparente, possui liberação das portas 21, 22, 80 para o servidor firewall, além de oferecer as opções de start, stop, restart do firewall.


#!/bin/bash

iniciar(){

#carregando modulo no kernel
modprobe iptable_nat

#compartilhando a conexao
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#echo "compartilhamento de rede ativo"

#proxy transparente
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#echo "proxy transparente ativo"

#permitindo as conexoes na interfce de rede local e na porta 22, 21 e 80 deste computador
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Protecao contra ICMP Broadcasting 
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Protecao diversas contra portscanners, ping of death, ataques DoS, pacotes danificados e etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP

#Esta regra e a + importante deste firewall,
#bloqueia tudo que nao tenha sido liberado acima
iptables -A INPUT -p tcp --syn -j DROP

echo "####################################"
echo "#Compartilhamento de Internet e Firewall Carregados#"
echo "#                Firewall Ativo e Verificando !                  #"
echo "#------------------------------------------------------------#"
echo "#                 Tássio Ferenzini M. Sirqueira                #"
echo "#                        tassio@tassio.eti.br                      #"
echo "###################################"

}

parar(){
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo " "
echo "#################################"
echo "#Compartilhamento de Internet e Firewall Parados#"
echo "#                     Firewall Desativado                      #"
echo "#--------------------------------------------------------#"
echo "#               Tássio Ferenzini M. Sirqueira              #"
echo "#                      tassio@tassio.eti.br                    #"
echo "#################################"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start, stop ou restart"
esac
  


Comentários
[1] Comentário enviado por elgio em 18/01/2010 - 08:53h

Esta regra ai:
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

É BOMBÁSTICA!
Estás limitando pacotes tcp (de qualquer tipo) a taxa de apenas 1 por segundo!! Completamente INSANO!

Só não te trouxe sérios (SERÍSSIMOS!!!) problemas porque o gancho FORWARD não está em DROP (tudo é aceito). Se colocar uma regra bloqueando tudo para o FORWARD, como fizeste com o INPUT (iptables -A INPUT -p tcp --syn -j DROP) tu terias problemas pra caramba!!

Resumindo:
- a regra não está ativa
- se tivesse, derrubaria tuda a tua rede

:-o

[2] Comentário enviado por removido em 29/12/2010 - 03:47h

O meu amigo pelo menos eu não vi no seu script a liberação pra própia maquina (interface de loopback) ....
iptables -A INPUT -i lo(de loopback) -j ACCEPT

[3] Comentário enviado por px em 07/08/2013 - 20:09h

Detonou o iptables, agora até windows riria de você kk'

[4] Comentário enviado por slackdebi em 25/08/2013 - 21:29h

na vdd este script de firewall ai esta tudo errado...

[5] Comentário enviado por arrombado em 06/06/2018 - 11:28h

Esse foi o script mais lixo que vi em toda minha vida ! Que tipo de animal faz algo como:

iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.....
.....

Sem comentarios.....


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts