[FUG-BR] RES: - HOWTO - squid com autenticação no Active Directory
Sérgio Ferreira ( WGO )
sergio em wgo.com.br
Sexta Junho 20 15:14:04 BRT 2008
#####################################################################
## How-TO para autenticação de usuário do SQUID no Active Directory
##
## By, Sérgio Ferreira
##
## sergio at wgo.com.br - WGO Telecom
## sergioferreira at mmcb.com.br - Mitsubishi Motors
##
#####
squid autenticando no AD via winbind.
Neste tipo de autenticação, não aparecerá a janela pedindo
usuário e senha se o usuário já estiver autenticado no AD.
*** preparar o ambiente -
Compilar o kernel do freebsd com essas opções :
# Recursos de memoria para o SQUID
options MSGMNB=16384 # max # of bytes in a queue
options MSGMNI=64 # number of message queue identifiers
options MSGSEG=512 # number of message segments per queue
options MSGSSZ=64 # size of a message segment
options MSGTQL=2048 # max messages in system
options SHMSEG=16 # max shared mem id's per process
options SHMMNI=32 # max shared mem id's per system
options SHMMAX=2097152 # max shared memory segment size (bytes)
options SHMALL=4096 # max amount of shared memory (pages)
*** instalar o Samba
samba 3.0.x
./configure --with-winbind
configurar o samba - smb.conf
[global]
workgroup = _NOME_DOMINIO_ // nome NETBIOS
os level = 2
unix extensions = yes
map to guest = no
debug level = 1
socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
wins server = 172.30.32.15
veto files = /*.eml/*.nws/riched20.dll/*.{*}/
netbios name = PROXY01
security = domain
realm = MMCB.INTRANET
password server = 172.30.32.15, 172.30.32.95
encrypt passwords = yes
server string = proxycat - Samba Server
allow trusted domains = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = Yes
winbind separator = \\
hosts allow = 172.30. 172.26. 172.28.
# This tells samba to write log files per machine.
log file = /var/log/samba/samba.log
# This sets an alternate log level. Default is 2.
log level = 3
max log size = 50
interfaces = 172.30.32.80/255.255.255.0
## Agora, tem que juntar o servidor ao dominio do AD
#>/usr/local/samba/bin/net rpc join -S __NOME_DOMINIO__ -tmn -U
Administrator
password : ( forneça a senha do Administrador do AD )
Joined domain __NOME_DOMINIO__
Agora é iniciar o serviço do WinBind :
#>/usr/local/samba/sbin/winbindd
## Se tudo estiver certo, poderá usar os comandos :
#>wbinfo -t
checking the trust secret via RPC calls succeeded
#>wbinfo -u
vai trazer a lista de usuários do AD
#>wbinfo -g
vai trazer a lista de usuários de AD
*** Ok, agora vamos instalar o squid e configurá-lo :
proxycat1# squid -v
Squid Cache: Version 2.6.STABLE13
configure options: '--enable-dlmalloc'
'--enable-storeio=diskd ufs'
'--disable-ident-lookups'
'--enable-carp'
'--enable-removal-policies=heap lru'
'--enable-icmp'
'--enable-delay-pools'
'--with-openssl'
'--enable-forw-via-db'
'--enable-default-err-language=Portuguese'
'--enable-err-languages=Portuguese English Spanish'
'--enable-poll'
'--enable-leakfinder'
'--enable-underscores'
'--enable-auth=basic digest ntlm'
'--enable-basic-auth-helpers=PAM SMB NCSA LDAP'
'--enable-ntlm-auth-helpers=SMB no_check fakeauth'
'--enable-digest-auth-helpers=password'
'--with-samba-sources=/usr/programas/samba-3.0.20b'
'--enable-ntlm-fail-open'
'--enable-external-acl-helpers=ip_user unix_group
ldap_group wbinfo_group'
Agora o squid.conf :
## inicio do squid.conf ###
#debug_options all,1 33,3
visible_hostname cache.mmcb.com.br
http_port 3128
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
minimum_object_size 0 KB
maximum_object_size_in_memory 10 KB
cache_mem 48 MB
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir diskd /usr/local/squid/var/cache 15245 16 256
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/squid.out
cache_store_log none
mime_table /usr/local/squid/etc/mime.conf
pid_filename /var/run/squid.pid
ftp_passive on
ftp_sanitycheck on
hosts_file /etc/hosts
auth_param ntlm program /usr/local/samba/bin/ntlm_auth
--helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 20
auth_param basic program /usr/local/samba/bin/ntlm_auth
--helper-protocol=squid-2.5-basic
auth_param basic children 20
auth_param basic realm Autenticacao de acesso a internet
auth_param basic credentialsttl 2 hours
authenticate_cache_garbage_interval 1 hour
authenticate_ttl 1 hour
authenticate_ip_ttl 60 seconds
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
connect_timeout 2 minute
peer_connect_timeout 30 seconds
# Todas as redes da empresa
acl rede src 172.26.0.0/255.255.0.0
acl rede src 172.28.0.0/255.255.0.0
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
http_access allow localhost
acl Safe_ports port 80 81 8080
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 444 1049 1972 2848 5024 44718 # portas re-liberadas
acl Deny_ports port 5190 1863 445 # portas negadas
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
##--------------- Sites com permissoes diferenciadas ---------------------
# direto sem autenticação
acl site_xx dst 200.200.200.200
http_access allow site_xx rede
acl bradesco dst 200.155.80.12
http_access allow bradesco rede
# Permitir Acesso sem autenticacao a qualquer url deste arquivo
acl sem_senha url_regex "/usr/local/squid/etc/url_sem_senha.txt"
http_access allow sem_senha
#********************** AUTENTICACAO DE USUARIOS *************************
## Liberar google_earth para o login __login_do_usuário__
## 24/04/2007 - HelpDesk 31543
acl login_x proxy_auth _login_do_usuário_
acl google_earth url_regex -i google-earth
acl google_earth url_regex -i google.com
http_access allow login_x google_earth rede
# outras liberações por login do usuário
# Verificar grupo do usuario
external_acl_type NT_global_group ttl=600 children=35 %LOGIN
/usr/local/squid/libexec/wbinfo_group.pl
# Verificar gredenciais do usuario
acl Internet proxy_auth REQUIRED
# -------------Grupo Infra-Estrutura de Sistemas--------------------
acl InfraEstrutura external NT_global_group GG_CAT_Sistemas_Infra
http_access allow rede Internet InfraEstrutura
## GG_CAT_Sistemas_Infra é o nome do grupo no Active Directory
# -------------Grupos com acesso a internet-------------------------
acl InternetUsers_spo external NT_global_group GrInternetSP
acl InternetUsers_cat external NT_global_group GrInternet
## temos duas unidades...aqui eu verifico se o usuário tem acesso a internet
## para ter, tem que estar no grupo GrInternetSP ou GrInternet do AD
# -------------Grupo com acesso as urls abaixo sem restricao -------
acl url_allow url_regex -i "/usr/local/squid/etc/url_allow.txt"
http_access allow Internet InternetUsers_spo url_allow rede
http_access allow Internet InternetUsers_cat url_allow rede
## permito o acesso se :
## estiver autenticado ( Internet )
## for do grupo InternetUsers_spo ou _cat
## for da rede da empresa ( rede )
## e se a url estiver no arquivo url_allow.txt
# -------------Grupo Diretores--------------------------------------
acl Diretores external NT_global_group Internet_Diretores
http_access allow rede Internet Diretores
## diretores são diretores :-)
# -------------Grupo com acesso ao MSN -----------------------------
acl PermiteMsn external NT_global_group GG_ORG_MSN
acl MsnMessenger url_regex -i ADSAdClient31
acl MsnMessenger url_regex -i gateway.dll
acl MsnMessenger url_regex -i Client31.dll
acl MsnMessenger url_regex -i passport.com
acl MsnMessenger url_regex -i loginnet.passport.com
acl MsnMessenger url_regex -i hotmail.com
acl MsnMessenger url_regex -i messenger.hotmail.com
acl MsnMessenger url_regex -i ebuddy
acl MsnMessenger url_regex -i login.live.com
acl MsnMessenger url_regex -i msn.com
http_access allow Internet rede PermiteMsn MsnMessenger
# ---------Negar acesso ao site windows_update e MSN---------------
http_access deny MsnMessenger
# -------------Negar acesso a sites considerados inadequados -----
acl noporn url_regex -i "/usr/local/squid/etc/noporn.txt"
acl negar url_regex -i "/usr/local/squid/etc/porn_local.txt"
acl negar url_regex -i "/usr/local/squid/etc/negar.txt"
http_access deny !noporn negar
# ---------------- Negar Streamer ---------------------------
acl x-type req_mime_type -i ^application/octet-stream$
acl x-type req_mime_type -i application/octet-stream
acl x-type req_mime_type -i ^application/x-mplayer2$
acl x-type req_mime_type -i application/x-mplayer2
acl x-type req_mime_type -i ^application/x-oleobject$
acl x-type req_mime_type -i application/x-oleobject
acl x-type req_mime_type -i ^application/x-pncmd$
acl x-type req_mime_type -i application/x-pncmd
acl x-type req_mime_type -i ^video/x-ms-asf$
acl x-type req_mime_type -i video/x-ms-asf
http_access deny x-type
http_reply_access deny x-type
# ----------------------- Negar Extensao ---------------------------
acl download_files urlpath_regex \.exe$ \.asf$ \.arj$ \.bzip$ \.ace$ \.iso$
\.adt$ \.cbt$ \.cla$ \.cmd$ \.com$ \.cpl$ \.csc$ \.dot$ \.drv$ \.lha$ \.lzh$
\.mso$ \.ov?$ \.pot$ \.shs$ \.sys$ \.mp3$ \.asf$ \.wma$ \.wmf$ \.ttf$ \.rar$
\.scr$ \.mpeg$ \.mpg$ \.wave$ \.wav$ \.zip$
http_access deny download_files
# -------------Permitir acesso aos demais usuarios com permissao ---
http_access allow Internet InternetUsers_spo rede
http_access allow Internet InternetUsers_cat rede
# Negar todo o resto
http_access deny all
http_reply_access allow rede
http_reply_access deny all
cache_mgr infracat at mmcb.com.br
cache_effective_user squid
cache_effective_group squid
coredump_dir /usr/local/squid/var/
ie_refresh on
### fim do squid.conf #######
qualquer dúvida, entre em contato :
Abraços,
Sérgio Ferreira
WGO Telecom
-----Mensagem original-----
De: freebsd-bounces at fug.com.br [mailto:freebsd-bounces at fug.com.br] Em nome
de Sérgio Ferreira ( WGO )
Enviada em: sexta-feira, 20 de junho de 2008 13:29
Para: 'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'
Assunto: [FUG-BR] RES: Re: squid com autenticação no Active Directory.
Opa,
Tenho rodando aqui inclusive com autenticação de grupo.
Vou montar um how-to e postar a receita de bolo aqui na lista.
[]s
Sérgio Ferreira
WGO Telecom
-----Mensagem original-----
De: freebsd-bounces at fug.com.br [mailto:freebsd-bounces at fug.com.br] Em nome
de Diogo Dalfovo
Enviada em: sexta-feira, 20 de junho de 2008 13:18
Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Assunto: [FUG-BR] Re: squid com autenticação no Active Directory.
Prioridade: Baixa
Boa tarde
Uma forma que sei e ja usei sem ser a do do ntlm é usando pam_smb porem
imagino que deva exister outras formas
creio que o pessoal mais experiente deve responder mais coisas
Diogo Dalfovo
On Fri, 20 Jun 2008 13:04:07 -0300, "Luis Barcellos"
<luisbarcellos at gmail.com> wrote:
> Boa tarde a todos!
>
>
> Depois de uma manhã goolgleando sem sucesso, gostaria de saber se alguém
> tem
> uma boa solução para autenticação do squid no AD, que não seja
> atravez do
> ntlm, pois o meu domínio é um 2003 nativo.
>
> []s
>
> Luis Barcellos
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
Mais detalhes sobre a lista de discussão freebsd