Сервер публичных ключей 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
Файл:Pgp windows keyserver.png
Выберите его как корневой (сервер по-умолчанию).