Enviado em 11/10/2015 - 17:34h
Boas, tudo bem pessoal ?
Estou com o seguinte cenário:
Necessidade: Autenticar usuários do squid por meio de um script php com banco de dados mysql
Distribuição: Debian 8
Servidor Proxy: squid3
Firewall configurado com iptables
Servidor LAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Consegui fazer o proxy funcionar no modo transparente, mas preciso que os usuários autentiquem no mysql por meio de uma interface php, após se cadastrarem, o cadastro de usuários já está funcionando, preciso apenas saber como faço o squid ler o programa php que traz os usuarios do banco e autenticar ou não os usuários.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Meu squid.conf está assim:
#Aqui definimos a porta que o servidor utilizara e que o acesso sera transparente
http_port 3128 transparent
#Aqui definimos o nome do host na rede
visible_hostname localhost
#Aqui definimos o email do administrador de rede
cache_mgr jorge.pinto@sp.senai.br
#Aqui definimos o diretorio que contem as mensagens de erros em portugues
error_directory /usr/share/squid3/errors/Portuguese
#Define palavras que se for encontradas na url, a pagina sera ser carregada direto do cache.
hierarchy_stoplist cgi-bin ?
#Define a quantidade de memoria que o servidor ira usar para o cache.
cache_mem 256 MB
#Define o tamanho máximo do objeto que poderá ser armazenado na memória, senão será armazenado no disco rÃÂgido.
maximum_object_size_in_memory 2 MB
#Define o tamanho máximo do objeto que poderá ser armazenado no disco rÃÂgido, senão será descartado o objeto.
maximum_object_size 8 MB
#Especifica o diretório do cache, aonde será armazenado os objetos
#cache_dir [sistema_arquivos] [diretorio] [tamanho cache] [qtde_diretorios] [qtde_subdoretorios]
cache_dir ufs /var/spool/squid3 256 128 256
#Define o tempo de vida dos objetos no cache, para que sempre o squid for verificá-los e saber se é necessário atualizá-los ou não.
#refresh_pattern [objeto] [tempo em minutos] [porcentagem de alteracao] [tempo em minutos]
refresh_pattern ^ftp: 360 20% 10080
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
#Define o caminho para o log de acessos
access_log /var/log/squid3/access.log
#Define o caminho para o log do cache
cache_log /var/log/squid3/cache.log
#Define duas acl (localhost e minharede) do tipo src (IP de origem) e adiciona o ip do servidor e o ip da rede
acl all src all
acl localhost src 127.0.0.1/32
acl minharede src 10.0.0.0/8
#Crie uma acl (manager) com o tipo proto (protocolo) e adicione o protocolo "cache_object"
#O protocolo "cache_object" é usado para obter informações sobre o estado do Squid.
#acl manager proto cache_object
#Permite que apenas o servidor tenha acesso a informacoes do servidor
http_access allow manager localhost
#Nega o acesso aos demais
http_access deny manager
#Cria uma acl do tipo method (método de requisição) e adicione o método PURGE
#O método de requisição PURGE serve para limpar/excluir objetos armazenados no cache.
acl purge method PURGE
#Configura para que apenas o servidor tenha permissao de excluir objetos do cache
http_access allow purge localhost
#Nega a exclusao de objetos do cache aos demais
http_access deny purge
#Cria uma acl do tipo port (porta) e adicione as portas que serão liberadas:
acl Safe_ports port 21 # ftp
acl Safe_ports port 70 # gopher
acl Safe_ports port 80 # http
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 # https
acl Safe_ports port 488 # gss-http
acl Safe_ports port 563 # nntps
acl Safe_ports port 591 # filemaker
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # unregistered ports
#Bloqueia o acesso em portas que não foram liberadas
http_access deny !Safe_ports
#Cria uma acl do tipo method (método de requisição) e adicione o método CONNECT, que permite fazer conexão direta:
acl connect method CONNECT
#Crie uma acl do tipo port (porta) e adiciona as portas dos protocolos com SSL
acl SSL_ports port 443 # https
acl SSL_ports port 563 # nntps
acl SSL_ports port 873 # rsync
#Bloqueia o acesso em portas que não foram liberadas para conexão direta,
http_access deny connect !SSL_ports
#ACLS DE CONTROLE DE ACESSOS#
#Cria uma acl do tipo src (IP de origem) e adicione os ips que serao bloqueados
#Cria uma acl do tipo src (IP de origem) e adicione os ips que serao liberad os
acl ips_liberados src "/etc/squid3/restricoes/ips_liberados"
acl ips_bloqueados src "/etc/squid3/restricoes/ips_bloqueados"
#Cria uma acl do tipo url_regex (expressão regular na url) que sera utilizad a para bloquear palavras
acl palavras url_regex -i "/etc/squid3/restricoes/palavras"
#A acl do tipo urlpath_regex é semelhante a url_regex, só que é ignorado o d omÃÂnio e protocolo
#Vamos utilizar para bloquear extensoes de arquivos
acl download_bloqueado urlpath_regex -i "/etc/squid3/restricoes/download_bloqueado"
acl download_liberado urlpath_regex -i "/etc/squid3/restricoes/download_bloqueado"
#Cria uma acl (sites_liberados) do tipo dstdomain (domÃÂnio de destino) e adicione um dóminio iniciando com o ponto
acl sites_liberados dstdomain "/etc/squid3/restricoes/sites_liberados"
#Cria uma acl (sites_bloqueados) do tipo dstdomain (domÃÂnio de destino) e adicione um dóminio iniciando com o ponto
acl sites_bloqueados dstdomain "/etc/squid3/restricoes/sites_bloqueados"
#Permite o acesso irrestrito aos ips bloqueados
http_access allow ips_liberados
#Nega o acesso aos ips bloqueados
http_access deny ips_bloqueados
#Nega o acesso a acl download bloqueado
http_access deny download_bloqueado
#Permite o acesso a acl download_liberado
http_access allow download_liberado
#Nega o acesso a acl sites_bloqueados
http_access deny sites_bloqueados
#Permite o acesso a acl sites_liberados
http_access allow sites_liberados
#Nega o acesso as palavras da acl palavras
http_access deny palavras
#Permite que somente a rede e o servidor acessem a internet pelo proxy
#Essa regra tem de estar sempre no final do arquivo de configuracao
http_access allow minharede
http_access allow localhost
#Nega os demais
http_access deny all
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Valeu Galera ! XD
Estou com o seguinte cenário:
Necessidade: Autenticar usuários do squid por meio de um script php com banco de dados mysql
Distribuição: Debian 8
Servidor Proxy: squid3
Firewall configurado com iptables
Servidor LAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Consegui fazer o proxy funcionar no modo transparente, mas preciso que os usuários autentiquem no mysql por meio de uma interface php, após se cadastrarem, o cadastro de usuários já está funcionando, preciso apenas saber como faço o squid ler o programa php que traz os usuarios do banco e autenticar ou não os usuários.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Meu squid.conf está assim:
#Aqui definimos a porta que o servidor utilizara e que o acesso sera transparente
http_port 3128 transparent
#Aqui definimos o nome do host na rede
visible_hostname localhost
#Aqui definimos o email do administrador de rede
cache_mgr jorge.pinto@sp.senai.br
#Aqui definimos o diretorio que contem as mensagens de erros em portugues
error_directory /usr/share/squid3/errors/Portuguese
#Define palavras que se for encontradas na url, a pagina sera ser carregada direto do cache.
hierarchy_stoplist cgi-bin ?
#Define a quantidade de memoria que o servidor ira usar para o cache.
cache_mem 256 MB
#Define o tamanho máximo do objeto que poderá ser armazenado na memória, senão será armazenado no disco rÃÂgido.
maximum_object_size_in_memory 2 MB
#Define o tamanho máximo do objeto que poderá ser armazenado no disco rÃÂgido, senão será descartado o objeto.
maximum_object_size 8 MB
#Especifica o diretório do cache, aonde será armazenado os objetos
#cache_dir [sistema_arquivos] [diretorio] [tamanho cache] [qtde_diretorios] [qtde_subdoretorios]
cache_dir ufs /var/spool/squid3 256 128 256
#Define o tempo de vida dos objetos no cache, para que sempre o squid for verificá-los e saber se é necessário atualizá-los ou não.
#refresh_pattern [objeto] [tempo em minutos] [porcentagem de alteracao] [tempo em minutos]
refresh_pattern ^ftp: 360 20% 10080
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
#Define o caminho para o log de acessos
access_log /var/log/squid3/access.log
#Define o caminho para o log do cache
cache_log /var/log/squid3/cache.log
#Define duas acl (localhost e minharede) do tipo src (IP de origem) e adiciona o ip do servidor e o ip da rede
acl all src all
acl localhost src 127.0.0.1/32
acl minharede src 10.0.0.0/8
#Crie uma acl (manager) com o tipo proto (protocolo) e adicione o protocolo "cache_object"
#O protocolo "cache_object" é usado para obter informações sobre o estado do Squid.
#acl manager proto cache_object
#Permite que apenas o servidor tenha acesso a informacoes do servidor
http_access allow manager localhost
#Nega o acesso aos demais
http_access deny manager
#Cria uma acl do tipo method (método de requisição) e adicione o método PURGE
#O método de requisição PURGE serve para limpar/excluir objetos armazenados no cache.
acl purge method PURGE
#Configura para que apenas o servidor tenha permissao de excluir objetos do cache
http_access allow purge localhost
#Nega a exclusao de objetos do cache aos demais
http_access deny purge
#Cria uma acl do tipo port (porta) e adicione as portas que serão liberadas:
acl Safe_ports port 21 # ftp
acl Safe_ports port 70 # gopher
acl Safe_ports port 80 # http
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 # https
acl Safe_ports port 488 # gss-http
acl Safe_ports port 563 # nntps
acl Safe_ports port 591 # filemaker
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # unregistered ports
#Bloqueia o acesso em portas que não foram liberadas
http_access deny !Safe_ports
#Cria uma acl do tipo method (método de requisição) e adicione o método CONNECT, que permite fazer conexão direta:
acl connect method CONNECT
#Crie uma acl do tipo port (porta) e adiciona as portas dos protocolos com SSL
acl SSL_ports port 443 # https
acl SSL_ports port 563 # nntps
acl SSL_ports port 873 # rsync
#Bloqueia o acesso em portas que não foram liberadas para conexão direta,
http_access deny connect !SSL_ports
#ACLS DE CONTROLE DE ACESSOS#
#Cria uma acl do tipo src (IP de origem) e adicione os ips que serao bloqueados
#Cria uma acl do tipo src (IP de origem) e adicione os ips que serao liberad os
acl ips_liberados src "/etc/squid3/restricoes/ips_liberados"
acl ips_bloqueados src "/etc/squid3/restricoes/ips_bloqueados"
#Cria uma acl do tipo url_regex (expressão regular na url) que sera utilizad a para bloquear palavras
acl palavras url_regex -i "/etc/squid3/restricoes/palavras"
#A acl do tipo urlpath_regex é semelhante a url_regex, só que é ignorado o d omÃÂnio e protocolo
#Vamos utilizar para bloquear extensoes de arquivos
acl download_bloqueado urlpath_regex -i "/etc/squid3/restricoes/download_bloqueado"
acl download_liberado urlpath_regex -i "/etc/squid3/restricoes/download_bloqueado"
#Cria uma acl (sites_liberados) do tipo dstdomain (domÃÂnio de destino) e adicione um dóminio iniciando com o ponto
acl sites_liberados dstdomain "/etc/squid3/restricoes/sites_liberados"
#Cria uma acl (sites_bloqueados) do tipo dstdomain (domÃÂnio de destino) e adicione um dóminio iniciando com o ponto
acl sites_bloqueados dstdomain "/etc/squid3/restricoes/sites_bloqueados"
#Permite o acesso irrestrito aos ips bloqueados
http_access allow ips_liberados
#Nega o acesso aos ips bloqueados
http_access deny ips_bloqueados
#Nega o acesso a acl download bloqueado
http_access deny download_bloqueado
#Permite o acesso a acl download_liberado
http_access allow download_liberado
#Nega o acesso a acl sites_bloqueados
http_access deny sites_bloqueados
#Permite o acesso a acl sites_liberados
http_access allow sites_liberados
#Nega o acesso as palavras da acl palavras
http_access deny palavras
#Permite que somente a rede e o servidor acessem a internet pelo proxy
#Essa regra tem de estar sempre no final do arquivo de configuracao
http_access allow minharede
http_access allow localhost
#Nega os demais
http_access deny all
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Valeu Galera ! XD