Skip to content

Commit f2ff828

Browse files
committed
Revert "comment-out OpenVPN, see GitHub #91"
This reverts commit 7b6fd17.
1 parent 445f8d8 commit f2ff828

File tree

1 file changed

+96
-101
lines changed

1 file changed

+96
-101
lines changed

src/practical_settings/vpn.tex

+96-101
Original file line numberDiff line numberDiff line change
@@ -195,108 +195,103 @@ \subsubsection{References}
195195
196196
%% cipherstrings current 2013-12-09
197197
% ----------------------------------------------------------------------
198+
\subsection{OpenVPN}
199+
200+
\subsubsection{Tested with Versions}
201+
\begin{itemize*}
202+
\item OpenVPN 2.3.2 from Debian ``wheezy-backports'' linked against openssl (libssl.so.1.0.0)
203+
\item OpenVPN 2.2.1 from Debian Wheezy linked against openssl
204+
(libssl.so.1.0.0)
205+
\item OpenVPN 2.3.2 for Windows
206+
\end{itemize*}
207+
208+
\subsubsection{Settings}
209+
210+
\paragraph{General}
211+
We describe a configuration with certificate-based authentication; see
212+
below for details on the \verb|easyrsa| tool to help you with that.
213+
214+
OpenVPN uses TLS only for authentication and key exchange. The
215+
bulk traffic is then encrypted and authenticated with the OpenVPN
216+
protocol using those keys.
217+
218+
Note that while the \verb|tls-cipher| option takes a list of ciphers
219+
that is then negotiated as usual with TLS, the \verb|cipher|
220+
and \verb|auth| options both take a single argument that must match on
221+
client and server.
222+
223+
\paragraph{Server Configuration}
224+
~\\
225+
% the cipherlist here is config B without the ECDHE strings, because
226+
% it must fit in 256 bytes...
227+
% DO NOT CHANGE TO THE CIPHERSTRING MACRO!
228+
\configfile{server.conf}{248-250}{Cipher configuration for OpenVPN (Server)}
229+
230+
\paragraph{Client Configuration}
231+
Client and server have to use compatible configurations, otherwise they can't communicate.
232+
The \verb|cipher| and \verb|auth| directives have to be identical.
233+
234+
% the cipherlist here is config B without the ECDHE strings, because
235+
% it must fit in 256 bytes...
236+
% DO NOT CHANGE TO THE CIPHERSTRING MACRO!
237+
\configfile{client.conf}{44-45,115-121}{Cipher and TLS configuration for OpenVPN (Server)}
238+
239+
\subsubsection{Justification for special settings}
240+
OpenVPN 2.3.1 changed the values that the \verb|tls-cipher| option
241+
expects from OpenSSL to IANA cipher names. That means from that
242+
version on you will get ``Deprecated TLS cipher name'' warnings for
243+
the configurations above. You cannot use the selection strings from
244+
section \ref{section:recommendedciphers} directly from 2.3.1 on, which
245+
is why we give an explicit cipher list here.
246+
247+
In addition, there is a 256 character limit on configuration file line
248+
lengths; that limits the size of cipher suites, so we dropped all
249+
ECDHE suites.
250+
251+
The configuration shown above is compatible with all tested versions.
252+
253+
254+
\subsubsection{References}
255+
\begin{itemize*}
256+
\item OpenVPN Documentation: \emph{Security Overview} \url{https://openvpn.net/index.php/open-source/documentation/security-overview.html}
257+
\end{itemize*}
258+
259+
%\subsubsection{How to test}
260+
261+
262+
\subsubsection{Additional settings}
263+
264+
\paragraph{Key renegotiation interval}
265+
The default for renegotiation of encryption keys is one hour
266+
(\verb|reneg-sec 3600|). If you
267+
transfer huge amounts of data over your tunnel, you might consider
268+
configuring a shorter interval, or switch to a byte- or packet-based
269+
interval (\verb|reneg-bytes| or \verb|reneg-pkts|).
270+
271+
\paragraph{Fixing ``easy-rsa''}
272+
When installing an OpenVPN server instance, you are probably using
273+
\emph{easy-rsa} to generate keys and certificates.
274+
The file \verb|vars| in the easyrsa installation directory has a
275+
number of settings that should be changed to secure values:
276+
277+
\configfile{vars}{53-53,56-56,59-59}{Sane default values for OpenVPN (easy-rsa)}
278+
279+
280+
This will enhance the security of the key generation by using RSA keys
281+
with a length of 4096 bits, and set a lifetime of one year for the
282+
server/client certificates and five years for the CA certificate. \textbf{NOTE: 4096 bits is only an example of how to do this with easy-rsa.} See also section \ref{section:keylengths} for a discussion on keylengths.
283+
284+
In addition, edit the \verb|pkitool| script and replace all occurrences
285+
of \verb|sha1| with \verb|sha256|, to sign the certificates with
286+
SHA256.
287+
288+
\subsubsection{Limitations}
289+
Note that the ciphersuites shown by \verb|openvpn --show-tls| are \emph{known}, but not necessarily \emph{supported} \footnote{\url{https://community.openvpn.net/openvpn/ticket/304}}.
290+
291+
Which cipher suite is actually used can be seen in the logs:
292+
293+
\verb|Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-CAMELLIA256-SHA, 2048 bit RSA|
198294
199-
%
200-
% atm openvpn only supports cbc mode, removed by azet 18/2/2015
201-
%
202-
203-
%\subsection{OpenVPN}
204-
%
205-
%\subsubsection{Tested with Versions}
206-
%\begin{itemize*}
207-
% \item OpenVPN 2.3.2 from Debian ``wheezy-backports'' linked against openssl (libssl.so.1.0.0)
208-
% \item OpenVPN 2.2.1 from Debian Wheezy linked against openssl
209-
% (libssl.so.1.0.0)
210-
% \item OpenVPN 2.3.2 for Windows
211-
%\end{itemize*}
212-
%
213-
%\subsubsection{Settings}
214-
%
215-
%\paragraph{General}
216-
%We describe a configuration with certificate-based authentication; see
217-
%below for details on the \verb|easyrsa| tool to help you with that.
218-
%
219-
%OpenVPN uses TLS only for authentication and key exchange. The
220-
%bulk traffic is then encrypted and authenticated with the OpenVPN
221-
%protocol using those keys.
222-
%
223-
%Note that while the \verb|tls-cipher| option takes a list of ciphers
224-
%that is then negotiated as usual with TLS, the \verb|cipher|
225-
%and \verb|auth| options both take a single argument that must match on
226-
%client and server.
227-
%
228-
%\paragraph{Server Configuration}
229-
%%~\\
230-
%% the cipherlist here is config B without the ECDHE strings, because
231-
%% it must fit in 256 bytes...
232-
%% DO NOT CHANGE TO THE CIPHERSTRING MACRO!
233-
%\configfile{server.conf}{248-250}{Cipher configuration for OpenVPN (Server)}
234-
%
235-
%\paragraph{Client Configuration}
236-
%Client and server have to use compatible configurations, otherwise they can't communicate.
237-
%The \verb|cipher| and \verb|auth| directives have to be identical.
238-
%
239-
%% the cipherlist here is config B without the ECDHE strings, because
240-
%% it must fit in 256 bytes...
241-
%% DO NOT CHANGE TO THE CIPHERSTRING MACRO!
242-
%\configfile{client.conf}{44-45,115-121}{Cipher and TLS configuration for OpenVPN (Server)}
243-
%
244-
%\subsubsection{Justification for special settings}
245-
%OpenVPN 2.3.1 changed the values that the \verb|tls-cipher| option
246-
%expects from OpenSSL to IANA cipher names. That means from that
247-
%version on you will get ``Deprecated TLS cipher name'' warnings for
248-
%the configurations above. You cannot use the selection strings from
249-
%section \ref{section:recommendedciphers} directly from 2.3.1 on, which
250-
%is why we give an explicit cipher list here.
251-
%
252-
%In addition, there is a 256 character limit on configuration file line
253-
%lengths; that limits the size of cipher suites, so we dropped all
254-
%ECDHE suites.
255-
%
256-
%The configuration shown above is compatible with all tested versions.
257-
%
258-
%
259-
%\subsubsection{References}
260-
%\begin{itemize*}
261-
% \item OpenVPN Documentation: \emph{Security Overview} \url{https://openvpn.net/index.php/open-source/documentation/security-overview.html}
262-
%\end{itemize*}
263-
%
264-
%%\subsubsection{How to test}
265-
%
266-
%
267-
%\subsubsection{Additional settings}
268-
%
269-
%\paragraph{Key renegotiation interval}
270-
%The default for renegotiation of encryption keys is one hour
271-
%(\verb|reneg-sec 3600|). If you
272-
%transfer huge amounts of data over your tunnel, you might consider
273-
%configuring a shorter interval, or switch to a byte- or packet-based
274-
%interval (\verb|reneg-bytes| or \verb|reneg-pkts|).
275-
%
276-
%\paragraph{Fixing ``easy-rsa''}
277-
%When installing an OpenVPN server instance, you are probably using
278-
%\emph{easy-rsa} to generate keys and certificates.
279-
%The file \verb|vars| in the easyrsa installation directory has a
280-
%number of settings that should be changed to secure values:
281-
%
282-
%\configfile{vars}{53-53,56-56,59-59}{Sane default values for OpenVPN (easy-rsa)}
283-
%
284-
%
285-
%This will enhance the security of the key generation by using RSA keys
286-
%with a length of 4096 bits, and set a lifetime of one year for the
287-
%server/client certificates and five years for the CA certificate. \textbf{NOTE: 4096 bits is only an example of how to do this with easy-rsa.} See also section \ref{section:keylengths} for a discussion on keylengths.
288-
%
289-
%In addition, edit the \verb|pkitool| script and replace all occurrences
290-
%of \verb|sha1| with \verb|sha256|, to sign the certificates with
291-
%SHA256.
292-
%
293-
%\subsubsection{Limitations}
294-
%Note that the ciphersuites shown by \verb|openvpn --show-tls| are \emph{known}, but not necessarily \emph{supported} \footnote{\url{https://community.openvpn.net/openvpn/ticket/304}}.
295-
%
296-
%Which cipher suite is actually used can be seen in the logs:
297-
%
298-
%\verb|Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-CAMELLIA256-SHA, 2048 bit RSA|
299-
%
300295
301296
% ----------------------------------------------------------------------
302297
\subsection{PPTP}

0 commit comments

Comments
 (0)