OpenVPN na configuração editada do QNAP QTS 4.2 é redefinida após a inicialização

5

Eu tenho um QNAP TS-253 Pro (QTS 4.2.0) , no qual um servidor OpenVPN é configurado e está funcionando bem. Como desejo usar certificados de cliente para proteger as conexões VPN, a configuração integrada na interface da Web não tem nenhum uso.

Então eu importei meus arquivos de configuração e certificado via SSH / SCP para / etc / openvpn , reiniciei o servidor OpenVPN e ele funcionou bem até que eu reiniciei o QNAP NAS. A configuração foi retornada ao padrão de fábrica do QNAP.

Aparentemente, o diretório / etc / openvpn é apenas um link simbólico para / mnt / ext / opt / vpnopenvpn / etc / openvpn / , que contém a configuração original da interface web do meu QNAP. A próxima coisa que tentei foi editar a configuração, e esperei que ela não fosse substituída na próxima inicialização, mas isso não foi uma solução. Reiniciou e encontrou os arquivos de configuração OpenVPN padrão de fábrica em / mnt / ext / opt / vpnopenvpn / etc / openvpn / .

Pesquisei muitos tópicos no fórum oficial da QNAP, postagens de blog inofficial e alguns scripts init.d na própria QNAP para encontrar uma maneira de desativar a implementação automática das configurações padrão de fábrica ou fazer o teste da QNAP minha configuração de trabalho para / etc / openvpn .

Aqui está uma lista das minhas tentativas sem sucesso:

  • Configuração copiada para / etc / openvpn - config foi reescrita na inicialização
  • A configuração copiada para / mnt / ext / opt / vpnopenvpn / etc / openvpn / - config foi reescrita na inicialização
  • As instruções seguidas em: link - não encontraram o qpkg / ipkg na versão atual do QTS ( executando 4.2.0), talvez o tutorial tenha sido escrito para uma versão mais antiga ...
  • Tentou executar um script autorun.sh criado por você, conforme descrito aqui: link - pastas em / share parecem ser recriadas a cada inicialização
  • Completamente explorado por este tópico, recomendado pelos usuários nos fóruns oficiais da QNAP: link - não parece estar relacionado ao meu problema / configuração específico
  • Comentou as seções específicas do openvpn em /etc/init.d/installtgz.sh - o próprio arquivo foi reescrito na inicialização e meus comentários foram parte ativa do script novamente

Alguém sabe como parar o QTS para reescrever meus arquivos de configuração? Eu não quero copiar a configuração do OpenVPN manualmente toda vez que o QNAP for reinicializado ...

    
por HannesS 23.10.2015 / 17:41

2 respostas

3

Eu estava procurando por uma solução semelhante, porque eu precisava de uma configuração Open VPN do lado do servidor para números IP fixos. Minha solução foi adicionar uma linha ao arquivo vpn_openvpn.sh logo antes de iniciar o daemon_mgr na minha linha de casos 210.

<snip>
  usr/bin/openssl verify -CAfile /etc/openvpn/keys/ca.crt /etc/openvpn/keys/myserver.crt 2>/dev/null | /bin/grep "OK" >/dev/null
  echo client-config-dir clientconfig >>/etc/openvpn/server.conf
            if [ $? == 0 ] && [ ! -f ${PIDFILE} ]; then
</snip>

Eu adicionei a linha começando com echo. Neste ponto você também deve poder modificar a configuração em /etc/openvpn/server.conf

Quando adicionadas aqui, a linha sobreviverá ao reinício do OpenVPN Server, mas como você já experimentou dolorosamente, muitos arquivos são recriados no momento da inicialização. É aqui que o autorun.sh entra em jogo. Como usá-lo você pode encontrar aqui A sintaxe exata é baseada no tipo de QNAP NAS que você obteve.

Você pode adicionar uma linha sed aqui para recriar a "correção" no momento da inicialização.

sed "210i echo client-config-dir clientconfig >>/etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart

No seu caso, o autorun.sh deve ficar assim:

sed "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp /etc/init.d/vpn_openvpn.sh
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart

Deixe-me saber se funciona

Editar: depois de repensar, você pode fazer isso ainda mais curto

sed -i "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh 
/etc/init.d/vpn_openvpn.sh restart
    
por 25.10.2015 / 02:10
0

Para remover o gateway padrão empurrando a configuração do QNAP:

sed -i -e '/if \[ $? == 0 \] && \[ ! -f ${PIDFILE} \]; then/a\/bin\/sed -i -e \"s/push \"redirect-gateway def1\"/#push \"redirect-gateway def1\"/g\" /etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh

Por que não ser capaz de fazer isso por padrão, e porque a QNAP configurou seus dispositivos para que eles sobrescrevam configurações e estejam em todas as convenções estranhas e diretórios diferentes é uma prática tão ruim e um mistério.

As pessoas não devem precisar de soluções e arquivos de execução automáticos difíceis para essas coisas básicas no Linux. É quase como se eles quisessem tornar o Linux mais confuso e difícil do que é.

    
por 04.11.2016 / 21:07

Tags