Hi,

I'd like to propose an "official" OpenVPN Radius Dictionnary (for use with
radiusplugin from Ralf Lübben for instance).

This Radius dictionary would help in enhancing
* Authentication: providing more information at authentication time to the
radius server (Common-Name, User-Name, ...) will makeit possible to build
complex access policies
* Authorization: the radius server could send the client-config parameters
to build the client-config file (IP address, iroutes, push parameters)
* Accounting: by giving as much information as possible to the accounting
server

First of all, defining a Radius dictionary with the 1.3.6.1.4.1.27340 vendor
OID requires approval by the owner of the Vendor OID (OpenVPN Solutions
LLC.). Are you rady to approve such project ?

Morover, this requires that the dictionnary is maintained by the community
(at least the official sources should contain the referenced dictionary in
the contrib directory).

What do you think about this idea ?

You'll find a a first try to define such a dictionary (in pseudo Freeradius
format for the moment, with X to be replaced by Attibutes Ids) at the end of
this email.

In order to be sure that I've read the man page correctly, do you confirm
that the following set of parameters are valid in a client-config-dir file :
--push-reset, --iroute, --ifconfig-push, --config, and "--push"

As far as the "--push" options is concerned I can read: "This is a partial
list of options which can currently be pushed: --route, --route-gateway,
--route-delay, --redirect-gateway, --ip-win32, --dhcp-option, --inactive,
--ping, --ping-exit, --ping-restart, --setenv, --persist-key, --persist-tun,
--echo, --comp-lzo, --socket-flags, --sndbuf, --rcvbuf". Are there others
(already implemented but not documented, or just planned) ? Knowing this
will help me define Radius attributes even if they are not currently
implemented (by OpenVPN or radiusplugin).

Thanks in advance for your feedback.

Best regards,
Thibault Le Meur




First Draft Proposal for the OpenVPN Dictionary:
------------------------------8<-------------------------------------
# from http://www.iana.org/assignments/enterprise-numbers

# OID 1.3.6.1.4.1.27340 is assigned to
#  OpenVPN Solutions LLC.
#    James Yonan
#      j...@yonan.net
VENDOR  OpenVPN 27340

BEGIN-VENDOR    OpenVPN

# Standard attributes already in use for OpenVPN (in radiusplugin)
# In Access-Requests/Accept packets:
#  User-Name
#  User-Password
#  NAS-Port
#  Calling-Station-Id
#  NAS-Identifier
#  NAS-IP-Address
#  NAS-Port-Type
#  Service-Type
#  Framed-IP-Address
#
# In Accounting packets:
#  Framed-IP-Address
#  NAS-Port
#  Calling-Station-Id
#  NAS-Identifier
#  NAS-IP-Address
#  NAS-Port-Type
#  Service-Type
#  Acct-Session-ID
#  Acct-Status-Type
#  Framed-Protocol
#  Acct-Input-Octets
#  Acct-Output-Octets
#  Acct-Session-Time
#  soon ( Acct-Terminate-Cause )

# Proposed ATTRIBUTES for Access-Request
########################################
# CN taken from the client CERT
#  May be used in Access-Request to give an hint to the radius server
ATTRIBUTE OpenVPN-Cn    X       string

#
# TLS id ??
# ATTRIBUTE OpenVPN-Tls-Id      X       string




# Proposed ATTRIBUTES for Access-Accept
########################################
# --push-reset
# SYNTAX: {TRUE|FALSE}
ATTRIBUTE OpenVPN-PushReset             X       integer
VALUE   OpenVPN-PushReset       FALSE   0
VALUE   OpenVPN-PushReset       TRUE    1

# push --route
# SYNTAX: {network|ip} [netmask] [gateway] [metric]
ATTRIBUTE OpenVPN-Push-Route            X       string

# push --route-delay
# SYNTAX: [n] [w]
ATTRIBUTE OpenVPN-Push-Route-Delay              X       string

# push --redirect-gateway
# SYNTAX: {TRUE|FALSE}
ATTRIBUTE OpenVPN-PushReset             X       integer
VALUE   OpenVPN-Push-Redirect-Gateway   FALSE   0
VALUE   OpenVPN-Push-Redirect-Gateway   TRUE    1

# push --ip-win32
# SYNTAX: {manual|dynamic [offset] [lease_time]|netsh|ipapi|adaptive}
ATTRIBUTE OpenVPN-Push-Ip-Win32         X       string

# push --dhcp-option
# SYNTAX: [parm]
# example: DNS 10.10.10.1
ATTRIBUTE OpenVPN-Push-Dhcp-Option              X       string

# push --inactive
# SYNTAX: n [bytes]
ATTRIBUTE OpenVPN-Push-Inactive X       string

# push --ping
# SYNTAX: n
ATTRIBUTE OpenVPN-Push-Ping     X       integer

# push --ping-exit
# SYNTAX: n
ATTRIBUTE OpenVPN-Push-Ping-Exit        X       integer

# push --ping-restart
# SYNTAX: n
ATTRIBUTE OpenVPN-Push-Ping-Restart     X       integer

# push --setenv
# SYNTAX: name value
ATTRIBUTE       OpenVPN-Push-Setenv     X       string

# push --persist-key
# SYNTAX: {TRUE|FALSE}
ATTRIBUTE       OpenVPN-Push-Persist-Key        X       integer
VALUE   OpenVPN-Push-Persist-Key FALSE  0
VALUE   OpenVPN-Push-Persist-Key TRUE   1

# push --persist-tun
# SYNTAX: {TRUE|FALSE}
ATTRIBUTE       OpenVPN-Push-Persist-Tun        X       integer
VALUE   OpenVPN-Push-Persist-Key FALSE  0
VALUE   OpenVPN-Push-Persist-Key TRUE   1

# push --echo
# SYNTAX: [echo_string]
ATTRIBUTE       OpenVPN-Push-Echo       X       string

# push --comp-lzo
# SYNTAX: {yes|no|adaptive}
# implemented as a string to handle new cases in the future
ATTRIBUTE       OpenVPN-Push-Comp-Lzo   X       string

# push --socket-flags
# SYNTAX: {socket_flags}
ATTRIBUTE       OpenVPN-Push-Socket-Flags       X       string

# push --sndbuf
# SYNTAX: n
ATTRIBUTE OpenVPN-Push-Sndbuf   X       integer

# push --rcvbuf
# SYNTAX: n
ATTRIBUTE OpenVPN-Push-Rcvbuf   X       integer

# push --topology
# SYNTAX: {net30|p2p|subnet}
# implemented as string for future evolutions
ATTRIBUTE OpenVPN-Push-Topology X       string

# --ifconfig-push is already handled by Framed-IP-Address
# no need for a specific attribute here

# --iroute is already handled by Framed-IP-Route
# no need for a specific attribute here

END-VENDOR      OpenVPN
-------------------------------8<-------------------------------------



+------------------------------------------------------------------------+
| Thibault LE MEUR                  | http://www.supelec.fr              |
| Supélec                           | e-mail: thibault.lem...@supelec.fr |
| Computer Resources Center         | tel:     +33 [0]1 69 85 17 89      |
| Plateau de Moulon                 |                                    |
| 3 rue Joliot-Curie                | fax:     +33 [0]1 69 85 12 34      |
| 91192 Gif-sur-Yvette CEDEX, France| Supelec: +33 [0]1 69 85 12 12      |
+------------------------------------------------------------------------+  



Reply via email to