Пред: , Вверх: Сетевая служба ключей   [Содержание][Указатель]


10.2 Обеспечение сетевой службы ключей

gpg-wks-server — реализация сервера сетевой службы ключей. Программа получает запросы на публикацию, отправляет запросы на подтверждение, получает подтверждения и публикует ключ. В ней есть также средства облегчения настройки и ведения сетевого каталога ключей.

При запуске с командой --receive, обрабатывается отдельное сообщение сетевой службы ключей. Обычно эта команда применяется с параметром --send, чтобы напрямую отправлять ответные сообщения. Пример установки см. ниже.

Команда --cron служит для регламентных работ. Например, неподтвержденные просроченные запросы удаляются. Эту команду рекомендуется выполнять раз в день из cron.

Команда --list-domains выводит все настроенные домены. Далее, она создает недостающие каталоги настроек, выводя предупреждения о проблемах в настройках.

Команда --check-key (или просто --check) проверяет, записан ли ключ с данным идентификатором пользователя в каталоге. В этом случае процесс возвращает код успешного завершения; чтобы дополнительно выводить диагностику, воспользуйтесь параметром -v. Если ключ не записан, выводится диагностическое сообщение, а процесс завершается с кодом ошибки; чтобы подавить диагностическое сообщение, воспользуйтесь параметром -q. Можно задавать более одного идентификатора пользователя; см. также параметр --with-file.

Команда --install-key записывает ключ в сетевой каталог вручную. Аргументы — файл с блоком ключа и идентификатор пользователя, который нужно записать. Если первый аргумент похож на отпечаток, ключ извлекается из текущей связки ключей; чтобы избежать этого, приписывайте к первому аргументу «./».

Команда --remove-key удаляет ключ из сетевого каталога. В этом случае процесс возвращает код успешного завершения; чтобы дополнительно выводить диагностику, воспользуйтесь параметром -v. Если ключ не записан, выводится диагностическое сообщение, а процесс завершается с кодом ошибки; чтобы подавить диагностическое сообщение, воспользуйтесь параметром -q.

Команда --revoke-key пока не функционирует.

gpg-wks-server распознает параметры:

--from адрес почты

Принять адрес почты как основной адрес отправителя.

--header имя=значение

Добавлять заголовок «имя: значение» ко всем исходящим сообщениям.

--send

Напрямую отправлять созданные сообщения по почте командой sendmail. Требует, чтобы эта программа была установлена.

--output файл
-o

Записать созданный файл также в файл. Если в качестве параметра задано -, запись будет производиться в стандартный поток вывода.

--with-dir

Выводить также имя каталога для каждого домена, перечисляемого командой --list-domains.

--with-file

При работе команды --check-key выводить для каждого идентификатора пользователя адрес, «i», если ключ записан или «n», если нет, а также имя файла.

--verbose

Включить вывод дополнительной информации.

--quiet

Отключить вывод почти всей информации.

--version

Вывести версию программы и завершиться.

--help

Вывести краткую справку и завершиться.

Примеры

Для сетевой службы ключей нужен рабочий каталог, где она хранит ключи, ожидающие публикации. Создайте рабочий каталог из-под учетной записи суперпользователя:

  # mkdir /var/lib/gnupg/wks
  # chown webkey:webkey /var/lib/gnupg/wks
  # chmod 2750 /var/lib/gnupg/wks

Затем из-под учетной записи webkey создайте каталоги для всех своих доменов. Здесь это делается для example.net:

  $ mkdir /var/lib/gnupg/wks/example.net

Наконец, запустите

  $ gpg-wks-server --list-domains

для создания требуемых подкаталогов с правильными атрибутами доступа. Для каждого домена нужно задать служебный адрес для запросов. Все сообщения службы будут направляться на этот адрес. Этот адрес может быть единым для всех настроенных доменов, например:

  $ cd /var/lib/gnupg/wks/example.net
  $ echo key-submission@example.net >submission-address

Протокол требует, чтобы ключ для публикации присылался в службу в зашифрованном сообщении. Таким образом, нужно создать ключ для служебного адреса:

  $ gpg --batch --passphrase '' --quick-gen-key key-submission@example.net
  $ gpg -K key-submission@example.net

Вывод последней команды выглядит так:

  sec   rsa2048 2016-08-30 [SC]
        C0FCF8642D830C53246211400346653590B3795B
  uid           [ultimate] key-submission@example.net
  ssb   rsa2048 2016-08-30 [E]

Скопируйте отпечаток из этого вывода и опубликуйте ключ вручную:

  $ gpg-wks-server --install-key C0FCF8642D830C53246211400346653590B3795B \
  >                key-submission@example.net

Наконец, этот служебный адрес нужно перенаправить на сценарий, запускающий gpg-wks-server. Для этого можно воспользоваться командой procmail: перенаправить служебный адрес на пользователя «webkey» и записать в его .procmailrc:

:0
* !^From: webkey@example.net
* !^X-WKS-Loop: webkey.example.net
|gpg-wks-server -v --receive \
     --header X-WKS-Loop=webkey.example.net \
     --from webkey@example.net --send

Пред: , Вверх: Сетевая служба ключей   [Содержание][Указатель]