PfSense  2.2.3–  Squid  +  Samba4  (member)  autenticando  usuários  via  NTLM     Autor:  Atila  Aloise  de  Almeida     Introdução     A  necessidade  de  implementar  funcionalidades  de  autenticação  em  proxy’s,  nos  traz  possibilidade  de  gerir   controles   de   acesso   de   forma   mais   organizada.   O   monitoramento   também   é   favorecido,   já   que   não   precisaremos   verificar   manualmente   que   usuário   está   utilizando   a   maquina   no   momento   em   que   o   acesso   ocorre.       Problema:     O  PfSense  não  inclui  as  dependências  envolvidas  para  que  a  autenticação  transparente  dos  usuários   do  domínio  ocorra.     Solução:     A  versão  2.2  do  PfSense  utiliza  o  FreeBsd  10  como  base,  portanto  temos  o  “pkg”  a  nossa  disposição  para   incrementar  o  sistema.     A  autenticação  transparente  depende  do  ingresso  da  maquina  PfSense  no  domínio.  Assim  podemos   oferecer  recursos  do  sistema  para  os  usuários  do  domínio  que  passarão  a  ser  reconhecidos  pelo  PfSense.     As  dependências  são:   • Samba     • Winbind   • Kerberos     Primeiramente   temos   que   fazer   nosso   PfSense   conhecer   o   endereço   do   controlador   de   domínio   e   resolver   seu  nome.   Edite  o  arquivo  “/etc/hosts”  e  insira  a  linha  que  referencia  o  Controlador  de  domínio:     192.168.0.4    

ad.meudominio.local  

 

ad  

  Com  isso  o  sistema  agora  resolve  o  endereço  ad.meudominio.local  para  seu  endereço  de  rede.     Para   garantir   que   todas   as   consultas   dns   relativas   ao   domínio   “meudominio.local”   insira   a   entrada   referenciando  seu  controlador  na  seção  ”Host  Overrides  “e  ”Domain  overrides“  do  DNS  RESOLVER.     Configure  agora  o  kerberos  para  lidar  com  seu  domíno.  Edite  o  arquivo  “/etc/krb5”.       [libdefaults]                  default_realm  =  MEUDOMINIO.LOCAL                  dns_lookup_realm  =  true                  dns_lookup_kdc  =  true                  ticket_lifetime  =  24h                  renew_lifetime  =  7d                  forwardable  =  yes     Agora  Instale  o  samba4,  que  nos  repositórios  BSD  está  como  samba42  em  sua  versão  mais  atual.     #pkg  install  samba42  

  Crie  o  arquivo  /usr/local/etc/smb4.conf  ou  substitua  seu  conteúdo       [global]                  workgroup  =  MEUDOMINIO                  server  string  =  GET  OUT  MODAFOCA                  security  =  ads                  realm  =  MEUDOMINIO.LOCAL                  socket  options  =  TCP_NODELAY  IPTOS_LOWDELAY  SO_RCVBUF=131072  SO_SNDBUF=131072                  use  sendfile  =  true                    idmap  config  *  :  backend  =  tdb                  idmap  config  *  :  range  =  100000-­‐299999                  idmap  config  MEUDOMINIO  :  backend  =  rid                  idmap  config  MEUDOMINIO  :  range  =  10000-­‐99999                  winbind  separator  =  +                  winbind  enum  users  =  yes                  winbind  enum  groups  =  yes                  winbind  use  default  domain  =  yes                  winbind  refresh  tickets  =  yes                    restrict  anonymous  =  2                  log  file  =  /var/log/samba4/log.%m                  max  log  size  =  50       Com  o  samba  instalado.  Vamos  ativar  seus  serviços  na  inicialização  do  sistema     Adicione  as  linhas  abaixo  no  arquivo  /etc/rc.conf.local     winbindd_enable="YES"   samba_server_enable="YES"     Agora  sempre  que  o  sistema  reiniciar,  o  samba  subirá  automaticamente.   Vamos  ingressar  no  domínio.     #net  ads  join  –U  administrator     Com  isso,  teste  o  ingresso     #net  ads  testjoin     Esse  comando  deve  retornar  “join  is  OK”.   Vamos  testar  o  kerberos.     #kinit  usuário     Para   garantir   que   o   sistema   conhece   todos   os   usuários   use   o   comando   “wbinfo   –u”   que   irá   retornar   todos   os   usuários   do   domínio.       Agora  nosso  sistema  está  pronto  para  integração.     Instalando  e  configurando  o  SQUID     Instale  o  squid  Stable  pela  interface  web  do  sistema.     Os   pacotes   instalados   no   PfSense   são   colocados   em   Jaulas   (literalmente),   assim   sendo,   tudo   que   o   pacote   precisar   (bibliotecas,  arquivos  de  configuração,  etc)  precisa  estar  dentro  da  jaula.    

  Vamos   utilizar   o   binário   “ntlm_auth”   fornecido   pelo   próprio   samba.   Ele   fica   dentro   de   “/usr/local/bin”.   Devemos   copiar  o  binário  para  dentro  da  “jaula”  do  Squid.     #cp  /usr/local/bin/ntlm_auth  /usr/pbi/squid-­‐amd64/local/libexec/squid/     Na   interface   web,   com   o   squid   rodando   e   funcionando   sem   autenticação,   va   até   a   seção   “Custom   Settings”e   insira   o   parâmetro  que  chamará  o  ntlm.     auth_param  ntlm  program  /usr/pbi/squid-­‐amd64/local/libexec/squid/ntlm_auth    -­‐-­‐configfile=/usr/pbi/squid-­‐amd64/etc/smb4.conf  -­‐-­‐helper-­‐ protocol=squid-­‐2.5-­‐ntlmssp     Em  seguida  devemos  adicionar  um  segundo  helper  para  clientes  que  não  tiverem  suporte  a  autenticaçãoo  Transparente.     auth_param  basic  program  /usr/pbi/squid-­‐amd64/local/libexec/squid/ntlm_auth    -­‐-­‐configfile=/usr/pbi/squid-­‐amd64/etc/smb4.conf  -­‐-­‐helper-­‐ protocol=squid-­‐2.5-­‐basic       Depois  disso  insira,  os  parâmetros  que  controlam  os  processos  do  binário  ntlm_auth,  requerem  a  autenticação  e  autorizam  o  acesso   pelos  usuários  autenticados.     auth_param  ntlm  children  10   auth_param  ntlm  keep_alive  on   acl  password  proxy_auth  REQUIRED   http_access  allow  password     Atenção!  Voce  deve  inserir  todos  esses  parâmetros  em  uma  linha  apenas,  separados  por  ponto  e  virgula.     auth_param  ntlm  program  /usr/pbi/squid-­‐amd64/local/libexec/squid/ntlm_auth    -­‐-­‐configfile=/usr/pbi/squid-­‐amd64/etc/smb4.conf  -­‐-­‐ helper-­‐protocol=squid-­‐2.5-­‐ntlmssp;  auth_param  basic  program  /usr/pbi/squid-­‐amd64/local/libexec/squid/ntlm_auth    -­‐-­‐ configfile=/usr/pbi/squid-­‐amd64/etc/smb4.conf  -­‐-­‐helper-­‐protocol=squid-­‐2.5-­‐basic;auth_param  ntlm  children  10;auth_param  ntlm   keep_alive  on;acl  password  proxy_auth  REQUIRED;http_access  allow  password     Agora  você  deve  monitorar  o  log  do  cache  para  identificar  quais  bibliotecas  estão  faltando  para  nosso  squid  com  NTLM  funcionar.     #tail  –f  /var/squid/logs/cache.log     Fique  atento  nas  linhas  em  que  o  log  informar  que  uma  biblioteca  nao  foi  encontrada.  Na  instalação  com  o  squid3  –  Beta,  o  log   acusou  as  seguintes  bibliotecas:    

ibintl.so.8ibintl.so.8   libgpg-­‐error.so.0   libp11-­‐kit.so.0   libtspi.so.1   libtasn1.so.6   libnettle.so.4   libhogweed.so.2   libgmp.so.10   libffi.so.6   libgpg-­‐error.so.0   libp11-­‐kit.so.0   libtspi.so.1   libtasn1.so.6   libnettle.so.4   libhogweed.so.2   libgmp.so.10   libffi.so.6ibintl.so.8   libgpg-­‐error.so.0   libp11-­‐kit.so.0   libtspi.so.1   libtasn1.so.6   libnettle.so.4  

libhogweed.so.2   libgmp.so.10   libffi.so.6     Voce  deve  copier  as  bibliotecas  requeridas  de  “/usr/local/lib”  para  a  jaula  do  squid  em  “/usr/pbi/squid-­‐ amd64/local/lib”.   A  cada  biblioteca  copiada,  o  log  apontará  para  a  próxima.  Quando  o  log  não  cobrar  mais  nenhuma  biblioteca,  reinicie  o   squid  e  teste  a  autenticação.     Monitore  o  access  log.     #tail  –f  /var/squid/logs/access.log     Em  uma  estação  do  seu  domino,  configure  o  proxy  no  navegador,  e  abra  uma  pagina  da  web.   O  navegador  não  deve  exibir  popup  solicitando  usuário  e  senha,  e  o  usuário  logado  na  estaçao  deve  estar  referenciado   no  acceslog.     Instalando  Squidguard   Se  tudo  ocorreu  bem,  agora  você  pode  instalar  o  pacote  “Squidguard”.     Na  interface  Web  de  configuração  do  squidGuard  ,  vá  até  a  seção  “LDAP  OPTIONS”  e  habilite  “ldap  filter”.   Em  “LDAP  DN”  insira  as  configurações  de  login  de  acordo  com  o  usuario  que  irá  pesquisar  usuários  e  grupos  para  o   filtro.  Não  utilize  usuario  com  privilégios  alem  do  necessário  para  o  squidguard  pesquisar  na  base  ldap,  esse  usuario  e   senha  constarão  em  texto  plano  nos  logs  e  arquivos  de  configuração  do  proxy.     Marque  as  opçoes  “Strip  Nt  domain  Name”  e  “Strip  Kerberos  realm”.     Como  eu  utilizei  samba  4  para  PDC  neste  ambiente,  a  versao  do  LDAP  selecionada  é  a  2.  Dependendo  do  seu   controlador  de  domínio  você  pode  precisar  usar  a  versao  3.     Salve  as  alterações  do  squidguard,  habilite  o  serviceo  e  aplique.     Agora  vamos  Filtrar  por  grupos.   Va  na  aba  “Groups  ACL”,  crie  um  novo  grupo  referenciando  o  grupo  em  questão  dentro  do  seu  controlador  de  domínio.     Neste  ambiente,  criei  uma  unidade  organizacional  chamada  “SERVICOS”  na  raiz  do  meu  domínio.  Dentro  dela  tenho   outra  unidade  organizacional  chamada  “proxy”.  Nessa  unidade  organizacional  criarei  meus  grupos  de  filtro  para  o   squidguard.  Criei  um  grupo  chamado  proxy_teste.   O  Caminho  do  meu  grupo  de  filtro  no  formato  LDAP  ficou  assim:     CN=proxy_teste,OU=proxy,OU=SERVICOS,DC=meudominio,DC=LOCAL     Para  que  o  squid  guard  saiba  aplicar  o  filtro  apenas  para  esse  grupo,  preencha  o  campo  “Client  (source)”  assim  (linha   única):     Ldapusersearch   ldap://192.168.0.4/DC=meudominio,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=proxy_teste%2c OU=proxy%2cOU=SERVICOS%2cDC=meudominio%2cDC=local))              

PfSense 2.2 - Squid NTLM.pdf

referenciando seu controlador na seção ”Host Overrides “e ”Domain overrides“ do DNS RESOLVER. Configure agora o kerberos para lidar com seu domíno.

87KB Sizes 12 Downloads 431 Views

Recommend Documents

Squid Dissection.pdf
Page 1 of 2. Name: Squid Dissection. External​ ​Anatomy​: Find each of the parts, check the box to indicate that you found it. 1. Locate the water jet. The water jet is found on the ventral​ side of the squid. 2. The tentacles (long) and arms

Squid Dissection.pdf
Biology Anatomy ▻ Squid Dissection ▻ Giant Squid ▻ Colossal Squid. Page 3 of 3. Squid Dissection.pdf. Squid Dissection.pdf. Open. Extract. Open with.

Squid Webquest.pdf
Page 3 of 4. Page 3 of 4. Squid Webquest.pdf. Squid Webquest.pdf. Open. Extract. Open with. Sign In. Main menu. Displaying Squid Webquest.pdf.

Squid en Centos.pdf
Esta política hace que SELinux. permita a Squid ... CentOS 5 y Red HatTM Enterprise Linux 5, ejecute: setsebool -P ... Page 3 of 15. Squid en Centos.pdf.

Squid en Centos.pdf
from where browsing should be allowed. http_access allow localnet. http_access allow localhost. Page 4 of 13. Squid en Centos.pdf. Squid en Centos.pdf. Open.

ReadPDF Mastering pfSense FULL EBOOK
companies for Oxberry LLC, an OEM company in northern. New Jersey.David's main programming experience is with C/C++. I have been involved with Linux ...