Открыть порты centos 7 для 1с
Пошаговая инструкция по запуску и первичной настройке сервера 1С:Предприятия 8.3 версии 8.3.19.1229 в ОС CentOS Stream 8.4 с использованием СУБД PostgresPro-1C-13 и системы защиты HASP (USB-ключа).
Подготовка
Утанавливаем пакет epel-release
Устанавливаем дополнительные утилиты, которые понадобятся (или возможно понадобятся) для установки
Создадим директорию для хранения пакетов
Переходим в каталог
Распакуем архив rpm64_8_3_19_1229.tar.gz
Создадим каталог /home/1c/hasp/
переходим в него
и качаем haspd с модулями
Изменим имя хоста на server1c
откроем файл /etc/hosts
и также добавим в него:
Установка и настройка СУБД PostgresPro-1C-13
Добавим в список репозиториев postgrespro-1c-13 и создадим кеш:
Устанавливаем СУБД postgrespro-1c-13
После установки проверяем статус службы postgrespro-1c-13
Удаляем тестовую базу данных
и запускаем настройку PostgresPro
Добавим службу postgrespro-1c-13 в автозагрузку
Настроим доступ к СУБД из локальной сети. Для этого откроем файл /var/lib/pgpro/1c-13/data/pg_hba.conf
и допишем в него такой параметр:
Перезапустим службу postgrespro-1c-13
Переходим на пользователя postgres
запускаем консоль psql
и зададим пароль для пользователя postgres
Выходим из пользователя postgres
и возвращаемся в консоль.
Перезапустим службу postgrespro-1c-13
Установка сервера 1С:Предприятие 8.3
Переходим в каталог /home/1c/
и запустим установку всех пакетов, находящихся в директории
Запускаем службу srv1cv83
консоль должна отобразить статус:
Создадим символическую ссылку на службу srv1cv83 в /etc/init.d/
Перезапустим srv1cv83 и проверим его статус
Установка и настройка системы защиты HASP
Переходим в каталог /home/1c/hasp/
и установим оттуда все пакеты
Откроем файл конфигурации HASP-а
и в самом конце допишем такую строчку
Вставляем USB-ключ HASP в USB-разъём на сервере.
Запускаем службу haspd и включаем её в автозагрузку
Проверяем статус запуска службы haspd
но на этом этапе будет лучше перезагрузить сервер
Настройка файрволла
Открываем необходимые порты для работы с 1С и СУБД
Если информационная база будет публиковаться с использованием веб-сервера, то необходимо будет ещё открыть порт 80/tcp
Настройки в консоли администрирования 1С
На Windows-машине в сети необходимо запустить утилиту Server Administration Utility Registration x86-64 для активации консоли администрирования кластера 1С.
После этого запускаем Administration of 1C Enterprise x86-64 servers
Затем правой кнопкой мыши кликаем на Central 1C:Enterprise 8.3 servers (Центральный сервер). Здесь выбираем Создать -> Центральный сервер 1С:Предприятия 8.3
В поле Имя сервера вводим: server1c
и он появится в оснастке консоли
Находим Информационные базы в Central 1C:Enterprise 8.3 servers -> server1c -> Кластеры -> Локальный кластер и кликаем правой кнопкой мыши Создать -> Информационная база
После нажатия OK информационная база появится в списке
Настройка клиента 1C
При первом запуске появится предложение добавить в список информационную базу.
Добавим существующую информационную базу
и теперь новая информационная база появится в списке:
Заключение
На этом настройка 1С завершена. Чтобы войти в 1С:Предприятие или Конфигуратор, необходима лицензия, необходимо наличие USB-ключа HASP, о котором было упомянуто выше. Но если на всех вышеперечисленных этапах при установках и настройках ошибок не возникало, то платформа должна работать корректно без ошибок и проблем.
После установки CentOS 7 приступим к ее настройке.
Для настройки системы воспользуемся подключением по SSH используя клиент PuTTy или другой SSH клиент.
Начальная настройка CentOS 7
Так как CentOS 7 у нас гостевая ОС ESXi 6.5, то нужно установить VMware tools:
Для дальнейшего удобства установим файловый менеджер Midnight Commander:
В CentOS 7 minimal все утилиты, такие как dig, host, nslookup, теперь включены в пакет bind-utils, поэтому установим этот пакет:
меняем значение SELINUX=enforcing на SELINUX=disabled . Сохраняем и выходим.
Для вступления изменений в силу перезагрузим ОС:
Настройка сетевого интерфейса сервера
Сервер 1С:Предприятие будет находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.
Отключаем firewalld:
В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:
127.0.0.1 localhost
192.168.xxx.yyy SERVER_NAME.DOMAIN.LOCAL SERVER_NAME
Что бы новые параметры вступили в силу нужно перезагрузить сервер.
После перезагрузки имя сервера должно разрешаться в IP-адрес.
Подключение репозиториев
Для инсталляции различных пакетов ПО необходимо подключить репозитории в CentOS. Добавим популярный EPEL:
Настройка и синхронизация времени
Настроим время сервера. Узнать, какое время на сервере можно с помощью команды date:
Чтобы сменить часовой пояс на +3, воспользуемся специальной утилитой, которая входит в комплект CentOS 7:
Установим утилиту для синхронизации времени chrony:
Запускаем chrony и добавляем в автозагрузку:
Установка дополнительных пакетов
Добавим несколько полезных утилит, которые могут пригодиться в процессе эксплуатации сервера.
iftop показывает в режиме реального времени загрузку сетевого интерфейса:
Диспетчер задач htop:
Установим также необходимые пакеты отсутствующие в поставке:
Скачиваем необходимые шрифты и устанавливаем их:
Публикация общей папки
Для удобства установим Samba и добавим в автозагрузку:
Далее создадим папку, к которую дадим общий доступ и настроим Samba:
Настроим Samba внеся в smb.conf следующий текст:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = Server1C
security = user
map to guest = bad user
dns proxy = no
guest account = nobody
browseable = yeslog file = /var/log/samba/log.%m
max log size = 50
[public]
comment = FS
path = /home/public
readonly = no
guest ok = yes
public = yes
guest only = yes
writable = yes
Добавляем Samba в автозагрузку:
Если не отключать Firewall, то нужно добавить следующие правила:
Установка веб сервера
Для работы сервисов, имеющих веб интерфейс, установим веб сервер Apache:
Добавляем apache в автозагрузку:
Запускаем apache в CentOS 7:
Проверяем, запустился ли сервер:
Установим популярные модули для php:
Выполним перезапуск apache:
Базовая настройка CentOS 7 закончена
Похожее
Настройка CentOS 7 для сервера 1С 8.3: 13 комментариев
Нет, не пробовал. У меня на данный момент похожая проблема с криптопровайдером. Под линуксом криптопровайдер не цепляется, тоже вываливается ошибка подключения динамической библиотеки. Я не уверен, но в Вашем случае скорее всего проблема подключения COM объектов, которые, как я понял, не поддерживаются в Linux. Возможно надо найти обработчик под CentOS.
День добрый.
Решили проблему с криптопровайдером?
Нет, забил. В итоге из-за ЭДО пришлось сервер 1с выносить отдельно на виртуальную машину с windows 10 с более частотным процессором
А что конкретно не работало? 1С отчетность для сдачи в ФНС ФСС и прочее или что-то свое?
Да, 1С отчетность. Мне нужно было чтобы сервер раздавал эцп, чтобы сотрудники не имели физ доступа к ней, но не сложилось
Добрый день.
Для чего служат пакеты из команды
yum install policycoreutils-python wget bzip2 ntp net-tools unixODBC ImageMagick fontconfig-devel ?
Как определили их необходимость?
Да, 1С отчетность. Мне нужно было чтобы сервер раздавал эцп, чтобы сотрудники не имели физ доступа к ней, но не сложилось
Создаётся впечатление, что все авторы, описывающие установку CentOS в качестве сервера, не владеют ситуацией. Первое, что они предлагают, отключить SELinux и Firewall. А слабо, настроить SELinux? А где открытие портов? Для работы в с ОС Windows, коих подавляющее большинство в сетях, нужна Samba, а для её работы необходимо открыть порты 137, 138, 139, 443 и 445. Для возможности соединения с сервером, через Web интерфейс, необходимо открыть порт 80. Для удалённого управления сервером необходимо настроить SSH, а для исключения возможности несанкционированного доступа к серверу, поменять порт SSH, или на худой коней открыть порт по умолчанию и сформировать надёжный пароль, или доступ по публичному ключу. Где все это. Я даже на домашнем сервере всё это проделал и не отключал SELinux, а настроил её, включил разрешения для работы Samba и SSH, но только те, которые используются в домашней сети.
Спасибо за комментарий. Вы правы, мне этот «блог» нужен для того что бы инфа, которую я собрал в инете была под рукой и эти инструкции делал прежде всего для себя, естественно после успешного внедрения, и если здесь нет инфы о настройке защиты, значит я не нашёл нормальную инструкцию, а сам я ни разу не линуксоид. Да и в моем случае это работает в закрытом контуре сети, поэтому не стал разбираться с защитой. Если дополните будет очень хорошо!
Соглашусь. Если сервер работает только внутри сети и не смотрит наружу, то смысла настраивать все порты и SE не вижу. Больше мороки.
По моему я где-то написал, что не настраивал защиту по причине работы сервера в закрытой сети
Так как 1С работает только с русской локализацией, то необходимо сразу устанавливать систему с учётом этого. В дальнейшем все действия производятся от имени суперпользователя.
Проверка текущей локализации системы:
Для проверки доступности необходимой локали используем команду:
Для смены локали:
Далее настраиваем статический IP-адрес, маску подсети, шлюз по умолчанию, DNS.
Предварительно делаем бекап стандартного файла конфигурации сетевого интерфейса:
Далее конфигурируем интерфейс (адреса выставляем свои):
В файле /etc/hostname изменим имя хоста на более удобное: 1с-srv.
Сопоставим IP с именем хоста для удобства обращения к серверу. В файле /etc/hosts добавляем запись:
Так же необходимо это соответствие будет прописать на все клиентах, которые будут работать с сервером 1С. В операционной системе Windows это прописывается в файле: C:\Windows\System32\drivers\etc\hosts
Также редактируем файл /etc/sysconfig/network, прописываем имя хоста и отключим адресацию IPv6:
Отключаем использование IPv6 на уровне ядра. В файле /etc/sysctl.conf добавляем строчки:
Сохраняем и применяем настройки:
Отключаем SELinux в файле /etc/sysconfig/selinux
После всех манипуляций обязательно рестарт сети: systemctl restart network и проверяем работу введенной конфигурации.
Следующим шагом обновляем систему и устанавливаем пакеты программ и библиотек:
Скачиваем необходимые нам пакеты с 1с сервером и PostgreSQL и копируем на сервер:
Переходим в папку с 1с:
Распаковываем наш архив:
Прописываем сервер в автозагрузку:
Проверяем запуск сервера:
Назначим владельцем директории /opt/1C автоматически созданного пользователя usr1cv8 и группу пользователей grp1cv8:
Задаём пароль для usr1cv8:
Переходим в папку с пакетами PostgreSQL:
Распаковываем наш архивы:
Устанавливаем доп. модули:
Переключаемся на пользователя postgres (создаётся автоматически при сборке из исходников):
Далее необходимо проинициализировать служебные базы данных с русской локалью:
Если все прошло успешно можно запускать сервер базы данных. Если нужно создать новую системную базу, то необходимо удалить папку /var/lib/pgsql/10/data.
Заходим в базу и задаём пароль для пользователя postgres:
Проверяем локализацию и работоспособность сервера Postgres:
Обязательно редактируем файл /var/lib/pgsql/10/data/pg_hba.conf задаем в нем доступ к базам по паролю, а также передачу данных аутентификации в формате md5 хеш суммы.
После перезагрузки запускаем вручную Postgre и добавляем в автозагрузку:
Следующим шагом задаем конфигурации сервера Postgres.
Здесь нужно ориентироваться на конфигурацию 1С, количество пользователей 1С, объёмы баз, количество операций с базами. Поэтому конфигурирование большей части параметров производится, на запущенном сервере, путём подбора оптимальных показателей. Настройку выполняем путем редактирования файла /var/lib/pgsql/10/data/postgresql.conf
Предварительно делаем резервную копию postgresql.conf
На данной стадии нас интересует параметр listen_addresses, данный параметр позволят задать адрес, список адресов, с которых будет возможно подключение, * - для любого адреса.
Теперь необходимо добавить шрифты и кодировки.
Устанавливаем библиотеки для иконок и картинок:
При подключении 1с к серверу может выдать ошибку на отсутствие библиотеки libWand.so, поэтому создадим символическую ссылку на файл установленной библиотеки:
Настроим firewall на нашем сервере.
Заходим в настройки iptables и приводим файл к следующему виду:
Переходим на машину с Windows. Устанавливаем клиент 1С и утилиты для администрирования. Запускаем администрирование 1С.
Теперь можно добавить наш сервер.
В появившемся окне прописываем имя нашего сервера.
Если все настроено правильно, то увидим локальный кластер с нашим сервером. Создаём информационную базу.
В случае ошибки, при создании базы, идем на сервер и заходим под пользователем postgres. Далее удаляем базу: dropdb postgres.
Следующим шагом переходим в 1С и добавляем нашу базу:
Заходим в конфигуратор и загружаем базу Gilev для теста:
Следующим шагом настроим Web-публикацию:
В корневом каталоге сайта создаем директорию test, где test — имя базы к которой мы будем предоставлять доступ.
Теперь нам необходимо запустить специальный скрипт для публикации базы на веб-сервере:
Выдаем права на директорию:
Запускаем Apache и добавляем в автозагрузку:
Теперь проверяем по адресу 1c-srv/test
Заключительным этапом настроим резервное копирование базы данных и обслуживание.
Первым делом установим архиватор pigz, поскольку он, в отличии от gzip, хорошо загружает все ядра процессора, что в свою очередь повышает производительность и скорость выполнения архивации.
Создадим папку для монтирования диска для бекапов и монтируем его:
Для автоматического монтирования прописываем диск в файл fstab:
Создаем директории, в которых будут находиться наши бекапы (Day, Week, Month…) и назначим владельцем postgres:
Основной брандмауэр в операционных системах Linux - это iptables. Но команды iptables сложны, и многим пользователям тяжело запомнить все опции и случаи, в которых их надо использовать. Поэтому разработчики дистрибутивов создают свои надстройки над iptables, которые помогают упростить управление фаерволом. У CentOS надстройка для управления iptables называется Firewalld.
У Firewalld есть несколько важных отличий, по сравнению с iptables. Здесь управление доступом к сети выполняется на уровне зон и сервисов, а не цепочек и правил. А также правила обновляются динамически, не прерывая запущенных сессий. В этой статье будет рассмотрена настройка Firewall CentOS 7 на примере Firewalld.
Основы использования Firewalld
Как я уже сказал выше, Firewalld работает не с цепочками правил, а с зонами. Каждому сетевому интерфейсу может быть присвоена определенная зона. Зона представляет из себя набор правил, ограничений и разрешений, которые применяются к этому сетевому интерфейсу. Для одного интерфейса может быть выбрана только одна зона. Разработчики создали несколько предустановленных зон:
Таким образом, чтобы разрешить или запретить какой-либо сервис, вам достаточно добавить или удалить его из текущей зоны или сменить зону интерфейса на ту, где он разрешён. Можно провести аналогию с политикой действий по умолчанию для пакетов в iptables. Зона trusted имеет политику ACCEPT и разрешает все подключения, зона block имеет политику DENY, которая запрещает все подключения, а все остальные зоны можно считать наследниками зоны block, плюс в них уже предопределены правила разрешения сетевых подключений для некоторых сервисов.
Также у Firewalld есть два вида конфигурации:
- runtime - действительна только до перезагрузки, все изменения, в которых явно не указано другое, применяются к этой конфигурации;
- permanent - постоянные настройки, которые будут работать и после перезагрузки.
Теперь вы знаете всё необходимое, поэтому перейдём к утилите firewalld-cmd.
Синтаксис и опции firewall-cmd
Управлять настройками Firewalld можно как с помощью консольной утилиты firewall-cmd, так и в графическом интерфейсе. CentOS чаще всего используется на серверах, поэтому вам придётся работать в терминале. Давайте рассмотрим синтаксис утилиты:
firewall-cmd опции
Для управления зонами используется такой синтаксис:
firewall-cmd --конфигурация --zone=зона опции
В качестве конфигурации нужно указать опцию --permanent, чтобы сохранить изменения после перезагрузки или ничего не указывать, тогда изменения будут действительны только до перезагрузки. В качестве зоны используйте имя нужной зоны. Давайте рассмотрим опции утилиты:
- --state - вывести состояние брандмауэра;
- --reload - перезагрузить правила из постоянной конфигурации;
- --complete-reload - жёсткая перезагрузка правил с разрывом всех соединений;
- --runtime-to-permanent - перенести настройки конфигурации runtime в постоянную конфигурацию;
- --permanent - использовать постоянную конфигурацию;
- --get-default-zone - отобразить зону, используемую по умолчанию;
- --set-default-zone - установить зону по умолчанию;
- --get-active-zones - отобразить активные зоны;
- --get-zones - отобразить все доступные зоны;
- --get-services - вывести предопределенные сервисы;
- --list-all-zones - вывести конфигурацию всех зон;
- --new-zone - создать новую зону;
- --delete-zone - удалить зону;
- --list-all - вывести всё, что добавлено, из выбранной зоны;
- --list-services - вывести все сервисы, добавленные к зоне;
- --add-service - добавить сервис к зоне;
- --remove-service - удалить сервис из зоны;
- --list-ports - отобразить порты, добавленные к зоне;
- --add-port - добавить порт к зоне;
- --remove-port - удалить порт из зоны;
- --query-port - показать, добавлен ли порт к зоне;
- --list-protocols - вывести протоколы, добавленные к зоне;
- --add-protocol - добавить протокол к зоне;
- --remove-protocol - удалить протокол из зоны;
- --list-source-ports - вывести порты источника, добавленные к зоне;
- --add-source-port - добавить порт-источник к зоне;
- --remove-source-port - удалить порт-источник из зоны;
- --list-icmp-blocks - вывести список блокировок icmp;
- --add-icmp-block - добавить блокировку icmp;
- --add-icmp-block - удалить блокировку icmp;
- --add-forward-port - добавить порт для перенаправления в NAT;
- --remove-forward-port - удалить порт для перенаправления в NAT;
- --add-masquerade - включить NAT;
- --remove-masquerade - удалить NAT.
Это далеко не все опции утилиты, но для этой статьи нам будет их достаточно.
Настройка Firewall в CentOS 7
1. Статус брандмауэра
Первым делом необходимо посмотреть состояние брандмауэра. Для этого выполните:
sudo systemctl status firewalld
Если служба Firewalld отключена, то необходимо её включить:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Теперь нужно посмотреть, запущен ли Firewalld, с помощью команды firewall-cmd:
sudo firewall-cmd --state
2. Управление зонами
Как вы уже поняли, зоны - это основной инструмент для управления сетевыми подключениями. Чтобы посмотреть зону по умолчанию, выполните:
sudo firewall-cmd --get-default-zone
В моем случае это зона public. Вы можете изменить текущую зону с помощью опции --set-default-zone:
sudo firewall-cmd --set-default-zone=public
Чтобы посмотреть, какие зоны используются для всех сетевых интерфейсов, выполните:
sudo firewall-cmd --get-active-zones
В списке будут выведены зоны и интерфейсы, для которых они присвоены. Такой командой можно посмотреть конфигурацию для определённой зоны. Например, для зоны public:
sudo firewall-cmd --zone=public --list-all
3. Настройка сервисов
Вы можете посмотреть все предопределенные сервисы командой:
sudo firewall-cmd --get-services
А чтобы удалить этот сервис, выполните:
В обоих случаях мы использовали опцию --permanent, чтобы конфигурация сохранялась после перезагрузки. После изменений нужно обновить правила:
sudo firewall-cmd --reload
Затем, если вы посмотрите конфигурацию зоны, то там появится добавленный сервис:
sudo firewall-cmd --zone=public --list-all
4. Как открыть порт в Firewalld
Если для нужной вам программы нет сервиса, вы можете открыть её порт вручную. Для этого просто добавьте нужный порт к зоне. Например порт 8083:
sudo firewall-cmd --zone=public --add-port=8083/tcp --permanent
Чтобы удалить этот порт из зоны, выполните:
sudo firewall-cmd --zone=public --remove-port=8083/tcp --permanent
Аналогично сервисам, чтобы открыть порт в firewall centos 7 надо перезагрузить брандмауэр.
sudo firewall-cmd --reload
5. Проброс портов Firewalld
sudo firewall-cmd --zone=public --add-forward-port=port=2223:proto=tcp:toport=22
Здесь перенаправление выполняется только на текущей машине. Если вы хотите настроить сеть NAT и пробрасывать порт на другую машину, то вам нужно сначала включить поддержку masquerade:
sudo firewall-cmd --zone=public --add-masquerade
Затем уже можно добавить порт:
sudo firewall-cmd --zone=publiс --add-forward-port=port=2223:proto=tcp:toport=22:toaddr=192.168.56.4
6. Расширенные правила
Если функциональности зон вам недостаточно, вы можете использовать расширенные правила. Общий синтаксис расширенных правил такой:
rule family = "семейтво" source значение destination значение log audit действие
Вот значение основных параметров:
Давайте рассмотрим несколько примеров. Нам необходимо заблокировать доступ к серверу для пользователя с IP 135.152.53.5:
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=135.152.53.5 reject'
Или нам нужно запретить для этого же пользователя только доступ к порту 22:
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=135.152.53.5 port port=22 protocol=tcp reject'
Посмотреть все расширенные правила можно командой:
sudo firewall-cmd --list-rich-rules
Выводы
В этой статье мы разобрали, как выполняется настройка firewall в CentOS 7 и какие задачи можно с помощью него выполнить. Программой намного проще пользоваться, чем iptables, но по моему мнению надстройка фаервола от Ubuntu - ufw ещё проще в использовании.
Настройка 1С:Сервера взаимодействия
$ /usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data
$ psql
- имя или IP-адрес компьютера, на котором установлен сервер взаимодействия и к которому будет подключаться клиентское приложение системы взаимодействия (система «1С:Предприятие»).
/var/cs/cs_instance/logs/
/var/cs/hc_instance/logs/
/var/cs/elastic_instance/logs/
Настройка обмена файлами в системе взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов.Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
- Amazon
- Amazon CDN
- Google Cloud
- Google Cloud CDN
- Croc Cloud
- Техносерв
Необходимо выбрать только один вариант использования хранилища файлов:
$ sudo firewall-cmd --zone="public --add-port=9000/tcp" --permanent
$ sudo firewall-cmd --reload
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливалиь при старте, занесем их инициализацию в /etc/default.
$ sudo vi /etc/default/minio
MINIO_VOLUMES=""/var/minio/&"quot;
MINIO_ACCESS_KEY="<"span >minio
MINIO_SECRET_KEY="<"span >minio123
$ sudo vi /etc/systemd/system/minio.service
[Unit]
Description if [ -z \"$\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no
$ sudo systemctl enable minio.service
$ sudo systemctl start minio.service
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
Читайте также: