Firewall Iptables

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

[ Hits: 7.623 ]

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

Identifica contatos do google que necessitam de ajustes para o nono digito telefonico

Backup de Repositórios Subversion

Raiz Quadrada (Square Root) para Bash

Script para fazer download de vídeos do YouTube

Instalando docker


  

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