понедельник, 31 декабря 2018 г.

Получение Let's Encrypt Certificate используя docker и nginx


Для обоих вариантов осводим порт 80 !!!
Вариант № 1 (левый quay.io/letsencrypt/letsencrypt)
Let's Encrypt Certificate Generation Using Docker

$ mkdir -p /home/user/letsencrypt/certs

$ docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx

$ docker run -it --name letsencrypt  --rm -v /home/user/letsencrypt/certs:/etc/letsencrypt --volumes-from nginx quay.io/letsencrypt/letsencrypt certonly --agree-tos --webroot --webroot-path /usr/share/nginx/html -m certs@zaz60.com -d zaz60.com -d www.zaz60.com

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zaz60.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/zaz60.com/privkey.pem
   Your cert will expire on 2019-03-31. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

$ docker stop nginx
$ docker rm nginx

Сертификаты /home/user/letsencrypt/certs

Вариант № 2 (официальный certbot/certbot)
Generate and renew Let’s Encrypt Certificates for Apache with Certbot Docker container

$ mkdir -p /home/user/letsencrypt/certs

$ docker pull certbot/certbot

$ docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx

$ docker run -it --rm -v /home/user/letsencrypt/certs:/etc/letsencrypt  --volumes-from nginx certbot/certbot certonly --webroot --webroot-path=/usr/share/nginx/html -d zaz60.com --email info@zaz60.com --agree-tos

 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zaz60.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/zaz60.com/privkey.pem
   Your cert will expire on 2019-03-31. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Сертификаты /home/user/letsencrypt/certs


Вариант № 3 (показался мне самым лучшим)
Automating the management of HTTPS certificates in a Dockerized environment with Let’s Encrypt

$ docker volume create --name certs
$ docker run -v certs:/etc/letsencrypt -e http_proxy=$http_proxy -e domains="www.zaz60.com" -e email="info@zaz60.com" -p 80:80 -p 443:443 --rm pierreprinetti/certbot:latest

Сертификаты /var/lib/docker/volumes/certs/_data/

Запускаем Postfix в Docker-контейнере и настраиваем PTR, SPF, DKIM и DMARC

Настройка обратного прокси nginx docker-compose на примере wordpress

Setting up a Reverse-Proxy with Nginx and docker-compose
Use NGINX As A Reverse Proxy To Your Containerized Docker Applications
Docker compose : NGINX reverse proxy with multiple containers
Nextcloud via Docker with nginx reverse proxy
Docker Compose wordpress

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

$ mkdir  -p /home/user/wordpress
$ nano /home/user/wordpress/docker-compose.yml

version: '3'

services:
   db:
     image: mysql:5.7
     container_name: db
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     container_name: wordpress
     expose:
       - "80"
     volumes:
       - html:/var/www/html
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress

   nginx:
    image: nginx:latest
    container_name: production_nginx
    volumes:
     - ./nginx.conf:/etc/nginx/nginx.conf
     - ./certs:/etc/letsencrypt
    restart: always
    ports:
      - 80:80
      - 443:443

volumes:
    db_data:
    html:

Сохранить

$ nano /home/user/production_nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
  upstream target {
      server wordpress:80;
  }

  server {
      listen 443 ssl;
      server_name zaz60.com;
      ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;

      location / {
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Port $server_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://target;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          # This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
          proxy_read_timeout 900s;
      }
  }

  server {
      listen 80;
      server_name zaz60.com;
      return 301 https://$server_name$request_uri;
  }
}

Сохранить

$ cd /home/user/wordpress

$ docker-compose up -d
$ docker-compose down


Установка автономного сервера

# установка  автономного сервера 1с (файловый вариант)
$ cd ~/test
#$ sudo apt-get install -y locales
$ sudo localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8 
$ sudo apt install libfreetype6 libgsf-1-common unixodbc glib2.0
$ sudo  apt install -y xfonts-utils cabextract
$ sudo dpkg -i fonts-ttf-ms_1.0-eter4ubuntu_all.deb
#$ sudo apt -f -y install
$ sudo dpkg -i 1c-enterprise83-common_8.3.14-1494_amd64.deb 1c-enterprise83-server_8.3.14-1494_amd64.deb
#$sudo apt -f -y install
sudo chown -R usr1cv8:grp1cv8 /opt/1C



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

$ mkdir -p /home/user/file-db/
$ /opt/1C/v8.3/x86_64/ibcmd infobase create --db-path='/home/user/file-db/' --restore='/home/user/test/1Cv8_zgu_3.1.7.128_+3000.dt'

Запуск файловой базы из конкретной папки

$ /opt/1C/v8.3/x86_64/ibsrv --db-path='/home/usr1cv8/.1cv8/1C/1cv8/standalone-server/file-db/' --address=any --port=8080


/opt/1C/v8.3/x86_64/ibcmd infobase create --restore='/home/user/test/1Cv8_zgu_3.1.7.128_+3000.dt'

воскресенье, 30 декабря 2018 г.

Let’s Encrypt Certbot

Let’s Encrypt
Certbot
docker-nginx-certbot
Let's Encrypt Certificate Generation Using Docker

# apt update -y
# apt upgrade -y
# apt install mc -y
# adduser user
# usermod -aG sudo user
# reboot
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Отпечаток ключа = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

$ sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo usermod -aG docker $(whoami)
$ sudo reboot

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

$ git clone https://github.com/diresi/docker-nginx-certbot.git

$ cd docker-nginx-certbot
Правим:
$ nano  ~/docker-nginx-certbot/.env

Правим:
$ nano  ~/docker-nginx-certbot/docker-compose.yml

            - /letsencrypt:/etc/letsencrypt


$ sudo docker-compose up -d
$ docker-compose exec nginx /etc/nginx/ssl/certbot.sh -v 
$ sudo docker-compose down

Сертификаты в /letsencrypt

$ sudo apt-get install nginx

$ sudo nano /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
  upstream target {
      server localhost:8080;
  }

  server {
      listen 443 ssl;
      server_name www.zaz60.com;
      ssl_certificate /letsencrypt/live/zaz60.com/fullchain.pem;
      ssl_certificate_key /letsencrypt/live/zaz60.com/privkey.pem;

      location / {
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Port $server_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://target;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          # This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
          proxy_read_timeout 900s;
      }
  }

  server {
      listen 80;
      server_name www.zaz60.com;
      return 301 https://$server_name$request_uri;
  }
}

Сохранить.

$ sudo nginx -t
$ sudo service nginx restart

Quickstart: Compose and WordPress
Настройка контейнера docker для разработки и тестирования WordPress
Установка wordpress
$ cd ~
$ mkdir wordpress
$ cd wordpress

$ nano docker-compose.yml

version: '2'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8080:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

Сохранить.


Установка Rancher 1.6

Installer Rancher 1.6 avec let's encrypt sur Ubuntu
# apt update -y
# apt upgrade -y
# apt install mc -y
# adduser user
# usermod -aG sudo user
# reboot
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Отпечаток ключа = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

$ sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo usermod -aG docker $(whoami)
$ sudo reboot

 
$ docker run -d --restart=always -p 8080:8080 rancher/server
http://ip:8080

$ cd ~
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto
$ ./certbot-auto certonly
$ sudo apt-get install nginx
$ sudo nano /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
  upstream target {
      server localhost:8080;
  }

  server {
      listen 443 ssl;
      server_name www.zaz60.com;
      ssl_certificate /etc/letsencrypt/live/www.zaz60.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/www.zaz60.com/privkey.pem;

      location / {
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_set_header X-Forwarded-Port $server_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://target;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          # This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
          proxy_read_timeout 900s;
      }
  }

  server {
      listen 80;
      server_name www.zaz60.com;
      return 301 https://$server_name$request_uri;
  }
}

Сохранить.

$ sudo nginx -t
$ sudo service nginx restart

How to Set Up Free SSL Certificates from Let's Encrypt using Docker and Nginx

How to Set Up Free SSL Certificates from Let's Encrypt using Docker and Nginx

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose


$ sudo mkdir -p /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site
$ sudo nano /docker/letsencrypt-docker-nginx/src/letsencrypt/docker-compose.yml

version: '3.1'

services:

  letsencrypt-nginx-container:
    container_name: 'letsencrypt-nginx-container'
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./letsencrypt-site:/usr/share/nginx/html
    networks:
      - docker-network

networks:
  docker-network:
    driver: bridge

Сохранить

$ sudo nano /docker/letsencrypt-docker-nginx/src/letsencrypt/nginx.conf

server {
    listen 80;
    listen [::]:80;
    server_name ohhaithere.com www.ohhaithere.com;

    location ~ /.well-known/acme-challenge {
        allow all;
        root /usr/share/nginx/html;
    }

    root /usr/share/nginx/html;
    index index.html;
}

Сохранить

$ sudo nano /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site/index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Let's Encrypt First Time Cert Issue Site</title>
</head>
<body>
    <h1>Oh, hai there!</h1>
    <p>
        This is the temporary site that will only be used for the very first time SSL certificates are issued by Let's Encrypt's
        certbot.
    </p>
</body>
</html>

Сохранить

$ cd /docker/letsencrypt-docker-nginx/src/letsencrypt

$ sudo docker-compose up -d

sudo docker run -it --rm \
-v /docker-volumes/etc/letsencrypt:/etc/letsencrypt \
-v /docker-volumes/var/lib/letsencrypt:/var/lib/letsencrypt \
-v /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site:/data/letsencrypt \
-v "/docker-volumes/var/log/letsencrypt:/var/log/letsencrypt" \
certbot/certbot \
certonly --webroot \
--register-unsafely-without-email --agree-tos \
--webroot-path=/data/letsencrypt \
--staging \
-d zaz60.com -d www.zaz60.com

$ sudo rm -rf /docker-volumes/

sudo docker run -it --rm \
-v /docker-volumes/etc/letsencrypt:/etc/letsencrypt \
-v /docker-volumes/var/lib/letsencrypt:/var/lib/letsencrypt \
-v /docker/letsencrypt-docker-nginx/src/letsencrypt/letsencrypt-site:/data/letsencrypt \
-v "/docker-volumes/var/log/letsencrypt:/var/log/letsencrypt" \
certbot/certbot \
certonly --webroot \
--register-unsafely-without-email --agree-tos \
--webroot-path=/data/letsencrypt \
-d zaz60.com -d www.zaz60.com


$ cd /docker/letsencrypt-docker-nginx/src/letsencrypt
$ sudo docker-compose down

Setup DNS from godaddy with Digital Ocean Host- IDN Domain Setup

понедельник, 24 декабря 2018 г.

Astra Linux Орёл 2.12 КриптоПро 4.0.9944 госзакупки и площадки

Данная статья устарела, так как изменились корневые сертификаты и версия Крипто-Про !

Смотрим здесь!

Astra Linux
Орёл 2.12 wiki
astralinux доступ к госзакупкам
Инструкция по настройке и работе с Крипто-Про для государственных порталов

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install samba ssh
$ sudo systemctl  enable ssh
$ sudo systemctl  start ssh

$ sudo apt install xrdp

либо 

Установка дополнений VirtualBox $ sudo apt install gcc make perl linux-headers-generic linux-headers-`uname -r`
Вставить диск дополнений
$ sudo mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
$ sudo bash /mnt/VBoxLinuxAdditions.run

$ sudo reboot

Проверка:
$ sudo modinfo vboxguest
filename:       /lib/modules/4.15.3-1-generic/misc/vboxguest.ko
version:        5.2.12 r122591
license:        GPL
description:    Oracle VM VirtualBox Guest Additions for Linux Module
author:         Oracle Corporation
srcversion:     97DF7F909E8F8138956CB2D
alias:          pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i*
depends:
retpoline:      Y
name:           vboxguest
vermagic:       4.15.3-1-generic SMP mod_unload

$ cat /etc/astra_version
CE 2.12.7 (orel)

Устанавливаем КриптоПро 4.0.9944
$ tar -zxf linux-amd64_deb.tgz
$ cd linux-amd64_deb
$ sudo ./install_gui.sh

Проверяем версию:
$ /opt/cprocsp/bin/amd64/csptest -keyset -verifycontext
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 41054611
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Total: SYS: 0,000 sec USR: 0,010 sec UTC: 0,060 sec
[ErrorCode: 0x00000000]



Отключаем реакцию на кривой сертификат госзакупок
$ sudo  /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add bool Rfc6125_NotStrict_ServerName_Check true

Проверка отключения:
$  sudo  /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave
HSECPKG_ATTR_PACKAGE_INFO not supported.
DEContext expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
1 connections, 589 bytes in 1.771 seconds;
Total: SYS: 0,150 sec USR: 0,280 sec UTC: 1,830 sec
[ErrorCode: 0x00000000]


$ export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"


$ sudo apt install alien
$ cd ~/
$ mkdir cades_linux_amd64
$  cd ~/cades_linux_amd64
Браузером из под орла:
Скачать плагин
Установить плагин:
$ tar -zxf cades_linux_amd64.tar.gz
$ sudo alien -dc cprocsp-pki-2.0.0-amd64-cades.rpm
$ sudo alien -dc cprocsp-pki-2.0.0-amd64-plugin.rpm
$ sudo dpkg -i cprocsp-pki-cades_2.0.0-2_amd64.deb cprocsp-pki-plugin_2.0.0-2_amd64.deb

Проверка плагина

Установка личного сертификата выданного казначейством:

Копируем контейнер в
/var/opt/cprocsp/keys/user

$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 40317331
\\.\HDIMAGE\PRIZMA1
OK.
Total: SYS: 0,000 sec USR: 0,010 sec UTC: 0,140 sec
[ErrorCode: 0x00000000]

Установить скопированный контейнер:

$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\PRIZMA1'

Просмотор личных сертификатов:

$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy

Сертификат головного удостверящего центра центра уже установлен в mRoot

Просмотр:
$ sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot


Если случайно удалили:
Скачаем и установим в mRoot
Сертификаты zakupki.gov.ru
Качаем Сертификат Головного удостоверяющего центра и Сертификат Удостоверяющего центра Федерального казначейства

$ sudo /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Головного удостоверяющего центра.cer' -store mRoot

$ sudo /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Удостоверяющего центра Федерального казначейства.cer' -store mRoot

Просмотр:
$ sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot


Проверка цепочек
$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy
Смотрим: 
CN='Фёдорова Галина Борисовна'

$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN='Фёдорова Галина Борисовна' -df ~/t.cer
.....
.....
.....
Certificate chains are checked.
Certificate's been copied.
[ReturnCode: 0]

или

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]

Проверка подписи:
Для firefox и установить в браузере
Скачать расширение
Проверка плагина


После этого успешно заходим на сайт госзакупок браузером chromium

Установка личного сертификата выданного калуга-астрал:

Копируем контейнер в
/var/opt/cprocsp/keys/user

Установить скопированный контейнер:

$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\test'

Установка головного сертификата удостверяющего центра (из сертификата Калуга-Астрал):

$ mkdir  ~/CAs
$ wget -P ~/CAs $(/opt/cprocsp/bin/amd64/certmgr -list -store uMy | awk '/CA cert URL/ { print $5 }')
for cert in $(ls -1 ~/CAs/*.cer); do sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file $cert; done


Просмотр:
$ sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot

После этого можно заходить на основные торговые площадки.
 

Проверено подписывает:
Единая электронная торговая площадка


Проверено подписывает:
Единая электронная торговая площадка


Проверно подписывает:
Сбербанк-АСТ


Установка IFCPlugin для gosuslugi.ru
IFCPlugin-3.0.0-x86_64.deb.zip
ifc.cfg.zip


$ unzip IFCPlugin-3.0.0-x86_64.deb.zip
$ sudo apt install libccid pcscd
$ sudo dpkg -i IFCPlugin-3.0.0-x86_64.deb

создаем симлинк для корректной работы связи расширения браузера с библиотекой установленного плагина

$ sudo ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts/ru.rtlabs.ifcplugin.json



Заходим в каталог куда скачали архив
$ unzip ifc.cfg.zip

Копируем конфигурационный файл

 $ sudo cp ifc.cfg /etc/ifc.cfg

Установить Расширение для gosuslugi.ru

Перейти в меню - Дополнительные инструменты - Расширения и включить плагин


Электронная площадка  Березка с авторизацией на госуслугах

суббота, 22 декабря 2018 г.

Установка MediaWiki в docker


Installing and Using MariaDB via Docker
Docker Official Images mariadb
mediawiki

Удалить все контейнеры
$ docker rm -f $(docker ps -aq)

$ docker pull mariadb/server:10.3
Задаем пароль root  mypass :
------------------------------------------------------------------------------------------------------------------------ 
Вариант через link
$ docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -d mariadb/server:10.3
$ docker run --name some-mediawiki --link mariadbtest -p 80:80 -d mediawiki

Хост базы данных mariadbtest

------------------------------------------------------------------------------------------------------------------------
Вариант через ip host 
$ docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -p 3306:3306 -d mariadb/server:10.3

$ docker run --name some-mediawiki -p 80:80 -d mediawiki 
Хост базы данных ip host

------------------------------------------------------------------------------------------------------------------------

$ docker exec -it some-mediawiki bash
# apt update
# apt install mc nano
Скачать LocalSettings.php по ссылке полученной в процессе конфигурации
# nano LocalSettings.php
Вставить  содержимое LocalSettings.php
$wgEnableUploads = true

# exit

Справка:Форматирование

среда, 19 декабря 2018 г.

Скрипт завершения работы пользователей

/etc/systemd/system/ras.service 1C for Linux
Платформа 8.3 → Не могу запустить сервер RAS

sudo -u usr1cv8 /opt/1C/v8.3/x86_64/ras --daemon cluster


Внимание скрипт, на один кластер 1С !!!
$ nano terminate.sh

Вставить текст ниже:


#!/bin/bash
if ! pgrep 'ras'; then sudo su usr1cv8 -c "/opt/1C/v8.3/x86_64/ras --daemon cluster"; fi
sleep 5
_cluster=$(/opt/1C/v8.3/x86_64/rac cluster list  | grep 'cluster'| awk -F' ' '{print $3}')
_base=$(/opt/1C/v8.3/x86_64/rac infobase --cluster=$_cluster summary list | grep 'infobase '| awk '{print$3}')
_session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3}')
echo 'кластер: ' $_cluster
echo 'базы: ' $_base
echo 'сессии:  ' $_session
for session in $_session
do
/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster terminate --session=$session
done
_session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3}')
echo 'сессии:  ' $_session

Сохранить.

$ sh terminate.sh

$ sudo nano /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh /home/user/terminate.sh

exit 0

Для windows :
 
Сервер администрирования кластера серверов 1C:Предприятия и deployka

Вариант с установленной службой Сервера администрирования кластера

Файл register-ras.bat:

@echo off
rem %1 - полный номер версии 1С:Предприятия
set ver=8.3.13.1690
set SrvUserName=.\USR1CV8
set SrvUserPwd="pass"
set CtrlPort=1540
set AgentName=localhost
set RASPort=1545
set SrvcName="1C:Enterprise 8.3 Remote Server"
set BinPath="\"C:\Program Files\1cv8\%ver%\bin\ras.exe\" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%"
set Desctiption="1C:Enterprise 8.3 Remote Server"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%

sc start %SrvcName%

Сохранить.


Внимание скрипт, на все кластеры 1С !!!
Файл terminate.bat:


@echo off
SET ver=8.3.13.1690
"c:\Program Files\1cv8\%ver%\bin\rac.exe" cluster list > %temp%\tmp.txt
REM type %temp%\tmp.txt
findstr "cluster" %temp%\tmp.txt > %temp%\tmp1.txt
REM type %temp%\tmp1.txt
FOR /F "tokens=2,* delims=: " %%i IN (%temp%\tmp1.txt) DO (
      REM echo %%i
      "c:\Program Files\1cv8\%ver%\bin\rac" session --cluster=%%i list > %temp%\tmp2.txt
      REM type %temp%\tmp2.txt
      findstr /C:"session " %temp%\tmp2.txt > %temp%\tmp3.txt
      FOR /F "tokens=2,* delims=: " %%j IN (%temp%\tmp3.txt) DO (
            REM echo %%j
            rac session --cluster=%%i terminate --session=%%j)
            )
REM PAUSE


Сохранить. 



Удаление PostgreSQL 10.3-3.1C

Аналог apt-get purge для yum
ubuntu
$ dpkg -l | grep postgresql
ii  pgdg-keyring                          2018.2                                     all          keyring for apt.postgresql.org
hi  postgresql-10                         10.3-3.1C                                  amd64        object-relational SQL database, version 10 server
hi  postgresql-10-dbg                     10.3-3.1C                                  amd64        debug symbols for postgresql-10
hi  postgresql-client-10                  10.3-3.1C                                  amd64        front-end programs for PostgreSQL 10
hi  postgresql-client-common              195.pgdg16.04+1                            all          manager for multiple PostgreSQL client versions
hi  postgresql-common                     195.pgdg16.04+1                            all          PostgreSQL database-cluster manager
hi  postgresql-doc-10                     10.3-3.1C                                  all          documentation for the PostgreSQL database management system
hi  postgresql-plperl-10                  10.3-3.1C                                  amd64        PL/Perl procedural language for PostgreSQL 10
hi  postgresql-plpython-10                10.3-3.1C                                  amd64        PL/Python procedural language for PostgreSQL 10
hi  postgresql-plpython3-10               10.3-3.1C                                  amd64        PL/Python 3 procedural language for PostgreSQL 10
hi  postgresql-pltcl-10                   10.3-3.1C                                  amd64        PL/Tcl procedural language for PostgreSQL 10
hi  postgresql-server-dev-10              10.3-3.1C                                  amd64        development files for PostgreSQL 10 server-side programming



$ sudo dpkg -r postgresql-plpython-10
$ sudo dpkg -r postgresql-plpython3-10
$ sudo dpkg -r postgresql-plperl-10
$ sudo dpkg -r postgresql-pltcl-10
$ sudo dpkg -r postgresql-10-dbg
$ sudo dpkg -r postgresql-10

$ sudo dpkg --purge postgresql-10
$ sudo dpkg -r  postgresql-client-10
$ sudo dpkg -r  postgresql-doc-10
$ sudo dpkg -r postgresql-server-dev-10

Если полностью, то

$ sudo apt remove postgresql-client-common
$ sudo apt remove postgresql-common

$ dpkg -l | grep postgresql
ii  pgdg-keyring                          2018.2                                     all          keyring for apt.postgresql.org
hi  postgresql-client-common              195.pgdg16.04+1                            all          manager for multiple PostgreSQL client versions
hi  postgresql-common                     195.pgdg16.04+1                            all          PostgreSQL database-cluster manager


mkdir -p /tmp/post
cp /home/user/test/postgresql_10.5_9.1C_amd64_deb.tar.bz2 /tmp/post/
cp /home/user/test/postgresql_10.5_9.1C_amd64_addon_deb.tar.bz2 /tmp/post/
cd /tmp/post
tar -xvf postgresql_10.5_9.1C_amd64_deb.tar.bz2
cd  postgresql-10.5-9.1C_amd64_deb
sudo dpkg -i *.deb
cd /tmp/post/
tar -xvf postgresql_10.5_9.1C_amd64_addon_deb.tar.bz2
cd postgresql-10.5-9.1C_amd64_addon_deb
sudo dpkg -i *.deb

dpkg -l | grep 10.5-9.1C | awk -F' ' '{print $2}' | sudo xargs apt-mark hold
sudo apt-mark hold postgresql-common postgresql-client-common

sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
sudo cp /etc/postgresql/10/main/postgresql.conf /etc/postgresql/10/main/postgresql.conf.bak
#sudo rm /etc/apt/sources.list.d/postgresql.list
#sudo apt update  -y
#Делаем проверки
#sudo systemctl status postgresql.service
#ss -tunpl | grep 5432
# $ ps aux | grep postgres | grep -- -D
postgres  4914  0.0  0.1 320972 28864 ?        S    08:37   0:00 /usr/lib/postgresql/10/bin/postgres -D /var/lib/postgresql/10/main -c config_file=/etc/postgresql/10/main/postgresql.conf

centos:

$ sudo yum list installed | grep 10.3-3.1C
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
postgresql10.x86_64                   10.3-3.1C                        installed
postgresql10-contrib.x86_64           10.3-3.1C                        installed
postgresql10-debuginfo.x86_64         10.3-3.1C                        installed
postgresql10-devel.x86_64             10.3-3.1C                        installed
postgresql10-docs.x86_64              10.3-3.1C                        installed
postgresql10-libs.x86_64              10.3-3.1C                        installed
postgresql10-plperl.x86_64            10.3-3.1C                        installed
postgresql10-plpython.x86_64          10.3-3.1C                        installed
postgresql10-pltcl.x86_64             10.3-3.1C                        installed
postgresql10-server.x86_64            10.3-3.1C                        installed
postgresql10-test.x86_64              10.3-3.1C                        installed




$ sudo yum remove postgresql10.x86_64
$ sudo yum remove postgresql10-libs.x86_64
$ sudo yum remove postgresql10-debuginfo.x86_64
$ sudo yum remove postgresql10-docs.x86_64
$ sudo yum list installed | grep 10.3-3.1C

Удалить файлы с кластером

$ mkdir -p /tmp/post

$ cp /home/user/test/postgresql_10.5_9.1C_x86_64_rpm.tar.bz2 /tmp/post/
$ cp /home/user/test/postgresql_10.5_9.1C_x86_64_addon_rpm.tar.bz2 /tmp/post/
$ cd /tmp/post
$ tar -xvf postgresql_10.5_9.1C_x86_64_rpm.tar.bz2
$ cd postgresql-10.5-9.1C_x86_64_rpm
$ sudo yum localinstall -y *.rpm
$ cd /tmp/post/
$ tar -xvf postgresql_10.5_9.1C_x86_64_addon_rpm.tar.bz2
$ cd postgresql-10.5-9.1C_x86_64_addon_rpm
$ sudo yum localinstall -y *.rpm
$ sudo su - postgres
-bash-4.2$ /usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data --locale=ru_RU.UTF-8
$ exit
$ sudo systemctl start postgresql-10
$ sudo systemctl enable postgresql-10
#$ sudo systemctl status postgresql-10
#-bash-4.2$ /usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data -l logfile start
 $ sudo su - postgres
-bash-4.2$ /usr/pgsql-10/bin/psqlpostgres=# ALTER USER postgres WITH PASSWORD 'pass'
postgres=# exit
-bash-4.2$ psql -l

-bash-4.2$ exit
$ sudo reboot

#$ sudo service postgresql-10 start
#$ sudo chkconfig postgresql-10 on
$ sudo service postgresql-10 status







суббота, 15 декабря 2018 г.

Доступ zakupki.gov.ru Not Secure

ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ
Andrey, [05.10.18 11:28]
[В ответ на Дмитрий Давидович]
У них кривой сертификат сервера.
Диагностировать можно так:
[root@test-x64-centos7 ~]# /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -v -nosave -savecert /tmp/t.p7b
[root@test-x64-centos7 ~]# /opt/cprocsp/bin/amd64/certmgr -list -file /tmp/t.p7b
=============================================================================
1-------
Issuer              : E=uc_fk@roskazna.ru, S=г. Москва, INN=007710568760, OGRN=1047797019830, STREET="улица Ильинка, дом 7", L=Москва, C=RU, O=Федеральное казначейство, CN=Федеральное казначейство
Subject             : INN=007710568760, OGRN=1047797019830, STREET="ул. Проспект Мира, 105", E=777@roskazna.ru, C=RU, S=г. Москва, L=Москва, O=Федеральное казначейство, CN=zakupki.gov.ru
Serial              : 0x6F064FA71C24CD7E2CE6FAAEA927D8C7EC69A35F
SHA1 Hash           : c369b560ce239beddb2fc12b4884dee1cfc923aa
SubjKeyID           : 10c6d12e7cd886d022bcdfea4cbe10e32acf82bc
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Public key          : 04 40 1b ce 0b 15 6a 4a 57 e0 1b d8 39 ee 86 83
                      32 70 ea db fd f5 39 c1 e6 de 3c c8 be 10 81 03
                      5d da 0b 3b 09 7a d3 0d 46 33 58 11 3b 20 94 99
                      fe 04 fe 8e e6 bc 32 53 ff 2e 71 10 8e e2 12 a1
                      52 cf
Not valid before    : 21/12/2017  06:06:33 UTC
Not valid after     : 21/03/2019  06:06:33 UTC
PrivateKey Link     : No
Subject Alt Names
  UPN               : ▒㌴ (2.5.4.12)
  URL               : 0
CDP                 : http://crl.roskazna.ru/crl/ucfk.crl
CDP                 : http://crl.fsfk.local/crl/ucfk.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.1
...

При наличии расширения Subject Alt Names RFC требует сверять имя сервера с ним, а не с полем CN. Поэтому CN=zakupki.gov.ru отброшен, а в Subject Alt Names хрень.

ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ
Andrey, [05.10.18 11:35]
Но мы сделали параметр для отключения требований RFC6125, который может подвергнуть систему опасности для атак с подменой сертификатов:
[root@test-x64-centos7 ~]# /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long Rfc6125_NotStrict_ServerName_Check 1
[root@test-x64-centos7 ~]# /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave
HDEContext expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
1 connections, 586 bytes in 0.186 seconds;
Total: SYS: 0,020 sec USR: 0,140 sec UTC: 0,230 sec
[ErrorCode: 0x00000000]

#  /opt/cprocsp/bin/amd64/csptest -keyset -verifycontext
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 25072019
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,010 sec
[ErrorCode: 0x00000000]

L K, [15.12.18 14:12]
[В ответ на Andrey]
root@astra:~# /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long Rfc6125_NotStrict_ServerName_Check 1
root@astra:~#  /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave
HSECPKG_ATTR_PACKAGE_INFO not supported.
Error 0x800b010f (CERT_E_CN_NO_MATCH) returned by CertVerifyCertificateChainPolicy!
An error occurred in running the program.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/csptest/WebClient.c:764:Error authenticating server credentials!
Error number 0x800b010f (2148204815).
CN-имя сертификата не совпадает с полученным значением.
Total: SYS: 0,070 sec USR: 0,290 sec UTC: 1,720 sec
[ErrorCode: 0x800b010f]

#  /opt/cprocsp/bin/amd64/csptest -keyset -verifycontext
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 25072019
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,010 sec
[ErrorCode: 0x00000000]

Какой релиз КриптоПро нужно ставить?

ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ 
Andrey, [12.12.18 18:12]
Вышел финальный релиз КриптоПро CSP 4.0 R4 (сборка 4.0.9963 Abel):
https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=97735#post97735
На дистрибутив получено положительное заключение, скоро будет сертификат.
В тестовых целях её можно установить из нашего репозитория:
https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=12507

ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ
Andrey, [15.12.18 23:07]
[В ответ на L K]
В любом случае лучше ставить последний, на который сейчас получаем сертификат - 4.0.9963 Abel. В 9944 в этой команде должна помочь замена long на bool и 1 на true.

ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ

Проблема решилась установкой КриптоПро версии 4.0.9963 и действиями как написал Андрей, за что ему огромное спасибо.

user@astra:~$  /opt/cprocsp/bin/amd64/csptest -keyset -verifycontext
CSP (Type:80) v4.0.9019 KC2 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 26834115
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,020 sec
[ErrorCode: 0x00000000]

user@astra:~$ sudo  /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long Rfc6125_NotStrict_ServerName_Check 1

user@astra:~$ sudo  /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave
HSECPKG_ATTR_PACKAGE_INFO not supported.
DContext expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
1 connections, 589 bytes in 1.221 seconds;
Total: SYS: 0,040 sec USR: 0,320 sec UTC: 1,300 sec
[ErrorCode: 0x00000000]

Для  4.0.9944
user@astra:~$ /opt/cprocsp/bin/amd64/csptest -keyset -verifycontext
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 20066515
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC2 CSP
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,030 sec
[ErrorCode: 0x00000000]
user@astra:~$ sudo  /opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add bool Rfc6125_NotStrict_ServerName_Check true
user@astra:~$ sudo  /opt/cprocsp/bin/amd64/csptestf -tlsc -server zakupki.gov.ru -nosave
HSECPKG_ATTR_PACKAGE_INFO not supported.
DContext expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
1 connections, 589 bytes in 0.388 seconds;
Total: SYS: 0,050 sec USR: 0,200 sec UTC: 0,450 sec
[ErrorCode: 0x00000000]



 


пятница, 14 декабря 2018 г.

Установка сертификатов используя КриптоПРО в Linux

Корневые сертификаты
Корневые сертификаты ФК
Инструкция по установке КриптоПро
Установка сертификатов используя КриптоПРО в Linux
Получить тестовый сертификат
Сертификаты zakupki.gov.ru

Для установки в uRoot админиских прав больше не нужно. Ради этого их с mRoot и разделили. Работает так: если ставить в uRoot - видно будет только текущему пользователю, даже если он root, но права не нужны и будет диалог с предупреждением. Если ставить в mRoot, то нужны права, видно будет всем и предупреждения не будет.
 
Установка корневого сертификата удостоверяющего центра:
$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ~/Загрузки/<название файла>.cer -store uRoot
$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ~/Загрузки/guts_2012.cer -store uRoot

Просмотор корневых сертификатов:
$ /opt/cprocsp/bin/amd64/certmgr -list -store uRoot

Удалить:
$ /opt/cprocsp/bin/amd64/certmgr -delete -store uRoot
$ /opt/cprocsp/bin/amd64/certmgr -delete -all -store uRoot

Установка списка отозванных сертификатов:
$ /opt/cprocsp/bin/amd64/certmgr -inst -crl -file ~/Загрузки/<название файла>.crl

Установка цепочки промежуточных сертификатов:
$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ~/Загрузки/<название файла>.p7b -store uca

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file ~/Загрузки/fk_2012.cer -store uca

Просмотор промежуточных сертификатов:
$ /opt/cprocsp/bin/amd64/certmgr -list -store uca

Удалить:
$ /opt/cprocsp/bin/amd64/certmgr -delete -store uca




Установка сертификата с рутокена:
$ /opt/cprocsp/bin/amd64/certmgr -inst -cont '<путь к контейнеру, начинающийся на \\.\>' -store uMy

Установка сертификата из контейнера:
$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\test'

Просмотор личных сертификатов:
$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy

Просмотр контейнеров, рутокенов 
$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn

Экспорт в файл сертификата из хранилища
$ /opt/cprocsp/bin/amd64/certmgr -export -cert -dn "CN=" -dest 'cert.crt'
$ /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN='Фёдорова Галина Борисовна' -df  ~/t.cer

$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN='Фёдорова Галина Борисовна' -df ~/t.cer

$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN='Фёдорова Галина Борисовна' -df ~/t.cer


$ /opt/cprocsp/bin/amd64/cryptcp -verify -f cert.crt cert.txt
$ /opt/cprocsp/bin/amd64/cryptcp -verify -u ~/cert.crt ~/cert.txt
$ /opt/cprocsp/bin/amd64/cryptcp -verify -u ~/cert.crt ~/cert.txt | iconv -f cp1251
$ /opt/cprocsp/bin/amd64/cryptcp -verify -errchain -f ~/cert.crt ~/cert.txt | iconv -f cp1251

Установка сертификатов zakupki.gov.ru

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Головного удостоверяющего центра.cer' -store uRoot
$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Удостоверяющего центра Федерального казначейства.cer' -store uRoot

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file root2013.cer -store uRoot


$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN='Фёдорова Галина Борисовна' -df ~/t.cer
.....
.....
.....
Certificate chains are checked.
Certificate's been copied.
[ReturnCode: 0]


четверг, 13 декабря 2018 г.

Как сбросить сеансы пользователей

Bash-скрипты, часть 8: язык обработки данных awk

$ /opt/1C/v8.3/x86_64/ras --daemon cluster

$ /opt/1C/v8.3/x86_64/rac cluster list
cluster                       : 2dbd2cce-fddc-11e8-a982-2c4d544cf050
host                          : kamin
port                          : 1541
name                          : "Локальный кластер"
expiration-timeout            : 0
lifetime-limit                : 0
max-memory-size               : 0
max-memory-time-limit         : 0
security-level                : 0
session-fault-tolerance-level : 0
load-balancing-mode           : performance
errors-count-threshold        : 0
kill-problem-processes        : 0

$ /opt/1C/v8.3/x86_64/rac session --cluster="2dbd2cce-fddc-11e8-a982-2c4d544cf050" list

$ /opt/1C/v8.3/x86_64$ /opt/1C/v8.3/x86_64/rac session --cluster="2dbd2cce-fddc-11e8-a982-2c4d544cf050" list | grep 'session '| awk -F' ' '{print $3}'

5543c50a-feb3-11e8-0988-2c4d544cf050
a8a8ef08-feb4-11e8-0988-2c4d544cf050

$ /opt/1C/v8.3/x86_64/rac session --cluster="2dbd2cce-fddc-11e8-a982-2c4d544cf050" terminate --session="5543c50a-feb3-11e8-0988-2c4d544cf050"

$ /opt/1C/v8.3/x86_64/rac session --cluster="2dbd2cce-fddc-11e8-a982-2c4d544cf050" terminate --session="a8a8ef08-feb4-11e8-0988-2c4d544cf050"


Скрипт выгоняющий всех пользователей из кластера:

$ nano terminate.sh

Вставить текст ниже:

#!/bin/bash
/opt/1C/v8.3/x86_64/ras --daemon cluster
_cluster=$(/opt/1C/v8.3/x86_64/rac cluster list  | grep 'cluster '| awk -F' ' '{print $3}')
_session=$(/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster list | grep 'session '| awk '{print$3}')
echo 'кластер: ' $_cluster
echo 'сессии:  ' $_session
for session in $_session
do
/opt/1C/v8.3/x86_64/rac session --cluster=$_cluster terminate --session=$session
done


Сохранить.

$ sh terminate.sh

понедельник, 10 декабря 2018 г.

суббота, 8 декабря 2018 г.

Astra Linux Орёл 2.12 установка КриптоПро

astralinux доступ к госзакупкам
Инструкция по настройке и работе с Крипто-Про для государственных порталов

Astra Linux Орёл 2.12
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install alien libpcsclite1 pcscd libccid zip unzip
$ tar -zxf linux-amd64_deb.tgz
$ cd linux-amd64_deb
$ sudo ./install_gui.sh
#$ export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
$ cd ~/
$ mkdir cades_linux_amd64
$  cd ~/cades_linux_amd64
Скачать версию 2.0
https://www.cryptopro.ru/products/cades/plugin
$ cp  ~/Загрузки/cades_linux_amd64.tar.gz ~/cades_linux_amd64
$ tar -zxf cades_linux_amd64.tar.gz
$ sudo alien *.rpm
$ sudo dpkg -i lsb-cprocsp-devel_*.deb cprocsp-pki-*.deb

Копируем контейнер 2018-07-.000  с машины windows:
в /var/opt/cprocsp/keys/user/2018-07-.000

Посмотреть:
$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 35103123
\\.\HDIMAGE\2018-07-02 16-30-20 ▒▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒ - ▒▒▒▒▒ - ▒▒▒▒▒ - ▒▒▒▒▒
OK.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]

Оригинальный контенер был без пинкода.

Если нужно добавить пинкод, копируем контейнер:

$ /opt/cprocsp/bin/amd64/csptest -keycopy -contsrc "$(echo 'HDIMAGE\\2018-07-.000\0A6B' | iconv -t cp1251)" -contdest '\\.\HDIMAGE\test' -typesrc 75 -typedest 75  -pindest 12345678
CSP (Type:75) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
CryptAcquireContext succeeded.HCRYPTPROV: 23474403
CryptAcquireContext succeeded.HCRYPTPROV: 23479523
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,130 sec
[ErrorCode: 0x00000000]




Смотрим:

$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:READY:AVX.
AcquireContext: OK. HCRYPTPROV: 36958611
\\.\HDIMAGE\test
\\.\HDIMAGE\2018-07-02 16-30-20 ▒▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒ - ▒▒▒▒▒ - ▒▒▒▒▒ - ▒▒▒▒▒
OK.
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,140 sec
[ErrorCode: 0x00000000]



Или:
$ /opt/cprocsp/bin/amd64/csptest -keyset -enum -verifycontext -fqcn | iconv -f cp1251



Установить копированный контейнер:

$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont '\\.\HDIMAGE\test'
Пример если нужно установить оригинальный контейнер:

$ /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont "$(echo 'HDIMAGE\\2018-07-.000\0A6B' | iconv -t cp1251)"

#связываем сертификат и закрытый ключ:  
#$ /opt/cprocsp/bin/amd64/certmgr -inst -file sert.cer -cont '\\.\HDIMAGE\test'


Удалить:
$ /opt/cprocsp/bin/amd64/certmgr -delete

Для установки в uRoot админиских прав больше не нужно. Ради этого их с mRoot и разделили. Работает так: если ставить в uRoot - видно будет только текущему пользователю, даже если он root, но права не нужны и будет диалог с предупреждением. Если ставить в mRoot, то нужны права, видно будет всем и предупреждения не будет.

Просмотор личных сертификатов:

$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy
CA cert URL         : http://www.dp.keydisk.ru/root/833/astral-833-2017n.cer

Установка головного сертификата удостверяющего центра (из сертификата Калуга-Астрал):
$ mkdir  ~/CAs
$ wget -P ~/CAs $(/opt/cprocsp/bin/amd64/certmgr -list -store uMy | awk '/CA cert URL/ { print $5 }')
for cert in $(ls -1 ~/CAs/*.cer); do sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file $cert; done

Если сертификат был выдан казначейством:
Сертификаты zakupki.gov.ru
Качаем Сертификат Головного удостоверяющего центра и Сертификат Удостоверяющего центра Федерального казначейства

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Головного удостоверяющего центра.cer' -store uRoot

#$ sudo /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Головного удостоверяющего центра.cer' -store mRoot

$ /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Удостоверяющего центра Федерального казначейства.cer' -store uRoot

#$ sudo /opt/cprocsp/bin/amd64/certmgr -inst -cert -file 'Сертификат Удостоверяющего центра Федерального казначейства.cer' -store mRoot



Просмотр:
$ /opt/cprocsp/bin/amd64/certmgr -list -store uRoot
#$ sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot

Удалить:
$ /opt/cprocsp/bin/amd64/certmgr -delete -store uRoot
$ /opt/cprocsp/bin/amd64/certmgr -delete -all -store uRoot

#$ sudo /opt/cprocsp/bin/amd64/certmgr -delete -store mRoot
#$ sudo /opt/cprocsp/bin/amd64/certmgr -delete -all -store mRoot

Проверка цепочек
$ /opt/cprocsp/bin/amd64/certmgr -list -store uMy
Смотрим: 
CN='Фёдорова Галина Борисовна'

$ CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -dn CN='Фёдорова Галина Борисовна' -df ~/t.cer
.....
.....
.....
Certificate chains are checked.
Certificate's been copied.
[ReturnCode: 0]

или

Цепочки сертификатов проверены.
Копирование сертификатов завершено.
[ErrorCode: 0x00000000]
 



Для firefox и установить в браузере
Скачать расширение
Проверка плагина

Проверено подписывает:
Единая электронная торговая площадка


$ sudo apt install chromium
После установки закрыть и войти снова

Проверка плагина

Проверено подписывает:
Единая электронная торговая площадка

Проверно подписывает:
Сбербанк-АСТ


Установка IFCPlugin для gosuslugi.ru
IFCPlugin-3.0.0-x86_64.deb.zip
ifc.cfg.zip



$ unzip IFCPlugin-3.0.0-x86_64.deb.zip
$ sudo apt install libccid pcscd
$ sudo dpkg -i IFCPlugin-3.0.0-x86_64.deb

создаем симлинк для корректной работы связи расширения браузера с библиотекой установленного плагина

$ sudo ln -s /etc/opt/chrome/native-messaging-hosts/ru.rtlabs.ifcplugin.json /etc/chromium/native-messaging-hosts/ru.rtlabs.ifcplugin.json



Заходим в каталог куда скачали архив
$ unzip ifc.cfg.zip

Копируем конфигурационный файл

 $ sudo cp ifc.cfg /etc/ifc.cfg

Установить Расширение для gosuslugi.ru

Перейти в меню - Дополнительные инструменты - Расширения и включить плагин
 

Alexey Kovin (4l3xk3), [10.09.18 13:34]
[В ответ на Leonid Volkanin]
Alexey Kovin (alexk3):
Проверка защитного преобразования по ГОСТу  по https в chromium из состава AstraLinux:

Скачиваем
https://cryptopro.ru/products/csp/downloads#latest_csp40r3
https://cryptopro.ru/sites/default/files/private/csp/40/9944/linux-amd64_deb.tgz
Нужные библиотеки входят в минимальную установку (по ./install.sh)
Лежать будут в /opt/cprocsp/lib/amd64

Ставим Смоленск 1.6 или Орел 2.12
Берём linux-amd64_deb.tgz по ссылке выше
Распаковать и запустить install.sh
Запустить chromium
Зайти на https://q.cryptopro.ru
F12 режим отладки ищем вкладку security
Внизу справа ищем tls по ГОСТу









 


Astra Linux Орёл 2.12

Astra Linux
Орёл 2.12 wiki

Устанавливаем без автонастройки сети
Посмотреть имя nic
$ ip addr
Стандартное eth0

Настройка сети
$ sudo service networking stop
# nano /etc/network/interfaces

Добавить:
auto eth0
iface eth0 inet dhcp

Сохранить.
$ sudo service networking start

Появиться сеть.

$ sudo apt install samba ssh
$ sudo systemctl  enable ssh
$ sudo systemctl  start ssh 


Подключиться в интернете к
этой статье

Получить от dhcp
# ip addr
192.168.0.149
 
Настройка статического ip
# service networking stop

$ sudo nano /etc/network/interfaces

Закоментировать:

#auto eth0
#iface eth0 inet dhcp

Добавить:

iface eth0 inet static
address 192.168.0.149
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
auto eth0

Сохранить.
$ sudo service networking restart

Установка дополнений VirtualBox
$ sudo apt install gcc make perl linux-headers-generic linux-headers-`uname -r`
Вставить диск дополнений
$ sudo mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
$ sudo bash /mnt/VBoxLinuxAdditions.run

$ sudo reboot




Проверка:
$ sudo modinfo vboxguest
filename:       /lib/modules/4.15.3-1-generic/misc/vboxguest.ko
version:        5.2.12 r122591
license:        GPL
description:    Oracle VM VirtualBox Guest Additions for Linux Module
author:         Oracle Corporation
srcversion:     97DF7F909E8F8138956CB2D
alias:          pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i*
depends:
retpoline:      Y
name:           vboxguest
vermagic:       4.15.3-1-generic SMP mod_unload


Примонтировать флешку

Как примонтировать флешку в Linux
$ sudo fdisk -l

Диск /dev/sdb: 14,7 GiB, 15804137472 байтов, 30867456 секторов
Единицы измерения: секторов из 1 * 512 = 512 байтов
Размер сектора (логический/физический): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Тип метки диска: dos
Идентификатор диска: 0x78689fc5

Устр-во    Загрузочный    Start Конец Секторы  Size Id Тип
/dev/sdb1  *                 32 30860864 30860833 14,7G  7 HPFS/NTFS/exFAT
/dev/sdb2              14083649 14083711       63 31,5K 21 неизвестный


$ sudo mkdir /mnt/usb
$ sudo mount /dev/sdb1 /mnt/usb

$ cd /mnt/usb
$ ls
2018-07-.000  sert.cer  System Volume Information






$ sudo umount /dev/sdb1

Elastix 2.5

Сдох комп с Elastix 2.5
ip 192.168.0.51
вход 192.168.0.51

Настройка дистрибутива Elastix
Установка Elastix 2.Х

Скрипт вывода информации о процессах

Linux: find out what process is using all the RAM?

$ nano show-memory-usage.sh

Копировать:

#!/bin/sh
clear
ps -eo rss,pid,user,command | sort -rn | head -20 | awk '{ hr[1024**2]="GB"; hr[1024]="MB";\
 for (x=1024**3; x>=1024; x/=1024) {\
 if ($1>=x) { printf ("%-6.2f %s ", $1/x, hr[x]); break }\
 } } { printf ("%-6s %-10s ", $2, $3) }\
 { for ( x=4 ; x<=NF ; x++ ) { printf ("%s ",$x) } print ("\n") }\
 '
Сохранить.

$ sh show-memory-usage.sh



Примерно такой вывод:

406.11 MB 2465   usr1cv8    /opt/1C/v8.3/x86_64/rphost -range 1560:1591 -reghost kamin -regport 1541 -pid ab8bdcae-f963-11e8-ef84-ac1f6b94ef4a

342.20 MB 1224   postgres   /usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf

258.63 MB 3902   postgres   postgres: postgres demo 192.168.0.174(54952) idle

104.21 MB 1242   postgres   postgres: checkpointer process

101.45 MB 1243   postgres   postgres: writer process

97.18  MB 2305   usr1cv8    /opt/1C/v8.3/x86_64/rmngr -port 1541 -host kamin -range 1560:1591 -clstid ab3b172e-f963-11e8-ef84-ac1f6b94ef4a

31.81  MB 2297   usr1cv8    /opt/1C/v8.3/x86_64/ragent -daemon

28.42  MB 1391   root       /usr/lib/snapd/snapd

21.91  MB 475    root       /lib/systemd/systemd-journald

20.75  MB 1244   postgres   postgres: wal writer process

15.61  MB 2221   root       /usr/sbin/smbd -D

6.66   MB 2904   root       sshd: user [priv]

6.57   MB 1245   postgres   postgres: autovacuum launcher process

6.49   MB 2889   root       sshd: user [priv]

6.29   MB 1247   root       /usr/lib/accountsservice/accounts-daemon

6.16   MB 2226   root       /usr/sbin/smbd -D

6.09   MB 1      root       /sbin/init

5.89   MB 1492   root       /usr/lib/policykit-1/polkitd --no-debug

5.64   MB 1708   root       /usr/sbin/sshd -D

5.61   MB 2223   root       /usr/sbin/smbd -D


пятница, 7 декабря 2018 г.

Backup

Может возникнуть ситуация при которой файл .dt будет выгружаться средствами 1с,
но при обратной загрузке или загрузке в файловую базу, загружаться не будет (при ошибках в базе).
Файл .dt может считаться бэкапом только при условии проверки загрузки!
Поэтому необходимо организовать бэкап средствами базы данных.
/home/user/test/ - папка с доступом по ftp (test test) (ранее подготовлена)
/home/user/test/backup - здесь будем складывать dump

Бэкап с архивированием:

$ sudo /bin/su postgres -c "pg_dump -Fc demo"  > /home/user/test/backup/demo
$ sudo /bin/su postgres -c "createdb --username postgres -T template0 demotest"
$ sudo /bin/su postgres -c "pg_restore -d demotest /home/user/test/backup/demo"

Вариант для всех баз
$ sudo /bin/su postgres -c "pg_dumpall -c"  > /home/user/test/backup/baseall


$ sudo /bin/su postgres -c "pg_restore -d demotest" /home/user/test/backup/demo
$ sudo /bin/su postgres -c "psql -l"
$ sudo /bin/su postgres -c "dropdb demotest"
Размер базы demo 
$ sudo su -c "psql -d demo -c \"select pg_size_pretty( pg_database_size('demo'))\"" postgres
Размер базы demo
$ sudo su -c "psql -c \"select pg_size_pretty( pg_database_size('demo'))\"" postgres
 
$ nano backup-sql.sh
#!/bin/sh
set -e
echo "====================================================================" >> /home/user/test/backup/backup.log
# останавливаем сервер 1С
echo "останавливаем сервер 1С"
sudo systemctl stop  srv1cv83.service
#systemctl status  srv1cv83.service >> /home/user/test/backup/backup.log
echo "состояние сервера 1С"  >> /home/user/test/backup/backup.log
sudo systemctl status  srv1cv83.service | grep 'Active:' >> /home/user/test/backup/backup.log
echo "--------------------------------------------------------------------" >> /home/user/test/backup/backup.log
# Устанавливаем дату
DATA=`date +"%Y-%m-%d_%H-%M"`
echo "`date +"%Y-%m-%d_%H-%M-%S"` Size database file: " >> /home/user/test/backup/backup.log
sudo du -h -s /var/lib/postgresql/9.6/main/base  >> /home/user/test/backup/backup.log
echo "--------------------------------------------------------------------" >> /home/user/test/backup/backup.log
# Записываем информацию в лог с секундами
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup, restore, vacuum  базы demo" >> /home/user/test/backup/backup.log
# Бэкапим базу данных demo и сразу сжимаем
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup, restore, vacuum  базы demo"
#cd /home/user/test/backup/
sudo /bin/su postgres -c "dropdb demotest" >/dev/null 2>/dev/null || true
sudo /bin/su postgres -c "pg_dump -Fc demo"  > /home/user/test/backup/demo_$DATA && \
    sudo /bin/su postgres -c "createdb --username postgres -T template0 demotest" && \
    sudo /bin/su postgres -c "pg_restore -d demotest /home/user/test/backup/demo_$DATA" && \
    sudo /bin/su postgres -c "/usr/bin/vacuumdb --analyze --full --quiet \
    --username postgres --dbname=demo" && \
    sudo /bin/su postgres -c "dropdb demotest"
#echo $?
if [ $? -ne 0 ]
then
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Ошибка завершения для базы demo"
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Ошибка завершения для для базы demo" >> /home/user/test/backup/backup.log
else
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Успешное завершение для базы demo"
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Успешное завершение для базы demo" >> /home/user/test/backup/backup.log
fi
echo "--------------------------------------------------------------------" >> /home/user/test/backup/backup.log
# Записываем информацию в лог с секундами
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup, restore, vacuum  базы kamin" >> /home/user/test/backup/backup.log
# Бэкапим базу данных demo и сразу сжимаем
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup, restore, vacuum  базы kamin"
#cd /home/user/test/backup/
sudo /bin/su postgres -c "dropdb kamintest" >/dev/null 2>/dev/null || true
sudo /bin/su postgres -c "pg_dump -Fc kamin"  > /home/user/test/backup/kamin_$DATA && \
    sudo /bin/su postgres -c "createdb --username postgres -T template0 kamintest" && \
    sudo /bin/su postgres -c "pg_restore -d kamintest /home/user/test/backup/kamin_$DATA" && \
    sudo /bin/su postgres -c "/usr/bin/vacuumdb --analyze --full --quiet \
    --username postgres --dbname=kamin" && \
    sudo /bin/su postgres -c "dropdb kamintest"
#echo $?
if [ $? -ne 0 ]
then
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Ошибка завершения для базы kamin"
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Ошибка завершения для для базы kamin" >> /home/user/test/backup/backup.log
else
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Успешное завершение для базы kamin"
     echo "`date +"%Y-%m-%d_%H-%M-%S"` Успешное завершение для базы kamin" >> /home/user/test/backup/backup.log
fi
echo "--------------------------------------------------------------------" >> /home/user/test/backup/backup.log
# запускаем сервер 1С
echo "запускаем сервер 1С"
sudo systemctl start  srv1cv83.service
#systemctl status  srv1cv83.service >> /home/user/test/backup/backup.log
echo "состояние сервера 1С"  >> /home/user/test/backup/backup.log
sudo systemctl status  srv1cv83.service | grep 'Active:' >> /home/user/test/backup/backup.log
echo "--------------------------------------------------------------------" >> /home/user/test/backup/backup.log
echo "закончено"

Сохранить.

Однократный запуск:
$ sudo sh backup-sql.sh

Запуск по расписанию:

$ sudo -i
# crontab -e
Добавить в конец (сработает в 18:01):
# каждые день в 18.00

0 18 * * * sh /home/user/backup-sql.sh
Сохранить.

Смотреть задания:
# crontab -l