LDAP Account Manager - ManualOverviewLDAP Account Manager (LAM) manages user, group and host accounts in
an LDAP directory. LAM runs on any webserver with PHP5 support and
connects to your LDAP server unencrypted or via SSL/TLS.Currently LAM supports these account types: Samba 3, Unix, Kolab 2,
address book entries, NIS mail aliases and MAC addresses. There is a tree
viewer included to allow access to the raw LDAP attributes. You can use
templates for account creation and use multiple configuration profiles.
LAM is translated to Catalan, Chinese (Traditional + Simplified), Czech,
Dutch, English, French, German, Hungarian, Italian, Japanese, Polish,
Portuguese, Russian and Spanish.http://www.ldap-account-manager.org/Copyright (C) 2003 - 2011Michael Duergner <michael@duergner.com>Roland Gruber <post@rolandgruber.de>Tilo Lutz <tilolutz@gmx.de>Key features:managing user/group/host/domain entriesaccount profilesaccount creation via file uploadmultiple configuration profilesLDAP browserschema browserOU editorPDF export for all accountsmanage user/group Quota and create home directoriesRequirements:PHP5 (>= 5.2.4)Openldap (2.0 or greater)A recent web browser that supports CSS2 and JavaScript, at
minimum:Firefox 3Internet Explorer 8 (compatibility
mode turned off)Opera 10The default password to edit the configuration options is
"lam".License:LAM is published under the GNU General Public License. The complete
list of licenses can be found in the copyright file.Default password:The default password for the LAM configuration is "lam".
Have fun!
The LAM development teamArchitectureThere are basically two groups of users for LAM:LDAP administrators and support
staff:These people administer LDAP entries like user accounts, groups,
...Users:This includes all people who need to manage their own data
inside the LDAP directory. E.g. these people edit their contact
information with LAM self service (LAM Pro).Therefore, LAM is split into two separate parts, LAM for admins and
for users. LAM for admins allows to manage various types of LDAP entries
(e.g. users, groups, hosts, ...). It also contains tools like batch
upload, account profiles, LDAP schema viewer and an LDAP browser. LAM for
users focuses on end users. It provides a self service for the users to
edit their personal data (e.g. contact information). The LAM administrator
is able to specify what data may be changed by the users. The design is
also adaptable to your corporate design.LAM for admins/users is accessible via HTTP(S) by all major web
browsers (Firefox, IE, Opera, ...).LAM runtime environment:LAM runs on PHP. Therefore, it is independant of CPU architecture
and operating system (OS). You can run LAM on any OS which supports Apache
or other PHP compatible web servers.Home directory server:You can manage user home directories and their quotas inside LAM.
The home directories may reside on the server where LAM is installed or
any remote server. The commands for home directory management are secured
by SSH. LAM will use the user name and password of the logged in LAM
administrator for authentication.LDAP directory:LAM connects to your LDAP server via standard LDAP protocol. It also
supports encrypted connections with SSL and TLS.InstallationNew installationRequirementsLAM has the following requirements to run:Apache webserver (SSL recommended) with PHP module (PHP 5
(>= 5.2.4) with ldap, gettext, xml and optional mcrypt)Some LAM plugins may require additional PHP extensions (you
will get a note on the login page if something is missing)Perl (optional, needed only for lamdaemon)OpenLDAP (>2.0)A web browser :-)MCrypt will be used to store your LDAP password encrypted in the
session file.See LDAP schema fles for
information about used LDAP schema files.Prepackaged releasesLAM is available as prepackaged version for various
platforms.DebianLAM is part of the official Debian repository. New
releases are uploaded to unstable and will be available
automatically in testing and the stable releases. You can
runapt-get
install ldap-account-managerto install LAM
on your server. Additionally, you may download the latest
LAM Debian packages from the LAM
homepage or the Debian
package homepage.Installation of the latest packages on Debian
Lennyapt-get install javascript-commonDownload the jquery and jquery-ui packages from
here:http://packages.debian.org/squeeze/all/libjs-jquery/downloadhttp://packages.debian.org/squeeze/all/libjs-jquery-ui/downloadInstall first jquery and then jquery-ui:dpkg -i libjs-jquery_*.debdpkg -i libjs-jquery-ui_*.debInstall the LAM packagedpkg -i ldap-account-manager_*.debInstall the lamdaemon package (optional)dpkg -i
ldap-account-manager-lamdaemon_*.debSuse/FedoraThere are RPM packages available on the LAM
homepage. The packages can be installed with this
commandrpm -i <path to LAM
package>Other RPM based distributionsThe RPM packages for Suse/Fedora are very generic and should
be installable on other RPM-based distributions, too. The Fedora
packages use apache:apache as file owner and the Suse ones use
wwwrun:www.FreeBSDLAM is part of the official FreeBSD ports tree. For
more details see these pages:FreeBSD-CVS: http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/ldap-account-managerFreshPorts:
http://www.freshports.org/sysutils/ldap-account-managerInstalling the tar.gzExtract the archivePlease extract the archive with the following command:tar xzf ldap-account-manager-<version>.tar.gzInstall the filesManual copyCopy the files into the html-file scope of the web server.
For example /apache/htdocs.Then set the appropriate file permissions:lam/sess: write permission for apache userlam/tmp: write permission for apache userlam/config (with subdirectories): write permission for
apache userlam/lib: lamdaemon.pl must be set executable (See also
docs/readme.lamdeamon.txt)With configure scriptInstead of manually copying files you can also use the
included configure script to install LAM. Just run these commands
in the extracted directory:./configuremake installOptions for "./configure":--with-httpd-user=USER USER is the name of your Apache
user account (default httpd)--with-httpd-group=GROUP GROUP is the name of your
Apache group (default httpd)--with-web-root=DIRECTORY DIRECTORY is the name where
LAM should be installed (default /usr/local/lam)Configuration filesCopy conf/config.cfg_sample to conf/config.cfg and
conf/lam.conf_sample to conf/lam.conf. Open the index.html in your
web browser:Follow the link "LAM configuration" from the start page to
configure LAM.Select "Edit general settings" to setup global settings
and to change the master
configuration password (default is "lam").Select "Edit server profiles" to setup your server
profiles. There should be the lam profile which you just copied
from the sample file. The default password is "lam". Now change
the settings to fit for your environment.System configurationPHPLAM runs with PHP5 (>= 5.2.4). Needed changes in your
php.ini:memory_limit = 64MIf you run PHP with activated Suhosin
extension please check your logs for alerts. E.g. LAM requires that
"suhosin.post.max_name_length" is increased.Locales for non-English translationIf you want to use a translated version of LAM be sure to
install the needed locales. The following table shows the needed
locales for the different languages.
LocalesLanguageLocaleCatalanca_ES.utf8Chinese (Simplified)zh_CN.utf8Chinese (Traditional)zh_TW.utf8Czechcs_CZ.utf8Dutchnl_NL.utf8Englishno extra locale neededFrenchfr_FR.utf8Germande_DE.utf8Hungarianhu_HU.utf8Italianit_IT.utf8Japaneseja_JP.utf8Polishpl_PL.utf8Portuguesept_BR.utf8Russianru_RU.utf8Spanishes_ES.utf8
You can get a list of all installed locales on your system by
executing:locale -aDebian users can add locales with "dpkg-reconfigure
locales".Upgrading LAM or migrate from LAM to LAM ProMigrating configuration filesFirst, you need to make a backup of your existing configuration
files.LAM stores all configuration files in the "config" folder.
Please backup the following files and copy them after the new version
is installed.config/*.confconfig/config.cfgconfig/pdf/*.xmlconfig/profiles/*.xmlLAM Pro only:config/selfService/*.*config/passwordMailTemplate.txtSecond, uninstall your
current LAM (Pro) installation.Third, install the new LAM
(Pro) release. Skip the part about setting up LAM configuration
files.Finally, restore your configuration files from the backup. Copy
all files from the backup folder to the config folder in your LAM Pro
installation. Do not simply replace the folder because the new LAM
(Pro) release might include additional files in this folder. Overwrite
any existing files with your backup files.Now open your webbrowser and point it to the LAM login page. All
your settings should be migrated.Please check also the version
specific instructions. They might include additional
actions.Version specific upgrade instructions3.2.0 -> 3.3.0If you use custom images for the PDF export then these images
need to be 5 times bigger than before (e.g. 250x250px instead of
50x50px). This allows to use images with higher resolution.3.1.0 -> 3.2.0No changes.3.0.0 -> 3.1.0LAM supported to set a list of valid workstations on the
"Personal" page. This required to change the LDAP schema. Since
3.1.0 this is replaced by the new "Hosts" module for users.Lamdaemon: The sudo entry needs to be changed to
".../lamdaemon.pl *".2.3.0 -> 3.0.0No changes.2.2.0 -> 2.3.0LAM Pro: There is now a
separate account type for group of (unique) names. Please edit your
server profiles to activate the new account type.1.1.0 -> 2.2.0No changes.Uninstalltion of LAM (Pro)If you used the prepackaged installation packages then remove the
ldap-account-manager and ldap-account-manager-lamdaemon packages.Otherwise, remove the folder where you installed LAM via configure
or by copying the files.ConfigurationAfter you installed LAM you
can configure it to fit your needs. The complete configuration can be done
inside the application. There is no need to edit configuration
files.Please point you browser to the location where you installed LAM.
E.g. for Debian/RPM this is http://yourServer/lam. If you installed LAM
via the tar.gz then this may vary. You should see the following
page:If you see an error message then you might need to install an
additional PHP extension. Please follow the instructions and reload the
page afterwards.Now you are ready to configure LAM. Click on the "LAM configuration"
link to proceed.Here you can change LAM's general settings, setup server profiles
for your LDAP server(s) and configure the self service (LAM Pro). You should start
with the general settings and then setup a server profile.General settingsAfter selecting "Edit general settings" you will need to enter the
master configuration password.
The default password for new installations is "lam". Now you can edit
the general settings.Security settingsHere you can set a time period after which inactive sessions are
automatically invalidated. The selected value represents minutes of
inactivity.You may also set a list of IP addresses which are allowed to
access LAM. The IPs can be specified as full IP (e.g. 123.123.123.123)
or with the "*" wildcard (e.g. 123.123.123.*). Users which try to
access LAM via an untrusted IP only get blank pages.Password policyThis allows you to specify a central password policy for LAM.
The policy is valid for all password fields inside LAM admin
(excluding tree view) and LAM self service. Configuration passwords do
not need to follow this policy.You can set the minimum password length and also the complexity
of the passwords.LoggingLAM can log events (e.g. user logins). You can use system
logging (syslog for Unix, event viewer for Windows) or log to a
separate file. Please note that LAM may log sensitive data (e.g.
passwords) at log level "Debug". Production system should be set to
"Warning" or "Error".Change master passwordIf you would like to change the master configuration password
then enter a new password here.Server profilesThe server profiles store information about your LDAP server (e.g.
host name) and what kind of accounts (e.g. users and groups) you would
like to manage. There is no limit on the number of server profiles. See
the typical scenarios about
how to structure your server profiles.Manage server profilesSelect "Manage server profiles" to open the profile management
page.Here you can create, rename and delete server profiles. The
passwords of your server
profiles can also be reset.You may also specify the default server profile. This is the
server profile which is preselected at the login page. It also
specifies the language of the login and configuration pages.You can create a new server profile by simply entering its name
and password. After you created a new profile you can go back to the
profile login and edit your new server profile.All operations on the profile management page require that you
authenticate yourself with the configuration master
password.Editing a server profilePlease select you server profile and enter its password to edit
a server profile.Each server profile contains the following information:General settings: general
settings about your LDAP server (e.g. host name and security
settings)Account types: list of
account types (e.g. users and groups) that you would like to
manage and type specific settings (e.g. LDAP suffix)Modules: list of modules
which define what account aspects (e.g. Unix, Samba, Kolab) you
would like to manageModule settings: settings
which are specific for the selected account modules on the page
beforeGeneral settingsHere you can specify the LDAP server and some security
settings.The server address of your LDAP server can be a DNS name or an
IP address. Use ldap:// for unencrypted LDAP connections or TLS
encrypted connections. LDAP+SSL (LDAPS) encrypted connections are
specified with ldaps://. The port value is optional. TLS cannot be
combined with ldaps://.LAM includes an LDAP browser which allows direct modification
of LDAP entries. If you would like to use it then enter the LDAP
suffix at "Tree suffix".The search limit is used to reduce the number of search
results which are returned by your LDAP server.The access level specifies if LAM should allow to modify LDAP
entries. This feature is only available in LAM Pro. LAM non-Pro
releases use write access. See this page for details on
the different access levels.LAM is translated to many different languages. Here you can
select the default language for this server profile. The language
setting may be overriden at the LAM login page.LAM can manage user home directories and quotas with an
external script. You can specify the home directory server and where
the script is located. The default rights for new home directories
can be set, too.LAM supports two methods for login. You may either specify a
fixed list of LDAP DNs or let LAM search for the DN in your
directory. E.g. if a user logs in with the user name "joe" then LAM
will do an LDAP search for this user name. When it finds a matching
DN then it will use this to authenticate the user. The wildcard
"%USER%" will be replaced by "joe" in this example. This way you can
provide login by user name, email address or other LDAP
attributes.You may also change the password of this server
profile.Account typesLAM supports to manage various types of LDAP entries (e.g.
users, groups, DHCP entries, ...). On this page you can select which
types of entries you want to manage with LAM.The section at the top shows a list of possible types. You can
activate them by simply clicking on the plus sign next to it.Each account type has the following options:LDAP suffix: the LDAP
suffix where entries of this type should be managedList attributes: a list
of attributes which are shown in the account listsOn the next page you can specify in detail what extensions
should be enabled for each account type.ModulesThe modules specify the active extensions for each account
type. E.g. here you can setup if your user entries should be address
book entries only or also support Unix or Samba.Each account type needs a so called "base module". This is the
basement for all LDAP entries of this type. Usually, it provides the
structural object class for the LDAP entries. There must be exactly
one active base module for each account type.Furthermore, there may be any number of additional active
account modules. E.g. you may select "Personal" as base module and
Unix + Samba as additional modules.Module settingsDepending on the activated account modules there may be
additional configuration options available. They can be found on the
"Module settings" tab. E.g. the Personal account module allows to
hide several input fields and the Unix module requires to specify
ranges for UID numbers.Typical scenariosThis is a list of typical scenarios how your LDAP environment
may look like and how to structure the server profiles for it.Simple: One LDAP directory managed by a small group of
adminsThis is the easiest and most common scenario. You want to
manage a single LDAP server and there is only one or a few admins.
In this case just create one server profile and you are done. The
admins may be either specified as a fixed list or by using an LDAP
search at login time.Advanced: One LDAP server which is managed by different admin
groupsLarge organisations may have one big LDAP directory for all
user/group accounts. But the users are managed by different groups
of admins (e.g. departments, locations, subsidiaries, ...). The
users are typically divided into organisational units in the LDAP
tree. Admins may only manage the users in their part of the
tree.In this situation it is recommended to create one server
profile for each admin group (e.g. department). Setup the LDAP
suffixes in the server profiles to point to the needed
organisational units. E.g. use
ou=people,ou=department1,dc=company,dc=com or
ou=department1,ou=people,dc=company,dc=com as LDAP suffix for users.
Do the same for groups, hosts, ... This way each admin group will
only see its own users. You may want to use LDAP search for the LAM
login in this scenario. This will prevent that you need to update a
server profile if the number of admins changes.Attention: LAM's feature to
automatically find free UIDs/GIDs for new users/groups will not work
in this case. LAM uses the user/group suffix to search for already
assigned UIDs/GIDs. As an alternative you can specify different
UID/GID ranges for each department. Then the UIDs/GIDs will stay
unique for the whole directory.Multiple LDAP serversYou can manage as many LDAP servers with LAM as you wish. This
scenario is similar to the advanced scenario above. Just create one
server profile for each LDAP server.Single LDAP directory with lots of users (>10 000)LAM was tested to work with 10 000 users. If you have a lot
more users then you have basically two options.Divide your LDAP tree in organisational units: This is
usually the best performing option. Put your accounts in several
organisational units and setup LAM as in the advanced scenario
above.Increase memory limit: Increase the memory_limit parameter
in your php.ini. This will allow LAM to read more entries. But
this will slow down the response times of LAM.Managing entries in your LDAP directoryThis chapter will give you instructions how to manage the different
LDAP entries in your directory.Please note that not all account types are manageable with the free
LAM release. LAM Pro provides some more account types and modules to
support additional LDAP object classes.Additional types:Group of namesAliasesNIS objectsSudo rolesAdditional modules:Group of names (groupOfNames)Group of unique names (groupOfUniqueNames)Unix (rfc2307bisPosixGroup)Alias (aliasEntry)User name (uidObject)NIS object (nisObject)Custom scripts (customScripts)Sudo role (sudoRole)Basic page layout:After the login LAM will present you its main page. It consists of a
header part which is equal for all pages and the content area which covers
most the of the page.The header part includes the links to manage all account types (e.g.
users and groups) and open the tree view (LDAP browser). There is also the
logout link and a tools entry.When you login the you will see an account listing in the content
area.Here you can create, delete and modify accounts. Use the action
buttons at the left or double click on an entry to edit it.The suffix selection box allows you to list only the accounts which
are located in a subtree of your LDAP directory.You can change the number of shown entries per page with "Change
settings". Depending on the account type there may be additional settings.
E.g. the user list can convert group numbers to group names.When you select to edit an entry then LAM will show all its data on
a tabbed view. There is one tab for each functional part of the account.
You can set default values by loading an account profile.UsersPersonalThis module is the most common basis for user accounts in LAM.
You can use it stand-alone to manage address book entries or in
combination with Unix, Samba or other modules.The Personal module provides support for managing various
personal data of your users including mail addresses and telephone
numbers. You can also add photos of your users. If you do not need to
manage all attributes then you can deactivate them in your server
profile.
UnixThe Unix module manages Unix user accounts including group
memberships.ShadowLAM supports the management of the LDAP substitution of
/etc/shadow. Here you can setup password policies for your Unix
accounts and also view the last password change of a user.HostsYou can specify a list of valid host names where the user may
login. If you add the value "*" then the user may login to any host.
This can be further restricted by adding explicit deny entries which
are prefixed with "!" (e.g. "!hr_server").Please note that your PAM settings need to support host
restrictions.Samba 3LAM supports full Samba 3 user management including logon hours
and terminal server options.QuotaYou can manage file system quotas with LAM. This requires to
setup lamdaemon. File system quotas
are not stored inside LAM but managed directly on the specified
servers.KolabThis module supports to manage Kolab accounts with LAM. E.g. you
can set the user's mail quota and define invitation policies.Please enter an email address at the Personal page and set a
Unix password first. Both are required that Kolab accepts the
accounts.Kolab users should not be directly deleted with LAM. You can
mark an account for deletion which then is done by the Kolab server
itself. This makes sure that the mailbox etc. is also deleted.phpGroupWareYou may manage several attributes of phpGroupWare users inside
LAM. This includes the expiration date and account status. You may
also check when the user logged in the last time and from
where.AsteriskLAM supports Asterisk accounts, too. See the Asterisk section for details.EDU personEDU person accounts are mainly used in university networks. You
can specify the principal name, nick names and much more.Password policy (LAM Pro)OpenLDAP supports the ppolicy overlay
to manage password policies for LDAP entries. LAM Pro supports managing the policies and assigning them to
user accounts.Please add the account type "Password policies" to your LAM
server profile and activate the "Password policy" module for the user
type.You can assign any password policy which is found in the LDAP
suffix of the "Password policies" type. When you set the policy to
"default" then OpenLDAP will use the default policy as defined in your
slapd.conf file.Mail routingLAM supports to manage mail routing for user accounts. You can
specify a routing address, the mail server and a number of local
addresses to route. This feature can be activated by adding the "Mail
routing" module to the user account type in your server
profile.SSH keysYou can manage your public keys for SSH in LAM if you installed
the LPK patch for
SSH. Activate the "SSH public key" module for users in the
server profile and you can add keys to your user entries.IMAP mailboxesLAM may create and delete mailboxes on an IMAP server for your
user accounts. You will need an IMAP server that supports either SSL
or TLS for this feature.To activate the mailbox management module please add the
"Mailbox (imapAccess)" module for the type user in your LAM server
profile:Now configure the module on the tab "Module settings". Here you
can specify the IMAP server name, encryption options, the
authentication for the IMAP connection and the valid mail domains. LAM
can use either your LAM login password for the IMAP connection or
display a dialog where you need to enter the password. The mail
domains specify for which accounts mailboxes may be created/deleted.
E.g. if you enter "lam-demo.org" then mailboxes can be managed for
"user@lam-demo.org" but not for "user@example.com".You need to install the SSL certificate of the CA that signed
your server certificate. This is usually done by installing the
certificate in /etc/ssl/certs. Different Linux distributions may offer
different ways to do this. For Debian please copy the certificate in
"/usr/local/share/ca-certificates" and run "update-ca-certificates" as
root.It is not recommended to disable the validation of IMAP server
certificates.When you edit an user account then you will now see the tab
"Mailbox". Here you can create/delete the mailbox for this
user.AccountThis is a very simple module to manage accounts based on the
object class "account". Usually, this is used for host accounts only.
Please pay attention that users based on the "account" object class
cannot have contact information (e.g. telephone number) as with
"inetOrgPerson".You can enter a user/host name and a description for your
accounts.GroupsUnixThis module is used to manage Unix group entries. This is the
default module to manage Unix groups and uses the nis.schema. Suse
users who use the rfc2307bis.schema need to use LAM Pro.Unix groups with rfc2307bis schema (LAM Pro)Some applications (e.g. Suse Linux) use the rfc2307bis schema
for Unix accounts instead of the nis schema. In this case group
accounts are based on the object class groupOf(Unique)Names. The object class
is auxiliary in this case.LAM Pro supports these groups with a special account module:
rfc2307bisPosixGroupUse this module only if your system depends on the rfc2307bis
schema. The module can be selected in the LAM configuration.Samba 3LAM supports managing Samba 3 groups. You can set special group
types and also create Windows predefined groups like "Domain
admins".phpGroupWareLAM can add and remove the phpGroupWare extension for group
accounts. There are no additional attributes that may be
managed.QuotaYou can manage file system quotas with LAM. This requires to
setup lamdaemon. File system quotas
are not stored inside LAM but managed directly on the specified
servers.HostsAccountPlease see the description here.Device (LAM Pro)The device object class allows to manage general information
about all sorts of devices (e.g. computers, network hardware, ...).
You can enter the serial number, location and a describing text. It is
also possible to specify the owner of the device.Samba 3You can manage Samba 3 host entries by adding the Unix and Samba
3 account modules.IP addresses (LAM Pro)You can manage the IP addresses of host accounts with the ipHost
module. It manages the following information:IP addresses (IPv4/IPv6)location of the hostmanager: the person who is responsible for the hostYou can activate this extension by adding the module ipHost to
the list of active host modules.MAC addressesHosts can have an unlimited number of MAC addresses. To enable
this feature just add the "MAC address" module to the host account
type.Samba 3 domainsSamba 3 stores information about its domain settings inside LDAP.
This includes the domain name, its SID and some policies. You can manage
all these attributes with LAM.Please activate the account type "Samba domains" in your LAM
server profile. Please notice that Samba by default uses the LDAP root
for domain objects (e.g. dc=example,dc=com).This will add a new tab to LAM where you can manage domain
information.The domain name, SID and RID base can only be specified for new
domains and are not changeable via LAM at a later time. You may setup
several password policies for your Samba domains and also some RID
options that influence the creation of SIDs for
users/groups/hosts.Group of (unique) names (LAM Pro)These classes can be used to represent group relations. Since they
allow DNs as members you can also use them to represent nested groups.
Activate the account type "Group of names" in your LAM server profile to
use these account modules.Group of (unique) names have four basic attributes:Name: a unique name for the groupDescription: optional descriptionOwner: the account which owns this group (optional)Members: the members of the group (at least one is
required)You can add any accounts as members. This includes other groups
which leads to nested groups.AsteriskLAM includes large support for Asterisk. You can add Asterisk
extensions (including voicemail) to your users and also manage Asterisk
extensions.The Asterisk support for users can be added by selecting the
Asterisk and Asterisk voicemail modules for users in your LAM server
profile. This will add the following tabs to your user accounts.If you also want to manage Asterisk extensions then simply add the
account type "Asterisk extensions" and its module to your server
profile.Zarafa (LAM Pro)Zarafa is an OpenSource collaboration software. LAM pro provides
support to manage Zarafa server entries, users and groups. LAM covers
all settings for these types including resource and quota
settings.ConfigurationTo enable Zarafa support in LAM Pro please activate the Zarafa
modules for the Users, Groups and Hosts account types in you server
profile:You can configure which parts of the Zarafa user options should
be enabled. E.g. if you do not want to manage quotas per user then you
can hide these options on the tab "Module settings"."Send as" attribute: Here you
can specify how "Send as" privileges should be managed. LAM supports
"uid" and "dn".If you select "uid" the LAM will store user names in the
zarafaSendAsPrivilege attribute. This way you are restricted to
specify user accounts as "Send as" allowed.You can also set this option to "dn" and LAM will store DNs in
the zarafaSendAsPrivilege attribute. In this case you may specify
users and groups as "Send as" allowed.Examples for your Zarafa ldap.cfg:"Send as" attribute: dnldap_user_sendas_attribute_type = dn"Send as" attribute: uidldap_user_sendas_attribute_type = textldap_user_sendas_relation_attribute = uidUsersThis is an example of the user edit page with all possible
settings. This includes email settings, quotas and some options
(e.g. hide from address book). You can also set the resource type
and capacity for meeting rooms and equipment. The Zarafa extension
can be added and removed at any time for every user.GroupsThis is the edit page for groups. You can enter an email
address and additional aliases for your groups. It is also possible
to specify options (e.g. hide from address book). The extension can
be added/removed dynamically.ServersThe Zarafa extension for host accounts allows to set the
connection ports and file path. You can add/remove the extension at
any time.DHCPYou can mange your DHCP server with LAM. It supports to manage
subnets, fixed IP entries, IP ranges and DDNS. The DHCP can be activated
by adding the account type DHCP to your server profile. Please also add
the DHCP modules. LAM requires that you use an LDAP entry with the
object class "dhcpServer" as suffix for this account type.You can also change the settings of your DHCP server entry:You can easily create new subnet entries.It is also possible to specify a list of fixed IPs.IP ranges may be specified.If you activated DDNS in the server entry then you may also
specify the DDNS settings for this subnet.Aliases (LAM Pro)Some applications use the object class "alias" to link LDAP
entries to other parts of the LDAP tree. Activate the account type
"Aliases" in your LAM server profile to use this account type.Currently, only user accounts can be aliased with the "uidObject"
object class.Mail aliasesYou can manage mail aliases (e.g. for NIS) inside LAM. This can be
used to replace local /etc/aliases files with LDAP.All accounts of this type are based on the "nisMailAlias" object
class and may have "cn" and "rfc822MailMember" attributes. To activate
this type please add "Mail aliases" in your LAM server profile:The mail aliases will appear as separate tab inside LAM. You may
then manage the aliases with their names and recipient addresses.NIS net groupsLAM supports to define NIS netgroups. You can use them e.g. to
restrict SSH access to your machines.Add the NIS net group account type and its module to your server
profile. Then you can manage net groups in LAM. Net groups may contain
other net groups as child groups. You can either insert the host/user
names manually or print the search buttons next to the input fields to
find existing entries in your directory.NIS objects (LAM Pro)You can manage NIS objects with LAM Pro. This allows you define
network mount points in LDAP.Add the NIS objects type to your LAM configuration and then the
NIS objects module. This will add the NIS objects tab to LAM.Password policies (LAM Pro)OpenLDAP supports the ppolicy overlay
to manage password policies for LDAP entries. This allows you to set
password policies which are independent from your applications. The
policies are managed internally by the LDAP server.You can manage these policies with LAM Pro with the account type
"Password policies".You will need to add the ppolicy schema to your OpenLDAP
configuration and activate the ppolicy overlay
module in slapd.conf to use this feature.Custom scripts (LAM Pro)LAM Pro allows you to execute scripts whenever an account is
created, modified or deleted. This can be useful to automate processes
which needed manual work afterwards (e.g. sending your user a welcome
mail or register a mailbox). To activate this feature please add the
"Custom scripts" module to all needed account types on the configuration
pages.You can specify multiple scripts for each action type (e.g.
modify) and account type (e.g. user). The scripts need to be located on
the filesystem of your webserver and will be executed in its user
environment. E.g. if you webserver runs as user www-data with the group
www-data then the custom scripts will be run under this user with his
rights. The output of the scripts will be shown in LAM.You can specify the scripts on the LAM configuration pages.Syntax:Please enter one script per line. Each line has the following
format: <account type> <action> <script>E.g.: user preModify /usr/bin/myCustomScript -u $uid$Account types:You can setup scripts for all available account types (e.g. user,
group, host, ...). Please see the help on the configuration page about
your current active account types.Actions:
Action typesAction nameDescriptionpreCreateexecuted before creating a new account (cancels operation
if a script returns an exit code > 0)postCreateexecuted after creating a new accountpreModifyexecuted before the account is modified (cancels
operation if a script returns an exit code > 0)postModifyexecuted after an account was modifiedpreDeleteexecuted before an account was modified (cancels
operation if a script returns an exit code > 0)postDeleteexecuted after an account was modified
Script:You can execute any script which is located on the filesystem of
your webserver. The path may be absolute or relative to the
PATH-variable of the environment of your webserver process. It is also
possible to add commandline arguments to your scripts. Additionally, LAM
will resolve wildcards to LDAP attributes. If your script includes an
wildcard in the format $ATTRIBUTE$ then LAM will replace it with the
attribute value of the current LDAP entry. The values of multi-value
attributes are separated by commas. E.g. if you create an account with
the attribute "uid" and value "steve" then LAM will resolve "$uid$" to
"steve".Output may contain HTML: If your
scripts generate HTML output then activate this option.Hide command in messages: You may
want to prevent that your users see the executed commands. In this case
activating this option will only show the command output but not the
command itself.You can see a preview of the commands which will be executed on
the "Custom scripts" tab.Sudo roles (LAM Pro)You can manage your sudo roles in LDAP if you have installed the
sudo-ldap package or compiled sudo with LDAP
support. To activate sudo management in LAM Pro edit your server
profile and add the type "Sudo roles".The sudo roles in LDAP work similar to those in /etc/sudoers. You
can specify who may run which commands as which user. It is also
possible to specify options like NOPASSWD.Tree view (LDAP browser)The tree view provides a raw view on your LDAP directory. This
feature is for people who are experienced with LDAP and need special
functionality which the LAM account modules not provide. E.g. if you
want to add a special object class to an account or edit attributes
ignoring LAM's syntax checks.There are also some special functions available:Export: This allows you to export
entries to a file (e.g. LDIF or CSV format).Show internal attributes: Shows
internal attributes of the current entry. This includes information
about the creator and creation time of the entry.Typical usage scenariosHere is a list of typical usage scenarios and what account types
and modules you need to configure.Address book entries:Account types:Users (Personal)Unix accounts:Account types:Users (Personal + Unix)Groups (Unix (posixGroup))Suse users may need to use Group (Group of names + Unix
(rfc2307bisPosixGroup)) because of Suse's special LDAP schema.Samba accounts:Account types:Users (Personal + User + Samba 3)Groups (Unix + Samba 3)Hosts (Account + Unix + Samba 3)Samba domains (Samba domain)Asterisk:Account types:Users (Personal + Asterisk)Asterisk extensions (Asterisk extension)phpGroupWare:Account types:Users (Personal + Unix + phpGroupWare)Groups (Unix + phpGroupWare)Zarafa:Account types:Users (Personal + Unix + Zarafa)Groups (Unix + Zarafa)Hosts (Device + Zarafa + IP Address)ToolsProfile editorThe account profiles are templates for your accounts. Here you can
specify default values which can then be loaded when you create
accounts. You may also load a template for an existing account to reset
it to default values. When you create a new account then LAM will always
load the profile named "default". This
account profile can include default values for all your accounts.File uploadWhen you need to create lots of accounts then you can use LAM's
file upload to create them. LAM will read a CSV formatted file and
create the related LDAP entries. Please check the data in you CSV file
carefully. LAM will do less checks for the file upload than for single
account creation.At the first page please select the account type and what
extensions should be activated.The next page shows all available options for the file upload. You
will also find a sample CSV file which can be used as template for your
CSV file. All red options are required columns in the file. You need to
specify a value for each account.When you upload the CSV file then LAM first does some checks on
this file. This includes syntax checks and if all required data was
entered. No changes in the LDAP directory are done at this time.If the checks were successful then LAM will ask again if you want
to create the accounts. You will also have the chance to check the
upload by viewing the changes in LDIF format.OU editorThis is a simple editor to add/delete organisational units in your
LDAP tree. This way you can structure the accounts.PDF editorAll accounts in LAM may be exported as PDF files. You can specify
the page structure and displayed information by editing the PDF
profiles.When you export accounts to PDF then each account will get its own
page inside the PDF. There is a headline on each page where you can show
a page title. You may also add a logo to each page. To add more possible
logos simply copy the images to config/pdf/logos.The main part is structured into sections of information. Each
section has a title. This can either be static text or the value of an
attribute. You may also insert a static text block as section. Sections
can be moved by using the arrows next to the section title.Each section can contain multiple fields which usually represent
LDAP attributes. You can simply add new fields by selecting the field
name and its position. Then use the arrows to move the field inside the
section.Schema browserHere you browse the schema of your LDAP server. You can view what
object classes, attributes, syntaxes and matching rules are available.
This is useful if you need to check if a certain object class is
available.Server informationThis shows some basic information about your LDAP server.TestsThis allows you to check if your LDAP schema is compatible with
LAM and to find possible problems.Lamdaemon testLAM provides an external script to manage home directories and
quotas. You can test here if everything is setup correctly.Schema testThis will test if your LDAP schema supports all object classes
and attributes of the active LAM modules. If you get a message that
something is missing please check that you installed all required schemas.If you get error messages about object class violations then
this test can tell you what is missing.Access levels and password reset page (LAM Pro)You can define different access levels for each profile to allow or
disallow write access. The password reset page helps your deskside support
staff to reset user passwords.Access levelsThere are three access levels:Write access (default)There are no restrictions. LAM admin users can manage account,
create profiles and set passwords.Change passwordsSimilar to "Read only" except that the password reset page is available.Read onlyNo write access to the LDAP database is allowed. It is also
impossible to manage account and PDF profiles.Accounts may be viewed but no changes can be saved.The access level can be set on the server configuration
page:Password reset pageThis special page allows your deskside support staff to reset the
Unix and Samba passwords of your users. If you set the access level to "Change passwords" then
LAM will not allow any changes to the LDAP database except password
changes via this page. The account pages will be still available in
read-only mode.You can open the password reset page by clicking on the key symbol
on each user account:There are three different options to set a new
password:set random password and display it on
screenThis will set the user's password to a random value. The
password will be 11 characters long with a random combination of
letters, digits and ".-_".You may want to use this method to tell users their new
passwords via phone.set random password and mail it to
userIf the user account has set the mail attribute then LAM can
send your user a mail with the new password. You can change the mail
template to fit your needs. See the help link for further
details.Using this method will prevent that your support staff knows
the new password.set specific passwordHere you can specify your own password.LAM will display contact information about the user like the
user's name, email address and telephone number. This will help your
deskside support to easily contact your users.Options:Depending on the account there may be additional options
available.Sync Samba NT/LM password with Unix
password: If a user account has Samba passwords set then
LAM will offer to synchronize the passwords.Unlock Samba account: Locked
Samba accounts can be unlocked with the password change.Update Samba password
timestamps: This will set the timestamps when the
password was changed (sambaPwdLastSet), may be changed again
(sambaPwdCanChange) and must be changed again (sambaPwdMustChange).
Only existing attributes are updated. No new attributes are
added.Self service (LAM Pro)PreparationsOpenLDAP ACLsBy default only a few administrative users have write access to
the LDAP database. Before your users may change their settings you
must allow them to change their LDAP data.This can be done by adding an ACL to your slapd.conf which looks
like this:access to
attrs=mail,sn,givenName,telephoneNumber,mobile,facsimileTelephoneNumber,street,postalAddress,postOfficeBox,postalCode,userPassword,shadowLastChange by self writeIf you do not want them to change all attributes then reduce the
list to fit your needs. Some modules may require additional LDAP
attributes.Usually, the slapd.conf file is located in /etc/ldap or
/etc/openldap.Other LDAP serversThere exist many LDAP implementations. If you do not use
OpenLDAP you need to write your own ACLs. Please check the manual of
your LDAP server for instructions.Creating a self service profileA self service profile defines what input fields your users see
and some other general settings like the login caption.When you go to the LAM configuration page you will see the self
service link at the bottom. This will lead you to the self service
configuration pagesNow we need to create a new self service profile. Click on the
link to manage the self service profiles.Specify a name for the new profile and enter your master
configuration password (default is "lam") to save the profile.Now go back to the profile login and enter your master
configuration password to edit your new profile.Edit your new profileOn top of the page you see the link to the user login page. Copy
this link address and give it to your users.Below the link you can specify several options.
General optionsServer addressThe address of your LDAP serverLDAP suffixThe part of the LDAP tree where LAM should search for
usersLDAP user + passwordThe DN and password which is used to search for users in
the LDAP database. It is sufficient if this DN has only read
rights. If you leave these fields empty LAM will try to connect
anonymously.LDAP search attributeHere you can specify if your users can login with user
name + password, email + password or other attributes.Login attribute labelThis is the description for the LDAP search attribute.
Set it to something which your users are familiar with.Login captionThis text is displayed at the login page. You can input
HTML, too.Main page captionThis text is displayed at self service main page where
your users change their data. You can input HTML, too.Page headerThis HTML code will be placed on top of all self service
pages. E.g. you can use this to place your custom logo. Any HTML
code is permitted.Additional CSS linksHere you can specify additional CSS links to change the
layout of the self service pages. This is useful to adapt them
to your corporate design. Please enter one link per
line.
On the bottom you can specify what input fields your users can
see. It is also possible to group several input fields.Adapt the self service to your corporate designLAM Pro allows you to integrate customs CSS style definitions and
design the header of all self service pages. This way you can integrate
you own logo and use your company's colors.Custom headerThe default LAM Pro header includes a logo and a horizontal
line. You can enter any HTML code here. It will be included in the
self services pages after the body tag.CSS filesUsually, companies have regulations about their corporate design
and use common CSS files. This assures a common appearance of all
intranet pages (e.g. colors and fonts). To include additional CSS
files just use the following setting for this task. The additional CSS
links will be added after LAM Pro's default CSS link. This way you can
overwrite LAM Pro's style.LDAP schema filesHere is a list of needed LDAP schema files for the different LAM
modules. For OpenLDAP we also provide a source where you can get the
files.
LDAP schema filesAccount typeObject class(es)Schema nameSourceNotesUnix accountsposixAccount, shadowAccount, hostObject, posixGroupnis.schema, rfc2307bis.schema, ldapns.schema
(hostObject)Part of OpenLDAP installation, part of libpam-ldap
(ldapns.schema)The rfc2307bis.schema is only supported by LAM Pro. Use the
nis.schema if you do not want to upgrade to LAM Pro.Address book entriesinetOrgPersoninetorgperson.schemaPart of OpenLDAP installationSamba 3 accountssambaSamAccount, sambaGroupMapping, sambaDomainsamba.schemaPart of Samba tarball (examples/LDAP/samba.schema)Kolab 2 userskolabUserkolab2.schema, rfc2739.schemaPart of Kolab 2 installationAsterisk (extension)AsteriskSIPUser, AsteriskExtensionasterisk.schemaPart of Asterisk installationMail routinginetLocalMailRecipientmisc.schemaPart of OpenLDAP installationHostshostObject, deviceldapns.schemaPart of libpam-ldap installationThe device object class is only available in LAM
Pro.Mail aliasesnisMailAliasmisc.schemaPart of OpenLDAP installationMAC addressesieee802devicenis.schemaPart of OpenLDAP installationIP addressesipHostnis.schemaPart of OpenLDAP installationThis account type is only available in LAM Pro.Simple Accountsaccountcosine.schemaPart of OpenLDAP installationSSH public keysldapPublicKeyopenssh-lpk.schemaIncluded in patch from http://code.google.com/p/openssh-lpk/Group of (unique) namesgroupOfNames, groupOfUniqueNamescore.schemaPart of OpenLDAP installationThese account type is only available in LAM Pro.phpGroupWarephpGroupwareUser, phpGroupwareGroupphpgroupware.schemahttp://www.phpgroupware.org/DHCPdhcpOptions, dhcpSubnet, dhcpServerdhcp.schemadocs/schema/dhcp.schemaThe LDAP suffix should be set to your dhcpServer
entry.Aliasesalias, uidObjectcore.schemaPart of OpenLDAP installationThis account type is only available in LAM Pro.NIS netgroupsnisNetgroupnis.schemaPart of OpenLDAP installationNIS objectsnisObjectnis.schemaPart of OpenLDAP installationThis account type is only available in LAM Pro.Password policiespwdPolicy, deviceppolicy.schema, core.schemaPart of OpenLDAP installationThis account type is only available in LAM Pro.Sudo rolessudoRolesudo.schemaPart of sudo-ldap installationThis account type is only available in LAM Pro.Zarafazarafa-user, zarafa-group, zarafa-serverzarafa.schemaPart of Zarafa installationThis account type is only available in LAM Pro.IMAP mailboxes---Does not require any schema.
SecurityLAM configuration passwordsLAM supports a two level authorization system for its
configuration. Therefore, there are two types of configuration
passwords:master configuration
password: needed to change general settings,
create/delete server profiles and self service profilesserver profile password: used
to change the settings of a server profile (e.g. LDAP server and
account types to manage)The master configuration password can be used to reset a server
profile password. Each server profile has its own profile
password.Both password types are stored as hash values in the configuration
files for enhanced security.Use of SSLThe data which is transfered between you and LAM is very
sensitive. Please always use SSL encrypted connections between LAM and
your browser to protect yourself against network sniffers.LDAP with SSL and TLSSSL will be used if you use ldaps://servername in your
configuration profile. TLS can be activated with the "Activate TLS"
option.You will need to setup ldap.conf to trust your server certificate.
Some installations use /etc/ldap.conf and some use /etc/ldap/ldap.conf.
It is a good idea to symlink /etc/ldap.conf to /etc/ldap/ldap.conf.
Specify the server CA certificate with the following option:TLS_CACERT /etc/ldap/ca/myCA/cacert.pemThis needs to be the public part of the signing certificate
authority. See "man ldap.conf" for additional options.Chrooted serversIf your server is chrooted and you have no access to /dev/random
or /dev/urandom this can be a security risk. LAM stores your LDAP
password encrypted in the session. LAM uses rand() to generate the key
if /dev/random and /dev/urandom are not accessible. Therefore the key
can be easily guessed. An attaker needs read access to the session file
(e.g. by another Apache instance) to exploit this.Protection of your LDAP password and directory contentsYou have to install the MCrypt extension for PHP to enable
encryption.Your LDAP password is stored encrypted in the session file. The
key and IV to decrypt it are stored in two cookies. We use MCrypt/AES to
encrypt the password. All data that was read from LDAP and needs to be
stored in the session file is also encrypted.Apache configurationLAM includes several .htaccess files to protect your configuration
files and temporary data. Apache is often configured to not use
.htaccess files by default. Therefore, please check your Apache
configuration and change the override setting to:AllowOverride AllIf you are experienced in configuring Apache then you can also
copy the security settings from the .htaccess files to your main Apache
configuration.If possible, you should not rely on .htaccess files but also move
the config and sess directory to a place outside of your WWW root. You
can put a symbolic link in the LAM directory so that LAM finds the
configuration/session files.Security sensitive directories:config: Contains your LAM
configuration and account profilesLAM configuration passwords (SSHA hashed)default values for new accountsdirectory must be accessibly by Apache but needs not to be
accessible by the browsersess: PHP session filesLAM admin password in clear text or MCrypt encryptedcached LDAP entries in clear text or MCrypt encrypteddirectory must be accessibly by Apache but needs not to be
accessible by the browsertmp: temporary filesPDF documents which may also include passwordsimages of your usersdirectory contents must be accessible by browser but directory
itself needs not to be browseableRecommended OpenLDAP settingsSome basic hints to configure the OpenLDAP server:Size limit: OpenLDAP allows by
default 500 return values per search, if you have more users/groups/hosts
change this in slapd.conf: e.g. "sizelimit 10000" or "sizelimit -1" for
unlimited return values.Indices: Indices will improve the
performance when searching for entries in the LDAP directory. The
following indices are recommended:index objectClass eqindex default subindex uidNumber eqindex gidNumber eqindex memberUid eqindex cn,sn,uid,displayName pres,sub,eq# Samba 3.xindex sambaSID eqindex sambaPrimaryGroupSID eqindex sambaDomainName eqSetup for home directory and quota managementLamdaemon.pl is used to modify quota and home directories on a
remote or local host via SSH. If you want wo use it you have to set up the
following things to get it to work:LDAP Account Manager configurationSet the remote or local host in the configuration (e.g.
127.0.0.1)Path to lamdaemon.pl, e.g.
/srv/www/htdocs/lam/lib/lamdaemon.pl If you installed a Debian or
RPM package then the script may be located at
/usr/share/ldap-account-manager/lib or /var/www/html/lam/lib.Your LAM admin user must be a valid Unix account. It needs to
have the object class "posixAccount" and an attribute "uid". This
account must be accepted by the SSH daemon of your home directory
server. Do not create a second local account but change your system
to accept LDAP users. You can use LAM to add the Unix account part
to your admin user.Setup sudoThe perl script has to run as root. Therefore we need a wrapper,
sudo. Edit /etc/sudoers on host where homedirs or quotas should be used
and add the following line:$admin All= NOPASSWD: $path_to_lamdaemon *$admin is the admin user from
LAM (must be a valid Unix account) and
$path_to_lamdaemon is the path to
lamdaemon.pl.Example:myAdmin ALL= NOPASSWD: /srv/www/htdocs/lam/lib/lamdaemon.pl
*You might need to run the sudo command once manually to init sudo.
The command "sudo -l" will show all possible sudo commands of the
current user.Setup PerlWe need an extra Perl module - Quota. To install it, run:perl -MCPAN -e shellinstall QuotaIf your Perl executable is not located in /usr/bin/perl you will
have to edit the path in the first line of lamdaemon.pl. If you have
problems compiling the Perl modules try installing a newer release of
your GCC compiler and the "make" application.Several Linux distributions already include a quota package for
Perl.Set up SSHYour SSH daemon must offer the password authentication method. To
activate it just use this configuration option in
/etc/ssh/sshd_config:PasswordAuthentication yesTroubleshootingIf you have problems managing quotas and home directories then
these points might help:There is a test page for lamdaemon: Login to LAM and open
Tools -> Tests -> Lamdaemon testCheck /var/log/auth.log or its equivalent on your system. This
file contains messages about all logins. If the ssh login failed
then you will find a description about the reason here.Set sshd in debug mode. In /etc/ssh/sshd_conf add these
lines:SyslogFacility AUTHLogLevel DEBUG3Now check /var/log/syslog for messages from sshd.Update Openssh. A Suse Linux user reported that upgrading
Openssh solved the problem.Kolab user managementHere are some notes on managing Kolab accounts with LAM:Creating accountsThe mailbox server cannot be changed after the account has been
saved. Please make sure that the value is correct. The email address
("Personal" page) must match your Kolab domain, otherwise the account
will not work.Deleting accountsIf you want to cleanly delete accounts use the "Mark for deletion"
button on the Kolab subpage of an account. This will also remove the
user's mailbox. If you delete the account from the account list (which
is standard for LAM accounts) then no cleanup actions are made.Managing accounts with both LAM and Kolab Admin GUIThe Kolab GUI has some restrictions that LAM does not have. Please
pay attention to the following restrictions:Common name in LAMThe common name must have the format "<first name>
<last name>". You can leave the field empty in LAM and it will
automatically fill in the correct value.Changing first/last name in Kolab GUIDo not change the first/last name of your users in the Kolab
GUI! The GUI will change the common name which leads to an LDAP
object class violation. This is caused by a bug in the Kolab
GUI.Adding a Kolab part to existing accountsIf you upgrade existing non-Kolab accounts please make sure that
the account has an Unix password.Installing LAM on the Kolab serverYou can install LAM in the directory "/kolab/var/kolab/www" which
is the root directory for Apache. The PHP installation already includes
all required packages.