Внедрение сервиса ONE-TIME SECRET для передачи конфиденциальной информации

В процессе работы часто приходится отправлять различную конфиденциальную информацию коллегам или партнерам, например пароль для доступа к какой-то системе. Отправлять пароль просто по почте не безопасно, т.к. он там и останется и не факт, что при первом заходе на сервер его поменяют. Для этих целей существует сервис, который генерирует временную ссылку с информацией, которую мы хотим передать.
Ребята из ONE-TIME SECRET выложили свои наработки в открытый доступ, что бы каждый мог установить их сервер у себя в сети, собственно как я и поступил.

Установку производил на Centos 7 minimal. Как всегда перед началом, обновил и доустановил нужные мне пакеты:

# yum -y update
# yum -y install epel-release
# yum -y install net-tools vim mc wget unzip bash-completion telnet

Если мешает SeLinux, отключаем его:

# vim /etc/sysconfig/selinux

Правим строку на:

SELINUX=disabled

И перезагружаем сервер.

Установим пакеты, требующиеся для onetimesecret:

# yum -y install gcc gcc-c++ make libtool git ntp openssl-devel readline-devel libevent-devel libyaml-devel zlib-devel bzip2 bzip2-libs

Настройте правильное время на сервере, я на эти грабли наступил, что сервер заработал, но не генерировал ссылки!

Устанавливаем Ruby (при его сборке могут проскакивать warning, но это не страшно):

# mkdir ~/sources
# cd ~/sources
# wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
# tar xjf ruby-1.9.3-p551.tar.bz2
# cd ruby-1.9.3-p551
# ./configure && make
# make install
# gem install bundler

Устанавливаем Redis:

# cd ~/sources
# wget https://github.com/antirez/redis/archive/3.2.9.tar.gz
# tar zxf 3.2.9.tar.gz
# cd redis-3.2.9
# make
# make install

Устанавливаем One-Time Secret:

# adduser ots
# mkdir /etc/onetime
# chown ots /etc/onetime
# passwd ots
# su - ots
$ git clone https://github.com/onetimesecret/onetimesecret
$ cd onetimesecret
$ bundle install --frozen --deployment --without=dev
$ su -
# mkdir /var/log/onetime /var/run/onetime /var/lib/onetime
# chown ots /var/log/onetime /var/run/onetime /var/lib/onetime
# su - ots
$ cd onetimesecret
$ bin/ots init
$ cp -R etc/* /etc/onetime/
$ su -
# vim /etc/onetime/redis.conf

Раскомментируем строку:

requirepass *пароль для редис*

Настроим конфиг ots:

# vim /etc/onetime/config

Пример верхней части конфига, нижнюю можно не менять:

:site:
  :host: ots.company.ru:7143
  :domain: company.ru
  :ssl: true
  # NOTE Once the secret is set, do not change it (keep a backup offsite)
  :secret: *секретная фраза*
:redis:
  :uri: 'redis://user:*пароль для редис*@127.0.0.1:7179/0?timeout=10&thread_safe=false&logging=false'
  :config: /etc/onetime/redis.conf
:colonels:
  # Accounts created with the following email addresses
  # are automatically considered admins of the system.
  - mail@company.ru
:emailer:
   :mode: :smtp
   :from: mail@company.ru
   :host: smtpserver.company.ru
   :port: 25
   :tls: false
   :user:
   :pass:
   :auth: false

После этих настроек можно запустить One-Time Secret:

# su - ots
$ cd onetimesecret
$ redis-server /etc/onetime/redis.conf
$ bundle exec thin -e dev -R config.ru -p 7143 start

Если хотите запустить с https:

$ bundle exec thin -e dev -R config.ru -p 7143 start --ssl --ssl-key-file /etc/onetime/private.key --ssl-cert-file /etc/onetime/cert.crt

А можно настроить еще proxy server:

# yum -y install httpd mod_ssl
# systemctl enable httpd
# vim /etc/httpd/conf.d/ots.conf

Примерно с таким содержанием:

<VirtualHost *:80>
  ServerAdmin admin@company.ru
  DocumentRoot /var/www/html
  ServerName ots.company.ru
  ErrorLog logs/ots-error_log
  CustomLog logs/ots.ru-access_log common
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyVia full
  <proxy *>
    Order deny,allow
    Allow from all
  </proxy>
  ProxyPass        /   http://ots.company.ru:7143/
  ProxyPassReverse /   http://ots.company.ru:7143/
</VirtualHost>

<VirtualHost *:443>
  ServerName ots.company.ru
  ErrorLog logs/ots-error_log
  CustomLog logs/ots.ru-access_log common
  SSLEngine on
  SSLCertificateFile /etc/httpd/ssl/cert.crt
  SSLCertificateKeyFile /etc/httpd/ssl/private.key
  SSLProxyEngine On
  ProxyPreserveHost On
  ProxyPass / http://ots.company.ru:7143/
  ProxyPassReverse / http://ots.company.ru:7143/
</VirtualHost>
# systemctl start httpd

На этом все, можно открывать в браузере сайт https://ots.company.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *