Script de firewall
Publicado por Henrique Vieira Leanor (última atualização em 01/02/2010)
[ Hits: 7.043 ]
Homepage: henriqueinside.blogspot.com
Script pronto para ser usado em seu firewall.
#!/bin/bash ## Variáveis IPT=$(which iptables) ET0="192.168.1.112" LO="127.0.0.1" NET="0/0" PA="1024:65535" #----------------------------------------------------------------------- modulos() { echo "### CARREGANDO MÓDULOS ###" modprobe ip_conntrack_ftp modprobe ip_nat_ftp } nega() { echo "### FECHANDO O FIREWALL ###" $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP } limpa() { echo "### ABRINDO O FIREWALL ###" $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -P INPUT ACCEPT $IPT -P OUTPUT ACCEPT $IPT -P FORWARD ACCEPT } loop() { echo "### LIBERANDO A LOOP BACK ###" $IPT -A INPUT -i lo -d $LO -j ACCEPT $IPT -A OUTPUT -o lo -d $LO -j ACCEPT } input() { echo "### ESTABILIZANDO AS CONEXÕES DE INPUT ###" $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT } output() { echo "### ESTABILIZANDO AS CONEXÕES DE OUTPUT ###" $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT } forward() { echo "### ESTABILIZANDO AS CONEXÕES DE FORWARD ###" $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT } icmps() { echo "### LIBERANDO ICMPS ###" for TIPO in 0 3/0 3/1 3/2 3/3 3/4 4 5 11 12 do $IPT -A INPUT -p icmp -s $NET -d $ET0 --icmp-type $TIPO -m limit --limit 1/s -j ACCEPT done $IPT -A OUTPUT -p icmp -s $ET0 -d $NET --icmp-type 8 -j ACCEPT } pt_cliente_tcp() { echo "### LIBERANDO CONEXÕES CLIENTE EM PORTAS TCP ###" for PORTAS in $(cat /etc/firewall/portas_tcp.txt | grep -v ^#) do $IPT -A OUTPUT -p tcp -m state --state NEW -s $ET0 --sport $PA -d $NET --dport $PORTAS -j ACCEPT done } pt_cliente_udp() { echo "### LIBERANDO CONEXÕES CLIENTE EM PORTAS UDP ###" for PORTAS in $(cat /etc/firewall/portas_udp.txt | grep -v ^#) do $IPT -A OUTPUT -p udp -m state --state NEW -s $ET0 --sport $PA -d $NET --dport $PORTAS -j ACCEPT done } pt_adm_tcp() { echo "### ATIVANDO CONTROLE DE CONEXÕES REMOTAS DE IP's AUTORIZAODS ###" for IP in $(cat /etc/firewall/ip_amigos.txt | grep -v ^#) do for PORTAS in $(cat /etc/firewall/portas_adm.txt | grep -v ^#) do $IPT -A INPUT -p tcp -m state --state NEW -s $IP --sport $PA -d $ET0 --dport $PORTAS -j ACCEPT done done for PORTAS in $(cat /etc/firewall/portas_adm.txt | grep -v ^#) do $IPT -A INPUT -p tcp -s $NET --sport $PA -d $ET0 --dport $PORTAS -j REJECT --reject-with tcp-reset done } flags_invalidas() { echo "### ATIVANDO CONTROLE DE FLAGS INVALIDAS ###" for FLAGS in $(cat /etc/firewall/flags.txt | grep -v ^#) do for CHAINS in INPUT FORWARD do $IPT -A $CHAINS -p tcp -d $ET0 -m state --state NEW --tcp-flags $FLAGS $FLAGS -j LOG --log-prefix "FLAG_$FLAGS" $IPT -A $CHAINS -p tcp -d $ET0 -m state --state NEW --tcp-flags $FLAGS $FLAGS -j DROP done done } #----------------------------------------------------------------------- case $1 in start) modulos nega loop input output forward icmps pt_cliente_tcp pt_cliente_udp flags_invalidas pt_adm_tcp echo " ******* FIREWAL ATIVADO ******* " ;; stop) limpa echo " ******* FIREWALL DESATIVADO ******* " ;; filter) $IPT -nL | more ;; nat) $IPT -nL -t nat | more ;; mangle) $IPT -nL -t mangle | more ;; restart) $0 stop $0 start ;; *) echo "erro use $0 {start|stop|filter|nat|mangle|restart}" exit 0 ;; esac exit 1
Instale o driver proprietário Nvidia baixado do site oficial em qualquer distro
Criação de ports para slackware
Pesquisa Binária usando Bash-Shell
Baixando fotos de uma câmera digital pela USB
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
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)