diff --git a/openldap/README.md b/openldap/README.md index a3ed453..44b6a71 100644 --- a/openldap/README.md +++ b/openldap/README.md @@ -29,38 +29,56 @@ OpenLDAP Software is an open source implementation of the Lightweight Directory ## docker-compose.yml ```yaml -openldap: - image: osixia/openldap - ports: - - "389:389" - volumes: - - ./data/certs:/container/service/slapd/assets/certs - - ./data/conf:/etc/ldap/slapd.d - - ./data/data:/var/lib/ldap - environment: - - LDAP_ORGANISATION=EasyPi - - LDAP_DOMAIN=ldap.easypi.pro - - LDAP_ADMIN_PASSWORD=admin - - LDAP_CONFIG_PASSWORD=config - - LDAP_TLS_CA_CRT_FILENAME=ca.crt - - LDAP_TLS_CRT_FILENAME=ldap.crt - - LDAP_TLS_KEY_FILENAME=ldap.key - # LDAP_TLS_ENFORCE=true - restart: always +version: "3.7" -phpldapadmin: - image: osixia/phpldapadmin - ports: - - "8080:80" - environment: - - PHPLDAPADMIN_LDAP_HOSTS=openldap - - PHPLDAPADMIN_HTTPS=false - links: - - openldap - restart: always +services: + + openldap: + image: osixia/openldap + command: "--loglevel debug" + hostname: ldap.easypi.pro + ports: + - "389:389" + - "636:636" + volumes: + - ./data/certs:/container/service/slapd/assets/certs + - ./data/etc:/etc/ldap/slapd.d + - ./data/var:/var/lib/ldap + - ./data/run:/container/run + environment: + - LDAP_ORGANISATION=EasyPi + - LDAP_DOMAIN=ldap.easypi.pro + - LDAP_ADMIN_PASSWORD=admin + - LDAP_CONFIG_PASSWORD=config + - LDAP_TLS=true + - LDAP_TLS_CA_CRT_FILENAME=ca.crt + - LDAP_TLS_CRT_FILENAME=ldap.crt + - LDAP_TLS_KEY_FILENAME=ldap.key + - LDAP_TLS_VERIFY_CLIENT=try + - LDAP_TLS_ENFORCE=true + restart: always + + phpldapadmin: + image: osixia/phpldapadmin + ports: + - "8080:80" + environment: + - PHPLDAPADMIN_LDAP_HOSTS=#PYTHON2BASH:[{'ldap.easypi.pro':[{'server':[{'tls':True}]}]}] + - PHPLDAPADMIN_HTTPS=false + extra_hosts: + - ldap.easypi.pro:x.x.x.x + depends_on: + - openldap + restart: always ``` -> :warnning: I haven't figured out how to connect phpldapadmin to openladp via STARTTLS. +> :warnning: I haven't figured out how to connect phpldapadmin to openladp via STARTTLS: +>> openldap_1 | 5d8a7abe conn=1023 fd=12 ACCEPT from IP=172.29.0.1:59342 (IP=0.0.0.0:389) +>> openldap_1 | 5d8a7abe conn=1023 op=0 EXT oid=1.3.6.1.4.1.1466.20037 +>> openldap_1 | 5d8a7abe conn=1023 op=0 STARTTLS +>> openldap_1 | 5d8a7abe conn=1023 op=0 RESULT oid= err=0 text= +>> openldap_1 | 5d8a7abe conn=1023 fd=12 TLS established tls_ssf=256 ssf=256 +>> openldap_1 | 5d8a7abe conn=1023 fd=12 closed (connection lost) ## Create Keys and Certificates @@ -81,16 +99,22 @@ openssl x509 \ -out ldap.crt ``` -## Test the STARTTLS upgrade +## Test the STARTTLS & SSL connections ```bash $ docker-compose exec openldap bash >>> ldapwhoami -H ldap://ldap.easypi.pro -x -ZZ anonymous ->>> exit -exit +>>> ldapwhoami -H ldaps://ldap.easypi.pro -x -D cn=admin,dc=ldap,dc=easypi,dc=pro -w admin +dn:cn=admin,dc=ldap,dc=easypi,dc=pro +>>> ldapsearch -H ldaps://ldap.easypi.pro -b dc=ldap,dc=easypi,dc=pro -D cn=admin,dc=ldap,dc=easypi,dc=pro -w admin +... ``` +## GUI Client + +- https://directory.apache.org/ + ## References - https://www.digitalocean.com/community/tutorials/how-to-encrypt-openldap-connections-using-starttls diff --git a/openldap/docker-compose.yml b/openldap/docker-compose.yml index 0a62289..574bbca 100644 --- a/openldap/docker-compose.yml +++ b/openldap/docker-compose.yml @@ -1,29 +1,41 @@ -openldap: - image: osixia/openldap - ports: - - "389:389" - volumes: - - ./data/certs:/container/service/slapd/assets/certs - - ./data/conf:/etc/ldap/slapd.d - - ./data/data:/var/lib/ldap - environment: - - LDAP_ORGANISATION=EasyPi - - LDAP_DOMAIN=ldap.easypi.pro - - LDAP_ADMIN_PASSWORD=admin - - LDAP_CONFIG_PASSWORD=config - - LDAP_TLS_CA_CRT_FILENAME=ca.crt - - LDAP_TLS_CRT_FILENAME=ldap.crt - - LDAP_TLS_KEY_FILENAME=ldap.key - # LDAP_TLS_ENFORCE=true - restart: always +version: "3.7" -phpldapadmin: - image: osixia/phpldapadmin - ports: - - "8080:80" - environment: - - PHPLDAPADMIN_LDAP_HOSTS=openldap - - PHPLDAPADMIN_HTTPS=false - links: - - openldap - restart: always +services: + + openldap: + image: osixia/openldap + command: "--loglevel debug" + hostname: ldap.easypi.pro + ports: + - "389:389" + - "636:636" + volumes: + - ./data/certs:/container/service/slapd/assets/certs + - ./data/etc:/etc/ldap/slapd.d + - ./data/var:/var/lib/ldap + - ./data/run:/container/run + environment: + - LDAP_ORGANISATION=EasyPi + - LDAP_DOMAIN=ldap.easypi.pro + - LDAP_ADMIN_PASSWORD=admin + - LDAP_CONFIG_PASSWORD=config + - LDAP_TLS=true + - LDAP_TLS_CA_CRT_FILENAME=ca.crt + - LDAP_TLS_CRT_FILENAME=ldap.crt + - LDAP_TLS_KEY_FILENAME=ldap.key + - LDAP_TLS_VERIFY_CLIENT=try + - LDAP_TLS_ENFORCE=true + restart: always + + phpldapadmin: + image: osixia/phpldapadmin + ports: + - "8080:80" + environment: + - PHPLDAPADMIN_LDAP_HOSTS=#PYTHON2BASH:[{'ldap.easypi.pro':[{'server':[{'tls':True}]}]}] + - PHPLDAPADMIN_HTTPS=false + extra_hosts: + - ldap.easypi.pro:x.x.x.x + depends_on: + - openldap + restart: always