Ajuda para autenticar o squid por grupos do AD [RESOLVIDO] [TUTORIAL]
-
Ola danielz,
Obrigado pela ajuda inicial.
Me desculpe pela demora, pois nao tive tempo suficiente para testar as regras.
Vamos lá:
Eu consegui autenticar o user no AD. Mas estou apanhando nas regras das ACL's.
Apos preencher conforme vc indicou acima, a autenticação funciona perfeito para cada usuario.
Mas minha intenção é autenticar por grupo, conforme escrevi no inicio do post, mas nao estou muito confuso.No AD, OU=Grupos, criei um grupo chamado internet.
Testei com 2 usuarios, ricardo e userteste.
O ricardo esta dentro do grupo internet, e o userteste, nao esta no grupo.
Quando solicita autenticação para navegar, digito o login e senha do ricardo, e a internet é liberada.
Ja com o iuser, nao navega, fica pedindo senha.Desta forma, eu acredito que está funcioando a autenticação por grupo, ja que um usuario navega e outro não.
Gostaria de aprender como definir os grupos nas ACL, pois quando o ricardo navega, a internet está full.
Quero definir regras, por exemplo, criar um grupo "acesso-restrito", e este grupo só ira navegar nos sites cadastrados em um txt.
Outro grupo, "internet-pesquisa", navega mas com restrinção dos bloqueios que eu definir.Desde ja agradeço.
-
Tambem fiz os seguintes testes:
Alterando o squid.incAbaixo desta linha: acl password proxy_auth REQUIRED
Eu coloquei:
#AUTENTICACAO PERSONALIZADA GRUPOS DO AD
#acl ldapacesso-restrito external ldap_group acesso-restrito
acl acesso-restrito proxy_auth REQUIRED
acl acesso-liberado proxy_auth REQUIRED
#acl acesso-restrito proxy_auth acesso-restrito REQUIRED
acl bloqueio url_regex -i "/var/squid/acl/bloqueio.acl"
acl liberado url_regex -i "/var/squid/acl/liberado.acl"
http_access allow acesso-liberado
http_access allow liberado
http_access deny bloqueio
http_access allow acesso-restrito liberadoMesmo assim o squid trata os 2 grupos com os mesmos direitos de acesso.
Detalhe: do jeito que esta a configuração acima, nenhum bloqueio é feito no grupo acesso-restrito
Se eu comentar as linhas referente ao grupo acesso-liberado, os bloqueios funcionam perfeitamente para o grupo acesso-restrito. -
Mesmo assim o squid trata os 2 grupos com os mesmos direitos de acesso.
Detalhe: do jeito que esta a configuração acima, nenhum bloqueio é feito no grupo acesso-restrito
Se eu comentar as linhas referente ao grupo acesso-liberado, os bloqueios funcionam perfeitamente para o grupo acesso-restrito.Por partes… ;)
-
Pelo menos no seu post aqui do fórum você está abrindo as áspas sem fechar na linha em que especifica arquivos;
-
Não entendi direito a lógica da sequência dos seus bloqueios e liberações. Veja que o SQUID vai executar as ACLs na ordem seqüencial e, no seu caso, está assim:
1º = Libera acesso os usuários pertencentes ao "acesso-liberado"
2º = Libera o acesso as URLs do arquivo "liberado.acl"
3º = Nega o acesso as URLS do arquivo "bloqueio.acl"
4º = Libera o acesso aos usuários que pertencem ao grupo "acesso-restrito" e as URLs do arquivo "liberado.acl"Sabendo que as ACLs são executadas sequencialmente e que se uma ACL é executada as posteriores NÃO SÃO executadas, é isso mesmo que você quer? Ao meu ver está um pouco confusa a ordem das liberações/bloqueios!
Abraços!
Jack -
-
JackL
Obrigado pela ajuda.
Vamos lá:
Sobre as aspas, eu realmente esqueci de colocar, mas somente aqui no post, no squid.inc está correto.
A ideia utilizada nas sequencias das ACLs, foi fazer o bloqueio/liberação da seguinte forma:
1- O grupo "acesso-liberado", é permitido primeiro, para que nao caia em nenhum bloqueio;
2- A ACL "liberado.acl", defini onde eu coloco os sites que nao podem ser bloqueados, mesmo que alguma palavra esbarre com algum filtro;
3- bloqueio.acl, bloqueia os sites, antes de liberar o acesso do grupo "acesso-restrito";
4- Esta acredito que me enganei na sequencia, pois a "liberado.acl", ja foi permitida na segunda posição. Nao tem o porque eu colocar a ACL desta forma.Como sugere a sequencia destas ACL's ?
Saberia me dizer ficaria as ACL's, declarando os grupos cadastrados no AD ? -
4- Esta acredito que me enganei na sequencia, pois a "liberado.acl", ja foi permitida na segunda posição. Nao tem o porque eu colocar a ACL desta forma.
Exato…
Como sugere a sequencia destas ACL's ?
Acho que "consertando" a regra mencionada acima, basta que você coloque como última regra (depois desta "http_access allow acesso-restrito"), a regra que nega TUDO para TODOS: "http_access deny all"!
Por favor, teste e reporte por aqui mesmo os resultados! ;)
Abraços!
Jack -
Jack
Como estou editando diretamente o arquivo squid.inc, a regra "http_access deny all" ja vem default no final.
Fiz os testes conforme vc mencionou, mas nao funcionou.
Para que vc analise detalhadamente, estou postando meu squid.conf, depois de alterado o squid.inc.OBS: Mudei os nomes das ACL's: Internet-TI = Acesso full, Internet-Bancos = Limitado.
Ao observar as ACL's Internet-TI e Internet-Bancos, quando comento a ACL Internet TI e deixo apenas a Internet-Bancos, o bloqueio funciona conforme meus planos. Mas ao deixar as 2 ACL's (que na verdade gostaria que funcionasse como os grupos do AD), o bloqueio nao funciona para ambos os grupos.
Lembrando que ja criei os 2 grupos acima no AD, na OU=Grupos.
A autenticação é feita normalmente por usuario cadastrado no AD.
Tenho um terceiro usuario que uso para teste, e não esta em nenhum grupo. Este nao consegue autenticar para navegar.
Até ai tudo bem, pois se nao está em nenhum grupo, não é para navegar mesmo.Do not edit manually !
http_port 10.0.0.1:3128
icp_port 0pid_filename /var/run/squid.pid
cache_effective_user proxy
cache_effective_group proxy
error_directory /usr/local/etc/squid/errors/Portuguese
icon_directory /usr/local/etc/squid/icons
visible_hostname pfsense
cache_mgr admin@localhost
access_log /dev/null
cache_log /var/squid/logs/cache.log
cache_store_log none
shutdown_lifetime 3 secondsAllow local network(s) on interface(s)
acl localnet src 10.0.0.0/255.255.255.0
httpd_suppress_version_string on
uri_whitespace strip
dns_nameservers 10.1.0.1
cache_mem 8 MB
maximum_object_size_in_memory 32 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir ufs /var/squid/cache 200 16 256
minimum_object_size 0 KB
maximum_object_size 4 KB
offline_mode off
cache_swap_low 90
cache_swap_high 95No redirector configured
Setup some default acls
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 3128 1025-65535
acl sslports port 443 563
acl manager proto cache_object
acl purge method PURGE
acl connect method CONNECT
acl dynamic urlpath_regex cgi-bin ?
acl blacklist dstdom_regex -i "/var/squid/acl/blacklist.acl"
cache deny dynamic
http_access allow manager localhosthttp_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !safeports
http_access deny CONNECT !sslportsAlways allow localhost connections
http_access allow localhost
##MODIFICACOES PERSONALIZADAS
request_body_max_size 0 KB
reply_body_max_size 0 deny all
delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_initial_bucket_level 100
delay_access 1 allow allBlock access to blacklist domains
http_access deny blacklist
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -v 3 -b dc=dominio,dc=com,dc=br -D cn=Administrator,cn=Users,dc=dominio,dc=com,dc=br -w 1234 -f "cn=%s" -u uid -P 10.0.0.2:389
auth_param basic children 5
auth_param basic realm Please enter your credentials to access the proxy
auth_param basic credentialsttl 60 minutes
acl password proxy_auth REQUIRED#AUTENTICACAO PERSONALIZADA GRUPOS DO AD
#acl ldapInternet-Bancos external ldap_group Internet-Bancos
#acl Internet-Bancos proxy_auth REQUIRED
#acl Internet-TI proxy_auth REQUIRED
#acl Internet-Bancos proxy_auth Internet-Bancos REQUIRED
acl Internet-Bancos proxy_auth REQUIRED "/var/squid/acl/gp_bancos.acl"
acl Internet-TI proxy_auth REQUIRED "/var/squid/acl/gp_ti.acl"
acl bloqueio url_regex -i "/var/squid/acl/bloqueio.acl"
acl liberado url_regex -i "/var/squid/acl/liberado.acl"
http_access allow Internet-TI
http_access allow liberado
http_access deny bloqueio
http_access allow Internet-Bancos
http_access allow password localnetDefault block all to be sure
http_access deny all
-
Jack
Como estou editando diretamente o arquivo squid.inc, a regra "http_access deny all" ja vem default no final.
Fiz os testes conforme vc mencionou, mas nao funcionou.
Para que vc analise detalhadamente, estou postando meu squid.conf, depois de alterado o squid.inc.OBS: Mudei os nomes das ACL's: Internet-TI = Acesso full, Internet-Bancos = Limitado.
Ao observar as ACL's Internet-TI e Internet-Bancos, quando comento a ACL Internet TI e deixo apenas a Internet-Bancos, o bloqueio funciona conforme meus planos. Mas ao deixar as 2 ACL's (que na verdade gostaria que funcionasse como os grupos do AD), o bloqueio nao funciona para ambos os grupos.
Lembrando que ja criei os 2 grupos acima no AD, na OU=Grupos.
A autenticação é feita normalmente por usuario cadastrado no AD.
Tenho um terceiro usuario que uso para teste, e não esta em nenhum grupo. Este nao consegue autenticar para navegar.
Até ai tudo bem, pois se nao está em nenhum grupo, não é para navegar mesmo.Antes de mais nada, é preciso entender que estas configurações fogem do escopo da GUI do PFSense. Por isso, a partir de agora nossa relação é diretamente com o pacote SQUID.
Bem, o que você tem no arquivo "/var/squid/acl/gp_bancos.acl"? O nome do grupo?
Pelo que consigo perceber, aparentemente o processo de autenticação do pacote SQUID junto ao WinServer não está ocorrendo 100%. Minha primeira dica é que você faça uma cópia de segurança deste seu arquivo "squid.inc" e tente adpatar as configurações da seção de autenticação as dicas deste post: http://www.papercut.com/kb/Main/ConfiguringSquidProxyToAuthenticateWithActiveDirectory
Veja como o autor trabalhar com a construção da ACL que tem o grupo de usuários com permissão de navegar na web. Acho que este artigo pode resolver esta sua pendenga!
Tente fazer e qualquer dúvida específica, poste por aqui mesmo…
Abraços!
Jack -
JackL
Obrigado pela ajuda.
Demorei uns dias para responder, mas venho com boas noticias. Consegui fazer o squid autenticar por grupo no AD.
Estou à semanas procurando estas informações, mas não encontrei.
O ruim é que tem pessoas que ja descobriram como fazer, mas nao compartilham a informação.
Portanto, resolvi escrever um passo a passo, compartilhando esta dica.
A URL que vc me passou, ja inclui no tutorial, junto a seção de "referências".
Sobre o tutorial, qualquer comentario, critica ou sugestão será bem vindo.Agradeço ao JackL e danielz, que me ajudaram de alguma forma.
OBS.: Não consigo anexar o arquivo PDF, pois o forum não aceita esta extenção de arquivo.
Alguem tem alguma sugestão de onde postar ? -
Legal… fico feliz em saber que você resolveu a sua pendenga (inclusive coloquei o "RESOLVIDO" no título deste meu post... Isso ajuda a galera a se organizar em fóruns públicos como este).
Fico feliz também em saber que conseguimos lhe ajudar de alguma forma e, mais feliz ainda, em saber que você está retornando à comunidade uma contribuição (tutorial). Sou um pouco novo "neste fórum", por isso não sei se existe uma área específica para divulgação deste tipo de material. Logo aí em cima é possível ver pelo menos 2 tópicos fixos, com tutoriais no estilo do seu... Provavelmente os moderadores podem aprovar este upload!
De todo modo, deixo o http://www.JACK.eti.br à disposição para publicação deste seu material. Assim ficará mais fácil referenciar por aqui - apontando apenas o link! ;)
Abraços!
Jack -
Jack
te enviei um email em particular sobre o assunto
-
Jack
te enviei um email em particular sobre o assuntoO documento em PDF, de autoria do colega Ricardo, já pode ser acessado a partir deste link: http://www.jack.eti.br/www/arquivos/outros_tutoriais/pfsense/autenticacao_grupos_AD_pfsense.pdf
Abraços!
Jack -
O documento em PDF, de autoria do colega Ricardo, já pode ser acessado a partir deste link: http://www.jack.eti.br/www/arquivos/outros_tutoriais/pfsense/autenticacao_grupos_AD_pfsense.pdf
Agora o artigo do Ricardo também pode ser acessado diretamente pelo blog: http://www.jack.eti.br/www/?p=3052
Abraços!
Jack -
Olá Jack,
Estamos na luta pra fazer o squid funcionar por grupo do AD, li o seu tuto, o do link abaixo, depois alterei o meu squid.inc. Porém o meu squid não sobe… Fica registrando o erro a seguir no log:
squid[16863]: Bungled squid.conf line 83: external_acl_type ldap_group children=30
Onde estou errando?
Desde já sou muito grato pelas contribuições de todos, pois são foruns como este que nos estimula a utilizar ferramentas em linux, só não aprende quem não quer mesmo…
Veja abaixo o trecho adicionado no squid.inc
seguindo –-> http://forum.pfsense.org/index.php/topic,20208.0.html
######################################################################
# Estrutura dentro do AD:
# Domínio: srg.net, Servidor: SERVER4, IP: 192.168.1.202
# Admin: Users\administrador
# Grupos de Internet: g_produtividade, g_total
# Unidade Org.: u_internet
#######################################################################Define a autenticação ldap e os parâmetros usados
external_acl_type ldap_group children=30
%LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
"minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389#Define a ACL do tipo external para usar os grupos do AD
external_acl_type ldap_group
%LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=administrador,cn=Users,dc=srg,dc=net" -w
"minha senha" -f "(&(&(objectClass=person)(sAMAccountName=%u))(memberOf=%g))" -h 192.168.1.202#Define uma ACL denominada "produtividade" para um grupo que terá acesso restrito.
acl gprodutividade external ldap_group CN=g_produtividade, OU= u_internet, DC=srg,dc=net#Define uma ACL para acesso restrito aos domínios listados em um arquivo texto
acl restrito dstdom_regex -i "/var/squid/acl/whitelist.acl"#Define a diretiva formada pela combinação das ACLs acima definidas (AND lógico).
http_access allow gprodutividade restrito#Define uma ACL para um grupo com acesso total.
acl gtotal external ldap_group CN=g_total, OU= u_internet, DC=srg,dc=net#Define a diretiva de acesso total.
http_access allow gtotal######################################################################
-
@ValterTI11:
#Define a autenticação ldap e os parâmetros usados
external_acl_type ldap_group children=30
%LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
"minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389@ValterTI11,
Antes de qualquer coisa, grato pelos elogios…
No entanto, o artigo foi escrito pelo @ricardodru. Eu apenas o publiquei no meu blog.Em relação a sua dúvida, veja que a linha "external_acl_type ldap_group" é inteira, ou seja, deve ser escrito tudo na mesma linha "external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group..."
Uma pequena correção: O PFSense é baseado no FreeBSD, não no Linux (embora ambos sejam softwares livres, são sistemas operacionais bem diferentes). ;-)
Abraços!
Jack -
Fala Jack,
Era isso mesmo, coloquei tudo em uma linha só e o squid subiu sem problemas.
Eu sinceramente não sabia que o FreeBSB e Linux não são a mesma coisa… Aprendendo mais uma... vou pesquisar mais a respeito...
Porém agora estou no 2º Round com o squid + LDAP...
É o seguinte a estação pede o usuário e senha, mas fica repetindo isso sem para e não navega...Grato por mais essa...
Veja como está as minhas ACLs:
#Define a ACL do tipo external para usar os grupos do AD
external_acl_type ldap_group %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=squid,cn=Users,dc=srg,dc=net" -w "senha" -f "(&(&(objectClass=person)(sAMAccountName=%v))(memberOf=cn=%a, ou=g_internet, dc=srg, dc=net))" -h 192.168.1.202 -p 389#Vincula as ACLs com base nos grupos do AD
acl gprodutividade external ldap_group g_produtividade
acl gtotal external ldap_group g_total
acl gbloqueados external ldap_group g_bloqueados#Define uma ACL para acesso restrito aos domínios listados em um arquivo texto produtividade.acl
acl restrito dstdom_regex -i "/var/squid/acl/produtividade.acl"#Define a diretiva formada pela combinação das ACLs acima definidas
http_access deny gbloqueados
http_access deny gprodutividade !restrito
http_access allow gtotal#######################################################################
@ValterTI11:
#Define a autenticação ldap e os parâmetros usados
external_acl_type ldap_group children=30
%LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
"minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389@ValterTI11,
Antes de qualquer coisa, grato pelos elogios…
No entanto, o artigo foi escrito pelo @ricardodru. Eu apenas o publiquei no meu blog.Em relação a sua dúvida, veja que a linha "external_acl_type ldap_group" é inteira, ou seja, deve ser escrito tudo na mesma linha "external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group..."
Uma pequena correção: O PFSense é baseado no FreeBSD, não no Linux (embora ambos sejam softwares livres, são sistemas operacionais bem diferentes). ;-)
Abraços!
Jack -
Valter
Vou tentar ajuda-lo a resolver isso
O que esta acontecendo, é que o squid nao consegue identificar o grupo em que o usuário esta cadastrado.No trecho abaixo, descrito no seu squid.inc, ficou meio confuso.
#Vincula as ACLs com base nos grupos do AD
acl gprodutividade external ldap_group g_produtividade
acl gtotal external ldap_group g_total
acl gbloqueados external ldap_group g_bloqueadosPor exemplo, no AD, qual o nome do grupo "gprodutividade" ?
No AD, este grupo chama-se gprodutividade, ou g_produtividade ?
Acho que vc confundiu ai.
Veja no meu tutorial, a linha abaixo:
acl ldapInternet-TI external ldap_group Internet-TIEu defini apenas como nome da ACL "ldapInternet-TI", ja no AD, este grupo esta definido como "Internet-TI".
A ordem é essa:acl "nomedaACL" external ldap_group "grupo cadastrdo no AD"
OBS: Utilizei as aspas "" apenas para referencia, pois na linha de configuração, estas aspas nao devem ser inseridas.
Em nome da ACL, vc define qualquer nome, em grupo cadastrado no AD, vc deve inserir o nome correto que esta cadastrado no AD.
Lembrando, em ""nome da ACL", deverá colocar um nome diferente do nome do grupo do AD.
Faça os testes ai e poste o resultado. -
Olá RicardoDru,
É o seguinte:
Grupos de Internet no AD: g_produtividade, g_total, g_bloqueados
e as ACLs gprodutividade, gtotal, gbloqueadosEntão escrevi acho certo mesmo. Ok?
acl gprodutividade external ldap_group g_produtividade
acl gtotal external ldap_group g_total
acl gbloqueados external ldap_group g_bloqueadosValter
Vou tentar ajuda-lo a resolver isso
O que esta acontecendo, é que o squid nao consegue identificar o grupo em que o usuário esta cadastrado.No trecho abaixo, descrito no seu squid.inc, ficou meio confuso.
#Vincula as ACLs com base nos grupos do AD
acl gprodutividade external ldap_group g_produtividade
acl gtotal external ldap_group g_total
acl gbloqueados external ldap_group g_bloqueadosPor exemplo, no AD, qual o nome do grupo "gprodutividade" ?
No AD, este grupo chama-se gprodutividade, ou g_produtividade ?
Acho que vc confundiu ai.
Veja no meu tutorial, a linha abaixo:
acl ldapInternet-TI external ldap_group Internet-TIEu defini apenas como nome da ACL "ldapInternet-TI", ja no AD, este grupo esta definido como "Internet-TI".
A ordem é essa:acl "nomedaACL" external ldap_group "grupo cadastrdo no AD"
OBS: Utilizei as aspas "" apenas para referencia, pois na linha de configuração, estas aspas nao devem ser inseridas.
Em nome da ACL, vc define qualquer nome, em grupo cadastrado no AD, vc deve inserir o nome correto que esta cadastrado no AD.
Lembrando, em ""nome da ACL", deverá colocar um nome diferente do nome do grupo do AD.
Faça os testes ai e poste o resultado. -
Ok Valter,
Esta certo do jeito que vc fez.
Poste a imagem da guia Auth Settings do Squid, e tambem o trecho do squid.inc onde vc personaliza as configurações.Nas linhas de configuração personalizadas, bem como na guia Auth Settings do squid, vc está usando qual usuário para pesquisar no AD ?
Se vc leu o meu tutorial, veja que fiz testes na maquina fisica, e tambem em VMs.
Na VM, utilizei um usuario comum chamado squid, ja na maquina fisica, isto nao funcionou, tive que utilizar o Administrator.
Faça os testes e poste o resultado. -
Fala Ricardo,
É o seguinte… seu eu escrever diretor no squid.conf, deixo a guia auth Settings em branco e reiniciar o serviço... Tudo funciona.
Depois tento colar no squid.inc e depois reinicio o servidor aí ele não escreve no squid.conf.O que gostaria mesmo era escrever direto no squid.conf e se ele reiniciar um script meu vai lá e copia o meu squid.conf,, mas vai ficar um gambiarra do inferno.... Ou tem um jeito de anular o squid.inc?
Esse negócio tá ficando cada vez mais complicado, mas estou aprendendo um bocado... hehehe
Mas se
@ricardodru:Ok Valter,
Esta certo do jeito que vc fez.
Poste a imagem da guia Auth Settings do Squid, e tambem o trecho do squid.inc onde vc personaliza as configurações.Nas linhas de configuração personalizadas, bem como na guia Auth Settings do squid, vc está usando qual usuário para pesquisar no AD ?
Se vc leu o meu tutorial, veja que fiz testes na maquina fisica, e tambem em VMs.
Na VM, utilizei um usuario comum chamado squid, ja na maquina fisica, isto nao funcionou, tive que utilizar o Administrator.
Faça os testes e poste o resultado. -
Valter, conseguiu resolver o problema?
Acho estranho vc alterar o squid.inc, reiniciar o serviço, e o squid.conf nao ser reescrito.
É padrão do pfsense (squid.inc) reescrever o squid.conf, sempre que o serviço ou o sistema for reiniciado. A nao ser que vc altere o squid.conf, faça uma copia, e um script se encarrega de repor o squid.conf original quando o sistema for reiniciado.
Quando vc reinicia o serviço, vc faz isto via ssh ?
Ao invez de reiniciar, ja tentou apenas salvar (clicando no botão), em uma das guias do proxy server ? Isto pode ser feito a guia Access Control.
Qual a versão do pfsense que vc esta usando ?