Установка и настройка сервера 1С под Linux – Типичный Админ

Описание базовой системы

В базовой системе присутствуют следующие компьютеры:

  • Контроллер домена Active Directory

    • имя компьютера (hostname) – main

    • IP-адрес – 192.168.29.150

    • имя домена – krb.local

  • Центральный сервер кластера 1С:Предприятия

    • Операционная система Fedora 6

    • Имя компьютера (hostname) – srv1c

    • IP-адрес – 192.168.29.151

    • Установлена реализация Kerberos от MIT, поддерживающая алгоритм RC4-HMAC (пакет krb5-workstation).

  • Рабочая станция

Авторизация пользователей 1с:предприятие на linux сервере через active directory

В Linux дела обстоят иначе. Сервер 1С:Предприятие у нас работает под учетной записью usr1cv8, которая имеет какие-либо права только в пределах нашего linux-сервера. В домене у этого linux-пользователя нет никаких прав, соответственно сервер 1С:Предприятие не может получить ничего от Active Directory.

Что бы исправить эту проблему серверу 1С:Предприятие нужно выдать специальный «билет» и сопоставить его с пользователем Active Directory по протоколу Keberos.

Создайте такого пользователя в Active Directory, назовите его, например, linux1сv8. Права у него могут быть совершенно любые, главное, что бы в настройках его учетной записи была отключена опция Use DES encryption types with this account.

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

Теперь нам потребуется командная строка Windows рабочей станции, включенной в домен и утилита ktpass, найти ее можно в пакете «Windows Support Tools» сервера или «Средства удаленного администрирования» полнофункциональных версий настольных Windows.


Сделаем это

Настроим dns

DNS потребуется нам для того, что бы сервер мог обращаться к ресурсам локальной сети по логическим именам.

Сначала разберемся с именем самого сервера

$ sudo nano /etc/hostname

В этом файле должно быть указано имя компьютера, данное ему при установке операционной системы. Если по каким-то причинам там не оно – исправьте.


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

$ sudo nano /etc/hosts

Здесь нужно сопоставить имена с IP адресом любого сетевого соединения, например, так

Настроим samba и включим сервер в домен

Мы уже немного настраивали Samba для того, что бы нам было удобнее копировать дистрибутивы по сети. Эти настройки будут полезны в будущем при обновлении платформы 1С:Предприятие, оставьте их. В этом разделе описаны другие настройки.

Открываем файл конфигурации Samba

$ sudo nano /etc/samba/smb.conf

И приводим его примерно к такому виду

Настроим авторизацию через kerberos

Открываем конфигурационный файл

$ sudo nano /etc/krb5.conf

И приводим его к такому виду, разумеется заменяя имена и IP адреса нашего примера под свои условия

Настройка контроллера домена

В нашем примере мы полагаем, что контроллер домена Active Directory настроен и работает. Исходя из этого, для настройки Kerberos-аутентификации нужно выполнить следующие шаги:

  1. Затем для пользователя usr1cv8 следует сгенерировать файл с секретным ключом. Для этого используется утилита ktpass, входящая в состав в пакет Windows Support Tools (Его можно найти в подкаталоге SUPPORT установочного диска Windows).

Настройка центрального сервера кластера 1с:предприятия

В нашем примере мы полагаем, что кластер серверов 1С:Предприятия уже установлен и работает на центральном сервере кластера.

Прежде всего следует указать DNS-сервер для центрального сервера кластера. Это должен быть DNS контроллер домена. Процесс настройки зависит от конкретного дистрибутива Linux, в нашем случае отредактируем “вручную” файл /etc/resolv.conf, указав в нем IP адрес контроллера домена. В результате файл должен содержать следующие строки:

srv1c:~# cat /etc/resolv.confnameserver 192.168.29.150search krb.localsrv1c:~#

Теперь проверим работу DNS. Для этого выполним команду ping:

srv1c:~# ping main -c 1PING main.krb.local (192.168.29.150) 56(84) bytes of data.64 bytes from 192.168.29.150: icmp_seq=1 ttl=128 time=0.177 ms--- main.krb.local ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 0.177/0.177/0.177/0.000 mssrv1c:~#

Для компьютеров, участвующих в процессе аутентификации, не допускается большого расхождения системных часов, так как аутентификационные пакеты (тикеты) имеют ограниченное время действия. Соответственно, нужно синхронизировать время центрального сервера кластера с контроллером домена. Используем для этого команду ntpdate:

srv1c:~# ntpdate main4 Jun 11:51:53 ntpdate[2527]: step time server 192.168.29.150 offset -56.766439 secsrv1c:~#

Теперь настроим Kerberos. Для этого отредактируем файл /etc/krb5.conf. При этом, нам понадобится NETBIOS-имя контроллера домена. Оно, как правило, представляет собой имя домена в верхнем регистре . Поэтому в нашем случае NETBIOS-имя будет KRB.LOCAL.

В результате файл /etc/krb5.conf должен выглядеть следующим образом:

План работ

  1. Установить операционную систему
  2. Установить СУБД PostgreSQL
  3. Установить сервер 1С:Предприятие
  4. Зарегистрировать сервер в домене
  5. Опубликовать информационную базу и веб-сервисы
  6. Настроить резервное копирование

Перед началом работ трезво оцените свои силы. Для подготовленного специалиста все перечисленные ниже операции займут не более половины рабочего дня, при чем большая часть этого времени уйдет на ожидание завершения операций копирования, установки, загрузки и т.п.


Если установка производится поверх уже работающей системы, сделайте резервную копию, например, сохраните образ дисков. Если что-то пойдет не так, Вы сможете быстро восстановить прежнюю работоспособность системы

Публикация на веб-сервере apache

Использовать один и тот же сервер в качестве сервера приложений (а также СУБД) и web-сервера безопасно только в закрытой сети предприятия Интранет. Для публикации в Интернет правильно будет использовать отдельный web-сервер и разместить его в DMZ

1С:Предприятие релизов до 8.3.9 поддерживало публикацию информационной базы на веб-сервере Apache версии не выше 2.2. Для использования Apache 2.4, включенного в репозитории Ubuntu 16.04 LTS обновитесь до актуального релиза технологической платформы 1С:Предприятие.

Как всегда, начинаем с установки нужных нам пакетов. Если Вы разворачиваете отдельный сервер для web-публикации, при установке на него операционной системы достаточно указать, что этот сервер будет работать как LAMP (Linux Apache MySQL Php).


Если сервер уже установлен без Apache

$ sudo apt install apache2

Уточним, что мы установили из репозитория

$ apache2 -v

Запоминаем версию

Server version: Apache/2.4.18 (Ubuntu) Server built: 2022-07-14T12:32:26

2.4 – этот номер версии нам нужно будет указать при публикации, соответственно в параметре публикации указываем -apache24. Все остальные параметры указаны для установки Apache 2.4 по-умолчанию.

$ sudo /opt/1C/v8.3/x86_64/webinst -apache24 -wsdir base1c -dir /var/www/html/base1c -connstr "Srvr=myserver;Ref=base1c;" -confPath /etc/apache2/apache2.conf 
$ sudo service apache2 restart

Регистрация сервера в домене


Процедура имеет смысл только если используется домен Microsoft Windows и планируется авторизация пользователей 1С:Предприятие по учетной записи Active Directory

Как обычно, начнем с установки необходимых пакетов

Резервное копирование

В клиент-серверном варианте работы 1С:Предприятие резервное копирование производится средствами СУБД. Т.к. СУБД PostgreSQL у нас теперь работает на Linux-сервере резервное копирование будет выполняться скриптами на этом сервере

Резервное копирование в PosеgreSQL выполняется утилитой pg_dump. Подробная справка по синтаксису выводится командой

$ pg_dump --help


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

$ pg_dump -f base1c.sql.tar -F t -d base1c -h localhost -U postgres

Обратите внимание, запуск утилит резервного копирования и восстановления производится не от суперпользователя, без конструкции sudo. Файл бэкапа будет сформирован в текущем каталоге и его владельцем будет пользователь

Для восстановления базы из архива, созданного командой pg_dump используется команда pg_restore. Подробная справка по синтаксису

$ pg_restore --help


Пример восстановления базы base1c из бэкапа base1c.sql.tar

$ pg_restore -d base1c -F t -U postgres base1c.sql.tar

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

Бэкап сохранился в домашней папке пользователя, это лучше, чем ничего, но хранить резервные копии баз данных на самом сервере баз данных слишком самоуверенно. Когда-то давно резервные копии делали на ленты стримера и увозили их куда подальше в надежное место.

Синхронизируем часы


Чуть далее мы будем использовать протокол Keberos, а для его корректной работы важно, что бы системные часы контроллера домена и нашего сервера были синхронизированы.

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

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

$ sudo apt install ntpd

настроем его

$ sudo nano /etc/ntp.conf

укажем источник точного времени в домене – контроллер домена

Установка сервера 1с:предприятие

При выборе архитектуры дистрибутива i386 или x86-64 следует учитывать не только архитектуру сервера и установленной на него операционной системы, но и имеющуюся у Вас лицензию на сервер 1С:Предприятия. Здесь описывается процесс установки 64-разрядного сервера в x86-64 архитектуру.

Установка 32-разрядного сервера в i386 архитектуру аналогична с точностью до наименования некоторых файлов и каталогов. Установка 32-разрядного сервера в архитекруту x86-64 потребует решения проблем зависимостей пакетов, и этот подвиг достоин отдельной статьи

Предварительно установим пакеты, необходимые для работы сервера 1С:Предприятие

$ sudo apt install imagemagick unixodbc libgsf-bin ttf-mscorefonts-installer

В процессе установки пакета ttf-mscorefonts-installer потребуется принять условия пользовательского соглашения EULA.


Любым законным способом получаем дистрибутив платформы 1С:Предприятия для deb-based Linux, например, скачиваем его с портала ИТС. Сервер 1С:Предприятие состоит из 3-х пакетов:

Если в 1С:Предприятии кроме русского и английского Вам потребуются другие языки, берите пакеты в наименовании которых присутствует NLS

Установка субд postgresql

1С:Предприятие работает со специально пропатченной версией PostgreSQL. Версия из репозитория Ubuntu не подойдет.

Этап 1. общая подготовка сервера.

Далее, нужно обновить установленную систему. А для этого надо, чтобы система имела выход в интернет, поэтому нужно настроить сеть. Открываем консольный файловый менеджер:

mc

и переходим в каталог /etc/sysconfig/network-scripts. В более ранних версиях федоры сетевые интерфейсы назывались eth0, eth1, eth2 и так далее, но в шестнадцатой федоре обозначение сетевых карт изменилось. Поскольку, сетевух на сервере у меня две, то у себя я в этом каталоге обнаружил файлы с названиями ifcfg-p2p1 и ifcfg-em0. И решил я их использовать обе на пользу. О том, как это сделать, я прочитал вот тут:

Этап 2. сборка postgresql и установка 1c.

После общей настройки сервера приступим к установке PostgreSQL. На сайте 1С выложены готовые rpm-пакеты уже пропатченого PostgreSQL. Но я не решился их ставить. Потому как, там же есть и src.rpm-ка, которую можно пересобрать под свою систему. На момент написания статьи, это был пакет postgresql-9.0.3-3.1C.src.rpm. Итак, приступим к его пересборке. В этом мне помогли вот эти ресурсы:

Этап 3. настройка вэб-доступа, установка hasp, решение проблем.

Когда создадите базу и зальёте в неё какую-нибудь конфигурацию, а затем попытаетесь в неё зайти, то получите ошибку:

Ошибка инициализации графической подсистемы.

То это означает, что на сервер надо установить необходимые шрифты. В этом мне помогли вот эти статьи:

Этап 4. настройка прозрачной авторизации пользователей через kerberos.

Поскольку у меня есть Active Directory, то почему бы не настроить авторизацию пользователей 1с через неё? Тем более, что 1с это поддерживает. В линуксе мы это сделаем через kerberos.

В настройке всего этого мне помогла вот эта статья:

Похожее:  Frequently Asked Questions - CUPS.org

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

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