Ruta do aparello OpenVPN: propietario da configuración ou script de arranque?
Unha ruta de sucursal que sobrevive a un reinicio aínda pode desaparecer tras gardar na GUI ou unha actualización de firmware. Compare o propietario de configuración admitido cun script de parches.
Engade unha ruta de sucursal, funciona, e despois unha actualización de firmware ou un gardado desde a interface web elimínaa. Dúas correccións parecen igual de razoables nese momento: poñer a ruta na fonte de configuración admitida do aparello ou engadila ao ficheiro xerado desde un script de arranque. Comprórtanse igual durante unha semana e diverxen na segunda actualización. Este artigo compara o que posúe realmente cada unha.
Os dous candidatos posúen cousas distintas
A fonte de configuración admitida é todo o que o aparello trata como entrada: un campo da GUI, un perfil importado, un directorio documentado por cliente, unha base de datos de axustes que le o paquete de xestión. O server.conf xerado é saída. Editar a saída funciona ata que o xerador volve executarse, e iso ocorre ao gardar, ao reiniciar e ao actualizar.
O enfoque con script parchea esa saída despois de que o xerador remate. É unha técnica lexítima para un laboratorio, e é o valor predeterminado incorrecto para unha oficina de sucursal, porque fai que a ruta dependa da coincidencia de texto en lugar dun campo documentado.
| Question | Supported config source | Post-generation script |
|---|---|---|
| Survives a GUI save | Yes | Only if the save does not regenerate the file |
| Survives a package upgrade | Usually, when the field is documented | No guarantee; the wrapper can be replaced |
| Supportable by the vendor | Yes | No |
| Obvious to the next admin | Yes, it is in the UI | No, it lives in a wrapper |
Que rexenera o aparello, e cando
Os paquetes de xestión adoitan gardar os axustes nunha base de datos ou nun conxunto de modelos e xeran a configuración do daemon ao arrincar. Un gardado desde a interface web a miúdo reescribe todo o ficheiro en lugar de parchear unha liña. Se o seu cambio vivía nese ficheiro, agora desapareceu, e nada rexistra un aviso porque, desde o punto de vista do aparello, non se perdeu nada.
Os envoltorios de arranque teñen un segundo modo de fallo. Un grep dunha directiva cun espazado concreto deixa de coincidir tras un cambio de modelo, e o script non fai nada en silencio. Peor aínda, unha actualización de firmware pode substituír o envoltorio por unha versión nova e levar o parche consigo. Entón ten unha ruta que existiu un ano e desapareceu durante un mantemento que ninguén relacionou co encamiñamento.
Que debe expresar o propietario admitido
Un prefixo de sucursal necesita tres declaracións, non unha. O cliente debe aprender a ruta, o servidor debe saber que cliente autenticado posúe o prefixo, e o lado da sucursal debe devolver o tráfico ao enderezo de túnel que se lle deu. En termos de OpenVPN iso significa un route enviado, un iroute correspondente ligado ao cliente e un camiño de retorno no outro extremo.
Aquí é onde as interfaces dos aparellos enganan. Unha caixa etiquetada «permitir que os clientes accedan á LAN do servidor» describe tráfico cara á propia rede do servidor. A súa sucursal é a dirección oposta: unha rede detrás dun cliente, accesible desde o lado do servidor. A mesma etiqueta non implica soporte para iso, e unha directiva válida nun ficheiro non é unha promesa de que o paquete a preserve.
Cando non existe ningún control admitido
Ás veces a versión instalada xenuinamente non pode expresar unha ruta específica dun par. Entón as opcións honestas son outra pasarela que vostede controle, ou un modo sitio a sitio admitido nos dous extremos. Ambos os extremos teñen que falalo. Unha páxina de produto que di sitio a sitio non fai que un perfil OpenVPN arbitrario sexa intercambiable co túnel doutro protocolo, e forzar ese emparellamento adoita producir un túnel medio conectado que se ve ben nunha páxina de estado.
Escolla a opción que poida describir nunha frase a quen herde a rede. Se a resposta require mencionar un camiño de script e un patrón de texto, o deseño xa é fráxil.
Faga a intención auditable
Rexiste o contrato fóra do aparello: identidade efectiva do cliente, prefixo, pasarela de retorno e o campo admitido que fornece cada un. Exporte a configuración mediante o mecanismo admitido para que unha reconstrución teña unha referencia, e verifique o servizo tras unha reconexión, un reinicio e unha actualización en lugar de só tras o cambio.
Compare o resultado xerado con ese rexistro cando algo se rompa, en lugar de restaurar unha liña sen explicación e esperar.referencia de OpenVPN 2.6 é o lugar para confirmar como interactúan route e iroute antes de discutir cunha interface.
Lista de comprobación para o próximo cambio: nomee o propietario, declare o contrato en tres partes, exporte a intención e volva probar despois dos propios eventos do ciclo de vida do aparello, non despois da súa edición.