]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/de/old/concepts/tls.tex
Simplify do_echo and update_version
[bacula/docs] / docs / manuals / de / old / concepts / tls.tex
diff --git a/docs/manuals/de/old/concepts/tls.tex b/docs/manuals/de/old/concepts/tls.tex
deleted file mode 100644 (file)
index 6c90e11..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-
-\chapter{Bacula TLS -- Communications Encryption}
-\label{CommEncryption}
-\index[general]{TLS -- Communications Encryption}
-\index[general]{Communications Encryption}
-\index[general]{Encryption!Communications}
-\index[general]{Encryption!Transport}
-\index[general]{Transport Encryption}
-\index[general]{TLS}
-
-Bacula TLS (Transport Layer Security) is built-in network
-encryption code to provide secure network transport similar to
-that offered by {\bf stunnel} or {\bf ssh}.  The data written to  
-Volumes by the Storage daemon is not encrypted by this code.
-For data encryption, please see the \ilink{Data Encryption
-Chapter}{DataEncryption} of this manual.
-
-The Bacula encryption implementations were written by Landon Fuller.
-
-Supported features of this code include: 
-\begin{itemize} 
-\item Client/Server TLS Requirement Negotiation 
-\item TLSv1 Connections with Server and Client Certificate
-Validation 
-\item Forward Secrecy Support via Diffie-Hellman Ephemeral Keying 
-\end{itemize}
-
-This document will refer to both "server" and "client" contexts.  These
-terms refer to the accepting and initiating peer, respectively.
-
-Diffie-Hellman anonymous ciphers are not supported by this code.  The
-use of DH anonymous ciphers increases the code complexity and places
-explicit trust upon the two-way CRAM-MD5 implementation.  CRAM-MD5 is
-subject to known plaintext attacks, and it should be considered
-considerably less secure than PKI certificate-based authentication.
-
-Appropriate autoconf macros have been added to detect and use OpenSSL  
-if enabled on the {\bf ./configure} line with {\bf \verb?--?with-openssl}
-
-\section{TLS Configuration Directives}
-Additional configuration directives have been added to all the daemons
-(Director, File daemon, and Storage daemon) as well as the various
-different Console programs.
-These new directives are defined as follows:
-
-\begin{description}
-\item [TLS Enable = \lt{}yes|no\gt{}]
-Enable TLS support.  If TLS is not enabled, none of the other TLS directives
-have any effect. In other words, even if you set {\bf TLS Require = yes} 
-you need to have TLS enabled or TLS will not be used.
-
-\item [TLS Require = \lt{}yes|no\gt{}]
-Require TLS connections.  This directive is ignored unless {\bf TLS Enable}
-is set to {\bf yes}.  If TLS is not required, and TLS is enabled, then
-Bacula will connect with other daemons either with or without TLS depending
-on what the other daemon requests.  If TLS is enabled and TLS is required,
-then Bacula will refuse any connection that does not use TLS.
-
-\item [TLS Certificate = \lt{}Filename\gt{}]
-The full path and filename of a PEM encoded TLS certificate.  It can be
-used as either a client or server certificate.  PEM stands for Privacy
-Enhanced Mail, but in this context refers to how the certificates are
-encoded.  It is used because PEM files are base64 encoded and hence ASCII
-text based rather than binary.  They may also contain encrypted
-information.
-
-\item [TLS Key = \lt{}Filename\gt{}]
-The full path and filename of a PEM encoded TLS private key.  It must
-correspond to the TLS certificate.
-
-\item [TLS Verify Peer = \lt{}yes|no\gt{}]
-Verify peer certificate.  Instructs server to request and verify the
-client's x509 certificate.  Any client certificate signed by a known-CA
-will be accepted unless the TLS Allowed CN configuration directive is used,
-in which case the client certificate must correspond to the Allowed
-Common Name specified. This directive is valid only for a server
-and not in a client context.
-
-\item [TLS Allowed CN = \lt{}string list\gt{}]
-Common name attribute of allowed peer certificates.  If this directive is
-specified, all server certificates will be verified against this list. This
-can be used to ensure that only the CA-approved Director may connect.
-This directive may be specified more than once.
-
-\item [TLS CA Certificate File = \lt{}Filename\gt{}]
-The full path and filename specifying a
-PEM encoded TLS CA certificate(s).  Multiple certificates are
-permitted in the file.  One of \emph{TLS CA Certificate File} or \emph{TLS
-CA Certificate Dir} are required in a server context if \emph{TLS
-Verify Peer} (see above) is also specified, and are always required in a client
-context.
-
-\item [TLS CA Certificate Dir = \lt{}Directory\gt{}]
-Full path to TLS CA certificate directory.  In the current implementation,
-certificates must be stored PEM encoded with OpenSSL-compatible hashes,
-which is the subject name's hash and an extension of {bf .0}.
-One of \emph{TLS CA Certificate File} or \emph{TLS CA Certificate Dir} are
-required in a server context if \emph{TLS Verify Peer} is also specified,
-and are always required in a client context.
-
-\item [TLS DH File = \lt{}Directory\gt{}]
-Path to PEM encoded Diffie-Hellman parameter file.  If this directive is
-specified, DH key exchange will be used for the ephemeral keying, allowing
-for forward secrecy of communications.  DH key exchange adds an additional
-level of security because the key used for encryption/decryption by the
-server and the client is computed on each end and thus is never passed over
-the network if Diffie-Hellman key exchange is used.  Even if DH key
-exchange is not used, the encryption/decryption key is always passed
-encrypted.  This directive is only valid within a server context.
-
-To generate the parameter file, you
-may use openssl:
-
-\begin{verbatim} 
-   openssl dhparam -out dh1024.pem -5 1024 
-\end{verbatim}
-
-\end{description}
-
-\section{Creating a Self-signed Certificate}
-\index[general]{Creating a Self-signed Certificate }
-\index[general]{Certificate!Creating a Self-signed }
-
-You may create a self-signed certificate for use with the Bacula TLS that
-will permit you to make it function, but will not allow certificate
-validation.  The .pem file containing both the certificate and the key
-valid for ten years can be made with the following:
-
-\footnotesize
-\begin{verbatim}
-   openssl req -new -x509 -nodes -out bacula.pem -keyout bacula.pem -days 3650
-\end{verbatim}
-\normalsize
-
-The above script will ask you a number of questions. You may simply answer
-each of them by entering a return, or if you wish you may enter your own data.
-
-Note, however, that self-signed certificates will only work for the
-outgoing end of connections.  For example, in the case of the Director
-making a connection to a File Daemon, the File Daemon may be configured to
-allow self-signed certificates, but the certificate used by the
-Director must be signed by a certificate that is explicitly trusted on the
-File Daemon end.
-
-This is necessary to prevent ``man in the middle'' attacks from tools such
-as \elink{ettercap}{http://ettercap.sourceforge.net/}.  Essentially, if the
-Director does not verify that it is talking to a trusted remote endpoint,
-it can be tricked into talking to a malicious 3rd party who is relaying and
-capturing all traffic by presenting its own certificates to the Director
-and File Daemons.  The only way to prevent this is by using trusted
-certificates, so that the man in the middle is incapable of spoofing the
-connection using his own.
-
-To get a trusted certificate (CA or Certificate Authority signed
-certificate), you will either need to purchase certificates signed by a
-commercial CA or find a friend that has setup his own CA or become a CA
-yourself, and thus you can sign all your own certificates.  The book
-OpenSSL by John Viega, Matt Mesier \& Pravir Chandra from O'Reilly explains
-how to do it, or you can read the documentation provided in the Open-source
-PKI Book project at Source Forge: \elink{
-http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}
-{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
-Note, this link may change. 
-
-The program TinyCA has a very nice Graphical User Interface 
-that allows you to easily setup and maintain your own CA.
-TinyCA can be found at
-\elink{http://tinyca.sm-zone.net/}{http://tinyca.sm-zone.net/}.
-
-
-\section{Getting a CA Signed Certificate}
-\index[general]{Certificate!Getting a CA Signed }
-\index[general]{Getting a CA Signed Certificate }
-
-The process of getting a certificate that is signed by a CA is quite a bit
-more complicated. You can purchase one from quite a number of PKI vendors, but
-that is not at all necessary for use with Bacula. To get a CA signed
-certificate, you will either need to find a friend that has setup his own CA
-or to become a CA yourself, and thus you can sign all your own certificates.
-The book OpenSSL by John Viega, Matt Mesier \& Pravir Chandra from O'Reilly
-explains how to do it, or you can read the documentation provided in the
-Open-source PKI Book project at Source Forge: 
-\elink{
-http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}
-{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
-Note, this link may change. 
-
-\section{Example TLS Configuration Files}
-\index[general]{Example!TLS Configuration Files}
-\index[general]{TLS Configuration Files}
-
-Landon has supplied us with the TLS portions of his configuration
-files, which should help you setting up your own.  Note, this example
-shows the directives necessary for a Director to Storage daemon session.
-The technique is the same between the Director and the Client and
-for bconsole to the Director.
-
-{\bf bacula-dir.conf}
-\footnotesize
-\begin{verbatim}
-   Director {                            # define myself
-     Name = backup1-dir
-     ...
-     TLS Enable = yes
-     TLS Require = yes
-     TLS Verify Peer = yes
-     TLS Allowed CN = "bacula@backup1.example.com"
-     TLS Allowed CN = "administrator@example.com"
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-     # This is a server certificate, used for incoming
-     # console connections.
-     TLS Certificate = /usr/local/etc/ssl/backup1/cert.pem
-     TLS Key = /usr/local/etc/ssl/backup1/key.pem
-   }
-
-   Storage {
-     Name = File
-     Address = backup1.example.com
-     ...
-     TLS Require = yes
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-     # This is a client certificate, used by the director to
-     # connect to the storage daemon
-     TLS Certificate = /usr/local/etc/ssl/bacula@backup1/cert.pem
-     TLS Key = /usr/local/etc/ssl/bacula@backup1/key.pem
-   }
-
-   Client {
-     Name = backup1-fd
-     Address = server1.example.com
-     ...
-   
-     TLS Enable = yes
-     TLS Require = yes
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-   }
-
-\end{verbatim}
-\normalsize
-
-{\bf bacula-fd.conf}
-\footnotesize
-\begin{verbatim}
-   Director {
-     Name = backup1-dir
-     ...
-     TLS Enable = yes
-     TLS Require = yes
-     TLS Verify Peer = yes
-     # Allow only the Director to connect
-     TLS Allowed CN = "bacula@backup1.example.com"
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-     # This is a server certificate. It is used by connecting
-     # directors to verify the authenticity of this file daemon
-     TLS Certificate = /usr/local/etc/ssl/server1/cert.pem
-     TLS Key = /usr/local/etc/ssl/server1/key.pem
-   }
-
-  FileDaemon {
-     Name = backup1-fd
-     ...
-     # you need these TLS entries so the SD and FD can
-     # communicate
-     TLS Enable = yes
-     TLS Require = yes
-
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-     TLS Certificate = /usr/local/etc/ssl/server1/cert.pem
-     TLS Key = /usr/local/etc/ssl/server1/key.pem
-}
-\end{verbatim}
-\normalsize
-
-{\bf bacula-sd.conf}
-\footnotesize
-\begin{verbatim}
-   Storage {                             # definition of myself
-     Name = backup1-sd
-     ...
-     # These TLS configuration options are used for incoming
-     # file daemon connections. Director TLS settings are handled
-     # below.
-     TLS Enable = yes
-     TLS Require = yes
-     # Peer certificate is not required/requested -- peer validity
-     # is verified by the storage connection cookie provided to the
-     # File Daemon by the director.
-     TLS Verify Peer = no
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-     # This is a server certificate. It is used by connecting
-     # file daemons to verify the authenticity of this storage daemon
-     TLS Certificate = /usr/local/etc/ssl/backup1/cert.pem
-     TLS Key = /usr/local/etc/ssl/backup1/key.pem
-   }
-
-   #
-   # List Directors who are permitted to contact Storage daemon
-   #
-   Director {
-     Name = backup1-dir
-     ...
-     TLS Enable = yes
-     TLS Require = yes
-     # Require the connecting director to provide a certificate
-     # with the matching CN.
-     TLS Verify Peer = yes
-     TLS Allowed CN = "bacula@backup1.example.com"
-     TLS CA Certificate File = /usr/local/etc/ssl/ca.pem
-     # This is a server certificate. It is used by the connecting
-     # director to verify the authenticity of this storage daemon
-     TLS Certificate = /usr/local/etc/ssl/backup1/cert.pem
-     TLS Key = /usr/local/etc/ssl/backup1/key.pem
-   }
-\end{verbatim}
-\normalsize