Inspired by a thread [1] about sending a message from the server to
the client's GUI (and then displaying it to the user), I would like to
discuss standardizing the management interface's "echo" commands. It
would be nice if the OpenVPN Windows GUI, Tunnelblick, and other GUIs
implemented the commands in a compatible way.

Although this may be of interest to the OpenVPN developers, I think it
is mostly of interest to OpenVPN users. (There isn't a list for
"OpenVPN administrators", which would be the best target.)


CURRENT STATUS OF THE ECHO COMMANDS

Tunnelblick (I'm the developer) does not do anything with "echo"
commands; it doesn't ask the management interface for them.

According to an email in the above-referenced thread from Selva Nair,
the OpenVPN Windows GUI currently implements the following:

    - "echo forget-passwords": delete passwords internally saved by the GUI
      but do not disable the password save feature. Useful when pushed
      from the server so that it gets processed after authentication. Also see
      management-notes.txt in openvpn docs.

    - "echo save-passwords": enables private-key and auth-user-pass passwords
      to be saved. Will be effective at startup only if present in the config
      file. If pushed from the server, will get used for subsequent
      password prompts. Essentially this has the effect of presenting
the password
      dialogs to the user with save-password checkbox selected. The
user may still
      uncheck it during the dialog.

And the following are being considered:

    - "echo disable-save-passwords": stops the user from being able to
save passwords.

    - "echo setenv": sets an environment variable for use by scripts.


QUESTIONS ABOUT THE OPENVPN WINDOWS GUI:

    1. In the OpenVPN Windows GUI, do "forget-passwords",
"save-passwords", and "disable-save-passwords" only affect
auth-user-pass passwords, or do they also affect auth-user-pass
usernames and private-key passwords?

    2. Does OpenVPN Windows GUI send OpenVPN a "forget-passwords"
command via the management interface when it receives an "echo
forget-passwords" command? (Note: there are two different
"forget-passwords" commands, each in a different direction: a
"forget-passwords" command from the GUI to the OpenVPN client, and an
"echo forget-passwords" command from the OpenVPN client to the GUI.)

    3. How would the "setenv" command work? Would it be done by
modifying OpenVPN itself to add a management interface command for the
GUI to tell OpenVPN to set an environment variable for scripts,
similar to the way the OpenVPN --setenv option works? OpenVPN itself
seems to be designed to protect the client computer from the server as
well as the other way around. (For example,"--pull-filter ignore".) An
"echo setenv" command would break that protection if it modifies
variables which have been set by "setenv" in the configuration file or
--setenv in the command line.

    4. Does "echo save-passwords" override a (presumed) global setting
that disables it?

    5. Will "echo disable-save-passwords" override a (presumed) global
setting that enables it?


COMMENTS ABOUT TUNNELBLICK:

    A. Tunnelblick can/will implement "echo disable-save-passwords"
(in addition to Tunnelblick's existing mechanism for doing so). The
user will not have a way to override this (even a user who is a
computer administrator, but I want to think more about that and may
change my mind). It would also forget saved passwords as if the "echo
forget-passwords" had been received, because that is what the OpenVPN
Windows GUI will do (according to Selva).

    B. Tunnelblick can/will implement "echo forget passwords" but I
need clarification of exactly which "passwords" it affects (see
question 1, above) and whether Tunnelblick should instruct OpenVPN to
forget passwords, too. I'm leaning toward doing that because I don't
think there is any other way for the server to tell the OpenVPN client
to forget its passwords, so it could be useful.

    C. Tunnelblick can/will implement "echo save-passwords" only for
configurations that are not set up to to *disallow* it.

    D. Tunnelblick can/will implement "echo setenv" assuming the
management interface is modified to implement a command to do it or
there is some other acceptable way to do it securely.

    E. Tunnelblick's settings can affect all configurations or
individual configurations, and each setting can be "protected" so that
only a computer administrator can change it. That protection is set up
when Tunnelblick or the configuration is installed.


Best regards,

Jon Bullard


[1] 
https://sourceforge.net/p/openvpn/mailman/openvpn-users/thread/20171120151612.nbipfbmui74pdadn%40charite.de/#msg36130244

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-users mailing list
Openvpn-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-users

Reply via email to