Advertisement
LightProgrammer000

2.Firewall[bloqueio]

Mar 15th, 2019
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.21 KB | None | 0 0
  1. # !/bin/bash
  2.  
  3. ###################
  4. ##### Funcoes #####
  5. ###################
  6.  
  7. # Comando: Desativando firewall
  8. Configuracoes()
  9. {
  10.     # Tabela: Filter
  11.     iptables -t filter -P INPUT ACCEPT
  12.     iptables -t filter -P OUTPUT ACCEPT
  13.     iptables -t filter -P FORWARD ACCEPT
  14. }
  15.  
  16. Regra_Lista()
  17. {
  18.     # Apresentacao
  19.     clear
  20.     echo ""
  21.     echo -e "\033[01;37m ---------------------- \033[01;37m"
  22.     echo -e "\033[01;36m * Listagem de regras * \033[01;37m"
  23.     echo -e "\033[01;37m ---------------------- \033[01;37m"
  24.     echo -e ""
  25.  
  26.     # Comando: Listagem de regras detalhadas + sequencia
  27.     iptables -t filter -nvL --line-number
  28.     echo -e "\n\033[01;31m --------------------------------------------------------------------- \033[01;37m\n"
  29.    
  30.     # Comando: Listagem de regras + sequencia
  31.     iptables -t filter -L --line-number
  32.     echo -e "\n\033[01;31m --------------------------------------------------------------------- \033[01;37m\n"
  33. }
  34.  
  35. Regra_Limpeza()
  36. {
  37.     # Apresentacao
  38.     clear
  39.     echo ""
  40.     echo -e "\033[01;37m ---------------------- \033[01;37m"
  41.     echo -e "\033[01;36m * Regras reiniciadas * \033[01;37m"
  42.     echo -e "\033[01;37m ---------------------- \033[01;37m"
  43.     echo ""
  44.  
  45.     # Comando: Limpando memoria [flush]
  46.     iptables -t filter -X
  47.     iptables -t filter -F
  48. }
  49.  
  50. Regra_Deletar()
  51. {
  52.     # Apresentacao
  53.     clear
  54.     echo ""
  55.     echo -e "\033[01;37m -------------------- \033[01;37m"
  56.     echo -e "\033[01;36m * Delecao de regra * \033[01;37m"
  57.     echo -e "\033[01;37m -------------------- \033[01;37m"
  58.     echo ""
  59.    
  60.     # Entrada de dados
  61.     echo -e -n "\033[01;35m - Posicao: \033[01;37m"
  62.     read pos
  63.  
  64.     # Comando: Deletar regra pela posicao
  65.     iptables -t filter -D INPUT $pos
  66. }
  67.  
  68. Regra_Posicao()
  69. {
  70.     # Apresentacao
  71.     clear
  72.     echo ""
  73.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  74.     echo -e "\033[01;36m * Posicionamento da regra * \033[01;37m"
  75.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  76.     echo ""
  77.  
  78.     # Entrada de dados
  79.     echo -e "\033[01;34m * Regra: \033[01;37m"
  80.     echo -e "\033[01;35m [1] - Liberar \033[01;37m"
  81.     echo -e "\033[01;36m [2] - Bloquear \033[01;37m"
  82.     echo -e -n "\n\033[01;37m + Resp: \033[01;37m"
  83.     read esc
  84.     echo ""
  85.    
  86.     # Estrutura de decisao
  87.     if (( $esc == 1 ))
  88.     then
  89.         echo -e -n "\033[01;35m - Digite a porta a ser liberada: \033[01;37m"
  90.         read porta
  91.  
  92.         echo -e -n "\033[01;35m - Digite a posicao da regra a ser inserida: \033[01;37m"
  93.         read pos
  94.        
  95.         # Comando
  96.         iptables -t filter -I INPUT $pos -p TCP --dport $porta -j ACCEPT
  97.    
  98.     else
  99.         echo -e -n "\033[01;35m - Digite a porta a ser bloqueada: \033[01;37m"
  100.         read porta
  101.  
  102.         echo -e -n "\033[01;35m - Digite a posicao da regra a ser inserida: \033[01;37m"
  103.         read pos
  104.  
  105.         # Comando
  106.         iptables -t filter -I INPUT $pos -p TCP --dport $porta -j DROP
  107.     fi
  108. }
  109.  
  110. Bloquear_Porta()
  111. {
  112.     # Apresentacao
  113.     clear
  114.     echo ""
  115.     echo -e "\033[01;37m ---------------------- \033[01;37m"
  116.     echo -e "\033[01;36m * Bloqueio de portas * \033[01;37m"
  117.     echo -e "\033[01;37m ---------------------- \033[01;37m"
  118.     echo ""
  119.  
  120.     # Entrada de dados
  121.     echo -e -n "\033[01;34m - Porta: \033[01;37m"
  122.     read porta
  123.  
  124.     # Comando: Bloqueando porta
  125.     iptables -t filter -A INPUT -p TCP --dport $porta -j DROP
  126.  
  127.     # Mensagem
  128.     echo ""
  129.     echo -e "\033[01;37m ------------------- \033[01;37m"
  130.     echo -e "\033[01;36m * Porta: $porta     \033[01;37m"
  131.     echo -e "\033[01;36m * Status: Bloqueado \033[01;37m"
  132.     echo -e "\033[01;37m ------------------- \033[01;37m"
  133.     echo ""
  134. }
  135.  
  136. Bloquear_IP_Destino()
  137. {
  138.     # Apresentacao
  139.     clear
  140.     echo ""
  141.     echo -e "\033[01;37m ------------------------------------- \033[01;37m"
  142.     echo -e "\033[01;36m * Bloqueio de IP [destino] e portas * \033[01;37m"
  143.     echo -e "\033[01;37m ------------------------------------- \033[01;37m"
  144.     echo ""
  145.    
  146.     # Entrada de dados [1]
  147.     echo -e -n "\033[01;33m - IP [destino]: \033[01;37m"
  148.     read ip_destino
  149.  
  150.     # Entrada de dados [2]
  151.     echo -e -n "\033[01;34m - Porta: \033[01;37m"
  152.     read porta
  153.     echo ""
  154.  
  155.     # Comando: Filtrando porta de um determinado computador destino
  156.     # Ex: Destino -> Pode ser o meu computador
  157.     iptables -t filter -A INPUT -p TCP --dport $porta -d $ip_destino -j DROP
  158.    
  159.     # Mensagem
  160.     echo ""
  161.     echo -e "\033[01;37m ---------------------------- \033[01;37m"
  162.     echo -e "\033[01;36m * IP [destino]: $ip_destino  \033[01;37m"
  163.     echo -e "\033[01;36m * Porta: $porta              \033[01;37m"
  164.     echo -e "\033[01;36m * Status: Bloqueado          \033[01;37m"
  165.     echo -e "\033[01;37m ---------------------------- \033[01;37m"
  166.     echo ""
  167. }
  168.  
  169. Bloquear_IP_Origem_Destino()
  170. {
  171.     # Apresentacao
  172.     clear
  173.     echo ""
  174.     echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
  175.     echo -e "\033[01;36m * Bloqueio de IP [origem e destino] e portas * \033[01;37m"
  176.     echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
  177.     echo ""
  178.  
  179.     # Entrada de dados [1]
  180.     echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
  181.     read ip_destino
  182.     echo ""
  183.    
  184.     # Entrada de dados [2]
  185.     echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
  186.     read ip_origem
  187.     echo ""
  188.    
  189.     # Entrada de dados [3]
  190.     echo -e -n "\033[01;34m - Porta: \033[01;37m"
  191.     read porta
  192.     echo ""
  193.  
  194.     # Comando: Bloqueando porta de uma origem para um destino
  195.     # Ex: Destino -> Pode ser o meu computador
  196.     # Ex: Origem  -> De onde sai os pacotes, podendo ser, o computador malicioso
  197.     iptables -t filter -A INPUT -p TCP --dport $porta -d $ip_destino -s $ip_origem -j DROP
  198.    
  199.     # Mensagem
  200.     echo ""
  201.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  202.     echo -e "\033[01;36m * IP [origem]: $ip_origem   \033[01;37m"
  203.     echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
  204.     echo -e "\033[01;36m * Porta: $porta             \033[01;37m"
  205.     echo -e "\033[01;36m * Status: Bloqueado         \033[01;37m"
  206.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  207.     echo ""
  208. }
  209.  
  210. Bloquear_IP_Origem_Destino_Rede()
  211. {
  212.     # Apresentacao
  213.     clear
  214.     echo ""
  215.     echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
  216.     echo -e "\033[01;36m * Bloqueio de IP [origem e destino] e portas * \033[01;37m"
  217.     echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
  218.     echo ""
  219.  
  220.     # Entrada de dados [1]
  221.     echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
  222.     read ip_destino
  223.     echo ""
  224.    
  225.     # Entrada de dados [2]
  226.     echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
  227.     read ip_origem
  228.     echo ""
  229.    
  230.     # Entrada de dados [3]
  231.     echo -e -n "\033[01;34m - Porta: \033[01;37m"
  232.     read porta
  233.     echo ""
  234.  
  235.     # Comando: Bloqueando porta de uma origem para um destino em uma rede completa
  236.     iptables -t filter -A INPUT -p TCP --dport $porta -d $ip_destino -s $ip_origem/24 -j DROP
  237.    
  238.     # Mensagem
  239.     echo ""
  240.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  241.     echo -e "\033[01;36m * IP [origem]: $ip_origem   \033[01;37m"
  242.     echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
  243.     echo -e "\033[01;36m * Porta: $porta             \033[01;37m"
  244.     echo -e "\033[01;36m * Status: Bloqueado         \033[01;37m"
  245.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  246.     echo ""
  247. }
  248.  
  249. Bloquear_IP_Origem_Destino_Rede_Portas_Altas()
  250. {
  251.     # Apresentacao
  252.     clear
  253.     echo ""
  254.     echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
  255.     echo -e "\033[01;36m * Bloqueio de IP [origem e destino] e portas * \033[01;37m"
  256.     echo -e "\033[01;37m ---------------------------------------------- \033[01;37m"
  257.     echo ""
  258.  
  259.     # Entrada de dados
  260.     echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
  261.     read ip_destino
  262.     echo ""
  263.  
  264.     # Entrada de dados
  265.     echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
  266.     read ip_origem
  267.     echo ""
  268.  
  269.     # Quantidade de portas
  270.     i=0
  271.     echo -e -n "\033[01;34m - Quantas portas deseja bloquear: "
  272.     read num_por
  273.    
  274.     while (( $i < $num_por ))
  275.     do
  276.         echo -e -n " - Porta: "
  277.         read esc_port
  278.        
  279.         # Atribuicao
  280.         porta[$i]=$esc_port
  281.    
  282.         # Incrementador
  283.         i=$(( i + 1 ))
  284.     done
  285.     echo ""
  286.  
  287.     # Estrutura de repeticao
  288.     for (( i = 0; i < num_por; i++ ))
  289.     do
  290.         # Comando: Bloqueando porta de uma origem para um destino em uma rede completa
  291.         iptables -t filter -A INPUT -p TCP -m multiport --dport ${porta[$i]} -d $ip_destino -s $ip_origem/24 -j DROP
  292.     done
  293.  
  294.     # Mensagem
  295.     echo ""
  296.     echo -e "\033[01;37m ------------------------------------------------- \033[01;37m"
  297.     echo -e "\033[01;36m * IP [origem]: $ip_origem                 \033[01;37m"
  298.     echo -e "\033[01;36m * IP [destino]: $ip_destino               \033[01;37m"
  299.     echo -e "\033[01;36m * Porta: ${porta[*]} bloqueada                \033[01;37m"
  300.     echo -e "\033[01;36m * Status: Portas altas Bloqueadas [1024 - 65.535] \033[01;37m"
  301.     echo -e "\033[01;37m ------------------------------------------------- \033[01;37m"
  302.     echo ""
  303. }
  304.  
  305. Liberar_IP_Origem_Destino()
  306. {
  307.     # Apresentacao
  308.     clear
  309.     echo ""
  310.     echo -e "\033[01;37m -------------------------------------------- \033[01;37m"
  311.     echo -e "\033[01;36m * Liberando IP [origem e destino] e portas * \033[01;37m"
  312.     echo -e "\033[01;37m -------------------------------------------- \033[01;37m"
  313.     echo ""
  314.  
  315.     # Entrada de dados
  316.     echo -e -n "\033[01;32m - IP [destino]: \033[01;37m"
  317.     read ip_destino
  318.     echo ""
  319.    
  320.     # Entrada de dados
  321.     echo -e -n "\033[01;33m - IP [origem]: \033[01;37m"
  322.     read ip_origem
  323.     echo ""
  324.    
  325.     # Entrada de dados
  326.     echo -e -n "\033[01;34m - Porta: \033[01;37m"
  327.     read porta
  328.     echo ""
  329.    
  330.     # Entrada de dados
  331.     echo -e -n "\033[01;34m - Posicao da regra: \033[01;37m"
  332.     read pos
  333.     echo ""
  334.    
  335.     # Entrada de dados
  336.     echo -e -n "\033[01;34m - Usuario: \033[01;37m"
  337.     read usuario
  338.     echo ""
  339.  
  340.     # Comando: Bloqueando porta de uma origem para um destino em uma rede completa
  341.     iptables -t filter -I INPUT $pos -p TCP --dport $porta -d $ip_destino -s $ip_origem -m comment --comment "$usuario" -j ACCEPT
  342.    
  343.     # Mensagem
  344.     echo -e "\n"
  345.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  346.     echo -e "\033[01;36m * IP [origem]: $ip_origem   \033[01;37m"
  347.     echo -e "\033[01;36m * IP [destino]: $ip_destino \033[01;37m"
  348.     echo -e "\033[01;36m * Porta: $porta             \033[01;37m"
  349.     echo -e "\033[01;36m * Posicao [regra]: $pos     \033[01;37m"
  350.     echo -e "\033[01;36m * Usuario: $usuario         \033[01;37m"
  351.     echo -e "\033[01;36m * Status: Liberado      \033[01;37m"
  352.     echo -e "\033[01;37m --------------------------- \033[01;37m"
  353. }
  354.  
  355. ####################
  356. ##### IPTABLES #####
  357. ####################
  358.  
  359. # Configuracao
  360. Configuracoes
  361.  
  362. # Estrutura em loop
  363. while (( 1 ))
  364. do
  365.     # Menu
  366.     clear
  367.     echo -e "\033[01;36m --------------- DATA --------------- \033[01;37m"
  368.     echo -e "\033[01;32m * Num: $(date +%d)           \033[01;37m"
  369.     echo -e "\033[01;31m * Dia: $(date +%a)           \033[01;37m"
  370.     echo -e "\033[01;33m * Mes: $(date +%b)           \033[01;37m"
  371.     echo -e "\033[01;35m * Ano: $(date +%Y)           \033[01;37m"
  372.     echo -e "\033[01;36m ------------------------------------ \033[01;37m"
  373.     echo -e "\n"
  374.     echo -e "\033[01;37m ################################# FIREWALL #################################  \033[01;37m\n"
  375.     echo -e "\033[01;33m [1]  Regras [lista]                               \033[01;37m"
  376.     echo -e "\033[01;33m [2]  Regras [limpeza]                             \033[01;37m"
  377.     echo -e "\033[01;33m [3]  Regras [deletar]                             \033[01;37m"
  378.     echo -e "\033[01;33m [4]  Regras [posicionamento: aceitar & liberar]                   \033[01;37m"
  379.     echo -e ""
  380.     echo -e "\033[01;34m [5]  Bloqueio [porta especifica]                          \033[01;37m"
  381.     echo -e "\033[01;34m [6]  Bloqueio [IP destino]                            \033[01;37m"
  382.     echo -e "\033[01;34m [7]  Bloqueio [IP origem e destino]                       \033[01;37m"
  383.     echo -e "\033[01;34m [8]  Bloqueio [IP origem e destino: rede inteira]                     \033[01;37m"
  384.     echo -e "\033[01;34m [9]  Bloqueio [IP origem e destino: rede inteira + portas altas (1024-65335)] \033[01;37m"
  385.     echo -e ""
  386.     echo -e "\033[01;35m [10] Liberacao [IP origem e destino] \033[01;37m"
  387.     echo -e ""
  388.     echo -e "\033[01;37m ############################################################################# \033[01;37m\n"
  389.     echo -e -n "\n\033[01;34m + Opc: \033[01;37m"
  390.     read opc
  391.     echo ""
  392.  
  393.     # Estrutura em escolha
  394.     case $opc in
  395.     1)
  396.         Regra_Lista;;
  397.  
  398.     2)
  399.         Regra_Limpeza;;
  400.  
  401.     3)
  402.         Regra_Deletar;;
  403.    
  404.     4)
  405.         Regra_Posicao;;
  406.  
  407.     5)
  408.         Bloquear_Porta;;
  409.  
  410.     6) 
  411.         Bloquear_IP_Destino;;
  412.  
  413.     7)
  414.         Bloquear_IP_Origem_Destino;;
  415.  
  416.     8)
  417.         Bloquear_IP_Origem_Destino_Rede;;
  418.  
  419.     9)
  420.         Bloquear_IP_Origem_Destino_Rede_Portas_Altas;;
  421.  
  422.     10)
  423.         Liberar_IP_Origem_Destino;;
  424.  
  425.     *)
  426.         ;;
  427.     esac
  428.  
  429.     echo -e "\n\033[01;32m =-=-= Press [ENTER] =-=-= \033[01;37m\n"
  430.     read
  431. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement