POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - SCRIPT DO IPTABLES
Publicado por Alessandro Dias 17/05/2005
[ Hits: 3.797 ]
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.
#! /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 ####
Backup completo e automatizado da base de dados do ZODB
Fazendo Failover entre 2 Links
Fazendo backup de uma pasta em arquivos separados
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta