Teh Hermit

This is an old revision of the document!


PrivateBin

PrivateBin - это простой paste-сервер, который поможет безопасным образом поделиться какой-либо информацией - с возможностью установить срок хранения этой информации, запаролить её и т.д.

Сайт проекта:

https://privatebin.info/ https://github.com/PrivateBin/PrivateBin/

Установка PrivateBin + Let's Encrypt

Сделаем apt update && apt upgrade и установим Git:

 apt update
 apt upgrade -y
 apt install -y git 

Установим набор необходимых веб-компонентов:

 apt update
 apt install -y apache2 php php-xml php-mbstring php-mysql php-json php-pdo 

Удостоверимся, что с апачем всё ОК:

 systemctl enable --now apache2.service

Создаем конфигурацию для сайта PrivateBin:

 nano /etc/apache2/sites-available/privatebin.conf

Добавляем содержимое в файл и меняем ServerName на имя, с которого хотим приходить на PrivateBin (к примеру, paste.jpolisher.com):

<VirtualHost *:80>
ServerName paste.jpolisher.com
DocumentRoot /var/www/html/PrivateBin/
ErrorLog ${APACHE_LOG_DIR}/privatebin-error.log
CustomLog ${APACHE_LOG_DIR}/privatebin-access.log combined
<Directory /var/www/html/PrivateBin>
AllowOverride All
</Directory>
</VirtualHost>

Включаем виртуальный хост:

 a2ensite privatebin.conf

Перезапускаем апач:

 systemctl reload apache2.service

Устанавливаем PrivateBin, используя Git:

 cd /var/www/html/ && git clone https://github.com/PrivateBin/PrivateBin.git

Устанавливаем права на файлы для Apache:

 chown -R www-data:www-data PrivateBin/

Создаем A-запись для имени, по которому планируем обращаться к сервису.

Установим certbot для использования сертификатов Let's Encrypt:

 sudo apt install certbot python3-certbot-apache

Запрашиваем сертификат для имени, используемого для PrivateBin:

 sudo certbot --apache -d example.com -d www.example.com

Проблема с хешем файла jp/privatebin.js (релиз 2.0.0)

После инсталляции (копированием с помощью git) PrivateBin версии 2.0.0 имеем проблему: развёрнутый сайт открывается и PrivateBin останавливается на стадии loading….

На странице есть ссылка, которая ведет на статью в Wiki о возможном решении проблемы:

https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-the-loading-message-not-go-away

Одним из возможных вариантов возникновения проблемы является использование сервисов Cloudflare, работающих как MITM. Однако, в моём случае Cloudflare не использовался.

Тем не менее, статья намекает на возможные проблемы с чексуммами файлов JS. Открыв развёрнутую инсталляцию PrivateBin (ту самую страницу с loading), и запустив на ней отладку браузера (F12), я увидел ошибку:

 None of the “sha512” hashes in the integrity attribute match the content of the subresource.

В статье описывается способ проверить чексуммы файлов JS. Можно сравнить чексумму исходного файла расположенного в моей инсталляции здесь: /var/www/html/privatebin/js/privatebin.js - с чексуммой, полученной в браузере во время отладки, а также с эталонной контрольной суммой, прописанной в конфигурации PrivateBin.

Получаем чексумму актуального файла:

 openssl dgst -sha512 -binary js/privatebin.js | openssl enc -base64

Чексумма файла у меня совпала с контрольной суммой, полученной в отладочном сообщении браузера, значит, JS файл не был изменен по дороге от сервера до клиента. А что в конфигах? Смотрим следующий файл:

 /var/www/html/privatebin/lib/Configuration.php

и строку в нём:

'js/privatebin.js' => 'sha512-mqzsqmoDJRcSQCjIU3TiE4vNqgpmjrwxhscCATiHwlAaMaat2J1epLUK7995vX71W6CfkpOWhz2dvwLQO/NQFg==',

Хеш отличался от хеша файла и от хеша, полученного в браузере!

Варианты: файл был модифицирован при скачивании, либо в данном релизе он не верный и это баг (источник загрузки перепроверил несколько раз, вероятно, всё-таки баг).

Меняем в конфиге хеш на контрольную сумму, полученную с помощью openssl, и всё начинает нормально работать.


Проблема с правами при генерации paste

Иногда можно увидеть проблему при генерации paste, связанную с правами. Ошибка выглядит так:

 privatebin Could not create document: Error saving document. Sorry.

В этом случае в первую очередь необходимо проверить папку:

/var/www/html/privatebin/data

Её овнером должен быть пользователь веб-сервера, в случае с обычным апач: www-data, а права установлены в 700.

privatebin.1759247001.txt.gz · Last modified: by jp