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

Publicado por Alessandro Dias 17/05/2005

[ Hits: 3.966 ]

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

Script de Backup que compacta Segmentado.

Tabela de cores em shellscript

Fazer backup de todas base de dados no PostgreSQL

Cadastrando usuários para email no Slackware de forma mais simples

Envio de email via console


  

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