O arquivo de estado conta sessões, não a LAN atrás delas
Uma captura lista sessões VPN e estado de encaminhamento, não cada máquina atrás de um site. Leia os cabeçalhos, os tipos de registo e a idade do arquivo em conjunto.
Alguém pergunta quantas máquinas estão na VPN, e o arquivo de estado é apresentado como prova. Ele responde a uma pergunta mais estreita: quantas sessões existem nesta captura e quais endereços virtuais o servidor encaminha. A lacuna entre essas duas perguntas é onde vivem a maioria dos erros de relatório, e fechá-la começa por ler os próprios cabeçalhos do arquivo.
O que a captura realmente contém
O arquivo é escrito em intervalos quando a saída de estado está configurada para essa instância de servidor, portanto é uma imagem periódica e não um fluxo ao vivo. As suas secções listam sessões e estado interno de encaminhamento separadamente, e a versão do formato decide a disposição das colunas.
status /run/openvpn/office.status 30
status-version 3A versão 3 escreve campos separados por tabulações com uma linha de cabeçalho, enquanto formatos antigos diferem e versões posteriores podem acrescentar campos. Leia o cabeçalho em vez de fixar um número de coluna, porque um script que assume posições quebra em silêncio na próxima atualização.
| Record | What it describes | What it cannot tell you |
|---|---|---|
| Client list | A session in this snapshot | How many people or machines that session represents |
| Real address | The outer peer address and port | Which device is behind it |
| Routing rows | Virtual addresses and route ownership | Which downstream hosts are alive |
Conte sessões, não pessoas ou máquinas
Uma única ligação de site pode transportar tráfego de várias máquinas autorizadas atrás dela. Uma única pessoa também pode manter mais de uma sessão ao mesmo tempo, a partir de um portátil e de um telefone. Nenhum desses padrões é visível na contagem, e é por isso que os utilizadores ligados só fazem sentido depois de definir a unidade. Pergunte que unidade o relatório precisa antes de alguém começar a contar.
Se o número importa para licenciamento ou capacidade, defina a unidade no mesmo documento que o relatório. Um relatório que não indica se conta sessões, identidades ou dispositivos será lido como a unidade que o leitor esperava.
O endereço externo não é um identificador
O campo do endereço real é o endereço e a porta do par tal como o servidor os vê. Vários clientes atrás de um endereço público traduzido partilham esse endereço, por isso agrupar por ele funde sessões não relacionadas. A porta também muda entre ligações, o que torna o par inútil como chave estável. Um relatório agrupado assim parece preciso e está errado.
Use a identidade efetiva do cliente para agrupar, e trate o endereço como detalhe de transporte. Quando duas linhas partilham uma identidade, isso significa normalmente sessões simultâneas e não um registo duplicado.
As linhas de encaminhamento não são inventário de equipamentos
Uma entrada de encaminhamento pode nomear uma sub-rede pela qual um par é responsável, e uma sub-rede não é uma lista dos seus equipamentos. O servidor sabe que deve enviar esse intervalo a uma sessão específica, e não tem ideia de quais dessas máquinas estão ligadas, autenticadas numa aplicação ou úteis para alguém. A tabela de encaminhamento descreve alcançabilidade, não ocupação. Essa diferença é toda a razão pela qual uma VPN não consegue responder a uma pergunta de inventário.
Várias linhas também podem apontar para o mesmo par, porque um site pode anunciar mais de um intervalo. Contar linhas e chamar ao resultado um número de dispositivos sobrestima a implementação por um fator arbitrário.
Se o requisito é genuinamente um inventário de ativos, use o processo de inventário que detém essa rede. A VPN consegue identificar qual par transporta uma rota, e isso é um facto diferente de quais equipamentos existem atrás.
Idade, permissões e uma vista ao vivo
Guarde a hora de modificação do arquivo com cada resposta. Um servidor que parou há horas deixa a sua última captura no lugar, e um ficheiro desatualizado apresentado como atual é pior do que nenhum relatório.
O diretório tem de existir e ser gravável pela conta sob a qual o serviço realmente corre, o que é fácil de esquecer após uma passagem de endurecimento. O ficheiro contém normalmente nomes e endereços, por isso guarde-o num local administrativo e não em qualquer sítio de onde um servidor web o possa servir. Verifique as permissões a partir da conta do serviço, não da sua shell. Uma captura que deixa de se atualizar em silêncio parece exatamente uma rede calma.
Para necessidades orientadas por eventos, use a interface de gestão suportada em vez de sondar mais depressa. Trate essa interface como controlo e não como métricas, e nunca a exponha na internet só para contar sessões.