README: OpenSSH with GSSAPI and Kerberos v3.9p1

Table of Contents

Description View Section
System Requirements View Section
Installing the Files View Section
Configuration View Section
Known Issues View Section
Links View Section
Licensing Terms and Copyrights View Section

=====================================================================
OpenSSH with GSSAPI and Kerberos
November 2004
=====================================================================

Copyright (c) 2004 Certified Security Solutions, Inc.

This document contains:

   1. Information describing this package.
   2. System requirements for operating the package.
   3. Installation information.
   4. Instructions for configuring interoperability with an existing
         Microsoft Windows 2000 domain.
   5. Copyright information.

This utility is intended for operation on Solaris versions 5.5.1 and
above, HP-UX 10.20 and above and Red Hat Linux versions 7.3 and above.

======================================================================
Description
======================================================================

This package contains binaries for Solaris, HP-UX and Linux for
OpenSSH version 3.9p1, with GSSAPI functionality enabled. They were
linked with the MIT krb5-1.3.5 Kerberos 5/GSSAPI distribution, and
OpenSSL 0.9.7e. The source code for all of these packages is
available from each project's web page. See links section below.

The SSH server (sshd) in this package interoperates with the Certified
Security Solutions GSSAPI and Kerberos 5 enhanced version of PuTTY
(see Links section, below), an SSH client for Windows, as well as
other SSH clients. Using these enhanced versions of the PuTTY client
and the OpenSSH server, a user logged in to a Windows 2000 domain can
transparently authenticate to a UNIX or Linux SSH server using his/her
Windows 2000 credentials.

OpenSSH for Solaris and HP-UX has been built with Pseudo Random
Number Generator Daemon (prngd) support. Prngd compensates for the
lack of /dev/random device support on Solaris 5.5.1 - Solaris 5.8
and HP-UX 10.20. The OpenSSH binaries for Solaris and HP-UX in
this distribution will not function properly without prngd running.
The /opt/openssh-gssapi/etc/rc.sshd init script present in this
distribution starts both prngd and sshd by default, and its use is
recommended for starting sshd.

======================================================================
System Requirements
======================================================================

In order to utilize this package, you need the following:

   - An existing Windows 2000 Active Directory server, and at least
      one Windows 2000 client that is a member of that domain.

   - The GSSAPI-enhanced PuTTY package installed on the Windows 2000
      client system.

   - A Solaris, HP-UX or Linux server system to install and run this
      SSH package. The installer requires that Perl is installed on the
      system in order to function.

   - The adkadmin utility installed on the Solaris, HP-UX or Linux
      server running the SSH package. (Or another method for extracting
      a key from the Windows 2000 Active Directory server and
      installing it on the Solaris or Linux server.)

Note: OpenSSH is supported against both Windows 2000 Active Directory
and Windows 2003 Active Directory. In this readme, "Windows 2000" is
used generically to refer to either version. Similarly, PuTTY is
supported on several Windows versions, including Windows 2000 and XP.
In this readme, "Windows 2000" is used generically to refer to any
version.

======================================================================
Installing the Files
======================================================================

Download:
   Download the openssh binary distribution for your operating system.

   Solaris:
      openssh-3.9p1-gssapi-binary-solaris.tar.Z

   HP-UX:
      openssh-3.9p1-gssapi-binary-hpux.tar.Z

   Linux:
      openssh-3.9p1-gssapi-binary-linux.tar.Z

Unpack:
   Copy the binary package to a temporary work area, and unpack:
      cp openssh-3.9p1-gssapi-binary-solaris.tar.Z /tmp
      cd /tmp
      zcat openssh-3.9p1-gssapi-binary-solaris.tar.Z | tar xf -

Install:
   su to root, and execute the installation script
      su -
      cd /tmp/openssh-3.9p1-gssapi-binary-solaris
      ./install

   The installation destination directory is "/opt/openssh-gssapi".
   During this installation, an empty directory named "/var/empty" is
   created. The user named "sshd" and the group named "sshd" are also
   created.

Run:
   After the installation has completed, the rc.sshd init script,
   located in the /opt/openssh-gssapi/etc directory, is executed to
   start sshd, which can now accept login requests. However,
   additional configuration is required before GSSAPI authentication
   will function. Refer to the "Configuration" section below for
   additional instructions.

   Note: it may be necessary to start sshd with this command line
         to debug configuration issues:

      /opt/openssh-gssapi/etc/rc.sshd stop sshd
      /opt/openssh-gssapi/sbin/sshd -ddd


   Note: afterwards, to resume normal sshd operation, execute
         this command:

      /opt/openssh-gssapi/etc/rc.sshd start sshd


   Note: A configuration entry must be added to /etc/inittab
         or an init file added to /etc/rc.d in order to start sshd
         at boot time. Below is an example /etc/inittab entry
         for a system with an initdefault level of 3:

   hd:3:wait:/opt/openssh-gssapi/etc/rc.sshd start > /dev/console 2>&1

======================================================================
Configuration
======================================================================
After installation, ssh and sshd will function. However, to use GSSAPI
authentication, further configuration is required.

Configuration file additions:
   During the OpenSSH package installation, the sshd_config and
   ssh_config files, located in the /opt/openssh-gssapi/etc
   directory, were modified with the following addition:

      GSSAPIAuthentication yes

   This option must be enabled in order for GSSAPI authentication
   to function.

Create a Kerberos configuration file:
   Copy the sample configuration file, below, into the /etc/krb5.conf
   directory. Modify the /etc/krb5.conf file to reflect your
   default_realm, kdc, admin_server, and kpasswd_server values.

   Note: The "YOURDOMAIN" value must be changed to the domain name of
         your Windows 2000 domain.

Create a Kerberos service principal in Active Directory and extract
it to a key table on your Linux, HP-UX or Solaris server:

   css_adkadmin -p Administrator \
      -q "ank -k host/unixserver.example.com"

To enable the ability to forward Kerberos credentials to a Linux,
HP-UX or Solaris server, run this command:

   css_adkadmin -p Administrator \
      -q "modprinc -force +trusted_for_deleg host/unixserver.example.com"

Note: You must download, install and configure the adkadmin
      utility prior to performing these steps.


Sample Kerberos Configuration File
==================================
[libdefaults]
   default_realm = YOURDOMAIN

[realms]
   YOURDOMAIN = {
      kdc = domain-controller.example.com
      admin_server = domain-controller.example.com
      kpasswd_server = domain-controller.example.com
   }

[domain_realm]
   .example.com = YOURDOMAIN

Note: Replace ".example.com" with your DNS domain name.


PuTTY Configuration
===================
Using an installed PuTTY client containing the GSSAPI extensions,
perform the following configuration steps to utilize GSSAPI
authentication with OpenSSH.

+-Session
|   Host name: Specify name of UNIX server configured above
|   Protocol: Click SSH
+-Terminal
+-Window
--Connection
   |   Auto-login username: Specify UNIX username used during login
   |-Telnet
   |-Rlogin
   --SSH
      |   Preferred SSH protocol version: Click version 2
      |-Auth
      |   Authentication methods
      |      Attempt GSSAPI/Kerberos 5 Authentication: Check on
      |   Authentication parameters
      |      Allow Kerberos 5 ticket forwarding: Check on


After configuring the above PuTTY parameters, click on Session again,
specify a "Saved Sessions" name, and click the Save button.

Warning: You must specify a saved session name, and save the
         configuration settings in order to load the settings for a
         subsequent session.

You are now ready to establish an SSH connection to the UNIX server.
Click the session name used to save the configuration above, click
Load, then click Open.


Kerberos 5 Authentication with the SSH 1 Protocol
=================================================
Note: Kerberos 5 Authentication with the SSH 1 Protocol
      is no longer supported in OpenSSH as of release 3.7p1.
      This functionality was removed from OpenSSH when GSSAPI
      authentication was added, since Kerberos 5 is a supported
      authentication mechanism of GSSAPI.


======================================================================
Known Issues
======================================================================

Failed initializing GSSAPI context
   The standard clock skew error may not appear during SSH GSSAPI
   authentication when the time on the target UNIX host precedes
   the time on the Windows server by the allowed clock skew value,
   typically 5 minutes.

Error: "protocol error: rcvd type 61"
   The standard clock skew error may not appear during SSH GSSAPI
   authentication when the time on the target UNIX host is out of sync
   with the time on the Windows server. The error may instead be:
      Server sent disconnect message type 2
      (SSH_DISCONNECT_PROTOCOL_ERROR): "protocol error: rcvd type 61"
   This error is known to occur on Windows 2000 clients with SP4
   installed.

OpenSSH session disconnect from HP-UX host with large number of PTYs
   When a connection to an HP-UX host is attempted, the target openssh
   server may terminate the connection during authentication (with or
   without GSSAPI) when the HP-UX host has a large (non-default)
   number of PTYs configured.


======================================================================
Links
======================================================================

OpenSSH:
   http://www.openssh.com/portable.html
   ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-3.9p1.tar.gz

OpenSSL:
   openssl-0.9.7e.tar.gz:
      http://www.openssl.org/source/openssl-0.9.7e.tar.gz

zlib:
   zlib-1.1.4.tar.gz (Solaris only)
      http://www.gzip.org/zlib/

MIT Kerberos:
   http://web.mit.edu/kerberos/dist/index.html
   http://web.mit.edu/kerberos/www/krb5-1.3/index.html#fetching

PuTTY:
   http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
   http://www.chiark.greenend.org.uk/~sgtatham/putty/

Certified Security Solutions GSSAPI patch for PuTTY:
   http://www.css-security.com/cgi-bin/dnld_list.pl

======================================================================
Licensing terms and copyrights
======================================================================

Copyright (c) 2001-2003 Simon Wilkinson. 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 BY THE AUTHOR 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.

---

This file is part of the OpenSSH software.

The licences which components of this software fall under are as
follows. First, we will summarize and say that all components
are under a BSD licence, or a licence more free than that.

OpenSSH contains no GPL code.

1)
      * Copyright (c) 1995 Tatu Ylonen (ylo@cs.hut.fi), Espoo, Finland
      * All rights reserved
      *
      * As far as I am concerned, the code I have written for this software
      * can be used freely for any purpose. Any derived versions of this
      * software must be clearly marked as such, and if the derived work is
      * incompatible with the protocol description in the RFC file, it must be
      * called by a name other than "ssh" or "Secure Shell".

      [Tatu continues]
      * copyrights held by third parties, and the software includes parts that
      * are not under my direct control. As far as I know, all included
      * source code is used in accordance with the relevant license agreements
      * and can be used freely for any purpose (the GNU license being the most
      * restrictive); see below for details.

      [However, none of that term is relevant at this point in time. All of
      these restrictively licenced software components which he talks about
      have been removed from OpenSSH, i.e.,

      - RSA is no longer included, found in the OpenSSL library
      - IDEA is no longer included, its use is deprecated
      - DES is now external, in the OpenSSL library
      - GMP is no longer used, and instead we call BN code from OpenSSL
      - Zlib is now external, in a library
      - The make-ssh-known-hosts script is no longer included
      - TSS has been removed
      - MD5 is now external, in the OpenSSL library
      - RC4 support has been replaced with ARC4 support from OpenSSL
      - Blowfish is now external, in the OpenSSL library

      [The licence continues]

      Note that any information and cryptographic algorithms used in this
      software are publicly available on the Internet and at any major
      bookstore, scientific library, and patent office worldwide. More
      information can be found e.g. at "http://www.cs.hut.fi/crypto".

      The legal status of this program is some combination of all these
      permissions and restrictions. Use only at your own responsibility.
      You will be responsible for any legal consequences yourself; I am not
      making any claims whether possessing or using this is legal or not in
      your country, and I am not taking any responsibility on your behalf.


        NO WARRANTY

      BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
      FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
      OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
      PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
      OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
      TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
      PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
      REPAIR OR CORRECTION.

      IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
      WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
      REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
      INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
      OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
      TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
      YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
      PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
      POSSIBILITY OF SUCH DAMAGES.

2)
      The 32-bit CRC implementation in crc32.c is due to Gary S. Brown.
      Comments in the file indicate it may be used for any purpose without
      restrictions:

      * COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or
      * code or tables extracted from it, as desired without restriction.

3)
      The 32-bit CRC compensation attack detector in deattack.c was
      contributed by CORE SDI S.A. under a BSD-style license.

      * Cryptographic attack detector for ssh - source code
      *
      * Copyright (c) 1998 CORE SDI S.A., Buenos Aires, Argentina.
      *
      * All rights reserved. Redistribution and use in source and binary
      * forms, with or without modification, are permitted provided that
      * this copyright notice is retained.
      *
      * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
      * WARRANTIES ARE DISCLAIMED. IN NO EVENT SHALL CORE SDI S.A. BE
      * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR
      * CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OR MISUSE OF THIS
      * SOFTWARE.
      *
      * Ariel Futoransky (futo@core-sdi.com)
      * (http://www.core-sdi.com)

4)
      ssh-keygen was contributed by David Mazieres under a BSD-style
      license.

      * Copyright 1995, 1996 by David Mazieres (dm@lcs.mit.edu).
      *
      * Modification and redistribution in source and binary forms is
      * permitted provided that due credit is given to the author and the
      * OpenBSD project by leaving this copyright notice intact.

5)
      The Rijndael implementation by Vincent Rijmen, Antoon Bosselaers
      and Paulo Barreto is in the public domain and distributed
      with the following license:

      * @version 3.0 (December 2000)
      *
      * Optimised ANSI C code for the Rijndael cipher (now AES)
      *
      * @author Vincent Rijmen (vincent.rijmen@esat.kuleuven.ac.be)
      * @author Antoon Bosselaers (antoon.bosselaers@esat.kuleuven.ac.be)
      * @author Paulo Barreto (paulo.barreto@terra.com.br)
      *
      * This code is hereby placed in the public domain.
      *
      * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''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 AUTHORS OR CONTRIBUTORS 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.

6)
      One component of the ssh source code is under a 4-clause BSD license,
      held by the University of California, since we pulled these parts from
      original Berkeley code. The Regents of the University of California
      have declared that term 3 is no longer enforceable on their source code,
      but we retain that license as is.

      * Copyright (c) 1983, 1990, 1992, 1993, 1995
      * The Regents of the University of California. 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.
      * 3. All advertising materials mentioning features or use of this software
      * must display the following acknowledgement:
      * This product includes software developed by the University of
      * California, Berkeley and its contributors.
      * 4. Neither the name of the University nor the names of its contributors
      * may be used to endorse or promote products derived from this software
      * without specific prior written permission.
      *
      * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.

7)
      Remaining components of the software are provided under a standard
      2-term BSD licence with the following names as copyright holders:

   Markus Friedl
   Theo de Raadt
   Niels Provos
   Dug Song
   Aaron Campbell
   Damien Miller
   Kevin Steves
   Daniel Kouril
   Per Allansson

      * 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 BY THE AUTHOR ``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.