summaryrefslogtreecommitdiff
path: root/static/openbsd/man8/starttls.8
diff options
context:
space:
mode:
Diffstat (limited to 'static/openbsd/man8/starttls.8')
-rw-r--r--static/openbsd/man8/starttls.8208
1 files changed, 208 insertions, 0 deletions
diff --git a/static/openbsd/man8/starttls.8 b/static/openbsd/man8/starttls.8
new file mode 100644
index 00000000..8d1a1618
--- /dev/null
+++ b/static/openbsd/man8/starttls.8
@@ -0,0 +1,208 @@
+.\" $OpenBSD: starttls.8,v 1.29 2025/05/05 20:50:03 tedu Exp $
+.\"
+.\" Copyright (c) 2001 Jose Nazario <jose@monkey.org>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd $Mdocdate: May 5 2025 $
+.Dt STARTTLS 8
+.Os
+.Sh NAME
+.Nm starttls
+.Nd ESMTP over TLS/SSL
+.Sh DESCRIPTION
+STARTTLS is an ESMTP option, defined in RFC 3207, which is used to conduct
+ESMTP transactions over TLS circuits.
+This is used to increase the security of mail server transactions.
+.Pp
+STARTTLS allows for the combination of several security solutions for MTA
+(mail transport agent) level services through the TLS suite.
+These security features include:
+.Bl -tag -width Ds
+.It Confidentiality
+Encryption is used to protect data from passive monitoring.
+.It Integrity
+Hash algorithms are used to ensure the integrity of the
+transmitted data.
+This protects data from modification in transit.
+.It Authentication
+The use of public key encryption allows for the strong authentication of
+either, or both, communicating parties.
+This can be used to allow for select features, such as relaying,
+to be controlled more securely.
+.El
+.Pp
+A new ESMTP option, STARTTLS, has been added.
+This is presented by the server when an ESMTP session is initiated.
+The client then begins the TLS portion of the ESMTP session by issuing
+the command
+.Dq STARTTLS .
+The remaining portion of the ESMTP session occurs over a TLS channel.
+.Ss Creating a private key and certificate for an MTA
+This example assumes you are creating your own self-signed certificates
+for use with
+.Xr smtpd 8
+and STARTTLS.
+If you have an existing private key and you simply wish to generate
+a new certificate (for example, if your old certificate has expired),
+see the section entitled
+.Sx Creating a certificate with an existing private key .
+.Pp
+For the purposes of this example the certificates will be stored in
+.Pa /etc/ssl ,
+though it is possible to use a different directory if needed.
+.Pp
+Next, you must generate an
+.Ar RSA
+private key:
+.Pp
+.Dl # openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096
+.Pp
+This would generate a 4096-bit
+.Ar RSA
+key stored in the file
+.Pa mail.example.com.key .
+.Pp
+Once you have generated the
+.Ar RSA
+key, you can generate a self-signed certificate from it using the command:
+.Bd -literal -offset indent
+# openssl req -x509 -new -key /etc/ssl/private/mail.example.com.key \e
+ -out /etc/ssl/mail.example.com.crt -days 365
+.Ed
+.Pp
+You may adjust the lifetime of the certificate via the
+.Fl days
+parameter (one year in this example).
+.Pp
+You can verify that the newly-generated certificate has correct information
+with the following command:
+.Pp
+.Dl # openssl x509 -in /etc/ssl/mail.example.com.crt -text
+.Pp
+It is better to configure and use
+.Xr acme-client 1
+to obtain a signed certificate.
+.Pp
+Because the private key files are unencrypted,
+MTAs can be picky about using tight permissions on those files.
+The certificate directory and the files therein should be
+readable and writable only by the owner (root).
+A simple way to ensure this is to run the following:
+.Pp
+.Dl # chmod -R go-rwx /etc/ssl/private
+.Ss Creating a certificate with an existing private key
+This example assumes you already have an existing private key,
+.Pa /etc/ssl/private/mail.example.com.key .
+You can generate a new certificate based on this key using the command:
+.Bd -literal -offset indent
+# openssl req -x509 -new -key /etc/ssl/private/mail.example.com.key \e
+ -out /etc/ssl/mail.example.com.crt -days 365
+# chmod 600 /etc/ssl/mail.example.com.crt
+.Ed
+.Pp
+You may adjust the lifetime of the certificate via the
+.Fl days
+parameter (one year in this example).
+.Pp
+After having installed the certificates,
+the mail server needs to be configured to accept TLS sessions
+and use the key and certificate.
+For
+.Xr smtpd 8 ,
+it's as simple as adding pki configuration to
+.Xr smtpd.conf 5 :
+.Bd -literal -offset indent
+pki mail.example.com cert "/etc/ssl/mail.example.com.crt"
+pki mail.example.com key "/etc/ssl/private/mail.example.com.key"
+
+listen on [...] tls pki mail.example.com auth
+.Ed
+.Pp
+After restarting the mail server, a new option should be presented for ESMTP
+transactions, STARTTLS.
+You can test this by connecting to the local host and issuing the
+.Dq EHLO
+command.
+.Bd -literal -offset indent
+# telnet localhost 25
+Trying 127.0.0.1...
+Connected to localhost.
+Escape character is '^]'.
+220 localhost ESMTP OpenSMTPD
+EHLO localhost
+.Ed
+.Pp
+After typing
+.Em EHLO localhost ,
+you should receive something like the following back.
+.Bd -literal -offset indent
+250-localhost Hello localhost [127.0.0.1], pleased to meet you
+250-8BITMIME
+250-ENHANCEDSTATUSCODES
+250-SIZE 36700160
+250-DSN
+250-STARTTLS
+250 HELP
+.Ed
+.Pp
+You should see
+.Dq STARTTLS
+listed along with the other options.
+If so, congratulations, the MTA will now use TLS to encrypt your mail
+traffic when the remote server supports it.
+If not, check
+.Pa /var/log/maillog
+to see whether the MTA has reported any security problems or other errors.
+.Ss Uses for TLS equipped MTAs
+The most obvious use of a cryptographically enabled MTA
+is for confidentiality of the electronic mail transaction and the
+integrity checking provided by the cipher suite.
+All traffic between the two mail servers is encrypted, including the
+sender and recipient addresses.
+TLS also allows for authentication of either or both systems in the transaction.
+.Pp
+One use of public key cryptography is for strong authentication.
+We can use this authentication to selectively relay clients, including
+other mail servers and mobile clients like laptops.
+However, there have been some problems getting some mail clients to work using
+certificate-based authentication.
+Clients will have to generate certificates and have them
+signed (for trust validation) by a trusted CA (certificate authority).
+.Sh SEE ALSO
+.Xr mail 1 ,
+.Xr openssl 1 ,
+.Xr smtpd 8 ,
+.Xr ssl 8
+.Sh STANDARDS
+.Rs
+.%A P. Hoffman
+.%D February 2002
+.%R RFC 3207
+.%T SMTP Service Extension for Secure SMTP over Transport Layer Security
+.Re
+.Sh CAVEATS
+Because TLS can only authenticate at the server level, true
+end-to-end authentication of the mail message cannot be performed with
+only the use of STARTTLS on the server.
+The use of S/MIME or PGP email and trustworthy key hierarchies can guarantee
+full confidentiality and integrity of the entire message path.