Установка sed на Ubuntu 2020 — различия между версиями

Материал из Справочная информация по работе с СЭД
Перейти к: навигация, поиск
 
(не показана 21 промежуточная версия 2 участников)
Строка 1: Строка 1:
 
= Установка SED на Ubuntu =
 
= Установка SED на Ubuntu =
 
+
Отключаем ipv6 (только на рабочем сервере)
 +
<pre>
 +
    sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
 +
    sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
 +
    sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
 +
    sudo sysctl -p
 +
</pre>
 
''' 1. ''' Cначала обновим систему до самой новой версии:
 
''' 1. ''' Cначала обновим систему до самой новой версии:
 
   sudo apt-get update
 
   sudo apt-get update
Строка 26: Строка 32:
 
В файле /etc/logrotate.d/apache2 ставим '''weekly''',
 
В файле /etc/logrotate.d/apache2 ставим '''weekly''',
 
время лога увеличиваем до года  
 
время лога увеличиваем до года  
 +
sudo nano /etc/logrotate.d/apache2\
 
'''rotate 48'''       
 
'''rotate 48'''       
 +
/var/log/apache2/*.log {
 +
        weekly
 +
        missingok
 +
        rotate 48
 +
        compress
 +
        delaycompress
 +
        notifempty
 +
        create 640 root adm
 +
        sharedscripts
 +
        postrotate
 +
                if invoke-rc.d apache2 status > /dev/null 2>&1; then \
 +
                    invoke-rc.d apache2 reload > /dev/null 2>&1; \
 +
                fi;
 +
        endscript
 +
        prerotate
 +
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
 +
                        run-parts /etc/logrotate.d/httpd-prerotate; \
 +
                fi; \
 +
        endscript
 +
}
 +
  
  
Строка 38: Строка 66:
 
'''9.''' Установка php:
 
'''9.''' Установка php:
  
   sudo apt install php libapache2-mod-php
+
   sudo apt install php8.1 libapache2-mod-php8.1
   sudo apt-get install php-curl php-gd php-ldap php-pgsql php-mbstring php-zip php-apcu php-imagick php-imap php-intl php-xmlrpc php-soap php-xml
+
   sudo apt-get install php8.1-curl php8.1-gd php8.1-ldap php8.1-pgsql php8.1-mbstring php8.1-zip php8.1-imagick php8.1-imap php8.1-intl php8.1-xmlrpc php8.1-soap php8.1-xml
   sudo apt-get install php-xdebug (устанавливается только на машине разработчика)
+
   sudo apt-get install php-xdebug8.1 (устанавливается только на машине разработчика)
  
  
Строка 84: Строка 112:
 
-редактируем /etc/postgresql/{версия}/main/postgresql.conf
 
-редактируем /etc/postgresql/{версия}/main/postgresql.conf
 
<pre>
 
<pre>
 +
max_connections =300
 
ssl = off
 
ssl = off
 
</pre>
 
</pre>
Строка 98: Строка 127:
 
</pre>
 
</pre>
  
-  добавляем пользователя 'www-data':
+
-  добавляем пользователя 'www-data' и 'ai-modules':
 
<pre>
 
<pre>
 
   CREATE USER "www-data" WITH PASSWORD 'pass';
 
   CREATE USER "www-data" WITH PASSWORD 'pass';
 +
  CREATE USER "ai-modules" WITH PASSWORD '1';
 
</pre>
 
</pre>
  
Строка 132: Строка 162:
 
   sudo chown -R www-data:www-data /var/www/sed-citis/storage
 
   sudo chown -R www-data:www-data /var/www/sed-citis/storage
 
   sudo chown www-data:www-data /var/www/sed-citis/cabinet/img/citis_logo.png
 
   sudo chown www-data:www-data /var/www/sed-citis/cabinet/img/citis_logo.png
 +
 +
  unzip vendor.zip
  
 
'''16.''' В файле /cfg/db.ini изменить пути:
 
'''16.''' В файле /cfg/db.ini изменить пути:
Строка 199: Строка 231:
 
Установите основные пакеты КриптоПро CSP: sudo ./install.sh
 
Установите основные пакеты КриптоПро CSP: sudo ./install.sh
  
Ничего больше устанавливать не надо.
+
Ничего больше устанавливать не надо. Если используется госключ, надо установить сертификат для криптопро доступный для www-data
  
  
Строка 214: Строка 246:
 
  */6 * * * * /usr/bin/php /var/www/sed-citis/ajax/checkEmailDelivery.php >/dev/null 2>&1
 
  */6 * * * * /usr/bin/php /var/www/sed-citis/ajax/checkEmailDelivery.php >/dev/null 2>&1
 
  */7 * * * * /usr/bin/php /var/www/sed-citis/tools/Notification.php send --verbose >/dev/null 2>&1
 
  */7 * * * * /usr/bin/php /var/www/sed-citis/tools/Notification.php send --verbose >/dev/null 2>&1
 +
*/1 * * * * /usr/bin/php /var/www/ajax/gk/readGkXml.php  >/dev/null 2>&1
 +
## Удаляем зависший процесс soffice.bin конвертации документа через libreoffice
 +
## Надо добавить файл /var/www/sed-citis/storage/logs/converter.log с правами пользователя
 +
*/1 * * * * /usr/bin/php /var/www/sed-citis/tools/stopPdfConverter.php >> /var/www/sed-citis/storage/logs/converter.log
  
 
добавить файл /var/www/sed-citis/storage/logs/medo.log с правами пользователя
 
добавить файл /var/www/sed-citis/storage/logs/medo.log с правами пользователя
Строка 247: Строка 283:
  
 
редактируем /etc/fstab
 
редактируем /etc/fstab
 +
23. Для настройки почты используем админку-Настройки сервера- нажать на 3 точки и далее вносим параметры.
 +
Для проверки работы почты необходимо:
 +
раскомментировать строку /var/www/sed-citis/tools/sendmail-notifications.php
 +
$l = sendmail('внести_почту_на_которой_будете_проверять', 'проверка', 'mail sdsd');
 +
и если не используется tls добавить две строки ниже  $mail->Port = MAIL_CONFIG['port']; 
 +
$mail->SMTPAutoTLS = false;
 +
$mail->SMTPSecure = 'none';

Текущая версия на 16:58, 27 марта 2024

Установка SED на Ubuntu

Отключаем ipv6 (только на рабочем сервере)

    sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
    sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
    sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
    sudo sysctl -p

1. Cначала обновим систему до самой новой версии:

  sudo apt-get update
  sudo apt-get upgrade

2. Установка Apache:

  sudo apt-get install apache2

3. Отключаем модуль индексирования:

  sudo a2dismod autoindex

4. Подключаем модули rewrite, headers:

  sudo a2enmod headers rewrite

5. Правим конфигурацию apache2.conf, убираем indexes, None -> All:

  sudo nano /etc/apache2/apache2.conf

Меняем:

   <Directory /var/www/>
#       Options Indexes FollowSymLinks
        Options FollowSymLinks
        AllowOverride All
        Require all granted
   </Directory>

6 меняем время записи лога на неделю.

В файле /etc/logrotate.d/apache2 ставим weekly, время лога увеличиваем до года sudo nano /etc/logrotate.d/apache2\ rotate 48 /var/log/apache2/*.log {

       weekly
       missingok
       rotate 48
       compress
       delaycompress
       notifempty
       create 640 root adm
       sharedscripts
       postrotate
               if invoke-rc.d apache2 status > /dev/null 2>&1; then \
                   invoke-rc.d apache2 reload > /dev/null 2>&1; \
               fi;
       endscript
       prerotate
               if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                       run-parts /etc/logrotate.d/httpd-prerotate; \
               fi; \
       endscript

}


7. Правим конфигурации security.conf:

  sudo nano /etc/apache2/conf-available/security.conf

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

  ServerTokens Prod
  ServerSignature Off


9. Установка php:

  sudo apt install php8.1 libapache2-mod-php8.1
  sudo apt-get install php8.1-curl php8.1-gd php8.1-ldap php8.1-pgsql php8.1-mbstring php8.1-zip php8.1-imagick php8.1-imap php8.1-intl php8.1-xmlrpc php8.1-soap php8.1-xml
  sudo apt-get install php-xdebug8.1 (устанавливается только на машине разработчика)


  Через phpinfo находим путь к php.ini. 
  В php.ini выставляем директивы upload_max_filesize = 500M post_max_size = 500M


- sudo apt-get install netpbm (toolkit for manipulation of graphic images, including conversion of images between a variety of different formats)? проверить использование в проекте

- на рабочем сервере правим cfg-local/header.php, tools/sendmail.php


11. Создаем рабочую папку и файл конфигурации виртуального хоста apache:

  sudo mkdir -p /var/www/sed-citis
  sudo nano /etc/apache2/sites-available/sed.conf


   <VirtualHost *:80>     
       ServerName sed.local
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/sed-citis

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
   </VirtualHost>

   # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

12. Активируем вируальный хост sed.conf. Отключаем сайт по умолчанию, заданный в файле 000-default.conf

   sudo a2ensite sed.conf
   sudo a2dissite 000-default.conf

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

  sudo service apache2 restart

13. Установка Postgres

  sudo apt-get install postgresql 

-редактируем /etc/postgresql/{версия}/main/postgresql.conf

max_connections =300
ssl = off

- sudo service postgresql restart

- меняем дефолтный пароль postgres

sudo -u postgres psql postgres
 \password postgres
 Ввести пароль ЕДИНИЧКУ (1)
 Повторить пароль

- добавляем пользователя 'www-data' и 'ai-modules':

   CREATE USER "www-data" WITH PASSWORD 'pass';
   CREATE USER "ai-modules" WITH PASSWORD '1';

- создаем БД

CREATE DATABASE edfs OWNER "www-data";
\q

- на сервере сделать бэкап БД:

pg_dump -h localhost -p 5432 -U postgres -F c -C -d edfs > ~/2020-09-30.edfs (2020-09-30 - дата бэкапа)

- с сервера скопировать бэкап себе в /home/$USER

 pg_restore -h localhost -p 5432 -U postgres -d edfs ~/2020-09-30.edfs


15. Скачивание и развертывание Sed в /var/www/sed-citis:

  sudo apt install git

Отключаем проверку ssl сертификата git-a

  git config --global http.sslVerify false
  создаем папку /var/www/sed-citis, даем ей права пользователя
  cd /var/www/
  git clone https://10.20.4.2:3030/citis/sed-citis.git
  sudo chown -R www-data:www-data /var/www/sed-citis/cache
  sudo chown -R www-data:www-data /var/www/sed-citis/storage
  sudo chown www-data:www-data /var/www/sed-citis/cabinet/img/citis_logo.png
  unzip vendor.zip

16. В файле /cfg/db.ini изменить пути:

  docfile_storage=/var/www/sed-citis/storage/docfiles
  storagedir = /var/www/sed-citis/storage

16.4 На сервере сделать бэкап БД (Уточняем ссылки у администратора):

  pg_dump -h localhost -p 5432 -U postgres -F c -C -d edfs > ~/30-11-2020.edfs    (30-11-2020 - дата бэкапа)  

16.5 С сервера скопировать бэкап себе в /home/$USER:

16.6 Распаковать бекап (вес бекапа > 250мб!):

  pg_restore -h localhost -p 5432 -U postgres -d edfs ~/30-11-2020.edfs 

16.7 Сделаем pass единички на машине разработчика:

  sudo -u postgres psql postgres
  \c edfs 
  UPDATE public.users SET pass = 1;
  \q

16.7.1 на рабочем сервере чистим базу от тестовых записей используя sql из ajax/clean_edfs.php


16.8 Перезапустить все:

  sudo service apache2 restart
  sudo service postgresql restart

17. На ubuntu server может потребоваться библиотеки для конвертации в pdf

sudo apt install libreoffice
sudo apt-get install poppler-utils (библиотека отрисовки PDF, основанная на программе просмотра Xpdf)


18. Устанавливаем imagemagick для загрузки фотографий и настраиваем его безопасность

sudo apt install imagemagick

sudo nano /etc/ImageMagick-6/policy.xml

<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />
<policy domain="coder" rights="none" pattern="SHOW" />
<policy domain="coder" rights="none" pattern="WIN" />
<policy domain="coder" rights="none" pattern="PLT" />
<policy domain="path" rights="none" pattern="@*" />

Меняем права доступа для PDF на write|read

<policy domain="coder" rights="write|read" pattern="PDF" />

Проверяем правильность настроечных параметров

convert -list policy

19. Установка криптоПро, необходимо для работы с ЭЦП

https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/338/0/nstrojjk-rbochego-mest-pod-uprvleniem-os-linux-dlja-rboty-s-oblchnymi-sertifiktmi-ehlektronnojj-podpisi

Качаем КриптоПро CSP 4.0R4 linux x64 предварительно зарегистрировавшись. Проверяем md5

Распакуйте загруженный архив: tar -xvf linux-amd64_deb.tgz && cd linux-amd64_deb

Установите основные пакеты КриптоПро CSP: sudo ./install.sh

Ничего больше устанавливать не надо. Если используется госключ, надо установить сертификат для криптопро доступный для www-data


Только на рабочем сервере подключаем выполнение задач в crone, если нужно

*/1 * * * * /usr/bin/curl http://localhost/tools/conv_file_pull.php >/dev/null 2>&1
*/30 * * * * /usr/bin/curl http://localhost/cabinet/ajax/orgStructure/orgStructureUpdate.php >/dev/null 2>&1
*/1 * * * * /usr/bin/php /var/www/sed-citis/tools/signers/pull.php Megafon --verbose >/dev/nul 2>&1
*/30 * * * * /usr/bin/php /var/www/sed-citis/postoffice-in-igdw.php >> /var/www/sed-citis/storage/logs/medo.log
0 */4 * * * /usr/bin/curl http://localhost/cabinet/ajax/RSSParser/RSSParser.php >/dev/null 2>&1
*/5 * * * * /usr/bin/php /var/www/sed-citis/tools/citizensAppealsFromSite/readOG.lib.php >/dev/null 2>&1
*/5 * * * * /usr/bin/php /var/www/sed-citis/tools/citizensAppealsFromSite/writeOGstatus.php >/dev/null 2>&1
*/6 * * * * /usr/bin/php /var/www/sed-citis/ajax/checkEmailDelivery.php >/dev/null 2>&1
*/7 * * * * /usr/bin/php /var/www/sed-citis/tools/Notification.php send --verbose >/dev/null 2>&1
*/1 * * * * /usr/bin/php /var/www/ajax/gk/readGkXml.php  >/dev/null 2>&1
## Удаляем зависший процесс soffice.bin конвертации документа через libreoffice
## Надо добавить файл /var/www/sed-citis/storage/logs/converter.log с правами пользователя
*/1 * * * * /usr/bin/php /var/www/sed-citis/tools/stopPdfConverter.php >> /var/www/sed-citis/storage/logs/converter.log

добавить файл /var/www/sed-citis/storage/logs/medo.log с правами пользователя


20. Установка auditd на рабочем сервере

 sudo apt install auditd

Добавляем в /etc/audit/rules.d/audit.rules правила

  -w /etc/shadow -p wa -k shadow 
  -w /etc/passwd -p wa -k passwd 
  ##track all commands run by root (euid=0)
  -a exit,always -F arch=b64 -F euid=0 -S execve 
  -a exit,always -F arch=b32 -F euid=0 -S execve

service auditd restart

Используем auditctl -l команду для проверки установленных правил

21. Локальная настройка СЭД (на рабочем сервере).

меняем логотип в админке

   cfg-local/header.php

меняем штампы в админке

   storage/stamps/reg/sample/in_stamp.png
   storage/stamps/sign/sample/sig_ep_stamp.png
   storage/stamps/sign/sample/sig_sedo_stamp.png

22. Монтируем папки для мэдо (на рабочем сервере)

sudo apt install cifs-utils

редактируем /etc/fstab 23. Для настройки почты используем админку-Настройки сервера- нажать на 3 точки и далее вносим параметры. Для проверки работы почты необходимо: раскомментировать строку /var/www/sed-citis/tools/sendmail-notifications.php $l = sendmail('внести_почту_на_которой_будете_проверять', 'проверка', 'mail sdsd'); и если не используется tls добавить две строки ниже $mail->Port = MAIL_CONFIG['port']; $mail->SMTPAutoTLS = false; $mail->SMTPSecure = 'none';