POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - SCRIPT DO IPTABLES
Publicado por Alessandro Dias 17/05/2005
[ Hits: 3.808 ]
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 ####
Script para automatizar OpenVpn
Adicionar máquinas em lote no SAMBA
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)