ldap.sh 5.24 KB
#!/bin/sh

DC="dc=sei,dc=com"
PASSWORD=$1 #"cfl5OcVJ"

yum install openldap-servers openldap-clients sssd perl-LDAP.noarch  -y

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

chown -R ldap:ldap /var/lib/ldap
cd /etc/openldap
mv slapd.d slapd.d.original

PASS=`slappasswd  -s  ${PASSWORD}`

service slapd start
chkconfig slapd on

cp ldap.conf ldap.conf.original

echo "escrevendo arquivo em /etc/openldap/slapd.conf"

echo "# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include     /etc/openldap/schema/core.schema
include     /etc/openldap/schema/cosine.schema
include     /etc/openldap/schema/inetorgperson.schema
include     /etc/openldap/schema/nis.schema

# Added for policy
include     /etc/openldap/schema/ppolicy.schema

# Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral   ldap://root.openldap.org

pidfile     /var/run/openldap/slapd.pid
argsfile    /var/run/openldap/slapd.args

# Load dynamic backend modules:
# modulepath    /usr/lib64/openldap

# Modules available in openldap-servers-overlays RPM package
# Module syncprov.la is now statically linked with slapd and there
# is no need to load it here
# moduleload accesslog.la
# moduleload auditlog.la
# moduleload denyop.la
# moduleload dyngroup.la
# moduleload dynlist.la
# moduleload lastmod.la
# moduleload pcache.la

moduleload ppolicy.la

# moduleload refint.la
# moduleload retcode.la
# moduleload rwm.la
# moduleload smbk5pwd.la
# moduleload translucent.la
# moduleload unique.la
# moduleload valsort.la

# modules available in openldap-servers-sql RPM package:
# moduleload back_sql.la

# The next three lines allow use of TLS for encrypting connections using a
# dummy test certificate which you can generate by changing to
# /etc/pki/tls/certs, running \"make slapd.pem\", and fixing permissions on
# slapd.pem so that the ldap user or group can read it.  Your client software
# may balk at self-signed certificates, however.
# TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
# TLSCertificateFile /etc/pki/tls/certs/slapd.pem
# TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

# Sample security restrictions
#   Require integrity protection (prevent hijacking)
#   Require 112-bit (3DES or better) encryption for updates
#   Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#   Root DSE: allow anyone to read it
#   Subschema (sub)entry DSE: allow anyone to read it
#   Other DSEs:
#       Allow self write access
#       Allow authenticated users read access
#       Allow anonymous users to authenticate
#   Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base=\"cn=Subschema\" by * read
# access to *
#   by self write
#   by users read
#   by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database    bdb
suffix      "${DC}"
rootdn      "cn=admin,${DC}"
rootpw      $PASS

# PPolicy Configuration
overlay ppolicy
ppolicy_default \"cn=default,ou=policies,${DC}\"
ppolicy_use_lockout
ppolicy_hash_cleartext



# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory   /var/lib/ldap

# Indices to maintain for this database
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub "   >  /etc/openldap/slapd.conf  

echo "escrevendo em /etc/openldap/ppolicy.ldif"

echo "dn: ou = policies,${DC}
objectClass: organizationalUnit
objectClass: top
ou: policies

# default, policies, example.com
dn: cn=default,ou=policies,${DC}
objectClass: top
objectClass: pwdPolicy
objectClass: person
cn: default
sn: dummy value
pwdAttribute: userPassword
pwdMaxAge: 7516800
pwdExpireWarning: 14482463
pwdMinLength: 2
pwdMaxFailure: 10
pwdLockout: TRUE
pwdLockoutDuration: 60
pwdMustChange: FALSE
pwdAllowUserChange: FALSE
pwdSafeModify: FALSE " > /etc/openldap/ppolicy.ldif

service slapd restart

echo "gerando arquivos /tmp/ldap" 
mkdir -p /tmp/ldap
cd /tmp/ldap

echo "dn: ${DC}
objectClass: dcObject
objectClass: organization
dc: sei
o:  Sei
description:  SEI

dn: cn=admin,${DC}
objectClass: organizationalRole
cn: Admin
description: System Manager

dn: ou=users,${DC}
objectClass: organizationalUnit
ou: users

dn: ou=oldusers,${DC}
objectClass: organizationalUnit
ou: oldusers " > base.ldif

cd /tmp/ldap

echo "Inicializando ldap"
sleep 10
echo "ldapadd -x -D \"cn=admin,${DC}\" -w ${PASSWORD} -f base.ldif"
ldapadd -x -D "cn=admin,${DC}" -w ${PASSWORD} -f base.ldif

echo "Pronto foi instalado a ldap na maquina local"
echo "admin = cn=admin,${DC}"
echo "senha: ${PASSWORD}"