POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - SCRIPT DO IPTABLES

Publicado por Alessandro Dias 17/05/2005

[ Hits: 3.800 ]

Download iptables




script de firewall que bloqueia os usuários através do IP. Esse script é alterado automaticamente pelo script clam-filter.sh quando chega uma msg com vírus. Esse script deve ser colocado em /etc/rc.d/init.d/ e pode ser utilizado o comando 'service' para iniciá-lo.

  



Esconder código-fonte

#! /bin/sh
##############################################
#============================================#
#=                                          =#
#=            Firewall Iptables             =#
#=                                          =#
##############################################
#
#=========================================================================


##########################
# DEFINIÇÃO DE VARIÁVEIS #
##########################

IPTABLES="/usr/sbin/iptables"
MODPROBE="/sbin/modprobe"

########################
#   CARGA DE MÓDULOS   #
########################
carrega_modulos() 
{
$MODPROBE ip_tables
$MODPROBE iptable_filter
$MODPROBE iptable_nat
$MODPROBE ip_nat_ftp
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
}

########################
#   CARGA DE REGRAS    #
########################
cria_regras()
{
echo "Iniciando Firewall..."
  cria_regras_INPUT
}
#############################
# FLUSH E POLÍTICAS DEFAULT #
#############################
destroi_regras()
{
  echo -e "\n\nFecha o Firewall totalmente para FORWARD e INPUT..."
  # define política defaults para chains defaults
  $IPTABLES -P INPUT ACCEPT    # política default para filter
  $IPTABLES -P FORWARD ACCEPT  # política default para filter
  $IPTABLES -P OUTPUT ACCEPT   # política default para filter
  $IPTABLES -F -t filter       # flush nas regras de filter
  $IPTABLES -F -t nat          # flush nas regras de nat
  $IPTABLES -F -t mangle       # flush nas regras de mangle
  $IPTABLES -X -t filter       # deleta chains de filter
  $IPTABLES -X -t nat          # deleta chains de nat
  $IPTABLES -X -t mangle       # deleta chains de mangle
  $IPTABLES -Z -t filter       # zera contadores de filter
  $IPTABLES -Z -t nat          # zera contadores de nat
  $IPTABLES -Z -t mangle       # zera contadores de mangle
}

abre_regras()
{
  echo -e "\n\nAbre o Firewall..."
  # define política defaults para chains defaults
  $IPTABLES -P INPUT DROP    # política default para filter
  $IPTABLES -P FORWARD DROP  # política default para filter
  $IPTABLES -P OUTPUT DROP   # política default para filter
  $IPTABLES -F -t filter       # flush nas regras de filter
  $IPTABLES -F -t nat          # flush nas regras de nat
  $IPTABLES -F -t mangle       # flush nas regras de mangle
  $IPTABLES -X -t filter       # deleta chains de filter
  $IPTABLES -X -t nat          # deleta chains de nat
  $IPTABLES -X -t mangle       # deleta chains de mangle
  $IPTABLES -Z -t filter       # zera contadores de filter
  $IPTABLES -Z -t nat          # zera contadores de nat
  $IPTABLES -Z -t mangle       # zera contadores de mangle
}

########################
#    CHAINS DE INPUT   #
########################
cria_regras_INPUT()
{
  echo "Regras de INPUT ..."
  #IPS_REJ_WEBMAIL - Aqui o sistema coloca as regras de REJECT conforme chegam msgs c/ virus
  #IPS_REJEITADOS - Aqui o sistema coloca as regras de REJECT conforme chegam msgs c/ virus
  $IPTABLES -A INPUT -j REJECT -s 10.78.5.38 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.4.93 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.67.4.26 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.7.161 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.67.57.1 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.6.174 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.67.107.65 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.67.0.11 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.4.67 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.7.182 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.6.152 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.40.4.17 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.5.65 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.89.8.250 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.7.233 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.4.189 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.1.121.153 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.6.158 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.1.8.154 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.47.21.17 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.67.105.208 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.78.5.45 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.89.8.140 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.89.8.21 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.46.246.99 -p tcp --dport 25
  $IPTABLES -A INPUT -j REJECT -s 10.67.12.73 -p tcp --dport 25
  ############################################################
$IPTABLES -A INPUT -j ACCEPT -s 10.0.0.0/8 -p tcp -m multiport --dport http,https,smtp
}

####################
# SCRIPT PRINCIPAL #
####################

  # checa se o pacote iptables foi instalado
  if [ ! -x "$IPTABLES" ]; then
    echo "O executável $IPTABLES não existe!" 
    exit 1
  fi

  # Não insere regras se o módulo IPCHAINS estiver carregado
  if /sbin/lsmod 2>/dev/null | grep -q ipchains; then
     echo "Descarregue o módulo IPCHAINS para o netfilter!"
     exit 1
  fi

  if ! carrega_modulos; then
     echo "Não consegui carregar os módulos do IPTABLES!"
     exit 1
  fi

# Inicio do CASE
case "$1" in
   free)
echo "Libera todos os pacotes..."
echo 1 > /proc/sys/net/ipv4/ip_forward
carrega_modulos
$IPTABLES -t filter -A INPUT -j ACCEPT
$IPTABLES -t filter -A FORWARD -j ACCEPT
$IPTABLES -t filter -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
echo "Ok"
   ;;
   start)
echo -n "Configurando regras do firewall:"
destroi_regras && cria_regras
touch /var/lock/subsys/iptables
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Ok"
   ;;
   stop)
echo "Removendo regras e abrindo firewall:"
abre_regras
rm -f /var/lock/subsys/iptables
echo "Ok"
   ;;
   status)
echo -e "\nApresentação do status do IPTABLES:\n"
$IPTABLES --list -n
$IPTABLES --list -n > STATUS
echo -e "\nStatus Gravado no arquivo STATUS." 
echo "Utilize o comando: vi STATUS" 
echo "Ok"
   ;;
   restart)
echo "Isso não é um daemon, não precisa de stop! Então:"
$0 start
echo "Ok"
   ;;
   *)
   echo "Use o Comando:"
        echo;echo "    iptables (status|start|stop|free|backup|restore)"
esac
exit 0
#### FIM DO SCRIPT PRINCIPAL ####

Scripts recomendados

Aplicando layer7 sem digitar uma linha de código sequer

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO

mountcp.sh

Baixar pdf do "slide share" sem login usando shell script

Atualização automática do Slackware


  

Comentários
[1] Comentário enviado por diaspcf em 07/05/2007 - 15:28h

Caro Usuário,
Tente pegar o script a partir do código fonte, pois parece que o link está quebrado.
Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts