1) Первоначальная подготовка сервера Ubuntu
все действия лучше выполнять из под root
su root
Обновляемся и можно начинать
apt-get update -y && apt-get upgrade -y
Установка локалей
locale-gen en_US.UTF-8
locale-gen ru_RU.UTF-8
update-locale LANG=ru_RU.UTF8
dpkg-reconfigure locales
После установки локалей, необходимо перезагрузить сервер, после перезагрузки проверить, применились ли настройки командой
locale
Результат должен выглядеть так:
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
открываем порты для 1с и домена
iptables -A INPUT -p tcp -m tcp -m multiport -m state --state NEW -j ACCEPT --dports 1540,1541,5432
iptables -A INPUT -p tcp -m tcp -m state --dport 1560:1591 --state NEW -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 631 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT
2) Установка и настройка Kerberos и ввод в домен
Ставим samba и winbind
apt-get install samba winbind
Ставим авторизацию kerberos
apt-get install krb5-user
apt-get install libpam-krb5 libpam-winbind libnss-winbind
Правим winbind
nano /etc/nsswitch.conf
passwd: files winbind
group: files winbind
initgroups: files winbind
shadow: files
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns wins
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Правим samba
nano /etc/samba/smb.conf
[global]
workgroup = DOMEN
realm = DOMEN.RU
security = ADS
encrypt passwords = true
dns proxy = no
socket options = TCP_NODELAY
panic action = /usr/share/samba/panic-action %d
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
template shell = /bin/bash
winbind refresh tickets = yes
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
server string = %h server (Samba, Ubuntu)
idmap config * : backend = tdb
idmap config * : range = 3000-7999
idmap config DOMEN : backend = tdb
idmap config DOMEN : range = 100000-999999
[share]
path = /home/virtual/Share
writeable = yes
browseable = yes
guest ok = no
Правим ошибку количества соединений
Добавляем в конец файл строку со значением 16384
nano /etc/security/limits.conf
* - nofile 16384
Проверяем настройки samba
testparm -s
Изменения лимитов будут приняты после перезагрузки
Правим настройки kerberos
SERV.DOMEN.RU - сервер где находится AD
nano /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
default = SYSLOG:DEBUG:DAEMON
kdc = FILE:/var/log/krb5kdc.log
kdc = SYSLOG:DEBUG:DAEMON
admin_server = FILE:/var/log/kadmind.log
admin_server = SYSLOG:DEBUG:DAEMON
[libdefaults]
default_realm = DOMEN.RU
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24000
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
fcc-mit-ticketflags = true
[realms]
DOMEN.RU = {
kdc = SERV.DOMEN.RU
admin_server = SERV.DOMEN.RU
default_domain = DOMEN.RU
}
[domain_realm]
.domen.ru = DOMEN.RU
domen.ru = DOMEN.RU
[login]
krb4_convert = false
krb4_get_tickets = false
[appdefaults]
pam = {
debug = true
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = false
krb4_convert = false
}
Правим файл hosts
nano /etc/hosts
127.0.0.1 localhost
#127.0.1.1 server1c server1c.domen.ru
192.168.1.5 server1c.domen.ru
Присоединяем к домену используя учетную запись с правами администратора домена
net ads join -U superadmin@domen.ru domen.ru
Проверяем присоединение
net ads testjoin
net rpc testjoin
Join is OK
Проверяем работу winbind
wbinfo -t
wbinfo -u
wbinfo -g
Должны отобразится списки груп и пользователей из AD
Перезагружаемся и Проверяем работу kerberos
kinit supauser@DOMEN.MY
Смотрим что мы получили
klist
Default principal: supauser@DOMEN.MY
Valid starting Expires Service principal
15.03.2023 12:59:59 15.03.2023 19:39:55 krbtgt/DOMEN.MY@DOMEN.MY
отключаем дефолнтный билет kerberos (создается при вводе в домен)
kdestroy
3) Установка Postgresql-14
apt-get install postgresql-common
apt-get install postgrespro-1c-14
Стартуем службу:
service postgrespro-1c-14 start
Проверяем статус:
service postgrespro-1c-14 status
Зададим пароль пользователя postgres
sudo -i -u postgres
/opt/pgpro/1c-14/bin/psql -U postgres -c "alter user postgres with password 'password';"
‘password’ – Ваш пароль, должно вернуть ALTER ROLE
exit
На этом с сервером postgrespro - всё! Перезагружаемся идём дальше.
4) Установка платформы 1С сервер
Установить шрифты mscorefonts
apt install ttf-mscorefonts-installer fontconfig
apt install imagemagick curl
Скачаем нужный дистрибутив с сайта https://releases.1c.ru/project/Platform83
и выбираем "Технологическая платформа 1С:Предприятия (64-bit) для Linux"
распакуем и переходим в папку с распакованным дистрибутивом, запускаем единый установочный файл:
./setup-full-8.3.22.1709-x86_64.run
если не запускается то сделайте права этому файлу на запуск
chmod +x setup-full-8.3.22.1709-x86_64.run
Выбираем русский язык, платформу не ставим, клиенты не ставим, сервер ставим, остальные средства администрирования на ваше усмотрение. Модули расширения веб-сервера нам тут тоже не понадобятся.
Соглашаемся, соглашаемся, соглашаемся, готово.
Регистрируем новую службу (тут надо использовать полный путь):
systemctl link /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service
Добавляем новую службу в автозагрузку:
systemctl enable srv1cv8-8.3.22.1709@
редактируем 1с для работы в файлом .keytab
nano /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service
SRV1CV8_KEYTAB=/opt/1cv8/x86_64/8.3.22.1709/usr1cv83.keytab
Запускаем службу и проверяем что она работает, перезагружаем сервер:
systemctl start srv1cv8-8.3.22.1709@default.service
systemctl status srv1cv8-8.3.22.1709@default.service
reboot
На этом с сервером 1С - всё! Перезагружаемся и идём дальше.
5) Настройка работы через.keytab
генерируем файл .keytab в AD ()
ktpass /crypto ALL /princ usr1cv8/server1c.domen.ru@DOMEN.RU /mapuser usr1cv8 /pass password /out usr1cv83.keytab
пользователь в AD и на сервер 1с-linux (под которым работает 1с) !!! ДОЛЖНЫ БЫТЬ ОДИНАКОВЫЕ !!! в нашем случаи это "usr1cv8"
кладем файл .keytab на сервер 1с-linux по пути
/opt/1cv8/x86_64/8.3.22.1709/usr1cv83.keytab
даем права на файл .keytab
chown usr1cv8:grp1cv8 usr1cv83.keytab && chmod 600 usr1cv83.keytab
проверяем права
ls -hal /opt/1cv8/x86_64/8.3.22.1709/usr1cv83.keytab
должно быть так
* -rw------- 1 usr1cv8 grp1cv8 362 мар 15 12:45 /opt/1cv8/x86_64/8.3.22.1709/usr1cv83.keytab
говорим kerberos через какой файл работать
kinit -k -t /opt/1cv8/x86_64/8.3.22.1709/usr1cv83.keytab usr1cv8/server1c.domen.ru@DOMEN.RU
Смотрим что мы получили
klist
Default principal: usr1cv8/server1c.domen.ru@DOMEN.RU
Valid starting Expires Service principal
15.03.2023 12:59:59 15.03.2023 19:39:55 krbtgt/DOMEN.MY@DOMEN.MY
6) Настройка самой базы 1с для авторизации
Просто указываем автопизацию через домен
\\domen.ru\user
На этом - всё! Всем спасибо.