Сервер публичных ключей PGP

Материал из LinTest Wiki
(Различия между версиями)
Перейти к: навигация, поиск
 
м (1 версия)
 

Текущая версия на 16:15, 27 июля 2014

Ссылки: Первоисточник, Организация проверки 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

Выберите его как корневой (сервер по-умолчанию).

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты
Проекты