POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - SCRIPT DO IPTABLES
Publicado por Alessandro Dias 17/05/2005
[ Hits: 3.904 ]
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 ####
Gerador de PPP para USB (Palm OS e Pocket PC)
Backup de arquivos do Linux para um servidor FTP
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Iinstalar o Scanner Kodak i940 no Linux Mint 19/20? (3)
Pastas da raiz foram para a área de trabalho (4)
usb's param de funcionar do nada (6)
Como criar condições de monitoria de 2 IPs no Zabbix (0)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (2)