Firewall

Publicado por Everton 01/09/2004

[ Hits: 7.184 ]

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

Loadbalance FAILOVER V.5

Conversor de arquivos de vídeo (Video Converter)

Firewall com iproute2 para 2 links com ip fixo

Agenda desenvolvida em Shell Script

O que fazer após instalar o Debian 8 - versão em Shell Script


  

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