initial version
This commit is contained in:
parent
5a92d6815c
commit
05bfb1daa5
10
.env.dist
Normal file
10
.env.dist
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
LDAP_ADMIN_USERNAME=admin
|
||||||
|
LDAP_ADMIN_PASSWORD=CHANGE_ASAP
|
||||||
|
LDAP_ROOT=dc=gmolab,dc=net
|
||||||
|
LDAP_ADMIN_DN=cn=admin,dc=gmolab,dc=net
|
||||||
|
LDAP_ALLOW_ANON_BINDING=no
|
||||||
|
LDAP_ENABLE_TLS=yes
|
||||||
|
LDAP_TLS_CERT_FILE=/opt/bitnami/openldap/certs/gmolab.net.crt
|
||||||
|
LDAP_TLS_KEY_FILE=/opt/bitnami/openldap/certs/gmolab.net.key
|
||||||
|
LDAP_TLS_CA_FILE=/opt/bitnami/openldap/certs/gmolabCA.crt
|
||||||
|
LDAP_SKIP_DEFAULT_TREE=yes
|
||||||
@ -23,11 +23,10 @@ sudo chown 1001 /home/docker/openldap -R
|
|||||||
1001 is important because the container is running with user no-root
|
1001 is important because the container is running with user no-root
|
||||||
|
|
||||||
## Delete Directory
|
## Delete Directory
|
||||||
ATTENTION. The commands below delete the entire directory.
|
ATTENTION. The command below delete the entire directory.
|
||||||
This is useful when you want to test configs (problems with certificates)
|
This is useful when you want to test configs (problems with certificates)
|
||||||
```bash
|
```bash
|
||||||
sudo rm -rf /home/docker/openldap/data/*
|
./reinit-ldap.sh
|
||||||
sudo rm -rf /home/docker/openldap/slapd.d/*
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run
|
## Run
|
||||||
|
|||||||
@ -1,25 +1,12 @@
|
|||||||
networks:
|
|
||||||
my-network:
|
|
||||||
driver: bridge
|
|
||||||
services:
|
services:
|
||||||
openldap:
|
openldap:
|
||||||
image: bitnami/openldap:latest
|
image: bitnami/openldap:latest
|
||||||
|
restart: always
|
||||||
container_name: ldap
|
container_name: ldap
|
||||||
ports:
|
ports:
|
||||||
- '1389:1389'
|
- '1389:1389'
|
||||||
- '1636:1636'
|
- '1636:1636'
|
||||||
env_file: ".env"
|
env_file: ".env"
|
||||||
# environment:
|
|
||||||
# - LDAP_ADMIN_USERNAME=admin
|
|
||||||
# - LDAP_ADMIN_PASSWORD=password
|
|
||||||
# - LDAP_ROOT=dc=gmolab,dc=net
|
|
||||||
# - LDAP_ADMIN_DN=cn=admin,dc=gmolab,dc=net
|
|
||||||
# - LDAP_ENABLE_TLS=yes
|
|
||||||
# - LDAP_TLS_CERT_FILE=/opt/bitnami/openldap/certs/gmolab.net.crt
|
|
||||||
# - LDAP_TLS_KEY_FILE=/opt/bitnami/openldap/certs/gmolab.net.key
|
|
||||||
# - LDAP_TLS_CA_FILE=/opt/bitnami/openldap/certs/gmolabCA.crt
|
|
||||||
networks:
|
|
||||||
- my-network
|
|
||||||
volumes:
|
volumes:
|
||||||
- /home/docker/openldap:/bitnami/openldap/
|
- /home/docker/openldap:/bitnami/openldap/
|
||||||
- /home/docker/openldap/certs:/opt/bitnami/openldap/certs
|
- /home/docker/openldap/certs:/opt/bitnami/openldap/certs
|
||||||
|
|||||||
138
ldap-init.sh
138
ldap-init.sh
@ -2,25 +2,32 @@
|
|||||||
source .env
|
source .env
|
||||||
LDAP_SRV=ldaps://gmoadm.gmolab.net:1636
|
LDAP_SRV=ldaps://gmoadm.gmolab.net:1636
|
||||||
|
|
||||||
echo "Delete from the box users"
|
#echo "Delete from the box users"
|
||||||
ldapdelete -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN \
|
#ldapdelete -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN \
|
||||||
"cn=user01,ou=people,$LDAP_ROOT" \
|
# "cn=user01,ou=people,$LDAP_ROOT" \
|
||||||
"cn=user02,ou=people,$LDAP_ROOT" \
|
# "cn=user02,ou=people,$LDAP_ROOT" \
|
||||||
"cn=readers,ou=people,$LDAP_ROOT" \
|
# "cn=readers,ou=people,$LDAP_ROOT" \
|
||||||
"ou=people,$LDAP_ROOT"
|
# "ou=people,$LDAP_ROOT"
|
||||||
|
|
||||||
echo "create OUs"
|
echo "create OUs"
|
||||||
ldapadd -x -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN << EOF
|
ldapadd -x -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN << EOF
|
||||||
|
dn: $LDAP_ROOT
|
||||||
|
objectClass: top
|
||||||
|
objectClass: dcObject
|
||||||
|
objectclass: organization
|
||||||
|
o: GMoLab Directory
|
||||||
|
dc: gmolab
|
||||||
|
|
||||||
dn: ou=people,$LDAP_ROOT
|
dn: ou=people,$LDAP_ROOT
|
||||||
objectClass: organizationalUnit
|
objectClass: organizationalUnit
|
||||||
ou: people
|
ou: people
|
||||||
EOF
|
|
||||||
#dn: ou=groups,$LDAP_ROOT
|
|
||||||
#objectClass: organizationalUnit
|
|
||||||
#ou: groups
|
|
||||||
#EOF
|
|
||||||
|
|
||||||
echo "Create users"
|
dn: ou=groups,$LDAP_ROOT
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: groups
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Populate the directory"
|
||||||
ldapadd -x -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN << EOF
|
ldapadd -x -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN << EOF
|
||||||
dn: cn=Admin LDAP,ou=people,$LDAP_ROOT
|
dn: cn=Admin LDAP,ou=people,$LDAP_ROOT
|
||||||
cn: Admin LDAP
|
cn: Admin LDAP
|
||||||
@ -30,7 +37,7 @@ givenName: Admin
|
|||||||
objectClass: inetOrgPerson
|
objectClass: inetOrgPerson
|
||||||
objectClass: posixAccount
|
objectClass: posixAccount
|
||||||
objectClass: shadowAccount
|
objectClass: shadowAccount
|
||||||
userPassword: pa55w0rd
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
uid: adminldap
|
uid: adminldap
|
||||||
uidNumber: 10001
|
uidNumber: 10001
|
||||||
gidNumber: 10001
|
gidNumber: 10001
|
||||||
@ -45,14 +52,103 @@ givenName: Access
|
|||||||
objectClass: inetOrgPerson
|
objectClass: inetOrgPerson
|
||||||
objectClass: posixAccount
|
objectClass: posixAccount
|
||||||
objectClass: shadowAccount
|
objectClass: shadowAccount
|
||||||
userPassword: pa55w0rd
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
uid: accessldap
|
uid: accessldap
|
||||||
uidNumber: 10002
|
uidNumber: 10002
|
||||||
gidNumber: 10002
|
gidNumber: 10002
|
||||||
homeDirectory: /home/accessldap
|
homeDirectory: /home/accessldap
|
||||||
mail: access.ldap@gmolab.net
|
mail: access.ldap@gmolab.net
|
||||||
|
|
||||||
|
dn: cn=Gilles Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
cn: Gilles Mouchet
|
||||||
|
displayName: Gilles Mouchet
|
||||||
|
sn: Mouchet
|
||||||
|
givenName: Gilles
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: shadowAccount
|
||||||
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
|
uid: gilles.mouchet
|
||||||
|
uidNumber: 10003
|
||||||
|
gidNumber: 10003
|
||||||
|
homeDirectory: /home/gilmouchet
|
||||||
|
mail: gilles.mouchet@gmolab.net
|
||||||
|
|
||||||
|
dn: cn=Christine Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
cn: Christine Mouchet
|
||||||
|
displayName: Christine Mouchet
|
||||||
|
sn: Mouchet
|
||||||
|
givenName: Christine
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: shadowAccount
|
||||||
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
|
uid: christine.mouchet
|
||||||
|
uidNumber: 10004
|
||||||
|
gidNumber: 10004
|
||||||
|
homeDirectory: /home/chrmouchet
|
||||||
|
mail: christine.mouchet@gmolab.net
|
||||||
|
|
||||||
|
dn: cn=Bryan Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
cn: Bryan Mouchet
|
||||||
|
displayName: Bryan Mouchet
|
||||||
|
sn: Mouchet
|
||||||
|
givenName: Bryan
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: shadowAccount
|
||||||
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
|
uid: bryan.mouchet
|
||||||
|
uidNumber: 10005
|
||||||
|
gidNumber: 10005
|
||||||
|
homeDirectory: /home/brymouchet
|
||||||
|
mail: bryan.mouchet@gmolab.net
|
||||||
|
|
||||||
|
dn: cn=Aurelie Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
cn: Aurelie Mouchet
|
||||||
|
displayName: Aurelie Mouchet
|
||||||
|
sn: Mouchet
|
||||||
|
givenName: Aurelie
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: shadowAccount
|
||||||
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
|
uid: aurelie.mouchet
|
||||||
|
uidNumber: 10006
|
||||||
|
gidNumber: 10006
|
||||||
|
homeDirectory: /home/aurmouchet
|
||||||
|
mail: aurelie.mouchet@gmolab.net
|
||||||
|
|
||||||
|
dn: cn=Sarah Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
cn: Sarah Mouchet
|
||||||
|
displayName: Sarah Mouchet
|
||||||
|
sn: Mouchet
|
||||||
|
givenName: Sarah
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: shadowAccount
|
||||||
|
userPassword: {SSHA}VUkfz85JIvPsUUbMbAdY5CMgeh3YcBGw
|
||||||
|
uid: sarah.mouchet
|
||||||
|
uidNumber: 10006
|
||||||
|
gidNumber: 10006
|
||||||
|
homeDirectory: /home/sarmouchet
|
||||||
|
mail: sarah.mouchet@gmolab.net
|
||||||
|
|
||||||
|
dn: cn=Mouchet Family,ou=groups,$LDAP_ROOT
|
||||||
|
objectClass: groupOfNames
|
||||||
|
cn: Mouchet Family
|
||||||
|
member: cn=Gilles Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
member: cn=Christine Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
member: cn=Bryan Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
member: cn=Aurelie Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
member: cn=Sarah Mouchet,ou=people,$LDAP_ROOT
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "change ACL"
|
echo "change ACL"
|
||||||
docker exec ldap /bin/bash -c 'ldapmodify -H ldapi:/// -Y EXTERNAL << EOF
|
docker exec ldap /bin/bash -c 'ldapmodify -H ldapi:/// -Y EXTERNAL << EOF
|
||||||
dn: olcDatabase={2}mdb,cn=config
|
dn: olcDatabase={2}mdb,cn=config
|
||||||
@ -75,10 +171,10 @@ olcAccess: to *
|
|||||||
EOF
|
EOF
|
||||||
'
|
'
|
||||||
|
|
||||||
echo "Change organization name"
|
#echo "Change organization name"
|
||||||
ldapmodify -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN << EOF
|
#ldapmodify -H $LDAP_SRV -w $LDAP_ADMIN_PASSWORD -D $LDAP_ADMIN_DN << EOF
|
||||||
dn: dc=gmolab,dc=net
|
#dn: dc=gmolab,dc=net
|
||||||
changetype: modify
|
#changetype: modify
|
||||||
replace: o
|
#replace: o
|
||||||
o: GMOLab (Gilles Mouchet Sandbox)
|
#o: GMOLab (Gilles Mouchet Sandbox)
|
||||||
EOF
|
#EOF
|
||||||
14
reinit-ldap.sh
Executable file
14
reinit-ldap.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# DELETE ALL DIRECTORY DATA
|
||||||
|
echo "You will DELETE ALL DATA from the directory!!"
|
||||||
|
read -p "Are you sure? " -n 1 -r
|
||||||
|
echo # (optional) move to a new line
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
docker compose down
|
||||||
|
sudo rm -rf /home/docker/openldap/data/*
|
||||||
|
sudo rm -rf /home/docker/openldap/slapd.d/*
|
||||||
|
docker compose up -d
|
||||||
|
sleep 5
|
||||||
|
./ldap-init.sh
|
||||||
|
ldapsearch -H ldaps://gmoadm.gmolab.net:1636 -x -D 'cn=Access LDAP,ou=people,dc=gmolab,dc=net' -b 'dc=gmolab,dc=net' -w pa55w0rd
|
||||||
|
fi
|
||||||
Loading…
x
Reference in New Issue
Block a user