Установка sed на Ubuntu 2020
Установка 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:
Если установлен по умолчанию php выше 7 версии, то удаляем его вместе с модулями, перечисленными ниже
sudo apt install php7.4 libapache2-mod-php7.4 sudo apt-get install php7.4-curl php7.4-gd php7.4-ldap php7.4-pgsql php7.4-mbstring php7.4-zip php7.4-imagick php7.4-imap php7.4-intl php7.4-xmlrpc php7.4-soap php7.4-xml sudo apt-get install php-xdebug7.4 (устанавливается только на машине разработчика)
Через 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':
CREATE USER "www-data" WITH PASSWORD 'pass';
- создаем БД
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
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. Установка криптоПро, необходимо для работы с ЭЦП
Качаем КриптоПро CSP 4.0R4 linux x64 предварительно зарегистрировавшись. Проверяем md5
Распакуйте загруженный архив: tar -xvf linux-amd64_deb.tgz && cd linux-amd64_deb
Установите основные пакеты КриптоПро CSP: sudo ./install.sh
Ничего больше устанавливать не надо.
Только на рабочем сервере подключаем выполнение задач в 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
добавить файл /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';