Firewall

Publicado por Everton 01/09/2004

[ Hits: 7.195 ]

Download firewall




Firewall Básico

Permite somente a passagem de serviços http nas portas 80 e 443.
Serviços pop e smtp nas portas 110 e 25 com servidores espeíficos
Ssh somente do ip do administrador
Nat-Masquerade, ip-forward, Consulta DNS, etc.

Vale apenas confertir.

Facil de configurar.

É so mudar as variáveis.ssh iserver

Arquivo comentado.

Espero que ajude!!!

Seja Livre!!!

Use Linux!!!

  



Esconder código-fonte

#!/bin/bash
#
#chkconfig: 345 56 46
#
#
#***********************************************************************
#
# Firewall v 1.00
# By EVM-Tech Informática / Linux Service Network
# Everton Pestana de Moraes
# Shell script to Packet Filtering with Iptables
#
# This file may be distributed under the terms of the GNU General
# Public License.
#
# LIC: GPL
#Pode ser distribuido a Alterado Livremente desde que seja 
#conservado o Autor e comentadas as devidas alterações.
#
# Usage: firewall (start|stop|restart|shutdown)
#
#***********************************************************************
#
. /etc/rc.d/init.d/functions
#
#Interface Interna
IINT=eth0
RINT=192.168.0.0/24
#Interface Externa
IEXT=ppp0
#Interface ADSL
IADSL=eth1
IPADM=192.168.0.1
POPT=pop.rio.terra.com.br
SMTPT=smtp.rio.terra.com.br
POPI=pop3.ig.com.br
SMTPI=smtp.ig.com.br
POPB=pop3.bol.com.br
SMTPB=smtp.bol.com.br
POPU=pop3.uol.com.br
SMTPU=smtp.uol.com.br
#
IPT=/usr/sbin/iptables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#
case "$1" in
#
start)
echo -n "Iniciando Firewall"
#
#Removendo Regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
#
#Zerando Contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
#
#Definindo Política de Segurança Padrão
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
#
#Ativando MASQUERADE
$IPT -t nat -A POSTROUTING -o $IEXT -j MASQUERADE
#
# Ativando FORWARD de Pacotes
/sbin/sysctl -w net.ipv4.ip_forward=1 > /dev/null
#
#
#Permitindo Consulta ao DNS
#
$IPT -A INPUT -s $RINT -p udp --sport 1024:65535 --dport 53 -j ACCEPT 
$IPT -A INPUT -i $IEXT -p udp --sport 53 --dport 53 -j ACCEPT 
$IPT -A INPUT -i $IEXT -p udp --sport 53 --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -o $IEXT -p udp -m udp --dport 53 -j ACCEPT 
#
#Permitindo SSH
#
$IPT -A INPUT -p tcp -s $IPADM --sport 1024:65535 --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 22 -d $IPADM --dport 1024:65535 -j ACCEPT
#
#Permitindo acesso WEB
#
$IPT -A INPUT -d $RINT -i $IEXT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A INPUT -d $RINT -i $IEXT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A INPUT -d $RINT -i $IEXT -p tcp -m tcp --sport 443 --dport 1024:65535 -j ACCEPT 
$IPT -A INPUT -d $RINT -i $IINT -p tcp -m tcp --sport 443 --dport 1024:65535 -j ACCEPT 
$IPT -A FORWARD -s $RINT -i $IINT -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT 
$IPT -A FORWARD -d $RINT -i $IEXT -o $IINT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A FORWARD -s $RINT -i $IINT -o $IEXT -p tcp -m tcp --dport 80 -j ACCEPT 
$IPT -A FORWARD -i $IEXT -o $IINT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A FORWARD -s $RINT -i $IINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 443 -j ACCEPT 
$IPT -A FORWARD -d $RINT -i $IEXT -o $IINT -p tcp -m tcp --sport 443 --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IINT -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT 
$IPT -A OUTPUT -d $RINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 443 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IINT -p tcp -m tcp --sport 1024:65535 --dport 443 -j ACCEPT 
#
#Permitindo acesso Mail
#Terra
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPT --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPT --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPT --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPT --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#IG
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPI --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPI --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPI --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPI --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#BOL
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPB --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPB --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPB --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPB --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#UOL
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPU --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPU --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPU --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPU --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#
#Diversos
#
$IPT -A INPUT -s $RINT -d $RINT -j ACCEPT 
$IPT -A OUTPUT -d $RINT -o $IINT -p udp -m udp --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -d $IPADM -p tcp -m tcp --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -d $RINT -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT 
#
echo_success
echo -ne \\n
;;
stop)
echo -n "Parando o Firewall"
#
# Removendo as Regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
#
# Zerando os contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
#
#Definindo Política de Segurança Padrão
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
#
# Desativando FORWARD de Pacotes
/sbin/sysctl -w net.ipv4.ip_forward=0 > /dev/null
#
#Ativando MASQUERADE
$IPT -t nat -A POSTROUTING -o $IEXT -j MASQUERADE
#
echo_success
echo -ne \\n
;;
restart)
echo -n "Parando o Firewall"
#
# Removendo as Regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
#
# Zerando os contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
#
# Ativando FORWARD de Pacotes
/sbin/sysctl -w net.ipv4.ip_forward=0 > /dev/null
#
#Ativando MASQUERADE
$IPT -t nat -A POSTROUTING -o $IEXT -j MASQUERADE
#
echo_success
echo -ne \\n
#
echo -n "Reiniciando Firewall"
#
#Removendo Regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
#
#Zerando Contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
#
#Definindo Política de Segurança Padrão
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
#
#Ativando MASQUERADE
$IPT -t nat -A POSTROUTING -o $IEXT -j MASQUERADE
#
# Ativando FORWARD de Pacotes
/sbin/sysctl -w net.ipv4.ip_forward=1 > /dev/null
#
#
#Permitindo Consulta ao DNS
#
$IPT -A INPUT -s $RINT -p udp --sport 1024:65535 --dport 53 -j ACCEPT 
$IPT -A INPUT -i $IEXT -p udp --sport 53 --dport 53 -j ACCEPT 
$IPT -A INPUT -i $IEXT -p udp --sport 53 --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -o $IEXT -p udp -m udp --dport 53 -j ACCEPT 
#
#Permitindo SSH
#
$IPT -A INPUT -p tcp -s $IPADM --sport 1024:65535 --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp --sport 22 -d $IPADM --dport 1024:65535 -j ACCEPT
#
#Permitindo acesso WEB
#
$IPT -A INPUT -d $RINT -i $IEXT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A INPUT -d $RINT -i $IEXT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A INPUT -d $RINT -i $IEXT -p tcp -m tcp --sport 443 --dport 1024:65535 -j ACCEPT 
$IPT -A INPUT -d $RINT -i $IINT -p tcp -m tcp --sport 443 --dport 1024:65535 -j ACCEPT 
$IPT -A FORWARD -s $RINT -i $IINT -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT 
$IPT -A FORWARD -d $RINT -i $IEXT -o $IINT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A FORWARD -s $RINT -i $IINT -o $IEXT -p tcp -m tcp --dport 80 -j ACCEPT 
$IPT -A FORWARD -i $IEXT -o $IINT -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT 
$IPT -A FORWARD -s $RINT -i $IINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 443 -j ACCEPT 
$IPT -A FORWARD -d $RINT -i $IEXT -o $IINT -p tcp -m tcp --sport 443 --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IINT -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT 
$IPT -A OUTPUT -d $RINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 443 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IINT -p tcp -m tcp --sport 1024:65535 --dport 443 -j ACCEPT 
#
#Permitindo acesso Mail
#Terra
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPT --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPT --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPT --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPT --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#IG
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPI --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPI --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPI --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPI --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#BOL
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPB --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPB --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPB --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPB --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#UOL
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $POPU --dport 110 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $POPU --sport 110 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
$IPT -A FORWARD -p tcp -s $RINT --sport 1024:65535 -i $IINT -d $SMTPU --dport 25 -o $IEXT -j ACCEPT
$IPT -A FORWARD -p tcp -s $SMTPU --sport 25 -i $IEXT -d $RINT --dport 1024:65535 -o $IINT -j ACCEPT
#
#Diversos
#
$IPT -A INPUT -s $RINT -d $RINT -j ACCEPT 
$IPT -A OUTPUT -d $RINT -o $IINT -p udp -m udp --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -d $IPADM -p tcp -m tcp --dport 1024:65535 -j ACCEPT 
$IPT -A OUTPUT -s $RINT -d $RINT -j ACCEPT 
$IPT -A OUTPUT -s $RINT -o $IEXT -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT 
#
echo_success
echo -ne \\n
;;
shutdown)
echo -n "Desligando o Firewall"
#
#Removendo Regras
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
#
#Zerando Contadores
$IPT -Z
$IPT -t nat -Z
$IPT -t mangle -Z
#
#Definindo Política de Segurança Padrão
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
#
#Ativando MASQUERADE
$IPT -t nat -A POSTROUTING -o $IEXT -j MASQUERADE
#
# Ativando FORWARD de Pacotes
/sbin/sysctl -w net.ipv4.ip_forward=1 > /dev/null
#
echo_success
echo -ne \\n
#
;;
*)
echo "Uso firewall (start | stop | restart | shutdown)"
;;
esac

Scripts recomendados

Conversor de log SVN para RSS

Gerando lista de arquivos mp3 do disco em arquivo de formato HTML

monitor apache

Configurando Adaptador USBSerial no Ubuntu usando udev

index para mrtg


  

Comentários
[1] Comentário enviado por ygorth em 12/01/2005 - 10:01h

TO dando uma olhada .. parace interessante!

[2] Comentário enviado por nilsoncastro em 24/03/2006 - 17:01h

Script legal porém dá pra dar uma otimizada, criando as funções start e stop, aí no restart so era chamar stop depois start.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts