Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Script pronto para Bloquear sites HTTPS

    Scheduled Pinned Locked Moved Portuguese
    5 Posts 2 Posters 7.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L Offline
      lucasbira
      last edited by

      Boa Noite Pessoas,

      Estou migrando do BrazilFw para o PFSENSE, e me deparei com o grande problema de muitos que é o bloqueio de sites https. No BrazilFw, um user fez um sript para automatizar o processo de bloqueio mas como o BFW utiliza iptables eu não consegui colocar para rodar o as regras corretamente. Procurei material do ipfw porém não consegui converter as regras.

      Alguem poderia me ajudar? Vai ser uma coisa boa para todos, pois com ele fica muito simples. Adicionando apenas os sites que quer bloquear e quais ips vão passar pelo filtro.

      O script principal é para adicionar regras ao iptables:

      Select all
          #!/bin/sh
          caminho="/partition/bloquear/"
      
          ###############limpa os treco tudo
          #rm -f ${caminho}ipsexo
          ##rm -f ${caminho}limpar_restricao
      
          #vai ficar assim
          #dig +short www.f****.com >> ${caminho}ipsexo
          #enquanto le o arquivo executa a descoberta de ips
          sort ${caminho}sexo | while read p; do
      
          dig +short $p >> ${caminho}ipsexo
      
          done
      
          #remover linha iguais, copiando e colando em cima do mesmo arquivo
          sort ${caminho}ipsexo | uniq >> ${caminho}tempipsexo ; rm -f ${caminho}ipsexo ; mv ${caminho}tempipsexo ${caminho}ipsexo
          sed '/timed out/d' ${caminho}ipsexo >> ${caminho}tempipsexo ; rm -f ${caminho}ipsexo ; mv ${caminho}tempipsexo ${caminho}ipsexo
      
          #verifica a existencia de regras anteriores e as deleta em FORWARD
          iptables -t filter -L >> ${caminho}verifica
          if grep -q "RESTRICAO" "${caminho}verifica"
             then {
          ##########Apagar regras de redirecionar para a chain RESTRICAO
          sort ${caminho}iplocalantigo | while read IPantigo; do
          /usr/sbin/iptables -D FORWARD -p tcp -s $IPantigo --dport 20:79 -j RESTRICAO
          /usr/sbin/iptables -D FORWARD -s $IPantigo -p tcp --dport 81:909 -j RESTRICAO
          /usr/sbin/iptables -D FORWARD -s $IPantigo -p tcp --dport 914:8179 -j RESTRICAO
          /usr/sbin/iptables -D FORWARD -s $IPantigo -p tcp --dport 8182:65535 -j RESTRICAO
          done
          #apagar cópia iplocalantigo
          rm -f ${caminho}iplocalantigo
             }
          fi
          if grep -q "RESTRICAO" "${caminho}verifica"
             then {
          ###########Apagar Chain RESTRICAO
             /usr/sbin/iptables -t filter -F RESTRICAO
             /usr/sbin/iptables -t filter -X RESTRICAO
             }
          fi
          ###########Criar nova chain com nome RESTRICAO
             /usr/sbin/iptables -t filter -N RESTRICAO
          rm -f ${caminho}verifica
          ###########Politica padrão da chain RESTRICAO é accept
             iptables -t filter -A RESTRICAO -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
      
          ###########Destinos bloqueados da RESTRICAO
             sort ${caminho}ipsexo | while read IP2; do
                /usr/sbin/iptables -I RESTRICAO -d $IP2 -j REJECT
          done
      
          sort ${caminho}iplocal | while read IP; do
          ###########Redirecionar para a chain RESTRICAO, os ips locais
          /usr/sbin/iptables -I FORWARD -p tcp -s $IP --dport 20:79 -j RESTRICAO >> ${caminho}FORWARD
          /usr/sbin/iptables -I FORWARD -s $IP -p tcp --dport 81:909 -j RESTRICAO >> ${caminho}FORWARD
          /usr/sbin/iptables -I FORWARD -s $IP -p tcp --dport 914:8179 -j RESTRICAO >> ${caminho}FORWARD
          /usr/sbin/iptables -I FORWARD -s $IP -p tcp --dport 8182:65535 -j RESTRICAO >> ${caminho}FORWARD
          done
      
          #faz copia de segurança
          cp ${caminho}iplocal ${caminho}iplocalantigo
      

      Script para atualizar lista de ip:

      Select all
          #!/bin/sh
          caminho="/partition/bloquear/"
      
          ###############limpa os treco tudo
          #rm -f ${caminho}ipsexo
          ##rm -f ${caminho}limpar_restricao
      
          #vai ficar assim
          #dig +short www.f****.com >> ${caminho}ipsexo
          #enquanto le o arquivo executa a descoberta de ips
          sort ${caminho}sexo | while read p; do
      
          dig +short $p >> ${caminho}ipsexo
      
          done
      
          #remover linha iguais, copiando e colando em cima do mesmo arquivo
          sort ${caminho}ipsexo | uniq >> ${caminho}tempipsexo ; rm -f ${caminho}ipsexo ; mv ${caminho}tempipsexo ${caminho}ipsexo
          sed '/timed out/d' ${caminho}ipsexo >> ${caminho}tempipsexo ; rm -f ${caminho}ipsexo ; mv ${caminho}tempipsexo ${caminho}ipsexo
      

      Script para limpar lista de ip:

      Select all
          #!/bin/sh
          caminho="/partition/bloquear/"
      
          ###############limpa os treco tudo
          rm -f ${caminho}ipsexo
      

      Primeiro deve ser criado a pasta: /partition/bloquear/ e dentro delas colocar os scripts e os arquivos: sexo(arquivos que contem os sites)  iplocal(arquivo que contem os ips filtrados)

      Creditos ao user ceserjhony do forum BrazilFw

      1 Reply Last reply Reply Quote 0
      • marcellocM Offline
        marcelloc
        last edited by

        lucasbira, bem vindo ao fórum! :)

        No pfsense, para bloquear o nome do site, basta criar um alias com todos os nomes dos hosts/sites que quiser bloquear.

        Depois de criar o alias, basta associa-lo a uma regra.

        Para bloquear sites https, você pode utilizar também o squid3-dev ou marcar(automático ou manual) o proxy no browser dos clientes.

        att,
        Marcello Coutinho

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • L Offline
          lucasbira
          last edited by

          @marcelloc:

          lucasbira, bem vindo ao fórum! :)

          No pfsense, para bloquear o nome do site, basta criar um alias com todos os nomes dos hosts/sites que quiser bloquear.

          Depois de criar o alias, basta associa-lo a uma regra.

          Para bloquear sites https, você pode utilizar também o squid3-dev ou marcar(automático ou manual) o proxy no browser dos clientes.

          att,
          Marcello Coutinho

          Entao a facilitade do script é que ele busca os ips dos sites e adiciona automaticamente, sem a necessidade de ficar alterando o alias. Eu acabei de instalar aqui o squid3-dev, antes estava com o squid3 por isso nao tava dando. Agora vou configurar o dansguardian para ver se vai funcionar o bloqueio dos sites https.

          Att lucas

          1 Reply Last reply Reply Quote 0
          • marcellocM Offline
            marcelloc
            last edited by

            @lucasbira:

            Entao a facilitade do script é que ele busca os ips dos sites e adiciona automaticamente

            Bom esta função faz parte do alias. Você coloca o nome lá e na regras(não na interface gráfica) ficam os ips.

            Treinamentos de Elite: http://sys-squad.com

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • L Offline
              lucasbira
              last edited by

              @marcelloc:

              @lucasbira:

              Entao a facilitade do script é que ele busca os ips dos sites e adiciona automaticamente

              Bom esta função faz parte do alias. Você coloca o nome lá e na regras(não na interface gráfica) ficam os ips.

              Entendi marcelloc, vou testar por alias e depois por squid. Abcs

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.