SSHd: add ETM MACs for SHA2
[ach-master.git] / src / practical_settings / ssh.tex
index a4a4563..8dfd403 100644 (file)
@@ -1,13 +1,8 @@
-\subsubsection{OpenSSH}
-
-
-\begin{description}
-\item[Tested with Version:] OpenSSH 6.1
-
-\item[Settings:] \mbox{}
-
-
-\paragraph*{sshd_config}
+%%---------------------------------------------------------------------- 
+\subsection{OpenSSH}
+\subsubsection{Tested with Version} OpenSSH 6.1
+\subsubsection{Settings}
+\paragraph*{sshd\_config}
 \begin{lstlisting}[breaklines]
        # ...
 
        PermitRootLogin no
        StrictModes yes
        HostKey /etc/ssh/ssh_host_rsa_key
-       ServerKeyBits 4096
-       Ciphers aes256-gcm@openssh.com aes128-gcm@openssh.com aes256-ctr aes128-ctr
-       MACs umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
+       Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes128-ctr
+       MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
        KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
 \end{lstlisting}
 
-% XXX: curve25519-sha256@libssh.org only available upstream(!)
-
-Note: Older linux systems won't support SHA2. PuTTY (Windows) does not support
+\textbf{Note:} Older Linux systems won't support SHA2. PuTTY (Windows) does not support
 RIPE-MD160. Curve25519, AES-GCM and UMAC are only available upstream (OpenSSH
 6.1). DSA host keys have been removed on purpose, the DSS standard does not
 support for DSA keys stronger than 1024bit
@@ -32,21 +24,52 @@ support for DSA keys stronger than 1024bit
 below current standards (see section \ref{section:keylengths}). Legacy systems
 can use this configuration and simply omit unsupported ciphers, key exchange
 algorithms and MACs.  
+%\subsubsection{Justification for special settings (if needed)}
+\subsubsection{References}
+The openssh sshd\_config  man page is the best reference: \url{http://www.openssh.org/cgi-bin/man.cgi?query=sshd_config}
+\subsubsection{How to test}
+Connect a client with verbose logging enabled to the SSH server \\
+\begin{lstlisting}[breaklines]
+$ ssh -vvv myserver.com
+\end{lstlisting}and observe the key exchange in the output.
 
-\item[Additional settings:] \mbox{}
-
-Note that the setting \texttt{ServerKeyBits 4096}  has no effect until you re-generate new ssh host keys. There might be issues if you have users which rely on the fingerprint of the old ssh host key being stored in their clients' \texttt{.ssh/known\_hosts} file.
-
-\item[References:] The openssh sshd\_config  man page is the best reference: \url{http://www.openssh.org/cgi-bin/man.cgi?query=sshd_config}
 
+%%---------------------------------------------------------------------- 
+\subsection{Cisco ASA}
+\subsubsection{Tested with Version} 9.1(3)
+\subsubsection{Settings}
+\begin{lstlisting}[breaklines]
+crypto key generate rsa modulus 2048
+ssh version 2
+ssh key-exchange group dh-group14-sha1
+\end{lstlisting}
+Note: When the ASA is configured for SSH, by default both SSH versions 1 and 2 are allowed. In addition to that, only a group1 DH-key-exchange is used. This should be changed to allow only SSH version 2 and to use a key-exchange with group14. The generated RSA key should be 2048 bit (the actual supported maximum). A non-cryptographic best practice is to reconfigure the lines to only allow SSH-logins.
+\subsubsection{References}
+\url{http://www.cisco.com/en/US/docs/security/asa/asa91/configuration/general/admin\_management.html }
+\subsubsection{How to test}
+Connect a client with verbose logging enabled to the SSH server \\
+\begin{lstlisting}[breaklines]
+$ ssh -vvv myserver.com
+\end{lstlisting}and observe the key exchange in the output.
 
-\item[How to test:]
-% describe here or point the admin to tools (can be a simple footnote or \ref{} to  the tools section) which help the admin to test his settings.
 
-Connect with a client to an ssh server like this: \\
+%---------------------------------------------------------------------- 
+\subsection{Cisco IOS}
+\subsubsection{Tested with Version} 15.0, 15.1, 15.2
+\subsubsection{Settings}
 \begin{lstlisting}[breaklines]
-$ ssh -vv myserver.com
+crypto key generate rsa modulus 2048 label SSH-KEYS
+ip ssh rsa keypair-name SSH-KEYS
+ip ssh version 2
+ip ssh dh min size 2048
 \end{lstlisting}
-and observe the key exchange in the verbose output.
-
-\end{description}
+Note: Same as with the ASA, also on IOS by default both SSH versions 1 and 2 are allowed and the DH-key-exchange only use a DH-group of 768 Bit.
+In IOS, a dedicated Key-pair can be bound to SSH to reduce the usage of individual keys-pairs.
+\subsubsection{References}
+\url{http://www.cisco.com/en/US/docs/ios/sec\_user\_services/configuration/guide/sec\_secure\_shell\_v2.html }
+% add any further references or best practice documents here
+\subsubsection{How to test}
+Connect a client with verbose logging enabled to the SSH server \\
+\begin{lstlisting}[breaklines]
+$ ssh -vvv myserver.com
+\end{lstlisting}and observe the key exchange in the output.