Entre as configurações que normalmente são controladas, estão as que definem o comportamento do navegador Internet Explorer. Essas configurações podem definir níveis de segurança, servidores proxy, sites confiáveis, etc.
Dessa forma, é justo que para adoção do Firefox como navegador oficial de uma empresa, os administradores de rede tenham meios de aplicar essas configurações ao Firefox da mesma forma que fariam com o Internet Explorer, inclusive impedindo que os usuários as alterem.
Como funcionam as GPOs
De uma forma bem simplista, as GPOs são compostas de modelos administrativos que alteram parâmetros do registro de um computador. Por exemplo: no modelo administrativo que contém as configurações do Internet Explorer existe um item que define a pagina padrão. Esse item simplesmente altera a chave de registro:
“HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page”
Essa alteração ocorre sempre que a GPO for aplicada a determinado computador.
Claro que as GPOs não se resumem apenas a isso. Elas podem instalar e remover programas, executar scripts, etc. Mas no que diz respeito aos modelos administrativos, elas atuam basicamente alterando chaves de registro.
Porque não é tão simples criar um modelo administrativo de GPO para o Firefox?
Bem, a resposta pra isso é bem simples: o Firefox não usa o registro pra armazenar suas configurações.
O Firefox possui um esquema de profiles que é independente dos perfis de usuários do Windows. Cada usuário pode ter vários profiles do Firefox, e cada profile do Firefox pode ter configurações totalmente independentes, inclusive com instalações de plugins e extensões também independentes.
Os profiles do Firefox ficam armazenados dentro do diretório do perfil de usuário do Windows. Por exemplo:
C:\Users\henrique\AppData\Roaming\Mozilla\Firefox\Profiles (Em um Windows Vista) ou
C:\Documents and Settings\henrique\Application Data\Mozilla\Firefox\Profiles (Em um Windows XP)
Para cada profile do Firefox é criado um subdiretório que contém as configurações e extensões específicas do profile. As configurações específicas do profile ficam salvas em um arquivo chamado “prefs.js”.
Os subdiretórios de cada profile recebem nomes randômicos, do tipo “7whtqbcr.default”. Para saber quais profiles são validos e podem ser usados pelo usuário, liste o conteúdo do arquivo “C:\Users\henrique\AppData\Roaming\Mozilla\Firefox\profiles.ini”.
Então como configurar o Firefox via GPO?
A forma mais simples é criar um arquivo de configuração modelo e colocar em uma GPO um script para copiar esse arquivo sobrescrevendo o “prefs.js” dos profiles dos usuários.
Uma outra forma é utilizar o projeto FirefoxADM (http://sourceforge.net/projects/firefoxadm).
Esse projeto é composto de modelos administrativos para serem importados nas GPOs e scripts que devem ser configurados para serem executados no startup dos computadores e no login dos usuários.
A utilização dos modelos administrativos fará com que sejam criadas chaves de registro com as configurações desejadas nos computadores em que a GPO for aplicada. O scripts servem para ler essas configurações do registro e aplicar nos profiles do Firefox existentes no perfil do usuário que está efetuando logon no computador.
Os modelos administrativos são:
firefoxlock.adm (modelo de Computador)
firefoxdefaults.adm (modelo de Usuário)
Esses dois modelos devem ser importados para poder não apenas configurar as opções do Firefox, mas também para poder bloquear a alteração delas.
Os scripts são:
firefox_login.vbs
firefox_startup.vbs
firefox_logout.vbs
firefox_shutdown.vbs
Os próprios nomes já indicam em que momento eles devem ser executados. Os de login/logout são colocados nas configurações de Usuário da GPO e os de startup/shutdown são colocados nas configurações de Computador da GPO.
Os scripts de logout e shutdown servem para retornar as configurações do Firefox para os valores originais anteriores à execução dos scripts de login/startup. Fazendo isso, caso a GPO deixe de ser aplicada em determinado computador, as configurações retornam para seu estado original. Dessa forma consegue-se emular o comportamento normal de uma GPO.