Firewall Iptables

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

[ Hits: 7.749 ]

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

Compara colunas e mostra a maior

Kernel 4.0 para Ubuntu, Linux Mint, Lubuntu e derivados

Script de configuração de DNS

Teste de atividade e funcionamento de portas através do Nmap

Montando sua máquina virtual para engenharia reversa em Linux


  

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