Firewall Iptables

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

[ Hits: 7.462 ]

Download firewall.sh.new




Script para Iptables.

  



Esconder código-fonte

#!/bin/bash

#################################
# Firewall - V.3                #
# Write by: Joel Silva          #
# Mail: [email protected] #
# 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

INSTALADOR TAR BZ2

Sincronização entre Servidores de Impressão

Script - Shell

Ajuste de brilho do monitor

Gerar arquivos CSV no postgresql


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário