Squid:Squid autenticando com o Samba

From Wiki

Procedimento

Preparando o Samba

Aqui estaremos configurando o samba para fornecer autenticação ao squid.

Para isso iremos adicionar criar um compartilhamento de rede e criarmos o arquivo de autenticação lá


Samba - Criando/Alterando o netlogon

Crie ou altere o diretório netlogon

mkdir /home/netlogon

Crie o arquivo proxyauth

echo "allow" > /home/netlogon/proxyauth

Definindo a permissão

chmod a+r /home/netlogon/proxyauth


Alterando as configurações do Samba

Edite o arquivo /etc/samba/smb.conf.

Crie ou edite item netlogon deixando da seguinte forma

[netlogon]
       comment = Network Logon Service
       path = /home/netlogon
       browseable = No

Salve e feche o arquivo.

Reiniciando o Samba e testando

Reinicie o servidor apache com o comando

service smb restart


Preparando o Squid

Instalando os pacotes necessários

  yum -y install samba-client
  yum -y install squid


Testando a autenticação

Para testar a autenticação faça o seguinte

Digite

 /usr/lib/squid/smb_auth -d -W SEU_DOMINIO -U IP_DO_SERVIDOR

Coloque o usuário e a senha

 usuário senha

Exemplo:

[root@firewall1 ~]# /usr/lib/squid/smb_auth -W EBASSO -U 192.168.1.10
ebasso senhaverdadeira
OK
ebasso senhafalsa
ERR

Depois de um Control-C para fechar

Editando o arquivo /etc/squid/squid.conf

Comente a linha

#http_access deny all

Adicione a seguinte configuração

# Autenticacao integrada com a base do SaMBa
auth_param basic program /usr/lib/squid/smb_auth -W SEU_DOMINIO -U IP_DO_SERVIDOR
auth_param basic children 5
auth_param basic realm Acesso Internet SEU_DOMINIO
auth_param basic credentialsttl 2 hour

acl autenticacao proxy_auth REQUIRED
http_access allow autenticacao

Lembrando de trocar os itens SEU_DOMINIO e IP_DO_SERVIDOR, respectivamente, pelo seu domínio da rede e o ip do servidor samba

Reiniciando o Squid e testando

Reinicie o servidor apache com o comando

service squid restart


Abra o browser e teste.

Apêndice - Versão completa do Squid.conf

http_port 192.168.1.10:3128

hierarchy_stoplist cgi-bin ?

maximum_object_size 512 MB
cache_dir ufs /var/spool/squid 3500 16 256

acl QUERY urlpath_regex cgi-bin \?

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

access_log /var/log/squid/access.log squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

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
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
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 CONNECT method CONNECT
cache deny QUERY

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost
#http_access deny all
#http_access allow all

http_reply_access allow all

# Autenticacao integrada com a base do Samba
auth_param basic program /usr/lib/squid/smb_auth -W EBASSO -U 192.168.1.10
auth_param basic children 5
auth_param basic realm Acesso Internet EBASSO
auth_param basic credentialsttl 2 hour

acl autenticacao proxy_auth REQUIRED
http_access allow autenticacao

icp_access allow all

coredump_dir /var/spool/squid


Ver também