Моя шпаргалка :)

Мануалы и настройки => Настройки *nix (почта, web, система etc) => Тема начата: George от Окт. 26, 2023, 12:43

Название: 1c сервер ubuntu
Отправлено: George от Окт. 26, 2023, 12:43
Добрый день! Вообще, я хотел сделать его на CentOS 8\9, но на нее не встал usb redirector, для проброса железных usb ключей. Потому и ubuntu)

Как и с многими другими статьями, это появилась потому, что в интернете статьи не полные, или с ошибками. Так что информацию собирать приходится частями.

Установку ubuntu расписывать не буду, ничего необычного нет. ip естественно статический сразу при установке. Язык - русский!!!

Обновление системы и установка ПО

Для начала повышаем права пользователя:

sudo -s
Обновление зависимостей пакетной базы и репозитория:

apt update
Обновление системы:

apt upgrade -y
Для работы нам потребуется, net-tools, mc, wget:

apt install -y net-tools mc wgetЯ последнее время не использую mc, а там как хотите

Установка USB Redirect

sudo apt-get install make gcc linux-headers-`uname -r`
wget https://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz
tar -zxf ./usb-redirector-linux-x86_64.tar.gz
cd ./usb-redirector-linux-x86_64

Дальше можно установить сервер командой
sudo ./installer.sh install-server
но сервер на мне нужен, нам нужен клиент
sudo ./installer.sh install-client
Еще есть команда
sudo ./installer.sh installкоторая установт и сервер и клиент, но это для общей информации, нам нужен только клиент.

Настройка клиента


usbclnt -addserver **.**.**.**:32032
Где вместо **.**.**.** нужно указать ip–адрес сервера.

Теперь можно посмотреть список доступных устройств:

usbclnt -list
видим список с номерами портов, и подключаем устройства

usbclnt -connect 1-1

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

usbclnt -autoconnecton 1-1

Проверяем:

usbclnt -list
Установка 1С

Подготовительные мероприятия по установке дополнительных компонентов.

Установим libenchant1c2a, без этого компонента 1с не установится.

добавим репозиторий universe:

vi /etc/apt/sources.list[insert]
deb http://cz.archive.ubuntu.com/ubuntu focal main universe
:wq [enter]

Обновление зависимостей пакетной базы и репозитория:

apt update
Установка libenchant1c2a:

apt install libenchant1c2a
Установка набора программ для чтение и редактирования

apt install imagemagick
Установим диспетчер драйверов для ODBC

apt install unixodbc
Установим libgsf-1-114

apt install libgsf-1-114
Установим шрифты mscorefonts:

apt install ttf-mscorefonts-installer fontconfig
Проверим удачно ли прошла установка шрифтов:

fc-cache -f -v
Для корректной работы сервера 1С на Ubuntu необходимо настроить кодировку локали на ru_RU.UTF-8 UTF-8:

dpkg-reconfigure locales
Выбираем в списке нашу кодировку.

Создаем временную папку под скачиваемые архивы ПО:

mkdir /soft
Переходим в эту папку:

cd /soft
Права на папку:

chmod 777 /soft

Скачиваем дистрибутив с сайта https://releases.1c.ru/ и с помощью winscp копируем на Сервер в папочку soft.

Распаковываем наш архив:

tar -xzvf server64_8_3_23_1912.tar.gz
Устанавливаем необходимые нам пакеты 1С сервера:
./setup-full-8.3.23.1912-x86_64.run --mode unattended --enable-components server,ws,server_admin
Мы устанавливаем кластер серверов 1С, сервер администрирования кластера и модули расширения веб-сервера в пакетном режиме.

    mode unattended - включает пакетный режим
    enable-components - служит для указания компонентов
    additional_admin_functions - установка утилиты административной консоли.
    client_full - установить толстый клиент.
    client_thin - установить тонкий клиент (без возможности работы с файловым вариантом информационной базы).
    client_thin_fib - установить тонкий клиент, который позволяет работать с любым вариантом информационной базы.
    config_storage_server - установить сервер хранилища конфигураций.
    integrity_monitoring - установить утилиту контроля целостности
    liberica_jre - установить Java Runtime Environment (JRE).
    server - установить кластер серверов
    server_admin - установить консоль администрирования кластера серверов.
    ws - требуется установить модули расширения веб-сервера

1C c версии 8.3.21 стала использовать systemd-сценарий запуска кластера серверов и сервера администрирования и находится в папке с платформой:

/opt/1cv8/x86_64/8.3.23.1912/srv1cv8-8.3.23.1912@.service


Установить его можно командой:

systemctl link /opt/1cv8/x86_64/8.3.23.1912/srv1cv8-8.3.23.1912@.service
Запускаем сервер 1С

systemctl start srv1cv8-8.3.23.1912@default.service
Добавляем в автозапуск

systemctl enable srv1cv8-8.3.23.1912@default.service
Проверяем работу сервера 1С:

systemctl status srv1cv8-8.3.23.1912@default.service
Проверяем, слушают ли системные процессы tcp порты:

netstat -tulnp

Сервер 1С успешно установлен и запущен.

Установка HASP

Пробрасываем usb ключ. Любым способом, я через USB Redirect, у меня сервер и клиент в разных местах. И посмотрим определился ли он в системе:

sudo lsusb | grep -i hasp
У вас будет устройство, где в имени присутствует Alladin или HASP dongle.

Загрузите пакеты вот из этого репозитория:

https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/22.04/

wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/22.04/haspd_8.23-eter3ubuntu_amd64.deb
мне удалось скачать его только через vpn, а затем передать на сервер через winscp

Установим пакет и парочку дополнительных, от которых они зависят:

apt install make libc6-i386
dpkg -i haspd*.deb
Запускаем сервис haspd и проверяем, запустился ли он и слушает tcp порты:

systemctl start haspd
netstat -tulnp | grep hasp
Добавим его в автозагрузку:

systemctl enable haspd
На этом настройка hasp завершена.
Установка PostgreSQL

Есть два варианта где можно взять адаптированный дистрибутив PostgreSQL для 1С:

    1-й вариант скачать с официального сайта 1С https://releases.1c.ru/: https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=14.5-3.1C&path=AddCompPostgre%5c14_5_3_1C%5cpostgresql_14.5_3.1C_amd64_deb.tar.bz2
    2-й вариант скачать с сайта компании PostgresPRO https://1c.postgres.ru/, указав под какую платформу вам нужен и контактные данные. На почту моментально придет письмо с информацией о том как установить

Ниже опишу оба варианта установки:

1-й вариант.

Скачиваем наш архив:

wget https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=14.5-3.1C&path=AddCompPostgre%5c14_5_3_1C%5cpostgresql_14.5_3.1C_amd64_deb.tar.bz2
Распаковываем архив:
tar -zxvf postgresql_14.5_3.1C_amd64_deb.tar.bz2
Устанавливаем пакет:

dpkg -i postgresql*.deb
На моменте распаковки мне выдало ошибку, что нельзя распаковать архив и я сделал вариантом 2

2-й вариант.

Запустите скрипт для добавления ключа репозитория:

wget https://repo.postgrespro.ru/1c-15/keys/pgpro-repo-add.sh
sh pgpro-repo-add.sh
Устанавливаем PostgreSQL:

apt-get install postgrespro-1c-15
По просьбам трудящихся, чтобы вызывать бинарные файлы PostgreSQL без указания пути создадим необходимые символические ссылки:

/opt/pgpro/1c-15/bin/pg-wrapper links update
Стартуем службу:

systemctl start postgrespro-1c-15
Проверяем статус:

systemctl status postgrespro-1c-15
Зададим пароль пользователя postgres:

su postgres
psql -U postgres -c "alter user postgres with password 'Ваш_пароль';"
ALTER ROLE

Выходим:

exit
Установка закончена

Установка pqAdmin

На момент написания статьи, с 15 (установленным 2 способом) psql не работает (не устанавливается)
Но пусть будет, пригодится, когда нибудь доработают))

pgAdmin4 – это веб-консоль администрирования и разработки с открытым исходным кодом для PostgreSQL и связанных с ней систем управления базами данных. Разработан на Python и jQuery, он поддерживает все функции, найденные в PostgreSQL. Можно использовать pgAdmin для разных целей – от написания базовых SQL-запросов до мониторинга ваших баз данных и настройки расширенных архитектур баз данных.

Перед установкой необходимо добавить репозиторий, для этого установим публичный ключ:

wget https://www.pgadmin.org/static/packages_pgadmin_org.pub
apt-key add packages_pgadmin_org.pub
здесь ругается на то, что apt-key is depricated

Добавим в файл pgadmin4.list ссылку на репозиторий:
echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list
Обновим список зависимостей и пакетных баз:

apt update
Устанавливаем pgadmin4

apt install pgadmin4
Запустим начальную настройку:

/usr/pgadmin4/bin/setup-web.sh
Система попросит вас указать свой email и пароль для регистрации в системе для входа:

Creating configuration database...

NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: admin@company.ru

Password:

Retype password:

pgAdmin 4 - Application Initialisation

Creating storage and log directories...

We can now configure the Apache Web server for you. This involves enabling the wsgi module and configuring the pgAdmin 4 application to mount at /pgadmin4. Do you wish to continue (y/n)? y

The Apache web server is running and must be restarted for the pgAdmin 4 installation to complete. Continue (y/n)? y

Apache successfully restarted. You can now start using pgAdmin 4 in web mode at http://127.0.0.1/pgadmin4

Установка завершена и консоль pgadmin доступна по адресу:

http://Адрес сервера/pgadmin4

Установка консоли управления сервером 1С

Для того, чтобы установить консоль администратора необходимо скачать и установить технологическую платформу на windows. При установке выбрать пункт Администрирование сервера:
(https://avatars.dzeninfra.ru/get-zen_doc/4612968/pub_6375eeea5d2dd56681c20960_63779806d824761c603c1d21/scale_1200)

После установки, заходим в Меню пуск раскрыв папку с программой 1С:Предприятие увидим Регистрация утилиты администрирования серверов, правой кнопкой мышки выбираем дополнительно и перейти к расположению файла

(https://avatars.dzeninfra.ru/get-zen_doc/4612968/pub_6375eeea5d2dd56681c20960_637798a98fd63c500eadc700/scale_1200)

Открывается место расположение файла, выбираем Регистрация утилиты администрирования серверов правой кнопкой Запуск от имени администратора

(https://avatars.dzeninfra.ru/get-zen_doc/4460346/pub_6375eeea5d2dd56681c20960_637799a892b84b749e164ab1/scale_1200)

Подключение и создание баз

Правой кнопкой по Central 1C:Enterprise 8.3 servers создать Центральный сервер, указываем имя сервера и нажимаем ок

(https://avatars.dzeninfra.ru/get-zen_doc/5194534/pub_6375eeea5d2dd56681c20960_63779acbd7e0783d256a831a/scale_1200)

Все. Сервер 1с на linux готов к использованию!
Название: Перенесем postgresql на другой диск
Отправлено: George от Окт. 26, 2023, 01:13
Для ускорения работы рекомендуется держать БД на другом диске. (в идеале postgres надо на отдельном сервере)
В CentOS это можно сделать при установке, в ubuntu я поступил следующим образом:

mkdir /postgres
в эту папку монтируем диск (я lvm диски создаю, чтоб если что на лету увеличивать размер диска)

chown postgres:postgres /postgres
systemctl stop postgrespro-1c-15
vi /etc/default/postgrespro-1c-15
в нем меняем строчку
ЦитироватьPGDATA=/var/lib/pgpro/1c-15/data

на

PGDATA=/postgres
Копируем данные из старого расположения в новое:

cp -R /var/lib/pgpro/1c-15/data/* /postgres
chmod 750 /postgres
systemctl start postgrespro-1c-15
Название: Публикация базы 1с на ВЭБ сервере
Отправлено: George от Окт. 27, 2023, 05:37
Публикация базы 1с на ВЭБ сервере

Я стараюсь не публиковать базы на вэб сервере, но вам продемонстрирую Процедуру. Если вы не установили pgAdmin, то вэб сервер Apache у вас не инсталлирован, исправим это:

apt install apache2
Создаем директорию в корне веб сервера, где будет храниться конфигурация публикуемой базы:

mkdir -p /var/www/Название_базы
chown -R www-data:www-data /var/www/Название_базы
Публикуем базу 1С:

/opt/1cv8/x86_64/8.3.22.1709/webinst -publish -apache24 -wsdir Название_базы -dir /var/www/Название_базы -connstr "Srvr=Имя_сервера;Ref=Название_базы;" -confpath /etc/apache2/apache2.conf
Перезапускаем веб сервер и добавляем в автозагрузку:

systemctl restart apache2
systemctl enable apache2
Открываем в браузере http://ip_адрес/Название_базы/ Вы должны попасть в свою опубликованную базу 1С. Подключаться к ней можно как через браузер, так и платформу. В платформе при добавлении базы надо указать, что она на веб севере и ввести путь к нему.
Название: Включаем дополнительную аутентификацию по паролю
Отправлено: George от Окт. 27, 2023, 05:41
У нас нет основания сомневаться во встроенном механизме аутентификации 1С:Предприятия, во всяком случае в онлайн-сервисах дополнительной аутентификации не предусмотрено, но есть слабое место - пользователи. Во многих базах могут использоваться простые пароли или не использоваться вообще, часть таких паролей могут использоваться скриптами и средствами автоматизации, поэтому взять и установить сразу всем сложные пароли будет не так-то просто.

Ситуация усугубляется, если администрирование 1С выполняют другие сотрудники, они вполне могут, пойдя на поводу пользователей снова установить им слабые пароли, что сильно снижает безопасность собственного механизма аутентификации. Поэтому мы пойдем другим путем и установим дополнительную аутентификацию на уровне веб-сервера, тут уже точно без нас никто пароль не изменит. Основная его цель - оградить собственный механизм аутентификации 1С от доступа всех желающих, которым достаточно будет просто узнать ссылку.

Следует отметить, что 1С:Предприятите поддерживает только Basic-аутентификацию, которая считается небезопасной, так как передает учетные данные в открытом виде, однако в нашем случае это не имеет значения, так как канал защищен SSL-шифрованием.

Прежде всего создадим файл паролей. Можно использовать один пароль для всех публикаций, либо разные, а также комбинировать этот подход. Например, установим пароль для пользователя user1c:

htpasswd -c /etc/apache2/.htpasswd user1c
Ключ -с создает файл в случае его отсутствия и перезапишет его, если файл существует. Для создания последующих пользователей используйте команду:
htpasswd  /etc/apache2/.htpasswd glbuch
Затем в директории публикации базы, например, /var/www/infobase создадим файл .htaccess:

vi /var/www/infobase/.htaccess
И добавим в него следующие строки:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Первая строка включает Basic-аутентификацию, вторая задает наименование области безопасности, можете вписать туда все что угодно. Затем указывается путь к файлу паролей и политика аутентификации, valid-user обозначает что доступ получит любой аутентифицированный пользователь. Если нужно указать конкретные учетные записи, то последнюю строку нужно изменить следующим образом:

Require user user1c glbuch
Сохраняем файл, перезапуск веб-сервера не требуется, настройка начнет действовать сразу для всех новых подключений. Теперь, при попытке доступа к публикации вы увидите следующий запрос:
(https://interface31.ru/tech_it/images/1cv83-web-access-ssl-001.png)
И только после того, как вы пройдете аутентификацию средствами веб-сервера вам будет предложено войти под своим именем в программу 1С:Предприятие:
(https://interface31.ru/tech_it/images/1cv83-web-access-ssl-002.png)
Если вы используете для доступа к опубликованным на веб-сервере базам тонкий клиент, то увидите дополнительное окно аутентификации на веб-сервере, настроить запоминание пароля здесь нельзя и это может быть неудобно пользователям.
https://interface31.ru/tech_it/images/1cv83-web-access-ssl-003.png
Чтобы автоматизировать вход и избежать лишних запросов учетных данных можно указать в свойствах информационной базы дополнительные параметры запуска:

/WSN user1c /WSP Pa$$w0rd_1

Где ключ /WSN определяет пользователя веб-сервера, а ключ /WSP - пароль.
(https://interface31.ru/tech_it/images/1cv83-web-access-ssl-004.png)
Если публикаций несколько, то файл .htaccess следует создать в директории публикации каждой информационной базы, при этом вы можете комбинировать политики доступа, куда-то разрешать доступ всем пользователям, а куда-то только некоторым. При необходимости настройки можно изменять налету, перезапуск веб-сервера не требуется.