Сервер публичных ключей PGP
Ссылки: Первоисточник, Организация проверки PGP подписей, PGPKeyserverSchema.zip, pgp-keyserver.schema
Содержание |
Установка сервера OpenLDAP
В данной статье рассматривается установка в организации простейшего сервера публичных ключей (keyserver) PGP работающего через LDAP на сервере CentOS 5.7. Далее предполагается, что сервер имеет сетевое имя: keyserver.example.com.
Для развёртывания сервера ключей понадобится установить OpenLDAP:
yum install openldap-servers openldap-clientsЗапускаем утилиту setup и в настройках межсетевого экрана "Разрешить входящие", "Другие порты" указываем порт "ldap".
Настройка конфигурационных файлов OpenLDAP
Для того чтобы openldap смог выступать в качестве сервера ключей необходимо добавить в файл настроек slapd.conf ссылки на схему pgp-keyserver.schema.
Минимальная настройка файла ldap.conf:
# # See ldap.conf(5) for details # This file should be world readable but not world writable. # BASE dc=EXAMPLE,dc=COM SIZELIMIT 0 TIMELIMIT 900
Ниже предложен минимальный вариант настройки slapd.conf:
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /etc/openldap/schema/pgp-keyserver.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
allow bind_v2
allow update_anon
allow bind_anon_cred
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
#######################################################################
# ldbm and/or bdb database definitions
#######################################################################
database ldif
suffix dc=EXAMPLE,dc=COM
rootdn cn=ROOT,dc=EXAMPLE,dc=RU
rootpw secret
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw {SSHA}rEOVfe4gEMuw1xj3URjwnGpCsjYhu9yr
access to * by * read
access to * by * write
access to * by * auth
# 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
index pgpCertID,pgpKeyID,pgpKeyType,pgpKeyCreateTime sub,eq
index pgpSignerID,pgpSubKeyID,pgpKeySize,pgpKeyExpireTime sub,eq
index pgpDisabled,pgpRevoked eq
Внимание! Данные настройки разрешают анонимный доступ, чтение, запись и удаление ключей на сервере LDAP. Это допустимо только если вам требуется обеспечить работу устаревших клиентов PGP, которые не поддерживают авторизацию при отправке ключей на сервер. В противном случае необходимо для анонимных клиентов ограничить доступ только для чтения. Кроме того в открытом виде здесь указан пароль secret, что тоже не рекомендуется.
В данных настройках указан формат базы ldif (простой текст), что вполне допустимо если на сервере хранится небольшое количество ключей. Это может быть удобно для упрощения процедуры резервного копирования. В остальных случаях рекомендуется использовать формат базы данных по-умолчанию bdb.
Первоначальное заполнение дерева
После добавления схемы и конфигурирования slapd.conf необходимо создать в LDAP следующее дерево:
dc=EXAMPLE,dc=COM
|
+----cn=PGPServerInfo
|
+----ou=PGP Keys
+---pgpCertID=...
+---pgpCertID=...
Это дерево можно создать либо при помощи phpLDAPAdmin, либо посредством файла example.ldif:
dn: dc=EXAMPLE,dc=COM dc: EXAMPLE objectClass: domain objectClass: top dn: ou=PGP Keys,dc=EXAMPLE,dc=COM ou: PGP Keys objectclass: organizationalUnit 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
Для этого выполните команду. Потребуется ввести пароль: secret.
ldapadd -xWD "cn=ROOT,dc=EXAMPLE,dc=COM" < example.ldif
Настройка GnuPG для работы с сервером ключей
Для работы GnuPG с сервером ключей необходимо прописать сервер ключей в файле настроек. В стандартной конфигурации этот файл находится в домашней директории пользователя ~/.gnupg/gpg.conf.
Пример настройки GnuPG, для работы с сервером ключей LDAP:
keyserver ldap://keyserver.example.com keyserver-options basedn="ou=PGP Keys,dc=EXAMPLE,dc=COM" keyserver-options binddn="cn=ROOT,dc=EXAMPLE,dc=COM" keyserver-options bindpw=secret keyserver-options auto-key-retrieve
Вышеприведённая конфигурация работает с сервером keyserver.example.com по протоколу ldap, от имени пользователя root. Очень важно здесь указать basedn, программа кладет и получает ключи непосредственно под этим base dn.
Настройка клиента PGP для Windows
В настройках клиента выберите вкладку серверы и добавьте новый сервер: ldap://keyserver.example.com:389
Выберите его как корневой (сервер по-умолчанию).
