Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Commit 629f562

Browse files
authored
Merge pull request #174 from LSFLK/v0.4.0-alpha
Ldap admin user was removed from postfix accounts and import.ldif creation automated.
2 parents 7969d05 + ce98c71 commit 629f562

9 files changed

Lines changed: 147 additions & 27 deletions

File tree

copper-server/kubernetes/deployment/deploy.sh

Lines changed: 98 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,12 @@ echo " DC3: $DC3" >> secret.yaml
166166
echo Enter LDAP admin password:
167167
read DNPASS
168168
echo " DNPASS: $DNPASS" >> secret.yaml
169+
echo Enter LDAP readonly user name:
170+
read RO
171+
echo " RO: $RO" >> secret.yaml
172+
echo Enter LDAP readonly user password:
173+
read ROPASS
174+
echo " ROPASS: $ROPASS" >> secret.yaml
169175

170176
echo " PHPLDAPADMIN_LDAP_HOSTS: ldap" >> secret.yaml
171177
#echo Enter phpldapadmin password:
@@ -310,6 +316,95 @@ kubectl create -f secret.yaml 2> /dev/null || true
310316
echoGreenBold 'Secret configuration files Created...'
311317

312318

319+
################ Creating LDAP yaml for LDAP configuration
320+
321+
# Entry 1: ou=domains,dc=DC1,dc=DC2,dc=DC3
322+
echo "dn: ou=domains,dc=$DC1,dc=$DC2,dc=$DC3" > ldap.ldif
323+
echo "objectclass: organizationalUnit" >> ldap.ldif
324+
echo "objectclass: top" >> ldap.ldif
325+
echo "ou: domains" >> ldap.ldif
326+
echo "" >> ldap.ldif
327+
328+
# Entry 2: dc=$DC1.$DC2.$DC3,ou=domains,dc=$DC1,dc=$DC2,dc=$DC3
329+
echo "dn: dc=$DC1.$DC2.$DC3,ou=domains,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
330+
echo "associateddomain: $DC1.$DC2.$DC3" >> ldap.ldif
331+
echo "dc: $DC1.$DC2.$DC3" >> ldap.ldif
332+
echo "objectclass: dNSDomain" >> ldap.ldif
333+
echo "objectclass: domainRelatedObject" >> ldap.ldif
334+
echo "objectclass: top" >> ldap.ldif
335+
## Entry 2: dc=copper.support.lk,ou=domains,dc=copper,dc=support,dc=lk
336+
#dn: dc=copper.support.lk,ou=domains,dc=copper,dc=support,dc=lk
337+
#associateddomain: copper.support.lk
338+
#dc: copper.support.lk
339+
#objectclass: dNSDomain
340+
#objectclass: domainRelatedObject
341+
#objectclass: top
342+
343+
# Entry 3: ou=groups,dc=$DC1,dc=$DC2,dc=$DC3
344+
echo "dn: ou=groups,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
345+
echo "objectclass: organizationalUnit" >> ldap.ldif
346+
echo "objectclass: top" >> ldap.ldif
347+
echo "ou: groups" >> ldap.ldif
348+
349+
# Entry 4: cn=admin,ou=groups,dc=$DC1,dc=$DC2,dc=$DC3
350+
echo "dn: cn=admins,ou=groups,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
351+
echo "cn: admins" >> ldap.ldif
352+
echo "gidnumber: 500" >> ldap.ldif
353+
echo "objectclass: posixGroup" >> ldap.ldif
354+
echo "objectclass: top" >> ldap.ldif
355+
356+
echo "dn: cn=users,ou=groups,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
357+
echo "cn: users" >> ldap.ldif
358+
echo "gidnumber: 501" >> ldap.ldif
359+
echo "objectclass: posixGroup" >> ldap.ldif
360+
echo "objectclass: top" >> ldap.ldif
361+
362+
# Entry 5: ou=Users,dc=$DC1,dc=$DC2,dc=$DC3
363+
echo "dn: ou=Users,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
364+
echo "objectclass: organizationalUnit" >> ldap.ldif
365+
echo "objectclass: top" >> ldap.ldif
366+
echo "ou: Users" >> ldap.ldif
367+
368+
# Entry 6: cn=copper,ou=Users,dc=$DC1,dc=$DC2,dc=$DC3
369+
echo "dn: uid=copper,ou=Users,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
370+
echo "cn: copper" >> ldap.ldif
371+
echo "gidnumber: 501" >> ldap.ldif
372+
echo "givenname: copper" >> ldap.ldif
373+
echo "homedirectory: /home/Users/copper" >> ldap.ldif
374+
echo "loginshell: /bin/sh" >> ldap.ldif
375+
echo "mail: copper@dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
376+
echo "objectclass: inetOrgPerson" >> ldap.ldif
377+
echo "objectclass: posixAccount" >> ldap.ldif
378+
echo "objectclass: top" >> ldap.ldif
379+
echo "sn: copper" >> ldap.ldif
380+
echo "uid: copper" >> ldap.ldif
381+
echo "uidnumber: 1001" >> ldap.ldif
382+
echo "userpassword: {SSHA}79+ggcj1RrXEitcvjVBDgqF6NdJf09Y3" >> ldap.ldif
383+
echo "#userpassword in plain: copper" >> ldap.ldif
384+
385+
# Entry 7: cn=test,ou=Users,dc=$DC1,dc=$DC2,dc=$DC3
386+
echo "dn: uid=test,ou=Users,dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
387+
echo "cn: test" >> ldap.ldif
388+
echo "gidnumber: 501" >> ldap.ldif
389+
echo "givenname: test" >> ldap.ldif
390+
echo "homedirectory: /home/Users/test" >> ldap.ldif
391+
echo "loginshell: /bin/sh" >> ldap.ldif
392+
echo "mail: test@dc=$DC1,dc=$DC2,dc=$DC3" >> ldap.ldif
393+
echo "objectclass: inetOrgPerson" >> ldap.ldif
394+
echo "objectclass: posixAccount" >> ldap.ldif
395+
echo "objectclass: top" >> ldap.ldif
396+
echo "sn: test" >> ldap.ldif
397+
echo "uid: test" >> ldap.ldif
398+
echo "uidnumber: 1002" >> ldap.ldif
399+
echo "userpassword: {SSHA}79+ggcj1RrXEitcvjVBDgqF6NdJf09Y3" >> ldap.ldif
400+
echo "#userpassword in plain: test" >> ldap.ldif
401+
402+
403+
echoGreenBold 'ldap.ldif file was Created...'
404+
405+
406+
407+
313408
######### END OF CONFIGURATION #############################################
314409

315410
# checking cert file list
@@ -450,8 +545,9 @@ sleep 1s
450545
#use for service starting in all email pods
451546
# https://stackoverflow.com/questions/51026174/running-a-command-on-all-kubernetes-pods-of-a-service
452547

453-
echoGreenBold 'Finished'
454-
548+
echoGreenBold ' ########################################## Installation completed #######################################'
549+
echoGreenBold ' Please import ldap.ldif file to import a test user for testing perposes from https://localhost:4433/ url.'
550+
echoGreenBold ' Contact support@copper.opensource.lk for further assistance. ############################################'
455551
#sleep 5s
456552

457553
#kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -n copper -- mysql -h mysql -pc0pperDB

copper-server/kubernetes/deployment/ldap.ldif

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
12
dn: ou=domains,dc=sin,dc=hala,dc=lk
23
objectclass: organizationalUnit
34
objectclass: top
45
ou: domains
56

7+
68
dn: dc=sin.hala.lk,ou=domains,dc=sin,dc=hala,dc=lk
79
associateddomain: sin.hala.lk
810
dc: sin.hala.lk
@@ -18,11 +20,13 @@ cn: admins
1820
gidnumber: 500
1921
objectclass: posixGroup
2022
objectclass: top
23+
2124
dn: cn=users,ou=groups,dc=sin,dc=hala,dc=lk
2225
cn: users
2326
gidnumber: 501
2427
objectclass: posixGroup
2528
objectclass: top
29+
2630
dn: ou=Users,dc=sin,dc=hala,dc=lk
2731
objectclass: organizationalUnit
2832
objectclass: top

copper-server/kubernetes/deployment/secret.yaml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ stringData:
1212
MYSQL_PASSWORD: copper
1313
CN: admin
1414
DC1: copper
15-
DC2: test
15+
DC2: support
1616
DC3: lk
1717
DNPASS: admin
18+
RO: raa
19+
ROPASS: raa
1820
PHPLDAPADMIN_LDAP_HOSTS: ldap
19-
PHPLDAPADMIN_SERVER_ADMIN: admin@copper.test.lk
21+
PHPLDAPADMIN_SERVER_ADMIN: admin@copper.support.lk
2022
PHPLDAPADMIN_SERVER_PATH: /phpldapadmin
2123
PHPLDAPADMIN_HTTPS: "true"
2224
PHPLDAPADMIN_HTTPS_CRT_FILENAME: cert.crt
@@ -28,13 +30,13 @@ stringData:
2830
PHPLDAPADMIN_LDAP_CLIENT_TLS_KEY_FILENAME: cert.key
2931
PHPLDAPADMIN_LDAP_CLIENT_TLS_CA_CRT_FILENAME: ca.crt
3032
LDAP_ORGANISATION: lsf
31-
LDAP_DOMAIN: copper.test.lk
33+
LDAP_DOMAIN: copper.support.lk
3234
LDAP_ADMIN_PASSWORD: admin
3335
LDAP_LOG_LEVEL: "256"
3436
LDAP_CONFIG_PASSWORD: admin
35-
LDAP_READONLY_USER: "false"
36-
LDAP_READONLY_USER_USERNAME: readonly
37-
LDAP_READONLY_USER_PASSWORD: readonly
37+
LDAP_READONLY_USER: "true"
38+
LDAP_READONLY_USER_USERNAME: raa
39+
LDAP_READONLY_USER_PASSWORD: raa
3840
LDAP_RFC2307BIS_SCHEMA: "false"
3941
LDAP_BACKEND: mdb
4042
LDAP_TLS: "true"
@@ -51,10 +53,10 @@ stringData:
5153
OU : Users
5254
LDAP_HOST_IP : ldap
5355
KEY_PATH : KEYPATH
54-
EMAIL : admin@copper.test.lk
55-
HOSTNAME : mail.copper.test.lk
56-
FQDN : mail.copper.test.lk
57-
DOMAIN : copper.test.lk
56+
EMAIL : admin@copper.support.lk
57+
HOSTNAME : mail.copper.support.lk
58+
FQDN : mail.copper.support.lk
59+
DOMAIN : copper.support.lk
5860
REDIS_HOST : REDIS_HOST
5961
REDIS_PORT : REDIS_PORT
6062
DEBUG : "true"

copper-server/kubernetes/emailserver/configs/Dovecot/dovecot-ldap.conf.ext

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ hosts = %LDAP_HOST_IP%
1111
# Distinguished Name - the username used to login to the LDAP server.
1212
# Leave it commented out to bind anonymously (useful with auth_bind=yes).
1313
#dn =
14+
#dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
1415
dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
15-
#dn = uid=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
1616
#dn = uid=admin,ou=%OU%,dc=%DC1%,dc=%DC2%,dc=%DC3%
1717

1818
# Password for LDAP server, if dn is specified.
19-
#dnpass =
19+
#dnpass = %ROPASS%
2020
dnpass = %DNPASS%
2121

2222
# Use authentication binding for verifying password's validity. This works by

copper-server/kubernetes/emailserver/configs/Postfix/ldap/ldap-virtual-mailbox-alias-maps.cf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ tls_ca_cert_file = /etc/ldap/tls/CA.pem
1313
tls_require_cert = yes
1414

1515
bind = yes
16+
#bind_dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
17+
#bind_pw = %DNPASS%
1618
bind_dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
17-
# bind_dn = uid=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
1819
bind_pw = %DNPASS%
1920

2021
#search_base = ou=Mail,dc=example,dc=com

copper-server/kubernetes/emailserver/configs/Postfix/ldap/ldap-virtual-mailbox-domains.cf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ tls_ca_cert_file = /etc/ldap/tls/CA.pem
1212
tls_require_cert = yes
1313

1414
bind = yes
15+
#bind_dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
16+
#bind_pw = %DNPASS%
1517
bind_dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
16-
# bind_dn = uid=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
1718
bind_pw = %DNPASS%
1819

1920
#search_base = ou=Mail,dc=example,dc=com

copper-server/kubernetes/emailserver/configs/Postfix/ldap/ldap-virtual-mailbox-maps.cf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ tls_ca_cert_file = /etc/ldap/tls/CA.pem
1313
tls_require_cert = yes
1414

1515
bind = yes
16+
#bind_dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
17+
#bind_pw = %DNPASS%
1618
bind_dn = cn=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
17-
# bind_dn = uid=%CN%,dc=%DC1%,dc=%DC2%,dc=%DC3%
1819
bind_pw = %DNPASS%
1920

2021
#search_base = ou=Mail,dc=example,dc=com

copper-server/kubernetes/emailserver/configs/init_sys.sh

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,37 +89,42 @@ chmod -R 755 /etc/letsencrypt/
8989
sed -i "s;pwrd;"${RSPAMD_PASSWORD}";g" "/etc/rspamd/local.d/worker-controller.inc"
9090

9191
#OpenLDAP with Dovecot conf
92-
sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
92+
#sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
93+
sed -i.bak -e "s;%CN%;"${RO}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
9394
sed -i.bak -e "s;%DC1%;"${DC1}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
9495
sed -i.bak -e "s;%DC2%;"${DC2}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
9596
sed -i.bak -e "s;%DC3%;"${DC3}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
96-
sed -i.bak -e "s;%DNPASS%;"${DNPASS}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
97+
#sed -i.bak -e "s;%DNPASS%;"${DNPASS}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
98+
sed -i.bak -e "s;%DNPASS%;"${ROPASS}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
9799
sed -i.bak -e "s;%OU%;"${OU}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
98100
sed -i.bak -e "s;%LDAP_HOST_IP%;"${LDAP_HOST_IP}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
99101
sed -i.bak -e "s;%DFQN%;"${FQDN}";g" "/etc/dovecot/dovecot-ldap.conf.ext"
100102

101103
#OpenLDAP with Postfix conf
102-
sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
104+
#sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
105+
sed -i.bak -e "s;%CN%;"${RO}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
103106
sed -i.bak -e "s;%DC1%;"${DC1}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
104107
sed -i.bak -e "s;%DC2%;"${DC2}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
105108
sed -i.bak -e "s;%DC3%;"${DC3}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
106-
sed -i.bak -e "s;%DNPASS%;"${DNPASS}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
109+
sed -i.bak -e "s;%DNPASS%;"${ROPASS}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
107110
sed -i.bak -e "s;%OU%;"${OU}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
108111
sed -i.bak -e "s;%LDAP_HOST_IP%;"${LDAP_HOST_IP}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-alias-maps.cf"
109112

110-
sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
113+
#sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
114+
sed -i.bak -e "s;%CN%;"${RO}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
111115
sed -i.bak -e "s;%DC1%;"${DC1}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
112116
sed -i.bak -e "s;%DC2%;"${DC2}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
113117
sed -i.bak -e "s;%DC3%;"${DC3}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
114-
sed -i.bak -e "s;%DNPASS%;"${DNPASS}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
118+
sed -i.bak -e "s;%DNPASS%;"${ROPASS}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
115119
sed -i.bak -e "s;%OU%;"${OU}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
116120
sed -i.bak -e "s;%LDAP_HOST_IP%;"${LDAP_HOST_IP}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-maps.cf"
117121

118-
sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
122+
#sed -i.bak -e "s;%CN%;"${CN}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
123+
sed -i.bak -e "s;%CN%;"${RO}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
119124
sed -i.bak -e "s;%DC1%;"${DC1}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
120125
sed -i.bak -e "s;%DC2%;"${DC2}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
121126
sed -i.bak -e "s;%DC3%;"${DC3}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
122-
sed -i.bak -e "s;%DNPASS%;"${DNPASS}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
127+
sed -i.bak -e "s;%DNPASS%;"${ROPASS}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
123128
sed -i.bak -e "s;%OU%;"${OU}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
124129
sed -i.bak -e "s;%LDAP_HOST_IP%;"${LDAP_HOST_IP}";g" "/etc/postfix/ldap/ldap-virtual-mailbox-domains.cf"
125130

copper-server/kubernetes/emailserver/email.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,21 @@ spec:
139139
secretKeyRef:
140140
name: email-secret
141141
key: DC3
142-
- name: DNPASS
142+
#- name: DNPASS
143+
# valueFrom:
144+
# secretKeyRef:
145+
# name: email-secret
146+
# key: DNPASS
147+
- name: RO
143148
valueFrom:
144149
secretKeyRef:
145150
name: email-secret
146-
key: DNPASS
151+
key: RO
152+
- name: ROPASS
153+
valueFrom:
154+
secretKeyRef:
155+
name: email-secret
156+
key: ROPASS
147157
- name: OU
148158
valueFrom:
149159
secretKeyRef:

0 commit comments

Comments
 (0)