<div dir="ltr">Cara, eu nao manjo de openvpn, mas pelo que to vendo na man page, acho que a solução The Right Way(TM) é você fazer certificados, e usá-los para autenticação. Procure a seção <b>TLS Mode Options</b> na man page.<br>
<br>Se for isso mesmo, daí ou você cria os certificados sem encriptação na chave local, ou você usa a opção:<br><dl compact><dt><b>--askpass [file]</b>
</dt><dd>Get certificate password from console or <b>file</b> before we daemonize.
<p>For the extremely security conscious, it is possible to protect your
private key with a password. Of course this means that every time the
OpenVPN daemon is
started you must be there to type the password. The <b>--askpass</b> option allows you to start OpenVPN from the command line. It will query you for a password
before it daemonizes. To protect a private key with a password you should omit the <b>-nodes</b> option when you use the <b>openssl</b> command line tool to
manage certificates and private keys.
</p></dd></dl>HTH<br><br>Cheers,<br>Alexei<br><br><br><br><div class="gmail_quote">2008/7/17 Solli Honorio &lt;<a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div dir="ltr"><span style="font-family: courier new,monospace;">Ola pessoal, estou com um problema para tentar &#39;automatizar&#39; um openvpn que está muito chato e estou implorando pela ajuda dos universitário.<br><br>

Eu preciso fazer um cliente do openvpn &#39;subir&#39; sem a intervenção humana, tentei utilizar o &#39;--auth-user-pass&#39; sem sucesso (se alguém souber como fazer esta opção funcionar ficarei feliz do mesmo jeito, e prometo que eu tentei um monte de coisa), então pensei: &#39;simples, vou fazer um script com o IPC::Open2 ou IPC::Open3 e vou fazer a manutenção da barriga de chop&#39;. <br>

<br>Pois bem, fiz os script e descobri que o cliente do openvpn cria uma outra &#39;thread&#39; e mandam a mensagem requisitando o usuário e senha neste &#39;filho&#39;. Então o open2/3 abre e fica aguardando o output do cara criado, e este  recebe depois que eu digito o usuário e a senha. capturando este cara via o strace eu peguei o log abaixo.<br>

<br>Então a minha dúvida é se tem como interagir com esta coisa que eu acredito ser um stdin e stdout de uma outra thread, ou eu estou comendo bola :( !!!!<br><br>Obrigadooooo !!<br><br><br>&lt;log_do_strace&gt;<br>5092&nbsp; send(3, &quot;&lt;29&gt;Jul 17 10:44:49 ovpn-client[&quot;..., 111, MSG_NOSIGNAL) = 111<br>

5092&nbsp; open(&quot;/dev/tty&quot;, O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4<br>5092&nbsp; fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0<br>5092&nbsp; ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0<br>

5092&nbsp; mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3a000<br>5092&nbsp; write(4, &quot;Enter Auth Username:&quot;, 20) = 20<br>5092&nbsp; close(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>5092&nbsp; munmap(0xb7f3a000, 4096)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>

5092&nbsp; open(&quot;/dev/tty&quot;, O_RDONLY)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 4<br>5092&nbsp; fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0<br>5092&nbsp; ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0<br>

5092&nbsp; mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3a000<br>5092&nbsp; read(4, &quot;alguma_coisa\n&quot;, 4096) &nbsp; = 6<br>5092&nbsp; close(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>5092&nbsp; munmap(0xb7f3a000, 4096)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>

5092&nbsp; open(&quot;/dev/tty&quot;, O_RDWR|O_CREAT|O_TRUNC, 0666) = 4<br>5092&nbsp; fstat64(4, {st_mode=S_IFCHR|0666, st_rdev=makedev(5, 0), ...}) = 0<br>5092&nbsp; ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig icanon -echo ...}) = 0<br>

5092&nbsp; mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f3a000<br>5092&nbsp; write(4, &quot;Enter Auth Password:&quot;, 20) = 20<br>5092&nbsp; read(4, &quot;outra_coisa\n&quot;, 4096)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 7<br>5092&nbsp; write(4, &quot;\n&quot;, 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 1<br>

<br></span><span style="font-family: courier new,monospace;">&lt;/log_do_strace&gt;</span><br clear="all"><br><span style="font-family: courier new,monospace;">Solli M. Honório</span><br><font color="#888888">-- <br>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa</font></div>

<br>_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Alexei Znamensky [russoz_gmail_com] [<a href="http://russoz.wordpress.com">russoz.wordpress.com</a>] [<a href="http://www.flickr.com/photos/alexeiz">www.flickr.com/photos/alexeiz</a>]<br>
&quot;Though we live in trying times, we&#39;re the ones who have to try&quot;
</div>