Likewise Open Installation and Administration Guide

Last updated: June 10, 2009.

Abstract

This guide describes how to install and manage Likewise Open, an open source version of the Likewise agent that connects Linux, Unix, and Mac OS X computers to Microsoft Active Directory and authenticates users with their domain credentials. The guide covers installing the agent, joining an Active Directory domain, logging on with domain credentials, configuring the agent, and troubleshooting.


Table of Contents

1. The Likewise Agent
1.1. About the Likewise Agent
1.2. Daemons
1.3. Ports and Libraries
1.4. Caches
1.5. Configuration Files
1.6. Time Synchronization
1.7. Troubleshooting Kerberos
1.8. Using a Network Time Protocol Server
1.9. Automatic Detection of Offline Domain Controller and Global Catalog
1.10. UID-GID Generation in Likewise Open and Likewise Enterprise Cells
1.11. Cached Credentials
1.12. Trust Support
1.13. Supported Platforms
2. Configuring Clients Before Agent Installation
2.1. Configure nsswitch.conf
2.2. Configure resolv.conf
2.3. Configure Firewall Ports
2.4. Extend Partition Size Before Installing Likewise on IBM AIX
2.5. Increase Max Username Length on IBM AIX
2.6. Check System Health Before Installing the Agent
3. Installing the Agent
3.1. Install the Correct Version for Your Operating System
3.2. Requirements for the Agent
3.3. Install the Agent on Linux or Unix with the Shell Script
3.4. Install the Agent on Linux with the BitRock GUI
3.5. Install the Agent on Linux with glibc 2.2 or Earlier
3.6. Install the Agent on Linux in Unattended or Text Mode
3.7. Install the Agent on Unix with the Command Line
3.8. Install the Domain Join GUI
3.9. Install the Agent on a Mac Computer
3.10. Install the Agent on a Mac in Unattended Mode
3.11. Upgrading to the Latest Agent
4. Joining an Active Directory Domain
4.1. About Joining a Domain
4.2. Join Active Directory with the Command Line
4.3. Join Active Directory Without Changing /etc/hosts
4.4. Join a Linux Computer to Active Directory with the GUI
4.5. Join a Mac Computer to Active Directory with the GUI
4.6. Use Likewise with a Single OU
4.7. Rename a Joined Computer
4.8. Files Modified When You Join a Domain
4.9. With NetworkManager, Use a Wired Connection to Join a Domain
5. Logging On with Domain Credentials
5.1. About Logging On
5.2. Log On with AD Credentials
5.3. Log On with SSH
5.4. Solve Logon Problems on Linux or Unix
6. Troubleshooting Domain-Join Problems
6.1. Top 10 Reasons Domain Join Fails
6.2. Solve Domain-Join Problems
7. Configuring the Likewise Agent
7.1. About Configuring the Agent
7.1.1. Maintaining a Local Change for a File Managed by a GPO
7.2. Restrict Logon Rights
7.3. Display an Error to Users Without Access Rights
7.4. Change the Domain Separator Character
7.5. Change the Replacement Character for Spaces
7.6. Turn Off System Time Synchronization
7.7. Set the Default Domain
7.8. Set the Home Directory and Shell for Domain Users
7.9. Change the Skeleton Directory
7.10. Set the Umask for Home Directories
7.11. Add Domain Accounts to Local Groups with /etc/group
7.12. Configure Entries in Your Sudoers Files
7.13. Force Likewise Open to Ignore Cell Information
7.14. Refresh User Credentials
7.15. Change the Duration of Cached Credentials
7.16. Turn Off K5Logon File Creation
7.17. Change NSS Membership Settings
7.18. Change the Duration of the Machine Password
7.19. Change the Duration of Local Passwords
7.20. Set the Local Password Change Warning Interval
7.21. Display an MOTD
7.22. Sign and Seal LDAP Traffic
7.23. Turn On Event Logging
7.24. Turn Off Network Event Logging
7.25. Working with Solaris Zones
8. Troubleshooting the Agent
8.1. Set the Log Level
8.2. Check the Status of the Authentication Daemon
8.3. Check the Status of the DCE/RPC Daemon
8.4. Check the Status of the Network Logon Daemon
8.5. Check the Status of the Input-Output Service
8.6. Check the Version and Build Number
8.7. Find a User or a Group
8.8. Clear the Authentication Cache
8.9. Destroy the Kerberos Ticket Cache
8.10. Determine a Computer's FQDN
8.11. Diagnose NTP on Port 123
8.12. Find the Likewise Daemons on a Mac
8.13. Find a User by a SID
8.14. Fix a Key Table Entry-Ticket Mismatch
8.15. Generate a Domain-Join Log
8.16. Generate a Network Trace
8.17. Generate a PAM Debug Log
8.18. Generate an Authentication Agent Debug Log
8.19. Generate Debug Log for Netlogond
8.20. Get the Status of the Authentication Providers
8.21. Get Domain Controller Information
8.22. Get Machine Account Information
8.23. Increase Max Username Length on AIX
8.24. List Groups
8.25. List Users
8.26. Reload Changes to the Configuration File
8.27. Make Sure Outbound Ports Are Open
8.28. Resolve an AD Alias Conflict with a Local Account
8.29. Restart the DCE/RPC Daemon
8.30. Restart the Network Logon Daemon
8.31. Restart the Input-Output Service
8.32. Restart the Authentication Daemon
8.33. View Kerberos Tickets
8.34. View the Netlogon Daemon's Cache
8.35. Fix the Shell and Home Directory Paths
9. Leaving a Domain and Uninstalling the Agent
9.1. Leave a Domain
9.2. Uninstall the Domain Join GUI
9.3. Uninstall the Agent on a Linux or Unix Computer
9.4. Uninstall the Agent on a Mac
10. Using Likewise for Single Sign-On
10.1. About Single Sign-On
10.2. Make Sure PAM Is Enabled for SSH
10.3. Configure PuTTY for Windows-Based SSO
10.4. Solve the SSO Problem on Red Hat and CentOS
10.5. Configure Apache for SSO
10.6. Log On and Verify a Kerberos Ticket
10.7. Perform an Authenticated LDAP Search
10.8. Use Firefox to Single Sign-On Intranet Sites
10.9. Configure FTP for SSO
10.10. Telnet
10.11. rlogin
10.12. rsh
10.13. Configure SSH for SSO
11. Contacting Technical Support
11.1. Contact Support
11.2. Provide Diagnostic Information to Technical Support
12. Legal Disclaimer and Copyright Notice

Chapter 1. The Likewise Agent

1.1. About the Likewise Agent

The Likewise agent is installed on Linux, Unix, and Mac OS X computers to connect them to Microsoft Active Directory and to authenticate users with their domain credentials. The agent integrates with the core operating system to implement the mapping for any application, such as the logon process (/bin/ login), that uses the name service (NSS) or pluggable authentication module (PAM). As such, the agent acts as a Kerberos 5 client for authentication and as a LDAP client for authorization. In Likewise Enterprise, the agent also retrieves group policy objects to securely update local configurations, such as the sudo file.

The Likewise agent is also known as the Likewise client.

1.2. Daemons

The Likewise agent comprises the following daemons:

Daemon

Description

Dependencies

/opt/likewise/sbin/lsassd

The Likewise authentication daemon. It handles authentication, authorization, caching, and idmap lookups. You can check its status or restart it.

netlogond lwrdrd dcerpcd eventlogd

/opt/likewise/sbin/netlogond

Detects the optimal domain controller and global catalog and caches the data. You can check its status or restart it.

None

/opt/likewise/sbin/lwrdrd

The Likewise input-output service. It communicates over SMB with SMB servers. You can check its status or restart it.

netlogond

/opt/likewise/sbin/dcerpcd

The Likewise DCE/RPC end-point mapper. DCE/RPC stands for Distributed Computing Environment/Remote Procedure Calls. The daemon handles communication between Linux, Unix, and Mac computers and Microsoft Active Directory by mapping data to end points. You can check its status or restart it.

netlogond lwrdrd

/opt/likewise/sbin/eventlogd

Collects and processes data for the event log.

netlogond lwrdrd dcerpcd

For AD user account requests (but not for root account requests), eventlogd also depends on lsassd.

/opt/likewise/sbin/lwmgmtd

The Likewise management daemon.

netlogond lwrdrd dcerpcd eventlogd lsassd gpagentd

/opt/likewise/sbin/gpagentd

The group policy agent. Part of Likewise Enterprise, it runs as a background service to pull group policy objects from Active Directory and apply them to the computer. You can check its status or restart it.

netlogond lwrdrd dcerpcd eventlogd lsassd

Suggested Restart Order for the Likewise Daemons

1. netlogond

2. lwrdrd

3. dcerpcd

4. eventlogd

5. lsassd

6. gpagentd (with Likewise Enterprise)

7. lwmgmtd

1.3. Ports and Libraries

The agent includes a number of libraries in /opt/likewise/lib.

The agent uses the following ports for outbound traffic.

Port

Protocol

Use

53  

UDP/ TCP

DNS

88

UDP/TCP

Kerberos

123

UDP

NTP

137

UDP

NetBIOS Name Service

139  

TCP

NetBIOS Session (SMB)

389

UDP/TCP

LDAP

445

TCP

SMB over TCP

464

UDP/TCP

Machine password changes (typically after 30 days)

3268

TCP

Global Catalog search

1.4. Caches

To maintain the current state and to improve performance, the Likewise agent caches information in four files, all of which are in /var/lib/likewise/db:

Cache File

Description

lsass-adcache.db

Cache managed by the Active Directory authentication provider.

lsass-local.db

Repository managed by the local authentication provider.

netlogon-cache.db

Domain controller affinity cache, managed by netlogond

pstore.db

Repository storing the join state and machine password

1.5. Configuration Files

On most operating systems, the configuration files for Likewise are in /etc/likewise. For more information, see Configuring the Agent.

1.6. Time Synchronization

For the Likewise agent to communicate over Kerberos with the domain controller, the clock of the client must be within the domain controller's maximum clock skew, which is 300 seconds, or 5 minutes, by default. (For more information, see http://web.mit.edu/kerberos/krb5-1.4/krb5-1.4.2/doc/krb5-admin/Clock-Skew.html.)

The clock skew tolerance is a server-side setting. When a client communicates with a domain controller, it is the domain controller's Kerberos key distribution center that determines the maximum clock skew. Changing the maximum clock skew in the client's krb5.conf file does not affect the clock skew tolerance of the domain controller and will not unable a client outside the domain controller's tolerance to communicate with it.

The clock skew value that is set in the /etc/likewise/krb5.conf file of Linux, Unix, and Mac OS X computers is useful only when the computer is functioning as a server for other clients. In such cases, you can use a Likewise Enterprise group policy to change the maximum tolerance; for more information, see Set the Maximum Tolerance for Kerberos Clock Skew.

The domain controller uses the clock skew tolerance to prevent replay attacks by keeping track of every authentication request within the maximum clock skew. Authentication requests outside the maximum clock skew are discarded. When the server receives an authentication request within the clock skew, it checks the replay cache to make sure the request is not a replay attack. For more information, see the resources below.

1.7. Troubleshooting Kerberos

The following resources can help troubleshoot time synchronization and other Kerberos issues:

1.8. Using a Network Time Protocol Server

If you set the system time on your computer with a Network Time Protocol (NTP) server, the time value of the NTP server and the time value of the domain controller could exceed the maximum skew. As a result, you will be unable to log on your computer.

If you use an NTP server with a cron job, there will be two processes trying to synchronize the computer's time -- causing a conflict that will change the computer's clock back and forth between the time of the two sources.

Likewise recommends that you configure your domain controller to get its time from the NTP server and configure the domain controller's clients to get their time from the domain controller.

1.9. Automatic Detection of Offline Domain Controller and Global Catalog

The Likewise authentication daemon -- lsassd -- manages site affinity for domain controllers and global catalogs and caches the information with netlogond. When a computer is joined to Active Directory, netlogond determines the optimum domain controller and caches the information. If the primary domain controller goes down, lassd automatically detects the failure and switches to another domain controller and another global catalog within a minute.

However, if another global catalog is unavailable within the forest, the Likewise agent will be unable to find the Unix and Linux information of users and groups. The Likewise agent must have access to the global catalog to function. Therefore, it is a recommended that each forest has redundant domain controllers and redundant global catalogs.

1.10. UID-GID Generation in Likewise Open and Likewise Enterprise Cells

In Likewise Open, a UID and GID are generated by hashing the user or group's security identifier, or SID, from Active Directory. With Likewise Open, you do not need to make any changes to Active Directory. A UID and GID stays the same across host machines. With Likewise Open, you cannot set UIDs and GIDs for Linux and Unix in Active Directory; using AD to set and manage UIDs and GIDs is a feature of Likewise Enterprise or the Likewise UID-GID management tool. If your Active Directory relative identifiers, or RIDs, are a number greater than 524,287, the Likewise Open algorithm that generates UIDs and GIDs can result in UID-GID collisions among users and groups. In such cases, it is recommended that you use Likewise Enterprise or that you use the Likewise UID-GID management tool.

The Likewise Open algorithm is the same in 4.1 and 5.0, and if you are running 4.1 on one computer and 5.0 or later on another, each user and group should have the same UID and GID on both machines.

Note: If you have UIDs and GIDs defined in Active Directory, Likewise Open will not use those UIDs and GIDs.

In Likewise Enterprise, you can specify the UIDs and GIDs that you want, including setting multiple UID and GID values for a given user based on OU membership by using Likewise cells. (Likewise cells, available only in Likewise Enterprise, provide a method for mapping Active Directory users and groups to UIDs and GIDs.) You can also specify that Likewise Enterprise automatically generates UID and GID values sequentially.

1.11. Cached Credentials

Both Likewise Open and Likewise Enterprise cache credentials so users can log on when the computer is disconnected from the network or Active Directory is unavailable.

1.12. Trust Support

The Likewise agent supports the following Active Directory trusts:

Trust Type

Transitivity

Direction

Likewise Default Cell Support

Likewise Non-Default Cell Support

Parent and child

Transitive

Two-way

Yes

Yes

External

Nontransitive

One-way

No

Yes

External

Nontransitive

Two-way

No

Yes

Forest

Transitive

One-way

No

Yes

Forest

Transitive

Two-way

Yes: Must enable default cell in both forests.

Yes

There is information on the types of trusts at http://technet.microsoft.com/en-us/library/cc775736(WS.10).aspx.

Notes on Trusts

  • You must place the user or group that you want to give access to the trust in a cell other than the default cell.

  • In two-way forest or parent-child trust, Likewise merges the default cells. When merged, users in one domain can log on computers in another domain, and vice-versa.

  • To put a user in a child domain but not the parent domain, you must put the user in a non-default cell.

  • If there is a UID conflict across two domains, one domain will be dropped.

  • In a cross-forest transitive one- or two-way trust, the root of the trusted forest must have a default cell.

  • In a one-way trust in which Forest A trusts Forest B, a computer in Forest A cannot get group information from Forest B, because Forest B does not trust Forest A. The computer in Forest A can obtain group information if the user logs on with a password for a domain user, but not if the user logs on with Kerberos single sign-on credentials. Only the primary group information, not the secondary group information, is obtained.

  • If you have a network topology in which the "front" domain trusts the "back" domain, and you join a machine to the "front" domain using a "back" domain administrator, as in the following example, the attempt to join the domain will fail: domainjoin-cli join front.likewise.com back\\administrator password. However, the attempt to join the domain will succeed if you use the following nomenclature:

    domainjoin-cli join front.likewise.com administrator@BACK.likewise.COM password

Aliasing and Trusts

  • Aliased user names are supported in the default cell.

  • Since one-way trusts do not allow LDAP queries on trusted domains, you cannot use aliases across a one-way trust.

1.13. Supported Platforms

Likewise Open and Likewise Enterprise run on a broad range of Unix, Mac OS X, and Linux platforms. Likewise frequently adds new vendors and distributions to the list of supported platforms. To view the list, go to http://www.likewise.com/products/likewise_enterprise/supported_platforms.php.

Chapter 2. Configuring Clients Before Agent Installation

2.1. Configure nsswitch.conf

Before you attempt to join an Active Directory domain, make sure the /etc/nsswitch.conf file contains the following line:

hosts: files dns

The hosts line can contain additional information, but it must include the dns entry, and it is recommended that the dns entry appear after the files entry.

Computers running Solaris, in particular, may not contain this line in nsswitch.conf until you add it.

When you use Likewise with Multicast DNS 4 (mDNS4) and have a domain in your environment that ends in .local, you must place the dns entry before the mdns4_minimal entry and before the mdns4 entry:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

The default setting for many Linux systems is to list the mdns4 entries before the dns entry -- a configuration that leaves Likewise unable to find the domain.

For more information on configuring nsswitch, see the man page for nsswitch.conf.

2.2. Configure resolv.conf

Before you attempt to join an Active Directory domain, make sure that /etc/resolv.conf on your Linux, Unix, or Mac client includes a DNS server that can resolve Srv records for your domain.

Example:

[root@rhel5d Desktop]# cat /etc/resolv.conf
search likewisedemo.com
nameserver 192.168.100.132

For information, see your operating system's man page for resolv.conf.

2.3. Configure Firewall Ports

The Likewise agent requires several firewall ports to be open for outbound traffic. For a list of the required ports, see Make Sure Outbound Ports Are Open.

2.4. Extend Partition Size Before Installing Likewise on IBM AIX

On AIX 5.2 and 5.3, you may need to extend the size of certain partitions to complete the installation successfully.

To do so, use IBM's chfs command to change the partition sizes -- for example:

# chfs -a size=+200M /opt

This command increases the size of the /opt partition by 200 megabytes, which should be sufficient for a successful installation.

2.5. Increase Max Username Length on IBM AIX

By default, IBM AIX is not configured to support long user and group names, which might present a conflict when you try to log on with a long Active Directory username. To increase the max username length on AIX 5.3, use the following syntax:

# chdev - l sys0 -a max_logname=MaxUserNameLength+1

Example:

# chdev - l sys0 -a max_logname=255

This command allocates 254 characters for the user and 1 for the terminating null.

The safest value that you can set max_logname to is 255.

You must reboot for the changes to take effect:

# shutdown - Fr

Note: AIX 5.2 does not support increasing the maximum user name length.  

2.6. Check System Health Before Installing the Agent

Members of the Likewise support staff might use a shell script to check the health of a Linux or Unix computer on which you plan to install the Likewise Agent. The script helps identify potential system configuration issues before you install the agent and attempt to join a Linux or Unix computer to Active Directory.

With Likewise Open, the script is unavailable, but you can manually check your computer against the list in the table below.

The name of the script is healthchk.sh. To execute it, copy the script to the Unix or  Linux computer that you want to check, and then execute the following command from the shell prompt: likewise-health-check.sh

The script outputs the results of its scan to /tmp/healthchk.out.

The following table lists each item the script checks, describes the item, and suggests action to correct the issue.

Item Checked

Description

Corrective Action

Type of operating system

The operating system must be one of the platforms that Likewise supports. Supported platforms are listed later in this guide.

Install the agent on a computer that is running a supported operating system.

Hostname

Informational.

Not applicable.

Processor type

The processor type must be supported by the Likewise Agent. See the list of supported platforms later in this guide.

Install the agent on a computer with a supported processor.

Disk usage

Checks the disk space available to /opt to ensure that there is enough to install the agent and its accompanying packages.

Increase the amount of disk space available to /opt.

Contents of /etc/*release (for AIX, to determine the oslevel)

Displays the operating system and version number to ensure that they are supported by Likewise. See the list of supported platforms later in this guide.

Install the agent on a computer that is running a supported operating system and version.

Network interface and its status

Displays network interfaces and IP addresses to ensure that the system has network access.

Configure the computer so that it has network access and can communicate with the domain controller.

Contents of the IP routing table

To determine whether a single default gateway is defined for the computer.

If the computer does not use a single default gateway, you must define a route to a single default gateway.

For example, you can run the route -n to view the IP routing table and set a static route. For more information, see the man pages for your system.

On Solaris, you may need to create or edit /etc/defaultrouter.

On Linux, you can set the default gateway by running the network utility for your distribution.

Connectivity to the default gateway

Pings the default gateway to ensure that the computer can connect to it. A connection to the default gateway is required.

Configure the computer and the network so that the computer can connect to the default gateway.

Contents of nsswitch.conf (or, for AIX, netsvc.conf)

Displays information about the nsswitch configuration.

The nsswitch.conf file must contain the following line:

hosts: files dns

Computers running Solaris, in particular, may not contain this line in nsswitch.conf.

FQDN

Determines the fully qualified domain name of the computer to ensure that it is set properly.

Make sure the computer's FQDN is correct in /etc/hosts.

You can determine the fully qualified domain name of a computer running Linux, Unix, or Mac OS X by executing the following command:

ping - c 1 `hostname`

On HP-UX:

ping `hostname` -n 1

On Solaris:

FQDN=`/usr/lib/mail/sh/check-hostname|cut -d" " -f7`;echo $FQDN

This command prompts the computer to look up the primary host entry for its hostname. In most cases, it looks for its hostname in /etc/hosts, returning the first FQDN name on the same line. So, for the hostname qaserver, here's an example of a correct entry in /etc/hosts:

10.100.10.10 qaserver.corpqa.likewise.com qaserver

If, however, the entry in /etc/hosts incorrectly lists the hostname (or anything else) before the FQDN, the computer's FQDN becomes, using the malformed example below, qaserver:

10.100.10.10 qaserver qaserver.corpqa.likewise.com

If the host entry cannot be found in /etc/hosts, the computer looks for the results in DNS instead. This means that the computer must have a correct A record in DNS. If the DNS information is wrong and you cannot correct it, add an entry to /etc/hosts.

IP address of local NIC

Determines whether the IP address of the local network card matches the IP address returned by DNS for the computer. The IP address of the local NIC must match the IP address for the computer in DNS.

Either update DNS or change the local IP address so that the IP address of the local network card matches the IP address returned by DNS for the computer.

Contents of resolv.conf

Returns the address for the nameserver set in resolv.conf.

The address of nameserver must point to a DNS server that can resolve the Active Directory domain name and return the SRV records for the domain controllers.

The SRV record is a DNS resource record that is used to identify computers that host specific services. SRV resource records are used to locate domain controllers for Active Directory.

Compare against the results of the items checked next.

DNS query results for system (hostname and IP)

The IP address for the host name from DNS must match the IP address of the computer's local NIC.

Either update DNS or change the local IP address so that the IP address of the local network card matches the IP address returned by DNS for the computer.

DNS name resolution and connectivity to specified domain controller

Pings the domain name to get the IP address.

Correct resolv.conf so that the nameserver points to a DNS server that can resolve the Active Directory domain name -- typically the domain controller running DNS.

SRV records from DNS

Performs a DNS lookup for the SRV records to get the IP addresses for the domain controller.

Correct resolv.conf so that the nameserver points to a DNS server that can resolve the SRV records.

Connectivity to the Internet

Informational. Although connectivity to the Internet is optional, it makes it easier to download the installer for the agent installer.

Not applicable.

Location and version information for sudo, openssl, bash, rpm, and ssh

Checks whether required utilities are installed and are in expected locations.

 

Likewise requires the following utilities: ssh and openssl.

The other utilities are optional but may be useful.

Selected firewall settings (Kerberos, NetBIOS, and LDAP)

Tests whether the computer can connect to ports on the domain controller to make sure that a firewall will not block the computer's attempt to join the domain.

Reconfigure the firewall to allow the computer to access the domain controller.

Listing of files in /etc/pam.d

Lists other software that requires PAM.

Not applicable. Save this information for Likewise support staff in case they need to troubleshoot the installation.

Contents of selected pam files (pam.conf, common-auth, system-auth)

May reveal installation of other applications that are incompatible with the installer.

Not applicable. Save this information for Likewise support staff in case they need to troubleshoot the installation.

Contents of /etc/krb5.conf

Shows Kerberos 5 configuration.

Not applicable. Save this information for Likewise support staff in case they need to troubleshoot the installation.

DHCP

Checks whether DHCP is in use.

When the Likewise Agent joins the computer to the domain, the agent restarts the computer. DHCP can then change the contents of /etc/resolv.conf, /etc/hosts, and other files, causing the computer to fail to join the domain.

Set the computer to a static IP address or configure DHCP so that it does not update such files as /etc/resolv.conf and /etc/hosts.

ISA type

Returns 32-bit or 64-bit information.

Use the installer for your ISA type.

Read-only filespaces

Checks whether /opt is mounted as readonly.

Make sure that /opt is writable.

AIX TL levels

Determines the AIX TL level.

Not all TL levels are supported. For AIX, check with Likewise support to make sure that Likewise is compatible with the TL level you are using.

Chapter 3. Installing the Agent

3.1. Install the Correct Version for Your Operating System

You must install the Likewise agent on each Linux, Unix, or Mac OS X computer that you want to connect to Active Directory. To obtain the installer or to view a list of supported platforms, see www.likewise.com. The Likewise Open installation package can be downloaded for free at http://www.likewise.com/products/likewise_open/.

Important: Before you install the agent, it is recommended that you upgrade your system with the latest security patches. Patch requirements for Unix systems are listed below.

The procedure for installing the Likewise Open agent or the Likewise Enterprise agent depends on the operating system of your target computer. Each procedure is documented in a separate section of this manual.

Operating System

Procedure by Title

Linux platforms running glibc 2.3 or later

Install the Agent on Linux with the BitRock GUI

Linux platforms running glibc 2.2 or earlier

Install the Agent on Linux with glibc 2.2 or Earlier

Unix: Sun Solaris, HP-UX, IBM AIX

Install the Agent on Unix with the Command Line

Mac OS X 10.4 or later

Install the Agent on a Mac Computer

You also have the option of installing the agent in unattended mode; see Install the Agent on Linux in Unattended or Text Mode and Install the Agent on a Mac in Unattended Mode.

For Likewise Enterprise, you can optionally install the agent with a shell script -- an efficient method of deploying the agent in an enterprise environment; see Install the Agent on Linux or Unix with the Shell Script.

Checking Your glibc Version

To determine the version of glibc on your Linux machine, run the following command:

 rpm - q glibc

3.2. Requirements for the Agent

This section lists requirements for installing and running the Likewise agent. Requirements for installing and running the Likewise Management Console, which is part of Likewise Enterprise and the UID-GID module, are detailed in the chapter on installing the console. Likewise Open does not include the Likewise Management Console.

Patch Requirements

It is recommended that you apply the latest patches for your operating system before you install Likewise. Known patch requirements are listed below.

Sun Solaris

Sun Solaris 10 requires update 5 or later. The Solaris 10 05/08 (or later) patch bundle is available at http://sunsolve.sun.com/.

Solaris 8 Sparc should be fully patched according to Sun's recommendations. Likewise depends on the latest patch for libuuid. On Sparc systems, the patch for libuuid is 115831.

Solaris 8 Intel systems also require the latest patch for libuuid: 115832-01.

Solaris 9 and OpenSolaris are compatible with Likewise without any patches.

HP-UX

Secure Shell: For all HP-UX platforms, it is recommended that a recent version of HP's Secure Shell be installed. Likewise recommends that you use HP-UX Secure Shell A.05.00.014 or later.

Sudo: By default, the versions of sudo available from the HP-UX Porting Center do not include the Pluggable Authentication Module, or PAM, which Likewise requires to allow domain users to execute sudo commands with super-user credentials. It is recommended that you download sudo from the HP-UX Porting Center and make sure that you use the --with-pam configuration option when you build it.

HP-UX 11iv1 requires the following patches: PHCO_36229, PHSS_35381, PHKL_34805, PHCO_31923, PHCO_31903, and PHKL_29243. Although these patches may be superceded by subsequent patches, these patches represent the minimum patch level for proper operation.

Kerberos client libraries: For single sign-on with HP-UX 11.11 and 11.23, you must download and install the latest KRB5-Client libraries from the HP Software Depot. (By default, HP-UX 11.31 includes the libraries.)

Other Requirements for the Agent

AIX

On AIX computers, PAM must be enabled. LAM is supported only on AIX 5.x. PAM must be used exclusively on AIX 6.x.

Secure Shell

To properly process logon events with Likewise, your SSH server or client must support the UsePam yes option. For single sign-on, both the SSH server and the SSH client must support GSSAPI authentication.

Other Software

Telnet, rsh, rcp, rlogin, and other software that uses PAM for processing authentication requests is compatible with Likewise.

Networking Requirements

Each Unix, Linux, or Mac computer must have fully routed network connectivity to all the domain controllers that service the computer's Active Directory site. Each computer must be able to resolve A, PTR, and SRV records for the Active Directory domain, including at least the following:

  • A domain.tld

  • SRV _kerberos._tcp.domain.tld

  • SRV _ldap._tcp.domain.tld

  • SRV _kerberos._udp.sitename.Sites._msdcs.domain.tld

  • A domaincontroller.domain.tld

In addition, several ports must be open; see Make Sure Outbound Ports Are Open.

Disk Space Requirements

The Likewise agent requires 100 MB of disk space in the /opt mount point. The agent also creates configuration files in /etc/likewise and offline logon information in /var/lib/likewise. In addition, the Likewise Enterprise agent caches group policy objects in /var/cache/likewise.  

Memory and CPU Requirements

The agent consists of several daemons that typically use between 9 MB and 14 MB of RAM. Memory utilization of the authentication daemon on a 300-user mail server is typically 7 MB; the other daemons require between 500 KB and 2 MB each. CPU utilization on a 2.0 gigahertz single-core processor under heavy load with authentication requests is about 2 percent. For a description of the Likewise daemons, see About the Likewise Agent.

Clock Skew Requirements

For the Likewise agent to communicate over Kerberos with the domain controller's Kerberos key distribution center, the clock of the client must be within the domain controller's maximum clock skew, which is 300 seconds, or 5 minutes, by default. For more information on time synchronization, see About the Likewise Agent.

3.3. Install the Agent on Linux or Unix with the Shell Script

You can install the Likewise Enterprise agent by using a shell script that contains a self-extracting executable. The file name of the shell script installer ends in sh. Example: LikewiseIdentityServiceOpen-5.0.0.3499-linux-i386-rpm.sh.

Note: The examples shown are for Linux RPM-based platforms. For other Linux and Unix platforms -- such as Debian, HP-UX, AIX, and Solaris -- simply substitute the appropriate installer. The installer's name includes the product name, version and build numbers, operating system, computer type, and platform type. For Linux computers running glibc 2.2 or earlier, see Install the Agent on Linux with glibc 2.2 or Earlier.

Install the Agent on Linux or Unix with the Shell Script

Perform the following procedure with the root account.

  1. Download or copy the shell script to your Linux or Unix computer's desktop.

    Important: If you FTP the file to the desktop of the target Linux or Unix computer, you must select binary, or BIN, for the transfer. Most FTP clients default to AUTO or ASCII, but the installer includes some binary code that will become corrupted in AUTO or ASCII mode.

  2. Change directories to the desktop.

  3. As root, change the mode of the installer to executable:

    chmod a+x LikewiseIdentityServiceOpen-5.0.0.3499-linux-i386-rpm.sh

    Tip: To view information about the installer or to view a list of command-line options, run the following command:

    ./LikewiseIdentityServiceOpen-5.0.0.3499-linux-i386-rpm.sh --help

  4. As root, run the installer:

    ./LikewiseIdentityServiceOpen-5.0.0.3499-linux-i386-rpm.sh

  5. Follow the instructions in the installer.

    Note: On SLES and other systems on which the pager is less, you must exit the end user license agreement, or EULA, by typing the following command: q 

3.4. Install the Agent on Linux with the BitRock GUI

For most Linux platforms, you can install the Likewise Open agent or the Likewise Enterprise agent by using a BitRock installer — an executable whose file name ends with installer. Example: LikewiseOpen-5.0.0.3842-linux-i386-rpm-installer.

The following procedure assumes that you downloaded or copied the Likewise installer to the desktop of your Linux computer.

  1. As root, make the installer executable: On the desktop, right-click the installer, click Properties, click the Permissions tab, and depending on your operating system either select Allow executing file as program or select Execute for Owner, and then click Close:

    Tip: You can also make the installer executable from the command line with chmod a+x.

  2. Double-click the installer to run it, and then follow the instructions in the installation wizard.

3.5. Install the Agent on Linux with glibc 2.2 or Earlier

Linux platforms running glibc 2.2 or earlier require you to use the oldlibc installer -- a shell script that includes oldlibc in its name; example: LikewiseIdentityServiceOpen-5.1.0.3494-linux-oldlibc-i386-rpm.sh.

To check the version of glibc on your Linux computer, execute the following query:

 rpm - q glibc

The following platforms are running glibc 2.2 or earlier and thus require the oldlibc installer:

  • Red Hat Enterprise Linux AS 2.1

  • Red Hat Enterprise Linux ES 2.1

  • Red Hat Enterprise Linux WS 2.1

  • Red Hat Linux 7.2

  • Red Hat Linux 7.3

  • Red Hat Linux 8

  • Red Hat Linux 9

  • SUSE 8.2

Install the Agent on glibc 2.2 or Earlier

Perform the following procedure with the root account.

  1. Download or copy the oldlibc installer to the Linux computer's desktop.

    Important: If you FTP the file to the desktop of the target Linux computer, you must select binary, or BIN, for the transfer. Most FTP clients default to AUTO or ASCII, but the installer includes some binary code that will become corrupted in AUTO or ASCII mode.

  2. Change directories to the desktop.

  3. As root, change the mode of the installer to executable:

    chmod a+x LikewiseIdentityServiceOpen-5.0.0.3494-linux-oldlibc-i386-rpm.sh

    Tip: To view information about the installer or to view a list of command-line options, run the following command:

    ./LikewiseIdentityServiceOpen-5.0.0.3494-linux-oldlibc-i386-rpm.sh --help

  4. As root, run the installer:

    ./LikewiseIdentityServiceOpen-5.0.0.3494-linux-oldlibc-i386-rpm.sh

  5. Follow the instructions in the installer.

3.6. Install the Agent on Linux in Unattended or Text Mode

When you use the BitRock installer, command-line tools can help deploy the Likewise agent to multiple computers or install the agent remotely.

You can use the command-line tools to automatically install the agent, join the computer to a domain, and obtain credentials. For example, you can automate the installation of the agent by using the installation command in unattended mode:

 LikewiseEnterprise-5.1.0.2513-linux-x86_64-rpm-installer --mode unattended

For Unix and Linux hosts, you can run the installer from the shell prompt with no special treatment. The installer detects that it is running in character mode and displays a character mode user interface, or you can force it into character mode with the option --mode text:

 LikewiseEnterprise-5.1.0.2513-linux-x86_64-rpm-installer --mode text

3.7. Install the Agent on Unix with the Command Line

You can install the Likewise Open agent or the Likewise Enterprise agent on Sun Solaris, HP-UX, and IBM AIX by using a BitRock installer — an executable whose file name ends with installer. Example: LikewiseIdentityServiceEnterprise-5.0.0.3499-solaris-sparc-pkg-installer.

The examples shown below are for Solaris Sparc systems. For other Unix platforms, simply substitute the appropriate installer. The installer's name includes the product name, version and build numbers, operating system, computer type, and platform type.

Note: The name of a Unix installer for Likewise Enterprise on installation media might be truncated to an eight-character file name with an extension. For example, l3499sus.sh is the truncated version of LikewiseIdentityServiceEnterprise-5.0.0.3499-solaris-sparc-pkg-installer.

Perform the following procedure with the root account.

  1. Download or copy the installer to the Unix computer's desktop.

  2. Change directories to the desktop.

  3. As root, change the mode of the installer to executable:

    chmod a+x LikewiseIdentityServiceEnterprise-5.0.0.3499-solaris-sparc-pkg-installer

    Tip: To view a list of command-line options, run the following command:

    ./LikewiseIdentityServiceEnterprise-5.0.0.3499-solaris-sparc-pkg-installer --help

  4. As root, run the installer:

    ./LikewiseIdentityServiceEnterprise-5.0.0.3499-solaris-sparc-pkg-installer

  5. Follow the instructions in the installer.

3.8. Install the Domain Join GUI

You can install the optional graphical user interface version of the Likewise domain join tool on a Linux computer after you have installed the Likewise agent. The domain join tool can be installed on Linux platforms that are running GTK+ version 2.6 or later.

Note: You do not need to install the domain join GUI to join a domain; for more information, see Join Active Directory with the Command Line.

  1. Obtain the BitRock installer for the domain join tool for your platform from Likewise Software at http://www.Likewise.com.

  2. Copy the installer to the desktop of the target Linux computer.

  3. As root, on the desktop, right-click the icon for the installer, click Properties, and then click the Permissions tab.

  4. Change the owner's permissions to Read and Execute, and then click Close. The following dialog box varies by platform:

  5. On the desktop, double-click the icon of the installer to run it, and then follow the instructions in the installation wizard.

3.9. Install the Agent on a Mac Computer

To install the Likewise agent on a computer running Mac OS X, you must have administrative privileges on the Mac. Likewise supports Mac OS X 10.4 or later.

  1. Obtain the Likewise agent installation package for your Mac from Likewise Software and place it on your desktop.

    Important: On an Intel-based Mac, install the i386 version of the .dmg package. On a Mac that does not have an Intel chip, install the powerpc version of the .dmg package.

  2. Log on the Mac with a local account.

  3. On the Apple menu , click System Preferences.

  4. Under Internet & Network, click Sharing, and then select the Remote Login check box. Turning on Remote Login lets you access the Mac with SSH after you install Likewise.

  5. On the Mac computer, go to the Desktop and double-click the Likewise .dmg file.

  6. In the Finder window that appears, double-click the Likewise .mpkg file.

  7. Follow the instructions in the installation wizard.

    When the wizard finishes installing the package, you are ready to join the Mac computer to an Active Directory domain.

3.10. Install the Agent on a Mac in Unattended Mode

The Likewise command-line tools can remotely deploy the shell version of the Likewise agent to multiple Mac OS X computers, and you can automate the installation of the agent by using the installation command in unattended mode.

The commands in this procedure require administrative privileges.

Important: For Intel-based Macs, use the i386 version of the .dmg installer; for example: LikewiseEnterprise-5.0.0.3628-i386.dmg. For Macs that do not have Intel chips, use the powerpc version of the .dmg installer; for example: LikewiseEnterprise-5.0.0.3628-powerpc.dmg

The procedure below assumes you are installing the agent on an i386 Mac; if you are installing on a powerpc, replace the i386 installer with the powerpc installer.

  1. Use SSH to connect to the target Mac OS X computer and then use SCP to copy the .dmg installation file to the desktop of the Mac or to a location that can be accessed remotely. The rest of this procedure assumes that you copied the installation file to the desktop.

  2. On the target Mac, open Terminal and then use the hdiutil mount command to mount the .dmg file under Volumes:

    /usr/bin/hdiutil mount Desktop/LikewiseEnterprise-5.0.0.3628-i386.dmg

  3. Execute the following command to open the .mpkg volume:

    /usr/bin/open Volumes/LikewiseEnterprise-5.0.0.3628-i386

  4. Execute the following command to install the agent:

    sudo installer -pkg /Volumes/LikewiseEnterprise-5.0.0.3628-i386/LikewiseEnterprise-5.0.0.3628-i386.mpkg -target LocalSystem

    Note: For more information about the installer command, in Terminal execute the following command:

    man installer

  5. To join the domain, execute the following command in the Terminal, replacing domainName with the FQDN of the domain that you want to join and joinAccount with the user name of an account that has privileges to join computers to the domain:

    sudo /opt/likewise/bin/domainjoin-cli join domainName joinAccount

    Example: sudo /opt/likewise/bin/domainjoin-cli join likewisedemo.com Administrator

    Terminal prompts you for two passwords: The first is for a user account on the Mac that has admin privileges; the second is for the user account in Active Directory that you specified in the join command.

    Note: You can also add the password for joining the domain to the command, but Likewise recommends against this approach because another user could view and intercept the full command that you are running, including the password:

    sudo /opt/likewise/bin/domainjoin-cli join domainName joinAccount joinPassword

    Example: sudo /opt/likewise/bin/domainjoin-cli join likewisedemo.com Administrator YourPasswordHere

3.11. Upgrading to the Latest Agent

Before you upgrade to the latest version of the Likewise agent, it is recommended that you leave the domain, uninstall the domain join GUI, and uninstall the current agent.

Important: If you plan to upgrade from a 4.x or earlier version of Likewise Open to Likewise Open 5.0 or later, please first contact Likewise Technical Support at support@likewise.com. At this time, it is recommended that you do not attempt to upgrade without assistance from Likewise support.

Chapter 4. Joining an Active Directory Domain

4.1. About Joining a Domain

When Likewise joins a computer to an Active Directory domain, it uses the hostname of the computer to create the name of the computer object in Active Directory. From the hostname, the Likewise Domain Join Tool attempts to derive a fully qualified domain name.

By default, the domain join tool creates the Linux and Unix machine accounts in the default Computers container within Active Directory. You can, however, choose to create machine accounts in Active Directory before you join your Unix, Linux, and Mac OS X computers to the domain. When you join a computer to a domain by running the Domain Join Tool, Likewise associates the Unix or Linux host with the pre-existing machine account. If no match is found, Likewise creates a machine account.

The location of the domain join command-line utility is as follows:

 /opt/likewise/bin/domainjoin-cli

For Linux computers, there is an optional graphical version of the Likewise Domain Join Tool. It can be installed on Linux platforms that are running GTK+ version 2.6 or later. For more information, see Install the Domain Join GUI and Join a Linux Computer to Active Directory with the GUI.

Important: On Linux computers running NetworkManager -- which is often used for wireless connections -- you must make sure before you join a domain that the computer has a non-wireless network connection and that the non-wireless connection is configured to start when the networking cable is plugged in. You must continue to use the non-wireless network connection during the post-join process of restarting your computer and logging on for the first time with your Active Directory domain credentials. For more information, see With NetworkManager, Use a Wired Connection to Join a Domain.

Removing a Computer from a Domain

You can remove a computer from the domain either by removing the computer's account from Active Directory Users and Computers or by running the Domain Join Tool on the Unix, Linux, or Mac OS X computer that you want to remove; see Leave a Domain.

4.2. Join Active Directory with the Command Line

When you join a domain by using the command-line utility, Likewise uses the hostname of the computer to derive a fully qualified domain name (FQDN) and then automatically sets the computer’s FQDN in the /etc/hosts file. You can also join a domain without changing the /etc/hosts file; see Join Active Directory Without Changing /etc/hosts.

On Linux, Unix, and Mac OS X computers, the location of the domain join command-line utility is as follows:

 /opt/likewise/bin/domainjoin-cli

Important: To run the command-line utility, you must use a root account. To join a computer to a domain, you must have the user name and password of an Active Directory account that has privileges to join computers to the domain and the full name of the domain that you want to join. Instructions on how to delegate rights to join a computer to a domain are at http://support.microsoft.com/kb/932455.

Before Joining a Domain

To join a domain, the computer's name server must be able to find the domain and the computer must be able to reach the domain controller. You can make sure the name server can find the domain by running this command:

nslookup  domainName

You can verify that your computer can reach the domain controller by pinging it:

ping  domainName

If either of these tests fails, see Check System Health Before Installing the Agent and Solve Domain-Join Problems.

Join a Linux or Unix Computer to Active Directory

  • Execute the following command as root, replacing domainName with the FQDN of the domain that you want to join and joinAccount with the user name of an account that has privileges to join computers to the domain:

    /opt/likewise/bin/domainjoin-cli join domainName joinAccount

    Example: /opt/likewise/bin/domainjoin-cli join likewisedemo.com Administrator

Join a Mac Computer to Active Directory

  • Using sudo, execute the following command in Terminal, replacing domainName with the FQDN of the domain that you want to join and joinAccount with the user name of an account that has privileges to join computers to the domain:

    sudo /opt/likewise/bin/domainjoin-cli join  domainName joinAccount

    Example: sudo /opt/likewise/bin/domainjoin-cli join likewisedemo.com Administrator

    The terminal prompts you for two passwords: The first is for a user account on the Mac that has administrative privileges; the second is for the user account in Active Directory that you specified in the join command.

Join a Linux or Unix Computer to an Organizational Unit

  • Execute the following command as root, replacing organizationalUnitName with the path and name of the organizational unit that you want to join, domainName with the FQDN of the domain, and joinAccount with the user name of an account that has privileges to join computers to the domain:

    /opt/likewise/bin/domainjoin-cli join --ou  organizationalUnitName  domainName joinAccount

    Example: /opt/likewise/bin/domainjoin-cli join --ou Engineering likewisedemo.com Administrator

Join a Linux or Unix Computer to a Nested Organizational Unit

  • Execute the following command as root, replacing path with the AD path to the OU from the top down, with each node separated by a forward slash (/). In addition, replace organizationalUnitName with the name of the organizational unit that you want to join. Replace domainName with the FQDN of the domain and joinAccount with the user name of an AD account that has privileges to join computers to the target OU:

    /opt/likewise/bin/domainjoin-cli join --ou path/organizationalUnitName domainName joinAccount

    Example of how to join a deeply nested OU:

    domainjoin-cli join --ou topLevelOU/middleLevelOU/LowerLevelOU/TargetOU likewisedemo.com Administrator

Options and Basic Commands

The following tables list the options and commands of the command-line interface for joining a domain.

Options

The domainjoin-cli command-line interface includes the following options:

Option

Description

Example

--help

Displays the command-line options and commands.

domainjoin-cli --help

--help-internal

Displays a list of the internal debugging commands.

domainjoin-cli --help-internal

--log  {.| path}

Generates a log file or prints the log to the console.

domainjoin-cli --log /var/log/domainjoin.log join likewisedemo.com Administrator

domainjoin-cli --log . join likewisedemo.com Administrator

Basic Commands

The domain join command-line interface includes the following basic commands:

Command

Description

Example

query

Displays the hostname, current domain, and distinguished name, which includes the OU to which the computer belongs.

If the computer is not joined to a domain, it displays only the hostname.

domainjoin-cli query

setname  computerName

Renames the computer and modifies the /etc/hosts file with the name that you specify.

domainjoin-cli setname RHEL44ID

fixfqdn

Fixes a computer's fully qualified domain name.

domainjoin-cli fixfqdn

join [--ou  organizationalUnit ] domainName userName

Joins the computer to the domain that you specify by using the account that you specify.

You can use the --ou option to join the computer to an OU within the domain by specifying the path to the OU and the OU's name. When you use this option, you must use an account that has membership in the Domain Administrators security group. The path to the OU is top down.

domainjoin-cli join --ou Engineering likewisedemo.com Administrator

join -- notimesync

Joins the computer to the domain without synchronizing the computer's time be with the domain controller's. When you use this option, the sync-system-time value in lsassd.conf is set to no.

domainjoin-cli join -- notimesync likewisedemo.com Administrator

leave [userName]

Removes the computer from the Active Directory domain.

If the userName is provided, the computer account is disabled in Active Directory.

domainjoin-cli leave

domainjoin-cli leave smithy@likewisedemo.com

Advanced Commands

The command-line interface includes advanced commands that you can use to preview the stages of joining or leaving a domain, find out which configurations are required for your system, view information about a module that will be changed, and enable or disable a module. The advanced commands provide a potent tool for troubleshooting issues while configuring a Linux or Unix computer to interoperate with Active Directory.

Preview the Stages of the Domain Join for Your Computer

To preview the domain, DNS name, and configuration stages that will be used to join a computer to a domain, execute the following command at the command line:

domainjoin-cli join --preview  domainName

Example: domainjoin-cli join --preview likewisedemo.com

Here's an example of the results, which can vary by computer:

[root@rhel4d bin]# domainjoin-cli join --preview likewisedemo.com
Joining to AD Domain:   likewisedemo.com
With Computer DNS Name: rhel4d.likewisedemo.com
The following stages are currently configured to be run during the domain join:
join           - join computer to AD
krb5           - configure krb5.conf
nsswitch       - enable/disable Likewise nsswitch module
start          - start daemons
pam            - configure pam.d/pam.conf
ssh            - configure ssh and sshd

Check Required Configurations

To see a full listing of the modules that apply to your operating system, including those module that will not be run, execute either the following join or leave command:

domainjoin-cli join --advanced --preview  domainName

domainjoin-cli leave --advanced --preview  domainName

Example: domainjoin-cli join --advanced --preview likewisedemo.com

The result varies by computer:

[root@rhel4d bin]# domainjoin-cli join --advanced --preview likewisedemo.com
Joining to AD Domain:   likewisedemo.com
With Computer DNS Name: rhel4d.likewisedemo.com
    [F] stop           - stop daemons
    [F] hostname       - set computer hostname
    [F] firewall       - open ports to DC
    [F] keytab         - initialize kerberos keytab
[X] [N] join           - join computer to AD
[X] [N] krb5           - configure krb5.conf
[X] [N] nsswitch       - enable/disable Likewise nsswitch module
[X] [N] start          - start daemons
    [F] gdm            - fix gdm presession script for spaces in usernames
[X] [N] pam            - configure pam.d/pam.conf
[X] [S] ssh            - configure ssh and sshd
Key to flags
[F]ully configured        - the system is already configured for this step
[S]ufficiently configured - the system meets the minimum configuration
                            requirements for this step
[N]ecessary               - this step must be run or manually performed.
[X]                       - this step is enabled and will make changes
[ ]                       - this step is disabled and will not make changes
 

View Details about a Module

The Likewise domain join tool includes the following modules -- the components and services that the tool must configure before it can join a computer to a domain:

Module

Description

join

Joins the computer to Active Directory

leave

Deletes the machine account in Active Directory

dsplugin

Enables the Likewise directory services plugin

stop

Stops daemons so that the system can be configured

start

Starts daemons after configuration

firewall

Opens ports to the Domain Controller

hostname

sets the computer hostname

krb5

Configures krb5.conf

pam-mode

Switches authentication from LAM to PAM

nsswitch

Enables or disables Likewise nsswitch module

pam

Configures pam.d and pam.conf

lam-auth

Configures LAM for Active Directory authentication

ssh

Configures ssh and sshd

bash

Fixes the bash prompt for backslashes in usernames

gdm

Fixes gdm presession script for spaces in usernames

As the previous section illustrated, you can see the modules that must be configured on your computer by executing the following command:

domainjoin-cli join --advanced --preview  domainName

You can further bore down into the details of the changes that a module will make by using either the following join or leave command:

domainjoin-cli join --details  module domainName  joinAccount

domainjoin-cli leave --details  module domainName  joinAccount

Example: domainjoin-cli join --details nsswitch likewisedemo.com Administrator

The result varies depending on your system's configuration:

[root@rhel4d bin]# domainjoin-cli join --details nsswitch likewisedemo.com Administrator
[X] [N] nsswitch       - enable/disable Likewise nsswitch module
Key to flags
[F]ully configured        - the system is already configured for this step
[S]ufficiently configured - the system meets the minimum configuration
                            requirements for this step
[N]ecessary               - this step must be run or manually performed.
[X]                       - this step is enabled and will make changes
[ ]                       - this step is disabled and will not make changes
Details for 'enable/disable Likewise nsswitch module':
The following steps are required and can be performed automatically:
    * Edit nsswitch apparmor profile to allow libraries in the /opt/likewise/lib
        and /opt/likewise/lib64 directories
    * List lwidentity module in /usr/lib/security/methods.cfg (AIX only)
    * Add lwidentity to passwd and group/groups line /etc/nsswitch.conf or
        /etc/netsvc.conf
If any changes are performed, then the following services must be restarted:
    * GDM
    * XDM
    * Cron
    * Dbus
    * Nscd

Turn On or Turn Off Domain Join Modules

You can explicitly enable or disable a module when you join or leave a domain. Disabling a module can be useful in cases where a module has been manually configured or in cases where you must ensure that certain system files will not be modified.

Note: If you disable a necessary module and you have not manually configured it, the domain join utility will not join your computer to the domain.

To disable a module, execute either the following join or leave command:

domainjoin-cli join --disable  module domainName  accountName

domainjoin-cli leave --disable  module domainName  accountName

Example: domainjoin-cli join --disable pam likewisedemo.com Administrator

To enable a module, execute the following command at the command line:

domainjoin-cli join --enable  module domainName  accountName

Example: domainjoin-cli join --enable pam likewisedemo.com Administrator

 

See Also

Generate a Domain Join Log

4.3. Join Active Directory Without Changing /etc/hosts

When you join a computer to a domain by using the Likewise Domain Join Tool, Likewise uses the hostname of the computer to derive a fully qualified domain name (FQDN) and then automatically sets the computer’s FQDN in the /etc/hosts file.

To join a Linux computer to the domain without changing the /etc/hosts file, execute the following command at the shell prompt as root, replacing domainName with the FQDN of the domain that you want to join and joinAccount with the user name of an account that has privileges to join computers to the domain:

 /opt/likewise/bin/domainjoin-cli join --disable hostname   domainName joinAccount

Example: /opt/likewise/bin/domainjoin-cli join --disable hostname likewisedemo.com Administrator

If the Computer Fails to Join the Domain

Make sure the computer's FQDN is correct in /etc/hosts. For the computer to process tickets in compliance with the Kerberos protocol and to function properly when it uses cached credentials in offline mode or when its DNS server is offline, there must be a correct FQDN in /etc/hosts. For more information on GSS-API requirements, see RFC 2743.

You can determine the fully qualified domain name of a computer running Linux, Unix, or Mac OS X by executing the following command:

ping -c 1 `hostname`

When you execute this command, the computer looks up the primary host entry for its hostname. In most cases, this means that it looks for its hostname in /etc/hosts, returning the first FQDN name on the same line. So, for the hostname qaserver, here's an example of a correct entry in /etc/hosts:

10.100.10.10 qaserver.corpqa.likewise.com qaserver

If, however, the entry in /etc/hosts incorrectly lists the hostname (or anything else) before the FQDN, the computer's FQDN becomes, using the malformed example below, qaserver:

10.100.10.10 qaserver qaserver.corpqa.likewise.com

If the host entry cannot be found in /etc/hosts, the computer looks for the results in DNS instead. This means that the computer must have a correct A record in DNS. If the DNS information is wrong and you cannot correct it, add an entry to /etc/hosts.

4.4. Join a Linux Computer to Active Directory with the GUI

After you install the Likewise agent, you can install the Likewise Domain Join Tool, a graphical user interface for joining a domain. The domain join tool is not included when you install the agent; you must install the utility separately. For more information, see Install the Domain Join Utility.

Important: To join a computer to a domain, you must have the user name and password of a user who has privileges to join computers to a domain and the full name of the domain that you want to join.

  1. From the desktop with root privileges, double-click the Likewise Domain Join Tool, or at the shell prompt of a Linux computer, type the following command:

    /opt/likewise/bin/domainjoin-gui

  1. On the Likewise AD Settings panel, in the Domain box, enter the Fully Qualified Domain Name (FQDN) of the Active Directory domain.

    Note: The domain join tool automatically sets the computer’s FQDN by modifying the /etc/hosts file. For example, If your computer's name is qaserver and the domain is corpqa.likewise.com, the domain join tool adds the following entry to the /etc/hosts file: qaserver.corpqa.likewise.com. To manually set the computer's FQDN, see Join Active Directory Without Changing /etc/hosts.

  2. Under Organizational Unit, you can join the computer to an OU in the domain by selecting OU Path and then typing a path in the OU Path box. The OU path is from the top of the Active Directory domain down to the OU that you want.

    Or, to join the computer to the Computers container, select Default to container (Computers).

  3. Click Join Domain.

  4. Enter the user name and password of an Active Directory user with the right to join a machine to the Active Directory domain, and then click OK.

    Note: If you do not use an Active Directory Domain Administrator account, you might not have sufficient privileges to change a machine object in Active Directory.

4.5. Join a Mac Computer to Active Directory with the GUI

To join a computer running Mac OS X 10.4 or later to an Active Directory domain, you must have administrative privileges on the Mac and privileges on the Active Directory domain that allow you to join a computer.

  1. In Finder, click Applications. In the list of applications, double-click Utilities, and then double-click Directory Access in OS X 10.4 or Directory Utility in OS X 10.5.

  2. On Mac OS X 10.5, click Show Advanced Settings.

  3. On the Services tab, click the lock and enter an administrator name and password to unlock it.

  4. In the list, make sure that the check box for Active Directory is not selected. Active Directory, Apple's build-in service for interoperating with AD, must be disabled for Likewise to work properly.

  5. In the list, click Likewise - Active Directory, make sure the Enable check box for Likewise - Active Directory is selected, and then click Configure in OS X 10.4 or double-click Likewise – Active Directory in OS X 10.5.

  6. Enter a name and password of a local machine account with administrative privileges.

  7. On the menu bar at the top of the screen, click the Likewise Domain Join menu, and then click Join or Leave Domain.

  8. In the Computer name box, type the local hostname of the Mac without the .local extension. Because of a limitation with Active Directory, the local hostname cannot be more than 15 characters. Also: localhost is not a valid name.

    Tip: To find the local hostname of a Mac, on the Apple menu , click System Preferences, and then click Sharing. Under the Computer Name box, click Edit. Your Mac's local hostname is displayed.

  9. In the Domain to join box, type the fully qualified domain name of the Active Directory domain that you want to join.

  10. Under Organizational Unit, you can join the computer to an OU in the domain by selecting OU Path and then typing a path in the OU Path box.

    Note: To join the computer to an OU, you must be a member of the Domain Administrator security group.

    Or, to join the computer to the Computers container, select Default to "Computers" container.

  11. Click Join.

  12. After you are joined to the domain, you can set the display login window preference on the Mac: On the Apple menu , click System Preferences, and then under System, click Accounts.

  13. Click the lock and enter an administrator's name and password to unlock it.

  14. Click Login Options, and then under Display login window as, select Name and password.

See Also

Migrate a User Profile on a Mac

4.6. Use Likewise with a Single OU

If you have only write privileges for an organizational unit in Active Directory, you can still use Likewise. You should enable an organizational unit (OU) for Likewise only when you want to manage your Linux, Unix, and Mac OS X computers within a single OU and you do not have Domain Administrator or Enterprise Administrator privileges, but you have been given rights to create objects in an OU. (See Delegate Control to Create Container Objects.) You can use the write privileges that you have been given for an OU to join Linux and Unix computers to that OU.

There are additional limitations to this approach:

  • You must join the computer to a specific OU, and you must know the path to that OU.

  • You cannot use Likewise in schema mode unless you have Enterprise Administrator privileges, which are required to upgrade the schema.

Join a Linux Computer to an Organizational Unit

To join a computer to a domain, you must have the user name and password of an account that has privileges to join computers to the domain and the full name of the domain that you want to join. The OU path is from the top OU down to the OU that you want.

Execute the following command, replacing organizationalUnitName with the path and name of the organizational unit that you want to join, domainName with the FQDN of the domain, and joinAccount with the user name of an account that has privileges to join computers to the domain:

/opt/likewise/bin/domainjoin-cli join -- ou  organizationalUnitName  domainName joinAccount

Example: /opt/likewise/bin/domainjoin-cli join -- ou Engineering likewisedemo.com Administrator

Example of how to join a nested OU:

domainjoin-cli join --ou topLevelOU/middleLevelOU/LowerLevelOU/TargetOU likewisedemo.com Administrator

4.7. Rename a Joined Computer

To rename a computer that has been joined to Active Directory, you must first leave the domain. You can then rename the computer by using the domain join command-line interface. After you rename the computer, you must rejoin it to the domain. Renaming a joined computer requires the user name and password of a user with privileges to join a computer to a domain.

Important: Do not change the name of a Linux, Unix, or Mac computer by using the hostname command because some distributions do not permanently apply the changes.

Rename a Computer by Using the Command-Line Tool

The following procedure removes a Unix or Linux computer from the domain, renames the computer, and then rejoins it to the domain.

  1. With root privileges, at the shell prompt of a Unix computer, execute the following command:

    /opt/likewise/bin/domainjoin-cli leave

  2. To rename the computer in /etc/hosts, execute the following command, replacing computerName with the new name of the computer:

    /opt/likewise/bin/domainjoin-cli setname  computerName

    Example: /opt/likewise/bin/domainjoin-cli setname RHEL44ID

  3. To rejoin the renamed computer to the domain, execute the following command at the shell prompt, replacing DomainName with the name of the domain that you want to join and UserName with the user name of a user who has privileges to join a domain:

    /opt/likewise/bin/domainjoin-cli join  DomainName UserName

    Example: /opt/likewise/bin/domainjoin-cli join likewisedemo.com Administrator

    It may take a few moments before the computer is joined to the domain.

 

Rename a Computer by Using the Domain Join Tool

To execute the following procedure, the Likewise Domain Join Tool, a graphical user interface for joining a domain, must be installed on your computer. For more information, see Install the Likewise Domain Join Tool.

  1. From the desktop with root privileges, double-click the Likewise Domain Join Tool, or at the shell prompt of a Linux computer, type the following command:

    /opt/likewise/bin/domainjoin-gui

  2. Click Leave, and then click OK.

  3. Start the Domain Join Tool again by double-clicking the Likewise Domain Join Tool on the desktop, or by typing the following command at the shell prompt of a Linux computer:

    /opt/likewise/bin/domainjoin-gui

  4. Click Next.

  5. In the Computer Name box, rename the computer by typing a new name.

  6. In the Domain to join box, enter the Fully Qualified Domain Name (FQDN) of the Active Directory domain.

  7. Under Organizational Unit, you can join the computer to an OU in the domain by selecting OU Path and then typing a path in the OU Path box.

    Or, to join the computer to the Computers container, select Default to "Computers" container.

  8. Click Next.

  9. Enter the user name and password of an Active Directory user with authority to join a machine to the Active Directory domain, and then click OK.

The computer's name in /etc/hosts has been changed to the name that you specified and the computer has been joined to the Active Directory domain with the new name.

4.8. Files Modified When You Join a Domain

When Likewise joins a computer to a domain, it modifies some system files. The files that are modified depend on the platform, the distribution, and the system's configuration. The following files might be modified.

To see a listing of the changes that joining a domain will make to your operating system, execute the following join command:

domainjoin-cli join --advanced --preview  domainName

Note: Not all of the following files are present on all computers.

  • /etc/nsswitch.conf (On AIX, the file is /etc/netsvcs.conf.)

  • /etc/pam.conf on AIX, HP-UX, and Solaris

  • /etc/pam.d/* on Linux

  • /etc/ssh/{ssh_config,sshd_config} (or wherever sshd configuration is located)

  • /etc/hosts (To join a domain without modifying /etc/hosts, see Join Active Directory Without Changing /etc/hosts.)

  • /etc/apparmor.d/abstractions/nameservice

  • /etc/X11/gdm/PreSession/Default

  • /etc/vmware/firewall/services.xml

  • /usr/lib/security/methods.cfg

  • /etc/security/user

  • /etc/security/login.cfg

  • /etc/netsvc.conf

  • /etc/krb5.conf

  • /etc/krb5/krb5.conf

  • /etc/rc.config.d/netconf

  • /etc/nodename

  • /etc/{hostname,HOSTNAME,hostname.*}

  • /etc/sysconfig/network/config

  • /etc/sysconfig/network/dhcp

  • /etc/sysconfig/network/ifcfg-*

  • /etc/sysconfig/network-scripts/ifcfg-*

  • /etc/init.d or /sbin/init.d

  • /etc/rcX.d/ (new files and links created)

  • /etc/inet/ipnodes

As an example, the following table lists the files that are modified for the default installation of a few selected platforms.

Modified filesSolaris 9Solaris 10AIX 5.3AIX 6.1Red Hat Enterprise Linux 5
/etc/nsswitch.conf (On AIX, the file is /etc/netsvcs.conf.)  
/etc/pam.conf on AIX, HP-UX, and Solaris 
/etc/pam.d/* on Linux    
/etc/ssh/{ssh_config,sshd_config} (or wherever sshd configuration is located)  
/etc/hosts
/etc/apparmor.d/abstractions/nameservice     
/etc/X11/gdm/PreSession/Default     
/etc/vmware/firewall/services.xml     
/usr/lib/security/methods.cfg     
/etc/security/user   
/etc/security/login.cfg    
/etc/netsvc.conf   
/etc/krb5.conf  
/etc/krb5/krb5.conf   
/etc/rc.config.d/netconf     
/etc/nodename   
/etc/{hostname,HOSTNAME,hostname.*}    
/etc/sysconfig/network/config     
/etc/sysconfig/network/dhcp     
/etc/sysconfig/network/ifcfg-*     
/etc/sysconfig/network-scripts/ifcfg-*     
/etc/init.d or /sbin/init.d     
/etc/rcX.d/ (new files and links created)    
/etc/inet/ipnodes   

4.9. With NetworkManager, Use a Wired Connection to Join a Domain

On Linux computers running NetworkManager -- which is often used for wireless connections -- you must make sure before you join a domain that the computer has a non-wireless network connection and that the non-wireless connection is configured to start when the networking cable is plugged in. You must continue to use the non-wireless network connection during the post-join process of restarting your computer and logging on with your Active Directory domain credentials.

After you have joined the domain and logged on for the first time with your AD domain credentials by using a non-wireless connection, you can then revert to using your wireless connection because your AD logon credentials are cached. (You will not, however, be notified when your AD password is set to expire until you either run a sudo command or log on by using a non-wireless connection.)

If, instead, you attempt to use a wireless connection when you join the domain, you will be unable to log on your computer with AD domain credentials after your computer restarts.

Here's why: NetworkManager is composed of a daemon that runs at startup and a user-mode application that runs only after you log on. NetworkManager is typically configured to auto-start wired network connections when they are plugged in and wireless connections when they are detected. The problem is that the wireless network is not detected until after the user-mode application starts -- which occurs only after you have logged on.

Information about NetworkManager is available at http://projects.gnome.org/NetworkManager/.

Chapter 5. Logging On with Domain Credentials

5.1. About Logging On

Likewise includes the following logon options:

  • Full domain credentials -- example: likewisedemo.com\hoenstiv

  • Single domain user name -- example: likewisedemo\hoenstiv

  • Alias -- example:  stiv

    (For Likewise Enterprise, see Set a User Alias and Set a Group Alias. For Likewise Open, see Create a Local Name Mapping File to Set an Alias.)

  • Cached credentials

Important: When you log on from the command line, you must use a slash to escape the slash character, making the logon form DOMAIN\\username.

To use UPN names, you must raise your Active Directory forest functional level to Windows Server 2003, but raising the forest functional level to Windows Server 2003 will exclude Windows 2000 domain controllers from the domain. For more information, see About Schema Mode and Non-Schema Mode.

See Also

About Single Sign-On

Configure Putty for Windows-Based SSO

Log On and Verify Your Kerberos Tickets

5.2. Log On with AD Credentials

After the Likewise agent has been installed and the Linux or Unix computer has been joined to a domain, you can log on interactively or from the command line with your Active Directory credentials.

  • Log on the system console by using an Active Directory user account in the form of DOMAIN\username, where DOMAIN is the Active Directory short name.

  • Log on from the command line, but make sure you use a slash character to escape the slash, making the logon form DOMAIN\\username.

    Example with ssh: ssh likewisedemo.com\\hoenstiv@localhost

5.3. Log On with SSH

You can log on with SSH by executing the ssh command at the shell prompt in the following format:

ssh DOMAIN\\username@localhost

Example: ssh likewisedemo.com\\hoenstiv@localhost

5.4. Solve Logon Problems on Linux or Unix

To troubleshoot problems logging on a Linux computer with Active Directory credentials after you joined the computer to a domain, perform the following series of diagnostic tests sequentially with a root account. The tests can also be used to troubleshoot logon problems on a Unix or Mac OS X computer; however, the syntax of the commands on Unix and Mac might be slightly different.

Make Sure You Are Joined to the Domain

Execute the following command:

/opt/likewise/bin/domainjoin-cli query

If you are not joined, see Join Active Directory with the Command Line.

Check Whether You Are Using a Valid Logon Form

When troubleshooting a logon problem, use your full domain credentials: DOMAIN\username. Example: likewisedemo.com\hoenstiv.

When logging on from the command line, you must escape the slash character with a slash character, making the logon form DOMAIN\\username. Example: likewisedemo.com\\hoenstiv.

To view a list of logon options, see About Logging On.

Clear the Cache

You might need to clear the cache to ensure that the client computer recognizes the user's ID. See Clear the Authentication Cache.

Destroy the Kerberos Cache

Clear the Likewise Kerberos cache to make sure there is not an issue with a user's Kerberos tickets. Execute the following command at the shell prompt with the user account that you are troubleshooting:

/opt/likewise/bin/kdestroy

Check the Status of the Likewise Authentication Daemon

Check the status of the authentication daemon on a Unix or Linux computer running the Likewise Agent by executing the following command at the shell prompt as the root user:

/sbin/service lsassd status

If

Do This

The result looks like this:

lsassd is stopped

Restart the daemon.

The result looks like this:

lsassd (pid 1783) is running...

Proceed to the next test.

 

Check Communication between the Likewise Daemon and AD

Verify that the Likewise daemon can exchange data with AD by executing this command:

/opt/likewise/bin/lw-get-dc-name FullDomainName

Example: /opt/likewise/bin/lw-get-dc-name likewisedemo.com

If

Do This

The result does not show the name and IP address of your domain controller

  1. Make sure the domain controller is online and operational.

  2. Check network connectivity between the client and the domain controller.

  3. Join the domain again.

  4. View log files.

The result shows the correct domain controller name and IP address

Proceed to the next test.

Verify that Likewise Can Find a User in AD

Verify that the Likewise agent can find your user by executing the following command, substituting the name of a valid AD domain for domainName and a valid user for ADuserName:

/opt/likewise/bin/lw-find-user-by-name domainName\\ADuserName

Example: /opt/likewise/bin/lw-find-user-by-name likewisedemo\\hab

If

Do This

The command fails to find the user

  1. Check whether the computer is joined to the domain by executing the following command as root:

    domainjoin-cli query

    Displays the hostname, current domain, and distinguished name, which includes the OU to which the computer belongs. Make sure the OU is correct. If the computer is not joined to a domain, it displays only the hostname.

  2. Check Active Directory to make sure the user has an account. If you are using Likewise Enterprise, also ensure that the user is associated with the correct cell.

  3. Check whether the same user is in the /etc/ passwd file. If necessary, migrate the user to Active Directory.

  4. Make sure the AD authentication provider is running by proceeding to the next test.

The user is found

Proceed to the PAM test later in this topic.

Make Sure the AD Authentication Provider Is Running

Likewise includes two authentication providers:

  1. The local provider

  2. The Active Directory provider

If the AD provider is not online, users are unable to log on with their AD credentials. To check the status of the authentication providers, execute the following command as root:

/opt/likewise/bin/lw-get-status

A healthy result should look like this:

LSA Server Status:
Agent version: 5.0.0
Uptime:        2 days 21 hours 16 minutes 29 seconds
[Authentication provider: lsa-local-provider]
        Status:   Online
        Mode:     Local system
[Authentication provider: lsa-activedirectory-provider]
        Status:   Online
        Mode:     Un-provisioned
        Domain:   likewisedemo.com
        Forest:   likewisedemo.com
        Site:     Default-First-Site-Name
[root@rhel4d bin]#

An unhealthy result will not include the AD authentication provider or will indicate that it is offline. If the AD authentication provider is not listed in the results, restart the authentication daemon.

If the result looks like the line below, check the status of the Likewise daemons to make sure they are running.

Failed to query status from LSA service.  The LSASS server is not responding.

Switch User to Check PAM

Verify that a user's password can be validated through PAM by using the switch user service. Either switch from a non-root user to a domain user or from root to a domain user. If you switch from root to a domain user, run the command below twice so that you are prompted for the domain user's password:

su DOMAIN\\username

Example: su likewisedemo\\hoenstiv

If

Do This

The switch user command fails to validate the user

Generate a PAM debug log.

Also, check the following log files for error messages (the location of the log files varies by operating system):

/var/log/messages

/var/log/secure

Test SSH

Check whether you can log on with SSH by executing the following command:

ssh DOMAIN\\username@localhost

Example: ssh likewisedemo.com\\hoenstiv@localhost

Additional Diagnostic Tools

There are additional command-line utilities that you can use to troubleshoot logon problems in the following directory:

 /opt/likewise/bin

See Also

Resolve an AD Alias Conflict with a Local Account

Chapter 6. Troubleshooting Domain-Join Problems

6.1. Top 10 Reasons Domain Join Fails

Here are the top 10 reasons that an attempt to join a domain fails:

  1. Root was not used to run the domain-join command (or to run the domain-join graphical user interface).

  2. The user name or password of the account used to join the domain is incorrect.

  3. The name of the domain is mistyped.

  4. The name of the OU is mistyped.

  5. The local hostname is invalid.

  6. The domain controller is unreachable from the client because of a firewall or because the NTP service is not running on the domain controller. (See Make Sure Outbound Ports Are Open and Diagnose NTP on Port 123.)

  7. The client is running RHEL 2.1 and has an old version of SSH.

  8. On SUSE, GDM ( dbus) must be restarted. This daemon cannot be automatically restarted if the user logged on with the graphical user interface.

  9. On HP-UX and Solaris, dtlogin must be restarted. This daemon cannot be automatically restarted if the user logged on with the HP-UX or Solaris graphical user interface. To restart dtlogin, run the following command: /sbin/init.d/dtlogin.rc start

  10. SELinux is turned on by being set to either enforcing or permissive -- which is especially likely on Fedora and some versions of Red Hat. SELinux must be set to disabled before the computer can be joined to the domain.

    To turn off SELinux, edit the following file, which is the primary configuration file for enabling and disabling SELinux:

    /etc/sysconfig/selinux

    For instructions on how to edit the file to disable SELinux, see the SELinux man page.

See Also

Generate a Domain-Join Log

6.2. Solve Domain-Join Problems

To troubleshoot problems with joining a Linux computer to a domain, perform the following series of diagnostic tests sequentially on the Linux computer with a root account. The tests can also be used to troubleshoot domain-join problems on a Unix or Mac OS X computer; however, the syntax of the commands on Unix and Mac might be slightly different.

The procedures in this topic assume that you have already checked whether the problem falls under the Top 10 Reasons Domain Join Fails. It is also recommended that you generate a domain-join log.

Verify that the Name Server Can Find the Domain

Run the following command as root:

nslookup ADrootDomain.com

Make Sure the Client Can Reach the Domain Controller

You can verify that your computer can reach the domain controller by pinging it:

ping domainName

Verify that Outbound Ports Are Open

Run the following command as root:

domainjoin-cli join --details firewall likewisedemo.com

The results of the command show whether you must open any ports.

For a list of ports that must be open on the client, see Make Sure Outbound Ports Are Open.

Check DNS Connectivity

The computer might be using the wrong DNS server or none at all. Make sure the nameserver entry in /etc/resolv.conf contains the IP address of a DNS server that can resolve the name of the domain you are trying to join. This is likely to be the IP address of one of your domain controllers.

Make Sure nsswitch.conf Is Configured to Check DNS for Host Names

The /etc/nsswitch.conf file must contains the following line. (On AIX, the file is /etc/netsvc.conf.)

hosts: files dns

Computers running Solaris, in particular, may not contain this line in nsswitch.conf until you add it.

Ensure that DNS Queries Are Not Using the Wrong Network Interface Card

If the computer is multi-homed, the DNS queries might be going out the wrong network interface card. Temporarily disable all the NICs except for the card on the same subnet as your domain controller or DNS server and then test DNS lookups to the AD domain. If this works, re-enable all the NICs and edit the local or network routing tables so that the AD domain controllers are accessible from the host.

Determine Whether the DNS Server Is Configured to Return SRV Records

Your DNS server must be set to return SRV records so the domain controller can be located. It is common for non-Windows (bind) DNS servers to not be configured to return SRV records.

Diagnose by executing the following command:

nslookup -q=srv _ldap._tcp. ADdomainToJoin.com

Make Sure that the Global Catalog Is Accessible

The global catalog for Active Directory must be accessible. A global catalog in a different zone might not show up in DNS. Diagnose by executing the following command:

nslookup -q=srv _ldap._tcp.gc._msdcs. ADrootDomain.com

From the list of IP addresses in the results, choose one or more addresses and test whether they are accessible on Port 3268 by using telnet.

telnet 192.168.100.20 3268

Trying 192.168.100.20... Connected to sales-dc.likewisedemo.com (192.168.100.20). Escape character is '^]'. Press the Enter key to close the connection: Connection closed by foreign host.  

Verify that the Client Can Connect to the Domain on Port 123

The following test checks whether the client can connect to the domain controller on Port 123 and whether the Network Time Protocol (NTP) service is running on the domain controller. For the client to join the domain, NTP -- the Windows time service -- must be running on the domain controller.

On a Linux computer, run the following command as root:

ntpdate -d -u  DC_hostname 

Example: ntpdate -d -u sales-dc

For more information, see Diagnose NTP on Port 123.

In addition, check the logs on the domain controller for errors from source w32tm, the Windows time service.

See Also

Solve Logon Problems

Chapter 7. Configuring the Likewise Agent

7.1. About Configuring the Agent

There are several configuration files on Linux, Unix, and Mac OS X computers running the Likewise agent:

  • /etc/likewise/lsassd.conf

  • /etc/likewise/netlogon.conf

    /etc/likewise/eventlogd.conf

    /etc/likewise/grouppolicy.conf

The lsassd.conf file is the primary configuration file: It contains nearly all the configuration options for the Likewise agent. The netlogon.conf file contains only an entry for setting the expiration of the cache that holds information about the optimal domain controller and global catalog.

After you change a setting in the lsassd.conf file, you must force the Likewise agent to load the change either by restarting the authentication daemon (lsassd) or by executing the following command with super-user privileges:

/opt/likewise/bin/lw-refresh-configuration

The lw-refresh-configuration command reloads the changes in lsassd.conf only. After you modify a setting in any other Likewise configuration file, you must restart its corresponding daemon for the changes to take effect. For a list of the Likewise daemons, see About the Agent.

The following table lists local configuration options that you can set on an AD client; several of them can also be centrally managed with group policies when you use Likewise Enterprise. (There are many more Likewise group policies for managing Linux, Unix, and Mac computers; see About Group Policies.) Likewise Open does not apply group policies. For more information about each option, see the topics referenced in the right column.

Configuration

Topics

require-membership-of

Restrict Logon Rights

domain-separator

Change the Domain Separator Character

space-replacement

Change the Replacement Character for Spaces

assume-default-domain

Prepend Domain Name for AD Users and Groups with a GPO or Set the Default Domain

sync-system-time

Turn Off System Time Synchronization and Turn Off System Time Synchronization with a GPO

create-k5login

Create a .k5login File in a User's Home Directory with a GPO or Turn Off K5Logon File Creation

login-shell-template

Set the Home Directory and Shell for Domain Users

create-homedir

Set the Home Directory and Shell for Domain Users

homedir-template

Set the Home Directory and Shell for Domain Users

skeleton-dirs

Change the Skeleton Directory or Create a Home Directory for a User Account at Logon with a GPO

homedir-umask

Set the Umask for Home Directories or Set Permissions with a File Creation Mask by using a GPO

ldap-sign-and-seal

Sign and Seal LDAP Traffic

password-lifespan (for the Likewise local authentication provider)

Change the Duration of Local Passwords

password-change-warning-time (for the Likewise local authentication provider)

Set the Local Password Change Warning Interval

cache-entry-expiry

Change the Duration of Cached Credentials

cache-purge-timeout

Change the Duration of Cached Credentials

machine-password-lifespan

Change the Duration of the Machine Password

enable-eventlog

Turn On Event Logging and Turn on Event Logging with a GPO

log-network-connection-events

Turn Off Network Event Logging and Turn Off Logging of Network Events with a GPO

log-level

Set the Log Level

refresh-user-credentials

Refresh User Credentials

user-not-allowed-error

Display an Error to Users Without Access Rights

cell-support

Force Likewise Open to Ignore Unix Settings in AD

trim-user-membership

Change NSS Membership Settings

nss-group-members-query-cache-only

Change NSS Membership Settings

nss-user-membership-query-cache-only

Change NSS Membership Settings

nss-enumeration-enabled

Change NSS Membership Settings

display-motd

Display an MOTD and Display a Message of the Day at Logon with a GPO

See Also

Make Sure Outbound Ports Are Open

7.1.1. Maintaining a Local Change for a File Managed by a GPO

To maintain a local change to a configuration file that is managed by a group policy, you must edit the working backup master file. Otherwise, each time the group policy object, or GPO, is refreshed, it will overwrite the local changes that you made to the configuration file. You can, however, preserve your local changes to one of the Likewise configuration files (eventlogd.conf, lsassd.conf, grouppolicy.conf, etc.) by using the following method.

When the group policy agent refreshes its GPOs, their settings are determined as a resultant set of policies, or RSOP, by merging in precedent order all the applicable changes. Then, the RSOP for each Likewise configuration file is merged with its corresponding backup master configuration file to generate the actual configuration file.

Thus, to manage a local Likewise configuration file both locally and with a GPO, you must locally edit the *.lwidentity.orig or *.bak file for the configuration file.

Depending on your version of Likewise, the master backup file is either in /var/lib/likewise/grouppolicy/systemfiles or in the same location as its corresponding configuration file, typically /etc/likewise.

For example, to modify lsassd.conf for the local system while it is being managed by a group policy object, do the following:

  1. Edit /etc/likewise/lsassd.conf to make the changes that you want.

  2. Reload the configuration file so your changes take effect:

     /opt/likewise/bin/lw-refresh-configuration

  3. Depending on your version of Likewise, edit either /etc/likewise/lsassd.orig or /var/lib/likewise/grouppolicy/systemfiles/lsassd.conf.bak and make the same changes that you made to /etc/likewise/lsassd.conf.

7.2. Restrict Logon Rights

With Likewise Open and Likewise Enterprise, you can require that a user be a member of a group to log on a computer, or you can limit logon to only the users that you specify.

Note: With Likewise Enterprise, you can restrict logon rights with a Likewise group policy; see Allow Logon Rights.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Add the users and groups, separated by commas, to the following line by using  NT4-style names (the short domain name with the group name), the user's or group's alias, or an Active Directory security identifier (SID):

    require-membership-of =  

    Note:  The entries must be in the form of a comma-separated list.

    Example:

    require-membership-of = likewisedemo\support, likewisedemo\domain^admins, likewisedemo\joe, jane, S-1-5-21-3447809367-3151979076-456401374-513, sales^admins

    Only the users you specify and the users who are members of the groups that you specify are allowed to log on the computer.

  3. Make sure the require-membership-of  line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

/opt/likewise/bin/lw-refresh-configuration

7.3. Display an Error to Users Without Access Rights

You can set Likewise to display an error message when a user attempts to log on a computer without the right to access it.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Display a Message of the Day at Logon.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Add the text of the error message that you want to display to the following line:

    user-not-allowed-error =

    Example:

    user-not-allowed-error = Access denied

  3. Make sure the user-not-allowed-error line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.4. Change the Domain Separator Character

To replace the slash that acts as the separator between an Active Directory domain name and the SAM account name with a character that you choose, edit the following file:

/etc/likewise/lsassd.conf

In the file, modify the following line to set the replacement character that you want:

domain-separator =

Example:

domain-separator = +

The default replacement character is set to ^. So, by default, the Active Directory group DOMAIN\Domain Users appears as DOMAIN\domain^users on target Linux and Unix computers.

The following characters cannot be used as the separator:

Note: The Likewise authentication daemon renders all names of Active Directory users and groups lowercase.

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.5. Change the Replacement Character for Spaces

When you install the Likewise agent on a Linux, Unix, or Mac computer but do not install Likewise Enterprise on Active Directory, you cannot configure local Likewise settings with group policies. Instead, you must edit the local Likewise configuration file.

Note: With Likewise Enterprise, you can manage this setting with a Likewise group policy; see Replace Spaces in Names with a Character.

To replace the spaces in Active Directory user and group names with a character that you choose, edit the following file:

/etc/likewise/lsassd.conf

In the file, modify the following line to set the replacement character that you want:

space-replacement =

Example:

space-replacement = ,

The default replacement character is set to ^. So, by default, the Active Directory group DOMAIN\Domain Users appears as DOMAIN\domain^users on target Linux and Unix computers.

The following characters cannot be used as the separator:

  • whitespace

  • alphanumeric characters

  • @

  • \

  • #

Note: The Likewise authentication daemon renders all names of Active Directory users and groups lowercase.

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.6. Turn Off System Time Synchronization

With Likewise Open and Likewise Enterprise, you can specify whether a joined computer synchronizes its time with that of the domain controller. By default, when a computer is joined to a domain without using the --notimesync command-line option, the computer's time is synchronized with the domain controller's.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Turn Off System Time Synchronization with a GPO.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to no:

    sync-system-time =

  3. Make sure the sync-system-time  entry is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

See Also

Set the Maximum Tolerance for Kerberos Clock Skew

7.7. Set the Default Domain

If your Active Directory environment has only one domain, you can set Likewise to assume the default domain, liberating users and groups from preceding their user or group name with their domain name when they log on a computer or switch users.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Prepend Domain Name for AD Users and Groups.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to yes:

    assume-default-domain =

    Example: assume-default-domain = yes

  3. Make sure the assume-default-domain line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.8. Set the Home Directory and Shell for Domain Users

When you install Likewise on a Linux, Unix, or Mac computer but not on Active Directory, you cannot associate a Likewise cell with an organizational unit, and thus you have no way to define a home directory or shell in Active Directory for users who log on the computer with their domain credentials.

To set the home directory and shell for a Linux, Unix, or Mac computer that is using Likewise Open or Likewise Enterprise without cell, edit the following configuration file:

 /etc/likewise/lsassd.conf

If with Likewise Enterprise you set the shell and home directory both in Active Directory and in lsassd.conf, the settings in Active Directory take precedence.

After you change lsassd.conf, you must clear the Likewise authentication cache, log off, and then log on before your changes will take effect.

Set the Shell

Modify the following line to set the shell and home directory that you want:

login-shell-template =

Example: login-shell-template = /bin/bash

Set the Home Directory

You can modify the homedir-template line in /etc/likewise/lsassd.conf to set the home directory that you want by using three variables:

Variable

Description

%U

The default user name. It is required.

%D

The default domain name. It is optional.

%H

The default home directory. It is optional. If used, it must be set as an absolute path.

The variables are used in the following order: %H/%D/%U

Example:

homedir-template = %H/local/%D/%U

In the example above, the homedir-template is using the %H variable for the homedir-prefix to set the user's home directory. In the example, the homedir-prefix is not preceded by a slash because the slash is included in the default homedir-prefix to ensure that the path is absolute.

Optionally, you can set the homedir-prefix by uncommenting the homedir-prefix line and then adding the prefix that you want. However, the homedir-prefix must be an absolute path -- so you must precede it with a slash. Example:

homedir-prefix = /home

You must use the default user name variable (%U). You may specify the default domain name by using the domain name variable (%D), but it is not required.

All the users who log on the computer by using their Active Directory domain credentials will have the shell and home directory that you set.

Note: /bin/bash might not be available on all systems.

Important: On Solaris, you cannot create a local home directory in /home, because /home is used by autofs, Sun's automatic mounting service. The standard on Solaris is to create local home directories in /export/home.

Turn Off Home Directories

By default, a user's home directory is created upon logon. To turn off the creation of home directories, uncomment the following line in /etc/likewise/lsassd.conf and set it to no.

create-homedir =

Example: create-homedir = no

See Also

Fix the Shell and Home Directory Paths

Set the Default Home Directory

Set the Default Login Shell

7.9. Change the Skeleton Directory

By default, Likewise adds the contents of /etc/skel to the home directory created for a user account on Linux and Unix computers. Using /etc/skel or a directory that you designate ensures that all users begin with the same settings or environment.

On Mac OS X computers, the default skeleton directory is as follows:

System/Library/User Template/Non_localized,
/System/Library/User Template/English.lproj

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Copy Template Files When Creating a Home Directory.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Add the skeleton directory that you want to the following line. You can add multiple entries, but each entry must be separated by a comma:

    skeleton-dirs = /etc/skel =

    Example: skeleton-dirs = /etc/skel

  3. Make sure the skeleton-dirs line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.10. Set the Umask for Home Directories

Likewise presets the umask for the home directory and all the files in it to 022. With umask value of 022, the default file permissions for your AD user account are as follows: Read-write access for files and read-write-search for directories you own. All others have read access only to your files and read-search access to your directories.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Set Permissions with a File Creation Mask.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Add the umask value that you want to the following line:

    homedir-umask =

    Example: homedir-umask = 022

  3. Make sure the homedir-umask line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.11. Add Domain Accounts to Local Groups with /etc/group

You can add domain users to your local groups on a Linux, Unix, and Mac OS X computer by placing an entry for the user or group in the /etc/group file. The entries must adhere to the following rules:

  • Use the correct case; entries are case sensitive.

  • Use a user or group's alias if the user or group has one in Active Directory.

  • If the user or group does not have an alias, you must set the user or group in the Likewise canonical name format of NetBIOSdomainName\SAMaccountName.

    Note: For users or groups with an alias, the Likewise canonical name format is the alias, which you must use; you cannot use the format of NetBIOS domain name\SAM account name.

So, for users and groups without an alias, the form of an entry is as follows:

root:x:0: LIKEWISEDEMO\kristeva

For users and groups with an alias, the form of an entry is as follows:

root:x:0:kris

In /etc/group, the slash character separating the domain name from the account name does not typically need to be escaped.

7.12. Configure Entries in Your Sudoers Files

When you add Active Directory entries to your sudoers file -- typically, /etc/sudoers --  you must adhere to at least the following rules:

  • ALL must be in uppercase letters.

  • Use a slash character to escape the slash that separates the Active Directory domain from the user or group name.

  • Use the correct case; entries are case sensitive.

  • Use a user or group's alias if the user or group has one in Active Directory.

  • If the user or group does not have an alias, you must set the user or group in the Likewise canonical name format of NetBIOSdomainName\SAMaccountName (and escape the slash character).

    Note: For users or groups with an alias, the Likewise canonical name format is the alias, which you must use; you cannot use the format of NetBIOS domain name\SAM account name.

So, for users and groups without an alias, the form of an entry in the sudoers file is as follows:

DOMAIN\\username

DOMAIN\\groupname

Example entry of a group:

% LIKEWISEDEMO\\LinuxFullAdmins ALL=(ALL) ALL

Example entry of a user with an alias:

kyle ALL=(ALL) ALL

For more information about how to format your sudoers file, see your computer's man page for sudo.

Check a User's Canonical Name on Linux

To determine the canonical name of a Likewise user on Linux, execute the following command, replacing the domain and user in the example with your domain and user:

getent passwd likewisedemo.com\\hab

LIKEWISEDEMO\hab:x:593495196:593494529: Jurgen Habermas:/home/local/ LIKEWISEDEMO/ hab:/bin/ sh

In the results, the user's Likewise canonical name is the first field.

See Also

Define a Sudo Policy

7.13. Force Likewise Open to Ignore Cell Information

When there is cell information in Active Directory, it can prevent users from logging on a computer running Likewise Enterprise or Likewise Open. To allow Active Directory users, regardless of whether they have been provisioned with UID-GID information or other cell information, to access a computer running Likewise Open, you can force the Likewise authentication daemon to ignore cell information when the daemon queries Active Directory. Since the following information is not used by Likewise Open, the authentication daemon can safely ignore it:

  • Home directory

  • UID

  • GID

  • Unix shell

Force Likewise Open to Ignore Unix Settings in AD

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to unprovisioned:

    cell-support =

    Example: cell-support = unprovisioned

    Important: If you are using Likewise Enterprise with cells, cell-support must be set to full.

  3. Make sure the cell-support line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.14. Refresh User Credentials

By default, Likewise automatically refreshes user credentials, but you can turn off automatic refreshes be modifying the configuration file of the Likewise authentication daemon.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to no:

    refresh-user-credentials =

    Example: refresh-user-credentials = no

  3. Make sure the refresh-user-credentials line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.15. Change the Duration of Cached Credentials

You can specify how long the Likewise agent caches information about a Active Directory user's home directory, logon shell, and the mapping between the user or group and its security identifier (SID). Features that are using offline cached credentials reattempt to log on the Active Directory domain controller at the interval that you set. When online, the Likewise agent also caches the information for the specified time period.

This setting can improve the performance of your system by increasing the expiration time of the cache.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Set the Cache Expiration Time.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to the interval that you want:

    cache-entry-expiry =

    The value must be within the parameters described in the configuration file.

Change the Interval When Expired Cache Entries Are Purged

You can change the interval when expired entries are purged from the cache. Purging expired entries from the cache can improve the performance of the authentication daemon.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to the timespan that you want:

    cache-purge-timeout =

    The value must be within the parameters described in the configuration file.

7.16. Turn Off K5Logon File Creation

By default, Likewise creates a .k5login file in the home directory of an Active Directory user who is authenticated by Kerberos when logging on a Linux, Unix, or Mac computer. You can, however, stop the creation of a .k5login file.

The .k5login file contains the user's Kerberos principal, which uniquely identifies the user within the Kerberos authentication protocol. Kerberos can use the .k5login file to check whether a principal is allowed to log on as a user. A .k5login file is useful when your computers and your users are in different Kerberos realms or different Active Directory domains, which can occur when you use Active Directory trusts.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Create a .k5login File in a User's Home Directory.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to no:

    create-k5login =

    Example: create-k5login = no

  3. Make sure the create-k5login entry is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.17. Change NSS Membership Settings

To customize Likewise to meet the performance needs of your network, you can specify how the Likewise agent parses and caches group and user membership information with the following four settings in the Likewise agent's configuration file --/etc/likewise/lsassd.conf:

Setting

Description

trim-user-membership

Specifies whether to discard cached information from a Privilege Attribute Certificate (PAC) entry when it conflicts with new information retrieved through LDAP. Otherwise, PAC information, which does not expire, is updated the next time the user logs on.

The default setting is yes.

nss-group-members-query-cache-only

Specifies whether to return only cached information for the members of a group when queried through nsswitch. More specifically, the setting determines whether nsswitch-based group APIs obtain group membership information exclusively from the cache, or whether they search for additional group membership data through LDAP.

This setting is made available because, with large amounts of data, the LDAP enumeration can be slow and can affect performance. To improve performance for groups with more than 10,000 users, set this option to yes.  Without the LDAP enumeration, only when a user logs on can that user's complete group membership be retrieved based on the PAC.

The default setting is yes.

nss-user-membership-query-cache-only

When set to yes, enumerates the groups  to which a user belongs using information based solely on the cache. When set to no, it checks the cache and searches for more information over LDAP.

The default setting is no.

nss-enumeration-enabled

Controls whether all users or all groups can be incrementally listed through NSS. On Linux computers and Unix computers other than Mac, the default setting is no. On Mac OS X computers, the default setting is yes.

To allow third-party software show Active Directory users and groups in lists, you can change this setting to yes, but performance might be affected.

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.18. Change the Duration of the Machine Password

You can set the machine account password's expiration time. The expiration time specifies when a machine account password is reset in Active Directory if the account is not used. The default is 30 days.

Active Directory handles machine accounts for Linux, Unix, and Mac in the same way as those for Windows computers; for more information, see the Microsoft Active Directory documentation.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Set the Machine Account Password Expiration Time.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to the interval that you want:

    machine-password-lifespan =

    Example: machine-password-lifespan = 30d

    Important: To avoid issues with Kerberos key tables and single sign-on, the machine-password-lifespan must be at least twice the maximum lifetime for user tickets, plus a little more time to account for the permitted clock skew. The expiration time for a user ticket is set by using an Active Directory group policy called Maximum lifetime for user ticket. The default user ticket lifetime is 10 hours; the default Likewise machine password lifetime is 30 days.

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

Check the Maximum Lifetime for a User Ticket in the Group Policy Object Editor

  1. Open the default domain policy in the Group Policy Object Editor.

  2. In the console tree under Computer Configuration, expand Windows Settings, expand Security Settings, expand Account Policies, and then click Kerberos policy.

  3. In the details pane, double-click Maximum lifetime for user ticket.

  4. In the Ticket expires in box, make sure that the number of hours is no more than half that of the machine-password-lifespan you set in lsassd.conf.

See Also

Fix a Key Table Entry-Ticket Mismatch

7.19. Change the Duration of Local Passwords

You can specify the duration of local passwords before they must be changed. The Likewise local authentication provider can warn users that they must change their passwords before they expire.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to the duration that you want:

    password-lifespan =

    Example: password-lifespan = 30d

    The value must be within the parameters described in the configuration file.

  3. Make sure the password-lifespan line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.20. Set the Local Password Change Warning Interval

The Likewise local authentication provider can warn local users that they must change their passwords before they expire. You can set the interval at which to display the warning.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to the duration that you want:

    password-change-warning-time =

    Example: password-change-warning-time = 14d

    The value must be within the parameters described in the file.

  3. Make sure the password-change-warning-time line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.21. Display an MOTD

You can set Likewise to display a message of the day. It appears after a user logs on but before the logon script executes to give users information about a computer. For example, the message can remind users of the next scheduled maintenance window.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Display a Message of the Day at Logon.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to yes:

    display-motd =

    Example: display-motd = yes

  3. Make sure the display-motd line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.22. Sign and Seal LDAP Traffic

You can sign and seal LDAP traffic to certify it and to encrypt it so that others cannot see your LDAP traffic on your network.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to true:

    ldap-sign-and-seal =

    Example: ldap-sign-and-seal = true

  3. Make sure the ldap-sign-and-seal line is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.23. Turn On Event Logging

You can capture information about authentication transactions, authorization requests, and other security events by turning on event logging.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Turn on Event Logging with a GPO.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to yes:

    enable-eventlog =

  3. Make sure the enable-eventlog entry is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.24. Turn Off Network Event Logging

After you turn on event logging, network connection events are logged by default. On laptop computers, computers with a wireless connection, or other computers whose network status might be influx, you can turn off event logging so that the event log is not flooded with connectivity events.

Note: With Likewise Enterprise, you can manage this setting by using a Likewise group policy; see Turn Off Logging of Network Events.

  1. On the target Linux, Unix, or Mac OS X computer, edit the following configuration file:

    /etc/likewise/lsassd.conf

  2. Set the value of the following line to no:

    log-network-connection-events =

  3. Make sure the log-network-connection-events entry is not commented out by being preceded by a number sign (#).

After you change a setting in lsassd.conf, you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

7.25. Working with Solaris Zones

Solaris zones are a virtualization technique created by Sun Microsystems to consolidate servers. Primarily used for application isolation, they give the appearance that the various applications are running on individual servers.

Every zone server contains a global zone that retains visibility and control in any installed non-global zones. By default, the non-global zones share certain file spaces, including /usr and others, which are mounted read-only. These file spaces are writable only for the global zone.

As a result, you cannot install most applications -- including Likewise -- in a zone except by installing it in the global zone. Installing Likewise in the global zone automatically results in it being installed in all the non-global zones. This behavior can be over-ridden with a flag to pkgadd.

Although Likewise installs on all zones, they are not joined to Active Directory (AD) as a group. Each individual zone, including the global zone, can be joined to AD independently of any other zones.

Make Sure /opt/likewise Exists

To work with Solaris zones, the /opt/likewise directory must be present on the target computer. Typically, the Likewise installation script creates it. Solaris zones typically share /opt, so Likewise installations on machines with a shared /opt configuration for zones, called a small zones configuration, can create the likewise directory. However, a big zones configuration in which nothing is shared can result in /opt being different in the global and non-global zones. Thus, even though the Likewise installer can create /opt/likewise in the global zone but cannot create the directory in the non-global zones, and the installation of fails. In such cases, as a work around, pre-create /opt/likewise in the zones.

Caveats

There are some caveats when using Likewise with Solaris zones:

1. When you join a non-global zone to AD, you will receive an error as Likewise attempts to synchronize the Solaris clock with AD. This is because the root user of the non-global zone does not have root access to the underlying (global) system, and therefore cannot set the system clock.

If the clocks are within the five-minute spread required by Kerberos, this will not be an issue. If this is not the case, you can resolve this issue by manually setting the clock in the global zone to match AD, or by joining the global zone to AD before joining the non-global zone.

2. If you create a new global zone after installing the Likewise product, you may receive errors similar to the following:

Installation of these packages generated errors: <likewiseLibXML2 likewiseOpenLDAP likewiseKrb5 likewiseExpat likewiseGroupPolicy likewiseAuth likewiseDomainJoin>
Installation of these packages generated warnings: <SMCx11vnc NXnode NXserver>
The file </zones/zone02/root/var/sadm/system/logs/install_log> contains a log of the zone installation.

The install_log file will show issues related to the packages requiring user interaction. This interaction is simply pkgadd asking if you are sure you want to over-write the package files that already exist in the global zone.

You may safely ignore these messages, since the required files are already installed in the shared file spaces.

3. Some group policies may log PAM errors in the non-global zones even though they function as expected. Cron is one example, as shown below:

Wed Nov 7 16:26:02 PST 2007 Running Cronjob 1 (sh)
Nov 7 16:26:01 zone01 last message repeated 1 time
Nov 7 16:27:00 zone01 cron[19781]: pam_lsass(cron): request failed

Depending on the group policy, these errors may be due to file access permissions, attempts to write to read-only file spaces, or both.

4. By default, Solaris displays auth.notice syslog messages on the system console. Some versions of Likewise generate significant authentication traffic on this facility-priority level, which may cause an undesirable amount of chatter on the console or mangle the graphic desktop.

To redirect this traffic to a file instead of being displayed on the console, edit your /etc/syslog.conf file as follows:

Change this:

*.err;kern.notice;auth.notice /dev/sysmsg

To this:

*.err;kern.notice /dev/sysmsg

auth.notice /var/adm/authlog

Important: Make sure that you use tabs, not spaces, to separate the facility.priority information (on the left) from the action field (on the right). Using spaces will cause Syslog to ignore the entire line.

Chapter 8. Troubleshooting the Agent

8.1. Set the Log Level

You can set the Likewise log level from the shell prompt by executing the following command. Replace level with one of the four available logging levels: error, warning, info, verbose.

 /opt/likewise/bin/lw-set-log-level level

Example: /opt/likewise/bin/lw-set-log-level warning

The configuration file for the Likewise authentication daemon -- /etc/likewise/lsassd.conf -- is modified to include the level you specified in the command.

You can also set the logon level by editing the following line in /etc/likewise/lsassd.conf:

log-level =

The default is error.

8.2. Check the Status of the Authentication Daemon

On Linux and Unix

You can check the status of the authentication daemon on a Unix or Linux computer running the Likewise agent by executing the following command at the shell prompt as the root user:

/sbin/service lsassd status

or

/etc/init.d/lsassd status

(On HP-UX, the command is /sbin/init.d/lsassd status.)

If the authentication daemon is running, the result should look like this:

lsassd (pid 25753) is running...

If the service is not running, execute the following command:

/sbin/service lsassd start

or

/etc/init.d/lsassd start

(On HP-UX, the command is /sbin/init.d/lsassd start.)

On Mac OS X

On a Mac OS X computer, you cannot use the status command, but you can monitor the daemon by using Activity Monitor:

  1. In Finder, click Applications, click Utilities, and then click Activity Monitor.

  2. In the list under Process Name, make sure lsassd appears. If the process does not appear in the list, you might need to start it.

  3. To monitor the status of the process, in the list under Process Name, click the process, and then click Inspect.

8.3. Check the Status of the DCE/RPC Daemon

The Likewise DCE/RPC daemon handles communication between Linux, Unix, and Mac computers and Microsoft Active Directory.

On Linux and Unix

You can check the status of dcerpcd on a Unix or Linux computer running the Likewise agent by executing the following command as the root user:

/sbin/service dcerpcd status

or

/etc/init.d/dcerpcd status

If the daemon is running, the result should look like this:

dcerpcd (pid 21538) is running...

If the service is not running, execute the following command:

/sbin/service dcerpcd start

or

/etc/init.d/dcerpcd start

On HP-UX

The commands are different on HP-UX:

/sbin/init.d/dcerpcd status

/sbin/init.d/dcerpcd start

On Mac OS X

On a Mac OS X computer, you cannot use the status command, but you can monitor the daemon by using Activity Monitor:

  1. In Finder, click Applications, click Utilities, and then click Activity Monitor.

  2. In the list under Process Name, make sure dcerpcd appears. If the process does not appear in the list, you might need to start it.

  3. To monitor the status of the process, in the list under Process Name, click the process, and then click Inspect.

8.4. Check the Status of the Network Logon Daemon

The netlogond daemon detects the optimal domain controller and global catalog and caches the data.

On Linux and Unix

You can check the status of netlogond on a Unix or Linux computer running the Likewise agent by executing the following command as the root user:

/sbin/service netlogond status

or

/etc/init.d/netlogond status

If the daemon is running, the result should look like this:

netlogond (pid 21438) is running...

If the service is not running, execute the following command:

/sbin/service netlogond start

or

/etc/init.d/netlogond start

On HP-UX

The commands are different on HP-UX:

/sbin/init.d/netlogond status

/sbin/init.d/netlogond start

On Mac OS X

On a Mac OS X computer, you cannot use the status command, but you can monitor the daemon by using Activity Monitor:

  1. In Finder, click Applications, click Utilities, and then click Activity Monitor.

  2. In the list under Process Name, make sure netlogond appears. If the process does not appear in the list, you might need to start it.

  3. To monitor the status of the process, in the list under Process Name, click the process, and then click Inspect.

8.5. Check the Status of the Input-Output Service

The Likewise input-output service  -- lwrdrd -- communicates over SMB with SMB servers; authentication is with Kerberos 5.

On Linux and Unix

You can check the status of lwrdrd on a Unix or Linux computer running the Likewise agent by executing the following command as the root user:

/sbin/service lwrdrd status

or

/etc/init.d/lwrdrd status

If the daemon is running, the result should look like this:

lwrdrd (pid 21638) is running...

If the service is not running, execute the following command:

/sbin/service lwrdrd start

or

/etc/init.d/lwrdrd start

On HP-UX

The commands are different on HP-UX:

/sbin/init.d/lwrdrd status

/sbin/init.d/lwrdrd start

On Mac OS X

On a Mac OS X computer, you cannot use the status command, but you can monitor the daemon by using Activity Monitor:

  1. In Finder, click Applications, click Utilities, and then click Activity Monitor.

  2. In the list under Process Name, make sure lwrdrd appears. If the process does not appear in the list, you might need to start it.

  3. To monitor the status of the process, in the list under Process Name, click the process, and then click Inspect.

8.6. Check the Version and Build Number

Check the Version and Build Number of the Agent on Linux, Unix, or Mac

To check the version number of the Likewise agent, execute the following command:

 cat /opt/likewise/data/VERSION

Another option is to execute the following command:

 /opt/likewise/bin/ lw-get-status

Check the Version and Build Number of the Agent with ADUC

You can check the version and build number of the Likewise agent from a Windows administration workstation that is connected your domain controller:

  1. In Active Directory Users and Computers, right-click the Linux, Unix, or Mac OS X computer that you want, and then click Properties.

  2. Click the Operating System tab. The build number is shown in the Service pack box.

Check the Build Number of the Agent

On Linux distributions that support RPM -- for example, Red Hat Enterprise Linux, Fedora, SUSE Linux Enterprise, OpenSUSE, and CentOS -- you can determine the version and build number of the agent (5.0.0.xxxx in the examples below)  by executing the following command at the shell prompt:

rpm -qa | grep likewise

The result shows the build version after the version number:

likewise-sqlite-5.0.0-1.26353.3513
likewise-libxml2-5.0.0-1.26353.3513
likewise-netlogon-5.0.0-1.26353.3513
likewise-openldap-5.0.0-1.26353.3513
likewise-pstore-5.0.0-1.26353.3513
likewise-passwd-5.0.0-1.26353.3513
likewise-domainjoin-5.0.0-1.26353.3513
likewise-lsass-5.0.0-1.26353.3513
likewise-krb5-5.0.0-1.26353.3513
likewise-base-5.0.0-1.26353.3513
likewise-rpc-5.0.0-1.26353.3513

On Unix computers and Linux distributions that do not support RPM, the command to check the build number varies by platform:

Platform

Command

Debian and Ubuntu

dpkg –S /opt/likewise/

Solaris

pkginfo | grep -i likewise

AIX

lslpp –l | grep likewise

HP-UX

swlist | grep -i likewise

8.7. Find a User or a Group

On a Unix or Linux computer that is joined to the Active Directory domain, you can check a domain user's or group's information by either name or ID. These commands can verify that the client can locate the user or group in Active Directory.

Find a User by Name

Execute the following command, replacing domain\\ username with the full domain user name or the single domain user name of the user that you want to check:

 /opt/likewise/bin/lw-find-user-by-name domain\\username

Example: /opt/likewise/bin/lw-find-user-by-name likewisedemo\\hoenstiv

You can optionally specify the level of detail of information that is returned. Example:

/opt/likewise/bin/lw-find-user-by-name --level 2 likewisedemo\\hab

User info (Level-2):
====================
Name:                       LIKEWISEDEMO\hab
UPN:                         hab@likewisedemo.com
Uid:                        593495196
Gid:                        593494529
Gecos:                      Jurgen Habermas
Shell:                      /bin/sh
Home dir:                   /home/LIKEWISEDEMO/hab
LMHash length:              0
NTHash length:              0
Local User:                 NO
Account disabled:           FALSE
Account Expired:            FALSE
Account Locked:             FALSE
Password never expires:     TRUE
Password Expired:           FALSE
Prompt for password change: YES

For more information, execute the following command:

/opt/likewise/bin/lw-find-user-by-name --help

Find a User by UID

To find a user by UID, execute the following command, replacing UID with the user's ID:

 /opt/likewise/bin/lw-find-user-by-id UID

Example:

/opt/likewise/bin/lw-find-user-by-id 593495196

Find a Group by Name

 /opt/likewise/bin/lw-find-group-by-name domain\\username

Example:

/opt/likewise/bin/lw-find-group-by-name likewisedemo.com\\dnsadmins

Find a Group by ID

 /opt/likewise/bin/lw-find-group-by-id GID

Example:

[root@rhel4d bin]# /opt/likewise/bin/lw-find-group-by-id 593494534
Group info (Level-0):
====================
Name:     LIKEWISEDEMO\schema^admins
Gid:      593494534
SID:     S-1-5-21-382349973-3885793314-468868962-518

Tip: To view this command's options, type the following command:

/opt/likewise/bin/lw-find-group-by-id --help

8.8. Clear the Authentication Cache

There are certain conditions under which you might need to clear the cache so that a user's ID is recognized on a target computer.

By default, the user's ID is cached for 4 hours. If you change a user's UID for a Likewise cell with Likewise Enterprise, during the 4 hours after you change the UID you must clear the cache on a target computer in the cell before the user can log on. If you do not clear the cache after changing the UID, the computer will find the old UID until after the cache expires.

There are three Likewise Enterprise group policies that can affect the cache time:

  • The Cache Expiration Time, which stores UID-SID mappings, user/group enumeration lists, getgrnam() and getpwnam(), and so forth. Its default expiration time is 4 hours.

  • The ID Mapping Cache Expiration Time, which caches the mapping tables for SIDs, UIDs, and GIDs. Its default is 1 hour. This policy applies only to Likewise Enterprise 4.1 or earlier.

  • The ID Mapping Negative Cache Expiration Time, which stores failed SID-UID-GID lookups to prevent an overload of resolution requests. Its default is 5 minutes. This policy applies only to Likewise Enterprise 4.1 or earlier.

Tip: While you are deploying and testing Likewise, set the cache expiration time of the Likewise agent's cache to a short period of time, such as 1 minute.

Clear the Cache on a Linux Computer

  1. Stop the Likewise authentication daemon by executing the following command as root:

    /sbin/service lsassd stop

  2. Clear the AD-provider cache and the local-provider cache by removing the following two files:

    rm -f /var/lib/likewise/db/lsass-adcache.db

    rm -f /var/lib/likewise/db/lsass-local.db

    Important: Do not delete the other .db files in the /var/lib/likewise/db directory.

  3. Start the Likewise authentication daemon:

    /sbin/service lsassd start

 

Clear the Cache on a Mac

  1. In Terminal, stop the Likewise authentication daemon by executing the following command as sudo:

    sudo launchctl stop com.likewisesoftware.lsassd

  2. Clear the AD-provider cache and the local-provider cache by removing the following two files:

    sudo rm -f /var/lib/likewise/db/lsass-adcache.db

    sudo rm -f /var/lib/likewise/db/lsass-local.db

    Important: Do not delete the other .db files in the /var/lib/likewise/db directory.

  3. Restart the Likewise authentication daemon:

    sudo launchctl start com.likewisesoftware.lsassd

 

Clear the Cache on a Unix Computer

  1. Stop the Likewise authentication daemon by executing the following command as root:

    /etc/init.d/lsassd stop

  2. Clear the AD-provider cache and the local-provider cache by removing the following two files:

    rm -f /var/lib/likewise/db/lsass-adcache.db

    rm -f /var/lib/likewise/db/lsass-local.db

    Important: Do not delete the other .db files in the /var/lib/likewise/db directory.

  3. Start the Likewise authentication daemon:

    /etc/init.d/lsassd start

See Also

Allow Cached Logons

8.9. Destroy the Kerberos Ticket Cache

The kdestroy utility destroys the user's active Kerberos authorization tickets obtained through Likewise. Destroying the user's tickets can help solve logon problems.

Note: This command destroys only the tickets in the Likewise Kerberos cache of the user account that is used to execute the kdestroy command; tickets in other Kerberos caches, including root, are not destroyed. To destroy another user's cache, use the command - c option.

To destroy a user's Likewise Kerberos tickets, execute the following command with the user's account:

 /opt/likewise/bin/kdestroy

Tip: To view this command's options, type the following command:

/opt/likewise/bin/kdestroy -

8.10. Determine a Computer's FQDN

You can determine the fully qualified domain name of a computer running Linux, Unix, or Mac OS X by executing the following command at the shell prompt:

ping -c 1 `hostname`

On HP-UX

The command is different on HP-UX:

ping `hostname` -n 1

On Solaris

On Sun Solaris, you can find the FQDN by executing the following command (the computer's configuration can affect the results):

FQDN=`/ usr/lib/mail/ sh/ check-hostname|cut - d" " -f7`;echo $FQDN

See Also

Join Active Directory Without Changing /etc/hosts

8.11. Diagnose NTP on Port 123

When you use the Likewise domain join utility to join a Linux or Unix client to a domain, the utility might be unable to contact the domain controller on Port 123 with UDP. The Likewise agent requires that Port 123 be open on the client so that it can receive NTP data from the domain controller. In addition, the time service must be running on the domain controller.

You can diagnose NTP connectivity by executing the following command as root at the shell prompt of your Linux machine:

ntpdate -d -u DC_hostname 

Example: ntpdate -d -u sales-dc

If all is well, the result should look like this:

[root@rhel44id ~]# ntpdate -d -u sales-dc
 2 May 14:19:20 ntpdate[20232]: ntpdate 4.2.0a@1.1190-r Thu Apr 20 11:28:37 EDT 2006 (1)
Looking for host sales-dc and service ntp
host found : sales-dc.likewisedemo.com
transmit(192.168.100.20)
receive(192.168.100.20)
transmit(192.168.100.20)
receive(192.168.100.20)
transmit(192.168.100.20)
receive(192.168.100.20)
transmit(192.168.100.20)
receive(192.168.100.20)
transmit(192.168.100.20)
server 192.168.100.20, port 123
stratum 1, precision -6, leap 00, trust 000
refid [LOCL], delay 0.04173, dispersion 0.00182
transmitted 4, in filter 4
reference time:    cbc5d3b8.b7439581  Fri, May  2 2008 10:54:00.715
originate timestamp: cbc603d8.df333333  Fri, May  2 2008 14:19:20.871
transmit timestamp:  cbc603d8.dda43782  Fri, May  2 2008 14:19:20.865
filter delay:  0.04207  0.04173  0.04335  0.04178
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.009522 0.008734 0.007347 0.005818
         0.000000 0.000000 0.000000 0.000000
delay 0.04173, dispersion 0.00182
offset 0.008734
 2 May 14:19:20 ntpdate[20232]: adjust time server 192.168.100.20 offset 0.008734 sec
 

Output When There Is No NTP Service

If the domain controller is not running NTP on Port 123, the command returns a response such as no server suitable for synchronization found, as in the following output:

 5 May 16:00:41 ntpdate[8557]: ntpdate 4.2.0a@1.1190-r Thu Apr 20 11:28:37 EDT 2006 (1)
Looking for host RHEL44ID and service ntp
host found : rhel44id.likewisedemo.com
transmit(127.0.0.1)
transmit(127.0.0.1)
transmit(127.0.0.1)
transmit(127.0.0.1)
transmit(127.0.0.1)
127.0.0.1: Server dropped: no data
server 127.0.0.1, port 123
stratum 0, precision 0, leap 00, trust 000
refid [127.0.0.1], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Wed, Feb  6 2036 22:28:16.000
originate timestamp: 00000000.00000000  Wed, Feb  6 2036 22:28:16.000
transmit timestamp:  cbca101c.914a2b9d  Mon, May  5 2008 16:00:44.567
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000
 5 May 16:00:45 ntpdate[8557]: no server suitable for synchronization found

8.12. Find the Likewise Daemons on a Mac

To locate the Likewise processes on a Mac OS X computer, execute the following command in Terminal:

 sudo launchctl list | grep likewise

There are typically four Likewise daemons running on a Mac:

com.likewisesoftware.lwrdrd

com.likewisesoftware.netlogond

com.likewisesoftware.dcerpcd

com.likewisesoftware.lsassd

With the Likewise Enterprise agent, the group policy daemon is also running:

com.likewisesoftware.gpagentd

8.13. Find a User by a SID

On a Linux, Unix, or Mac OS X computer that is joined to a domain, you can find a user in Active Directory by his or her security identifier (SID). To find a user by SID, execute the following command as root, replacing SID with the user's security identifier:

 /opt/likewise/bin/lw-find-by-sid SID

Example:

[root@rhel4d bin]# /opt/likewise/bin/lw-find-by-sid S-1-5-21-382349973-3885793314-468868962-1180
User info (Level-0):
====================
Name:      LIKEWISEDEMO\hab
SID:      S-1-5-21-382349973-3885793314-468868962-1180
Uid:      593495196
Gid:      593494529
Gecos:     Jurgen Habermas
Shell:    /bin/ sh
Home dir: /home/ LIKEWISEDEMO/ hab
 

Tip: To view the command's options, type the following command:

/opt/likewise/bin/lw-find-by-sid --help

8.14. Fix a Key Table Entry-Ticket Mismatch

Problem

When an AD machine account password changes two or more times during the lifetime of a domain user's credentials, the computer's entry that matches the Kerberos service ticket is dropped from the Kerberos key table. Even though the service ticket has not expired, an action that depends on the entry, such as reading the event log or using single sign-on, will fail.

To avoid issues with Kerberos key tables, keytabs, and single sign-on, the machine password expiration time must be at least twice the maximum lifetime for user tickets, plus a little more time to account for the permitted clock skew.

The expiration time for a user ticket is set by using an Active Directory group policy called Maximum lifetime for user ticket. The default user ticket lifetime is 10 hours; the default Likewise machine password lifetime is 30 days.

Causes

The machine account password can change more frequently than the user's AD credentials under the following conditions:

  1. Joining a domain two or more times.

  2. Setting the expiration time of the machine account password group policy to be less than twice the maximum lifetime of user tickets. For more information, see Set the Machine Account Password Expiration Time.

  3. Setting the local machine-password-lifespan in /etc/likewise/lsassd.conf to be less than twice the maximum lifetime for user tickets. For more information, see Change the Duration of the Machine Password.

Solution

If a computer's entry is dropped from the Kerberos key table, you must remove the unexpired service tickets from the user’s credentials cache by reinitializing the cache. Here's how:

On Linux and Unix, reinitialize the credentials cache by executing the following command with the account of the user who is having the problem:

/opt/likewise/bin/kinit

On Mac, you must run both the native kinit command and the Likewise kinit command with the account of the user who is having the problem. (You must run both commands because the native ssh client uses the native credentials cache while the Likewise processes, such as those that access the event log, use the MIT credentials cache.)

/opt/likewise/bin/kinit

kinit

8.15. Generate a Domain-Join Log

To help troubleshoot problems with joining a domain, you can use the command-line utility's log option with the join command. The log option captures information about the attempt to join the domain on the screen or in a file.

  • To display the information in the terminal, execute the following command; the dot after --log denotes that the information is to be shown in the console:

    domainjoin-cli --log . join domainName userName

  • To save the information in a log file, execute the following command:

    domainjoin-cli --log path join domainName userName

    Example:

    domainjoin-cli --log /var/log/domainjoin.log join likewisedemo.com Administrator

8.16. Generate a Network Trace

Execute the following command in a separate session to dump network traffic as the root user and interrupt the trace with CTRL-C:

tcpdump -s 0 -i eth0 -w trace.pcap

The result should look something like this:

tcpdump: listening on eth0
28 packets received by filter
0 packets dropped by kernel

8.17. Generate a PAM Debug Log

You can set the level of reporting in the PAM debug log for the Likewise authentication daemon on a Linux or Unix computer. PAM stands for pluggable authentication modules.

The log levels are error, warning, info, and verbose.

  1. Log on as root user.

  2. Edit /etc/likewise/lsassd.conf so that the log-level line in the [pam] section is set to the log level that you want and is not commented out with either a number sign or a semicolon:

    log-level = warning

The logged data is sent to your system's syslog message repository for security and authentication. The location of the repository varies by operating system. Here are the typical locations for a few platforms:

  • Ubuntu: /var/log/ auth.log

  • Red Hat: /var/log/secure

  • Solaris: /var/log/ authlog

  • Mac OS X: /var/log/ secure.log

8.18. Generate an Authentication Agent Debug Log

By editing /etc/likewise/lsassd.conf, you can specify the level of logging for the Likewise authentication daemon's interaction with PAM. The following log levels are available: error, warning, info, verbose. The default is error.

The log messages are processed by syslog. Although the path and file name of the log varies by platform, they typically appear in a subdirectory of /var/log.

  1. Log in as root user.

  2. Modify /etc/likewise/lsassd.conf to include the following line:

    log-level = verbose

  3. Restart the Likewise authentication daemon by executing the following command from the command line (On HP-UX, the path to the command is /sbin/init.d):

    /sbin/service lsassd restart

    On a Mac:

    sudo launchctl stop com.likewisesoftware.lsassd

    sudo launchctl start com.likewisesoftware.lsassd

  4. After you finish troubleshooting, set the log-level back to error and restart the daemon again.

    Important: Leaving the log level at info or verbose might result in disk space issues over time.

8.19. Generate Debug Log for Netlogond

The netlogond daemon detects the optimal domain controller and global catalog and caches the data. You can obtain debugging information about the daemon's lookup requests for domain controllers by executing the following command as root:

 /opt/likewise/sbin/netlogond -- loglevel debug

8.20. Get the Status of the Authentication Providers

Likewise includes two authentication providers:

  1. The local provider

  2. The Active Directory provider

If the AD provider is not online, users are unable to log on with their AD credentials. To check the status of the authentication providers, execute the following command as root:

 /opt/likewise/bin/lw-get-status

A healthy result should look like this:

LSA Server Status:
Agent version: 5.0.0
Uptime:        2 days 21 hours 16 minutes 29 seconds
[Authentication provider: lsa-local-provider]
        Status:   Online
        Mode:     Local system
[Authentication provider: lsa-activedirectory-provider]
        Status:   Online
        Mode:     Un-provisioned
        Domain:   likewisedemo.com
        Forest:   likewisedemo.com
        Site:     Default-First-Site-Name
[root@rhel4d bin]#

An unhealthy result will not include the AD authentication provider or will indicate that it is offline. If the AD authentication provider is not listed in the results, restart the authentication daemon.

If the result looks like the line below, check the status of the Likewise daemons to make sure they are running.

Failed to query status from LSA service.  The LSASS server is not responding.

8.21. Get Domain Controller Information

 /opt/likewise/bin/lw-get-dc-name DomainName

8.22. Get Machine Account Information

You can print out the machine account name, machine account password, SID, and other information by running the following command as root. Retrieving the machine account information can be useful when integrate Likewise with, for example, a Samba file server.

 /opt/likewise/bin/lw-dump-machine-acct domainDNSName

Example: /opt/likewise/bin/lw-dump-machine-acct likewisedemo.com

The result looks like this:

/opt/likewise/bin/lw-dump-machine-acct likewisedemo.com
DomainSID                = S-1-5-21-382349973-3885793314-468868962
DomainName               = LIKEWISEDEMO
Domain DNS Name          = LIKEWISEDEMO.COM
HostName                 = RHEL5D
Machine Account Name     = RHEL5D$
Machine Account Password = xoiy8X!k/BdfiVUj

8.23. Increase Max Username Length on AIX

By default, AIX is not configured to support long user and group names, which might present a conflict when you try to log on with a long Active Directory username. To increase the max username length on AIX 5.3, use the following syntax:

# chdev -l sys0 -a max_logname=MaxUserNameLength+1

Example:

# chdev -l sys0 -a max_logname=255

This command allocates 254 characters for the user and 1 for the terminating null.

The safest value that you can set max_logname to is 255.

You must reboot for the changes to take effect:

# shutdown –Fr

Note: AIX 5.2 does not support increasing the maximum user name length.

8.24. List Groups

On a Linux, Unix, or Mac OS X computer that is joined to a domain, you can enumerate the groups in Active Directory and view their members, GIDs, and SIDs:

 /opt/likewise/bin/lw-enum-groups --level 1

The Likewise agent enumerates groups in the primary domain. Groups in trusted domains and linked cells are not enumerated. NSS membership settings in /etc/likewise/lsassd.conf do not affect the result of the command.

Tip: To view the command's options, type the following command:

/opt/likewise/bin/lw-enum-groups --help

8.25. List Users

On a Linux, Unix, or Mac OS X computer that is joined to a domain, you can enumerate the users in Active Directory and view their members, GIDs, and SIDs:

 /opt/likewise/bin/lw-enum-users

The Likewise agent enumerates users in the primary domain. Users in trusted domains and linked cells are not enumerated. NSS membership settings in /etc/likewise/lsassd.conf do not affect the result of the command.

Tip: To view the command's options, type the following command:

/opt/likewise/bin/lw-enum-users --help

To view full information about the users, include the level option when you execute the command:

/opt/likewise/bin/lw-enum-users --level 2

Example result for a one-user batch:

User info (Level-2):
====================
Name:                       LIKEWISEDEMO\sduval
UPN:                         SDUVAL@LIKEWISEDEMO.COM
Generated UPN:              NO
Uid:                        593495151
Gid:                        593494529
Gecos:                      Shelley Duval
Shell:                      /bin/sh
Home dir:                   /home/LIKEWISEDEMO/sduval
LMHash length:              0
NTHash length:              0
Local User:                 NO
Account disabled:           FALSE
Account Expired:            FALSE
Account Locked:             FALSE
Password never expires:     FALSE
Password Expired:           FALSE
Prompt for password change: NO

8.26. Reload Changes to the Configuration File

After you change a setting in the Likewise agent's main configuration file -- /etc/likewise/lsassd.conf -- you must force the Likewise agent to load the change by executing the following command with super-user privileges:

 /opt/likewise/bin/lw-refresh-configuration

8.27. Make Sure Outbound Ports Are Open

If you are using local firewall settings, such as iptables, on a computer running the Likewise agent, make sure the following ports are open for outbound traffic.

Note: The Likewise agent is a client only; it does not listen on any ports.

Port

Protocol

Use

53  

UDP/ TCP

DNS

88

UDP/TCP

Kerberos 5

123

UDP

NTP

137

UDP

NetBIOS Name Service

139  

TCP

NetBIOS Session (SMB)

389

UDP/TCP

LDAP

445

TCP

SMB over TCP

464

UDP/TCP

Machine password changes (typically after 30 days)

3268

TCP

Global Catalog search

Tip: To view the firewall rules on a Linux computer using iptables, execute the following command:

iptables - nL

8.28. Resolve an AD Alias Conflict with a Local Account

When you use Likewise to set an Active Directory alias for a user, the user can have a file-ownership conflict under the following conditions if the user logs on with the AD account:

  • The AD alias is the same alias as the original local account name.

  • The home directory assigned to the user in Active Directory is the same as the local user's home directory.

  • The owner UID-GID of the AD account is different from that of the local account.

To avoid such conflicts, by default Likewise includes the short AD domain name in each user's home directory. If the conflict nevertheless occurs, there are two options to resolve it:

  1. Make sure that the UID assigned to the user's AD alias is the same as that of the user's local account. See Specify a User's ID and Unix or Linux Settings.

  2. Log on as root and use the chown command to recursively change the ownership of the local account's resources to the AD user alias.

Change Ownership

Log on the computer as root and execute the following commands:

cd <users home directory root>

chown –R <AD user UID>:<AD primary group ID> *.*

Or: chown –R <short domain name>\\<account name>:<short domain name>\\<AD group name> *.*

See Also

Show Duplicate UIDs, GIDs, Login Names, and Group Aliases

8.29. Restart the DCE/RPC Daemon

The Likewise DCE/RPC daemon helps route remote procedure calls between computers on a network by serving as an end-point mapper. For more information and a list of inter-daemon dependencies, see About the Likewise Agent.

On Linux and Unix

You can restart the Likewise DCE/RPC daemon by executing the following command at the shell prompt:

/sbin/service dcerpcd restart

or

/etc/init.d/dcerpcd restart

To stop the daemon, type this command:

/sbin/service dcerpcd stop

To start the daemon, type this command:

/sbin/service dcerpcd start

Note: On Unix systems, the location of the daemon may vary.

On HP-UX

Restart: /sbin/init.d/dcerpcd restart

Stop: /sbin/init.d/dcerpcd stop

Start: /sbin/init.d/dcerpcd start

On Mac OS X

On a Mac, use the following stop and start commands (you cannot use the restart command on a Mac):

sudo launchctl stop com.likewisesoftware.dcerpcd

sudo launchctl start com.likewisesoftware.dcerpcd

8.30. Restart the Network Logon Daemon

The netlogond daemon determines the optimal domain controller and global catalog and caches the data. For more information and a list of start-order dependencies, see About the Likewise Agent.

On Linux and Unix

You can restart the Likewise network logon daemon by executing the following command at the shell prompt:

/sbin/service netlogond restart

or

/etc/init.d/netlogond restart

To stop the daemon, type this command:

/sbin/service netlogond stop

To start the daemon, type this command:

/sbin/service netlogond start

Note: On Unix systems, the location of the daemon may vary.

On HP-UX

Restart: /sbin/init.d/netlogond restart

Stop: /sbin/init.d/netlogond stop

Start: /sbin/init.d/netlogond start

On Mac OS X

On a Mac, use the following stop and start commands (you cannot use the restart command on a Mac):

sudo launchctl stop com.likewisesoftware.netlogond

sudo launchctl start com.likewisesoftware.netlogond

8.31. Restart the Input-Output Service

The Likewise input-output service  -- lwrdrd -- communicates over SMB with SMB servers; authentication is with Kerberos 5. For a list of start-order dependencies, see About the Likewise Agent.

On Linux and Unix

You can restart the input-output service by executing the following command at the shell prompt:

/sbin/service lwrdrd restart

or

/etc/init.d/lwrdrd restart

To stop the daemon, type this command:

/sbin/service lwrdrd stop

To start the daemon, type this command:

/sbin/service lwrdrd start

Note: On Unix systems, the location of the daemon may vary.

On HP-UX

Restart: /sbin/init.d/lwrdrd restart

Stop: /sbin/init.d/lwrdrd stop

Start: /sbin/init.d/lwrdrd start

On Mac OS X

On a Mac, use the following stop and start commands (you cannot use the restart command on a Mac):

sudo launchctl stop com.likewisesoftware.lwrdrd

sudo launchctl start com.likewisesoftware.lwrdrd

8.32. Restart the Authentication Daemon

The authentication daemon handles authentication, authorization, caching, and idmap lookups. When you restart the authentication daemon (lsassd), you should also restart the lwrdrd daemon. For more information and a list of inter-daemon dependencies, see About the Likewise Agent.

On Linux and Unix

You can restart the Likewise authentication daemon by executing the following command at the shell prompt:

/sbin/service lsassd restart

or

/etc/init.d/lsassd restart

To stop the daemon, type this command:

/sbin/service lsassd stop

To start the daemon, type this command:

/sbin/service lsassd start

Note: On Unix systems, the location of the daemon may vary.

On HP-UX

Restart: /sbin/init.d/lsassd restart

Stop: /sbin/init.d/lsassd stop

Start: /sbin/init.d/lsassd start

On Mac OS X

On a Mac, use the following stop and start commands (you cannot use the restart command on a Mac):

sudo launchctl stop com.likewisesoftware.lsassd

sudo launchctl start com.likewisesoftware.lsassd

8.33. View Kerberos Tickets

On a target Linux or Unix computer, you can see a list of Kerberos tickets by executing the following command:

 /opt/likewise/bin/klist

The command lists the location of the credentials cache, the expiration time of each ticket, and the flags that apply to the tickets. For more information, see the man page for klist.

Because Likewise includes its own Kerberos 5 libraries (in /opt/likewise/lib), you must use the Likewise klist command by either changing directories to /opt/likewise/bin or including the path in the command.

Example:

-sh-3.00$ /opt/likewise/bin/klist
Ticket cache: FILE:/tmp/krb5cc_593495191
Default principal: hoenstiv@LIKEWISEDEMO.COM
Valid starting     Expires            Service principal
07/22/08 16:07:23  07/23/08 02:06:39  krbtgt/LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
        renew until 07/23/08 04:07:23
07/22/08 16:06:39  07/23/08 02:06:39  host/rhel4d.LIKEWISEDEMO.COM@
        renew until 07/23/08 04:07:23
07/22/08 16:06:39  07/23/08 02:06:39  host/rhel4d.LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
        renew until 07/23/08 04:07:23
07/22/08 16:06:40  07/23/08 02:06:39  RHEL4D$@LIKEWISEDEMO.COM
        renew until 07/23/08 04:07:23
-sh-3.00$

Note: To address Kerberos issues, see Troubleshooting Kerberos Errors at http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/tkerberr.mspx.

8.34. View the Netlogon Daemon's Cache

To view the contents of netlogond's cache, execute the following command as root, replacing targetFQDN with the fully qualified domain name of your AD domain:

/opt/likewise/bin/lw-export-dc-cache targetFQDN

Example:

/opt/likewise/bin/lw-export-dc-cache likewisedemo.com

8.35. Fix the Shell and Home Directory Paths

Symptom: A local directory is in the home directory path and the home directory path does not match the path specified in Active Directory or in /etc/password.

Example: /home/local/DOMAIN/USER instead of /home/DOMAIN/USER

The shell might also be different from what is set in Active Directory -- for example, /bin/ksh instead of /bin/bash.

Problem: The computer is not in a Likewise cell in Active Directory.

Solution: Make sure the computer is in a Likewise cell. For more information, see Associate a Cell with an OU or a Domain, or create a default cell.

A default cell handles mapping for computers that are not in an OU with an associated cell. The default cell can contain the mapping information for all your Linux and Unix computers. For instance, a Linux or Unix computer can be a member of an OU that does not have a cell associated with it. In such a case, the home directory and shell settings are obtained from the nearest parent cell, or the default cell. If there is no parent cell and no default cell, the computer will not receive its shell and home directory paths from Active Directory.

See Also

Set the Default Home Directory

Set the Default Login Shell

Chapter 9. Leaving a Domain and Uninstalling the Agent

9.1. Leave a Domain

Likewise reverses the Likewise-specific settings that were made to the computer's configuration when it was joined to the domain. Likewise also reverses any changes that you manually made to /etc/likewise/lsassd.conf. Before you leave a domain, you can execute the following command to view the changes that will take place:

domainjoin-cli leave --advanced --preview domainName

Example:

[root@rhel4d likewise]# domainjoin-cli leave --advanced --preview likewisedemo.com
Leaving AD Domain:    LIKEWISEDEMO.COM
[X] [S] ssh            - configure ssh and sshd
[X] [N] pam            - configure pam.d/pam.conf
[X] [N] nsswitch       - enable/disable Likewise nsswitch module
[X] [N] stop           - stop daemons
[X] [N] leave          - disable machine account
[X] [N] krb5           - configure krb5.conf
    [F] keytab         - initialize kerberos keytab
Key to flags
[F]ully configured        - the system is already configured for this step
[S]ufficiently configured - the system meets the minimum configuration
                            requirements for this step
[N]ecessary               - this step must be run or manually performed.
[X]                       - this step is enabled and will make changes
[ ]                       - this step is disabled and will not make changes
 

For information on advanced commands for leaving a domain, see Join Active Directory with the Command Line.

The Computer Account in Active Directory

When you leave a domain, the computer's account in Active Directory is not disabled and not deleted. If, however, you include the user name as part of the leave command, the computer's account is disabled but not deleted. You can include the user name as part of the leave command as follows; you will be prompted for the password of the user account:

domainjoin-cli leave  userName

Example: domainjoin-cli leave brsmith

Remove a Linux or Unix Computer from a Domain

  • On the Linux or Unix computer that you want to remove from the Active Directory domain, use a root account to run the following command:

    /opt/likewise/bin/domainjoin-cli leave

Remove a Mac from a Domain

To leave a domain on a Mac OS X computer, you must have administrative privileges on the Mac.

  1. In Finder, click Applications.

  2. In the list of applications, double-click Utilities, and then double-click Directory Access.

  3. On the Services tab, click the lock and enter an administrator name and password to unlock it.

  4. In the list, click Likewise, and then click Configure.

  5. Enter a name and password of a local machine account with administrative privileges.

  6. On the menu bar at the top of the screen, click the Likewise Domain Join Tool menu, and then click Join or Leave Domain.

  7. Click Leave.

Remove a Mac with the Command Line

Execute the following command with an account that allows you to use sudo:

sudo /opt/likewise/bin/domainjoin-cli leave

9.2. Uninstall the Domain Join GUI

On a Linux computer, you can uninstall the domain join GUI from the command line by running the following command as root:

/opt/likewise/setup/djgtk/uninstall

9.3. Uninstall the Agent on a Linux or Unix Computer

Uninstall BitRock Installations on Linux or Unix

On a Linux or Unix computer, you can uninstall the Likewise agent from the command line if you originally installed the agent with the BitRock installer.

Important: Before uninstalling the agent, you must leave the domain and uninstall the domain-join GUI. Then execute the uninstall command from a directory other than  likewise so that the uninstall program can delete the likewise directory and all its subdirectories. For example, execute the command from the root directory.

  • To uninstall the agent on a Linux computer running Likewise Enterprise, run the following command as root:

    /opt/likewise/setup/lwise/uninstall

  • To uninstall the agent on a Linux computer running Likewise Open, run the following command as root:

    /opt/likewise/setup/lwiso/uninstall

Uninstall Likewise with the Shell Script on Linux or Unix

If you installed the agent on a Linux or Unix computer by using the shell script, you can uninstall the Likewise agent from the command line by using the installer shell script with the uninstall option. For example, on a Linux computer running  glibc, change directories to the location of Likewise and then run the following command as root:

./LikewiseIdentityServiceOpen-5.0.0.3494-linux-oldlibc-i386-rpm.sh uninstall

Uninstall the Agent on AIX

To uninstall the agent on AIX computers, execute the following command as root:

installp -u likewise.*

9.4. Uninstall the Agent on a Mac

On a Mac computer, you must uninstall the Likewise agent by using the Terminal. Before uninstalling the agent, you should leave the domain.

  1. Log on the Mac by using a local account with privileges that allow you to use sudo.

  2. Open a Terminal window: In Finder, on the Go menu, click Utilities, and then double-click Terminal.

  3. At the Terminal shell prompt, execute the following command:

    sudo /opt/likewise/bin/ macuninstall.sh

Chapter 10. Using Likewise for Single Sign-On

10.1. About Single Sign-On

When you log on a Linux, Unix, or Mac OS X computer by using your Active Directory domain credentials, Likewise initializes and maintains a Kerberos ticket granting ticket (TGT). The TGT lets you log on other computers joined to Active Directory or applications provisioned with a Service Principal Name and be automatically authenticated with Kerberos and authorized for access through Active Directory. In a transparent process, the underlying Generic Security Services (GSS) system requests a Kerberos service ticket for the Kerberos-enabled application or server. The result: single sign-on.

To gain access to another computer, you can use various protocols and applications:

  • SSH (how to configure single sign-on for SSH)

  • rlogin

  • rsh

  • Telnet

  • FTP

  • Firefox (for browsing of intranet sites)

  • LDAP queries against Active Directory

  • HTTP with an Apache HTTP Server

How Likewise Makes SSO Happen

Since Microsoft Windows 2000 was released, Active Directory's primary authentication protocol has been Kerberos. When a user logs on a Windows computer that is joined to a domain, the operating system uses the Kerberos protocol to establish a key and to request a ticket for the user. Active Directory serves as the Kerberos key distribution center, or KDC.

Likewise configures Linux and Unix computers to interact with Active Directory in a similar way. When a user logs on a Linux and Unix computer joined to a domain, Likewise requests a ticket for the user. The ticket can then be used to implement SSO with other applications.

Likewise fosters the use of the highly secure Kerberos 5 protocol by automating its configuration on Linux and Unix computers. To ensure that the Kerberos authentication infrastructure is properly configured, Likewise does the following:

  • Ensures that DNS is properly configured to resolve names associated with Active Directory (AD).

  • Provides tools to join Linux, Unix, and Mac OS X computers to AD.

  • Performs secure, dynamic DNS updates to ensure that Linux and Unix computer names can be resolved with AD-integrated DNS servers.

  • Configures Kerberos. In an environment with multiple KDCs, Likewise makes sure that Kerberos selects the appropriate server.

  • Configures SSHD to support SSO through Kerberos (by using GSSAPI).

  • Creates a keytab for the computer in the following way: When you join a Linux or Unix computer to AD, Likewise creates a machine account for the computer. Likewise then automatically creates a keytab for the SPN and places it in the standard system location (typically /etc/krb5.keytab).

  • Creates a keytab for the user during logon. On most systems, the user keytab is placed in the /tmp directory and named krb5cc_UID, where UID is the numeric user ID assigned by the system.

Overview of How to Implement SSO with Likewise

When you install Likewise on a Linux, Unix, or Mac OS X computer and join it to Active Directory, Likewise prepares it for single sign-on by creating a keytab for the computer. However, when you use Likewise to implement SSO with other applications or services, such as SAP or Oracle, you will likely have to configure the application to use GSSAPI and Kerberos 5 authentication and you will likely have to provision each application user for external Kerberos authentication. At the very least, you will have to provision your application with a Service Principal Name in Active Directory.

Note: Configuring an application such as SAP or Oracle for SSO with Kerberos is beyond the scope of the Likewise documentation; for more information, see the manual for your application.

The following process outlines the steps for setting up an application or service -- here, Apache Tomcat -- to use Likewise for single sign-on. For a detailed example of how to configure an application for SSO, see Configure SSH for SSO.

  1. Create a service account for Tomcat in Active Directory.

  2. Associate a Service Principal Name, or SPN, with the service account in Active Directory.

  3. Create a keytab for the SPN.

  4. Place the keytab in the appropriate location on the Linux or Unix computer.

  5. Add the Likewise Java authentication module (a valve class) to Tomcat. To obtain the Java module for Tomcat, contact Likewise at http://www.likewise.com/support/.

  6. Configure the authentication module to get its Kerberos key from the generated keytab.

  7. Configure the authentication module to determine Java roles by examining Active Directory group membership.

  8. Configure an application to restrict access to Active Directory authenticated users in certain roles.

  9. Test Tomcat SSO by accessing restricted web sites from a Windows client running Microsoft Internet Explorer or Mozilla Firefox. Repeat this step on Linux and Unix using Firefox.

10.2. Make Sure PAM Is Enabled for SSH

If your Active Directory account is not working with SSH, make sure that UsePAM is enabled in sshd_config and make sure that your sshd is linked to the PAM libraries.

1. Determine which sshd is running by executing the following command:

bash-3.2# ps -ef | grep sshd

    root  8199     1  0  Feb  6  ?         0:00 /opt/ssh/sbin/sshd
    root  2987  8199  0  Mar  3  ?         0:04 sshd: root@notty
    root 24864  8199  0 12:16:25 ?         0:00 sshd: root@pts/0
    root  2998  8199  0  Mar  3  ?         0:05 sshd: root@notty
    root 24882 24880  0 12:16:54 pts/0     0:00 grep sshd

2. Either use lsof to find out which conf file it is reading, or start it up with debugging to figure out the default path. Example:

   username@computer:~$ /usr/sbin/sshd -dd -t
   debug2: load_server_config: filename /etc/ssh/sshd_config
   debug2: load_server_config: done config len = 664
   debug2: parse_server_config: config /etc/ssh/sshd_config len 664
   debug1: sshd version OpenSSH_5.1p1 Debian-3ubuntu1
   Could not load host key: /etc/ssh/ssh_host_rsa_key
   Could not load host key: /etc/ssh/ssh_host_dsa_key

3. Verify that UsePAM is enabled in the config file. As a best practice, make a backup copy of the configuration file before you change it.

4. Run ldd on sshd to make sure it links with libpam. Example from an IA64 HP system:

bash-3.2# ldd /opt/ssh/sbin/sshd

        libpam.so.1 =>  /usr/lib/hpux64/libpam.so.1
        libdl.so.1 =>   /usr/lib/hpux64/libdl.so.1
        libnsl.so.1 =>  /usr/lib/hpux64/libnsl.so.1
        libxnet.so.1 => /usr/lib/hpux64/libxnet.so.1
        libsec.so.1 =>  /usr/lib/hpux64/libsec.so.1
        libgssapi_krb5.so =>    /usr/lib/hpux64/libgssapi_krb5.so
        libkrb5.so =>   /usr/lib/hpux64/libkrb5.so
        libpthread.so.1 =>      /usr/lib/hpux64/libpthread.so.1
        libc.so.1 =>    /usr/lib/hpux64/libc.so.1
        libxti.so.1 =>  /usr/lib/hpux64/libxti.so.1
        libxti.so.1 =>  /usr/lib/hpux64/libxti.so.1
        libm.so.1 =>    /usr/lib/hpux64/libm.so.1
        libk5crypto.so =>       /usr/lib/hpux64/libk5crypto.so
        libcom_err.so =>        /usr/lib/hpux64/libcom_err.so
        libk5crypto.so =>       /usr/lib/hpux64/libk5crypto.so
        libcom_err.so =>        /usr/lib/hpux64/libcom_err.so
        libdl.so.1 =>   /usr/lib/hpux64/libdl.so.1
bash-3.2#

10.3. Configure PuTTY for Windows-Based SSO

To use PuTTY to connect to a Linux or Unix machine from a Windows machine and then connect to a second Linux or Unix, you must configure PuTTY to allow ticket forwarding and you must set the base Linux or Unix computer in Active Directory to be trusted for delegation.

Important: The following procedure assumes that you are using a GSSAPI-enhanced version of PuTTY, such as release 0.56b2, which you can download at http://www.css-security.com/cgi-bin/dnld_list.pl.

Configure PuTTY

  1. In the PuTTY Configuration dialog, select Allow Kerberos 5 ticket forwarding (SSH 1/2).

  2. Select Attempt GSSAPI/Kerberos 5 authentication:

     

Configure the Base Linux Computer in Active Directory

This procedure assumes the base Linux or Unix computer is joined to Active Directory with Likewise. To perform this procedure, you must be a member of the Domain Administrators security group or the Enterprise Administrators security group, or you must have been delegated authority.

Windows Server 2003 R2

  1. In Active Directory Users and Computers, in the console tree, click Computers.

  2. In the details pane, right-click the computer that you want, and then click Properties.

  3. On the Delegation tab, click Trust this computer for delegation to specified services only:

  4. Confirm that Use Kerberos only is selected.

  5. Click Add and, in Add Services, click Users and Computers.

  6. In Enter the object names to select, type the name of the user or computer that the computer will be trusted to delegate for, and then click OK.

  7. In Add Services, click the service or services that will be trusted for delegation and then click OK.

Windows 2000

  1. In Active Directory Users and Computers, in the console tree, click Computers.

  2. In the details pane, right-click the computer that you want, and then click Properties.

  3. On the General tab, select Trust computer for delegation:

10.4. Solve the SSO Problem on Red Hat and CentOS

There is a known bug with some versions of Red Hat and CentOS that prevents SSO from working with SSH, SSHD, and PuTTY. The following versions are known to be affected:

  • CentOS 5

  • Red Hat Enterprise Linux 5

Problem

The system incorrectly concatenates the Kerberos ticket's service principal name on the target Linux computer. For example, in the final entry of the results of the klist command below, the full name of the service principal is cut off after the @ symbol:

[LIKEWISEDEMO\fanthony@centos52 ~]$ /opt/likewise/bin/klist
Ticket cache: FILE:/tmp/krb5cc_1689257039
Default principal: fanthony@LIKEWISEDEMO.COM
Valid starting     Expires            Service principal
07/31/08 09:25:13  07/31/08 19:25:31  krbtgt/LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
    renew until 08/07/08 09:25:13
07/31/08 09:25:31  07/31/08 19:25:31  CENTOS52$@LIKEWISEDEMO.COM
    renew until 08/07/08 09:25:13
07/31/08 09:30:04  07/31/08 19:25:31  host/centos52.likewisedemo.com@
   renew until 08/07/08 09:25:13

Test

To determine whether you need to implement the solution below on your Red Hat or CentOS computer, execute the following series of tests:

  1. Connect to your target machine with SSH by using PUTTY and a valid Active Directory user. Be sure to use the FQDN of the host.

  2. Execute the following command:

    /opt/likewise/bin/klist

    The results should look like this:

    LIKEWISEDEMO\fanthony@centos52 ~]$ klist
    Ticket cache: FILE:/tmp/krb5cc_1689257039
    Default principal: fanthony@LIKEWISEDEMO.COM
    Valid starting     Expires            Service principal
    07/31/08 09:25:13  07/31/08 19:25:31  krbtgt/LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
    renew until 08/07/08 09:25:13
    07/31/08 09:25:31  07/31/08 19:25:31  CENTOS52$@LIKEWISEDEMO.COM
    renew until 08/07/08 09:25:13
  3. SSH again to the same host and when prompted for the password, type CNTL+C.

  4. Execute the klist command again:

    /opt/likewise/bin/klist

  5. Check the results to determine whether there is an incorrectly concatenated service principal, as there is in the following output:

    [LIKEWISEDEMO\fanthony@centos52 ~]$ klist
    Ticket cache: FILE:/tmp/krb5cc_1689257039
    Default principal: fanthony@LIKEWISEDEMO.COM
    Valid starting     Expires            Service principal
    07/31/08 09:25:13  07/31/08 19:25:31 krbtgt/LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
    renew until 08/07/08 09:25:13
    07/31/08 09:25:31  07/31/08 19:25:31  CENTOS52$@LIKEWISEDEMO.COM
    renew until 08/07/08 09:25:13
    07/31/08 09:30:04  07/31/08 19:25:31  host/centos52.likewisedemo.com@
    renew until 08/07/08 09:25:13

Solution

  1. On the target Linux computer, add the following line to /etc/krb5.conf under the [domain_realm] entry of the file:

    .yourdomainname.com = YOURDOMAINNAME.COM

    Example:

    [domain_realm]
    .likewisedemo.com = LIKEWISEDEMO.COM
  2. Restart SSHD by running the following command at the shell prompt:

    /sbin/service sshd restart

10.5. Configure Apache for SSO

This document describes how to configure Likewise and the Apache HTTP Server to provide single sign-on authentication through Active Directory with Kerberos 5. The instructions assume that you know how to administer Active Directory, the Apache HTTP Server, and computers running Linux.

Single sign-on for the Apache HTTP server uses the Simple and Protected GSS-API Negotiation Mechanism, or SPNEGO, to negotiate authentication with Kerberos. SPNEGO is an Internet standard documented in RFC 2478 at http://www.ietf.org/rfc/rfc2478.txt and is commonly referred to as the "negotiate" authentication protocol. The Likewise mod_auth_kerb module lets an Apache web server running on a Linux or Unix system authenticate and authorize users based on their Active Directory domain credentials.

Important: This topic assumes that you have installed either Likewise Open 5.0 or Likewise Enterprise 5.0, build 3946 or later, on the Linux computer running your Apache HTTP Server and that you have joined the server to Active Directory. With build 3946, Likewise 5.0 began to include the Apache mod_auth_kerb module in /opt/likewise/apache; the Likewise version of the mod_auth_kerb module is required to configure your Apache HTTP Server for single sign-on.

To check whether your build of Likewise Enterprise 5.0 or Likewise Open 5.0 includes mod_auth_kerb, confirm that the following components exist:

/opt/likewise/apache/2.0/mod_auth_kerb.a
/opt/likewise/apache/2.0/mod_auth_kerb.so
/opt/likewise/apache/2.2/mod_auth_kerb.a
/opt/likewise/apache/2.2/mod_auth_kerb.so

Requirements

Likewise Open 5.0 or later or Likewise Enterprise 5.0 or later, build 3946 or later.

The Linux or Unix computer that is hosting the Apache web server is joined to Active Directory.

An Apache HTTP Server 2.0 or 2.2 that supports dynamically loaded modules. To check whether your Apache web server supports dynamically loaded modules, execute the following command and verify that mod_so.c appears in the list of compiled modules:

httpd -l

Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

For Apache installations that are compiled from the source code, make sure that --enable-module=so is specified when ./configure is executed:

./configure --enable-module=so

Your Kerberos libraries must support SPNEGO. For example, MIT Kerberos libraries that are version 1.5 and later support SPNEGO; earlier versions do not. Make sure your Kerberos libraries support SPNEGO by running ldd:

 which httpd
/usr/sbin/httpd
ldd /usr/sbin/httpd

In the results, find the line that references libgssapi:

libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00231000)

Finally, query the version number of the library and make sure it is 1.5 or later:

rpm -qif /usr/lib/libgssapi_krb5.so.2

Name        : krb5-libs                    Relocations: (not relocatable)
Version     : 1.5                               Vendor: Red Hat, Inc.
Release     : 17                            Build Date: Tue 16 Jan 2007 10:01:00 AM PST
Install Date: Fri 14 Dec 2007 09:09:44 AM PST      Build Host: ls20-bc1-13.build.redhat.com
Group       : System Environment/Libraries   Source RPM: krb5-1.5-17.src.rpm
Size        : 1333337                          License: MIT, freely distributable.
Signature   : DSA/SHA1, Wed 17 Jan 2007 10:57:33 AM PST, Key ID 5326810137017186
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL         : http://web.mit.edu/kerberos/www/
Summary     : The shared libraries used by Kerberos 5.
Description :
Kerberos is a network authentication system. The krb5-libs package
contains the shared libraries needed by Kerberos 5. If you are using
Kerberos, you need to install this package.
[root@rhel5d sbin]#
 

Configure Apache HTTP Server 2.2 for SSO on RHEL 5

The following instructions demonstrate how to configure Likewise and Apache for SSO on a Red Hat Enterprise Linux 5 computer. The steps vary by operating system and by Apache version. Ubuntu, in particular, uses apache2 instead of httpd for commands, the name of the daemon, the configuration directory, the name of the configuration file, and so forth.

Important: Configuring web servers is complex. Before you deploy your configuration to a production web server, implement and test it in a test environment. More: Before you change your web server's configuration, read and understand the Apache HTTP Server documentation at http://httpd.apache.org/docs/ and the mod_auth_kerb documentation at http://modauthkerb.sourceforge.net/configure.html. Before you change a file, make a backup copy of it.

  1. Determine whether your Apache server is 2.0 or 2.2:

    httpd -v

    Server version: Apache/2.2.3
    Server built:   Nov 29 2006 06:33:19
  2. Edit your Apache configuration file -- /etc/httpd/conf/httpd.conf -- to add a directive to load the Likewise auth_kerb_module for your version of Apache. Since my Red Hat computer is running Apache 2.2.3, I have added the 2.2 version of the module to the list after the other auth modules (which were already listed in the file):

    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule auth_kerb_module /opt/likewise/apache/2.2/mod_auth_kerb.so
  3. In /etc/httpd/conf/httpd.conf, configure authentication for a directory and then restart the web server; example:

    <Directory "/var/www/html/secure">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
    AuthType Kerberos
    AuthName "Kerberos Login"
    KrbAuthRealms LIKEWISEDEMO.COM
    Krb5Keytab /etc/apache2/http.ktb
    Require valid-user
    </Directory>

     

  4. Configure your web server for Secure Socket Layer (SSL).

    Important: If SSO fails and you have not turned on SSL, your server will prompt you for an ID and password -- which will be sent in clear text. SSL encrypts all data that passes between the client browser and the web server. SSL can also perform Basic Authentication in a secure fashion, providing a fallback mechanism in the event that Kerberos authentication fails. Using SSL is especially important if the protected web site also needs to be accessible from outside the corporate network. For more information, see http://modauthkerb.sourceforge.net/configure.html.

  5. In Active Directory, create a user account for the Apache web server in the same OU (or, with Likewise Enterprise, cell) to which the Linux computer hosting the web server is joined. Set the password of the user account to never expire. In the examples that follow, the user account for my Apache web server is named httpUser.

  6. On the domain controller, create an RC4-HMAC keytab for the Apache web server by using Microsoft's ktpass utility. For information on ktpass, see http://technet.microsoft.com/en-us/library/cc776746.aspx.

    Example:

    C:\>ktpass /out keytabfile /princ HTTP/rhel5d.likewisedemo.com@LIKEWISEDEMO.COM /pass SkiAlta2008 /mapuser likewisedemo\httpUser
    Targeting domain controller: steveh-dc.likewisedemo.com
    Using legacy password setting method
    Successfully mapped HTTP/rhel5d.likewisedemo.com to httpUser.
    Key created.
    Output keytab to keytabfile:
    Keytab version: 0x502
    keysize 80 HTTP/rhel5d.likewisedemo.com@LIKEWISEDEMO.COM ptype 0 (KRB5_NT_UNKNOWN) vno 3 etype 0x17 (RC4-HMAC) keylength 16 (0x2998807dc299940e2c6c81a08315c596)
  7. Use secure FTP or another method to transfer the keytab file to the Linux computer that hosts your Apache web server and place the file in the location specified in your <Directory> configuration in httpd.conf. For example, using the configuration shown in Step 3 above, the keytab file would be placed in /etc/apache2/http.ktb.
  8. Set the permissions of the keytab file to be readable by the ID under which the Apache web server runs and no one else.

    Important: The Kerberos keytab file is necessary to authenticate incoming requests. It contains an encrypted, local copy of the host’s key and, if compromised, might allow unrestricted access to the host computer. It is therefore crucial to protect it with file-access permissions.

Configure Firefox for SSO

To set up Firefox for single sign-on, you must turn on the Simple and Protected GSS-API Negotiation Mechanism, or SPNEGO, to negotiate authentication with Kerberos.

  1. Open Firefox.

  2. In the Go box, type about:config, and then click Go.

  3. In the Filter box, type uris.

  4. Double-click network.negotiate-auth.trused-uris, enter a comma-separated list of URL prefixes or domains that are permitted to engage in SPNEGO authentication with the browser, and then click OK. Example:

  5. Double-click network.negotiate-auth.delegation-uris, enter a comma-separated list of the sites for which the browser may delegate user authorization to the server, and then click OK.

    For more information on how to configure Firefox, see http://grolmsnet.de/kerbtut/firefox.html.

Configure Internet Explorer for SSO

Here's how to configure Internet Explorer 7.0 to use SPNEGO and Kerberos. The settings for other versions of IE might vary; see your browser's documentation for more information.

  1. Start Internet Explorer 7.0.

  2. On the Tools menu, click Internet Options.

  3. Click the Advanced tab and make sure that the Enable Integrated Windows Authentication box is selected:

  4. Click the Security tab.

  5. Select a zone -- for example, Local intranet -- and then click Custom level.

  6. In the Settings list, under User Authentication, click Automatic logon with current user name and password for a trusted site, or Automatic logon only in Intranet zone for a site you added to IE's list of Intranet sites. For more information, see your browser's documentation.

  7. Return to the Security tab for Internet Options and set your web server as a trusted site.

  8. Restart Internet Explorer.

Troubleshooting

The following tools can help diagnose problems with Kerberos authentication.

Apache Log File

The location of the Apache error logs is specified in the Apache configuration file under the ErrorLog directive. Example directive from /etc/httpd/conf/httpd.conf on RHEL 5: ErrorLog logs/error_log

The Microsoft Kerbtray Utility

The Microsoft Kerbtray.exe utility, part of the Windows 2000 Resource Kit, can verify whether Internet Explorer obtained a Kerberos ticket for your web server. You can download the utility at the following URL:

http://www.microsoft.com/downloads/details.aspx?familyid=4E3A58BE-29F6-49F6-85BE-E866AF8E7A88&displaylang=en

Klist

You can use the klist utility in /opt/likewise/bin/klist to check the Kerberos keytab file on a Linux or Unix computer. The command shows all the service principal tickets contained in the keytab file so you can verify that the correct service principal names appear. Confirm that HTTP/myserver@MYDOMAIN.COM and HTTP/myserver.mydomain.com@MYDOMAIN.COM appear in the list. It is normal to see multiple entries for the same name.

Example:

klist -k krb5_myserver.keytab
Keytab name: FILE:krb5_myserver.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   6 HTTP/myserver@MYDOMAIN.COM
   6 HTTP/myserver@MYDOMAIN.COM
   6 HTTP/myserver@MYDOMAIN.COM
   6 HTTP/myserver.mydomain.com@MYDOMAIN.COM
   6 HTTP/myserver.mydomain.com@MYDOMAIN.COM
   6 HTTP/myserver.mydomain.com@MYDOMAIN.COM

If your service principal names are incorrect, generate a new Kerberos keytab file.

Common Problems

Authentication problems can be difficult to diagnose. First, check all the configuration parameters, including the validity of the keytab file. Second, make sure none of the common problems listed in the following table are sabotaging authentication.

Problem

Solution

The system's clock is out of sync.

The Kerberos standard requires that system clocks be no more than 5 minutes apart. Make sure that the system clocks on the Active Directory domain controller, the Linux or Unix web server, and the client are synchronized.

The user accessing the web site is not on the require list

If Kerberos ticket was obtained on the client or the user correctly entered his credentials during the Basic Authentication prompt, it might be because authentication worked but the authorization failed. If so, the Apache error_log will contain a line like this:

access to / failed, reason: user MYDOMAIN\\user not allowed access

Add the user to the require user directive or add the user’s group to the require group directive.

The user accessing the web site is logged on the wrong domain.

If the client user is logged on a domain different from the domain of the web server, one of two things will happen:

  1. If the KrbMethodK5Passwd directive is set to on, or was not specified and thus defaults to on, the user will be prompted for credentials.

  2. If KrbMethodK5Passwd is set to off, authentication will fail and the Authorization Required page will be displayed.

Internet Explorer does not consider the URL to be part of the Local Intranet zone or the Trusted sites.

This problem commonly occurs when the web site is accessed by using a URL that includes the full domain name, such as https://myserver.mydomain.com. Internet Explorer tries to obtain Kerberos tickets only for web sites that are in the Local Intranet zone.

Try to access the web site by using only the server name, for example https://myserver.

Or, you can add the URL to a list of Local Intranet sites or the trusted sites by changing your options in Internet Explorer.

The service principal name of the web site is mapped to more than one object in the Active Directory.

Although this problem is rare, it is difficult to diagnose because the error messages are vague. The problem can occur after the ktpass utility was used repeatedly to generate a Kerberos keytab file for the web server.

To check for this problem, log on your Active Directory domain controller and open the Event Viewer. Look for an event of type=Error, source=KDC, and event ID=11. The text of the event will be similar to the message below:

There are multiple accounts with name HTTP/myserver.mydomain.com of type DS_SERVICE_PRINCIPAL_NAME.

To fix the problem, find the computer or user objects that were used to map the service principal name in Active Directory and then use the ADSI Edit to manually remove the “HTTP/myserver.mydomain.com” string from the servicePrincipalName object property.

Example of how to find an object named HTTP by using Ldp:

 

10.6. Log On and Verify a Kerberos Ticket

To obtain a valid ticket through Likewise, log on through a PAM entry point such as a non-single sign-on SSH (secure shell) login, the console, or the X11 display manager (XDM).

Then you can verify your Kerberos ticket granting ticket, or TGT, and your other tickets by executing the following command:

 /opt/likewise/bin/klist

Important: You must use the Likewise klist command in /opt/likewise/bin.

Example from Red Hat:

[root@rhel4d bin]# ssh likewisedemo.com\\hoenstiv@localhost
Password:
Last login: Tue Jul 22 15:35:01 2008 from rhel4d.likewisedemo.com
-sh-3.00$ /opt/likewise/bin/klist
Ticket cache: FILE:/tmp/krb5cc_593495191
Default principal: hoenstiv@LIKEWISEDEMO.COM
Valid starting     Expires            Service principal
07/22/08 15:38:20  07/23/08 01:37:46  krbtgt/LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
        renew until 07/23/08 03:38:20
07/22/08 15:37:46  07/23/08 01:37:46  host/rhel4d.LIKEWISEDEMO.COM@
        renew until 07/23/08 03:38:20
07/22/08 15:37:46  07/23/08 01:37:46  host/rhel4d.LIKEWISEDEMO.COM@LIKEWISEDEMO.COM
        renew until 07/23/08 03:38:20
07/22/08 15:37:46  07/23/08 01:37:46  RHEL4D$@LIKEWISEDEMO.COM
        renew until 07/23/08 03:38:20
-sh-3.00$

10.7. Perform an Authenticated LDAP Search

Example from Red Hat or Fedora Core system:

$ ldapsearch -H ldap://corp.likewise.com -Y GSSAPI -b "OU=PM,OU=Bellevue,DC=corp,DC=likewise,DC=com" "givenName=John"
SASL/GSSAPI authentication started
SASL username: juser@CORP.COMPANY.COM
SASL SSF: 56
SASL installing layers
# extended LDIF
#
# LDAPv3
# base <OU=PM,OU=Bellevue,DC=corp,DC=company,DC=com> with scope subtree
# filter: givenName=John
# requesting: ALL
#
# John Y. User, PM, Bellevue, corp.company.com
dn: CN=John Y. User,OU=PM,OU=Bellevue,DC=corp,DC=company,DC=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: John Y. User
sn: User
givenName: John
initials: Y
distinguishedName: CN=John Y. User,OU=PM,OU=Bellevue,DC=corp,DC=company,DC=co
 m
instanceType: 4
whenCreated: 20050518173419.0Z
whenChanged: 20070701110111.0Z
displayName: John Y. User
uSNCreated: 2573986
memberOf: CN=VMAdmins,OU=Engineering,DC=corp,DC=company,DC=com
uSNChanged: 6052558
name: John Y. User
objectGUID:: 7OcUg0HERUusL/Idoy8ucQ==
userAccountControl: 66048
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 128276130965468750
lastLogoff: 0
lastLogon: 128278818847812500
pwdLastSet: 127610791087187500
primaryGroupID: 513
userParameters:: bTogICAgICAgICAgICAgICAgICAgIGQJICAgICAgICAgICAgICAgICAgICAgI
 CAg
objectSid:: AQUAAAAAAAUVAAAABmrrGFq7/kaof0eDlgUAAA==
adminCount: 1
accountExpires: 9223372036854775807
logonCount: 14398
sAMAccountName: JUser
sAMAccountType: 805306368
userPrincipalName: JUser@corp.company.com
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=corp,DC=company,DC=co
 m
mSMQSignCertificates:: AgAAABHOOeQnCg3L80Fg7RL8GRRpRZm2oF8nSZGxsDEjgMFmvQEAADC
 CAbkwggFjoAMCAQICBKqlWlUwDAYIKoZIhvcNAgUFADBkMREwDwYDVQQHHggATQBTAE0AUTELMAkG
 A1UECh4CAC0xCzAJBgNVBAseAgAtMTUwMwYDVQQDHiwAQwBPAFIAUABcAEoARwBlAGUAcgAsACAAa
 gBnAGUAZQByAC0AdgBhAGkAbzAeFw0wNTA3MDEyMTAwNTRaFw0xMzA3MDEyMTAwNTRaMGQxETAPBg
 NVBAceCABNAFMATQBRMQswCQYDVQQKHgIALTELMAkGA1UECx4CAC0xNTAzBgNVBAMeLABDAE8AUgB
 QAFwASgBHAGUAZQByACwAIABqAGcAZQBlAHIALQB2AGEAaQBvMFwwDQYJKoZIhvcNAQEBBQADSwAw
 SAJBALj8sXCwD6vuPTc8A1sY+tFyGL7JF3iNb85wnEENElgNHHrcvbjYGRF4sPoALHK/HScf7z6a8
 WABkMeRidMeJ7UCAwEAATANBgkqhkiG9w0BAQQFAANBAIvbTV516CP9gRVp6HnSh6httGO14HXNJL
 IVi3NiaZ/GFVppqzVSBxcFvmGHaVz9BkBOOfjUscK7s92zuUjBQHTlqiFDUhLcZ5VxWB0zIZB6hFr
 j2RU7J0GcBdShUuCbLrUBAAAwggGxMIIBW6ADAgECAgSqpVpVMAwGCCqGSIb3DQIFBQAwYDERMA8G
 A1UEBx4IAE0AUwBNAFExCzAJBgNVBAoeAgAtMQswCQYDVQQLHgIALTExMC8GA1UEAx4oAEMATwBSA
 FAAXABKAEcAZQBlAHIALAAgAGoAZwBlAGUAcgAtAGgAcDAeFw0wNTA4MTgxODEzMjlaFw0xMzA4MT
 gxODEzMjlaMGAxETAPBgNVBAceCABNAFMATQBRMQswCQYDVQQKHgIALTELMAkGA1UECx4CAC0xMTA
 vBgNVBAMeKABDAE8AUgBQAFwASgBHAGUAZQByACwAIABqAGcAZQBlAHIALQBoAHAwXDANBgkqhkiG
 9w0BAQEFAANLADBIAkEAsU+XJ59U0CwIaRUJGCsntjM+vaqr7J/e5zcbTL4EscZug5NlnA7LouRvm
 ZmqXc+EWb9MjISnmvsj4m4tX0QIFQIDAQABMA0GCSqGSIb3DQEBBAUAA0EAfFhp9jo8hGw3aQAccT
 1KwqPa6VWDNrLUJIBYNn2fQWKLmNDb/N74/bpHbYNVGn0WXsto0IJ8b8KHNAK4RvM4yQ==
mSMQDigests:: 5aohQ1IS3GeVcVgdMyGQeg==
mSMQDigests:: Ec455CcKDcvzQWDtEvwZFA==
msNPAllowDialin: TRUE
lastLogonTimestamp: 128277612716718750
# search result
search: 4
result: 0 Success
# numResponses: 2
# numEntries: 1
 

10.8. Use Firefox to Single Sign-On Intranet Sites

When logged on an X11 desktop, you can access to GSS-aware applications such as Mozilla Firefox. Firefox is configured by default to not attempt a negotiation with any website. To override this behavior, go to about:config and change network.negotiate-auth.delegation-uris and network.negotiate-auth.trusted-uris to include a filter white list of URIs that the browser will attempt to negotiate a single sign-on with.  Among the broadest may be Error! Hyperlink reference not valid, which includes all standard web URIs.

Then, restart Firefox and point to a Windows authenticated web site, such as Sharepoint.

10.9. Configure FTP for SSO

You will need both a GSS-enabled FTP daemon and client.  This is part of the krb5-workstation package.  Once installed, you can enable the daemon by editing the disable line in /etc/xinet.d/gssftp to no and enabling the xinetd super server service:

Example from Red Hat or Fedora Core:

# default: off
# description: The kerberized FTP server accepts FTP connections \
#              that can be authenticated with Kerberos 5.
service ftp
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/kerberos/sbin/ftpd
        server_args     = -l -a
        log_on_failure  += USERID
        disable         = no
}

Example of an FTP single sign-on:

[johnyu@juser-linux ~]$ ftp juser-linux.corp.company.com
Connected to juser-linux.corp.company.com.
220 juserr-linux FTP server (Version 5.60) ready.
334 Using authentication type GSSAPI; ADAT must follow
GSSAPI accepted as authentication type
GSSAPI authentication succeeded
Name (juser-linux.corp.compay.com:johnyu):
232 GSSAPI user jgeer@CORP.COMPANY.COM is authorized as johnyu
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

10.10. Telnet

Here's an example of single sign-on using telnet:

[johnyu@juser-linux ~]$ telnet -a juser-linux.corp.company.com
Trying 127.0.0.2...
Connected to juser-linux.corp.company.com (127.0.0.2).
Escape character is '^]'.
[ Kerberos V5 accepts you as ``juser@CORP.COMPANY.COM'' ]
Last login: Mon Jul  2 18:36:39 from localhost.localdomain
[johnyu@juser-linux ~]$ id
uid=100013(johnyu) gid=100000(CORP\domain^users) groups=10(wheel),100000(CORP\domain^users),100005(CORP\vmadmins) context=system_u:system_r:unconfined_t
[johnyu@juser-linux ~]$

10.11. rlogin

Example from Red Hat or Fedora Core:

# default: off
# description: The kerberized rlogin server accepts BSD-style rlogin sessions, \
#              but uses Kerberos 5 authentication.
service klogin
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/kerberos/sbin/klogind
        server_args     = -5
        disable         = no
}
 

Example of rlogin single sign-on:

[johnyu@juser-linux ~]$ rlogin juser-linux.corp.company.com
Last login: Mon Jul  2 19:00:59 from juser-linux
[johnyu@juser-linux ~]$
 

10.12. rsh

You will need both a GSS-enabled rsh daemon and client.  This is part of the krb5 workstation package.  Once installed, you can enable the daemon by editing the disable line in /etc/xinet.d/kshell  to no and enabling the xinetd super server service:

Example from Red Hat or Fedora Core:

# default: off
# description: The kerberized rshell server accepts rshell commands \
#              authenticated and encrypted with Kerberos 5.
service kshell
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/kerberos/sbin/kshd
        server_args     = -e -5
        disable         = no
 

Example of rsh single sign-on:

[johnyu@juser-linux ~]$ rsh juser-linux.corp.company.com
Last login: Mon Jul  2 18:53:21 from juser-linux
[johnyu@juser-linux ~]$ id

10.13. Configure SSH for SSO

Although Likewise automatically configures OpenSSH to support SSO through Kerberos using GSSAPI, it is worthwhile to review how Likewise does so. Since you might need to configure other applications for SSO, understanding the process will make it easier to apply the technique to other applications.

Note: Not all versions of OpenSSH support Kerberos. Versions older than 4.2p1 might not work or might work improperly. For important information on Kerberos and GSSAPI support in OpenSSH, see http://www.sxw.org.uk/computing/patches/openssh.html.

The SSH Service Principal Name

The first thing that needs to be considered is the Kerberos service principal name (SPN) that is used by SSH and SSHD. The SPN is a string that identifies the service for which an authentication ticket is to be generated. In the case of SSH, the SPN has the form:

host/<server name>@<REALMNAME>

For example, when a user uses ssh to connect to a computer named fozzie.mycorp.com, the ssh program requests a service ticket for the SPN:

host/fozzie.mycorp.com@MYCORP.COM

Note: The Kerberos realm is the computer's domain name in uppercase letters.

System Keytab Generation

In order for Microsoft Active Directory to generate a Kerberos ticket for this SPN, a service account must exist for it. Additionally, a keytab must be created for the service account and placed on the sshd server.Likewise completely automates this operation. When a Linux or Unix computer is joined to AD, a machine account is created for the computer. If the computer is called fozzie, a machine account called fozzie$ is created in AD. Likewise then automatically creates a keytab for the SPN and places it in the standard system location (typically, /etc/krb5.keytab).

User Keytab Generation

When the user runs the ssh program and OpenSSH determines that it will use Kerberos authentication, it will need to access a keytab for the user so that it can obtain a service ticket for the service/computer to which it is trying to connect. This keytab must be created using the user's account name and password. Manually, this can be performed by using the Linux/UNIX kinit utility. Likewise, however, does it automatically when the user logs on the computer. On most systems, the user keytab is placed in the /tmp directory and named krb5cc_UID where UID is the numeric user ID assigned by the system.

Configuring OpenSSH

Likewise automatically configures OpenSSH at both the client and server computer. On the client, the ssh_config file (typically in /etc/ssh/ssh_config) is modified. On the server, sshd_config (typically in /etc/ssh/sshd_config) is modified. Likewise adds the following lines of code to the appropriate files if they are not already present and if they are required by the system's version of sshd:

In the server, the following lines must be present in sshd_config:

GSSAPIAuthentication yes GSSAPICleanupCredentials yes

On the client, the following line must be present in ssh_config:

GSSAPIAuthentication yes

On the client, GSSAPIDelegateCredentials yes is an optional setting that instructs the ssh client to delegate the krb5 TGT to the destination machine when SSH single sign-on is used.

In addition, if any of the following options are valid for the system's version of sshd, they are required and configured by Likewise:

ChallengeResponseAuthentication yes UsePAM yes PAMAuthenticationViaKBDInt yes KbdInteractiveAuthentication yes

Setting these options to yes instructs SSH to use the kbdinteractive ssh authentication mechanism and allows that mechanism to use PAM -- settings that are required for Likewise to function properly.

For more information, see the man pages for ssh, sshd, and the comments in the ssh and sshd configuration files.

Testing SSO

With OpenSSH properly configured, demonstrating SSO support is simple. Log on a Linux or Unix machine (that is running Likewise) using Active Directory credentials and then use ssh to connect to another machine (also running Likewise). OpenSSH should establish a connection without prompting for a username or password.

Chapter 11. Contacting Technical Support

11.1. Contact Support

For either post-sales technical support or for free technical support during an evaluation period, please visit the Likewise support web page at http://www.likewise.com/support/. You can use the support web page to register for support, submit incidents, and receive direct technical assistance.

Technical support may ask for your Likewise version, Linux or Unix version, and Microsoft Windows version. To find the Likewise Enterprise product version, in the Likewise Console, on the menu bar, click Help, and then click About.

11.2. Provide Diagnostic Information to Technical Support

When you work with Likewise technical support staff to troubleshoot a problem, it is useful to provide a set of information to help solve the problem. The list below outlines the information that, as a best practice, you should collect and provide to Likewise technical support staff.

Information for All Problems

  1. Operating system version.

  2. Likewise version and build number. See Check the Version and Build Number.

 

Problem: Segmentation Faults

  1. Core dump of the Likewise application:

    ulimit - c unlimited

  2. Exact patch level or exact versions of all installed packages. See Check the Version and Build Number.

 

Problem: Program Freezes

  1. Debug logs.

  2. tcpdump.

  3. An strace of the program.

 

Problem: Domain Join Errors

  1. Debug logs. See Generate a Domain-Join Log.

  2. tcpdump.

See Solve Domain-Join Problems.

 

Problem: All Active Directory Users Are Missing

  1. Run /opt/likewise/bin/lw-get-status

    See Get the Status of the Authentication Providers.

  2. Contents of nsswitch.conf.

See Solve Logon Problems on Linux or Unix.

 

Problem: All Active Directory Users Cannot Log On

  1. Output of id <user>

  2. Output of su -c 'su <user>' <user>

  3. Lsass debug logs. See Generate an Authentication Agent Debug Log.

  4. Contents of pam.d/pam.conf.

  5. The sshd and ssh debug logs and syslog.

 

Problem: AD Users or Groups Are Missing

  1. The debug logs for lsass.

  2. Output for getent passwd or getent group for the missing object.

  3. Output for id <user> if user.

  4. tcpdump.

  5. Copy of lsass cache file. For the file name and location of the cache files, see About the Likewise Agent.

 

Problem: Poor Performance When Logging On or Looking Up Users

  1. Output of id <user>

  2. The lsass debug log.

  3. Copy of lsass cache file. For the file name and location of the cache files, see About the Likewise Agent.

  4. tcpdump.

Chapter 12. Legal Disclaimer and Copyright Notice

The information contained in these documents represents the current view of Likewise Software on the issues discussed as of the date of publication. Because Likewise Software must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Likewise, and Likewise Software cannot guarantee the accuracy of any information presented after the date of publication.

These documents are for informational purposes only. LIKEWISE SOFTWARE MAKES NO WARRANTIES, EXPRESS OR IMPLIED.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in, or introduced into a retrieval system, or transmitted in any form, by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Likewise Software.

Likewise may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Likewise, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

The Likewise Open software is free to download and use according to the terms of the Limited GPL 2.1 for client libraries and the GPL 2 for daemons. The licenses for Likewise Enterprise and for Likewise UID-GID Module are different. For complete information on the software licenses and terms of use for Likewise products, see www.likewise.com.

Likewise and the Likewise logos are either registered trademarks or trademarks of Likewise Software in the United States and/or other countries. All other trademarks are property of their respective owners.

Likewise Software
15395 SE 30th Place, Suite 140
Bellevue, WA 98007
USA

Terms of Use.

For more information, contact info@likewise.com or visit www.Likewise.com.

Copyright © 2009 Likewise Software. All rights reserved.