Tutorial CP+FreeRadius+Squid+SquidGuard com ACL por usuario e sem conf no client



  • Este tutorial é para aqueles igual eu que nunca acha nada sobre isso, você quer configurar um esquema em que segue os seguintes critérios.

    • Não quero configurar nada no usuário final
    • Não quero proxy transparente, pois quero monitorar o usuário final
    • Não quero aquela telinha wapd ou qualquer coisa que só funciona no PC, ou seja quero que a autenticação funcione no Captive Portal
    • Quero cadastrar usuario por usuario no PFSENSE e ter uma base unificada ( Eu ainda quero fazer autenticar no A.D mas nao tive tempo de ver como faz )
    • Quero criar grupos ao qual determinado grupo acesse facebook e outros nao, ou pode ser usuario

    Então para vocês, segue meu tutorial, claro que eu extrai informação de vários lugares, e montei a minha conf, o que eu não sei fazer ainda, mas seria muito util é que o RADIUS autentica-se no A.D, porque ai o usuario consegue gerenciar a sua senha, senão você administrador vai ter que por senha por senha aleatoria ai um colega do usuario descobre e usa a senha dele, depois o usuario vai da migué que usaram a senha dele, então se você por o Radius conectado no AD o usuario manipula sua propria senha.

    OBS: Todos os campos que eu não coloquei é porque não faz nada.. não insere nenhuma informação.

    Montando um Proxy HTTPS + Captive Portal no PFSENSE  sem fazer nada no cliente

    Ambiente
    2 redes
    WAN
    LAN: 10.0.160.1

    Primeiro vamos baixar os pacotes necessarios no pfsense 2.4.2

    -> System
      -> Package Manager
          -> Baixe primeiro o squidguard
          -> Depois o squid
          -> Depois o freeradius3

    – Congigurando o FreeRadius para contas locais ( no PFSENSE )
          -> Services
            -> FreeRADIUS
                -> Users
                  Vamos criar 2 usuarios
                  username: joao
                  Password: 123
                  username: cesar
                  Password: 123
                  obs: O resto deixa como esta
                -> NAS/Clients
                  Vamos adicionar um cliente
                  Client IP Address: 10.0.160.1
                  Client IP Version: IPv4
                  Client Shortname: teste
                  Client Shared Secret: senhadoclienteradius@@
                  obs: O resto deixa como esta
                -> Interfaces
                  Interface IP Address:*
                  Port:1812
                  Interface Type: Authentication
                  IP Version: IPv4

    Crie outra

    Interface IP Address:*
                  Port:1813
                  Interface Type: Accouting
                  IP Version: IPv4

    -> Settings
                  -> [ Miscellaneous Configuration ]
                      [ x ] Enable Plain MAC Authentication

    obs: FreeRadius Pronto

    – Configurando um certificado

    -> System
            -> Cert. Manager
              -> CAs
                  Descriptive name: certificado-proxy
                  Create an internal Certificate Authority
                  obs: Insira todos os dados
                  Country Code:BR
                  State or Province: SP
                  e no final...
                  Common Name: certificado-proxy

    -- Configurando o Squid

    -> Services
            -> Squid Proxy Server

    -> Local Cahe
                  [Squid Cache General Settings]
                  Cache Replacement Policy: Heap LFUDA
                -> General
                  [ Squid General Settings ]
                  Enable Squid Proxy [ x ]
                  Keep Settings/Data [ x ]
                  Proxy Interface(s) [ LAN e Loopbackp ]
                  Proxy Port: 3128
                  Allow Users on Interface [ x ]
                  Resolve DNS IPv4 First [ x ]
                  [ Transparent Proxy Settings ]
                  Transparent HTTP Proxy [ x ]
                  Transparent Proxy Interface(s) [ LAN ]
                  [ SSL Man In the Middle Filtering ]
                  HTTPS/SSL Interception [ x ]
                  SSL/MITM Mode: Splice ALL
                  SSL Intercept Interface(s) [ LAN ]
                  SSL Proxy Compatibility Mode: Modern
                  CA: certificado-proxy
                  SSL Certificate Deamon Children: 15
                  Remote Cert Checks: Accept remote server certificate with erros
                  Certificate Adapt: Sets the "Not After" (setValidAfter)
                                      Sets the "Not Before" (setValidBefore)                           
                  -> Authentication
                  [ Squid Authentication General Settings ]
                    Authentication Method: Captive Portal

    – Configurando o SquidGuard
          -> Services
            -> SquidGuard Proxy Filter
              -> General settings
              [ General Options ]
                Enable [ x ] Check this option to enable squidGuard.
                obs: Toda vez que fizer uma mudança mesmo clicando em SAVE tem que clicar em [Apply]
              [Blacklist options]
              Blacklist [ x ] Check this option to enable blacklist
              Blacklist URL: http://www.shallalist.de/Downloads/shallalist.tar.gz
              -> Common ACL
                  [Target Rules List] ( + )
                  Default access [all] [ allow ]
                  obs: Esta ACL é a padrao, entao eu liberei tudo mas você pode querer que ninguem acesse por exemplo o facebook, então clique para [DENY] para a categoria [blk_BL_socialnet] todos da empresa nao acessa mais Facebook
                  Do not allow IP-Addresses in URL [ x ] To make sure that people do not bypass the URL filter by simply using the IP-Addresses instead of the FQDN you can check this option. This option has no effect on the whitelist.
                  Redirect mode: int error page (enter error message)
                  Use SafeSearch engine [ x ] Enable the protected mode of search engines to limit access to mature content.
                  Log: [ x ] Check this option to enable logging for this ACL.

    -> Group ACL
                  Name: acl-teste
                  obs: nesta acl eu quero que um usuario especifico não acesse a categoria pornografia
                  Client (source): 'joao'
                  obs: tem que por estas aspas simples
                  [Target Rules List] ( + )
                  blk_BL_porn] [deny] nas duas colunas -> Target Categories/Target Categories for off-time
                  Do not allow IP-Addresses in URL [ x ] To make sure that people do not bypass the URL filter by simply using the IP-Addresses instead of the FQDN you can check this option. This option has no effect on the whitelist.
                  Log [ x ] Check this option to enable logging for this ACL.

    – Configurando o Captive Portal
    -> Services
            -> Captive Portal
                -> Configuration
                  [Captive Portal Configuration]
                  Enable [ x ] Enable Captive Portal
                  Interfaces: LAN
                  [ Authentication ]     
                  Authentication Method: RADIUS Authentication
                                          RADIUS protocol: [ x ] PAP
                  [Primary Authentication Source]
                  Primary RADIUS server: 10.0.160.1 – 1812 -- senhadoclienteradius@@
                  obs: A senha é aquela do cliente Radius e não dos usuarios criados
                  [Accounting]
                  RADIUS [ x ] Send RADIUS accounting packets to the primary RADIUS server.
                  Accounting updates [ x ] No updates
                  [RADIUS Options]
                  [ x ] Reauthenticate connected users every minute
                  [ x ] Enable RADIUS MAC authentication
                  MAC authentication secret: senhadoclienteradius@@
                  obs: A senha é aquela do cliente Radius e não dos usuarios criados
                  RADIUS NAS IP Attribute: LAN 10.0.160.1
                  MAC address format: IETF
                -> MACs
                    Action: Pass
                    MAC Address: xx:xx:xx:xx:xx
                    obs: Eu adicionei o MAC do A.D/LDAP porque senão o usuario não consegue logar no dominio
                -> Allowed IP Addresses
                    IP Address: ip_do-A.D /24
                    Direction: Both
                    obs: Eu adicionei o IP do A.D/LDAP porque senão o usuario não consegue logar no dominio

    OBS: Sempre checar se os serviços estão no ar quando fizer alteração em
                -> Status
                    -> Services
    OBS: O Captive Portal é chato, quando fizer qualquer alteração o ideal é ir em
                -> Services
                  -> Captive Portal
                      -> Configuration


                            [ save ]
                        E depois clicar e salvar novamente só dando reset nele não funciona, e tambe é interessante deslogar o usuario logado no Captive Portal da seguinte forma
                -> Clique no logo do PFSENSE para pagina inicial
                [ Status / Dashboard ] ( + )
                Adicione o Painel do [Captive Portal Status]
                Feito isso selecione todos os usuarios e clique na lixeira no canto direito de cada login para remover todos.

    Qualquer duvida se virem kkk não tenho tempo de tirar. :P

    Gostaria se alguem quiser participar de inserir o Radius no AD porque eu não consigo.



  • Alguém conseguiu fazer funcionar? Para mim abre somente o google e quando vou tentar acessar outra pagina retorna em branco escrito reset.



  • Não estou conseguindo configurar o CP comunicar com o FreeRadius 3. Quando tento acessar alguma página aparece a mensagem "RADIUS MAC Authentication Failed". Não vai para página de login. Estou com a versão 2.3.5. Alguém já passou por esse problema? Obrigado.