Configurar automaticamente proxy e impressora padrão ao conectar o OpenVPN

1

Como posso atualizar as configurações padrão de proxy e impressora da Web de clientes WinXP após uma conexão bem-sucedida do OpenVPN e VPN DHCP? (E como posso remover essas configurações após a desconexão da VPN?)

Tenho certeza de que este é um problema resolvido - não é conceitualmente muito diferente de automatizar as transições não VPN'd para um laptop que vai de uma rede para outra - mas meu conhecimento sobre o XP é bastante superficial e eu não consegui. t encontrar uma receita para fazer isso.

    
por pilcrow 29.01.2010 / 15:42

1 resposta

1

Sim, você pode executar comandos arbitrários no cliente ou no servidor de uma conexão OpenVPN, no Windows ou em qualquer outro sistema operacional, em vários pontos da conexão. Existem várias opções (utilizáveis na linha de comando ou em um arquivo de configuração) que definem que script (s) executar e com quais parâmetros, para os vários estágios do processo de conexão.

Por exemplo, se você incluir a linha 'up "C: \ my-up-script.bat"' no seu arquivo de configuração do cliente OpenVPN, seu cliente executará qualquer script de lote localizado em "C: \ my-up -script.bat "depois de ter aberto com sucesso uma conexão VPN para o servidor. A linha 'abaixo' C: \ my-down-script.bat "'significaria executar o script" C: \ my-down-script.bat "após terminar uma conexão.

O manual do OpenVPN (disponível na íntegra no link ) lista todos os vários scripts e quando cada um é executado:

SCRIPTING AND ENVIRONMENTAL VARIABLES
OpenVPN exports a series of environmental variables for use by user-defined scripts.

Script Order of Execution

--up
    Executed after TCP/UDP socket bind and TUN/TAP open.
--tls-verify
    Executed when we have a still untrusted remote peer.
--ipchange
    Executed after connection authentication, or remote IP address change.
--client-connect
    Executed in --mode server mode immediately after client authentication.
--route-up
    Executed after connection authentication, either immediately after, or some number of seconds after as defined by the --route-delay option.
--client-disconnect
    Executed in --mode server mode on client instance shutdown.
--down
    Executed after TCP/UDP and TUN/TAP close.
--learn-address
    Executed in --mode server mode whenever an IPv4 address/route or MAC address is added to OpenVPN's internal routing table.
--auth-user-pass-verify
    Executed in --mode server mode on new client connections, when the client is still untrusted.

Se você estiver usando a GUI do OpenVPN para Windows, talvez também queira ler o guia de instalação desse programa ( link ), especificamente a seção intitulada "Executar Conectar / Desconectar / Reconectar Scripts". A GUI do OpenVPN executa o daemon do OpenVPN como um serviço do Win32 com opções de linha de comando definidas dinamicamente, portanto, basta escrever seus próprios scripts e salvá-los nos locais onde o wrapper do serviço os procurará.

Se você "rolar por conta própria" usando as instruções de criação do instalador do NullSoft NSIS ( link ), pode simplesmente soltar seus scripts no pacote à medida que você os cria. (Eu não quero entrar em mais detalhes sobre este tópico porque é bastante complicado, e a documentação oficial explica tudo muito melhor do que eu, aqui.)

Se você não estiver familiarizado com os comandos de script do Windows necessários para adicionar impressoras e definir configurações de proxy, sugiro escrever alguns scripts curtos do Visual Basic. Você pode encontrar mais exemplos no Google, mas aqui está uma iniciação para você, inspirada por algo que encontrei nos fóruns do Petri ( link ), para configurar uma nova impressora e torná-la o padrão:

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.RemovePrinterConnection "\MyGroupName\MyPrinterName"
WshNetwork.AddWindowsPrinterConnection "\MyGroupName\MyPrinterName"
WshNetwork.SetDefaultPrinter "\MyGroupName\MyPrinterName"

Salve isso como um arquivo .vbs e você poderá executá-lo e ver as alterações em qualquer máquina que possa ver a impressora. Além disso, obviamente, você terá que substituir os nomes dos grupos de trabalho e impressoras pelos seus, em cada uma das três últimas linhas.

Se você usar os caminhos de script em lote predefinidos da GUI do OpenVPN, poderá executar um script .vbs criando um arquivo em lotes com o nome adequado (conforme explicado no documento ao qual fiz o link acima), contendo apenas a linha:

START C:\add_printer.vbs

Você também pode simplesmente chamar um script .vbs diretamente de seu arquivo de configuração do OpenVPN, adicionando a linha:

up "C:\add_printer.vbs"

(De qualquer forma, você precisará substituir esse caminho pelo local do seu script .vbs.)

O script 'down' pode funcionar da mesma maneira - provavelmente você precisaria apenas de uma linha, 'WshNetwork.RemovePrinterConnection "\ MyGroupName \ MyPrinterName"'.

    
por 15.02.2010 / 21:43