Настройка GPG Keyserver на OpenLDAP

87898_original

PGP (англ. Pretty Good Privacy) — компьютерная программа,  позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации, представленной в электронном виде.

 

Будем настраивать PGP key server на openldap.
Для настройки сервера ключей нам потребуются пакеты:

sudo apt-get install slapd ldap-utils

 

Если нужно сменить суффикс:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f change_suffix.ldif
dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

Также нужно изменить RootDN:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f change_rootdn.ldif
dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com

и отредактировать правила доступа:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f change_access.ldif
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to * by self write by dn="cn=admin,dc=example,dc=com" write by * read

Проверяем:

ldapsearch -Q -Y EXTERNAL -H ldapi:/// -LLL -b cn=config 'olcDatabase={1}hdb'

 

 

Дальше нужно добавить родительскую запись:

ldapadd -x -W -D cn=admin,dc=keys,dc=example,dc=com  -H ldapi:/// -f root_dc.ldif
dn: dc=example,dc=com
objectClass: domain
dc: example
description: Example org

 

 

Теперь нам нужно добавить схемы. Качаем отсюда схемы:

  • pgp-keyserver.ldif
  • pgp-recon.ldif
  • pgp-remte-prefs.ldif

Копируем схемы в папку с схемами ldap:

cp schema2ldif/ldif/pgp-* /etc/ldap/slapd.d/cn\=config/cn\=schema/

и переименовываем:

mv pgp-keyserver.ldif cn={4}pgp-keyserver.ldif
mv pgp-recon.ldif cn={4}pgp-recon.ldif
mv pgp-remte-prefs.ldif cn={6}pgp-remte-prefs.ldif

Импортируем схемы:

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\={4}pgp-keyserver.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\={5}pgp-recon.ldif 
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f cn\={6}pgp-remte-prefs.ldif 

Будет ругаться что схемы уже есть, но это не страшно.

Проверяем:

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn

 

 

После этого создаем структуру директорий:

ldapadd -x -W -h localhost -D "cn=admin,dc=example,dc=com" < tree.ldif
dn: ou=PGP Keys,dc=example,dc=com
objectclass: organizationalUnit
ou: PGP Keys

dn: cn=PGPServerInfo,dc=example,dc=com
cn: PGPServerInfo
objectclass: pgpserverinfo
pgpSoftware: OpenLDAP
pgpVersion: 2.2.27
pgpBaseKeyspaceDN: ou=PGP Keys,dc=example,dc=com

dn: ou=PGP Users,dc=example,dc=com
objectclass: organizationalUnit
ou: PGP Users

GPG работает по протоколу LDAPv2, нужно разрешить его использование на сервере:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f ldapv2.ldif
dn: cn=config
add: olcAllows
olcAllows: bind_v2

Для того что бы добавить пользователя создаем файл user.ldif с таким содержанием:

dn: uid=Test,ou=PGP Users,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: uidObject
uid: Test
# password is 'user1'. Use slappasswd(8) to create a new
# one and replace the string here!
userPassword: {SSHA}zSWJoeqKqccJrrEcW0wf0X5e7D/w7pyW
cn: Test
sn: Test
mail: test@example.com
uSerCertificate;binary::

В uSerCertificate;binary:: вставляем то что находится между ——BEGIN CERTIFICATE—— и ——END CERTIFICATE—— без переносов.

После добавляем нового пользователя командой:

ldapadd -x -h localhost -W -D "cn=admin,dc=example,dc=com" <user.ldif

Если пользователь уже существует то создаем файл addcert.ldif c таким содержанием:

dn: uid=Test,ou=PGP Users,dc=example,dc=com
changetype: modify
add: userCertificate;binary
userCertificate;binary::

Так же как и в случае создания пользователя в uSerCertificate;binary:: вставляем то что находится между ——BEGIN CERTIFICATE—— и ——END CERTIFICATE—— без переносов.

Вносим изменения командой:

ldapmodify -x -W -D "cn=admin,dc=example,dc=com" -f addcert.ldif

 

Добавляем наш PGP Key Server в dirmngr_ldapservers.conf:

<ip>:<port>:<user>:<password>:<base dn>

dreamway89

dreamway89 wrote 29 posts

Post navigation


Добавить комментарий

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>