Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # !/bin/bash
- ###################
- ##### Funcoes #####
- ###################
- # Comando: Desativando firewall
- Configuracoes()
- {
- # Tabela: Filter
- iptables -t filter -P INPUT ACCEPT
- iptables -t filter -P OUTPUT ACCEPT
- iptables -t filter -P FORWARD ACCEPT
- }
- Regra_Lista()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ---------------------- \033[01;37m"
- echo -e "\033[01;36m * Listagem de regras * \033[01;37m"
- echo -e "\033[01;37m ---------------------- \033[01;37m"
- echo -e ""
- # Comando: Listagem de regras detalhadas + sequencia
- iptables -t filter -nvL --line-number
- echo -e "\n\033[01;31m --------------------------------------------------------------------- \033[01;37m\n"
- # Comando: Listagem de regras + sequencia
- iptables -t filter -L --line-number
- echo -e "\n\033[01;31m --------------------------------------------------------------------- \033[01;37m\n"
- }
- Regra_Limpeza()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ---------------------- \033[01;37m"
- echo -e "\033[01;36m * Regras reiniciadas * \033[01;37m"
- echo -e "\033[01;37m ---------------------- \033[01;37m"
- echo ""
- # Comando: Limpando memoria [flush]
- iptables -t filter -X
- iptables -t filter -F
- }
- Regra_Deletar()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m -------------------- \033[01;37m"
- echo -e "\033[01;36m * Delecao de regra * \033[01;37m"
- echo -e "\033[01;37m -------------------- \033[01;37m"
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;35m - Posicao: \033[01;37m"
- read pos
- # Comando: Deletar regra pela posicao
- iptables -t filter -D INPUT $pos
- }
- Regra_Posicao()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo -e "\033[01;36m * Posicionamento da regra * \033[01;37m"
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo ""
- # Entrada de dados
- echo -e "\033[01;34m * Regra: \033[01;37m"
- echo -e "\033[01;35m [1] - Liberar \033[01;37m"
- echo -e "\033[01;36m [2] - Bloquear \033[01;37m"
- echo -e -n "\n\033[01;37m + Resp: \033[01;37m"
- read esc
- echo ""
- # Estrutura de decisao
- if (( $esc == 1 ))
- then
- echo -e -n "\033[01;35m - Digite a porta a ser liberada: \033[01;37m"
- read porta
- echo -e -n "\033[01;35m - Digite a posicao da regra a ser inserida: \033[01;37m"
- read pos
- # Comando
- iptables -t filter -I INPUT $pos -p TCP --dport $porta -j ACCEPT
- else
- echo -e -n "\033[01;35m - Digite a porta a ser bloqueada: \033[01;37m"
- read porta
- echo -e -n "\033[01;35m - Digite a posicao da regra a ser inserida: \033[01;37m"
- read pos
- # Comando
- iptables -t filter -I INPUT $pos -p TCP --dport $porta -j DROP
- fi
- }
- Bloquear_Porta()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ---------------------- \033[01;37m"
- echo -e "\033[01;36m * Bloqueio de portas * \033[01;37m"
- echo -e "\033[01;37m ---------------------- \033[01;37m"
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;34m - Porta: \033[01;37m"
- read porta
- # Comando: Bloqueando porta
- iptables -t filter -A INPUT -p TCP --dport $porta -j DROP
- # Mensagem
- echo ""
- echo -e "\033[01;37m ------------------- \033[01;37m"
- echo -e "\033[01;36m * Porta: $porta \033[01;37m"
- echo -e "\033[01;36m * Status: Bloqueado \033[01;37m"
- echo -e "\033[01;37m ------------------- \033[01;37m"
- echo ""
- }
- Bloquear_IP_Destino()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ------------------------------------- \033[01;37m"
- echo -e "\033[01;36m * Bloqueio de IP [destino] e portas * \033[01;37m"
- echo -e "\033[01;37m ------------------------------------- \033[01;37m"
- echo ""
- # Entrada de dados [1]
- echo -e -n "\033[01;33m - IP [destino]: \033[01;37m"
- read ip_destino
- # Entrada de dados [2]
- echo -e -n "\033[01;34m - Porta: \033[01;37m"
- read porta
- echo ""
- # Comando: Filtrando porta de um determinado computador destino
- # Ex: Destino -> Pode ser o meu computador
- iptables -t filter -A INPUT -p TCP --dport $porta -d $ip_destino -j DROP
- # Mensagem
- echo ""
- echo -e "\033[01;37m ---------------------------- \033[01;37m"
- echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
- echo -e "\033[01;36m * Porta: $porta \033[01;37m"
- echo -e "\033[01;36m * Status: Bloqueado \033[01;37m"
- echo -e "\033[01;37m ---------------------------- \033[01;37m"
- echo ""
- }
- Bloquear_IP_Origem_Destino()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
- echo -e "\033[01;36m * Bloqueio de IP [origem e destino] e portas * \033[01;37m"
- echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
- echo ""
- # Entrada de dados [1]
- echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
- read ip_destino
- echo ""
- # Entrada de dados [2]
- echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
- read ip_origem
- echo ""
- # Entrada de dados [3]
- echo -e -n "\033[01;34m - Porta: \033[01;37m"
- read porta
- echo ""
- # Comando: Bloqueando porta de uma origem para um destino
- # Ex: Destino -> Pode ser o meu computador
- # Ex: Origem -> De onde sai os pacotes, podendo ser, o computador malicioso
- iptables -t filter -A INPUT -p TCP --dport $porta -d $ip_destino -s $ip_origem -j DROP
- # Mensagem
- echo ""
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo -e "\033[01;36m * IP [origem]: $ip_origem \033[01;37m"
- echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
- echo -e "\033[01;36m * Porta: $porta \033[01;37m"
- echo -e "\033[01;36m * Status: Bloqueado \033[01;37m"
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo ""
- }
- Bloquear_IP_Origem_Destino_Rede()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
- echo -e "\033[01;36m * Bloqueio de IP [origem e destino] e portas * \033[01;37m"
- echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
- echo ""
- # Entrada de dados [1]
- echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
- read ip_destino
- echo ""
- # Entrada de dados [2]
- echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
- read ip_origem
- echo ""
- # Entrada de dados [3]
- echo -e -n "\033[01;34m - Porta: \033[01;37m"
- read porta
- echo ""
- # Comando: Bloqueando porta de uma origem para um destino em uma rede completa
- iptables -t filter -A INPUT -p TCP --dport $porta -d $ip_destino -s $ip_origem/24 -j DROP
- # Mensagem
- echo ""
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo -e "\033[01;36m * IP [origem]: $ip_origem \033[01;37m"
- echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
- echo -e "\033[01;36m * Porta: $porta \033[01;37m"
- echo -e "\033[01;36m * Status: Bloqueado \033[01;37m"
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo ""
- }
- Bloquear_IP_Origem_Destino_Rede_Portas_Altas()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
- echo -e "\033[01;36m * Bloqueio de IP [origem e destino] e portas * \033[01;37m"
- echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
- read ip_destino
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
- read ip_origem
- echo ""
- # Quantidade de portas
- i=0
- echo -e -n "\033[01;34m - Quantas portas deseja bloquear: "
- read num_por
- while (( $i < $num_por ))
- do
- echo -e -n " - Porta: "
- read esc_port
- # Atribuicao
- porta[$i]=$esc_port
- # Incrementador
- i=$(( i + 1 ))
- done
- echo ""
- # Estrutura de repeticao
- for (( i = 0; i < num_por; i++ ))
- do
- # Comando: Bloqueando porta de uma origem para um destino em uma rede completa
- iptables -t filter -A INPUT -p TCP -m multiport --dport ${porta[$i]} -d $ip_destino -s $ip_origem/24 -j DROP
- done
- # Mensagem
- echo ""
- echo -e "\033[01;37m ------------------------------------------------- \033[01;37m"
- echo -e "\033[01;36m * IP [origem]: $ip_origem \033[01;37m"
- echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
- echo -e "\033[01;36m * Porta: ${porta[*]} bloqueada \033[01;37m"
- echo -e "\033[01;36m * Status: Portas altas Bloqueadas [1024 - 65.535] \033[01;37m"
- echo -e "\033[01;37m ------------------------------------------------- \033[01;37m"
- echo ""
- }
- Liberar_IP_Origem_Destino()
- {
- # Apresentacao
- clear
- echo ""
- echo -e "\033[01;37m -------------------------------------------- \033[01;37m"
- echo -e "\033[01;36m * Liberando IP [origem e destino] e portas * \033[01;37m"
- echo -e "\033[01;37m -------------------------------------------- \033[01;37m"
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
- read ip_destino
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
- read ip_origem
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;34m - Porta: \033[01;37m"
- read porta
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;34m - Posicao da regra: \033[01;37m"
- read pos
- echo ""
- # Entrada de dados
- echo -e -n "\033[01;34m - Usuario: \033[01;37m"
- read usuario
- echo ""
- # Comando: Bloqueando porta de uma origem para um destino em uma rede completa
- iptables -t filter -I INPUT $pos -p TCP --dport $porta -d $ip_destino -s $ip_origem -m comment --comment "$usuario" -j ACCEPT
- # Mensagem
- echo -e "\n"
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- echo -e "\033[01;36m * IP [origem]: $ip_origem \033[01;37m"
- echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
- echo -e "\033[01;36m * Porta: $porta \033[01;37m"
- echo -e "\033[01;36m * Posicao [regra]: $pos \033[01;37m"
- echo -e "\033[01;36m * Usuario: $usuario \033[01;37m"
- echo -e "\033[01;36m * Status: Liberado \033[01;37m"
- echo -e "\033[01;37m --------------------------- \033[01;37m"
- }
- ####################
- ##### IPTABLES #####
- ####################
- # Configuracao
- Configuracoes
- # Estrutura em loop
- while (( 1 ))
- do
- # Menu
- clear
- echo -e "\033[01;36m --------------- DATA --------------- \033[01;37m"
- echo -e "\033[01;32m * Num: $(date +%d) \033[01;37m"
- echo -e "\033[01;31m * Dia: $(date +%a) \033[01;37m"
- echo -e "\033[01;33m * Mes: $(date +%b) \033[01;37m"
- echo -e "\033[01;35m * Ano: $(date +%Y) \033[01;37m"
- echo -e "\033[01;36m ------------------------------------ \033[01;37m"
- echo -e "\n"
- echo -e "\033[01;37m ################################# FIREWALL ################################# \033[01;37m\n"
- echo -e "\033[01;33m [1] Regras [lista] \033[01;37m"
- echo -e "\033[01;33m [2] Regras [limpeza] \033[01;37m"
- echo -e "\033[01;33m [3] Regras [deletar] \033[01;37m"
- echo -e "\033[01;33m [4] Regras [posicionamento: aceitar & liberar] \033[01;37m"
- echo -e ""
- echo -e "\033[01;34m [5] Bloqueio [porta especifica] \033[01;37m"
- echo -e "\033[01;34m [6] Bloqueio [IP destino] \033[01;37m"
- echo -e "\033[01;34m [7] Bloqueio [IP origem e destino] \033[01;37m"
- echo -e "\033[01;34m [8] Bloqueio [IP origem e destino: rede inteira] \033[01;37m"
- echo -e "\033[01;34m [9] Bloqueio [IP origem e destino: rede inteira + portas altas (1024-65335)] \033[01;37m"
- echo -e ""
- echo -e "\033[01;35m [10] Liberacao [IP origem e destino] \033[01;37m"
- echo -e ""
- echo -e "\033[01;37m ############################################################################# \033[01;37m\n"
- echo -e -n "\n\033[01;34m + Opc: \033[01;37m"
- read opc
- echo ""
- # Estrutura em escolha
- case $opc in
- 1)
- Regra_Lista;;
- 2)
- Regra_Limpeza;;
- 3)
- Regra_Deletar;;
- 4)
- Regra_Posicao;;
- 5)
- Bloquear_Porta;;
- 6)
- Bloquear_IP_Destino;;
- 7)
- Bloquear_IP_Origem_Destino;;
- 8)
- Bloquear_IP_Origem_Destino_Rede;;
- 9)
- Bloquear_IP_Origem_Destino_Rede_Portas_Altas;;
- 10)
- Liberar_IP_Origem_Destino;;
- *)
- ;;
- esac
- echo -e "\n\033[01;32m =-=-= Press [ENTER] =-=-= \033[01;37m\n"
- read
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement