As instruções passo a passo para implantar Hailbytes VPN com Firezone GUI são fornecidas aqui.
Administrar: A configuração da instância do servidor está diretamente relacionada a esta parte.
Guias do usuário: Documentos úteis que podem ensiná-lo a usar o Firezone e resolver problemas típicos. Após a implementação bem-sucedida do servidor, consulte esta seção.
Túnel dividido: use a VPN para enviar tráfego apenas para intervalos de IP específicos.
Lista de permissões: defina o endereço IP estático de um servidor VPN para usar a lista de permissões.
Túneis Reversos: Crie túneis entre vários pares usando túneis reversos.
Temos o prazer de ajudá-lo se precisar de ajuda para instalar, personalizar ou utilizar Hailbytes VPN.
Antes que os usuários possam produzir ou baixar arquivos de configuração do dispositivo, o Firezone pode ser configurado para exigir autenticação. Os usuários também podem precisar se autenticar novamente periodicamente para manter sua conexão VPN ativa.
Embora o método de login padrão do Firezone seja e-mail e senha locais, ele também pode ser integrado a qualquer provedor de identidade OpenID Connect (OIDC) padronizado. Os usuários agora podem fazer login no Firezone usando suas credenciais Okta, Google, Azure AD ou provedor de identidade privada.
Integre um provedor OIDC genérico
Os parâmetros de configuração necessários para o Firezone permitir SSO usando um provedor OIDC são mostrados no exemplo abaixo. Em /etc/firezone/firezone.rb, você pode encontrar o arquivo de configuração. Execute firezone-ctl reconfigure e firezone-ctl restart para atualizar o aplicativo e aplicar as alterações.
# Este é um exemplo usando Google e Okta como um provedor de identidade SSO.
# Múltiplas configurações OIDC podem ser adicionadas à mesma instância Firezone.
# Firezone pode desativar a VPN de um usuário se houver algum erro detectado ao tentar
# para atualizar seu access_token. Isso é verificado para funcionar para Google, Okta e
# Azure SSO e é usado para desconectar automaticamente a VPN de um usuário se ele for removido
# do provedor OIDC. Deixe desabilitado se seu provedor OIDC
# tem problemas para atualizar tokens de acesso, pois pode interromper inesperadamente um
# sessão VPN do usuário.
default['firezone']['authentication']['disable_vpn_on_oidc_error'] = false
default['firezone']['authentication']['oidc'] = {
Google: {
Discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,
ID do Cliente: " ”,
cliente_secret: “ ”,
redirecionamento_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
tipo_resposta: “código”,
escopo: “perfil de e-mail openid”,
marcador: "Google"
},
Ok: {
discovery_document_uri: “https:// /.well-known/openid-configuration”,
ID do Cliente: " ”,
cliente_secret: “ ”,
redirecionamento_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
tipo_resposta: “código”,
escopo: “perfil de e-mail openid offline_access”,
etiqueta: “Okta”
}
}
As seguintes configurações são necessárias para a integração:
Para cada provedor OIDC, um URL bonito correspondente é criado para redirecionar para o URL de login do provedor configurado. Para o exemplo de configuração do OIDC acima, os URLs são:
Provedores para os quais temos documentação:
Se o seu provedor de identidade tiver um conector OIDC genérico e não estiver listado acima, consulte a documentação dele para obter informações sobre como recuperar as definições de configuração necessárias.
A configuração em configurações/segurança pode ser alterada para exigir reautenticação periódica. Isso pode ser usado para impor o requisito de que os usuários entrem no Firezone regularmente para continuar sua sessão VPN.
A duração da sessão pode ser configurada entre uma hora e noventa dias. Ao definir isso como Nunca, você pode habilitar sessões VPN a qualquer momento. Este é o padrão.
Um usuário deve encerrar sua sessão VPN e fazer login no portal Firezone para autenticar novamente uma sessão VPN expirada (URL especificado durante a implantação).
Você pode autenticar novamente sua sessão seguindo as instruções precisas do cliente encontradas aqui.
Status da conexão VPN
A coluna da tabela Conexão VPN da página Usuários exibe o status da conexão de um usuário. Estes são os status de conexão:
ENABLED – A conexão está habilitada.
DESATIVADO – A conexão foi desativada por um administrador ou falha de atualização do OIDC.
EXPIRED – A conexão está desativada devido à expiração da autenticação ou um usuário não se conectou pela primeira vez.
Por meio do conector OIDC geral, o Firezone permite o logon único (SSO) com o Google Workspace e o Cloud Identity. Este guia mostrará como obter os parâmetros de configuração listados abaixo, necessários para a integração:
Se esta for a primeira vez que você está criando um novo ID de cliente OAuth, você será solicitado a configurar uma tela de consentimento.
*Selecione Interno para o tipo de usuário. Isso garante que apenas contas pertencentes a usuários na sua organização do Google Workspace possam criar configurações de dispositivos. NÃO selecione Externo, a menos que queira permitir que qualquer pessoa com uma Conta do Google válida crie configurações de dispositivo.
Na tela de informações do aplicativo:
Esta seção é baseada na própria documentação do Google sobre Configurando OAuth 2.0.
Visite o Console do Google Cloud página de credenciais página, clique em + Criar credenciais e selecione ID do cliente OAuth.
Na tela de criação do ID do cliente OAuth:
Depois de criar o ID do cliente OAuth, você receberá um ID do cliente e um segredo do cliente. Eles serão usados junto com o URI de redirecionamento na próxima etapa.
Editar /etc/firezone/firezone.rb para incluir as opções abaixo:
# Usando o Google como o provedor de identidade SSO
default['firezone']['authentication']['oidc'] = {
Google: {
Discovery_document_uri: “https://accounts.google.com/.well-known/openid-configuration”,
ID do Cliente: " ”,
cliente_secret: “ ”,
redirecionamento_uri: “https://instance-id.yourfirezone.com/auth/oidc/google/callback/”,
tipo_resposta: “código”,
escopo: “perfil de e-mail openid”,
marcador: "Google"
}
}
Execute firezone-ctl reconfigure e firezone-ctl restart para atualizar o aplicativo. Agora você deve ver um botão Entrar com o Google no URL raiz do Firezone.
O Firezone usa o conector OIDC genérico para facilitar o Single Sign-On (SSO) com o Okta. Este tutorial mostrará como obter os parâmetros de configuração listados abaixo, que são necessários para a integração:
Esta seção do guia é baseada em Documentação da Okta.
No Admin Console, vá para Aplicativos > Aplicativos e clique em Criar integração de aplicativo. Defina o método de login como OICD – OpenID Connect e o tipo de aplicativo como aplicativo da Web.
Defina estas configurações:
Depois que as configurações forem salvas, você receberá uma ID de cliente, Segredo do cliente e Domínio Okta. Esses 3 valores serão usados na Etapa 2 para configurar o Firezone.
Editar /etc/firezone/firezone.rb para incluir as opções abaixo. Seu Discovery_document_url será /.bem conhecido/configuração openid anexado ao final do seu okta_domínio.
# Usando Okta como o provedor de identidade SSO
default['firezone']['authentication']['oidc'] = {
Ok: {
discovery_document_uri: “https:// /.well-known/openid-configuration”,
ID do Cliente: " ”,
cliente_secret: “ ”,
redirecionamento_uri: “https://instance-id.yourfirezone.com/auth/oidc/okta/callback/”,
tipo_resposta: “código”,
escopo: “perfil de e-mail openid offline_access”,
etiqueta: “Okta”
}
}
Execute firezone-ctl reconfigure e firezone-ctl restart para atualizar o aplicativo. Agora você deve ver um botão Sign in with Okta no URL raiz do Firezone.
Os usuários que podem acessar o aplicativo Firezone podem ser restringidos pela Okta. Vá para a página de atribuições do Firezone App Integration do Okta Admin Console para fazer isso.
Por meio do conector OIDC genérico, o Firezone habilita o Single Sign-On (SSO) com o Azure Active Directory. Este manual mostrará como obter os parâmetros de configuração listados abaixo, que são necessários para a integração:
Este guia é extraído do Documentos do Azure Active Directory.
Acesse a página Azure Active Directory do portal do Azure. Escolha a opção de menu Gerenciar, selecione Novo Cadastro e, em seguida, cadastre-se fornecendo as informações abaixo:
Após o registro, abra a visualização de detalhes do aplicativo e copie o ID do aplicativo (cliente). Este será o valor client_id. Em seguida, abra o menu endpoints para recuperar o Documento de metadados do OpenID Connect. Este será o valor discovery_document_uri.
Crie um novo segredo do cliente clicando na opção Certificados e segredos no menu Gerenciar. Copie o segredo do cliente; o valor do segredo do cliente será este.
Por fim, selecione o link de permissões da API no menu Gerenciar, clique em Adicione uma permissãoe selecione Microsoft Graph. Adicionar, acrescentar email, código aberto, acesso_offline e perfis para as permissões necessárias.
Editar /etc/firezone/firezone.rb para incluir as opções abaixo:
# Usando o Azure Active Directory como o provedor de identidade SSO
default['firezone']['authentication']['oidc'] = {
azul: {
discovery_document_uri: “https://login.microsoftonline.com/ /v2.0/.well-known/openid-configuration”,
ID do Cliente: " ”,
cliente_secret: “ ”,
redirecionamento_uri: “https://instance-id.yourfirezone.com/auth/oidc/azure/callback/”,
tipo_resposta: “código”,
escopo: “perfil de e-mail openid offline_access”,
etiqueta: “Azure”
}
}
Execute firezone-ctl reconfigure e firezone-ctl restart para atualizar o aplicativo. Agora você deve ver um botão Entrar com o Azure na URL raiz do Firezone.
O Azure AD permite que os administradores limitem o acesso do aplicativo a um grupo específico de usuários dentro de sua empresa. Mais informações sobre como fazer isso podem ser encontradas na documentação da Microsoft.
O Chef Omnibus é usado pelo Firezone para gerenciar tarefas, incluindo empacotamento de lançamentos, supervisão de processos, gerenciamento de logs e muito mais.
O código Ruby compõe o arquivo de configuração principal, localizado em /etc/firezone/firezone.rb. Reiniciar sudo firezone-ctl reconfigure depois de fazer modificações neste arquivo faz com que o Chef reconheça as alterações e as aplique ao sistema operacional atual.
Consulte a referência do arquivo de configuração para obter uma lista completa de variáveis de configuração e suas descrições.
Sua instância Firezone pode ser gerenciada por meio do zona de fogo-ctl comando, como mostrado abaixo. A maioria dos subcomandos requer prefixação com sudo.
root@demo:~# firezone-ctl
omnibus-ctl: comando (subcomando)
Comandos Gerais:
limpar
Exclua *todos* os dados da zona de incêndio e comece do zero.
criar-ou-redefinir-admin
Redefine a senha para o administrador com e-mail especificado por padrão ['firezone']['admin_email'] ou cria um novo administrador se esse e-mail não existir.
ajudar
Imprima esta mensagem de ajuda.
reconfigurar
Reconfigure o aplicativo.
redefinir-rede
Redefine nftables, interface WireGuard e tabela de roteamento de volta aos padrões Firezone.
show-config
Mostre a configuração que seria gerada pela reconfiguração.
rede de desmontagem
Remove a interface WireGuard e a tabela firezone nftables.
vigor-cert-renewal
Forçar a renovação do certificado agora, mesmo que ainda não tenha expirado.
parar-cert-renovação
Remove cronjob que renova certificados.
desinstalação
Mate todos os processos e desinstale o supervisor do processo (os dados serão preservados).
versão
Exibir a versão atual do Firezone
Comandos de gerenciamento de serviços:
morte graciosa
Tente uma parada normal e, em seguida, SIGKILL todo o grupo de processos.
fazer correr
Envie um HUP aos serviços.
int
Envie aos serviços um INT.
matar
Envie aos serviços um KILL.
uma vez
Inicie os serviços se eles estiverem inativos. Não os reinicie se eles pararem.
restart
Interrompa os serviços se estiverem em execução e reinicie-os.
lista de serviços
Liste todos os serviços (os serviços ativados aparecem com um *.)
começo
Inicie os serviços se eles estiverem inativos e reinicie-os se eles pararem.
estado
Mostra o status de todos os serviços.
Pare
Pare os serviços e não os reinicie.
cauda
Observe os logs de serviço de todos os serviços ativados.
prazo
Envie um TERMO para os serviços.
usr1
Envie aos serviços um USR1.
usr2
Envie aos serviços um USR2.
Todas as sessões VPN devem ser encerradas antes de atualizar o Firezone, que também exige o desligamento da interface do usuário da Web. Caso algo dê errado durante a atualização, aconselhamos reservar uma hora para a manutenção.
Para aprimorar o Firezone, execute as seguintes ações:
Se surgir algum problema, informe-nos por enviando um tíquete de suporte.
Existem algumas alterações importantes e modificações de configuração no 0.5.0 que devem ser abordadas. Saiba mais abaixo.
O Nginx não suporta mais os parâmetros de porta SSL e não-SSL forçados a partir da versão 0.5.0. Como o Firezone precisa de SSL para funcionar, recomendamos remover o pacote de serviço Nginx definindo default['firezone']['nginx']['enabled'] = false e direcionando seu proxy reverso para o aplicativo Phoenix na porta 13000 (por padrão ).
0.5.0 apresenta suporte ao protocolo ACME para renovar automaticamente os certificados SSL com o serviço Nginx integrado. Para habilitar,
A possibilidade de adicionar regras com destinos duplicados desapareceu no Firezone 0.5.0. Nosso script de migração reconhecerá automaticamente essas situações durante uma atualização para 0.5.0 e manterá apenas as regras cujo destino inclua a outra regra. Não há nada que você precise fazer se estiver tudo bem.
Caso contrário, antes de atualizar, aconselhamos alterar seu conjunto de regras para se livrar dessas situações.
O Firezone 0.5.0 remove o suporte para o estilo antigo de configuração Okta e Google SSO em favor da nova configuração baseada em OIDC mais flexível.
Se você tiver alguma configuração nas chaves default['firezone']['authentication']['okta'] ou default['firezone']['authentication']['google'], você precisa migrá-las para nosso OIDC -configuração baseada em usando o guia abaixo.
Configuração existente do Google OAuth
Remova essas linhas contendo as configurações antigas do Google OAuth do seu arquivo de configuração localizado em /etc/firezone/firezone.rb
default['firezone']['authentication']['google']['enabled']
default['firezone']['authentication']['google']['client_id']
default['firezone']['authentication']['google']['client_secret']
default['firezone']['authentication']['google']['redirect_uri']
Em seguida, configure o Google como um provedor OIDC seguindo os procedimentos aqui.
(Fornecer instruções de link) <<<<<<<<<<<<<<<<
Configurar o Google OAuth existente
Remova essas linhas contendo as configurações antigas do Okta OAuth do seu arquivo de configuração localizado em /etc/firezone/firezone.rb
default['firezone']['authentication']['okta']['enabled']
default['firezone']['authentication']['okta']['client_id']
default['firezone']['authentication']['okta']['client_secret']
Padrão['firezone']['autenticação']['okta']['site']
Em seguida, configure o Okta como um provedor OIDC seguindo os procedimentos aqui.
Dependendo da sua configuração e versão atuais, siga as instruções abaixo:
Se você já tem uma integração OIDC:
Para alguns provedores OIDC, a atualização para >= 0.3.16 requer a obtenção de um token de atualização para o escopo de acesso offline. Ao fazer isso, garante-se que o Firezone seja atualizado com o provedor de identidade e que a conexão VPN seja desligada após a exclusão de um usuário. As iterações anteriores do Firezone não tinham esse recurso. Em alguns casos, os usuários excluídos do seu provedor de identidade ainda podem estar conectados a uma VPN.
É necessário incluir o acesso off-line no parâmetro de escopo de sua configuração OIDC para provedores OIDC que oferecem suporte ao escopo de acesso off-line. A reconfiguração Firezone-ctl deve ser executada para aplicar as alterações no arquivo de configuração Firezone, localizado em /etc/firezone/firezone.rb.
Para usuários que foram autenticados por seu provedor OIDC, você verá o título Conexões OIDC na página de detalhes do usuário da interface do usuário da Web se o Firezone conseguir recuperar o token de atualização com sucesso.
Se isso não funcionar, você precisará excluir seu aplicativo OAuth existente e repetir as etapas de configuração do OIDC para criar uma nova integração de aplicativo .
Eu tenho uma integração OAuth existente
Antes de 0.3.11, Firezone usava provedores OAuth2 pré-configurados.
Siga as instruções aqui para migrar para o OIDC.
Não integrei um provedor de identidade
Nenhuma ação necessária.
Você pode seguir as instruções aqui para ativar o SSO por meio de um provedor OIDC.
Em seu lugar, default['firezone']['external url'] substituiu a opção de configuração default['firezone']['fqdn'].
Defina isso como a URL do seu portal on-line Firezone acessível ao público em geral. O padrão será https:// mais o FQDN do seu servidor se deixado indefinido.
O arquivo de configuração está localizado em /etc/firezone/firezone.rb. Consulte a referência do arquivo de configuração para obter uma lista completa de variáveis de configuração e suas descrições.
O Firezone não mantém mais as chaves privadas do dispositivo no servidor Firezone a partir da versão 0.3.0.
A IU da Web do Firezone não permitirá que você baixe novamente ou veja essas configurações, mas todos os dispositivos existentes devem continuar a operar como estão.
Se você estiver atualizando do Firezone 0.1.x, há algumas alterações no arquivo de configuração que devem ser feitas manualmente.
Para fazer as modificações necessárias em seu arquivo /etc/firezone/firezone.rb, execute os comandos abaixo como root.
cp /etc/firezone/firezone.rb /etc/firezone/firezone.rb.bak
sed -i “s/\['ativar'\]/\['ativar'\]/” /etc/firezone/firezone.rb
echo “default['firezone']['connectivity_checks']['enabled'] = true” >> /etc/firezone/firezone.rb
echo “default['firezone']['connectivity_checks']['interval'] = 3_600” >> /etc/firezone/firezone.rb
firezone-ctl reconfigurar
reinicialização do firezone-ctl
Verificar os logs do Firezone é um primeiro passo sábio para quaisquer problemas que possam ocorrer.
Execute sudo firezone-ctl tail para visualizar os logs do Firezone.
A maioria dos problemas de conectividade com o Firezone são causados por regras incompatíveis de iptables ou nftables. Você deve certificar-se de que quaisquer regras que você tenha em vigor não entrem em conflito com as regras do Firezone.
Certifique-se de que a cadeia FORWARD permite pacotes de seus clientes WireGuard para os locais que você deseja deixar passar pelo Firezone se sua conectividade com a Internet se deteriorar toda vez que você ativar seu túnel WireGuard.
Isso pode ser alcançado se você estiver usando o ufw, garantindo que a política de roteamento padrão seja permitida:
ubuntu@fz:~$ sudo ufw default permitir roteamento
Política de roteamento padrão alterada para 'permitir'
(certifique-se de atualizar suas regras de acordo)
A ufw o status de um servidor Firezone típico pode ser assim:
ubuntu@fz:~$ sudo ufw status detalhado
Estado: ativo
Registro: ativado (baixo)
Padrão: negar (entrada), permitir (saída), permitir (roteado)
Novos perfis: pular
Para ação de
— —— —-
22/tcp PERMITIR EM qualquer lugar
80/tcp PERMITIR EM qualquer lugar
443/tcp PERMISSÃO EM QUALQUER LUGAR
51820/udp PERMITIR EM QUALQUER LUGAR
22/tcp (v6) PERMITIR EM qualquer lugar (v6)
80/tcp (v6) PERMITIR EM qualquer lugar (v6)
443/tcp (v6) PERMITIR EM qualquer lugar (v6)
51820/udp (v6) PERMITIR EM qualquer lugar (v6)
Aconselhamos limitar o acesso à interface da Web para implantações de produção extremamente confidenciais e de missão crítica, conforme explicado abaixo.
Serviço | Porta padrão | Endereço de escuta | Descrição |
nginx | 80, 443 | todos os | Porta HTTP(S) pública para administrar o Firezone e facilitar a autenticação. |
Vigia | 51820 | todos os | Porta WireGuard pública usada para sessões VPN. (UDP) |
Postgresql | 15432 | 127.0.0.1 | Porta somente local usada para o servidor Postgresql integrado. |
São Gonçalo | 13000 | 127.0.0.1 | Porta somente local usada pelo servidor de aplicativos elixir upstream. |
Aconselhamos que você pense em restringir o acesso à interface do usuário da web exposta publicamente do Firezone (por padrão, portas 443/tcp e 80/tcp) e, em vez disso, use o túnel WireGuard para gerenciar Firezone para produção e implantações voltadas para o público, onde um único administrador será responsável de criar e distribuir configurações de dispositivos para usuários finais.
Por exemplo, se um administrador criou uma configuração de dispositivo e criou um túnel com o endereço WireGuard local 10.3.2.2, a seguinte configuração ufw permitiria que o administrador acessasse a IU da web Firezone na interface wg-firezone do servidor usando o padrão 10.3.2.1 endereço do túnel:
root@demo:~# ufw status detalhado
Estado: ativo
Registro: ativado (baixo)
Padrão: negar (entrada), permitir (saída), permitir (roteado)
Novos perfis: pular
Para ação de
— —— —-
22/tcp PERMITIR EM qualquer lugar
51820/udp PERMITIR EM QUALQUER LUGAR
Em qualquer lugar PERMITIR EM 10.3.2.2
22/tcp (v6) PERMITIR EM qualquer lugar (v6)
51820/udp (v6) PERMITIR EM qualquer lugar (v6)
Isso deixaria apenas 22 / tcp exposto para acesso SSH para gerenciar o servidor (opcional) e 51820 / udp expostos para estabelecer túneis WireGuard.
Firezone agrupa um servidor Postgresql e correspondência psql utilitário que pode ser usado no shell local da seguinte forma:
/opt/firezone/embedded/bin/psql \
-U zona de fogo \
-d zona de fogo \
-h localhost\
-p 15432\
-c “SQL_STATEMENT”
Isso pode ser útil para fins de depuração.
Tarefas comuns:
Listando todos os usuários:
/opt/firezone/embedded/bin/psql \
-U zona de fogo \
-d zona de fogo \
-h localhost\
-p 15432\
-c “SELECIONE * DE usuários;”
Listando todos os dispositivos:
/opt/firezone/embedded/bin/psql \
-U zona de fogo \
-d zona de fogo \
-h localhost\
-p 15432\
-c “SELECIONE * DE dispositivos;”
Alterar uma função de usuário:
Defina a função como 'admin' ou 'sem privilégios':
/opt/firezone/embedded/bin/psql \
-U zona de fogo \
-d zona de fogo \
-h localhost\
-p 15432\
-c “UPDATE users SET role = 'admin' WHERE email = 'user@example.com';”
Fazendo backup do banco de dados:
Além disso, está incluído o programa pg dump, que pode ser usado para fazer backups regulares do banco de dados. Execute o seguinte código para despejar uma cópia do banco de dados no formato de consulta SQL comum (substitua /path/to/backup.sql pelo local onde o arquivo SQL deve ser criado):
/opt/firezone/embedded/bin/pg_dump\
-U zona de fogo \
-d zona de fogo \
-h localhost\
-p 15432 > /caminho/para/backup.sql
Após a implantação bem-sucedida do Firezone, você deve adicionar usuários para fornecer a eles acesso à sua rede. A IU da Web é usada para fazer isso.
Ao selecionar o botão “Adicionar usuário” em /users, você pode adicionar um usuário. Você será solicitado a fornecer ao usuário um endereço de e-mail e uma senha. Para permitir o acesso aos usuários em sua organização automaticamente, o Firezone também pode interagir e sincronizar com um provedor de identidade. Mais detalhes estão disponíveis em Autenticar. < Adicione um link para Autenticar
Aconselhamos solicitar que os usuários criem suas próprias configurações de dispositivo para que a chave privada seja visível apenas para eles. Os usuários podem gerar suas próprias configurações de dispositivo seguindo as instruções no Instruções do cliente página.
Todas as configurações do dispositivo do usuário podem ser criadas pelos administradores do Firezone. Na página de perfil do usuário localizada em /users, selecione a opção “Add Device” para fazer isso.
[Inserir captura de tela]
Você pode enviar por e-mail ao usuário o arquivo de configuração do WireGuard depois de criar o perfil do dispositivo.
Usuários e dispositivos estão vinculados. Para mais detalhes sobre como adicionar um usuário, consulte Adicionar usuários.
Por meio do uso do sistema netfilter do kernel, o Firezone permite recursos de filtragem de saída para especificar pacotes DROP ou ACCEPT. Todo o tráfego é normalmente permitido.
CIDRs IPv4 e IPv6 e endereços IP são suportados por meio da lista de permissões e da lista de negações, respectivamente. Você pode optar por definir o escopo de uma regra para um usuário ao adicioná-la, o que aplica a regra a todos os dispositivos desse usuário.
Instale e configure
Para estabelecer uma conexão VPN usando o cliente WireGuard nativo, consulte este guia.
Os clientes WireGuard oficiais localizados aqui são compatíveis com Firezone:
Visite o site oficial do WireGuard em https://www.wireguard.com/install/ para sistemas operacionais não mencionados acima.
O administrador do Firezone ou você mesmo pode gerar o arquivo de configuração do dispositivo usando o portal Firezone.
Visite o URL fornecido pelo administrador do Firezone para gerar automaticamente um arquivo de configuração do dispositivo. Sua empresa terá uma URL exclusiva para isso; neste caso, é https://instance-id.yourfirezone.com.
Faça login no Firezone Okta SSO
[Inserir captura de tela]
Importe o arquivo.conf para o cliente WireGuard abrindo-o. Acionando o botão Ativar, você pode iniciar uma sessão VPN.
[Inserir captura de tela]
Siga as instruções abaixo se o seu administrador de rede tiver exigido autenticação recorrente para manter sua conexão VPN ativa.
Você precisa:
URL do portal Firezone: Peça a conexão ao seu administrador de rede.
Seu administrador de rede deve ser capaz de oferecer seu login e senha. O site Firezone solicitará que você faça login usando o serviço de logon único que seu empregador usa (como Google ou Okta).
[Inserir captura de tela]
Vá para o URL do portal Firezone e faça login usando as credenciais que seu administrador de rede forneceu. Se você já estiver conectado, clique no botão Reautenticar antes de entrar novamente.
[Inserir captura de tela]
[Inserir captura de tela]
Para importar o perfil de configuração do WireGuard usando a CLI do Network Manager em dispositivos Linux, siga estas instruções (nmcli).
Se o perfil tiver suporte IPv6 ativado, a tentativa de importar o arquivo de configuração usando a GUI do Network Manager pode falhar com o seguinte erro:
ipv6.method: o método “auto” não é compatível com WireGuard
É necessário instalar os utilitários de espaço do usuário WireGuard. Este será um pacote chamado wireguard ou wireguard-tools para distribuições Linux.
Para Ubuntu / Debian:
sudo apt instalar wireguard
Para usar o Fedora:
sudo dnf instalar ferramentas wireguard
Arch Linux:
sudo pacman -S wireguard-tools
Visite o site oficial do WireGuard em https://www.wireguard.com/install/ para as distribuições não mencionadas acima.
O administrador do Firezone ou a autogeração podem gerar o arquivo de configuração do dispositivo usando o portal Firezone.
Visite o URL fornecido pelo administrador do Firezone para gerar automaticamente um arquivo de configuração do dispositivo. Sua empresa terá uma URL exclusiva para isso; neste caso, é https://instance-id.yourfirezone.com.
[Inserir captura de tela]
Importe o arquivo de configuração fornecido usando nmcli:
sudo nmcli tipo de conexão de importação arquivo wireguard /path/to/configuration.conf
O nome do arquivo de configuração corresponderá à conexão/interface do WireGuard. Após a importação, a conexão pode ser renomeada, se necessário:
conexão nmcli modificar [nome antigo] connection.id [novo nome]
Através da linha de comando, conecte-se à VPN da seguinte maneira:
conexão nmcli [nome vpn]
Desconectar:
conexão nmcli inativa [nome vpn]
O applet Network Manager aplicável também pode ser usado para gerenciar a conexão se estiver usando uma GUI.
Ao selecionar “sim” para a opção de conexão automática, a conexão VPN pode ser configurada para conectar-se automaticamente:
conexão nmcli modificar conexão [nome vpn]. <<<<<<<<<<<<<<<<<<<<<<
autoconectar sim
Para desativar a conexão automática, defina-a novamente como não:
conexão nmcli modificar conexão [nome vpn].
autoconexão não
Para ativar o MFA Vá para a página /user account/register mfa do portal Firezone. Use seu aplicativo autenticador para digitalizar o código QR depois de gerado e digite o código de seis dígitos.
Entre em contato com seu administrador para redefinir as informações de acesso de sua conta se você perder seu aplicativo autenticador.
Este tutorial o guiará pelo processo de configuração do recurso de encapsulamento dividido do WireGuard com Firezone para que apenas o tráfego para intervalos de IP específicos seja encaminhado pelo servidor VPN.
Os intervalos de IP para os quais o cliente roteará o tráfego de rede são definidos no campo IPs permitidos localizado na página /configurações/padrão. Somente as configurações de túnel WireGuard recém-criadas produzidas pelo Firezone serão afetadas pelas alterações neste campo.
[Inserir captura de tela]
O valor padrão é 0.0.0.0/0, ::/0, que roteia todo o tráfego de rede do cliente para o servidor VPN.
Exemplos de valores neste campo incluem:
0.0.0.0/0, ::/0 – todo o tráfego de rede será roteado para o servidor VPN.
192.0.2.3/32 – somente o tráfego para um único endereço IP será roteado para o servidor VPN.
3.5.140.0/22 – apenas o tráfego para IPs no intervalo 3.5.140.1 – 3.5.143.254 será roteado para o servidor VPN. Neste exemplo, foi usado o intervalo CIDR para a região AWS ap-northeast-2.
O Firezone seleciona primeiro a interface de saída associada à rota mais precisa ao determinar para onde rotear um pacote.
Os usuários devem regenerar os arquivos de configuração e adicioná-los ao seu cliente WireGuard nativo para atualizar os dispositivos de usuário existentes com a nova configuração de túnel dividido.
Para obter instruções, veja Adicionar Dispositivo. <<<<<<<<<<< Adicionar link
Este manual demonstrará como conectar dois dispositivos usando o Firezone como um relé. Um caso de uso típico é permitir que um administrador acesse um servidor, contêiner ou máquina protegida por NAT ou firewall.
Esta ilustração mostra um cenário direto no qual os dispositivos A e B constroem um túnel.
[Insira a imagem arquitetônica da zona de incêndio]
Comece criando o Dispositivo A e o Dispositivo B navegando para /users/[user_id]/new_device. Nas configurações de cada dispositivo, certifique-se de que os seguintes parâmetros estejam definidos com os valores listados abaixo. Você pode definir as configurações do dispositivo ao criar a configuração do dispositivo (consulte Adicionar dispositivos). Se você precisar atualizar as configurações em um dispositivo existente, poderá fazê-lo gerando uma nova configuração de dispositivo.
Observe que todos os dispositivos têm uma página /settings/defaults onde o PersistentKeepalive pode ser configurado.
IPs permitidos = 10.3.2.2/32
Este é o IP ou intervalo de IPs do Dispositivo B
Persistente Keepalive = 25
Se o dispositivo estiver atrás de um NAT, isso garante que o dispositivo seja capaz de manter o túnel ativo e continuar recebendo pacotes da interface WireGuard. Normalmente, um valor de 25 é suficiente, mas pode ser necessário diminuir esse valor, dependendo do ambiente.
IPs permitidos = 10.3.2.3/32
Este é o IP ou intervalo de IPs do Dispositivo A
Persistente Keepalive = 25
Este exemplo mostra uma situação na qual o Dispositivo A pode se comunicar com os Dispositivos B a D em ambas as direções. Essa configuração pode representar um engenheiro ou administrador acessando vários recursos (servidores, contêineres ou máquinas) em várias redes.
[Diagrama Arquitetônico]<<<<<<<<<<<<<<<<<<<<<<<
Certifique-se de que as seguintes configurações sejam feitas nas configurações de cada dispositivo para os valores correspondentes. Ao criar a configuração do dispositivo, você pode especificar as configurações do dispositivo (consulte Adicionar dispositivos). Uma nova configuração de dispositivo pode ser criada se as configurações de um dispositivo existente precisarem ser atualizadas.
IPs permitidos = 10.3.2.3/32, 10.3.2.4/32, 10.3.2.5/32
Este é o IP dos dispositivos B a D. Os IPs dos dispositivos B a D devem ser incluídos em qualquer intervalo de IP que você escolher definir.
Persistente Keepalive = 25
Isso garante que o dispositivo possa manter o túnel e continuar recebendo pacotes da interface WireGuard mesmo se estiver protegido por um NAT. Na maioria dos casos, um valor de 25 é adequado; no entanto, dependendo do ambiente, pode ser necessário diminuir esse valor.
Para oferecer um único IP de saída estático para que todo o tráfego de sua equipe flua, o Firezone pode ser utilizado como um gateway NAT. Estas situações envolvem seu uso frequente:
Contratos de consultoria: solicite que seu cliente coloque na lista de permissões um único endereço IP estático, em vez do IP exclusivo do dispositivo de cada funcionário.
Usando um proxy ou mascarando seu IP de origem para fins de segurança ou privacidade.
Um exemplo simples de limitar o acesso a um aplicativo da Web auto-hospedado a um único IP estático na lista de permissões executando o Firezone será demonstrado nesta postagem. Nesta ilustração, Firezone e o recurso protegido estão em diferentes áreas de VPC.
Essa solução é frequentemente usada no lugar do gerenciamento de uma lista de permissões de IP para vários usuários finais, o que pode consumir muito tempo à medida que a lista de acesso se expande.
Nosso objetivo é configurar um servidor Firezone em uma instância EC2 para redirecionar o tráfego VPN para o recurso restrito. Nesse caso, o Firezone está servindo como um proxy de rede ou gateway NAT para fornecer a cada dispositivo conectado um IP de saída público exclusivo.
Nesse caso, uma instância EC2 chamada tc2.micro tem uma instância Firezone instalada nela. Para obter informações sobre a implantação do Firezone, acesse o Guia de implantação. Em relação à AWS, certifique-se de:
O security group da instância Firezone EC2 permite o tráfego de saída para o endereço IP do recurso protegido.
A instância Firezone vem com um IP elástico. O tráfego que é encaminhado através da instância Firezone para destinos externos terá esse como endereço IP de origem. O endereço IP em questão é 52.202.88.54.
[Inserir captura de tela]<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Um aplicativo da web auto-hospedado serve como recurso protegido neste caso. O aplicativo da web só pode ser acessado por solicitações provenientes do endereço IP 52.202.88.54. Dependendo do recurso, pode ser necessário permitir o tráfego de entrada em várias portas e tipos de tráfego. Isso não é abordado neste manual.
[Inserir captura de tela]<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Informe ao terceiro responsável pelo recurso protegido que o tráfego do IP estático definido na Etapa 1 deve ser permitido (neste caso, 52.202.88.54).
Por padrão, todo o tráfego do usuário passará pelo servidor VPN e virá do IP estático configurado na Etapa 1 (neste caso, 52.202.88.54). No entanto, se o tunelamento dividido foi ativado, as configurações podem ser necessárias para garantir que o IP de destino do recurso protegido esteja listado entre os IPs permitidos.
Abaixo está uma lista completa das opções de configuração disponíveis no /etc/firezone/firezone.rb.
opção | descrição | valor padrão |
default['firezone']['external_url'] | URL usado para acessar o portal da web desta instância do Firezone. | “https://#{node['fqdn'] || node['hostname']}” |
default['firezone']['config_directory'] | Diretório de nível superior para configuração do Firezone. | /etc/firezone' |
padrão['firezone']['install_directory'] | Diretório de nível superior para instalar o Firezone. | /opt/firezone' |
padrão['firezone']['app_directory'] | Diretório de nível superior para instalar o aplicativo web Firezone. | “#{node['firezone']['install_directory']}/embedded/service/firezone” |
default['firezone']['log_directory'] | Diretório de nível superior para logs Firezone. | /var/log/zona de fogo' |
default['firezone']['var_directory'] | Diretório de nível superior para arquivos de tempo de execução do Firezone. | /var/opt/firezone' |
padrão['firezone']['usuário'] | Nome do usuário sem privilégios do Linux ao qual a maioria dos serviços e arquivos pertencerá. | zona de fogo' |
default['firezone']['grupo'] | Nome do grupo Linux ao qual a maioria dos serviços e arquivos pertencerá. | zona de fogo' |
default['firezone']['admin_email'] | Endereço de e-mail do usuário Firezone inicial. | “firezone@localhost” |
padrão['firezone']['max_devices_per_user'] | Número máximo de dispositivos que um usuário pode ter. | 10 |
default['firezone']['allow_unprivileged_device_management'] | Permite que usuários não administradores criem e excluam dispositivos. | VERDADEIRO |
default['firezone']['allow_unprivileged_device_configuration'] | Permite que usuários não administradores modifiquem as configurações do dispositivo. Quando desativado, impede que usuários sem privilégios alterem todos os campos do dispositivo, exceto nome e descrição. | VERDADEIRO |
default['firezone']['egress_interface'] | Nome da interface onde o tráfego encapsulado sairá. Se nil, a interface de rota padrão será usada. | zero |
default['firezone']['fips_enabled'] | Ative ou desative o modo OpenSSL FIPs. | zero |
default['firezone']['logging']['enabled'] | Ative ou desative o registro no Firezone. Defina como false para desabilitar totalmente o log. | VERDADEIRO |
padrão['empresa']['nome'] | Nome usado pelo livro de receitas da 'empresa' do Chef. | zona de fogo' |
padrão['firezone']['install_path'] | Caminho de instalação usado pelo livro de receitas 'corporativo' do Chef. Deve ser definido como o install_directory acima. | nó['firezone']['install_directory'] |
default['firezone']['sysvinit_id'] | Um identificador usado em /etc/inittab. Deve ser uma sequência única de 1 a 4 caracteres. | E AÍ' |
default['firezone']['authentication']['local']['enabled'] | Ative ou desative a autenticação de e-mail/senha local. | VERDADEIRO |
default['firezone']['authentication']['auto_create_oidc_users'] | Crie automaticamente usuários que se conectam do OIDC pela primeira vez. Desative para permitir que apenas usuários existentes façam login via OIDC. | VERDADEIRO |
default['firezone']['authentication']['disable_vpn_on_oidc_error'] | Desative a VPN de um usuário se for detectado um erro ao tentar atualizar o token OIDC. | FALSE |
padrão['firezone']['autenticação']['oidc'] | OpenID Connect config, no formato {“provider” => [config…]} – Ver Documentação do OpenIDConnect para exemplos de configuração. | {} |
default['firezone']['nginx']['enabled'] | Ative ou desative o servidor nginx incluído. | VERDADEIRO |
default['firezone']['nginx']['ssl_port'] | Porta de escuta HTTPS. | 443 |
padrão['firezone']['nginx']['diretório'] | Diretório para armazenar a configuração do host virtual nginx relacionado ao Firezone. | “#{node['firezone']['var_directory']}/nginx/etc” |
default['firezone']['nginx']['log_directory'] | Diretório para armazenar arquivos de log nginx relacionados ao Firezone. | “#{node['firezone']['log_directory']}/nginx” |
default['firezone']['nginx']['log_rotation']['file_maxbytes'] | Tamanho do arquivo no qual girar os arquivos de log do Nginx. | 104857600 |
default['firezone']['nginx']['log_rotation']['num_to_keep'] | Número de arquivos de log Firezone nginx para manter antes de descartar. | 10 |
default['firezone']['nginx']['log_x_forwarded_for'] | Se deve registrar o cabeçalho Firezone nginx x-forwarded-for. | VERDADEIRO |
default['firezone']['nginx']['hsts_header']['enabled'] | VERDADEIRO | |
default['firezone']['nginx']['hsts_header']['include_subdomains'] | Ative ou desative includeSubDomains para o cabeçalho HSTS. | VERDADEIRO |
default['firezone']['nginx']['hsts_header']['max_age'] | Idade máxima para o cabeçalho HSTS. | 31536000 |
default['firezone']['nginx']['redirect_to_canonical'] | Se deve redirecionar URLs para o FQDN canônico especificado acima | FALSE |
default['firezone']['nginx']['cache']['enabled'] | Ative ou desative o cache Firezone nginx. | FALSE |
padrão['firezone']['nginx']['cache']['diretório'] | Diretório para o cache Firezone nginx. | “#{node['firezone']['var_directory']}/nginx/cache” |
padrão['firezone']['nginx']['usuário'] | Usuário Firezone nginx. | nó['firezone']['usuário'] |
padrão['firezone']['nginx']['grupo'] | Grupo Firezone nginx. | node['firezone']['grupo'] |
default['firezone']['nginx']['dir'] | Diretório de configuração nginx de nível superior. | nó['firezone']['nginx']['diretório'] |
default['firezone']['nginx']['log_dir'] | Diretório de log nginx de nível superior. | node['firezone']['nginx']['log_directory'] |
default['firezone']['nginx']['pid'] | Localização do arquivo pid nginx. | “#{node['firezone']['nginx']['directory']}/nginx.pid” |
default['firezone']['nginx']['daemon_disable'] | Desative o modo daemon nginx para que possamos monitorá-lo. | VERDADEIRO |
default['firezone']['nginx']['gzip'] | Ative ou desative a compactação nginx gzip. | em' |
default['firezone']['nginx']['gzip_static'] | Ative ou desative a compactação nginx gzip para arquivos estáticos. | desligado' |
default['firezone']['nginx']['gzip_http_version'] | Versão HTTP a ser usada para servir arquivos estáticos. | 1.0 ' |
default['firezone']['nginx']['gzip_comp_level'] | nível de compactação nginx gzip. | 2 ' |
default['firezone']['nginx']['gzip_proxied'] | Ativa ou desativa o gzipping de respostas para solicitações de proxy, dependendo da solicitação e da resposta. | qualquer' |
default['firezone']['nginx']['gzip_vary'] | Ativa ou desativa a inserção do cabeçalho de resposta “Vary: Accept-Encoding”. | desligado' |
default['firezone']['nginx']['gzip_buffers'] | Define o número e o tamanho dos buffers usados para compactar uma resposta. Se nil, o padrão nginx é usado. | zero |
default['firezone']['nginx']['gzip_types'] | Tipos MIME para habilitar a compactação gzip. | ['text/plain', 'text/css','application/x-javascript', 'text/xml', 'application/xml', 'application/rss+xml', 'application/atom+xml', ' text/javascript', 'aplicativo/javascript', 'aplicativo/json'] |
default['firezone']['nginx']['gzip_min_length'] | Comprimento mínimo do arquivo para habilitar a compactação gzip do arquivo. | 1000 |
default['firezone']['nginx']['gzip_disable'] | Correspondente de agente do usuário para desabilitar a compactação gzip. | MSIE [1-6]\.' |
default['firezone']['nginx']['keepalive'] | Ativa o cache para conexão com servidores upstream. | em' |
default['firezone']['nginx']['keepalive_timeout'] | Tempo limite em segundos para conexão keepalive com servidores upstream. | 65 |
default['firezone']['nginx']['worker_processes'] | Número de processos de trabalho nginx. | nó['cpu'] && nó['cpu']['total'] ? nó['cpu']['total']: 1 |
default['firezone']['nginx']['worker_connections'] | Número máximo de conexões simultâneas que podem ser abertas por um processo de trabalho. | 1024 |
default['firezone']['nginx']['worker_rlimit_nofile'] | Altera o limite do número máximo de arquivos abertos para processos de trabalho. Usa padrão nginx se nil. | zero |
default['firezone']['nginx']['multi_accept'] | Se os trabalhadores devem aceitar uma conexão por vez ou múltiplas. | VERDADEIRO |
default['firezone']['nginx']['event'] | Especifica o método de processamento de conexão a ser usado dentro do contexto de eventos nginx. | epoll' |
default['firezone']['nginx']['server_tokens'] | Ativa ou desativa a emissão da versão nginx nas páginas de erro e no campo de cabeçalho de resposta “Servidor”. | zero |
default['firezone']['nginx']['server_names_hash_bucket_size'] | Define o tamanho do depósito para as tabelas de hash de nomes de servidor. | 64 |
default['firezone']['nginx']['sendfile'] | Habilita ou desabilita o uso do sendfile() do nginx. | em' |
default['firezone']['nginx']['access_log_options'] | Define opções de log de acesso nginx. | zero |
default['firezone']['nginx']['error_log_options'] | Define as opções de log de erros do nginx. | zero |
default['firezone']['nginx']['disable_access_log'] | Desativa o registro de acesso nginx. | FALSE |
default['firezone']['nginx']['types_hash_max_size'] | tipos nginx hash tamanho máximo. | 2048 |
default['firezone']['nginx']['types_hash_bucket_size'] | tamanho do balde de hash de tipos nginx. | 64 |
default['firezone']['nginx']['proxy_read_timeout'] | tempo limite de leitura do proxy nginx. Defina como nil para usar o padrão nginx. | zero |
default['firezone']['nginx']['client_body_buffer_size'] | tamanho do buffer do corpo do cliente nginx. Defina como nil para usar o padrão nginx. | zero |
default['firezone']['nginx']['client_max_body_size'] | tamanho máximo do corpo do cliente nginx. | 250 m ' |
default['firezone']['nginx']['default']['modules'] | Especifique módulos nginx adicionais. | [] |
default['firezone']['nginx']['enable_rate_limiting'] | Ative ou desative a limitação de taxa nginx. | VERDADEIRO |
default['firezone']['nginx']['rate_limiting_zone_name'] | Nome da zona de limitação de taxa Nginx. | zona de fogo' |
default['firezone']['nginx']['rate_limiting_backoff'] | Recuo de limitação de taxa Nginx. | 10 m ' |
default['firezone']['nginx']['rate_limit'] | Limite de taxa Nginx. | 10r/s' |
default['firezone']['nginx']['ipv6'] | Permita que o nginx escute solicitações HTTP para IPv6, além de IPv4. | VERDADEIRO |
default['firezone']['postgresql']['enabled'] | Ative ou desative o Postgresql agrupado. Defina como falso e preencha as opções do banco de dados abaixo para usar sua própria instância do Postgresql. | VERDADEIRO |
default['firezone']['postgresql']['username'] | Nome de usuário para Postgresql. | nó['firezone']['usuário'] |
default['firezone']['postgresql']['data_directory'] | Diretório de dados do Postgresql. | “#{node['firezone']['var_directory']}/postgresql/13.3/data” |
default['firezone']['postgresql']['log_directory'] | Diretório de log do Postgresql. | “#{node['firezone']['log_directory']}/postgresql” |
default['firezone']['postgresql']['log_rotation']['file_maxbytes'] | Tamanho máximo do arquivo de log do Postgresql antes de ser girado. | 104857600 |
default['firezone']['postgresql']['log_rotation']['num_to_keep'] | Número de arquivos de log do Postgresql a serem mantidos. | 10 |
default['firezone']['postgresql']['checkpoint_completion_target'] | Alvo de conclusão do ponto de verificação do Postgresql. | 0.5 |
default['firezone']['postgresql']['checkpoint_segments'] | Número de segmentos de ponto de verificação do Postgresql. | 3 |
default['firezone']['postgresql']['checkpoint_timeout'] | Tempo limite do ponto de verificação do Postgresql. | 5min' |
default['firezone']['postgresql']['checkpoint_warning'] | Tempo de aviso do ponto de verificação do Postgresql em segundos. | década de 30 |
default['firezone']['postgresql']['effective_cache_size'] | Tamanho efetivo do cache do Postgresql. | 128MB' |
default['firezone']['postgresql']['listen_address'] | Endereço de escuta do Postgresql. | 127.0.0.1 ' |
default['firezone']['postgresql']['max_connections'] | Conexões máximas do Postgresql. | 350 |
default['firezone']['postgresql']['md5_auth_cidr_addresses'] | CIDRs do Postgresql para permitir autenticação md5. | ['127.0.0.1/32', '::1/128'] |
padrão['firezone']['postgresql']['porta'] | Porta de escuta do Postgresql. | 15432 |
default['firezone']['postgresql']['shared_buffers'] | Tamanho dos buffers compartilhados do Postgresql. | “#{(node['memory']['total'].to_i / 4) / 1024}MB” |
default['firezone']['postgresql']['shmmax'] | Postgresql shmmax em bytes. | 17179869184 |
default['firezone']['postgresql']['shmall'] | Postgresql pequeno em bytes. | 4194304 |
default['firezone']['postgresql']['work_mem'] | Tamanho da memória de trabalho do Postgresql. | 8MB' |
default['firezone']['database']['user'] | Especifica o nome de usuário que Firezone usará para se conectar ao banco de dados. | node['firezone']['postgresql']['username'] |
default['firezone']['database']['password'] | Se estiver usando um banco de dados externo, especifica a senha que Firezone usará para se conectar ao banco de dados. | mude-me' |
padrão['firezone']['database']['nome'] | Banco de dados que o Firezone usará. Será criado se não existir. | zona de fogo' |
default['firezone']['database']['host'] | Host do banco de dados ao qual o Firezone se conectará. | nó['firezone']['postgresql']['listen_address'] |
padrão['firezone']['database']['porta'] | Porta do banco de dados à qual o Firezone se conectará. | nó['firezone']['postgresql']['porta'] |
default['firezone']['database']['pool'] | O tamanho do pool de banco de dados que Firezone usará. | [10, Etc.nprocessadores].max |
default['firezone']['database']['ssl'] | Se deve conectar-se ao banco de dados por SSL. | FALSE |
default['firezone']['database']['ssl_opts'] | {} | |
default['firezone']['database']['parameters'] | {} | |
default['firezone']['database']['extensions'] | Extensões de banco de dados a serem ativadas. | { 'plpgsql' => verdadeiro, 'pg_trgm' => verdadeiro } |
default['firezone']['phoenix']['enabled'] | Ative ou desative o aplicativo da web Firezone. | VERDADEIRO |
default['firezone']['phoenix']['listen_address'] | Endereço de escuta do aplicativo web Firezone. Este será o endereço de escuta upstream que o nginx proxies. | 127.0.0.1 ' |
padrão['firezone']['phoenix']['porta'] | Porta de escuta do aplicativo web Firezone. Esta será a porta upstream que o nginx proxies. | 13000 |
default['firezone']['phoenix']['log_directory'] | Diretório de registro do aplicativo web Firezone. | “#{node['firezone']['log_directory']}/phoenix” |
default['firezone']['phoenix']['log_rotation']['file_maxbytes'] | Tamanho do arquivo de log do aplicativo web Firezone. | 104857600 |
default['firezone']['phoenix']['log_rotation']['num_to_keep'] | Número de arquivos de log do aplicativo da Web Firezone a serem mantidos. | 10 |
default['firezone']['phoenix']['crash_detection']['enabled'] | Ative ou desative a desativação do aplicativo da web Firezone quando uma falha for detectada. | VERDADEIRO |
default['firezone']['phoenix']['external_trusted_proxies'] | Lista de proxies reversos confiáveis formatados como uma matriz de IPs e/ou CIDRs. | [] |
default['firezone']['phoenix']['private_clients'] | Lista de clientes HTTP de rede privada, formatados como Array de IPs e/ou CIDRs. | [] |
default['firezone']['wireguard']['enabled'] | Ative ou desative o gerenciamento integrado do WireGuard. | VERDADEIRO |
default['firezone']['wireguard']['log_directory'] | Diretório de log para gerenciamento WireGuard integrado. | “#{node['firezone']['log_directory']}/wireguard” |
default['firezone']['wireguard']['log_rotation']['file_maxbytes'] | Tamanho máximo do arquivo de log do WireGuard. | 104857600 |
default['firezone']['wireguard']['log_rotation']['num_to_keep'] | Número de arquivos de log do WireGuard a serem mantidos. | 10 |
default['firezone']['wireguard']['interface_name'] | Nome da interface WireGuard. A alteração desse parâmetro pode causar uma perda temporária na conectividade VPN. | wg-firezone' |
padrão['firezone']['wireguard']['porta'] | Porta de escuta WireGuard. | 51820 |
default['firezone']['wireguard']['mtu'] | Interface WireGuard MTU para este servidor e para configurações de dispositivo. | 1280 |
default['firezone']['wireguard']['endpoint'] | WireGuard Endpoint a ser usado para gerar configurações de dispositivo. Se nil, o padrão é o endereço IP público do servidor. | zero |
default['firezone']['wireguard']['dns'] | DNS WireGuard a ser usado para configurações de dispositivos gerados. | 1.1.1.1, 1.0.0.1' |
default['firezone']['wireguard']['allowed_ips'] | WireGuard AllowedIPs para usar para configurações de dispositivos gerados. | 0.0.0.0/0, ::/0' |
default['firezone']['wireguard']['persistent_keepalive'] | Configuração padrão de PersistentKeepalive para configurações de dispositivo geradas. Um valor de 0 desativa. | 0 |
default['firezone']['wireguard']['ipv4']['enabled'] | Ative ou desative o IPv4 para a rede WireGuard. | VERDADEIRO |
default['firezone']['wireguard']['ipv4']['masquerade'] | Ative ou desative o mascaramento para pacotes que saem do túnel IPv4. | VERDADEIRO |
default['firezone']['wireguard']['ipv4']['network'] | Pool de endereços IPv4 da rede WireGuard. | 10.3.2.0/24 ′ |
default['firezone']['wireguard']['ipv4']['address'] | Endereço IPv4 da interface WireGuard. Deve estar dentro do pool de endereços WireGuard. | 10.3.2.1 ' |
default['firezone']['wireguard']['ipv6']['enabled'] | Ative ou desative o IPv6 para a rede WireGuard. | VERDADEIRO |
default['firezone']['wireguard']['ipv6']['masquerade'] | Ative ou desative o mascaramento para pacotes que saem do túnel IPv6. | VERDADEIRO |
default['firezone']['wireguard']['ipv6']['network'] | Pool de endereços IPv6 da rede WireGuard. | fd00::3:2:0/120′ |
default['firezone']['wireguard']['ipv6']['address'] | Endereço IPv6 da interface WireGuard. Deve estar dentro do pool de endereços IPv6. | fd00::3:2:1′ |
default['firezone']['runit']['svlogd_bin'] | Runit svlogd bin local. | “#{node['firezone']['install_directory']}/embedded/bin/svlogd” |
padrão['firezone']['ssl']['diretório'] | Diretório SSL para armazenar certificados gerados. | /var/opt/firezone/ssl' |
default['firezone']['ssl']['email_address'] | Endereço de e-mail a ser usado para certificados autoassinados e avisos de renovação do protocolo ACME. | você@exemplo.com' |
default['firezone']['ssl']['acme']['enabled'] | Habilite o ACME para provisionamento automático de certificado SSL. Desative isso para evitar que o Nginx escute na porta 80. Consulte aqui para mais instruções. | FALSE |
default['firezone']['ssl']['acme']['server'] | letsencrypt | |
default['firezone']['ssl']['acme']['keylength'] | Especifique o tipo de chave e comprimento para certificados SSL. Ver aqui | ec-256 |
padrão['firezone']['ssl']['certificado'] | Caminho para o arquivo de certificado para seu FQDN. Substitui a configuração ACME acima, se especificado. Se ACME e this forem nulos, um certificado autoassinado será gerado. | zero |
default['firezone']['ssl']['certificate_key'] | Caminho para o arquivo de certificado. | zero |
default['firezone']['ssl']['ssl_dhparam'] | nginx ssl dh_param. | zero |
default['firezone']['ssl']['country_name'] | Nome do país para o certificado autoassinado. | NÓS' |
default['firezone']['ssl']['state_name'] | Nome do estado para certificado autoassinado. | CA ' |
default['firezone']['ssl']['locality_name'] | Nome da localidade para o certificado autoassinado. | São Francisco' |
default['firezone']['ssl']['company_name'] | Certificado autoassinado do nome da empresa. | Minha compania' |
default['firezone']['ssl']['organizational_unit_name'] | Nome da unidade organizacional para o certificado autoassinado. | Operações' |
padrão['firezone']['ssl']['cifras'] | Cifras SSL para nginx usar. | ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA’ |
default['firezone']['ssl']['fips_ciphers'] | Cifras SSL para o modo FIPs. | FIPS@STRENGTH:!aNULL:!eNULL' |
padrão['firezone']['ssl']['protocolos'] | Protocolos TLS a serem usados. | TLSv1 TLSv1.1 TLSv1.2′ |
default['firezone']['ssl']['session_cache'] | Cache de sessão SSL. | compartilhado:SSL:4m' |
default['firezone']['ssl']['session_timeout'] | Tempo limite da sessão SSL. | 5 m ' |
padrão['firezone']['robots_allow'] | os robôs nginx permitem. | / ' |
padrão['firezone']['robots_disallow'] | os robôs nginx não permitem. | zero |
default['firezone']['outbound_email']['from'] | E-mail de saída do endereço. | zero |
default['firezone']['outbound_email']['provider'] | Provedor de serviços de e-mail de saída. | zero |
default['firezone']['outbound_email']['configs'] | Configurações do provedor de e-mail de saída. | consulte omnibus/cookbooks/firezone/attributes/default.rb |
default['firezone']['telemetry']['enabled'] | Ative ou desative a telemetria anônima do produto. | VERDADEIRO |
default['firezone']['connectivity_checks']['enabled'] | Ative ou desative o serviço de verificação de conectividade Firezone. | VERDADEIRO |
padrão['firezone']['connectivity_checks']['intervalo'] | Intervalo entre as verificações de conectividade em segundos. | 3_600 |
________________________________________________________________
Aqui você encontrará uma lista de arquivos e diretórios relacionados a uma instalação típica do Firezone. Eles podem mudar dependendo das mudanças no seu arquivo de configuração.
caminho | descrição |
/var/opt/firezone | Diretório de nível superior contendo dados e configuração gerada para serviços integrados Firezone. |
/opt/firezone | Diretório de nível superior contendo bibliotecas, binários e arquivos de tempo de execução necessários para o Firezone. |
/usr/bin/firezone-ctl | utilitário firezone-ctl para gerenciar sua instalação Firezone. |
/etc/systemd/system/firezone-runsvdir-start.service | arquivo de unidade systemd para iniciar o processo de supervisão do Firezone runsvdir. |
/etc/firezone | Arquivos de configuração do Firezone. |
__________________________________________________________
Esta página estava vazia em documentos
_____________________________________________________________
O seguinte modelo de firewall nftables pode ser usado para proteger o servidor que executa o Firezone. O modelo faz algumas suposições; você pode precisar ajustar as regras para se adequar ao seu caso de uso:
Firezone configura suas próprias regras nftables para permitir/rejeitar tráfego para destinos configurados na interface web e para lidar com NAT de saída para tráfego de cliente.
A aplicação do modelo de firewall abaixo em um servidor já em execução (não no momento da inicialização) resultará na eliminação das regras do Firezone. Isso pode ter implicações de segurança.
Para contornar isso, reinicie o serviço Phoenix:
firezone-ctl reiniciar phoenix
#!/usr/sbin/nft -f
## Limpar/limpar todas as regras existentes
liberar conjunto de regras
################################ VARIÁVEIS ################# ###############
## Nome da interface de Internet/WAN
definir DEV_WAN = eth0
## Nome da interface WireGuard
definir DEV_WIREGUARD = wg-firezone
## Porta de escuta do WireGuard
definir WIREGUARD_PORT = 51820
############################## VARIÁVEIS FIM ################## ############
# Tabela principal de filtragem da família inet
tabela filtro inet {
# Regras para tráfego encaminhado
# Esta cadeia é processada antes da cadeia direta Firezone
cadeia para frente {
tipo de filtro filtro de prioridade de avanço do gancho – 5; política aceita
}
# Regras para tráfego de entrada
cadeia de entrada {
tipo de gancho de filtro filtro de prioridade de entrada; queda de política
## Permitir tráfego de entrada para interface de loopback
se lo \
aceitar \
comentar “Permitir todo o tráfego da interface de loopback”
## Permitir conexões estabelecidas e relacionadas
estado ct estabelecido, relacionado \
aceitar \
comentar “Permitir conexões estabelecidas/relacionadas”
## Permitir tráfego WireGuard de entrada
iif $DEV_WAN porta udp $WIREGUARD_PORT \
contador \
aceitar \
comentar “Permitir tráfego WireGuard de entrada”
## Registrar e descartar novos pacotes TCP não SYN
flags tcp != estado syn ct novo \
taxa limite 100/minuto rajada 150 pacotes \
prefixo de registro “IN – Novo !SYN: “ \
comentar “Registro de limite de taxa para novas conexões que não têm o sinalizador SYN TCP definido”
flags tcp != estado syn ct novo \
contador \
derrubar \
comentar “Elimine novas conexões que não tenham o sinalizador SYN TCP definido”
## Registrar e descartar pacotes TCP com sinalizador fin/syn inválido definido
flags tcp & (fin|syn) == (fin|syn) \
taxa limite 100/minuto rajada 150 pacotes \
prefixo de registro “IN – TCP FIN|SIN:“ \
comentar “Registro de limite de taxa para pacotes TCP com sinalizador fin/syn inválido definido”
flags tcp & (fin|syn) == (fin|syn) \
contador \
derrubar \
comentar “Descartar pacotes TCP com conjunto de sinalizadores fin/syn inválido”
## Registrar e descartar pacotes TCP com sinalizador syn/rst inválido definido
sinalizadores tcp & (syn|rst) == (syn|rst) \
taxa limite 100/minuto rajada 150 pacotes \
prefixo de registro “ENTRADA – TCP SYN|RST: “ \
comentar “Registro de limite de taxa para pacotes TCP com sinalizador syn/rst inválido definido”
sinalizadores tcp & (syn|rst) == (syn|rst) \
contador \
derrubar \
comentar “Descarte pacotes TCP com conjunto de sinalizadores syn/rst inválidos”
## Registrar e descartar sinalizadores TCP inválidos
flags tcp & (fin|syn|rst|psh|ack|urg) < (fin) \
taxa limite 100/minuto rajada 150 pacotes \
prefixo de registro “DENTRO – FIN:” \
comentar “Registro de limite de taxa para sinalizadores TCP inválidos (fin|syn|rst|psh|ack|urg) < (fin)”
flags tcp & (fin|syn|rst|psh|ack|urg) < (fin) \
contador \
derrubar \
comentar “Descarte pacotes TCP com flags (fin|syn|rst|psh|ack|urg) < (fin)”
## Registrar e descartar sinalizadores TCP inválidos
flags tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
taxa limite 100/minuto rajada 150 pacotes \
prefixo de registro “IN – FIN|PSH|URG:” \
comentar “Registro de limite de taxa para sinalizadores TCP inválidos (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)”
flags tcp & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) \
contador \
derrubar \
comentar “Descarte pacotes TCP com sinalizadores (fin|syn|rst|psh|ack|urg) == (fin|psh|urg)”
## Descarte o tráfego com estado de conexão inválido
estado ct inválido \
taxa limite 100/minuto rajada 150 pacotes \
log sinaliza todos os prefixos “IN – Inválido: “ \
comentar “Registro de limite de taxa para tráfego com estado de conexão inválido”
estado ct inválido \
contador \
derrubar \
comentar “Descartar tráfego com estado de conexão inválido”
## Permitir respostas de ping/ping IPv4, mas limite de taxa para 2000 PPS
ip protocolo icmp icmp type { resposta de eco, solicitação de eco } \
taxa limite 2000/segundo \
contador \
aceitar \
comentar “Permitir eco IPv4 de entrada (ping) limitado a 2000 PPS”
## Permitir todos os outros ICMP IPv4 de entrada
ip protocolo icmp \
contador \
aceitar \
comentar “Permitir todos os outros IPv4 ICMP”
## Permitir respostas de ping/ping IPv6, mas limite de taxa para 2000 PPS
tipo icmpv6 { resposta de eco, solicitação de eco } \
taxa limite 2000/segundo \
contador \
aceitar \
comentar “Permitir eco IPv6 de entrada (ping) limitado a 2000 PPS”
## Permitir todos os outros ICMP IPv6 de entrada
meta l4proto { icmpv6 } \
contador \
aceitar \
comentar “Permitir todos os outros IPv6 ICMP”
## Permitir portas UDP traceroute de entrada, mas limitar a 500 PPS
porta udp 33434-33524\
taxa limite 500/segundo \
contador \
aceitar \
comentar “Permitir traceroute UDP de entrada limitado a 500 PPS”
## Permitir SSH de entrada
porta tcp ssh ct estado novo \
contador \
aceitar \
comentar “Permitir conexões SSH de entrada”
## Permitir HTTP e HTTPS de entrada
tcp dport { http, https } ct estado novo \
contador \
aceitar \
comentar “Permitir conexões HTTP e HTTPS de entrada”
## Registre qualquer tráfego incomparável, mas limite a taxa de registro a um máximo de 60 mensagens/minuto
## A política padrão será aplicada ao tráfego incomparável
taxa limite 60/minuto rajada 100 pacotes \
prefixo de registro “DENTRO – Soltar:“ \
comentar “Registrar qualquer tráfego incomparável”
## Conte o tráfego incomparável
contador \
comentar “Conte qualquer tráfego incomparável”
}
# Regras para tráfego de saída
cadeia de saída {
filtro de tipo filtro de prioridade de saída do gancho; queda de política
## Permitir tráfego de saída para interface de loopback
oi lo \
aceitar \
comentar “Permitir todo o tráfego para a interface de loopback”
## Permitir conexões estabelecidas e relacionadas
estado ct estabelecido, relacionado \
contador \
aceitar \
comentar “Permitir conexões estabelecidas/relacionadas”
## Permita o tráfego de saída do WireGuard antes de descartar conexões com estado ruim
oif $DEV_WAN esporte udp $WIREGUARD_PORT \
contador \
aceitar \
comentar “Permitir tráfego de saída do WireGuard”
## Descarte o tráfego com estado de conexão inválido
estado ct inválido \
taxa limite 100/minuto rajada 150 pacotes \
log sinaliza todos os prefixos “SAÍDA – Inválido: “ \
comentar “Registro de limite de taxa para tráfego com estado de conexão inválido”
estado ct inválido \
contador \
derrubar \
comentar “Descartar tráfego com estado de conexão inválido”
## Permitir todos os outros IPv4 ICMP de saída
ip protocolo icmp \
contador \
aceitar \
comentar “Permitir todos os tipos IPv4 ICMP”
## Permitir todos os outros IPv6 ICMP de saída
meta l4proto { icmpv6 } \
contador \
aceitar \
comentar “Permitir todos os tipos IPv6 ICMP”
## Permitir portas UDP traceroute de saída, mas limitar a 500 PPS
porta udp 33434-33524\
taxa limite 500/segundo \
contador \
aceitar \
comentar “Permitir traceroute UDP de saída limitado a 500 PPS”
## Permitir conexões HTTP e HTTPS de saída
tcp dport { http, https } ct estado novo \
contador \
aceitar \
comentar “Permitir conexões HTTP e HTTPS de saída”
## Permitir envio SMTP de saída
tcp dport envio ct estado novo \
contador \
aceitar \
comentar “Permitir envio SMTP de saída”
## Permitir solicitações DNS de saída
porta udp 53 \
contador \
aceitar \
comentar “Permitir solicitações de DNS UDP de saída”
porta tcp 53 \
contador \
aceitar \
comentar “Permitir solicitações de DNS TCP de saída”
## Permitir solicitações NTP de saída
porta udp 123 \
contador \
aceitar \
comentar “Permitir solicitações NTP de saída”
## Registre qualquer tráfego incomparável, mas limite a taxa de registro a um máximo de 60 mensagens/minuto
## A política padrão será aplicada ao tráfego incomparável
taxa limite 60/minuto rajada 100 pacotes \
prefixo de registro “SAIR – Soltar: “ \
comentar “Registrar qualquer tráfego incomparável”
## Conte o tráfego incomparável
contador \
comentar “Conte qualquer tráfego incomparável”
}
}
# Tabela principal de filtragem NAT
tabela inet nat {
# Regras para pré-roteamento de tráfego NAT
cadeia de pré-roteamento {
digite nat gancho pré-roteamento prioridade dstnat; política aceita
}
# Regras para pós-roteamento de tráfego NAT
# Esta tabela é processada antes da cadeia de pós-roteamento Firezone
pós-roteamento em cadeia {
digite nat hook prioridade pós-roteamento srcnat – 5; política aceita
}
}
O firewall deve ser armazenado no local relevante para a distribuição do Linux em execução. Para Debian/Ubuntu é /etc/nftables.conf e para RHEL é /etc/sysconfig/nftables.conf.
nftables.service precisará ser configurado para iniciar na inicialização (se ainda não estiver) definido:
systemctl habilitar nftables.service
Se fizer qualquer alteração no modelo de firewall, a sintaxe pode ser validada executando o comando check:
nft -f /caminho/para/nftables.conf -c
Certifique-se de validar se o firewall funciona conforme o esperado, pois alguns recursos do nftables podem não estar disponíveis, dependendo da versão em execução no servidor.
_______________________________________________________________
Este documento apresenta uma visão geral da telemetria que o Firezone coleta de sua instância auto-hospedada e como desativá-la.
Zona de fogo confia em telemetria para priorizar nosso roteiro e otimizar os recursos de engenharia que temos para tornar o Firezone melhor para todos.
A telemetria que recolhemos visa responder às seguintes questões:
Existem três locais principais onde a telemetria é coletada no Firezone:
Em cada um desses três contextos, capturamos a quantidade mínima de dados necessários para responder às perguntas da seção acima.
Os e-mails do administrador são coletados apenas se você aceitar explicitamente as atualizações do produto. Caso contrário, as informações de identificação pessoal são nunca coletados.
O Firezone armazena a telemetria em uma instância auto-hospedada do PostHog em execução em um cluster privado do Kubernetes, acessível apenas pela equipe do Firezone. Aqui está um exemplo de um evento de telemetria que é enviado de sua instância do Firezone para nosso servidor de telemetria:
{
vai: “0182272d-0b88-0000-d419-7b9a413713f1”,
"Timestamp": “2022-07-22T18:30:39.748000+00:00”,
"evento": “fz_http_iniciado”,
“id_distinto”: “1ec2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"propriedades": {
“$geoip_city_name”: “Ashburn”,
“$geoip_continent_code”: "N / D",
“$geoip_continent_name”: "América do Norte",
“$geoip_country_code”: "NÓS",
“$geoip_country_name”: "Estados Unidos",
“$geoip_latitude”: 39.0469,
“$geoip_longitude”: -77.4903,
“$geoip_postal_code”: "20149",
“$geoip_subdivision_1_code”: "VA",
“$geoip_subdivision_1_name”: "Virgínia",
“$geoip_time_zone”: “América/Nova_York”,
“$ip”: "52.200.241.107",
“$plugins_deferidos”:[],
“$plugins_failed”:[],
“$plugins_sucesso”: [
“GeoIP (3)”
],
“id_distinto”: “1zc2e794-1c3e-43fc-a78f-1db6d1a37f54”,
"fqdn": “awsdemo.firezone.dev”,
“versão_kernel”: “Linux 5.13.0”,
"versão": "0.4.6"
},
“elementos_cadeia”: ""
}
NOTA
A equipe de desenvolvimento do Firezone confia na análise de produtos para tornar o Firezone melhor para todos. Deixar a telemetria habilitada é a contribuição mais valiosa que você pode fazer para o desenvolvimento do Firezone. Dito isso, entendemos que alguns usuários têm requisitos de privacidade ou segurança mais altos e preferem desativar completamente a telemetria. Se é você, continue lendo.
A telemetria é habilitada por padrão. Para desativar completamente a telemetria do produto, defina a seguinte opção de configuração como false em /etc/firezone/firezone.rb e execute sudo firezone-ctl reconfigure para selecionar as alterações.
padrão['zona de fogo']['telemetria']['habilitado'] = falso
Isso desativará completamente toda a telemetria do produto.
Hailbytes
9511 Queens Guard Ct.
Laurel, DM 20723
Telefone: (732) 771-9995
E-mail: info@hailbytes.com
Receba as últimas notícias sobre segurança cibernética diretamente na sua caixa de entrada.