Firewall Iptables

Publicado por Joel Silva da Silva Junior 02/04/2009

[ Hits: 7.604 ]

Download firewall.sh.new




Script para Iptables.

  



Esconder código-fonte

#!/bin/bash

#################################
# Firewall - V.3                #
# Write by: Joel Silva          #
# Mail: sonic_novel@hotmail.com #
# Manaus-AM                     #
#################################

#############################
#         Programas:        #
#############################

firewall=/root/firewall.sh
iptables=/usr/sbin/iptables
modprobe=/sbin/modprobe

################################
#    Parametros da Rede:       #
################################

NET_IF=eth0
LAN_IF=eth1
PORTAS_LIBERADAS="20,21,22,143,443,80,25,110,8080"
IP_SOURCE="192.168.100.0/24"
IP_LIBERADO="/etc/firewall/ips"
IP_BLOQUEADO="/etc/firewall/bloqueados"

###############################
#    Carregando Modulos:      #
############################### 

$modprobe ip_tables
$modprobe ip_nat
$modprobe ip_nat_ftp
$modprobe ip_conntrack_ftp
$modprobe ipt_MASQUERADE
$modprobe ipt_REJECT
$modprobe ipt_LOG
$modprobe iptable_filter
$modprobe arp_tables
$modprobe ipt_TOS

################################
#    Parametros do Firewall:   #
################################
   

   echo      " Ativando Roteamento de Pacotes no Kernel:   "
   

echo "1" > /proc/sys/net/ipv4/ip_forward

   
   echo      " Feito!      "


firewall_stop () {

   if [ -ex $firewall ]; then

   $firewall_stop


   echo       " Limpando Regras!   "



   echo      " Feito!      "


   fi

}


##########################################
##########################################


##########################################
##########################################
            
firewall_start () {

if [ -ex $firewall ]; then

   echo        " Iniciando Firewall   "

   $firewall_start

   echo      " Firewall Iniciado   "

fi
   }


   echo       " Liberando Conexoes:   "


for i in `cat $IP_LIBERADO`; do


   STATUS=`echo $i | cut -d '-' -f 1`
   IP=`echo $i | cut -d '-' -f 2`
   CLIENTE=`echo $i | cut -d '-' -f 3`


if [ $STATUS="a"  ]; then

$iptables -A INPUT   -s $IP -d 0/0 -j ACCEPT
$iptables -A FORWARD -s $IP -d 0/0 -j ACCEPT
$iptables -A OUTPUT  -s $IP -d 0/0 -j ACCEPT
$iptables -t nat -A POSTROUTING -s $IP -d 192.168.100.254 -j MASQUERADE
$iptables -t nat -A PREROUTING  -p tcp -d $IP --dport 80 \
      -j REDIRECT --to-ports 8080

fi
   done


   echo    "   PERMITIDO - IP:[$IP] - CLIENTE: [$CLIENTE]    "


for i in `cat $IP_BLOQUEADO`;do
   STATUS=`echo $i | cut -d '-' -f 1`
   IP=`echo $i | cut -d '-' -f 2`
   CLIENTE=`echo $i | cut -d '-' -f 3`

##############################################
##############################################

   
   echo         " Bloqueando Conexoes:   "


if [ $STATUS="b" ]; then


$iptables -A INPUT -s $IP -d 0/0 -j REJECT


fi
   done


   echo    "   BLOQUEADO - IP: [$IP] - CLIENTE: [$CLIENTE]   "

#######################################################
#######################################################

   echo       " Liberando Portas:   "



$iptables -A INPUT   -m multiport -p tcp --port $PORTAS_LIBERADAS -j ACCEPT
$iptables -A FORWARD -m multiport -p tcp --port $PORTAS_LIBERADAS -j ACCEPT
$iptables -A OUTPUT  -m multiport -p tcp --port $PORTAS_LIBERADAS -j ACCEPT


   echo      " Feito!      "


#######################################################
#######################################################

##########################
# Regras de Start/Stop   #
##########################


case "$1" in

'start')

$firewall_start
;;

'stop')

$firewall_stop

$iptables -F
$iptables -F -t nat
$iptables -F -t filter
;;

'restart')

$firewall_stop
$firewall_start
;;

*)

   echo   " Usage $0 start | stop | restart   "
;;

esac


Scripts recomendados

Criar .deb para sua aplicação

Expect-Bash

Compilação PHP 5.x.x

Script de Instalação de Layer7 no CentOS 6.0

Liberação do servidor DNS no firewall


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts