• Автоматическое создание подписи в Microsoft Outlook 2016/Office 365

    Поступило задание проработать возможность централизованного создания пользовательских подписей в Outlook на основе данных из их учетных записей в Active Directory и так же запрета пользователям задавать свои подписи.

     

    В сети есть много разных примеров скриптов как это можно реализовать, различной степени годности, но мне привычней реализовать задачу так как в первую очередь удобней мне. Поэтому я решил написать утилиту с использованием WinAPI Windows для формирования подписи на основе шаблона и с возможностью удобной модификацией шаблонов и используемых пользовательских данных из AD.

     

    В состав утилиты входят:

    • Шаблоны подписы из 3х файлов в форматах htm (HTML), rtf (Rich Text) и txt (Plain Text).
    • Файл настроек settings.txt, в котором прописаны ключи и значения для шаблонов.
    • Сама утилита outlook_signature.exe.

     

    В файлах шаблона указываются переменных которые будут заменены на полученные данные из пользовательской учетной записи AD. Переменные по умолчанию указываются в значении заключенном в знаки % — %USERNAME%.

     

    Пример как должен выглядить шаблон:

    Regards,
    %USERNAME%
    
    %POSITION%
    %DEPARTMENT%
    ИНФОРМАЦИЯ. Шаблоны должны называться обязательно signature с файлами расширения txt, rtf, htm.

     

    В файле настроек settings.txt указываются ключи и переменные к ним, под ключами понимается указание названия аттрибутуов из учетной записи AD. Переменные к ключам задаются произвольные, главное чтобы они были четко отличимы от обычных слова, к примеру можно указывать как %USERNAME%, так и @USERNAME. Главное что какие переменные мы указали в файле настроек, такие же мы и должны использовать в файлах шаблонов, для замены их на значения ключей в ходе работы утилиты.

     

    Пример как должен выглядить файл settings.txt:

    displayName=%USERNAME%
    Title=%POSITION%
    Department=%DEPARTMENT%
    mail=%EMAIL%
    streetAddress=%ADDRESS%
    telephoneNumber=%TEL%

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (11 голос(ов), в среднем: 2,55 из 5)
    Загрузка...
  • Установить Syncthing в Debian 11 Bullseye

    Разберем как поднять Syncthing на Debian 11 Bullseye.

     

    Все действия ниже будут выполняться от root.

     

    # Установка Syncthing

    curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
    echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
    apt-get update
    
    apt-get install syncthing -y
    

     

    # Создаем пользователя syncthing от которого будет работать система.

    useradd -r -m -U -s /usr/sbin/nologin -c "Syncthing User" syncthing

     

    # Создаем сервис запуска для — Syncthing.

    cat << EOF > /etc/systemd/system/syncthing@syncthing.service
    [Unit]
    Description=Syncthing - Open Source Continuous File Synchronization for %I
    Documentation=man:syncthing(1)
    After=network.target
    StartLimitIntervalSec=60
    StartLimitBurst=4
    
    [Service]
    User=%i
    ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0
    Restart=on-failure
    RestartSec=1
    SuccessExitStatus=3 4
    RestartForceExitStatus=3 4
    
    # Hardening
    ProtectSystem=full
    PrivateTmp=true
    SystemCallArchitectures=native
    MemoryDenyWriteExecute=true
    NoNewPrivileges=true
    
    # Elevated permissions to sync ownership (disabled by default),
    # see https://docs.syncthing.net/advanced/folder-sync-ownership
    AmbientCapabilities=CAP_CHOWN CAP_FOWNER
    
    [Install]
    WantedBy=multi-user.target
    
    EOF
    ИНФОРМАЦИЯ. Хочу обратить внимание на подсвеченную строку, она нужна для того чтобы служба syncthing могла также синхронизировать права собственности между устройствами.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (5 голос(ов), в среднем: 2,00 из 5)
    Загрузка...
  • Установка FreeRADIUS & daloRADIUS на Debian 11 Bullseye

    Разберем как установить FreeRADIUS и daloRADIUS на Debian 11 и как настроить его для использования MySQL / MariaDB.

     

    В рамках данной статьи будет разобрано лишь только установка и настройка FreeRADIUS и daloRADIUS, вариации конфигурации использования freeRADUIS с оборудованием или системами будет рассматриваться в других статьях.

     

    # Все ниже описанные действия будут производиться от root.

     

    Настройка MySQL

    # Устанавливаем MySQL сервер.

    apt-get install mariadb-server -y

     

    # Выполняем базовую настройку безопасности MySQL сервера и входим на сервер.

    mysql_secure_installation
    
    mariadb

     

    # Создаем базу данных для FreeRADIUS.

    CREATE DATABASE radius;
    CREATE USER 'radius'@'localhost' IDENTIFIED BY 'radius';
    GRANT SELECT ON radius.* TO 'radius'@'localhost';
    FLUSH PRIVILEGES;
    

     

     

    Установка FreeRADIUS

    # Устанавливаем FreeRADIUS с дополнительными модулями mysql, ldap:

    sudo apt-get install freeradius freeradius-utils freeradius-mysql freeradius-ldap -y

     

    # Импортируем схему RADIUS MySQL:

    mariadb radius < /etc/freeradius/3.0/mods-config/sql/main/mysql/schema.sql
    

     

    Проверим что таблицы в базе данных (radius), были созданы:

    mariadb -e "use radius;show tables;"
    
    +------------------+
    | Tables_in_radius |
    +------------------+
    | nas              |
    | radacct          |
    | radcheck         |
    | radgroupcheck    |
    | radgroupreply    |
    | radpostauth      |
    | radreply         |
    | radusergroup     |
    +------------------+

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (2 голос(ов), в среднем: 3,50 из 5)
    Загрузка...
  • MSSQL cоздание оповещения для Availability Groups и не только.

    Опишу как настроить алерты на возникающие различные события в MSSQL, дабы быть вовремя информированным о возникшей той или иной проблеме.

     

    На примере покажу как настроить оповещения на почту при событиях Always On Availability Groups по проблеме синхронизации баз даных между нодами кластера.

     

     

    Сперва нужно понимать какой message_id интересующего нас оповещения для которого мы хотим настроить уведомление. Для этого можно запросить базу данных в таблице sys.messages и посмотреть, что доступно.

     

    Ниже я выполнил запрос для нахождения оповещений содержащих слова — %Always On Availability Groups data movement for database%.

    select * from sys.messages
    where text like '%Always On Availability Groups data movement for database%'

    Результат:

     

     

    Видим что есть интересующие нас оповещения (при приостановке синхронизации базы данных и ее воссновления) — 35264 (приостановка), 35265 (восстановление).

     

    Настроим уведомление на почту по этим событиям. Заходим в SSMS, щелкните правой кнопкой мыши на Alerts и выберите New Alert.

     

     

    В открывшемся окне, указываем желаемое название алерта, но я обычно называю его так, что о чем оно оповещает.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • MSSQL база данных в Always on Availability Group в статусе Not Synchronizing.

    В продуктиве имеется два MSSQL работающих в режиме Always On High Availability и после очередного планового переключения ноды в secondary для установки обновлений сервер и перезагрузки, после перезагрузке одна из баз в Always on Availability Group оказалась в статусе — Not Synchronizing.

     

     

     

    В логах значится следующая ошибка:

    Always On Availability Groups data movement for database 'WORK' has been suspended for the following reason: "system" (Source ID 2; Source string: 'SUSPEND_FROM_REDO'). To resume data movement on the database, you will need to resume the database manually. For information about how to resume an availability database, see SQL Server Books Online.

    И в предупреждении к проблемной базе данных:

     

    Исправить это относительно просто, нужно просто возобновить HADR, используя приведенную ниже команду для всех баз данных, которые не синхронизированы.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 5,00 из 5)
    Загрузка...
  • Ввод Debian 10 Buster в домен Windows с помощью Kerberos, Samba, Winbind

    Ниже опишу как ввести linux систему Debian 10 в домен Windows с помощью Kerberos, Samba, Winbind.

     

    Исходные данные:

    • Контроллер домена (DC1) на Windows Server 2019, домен SYSOS.LOCAL
    • Linux система (datastore1) на Debian 10 Buster

     

    Подготовка системы

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

    apt-get update && apt-get upgrade -y

     

    Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле /etc/hostname:

    datastore1.sysos.local

     

    Так же файл /etc/hosts приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP:

    127.0.0.1	localhost
    127.0.1.1	datastore1.sysos.local datastore1

     

     

    Настройка синхронизации времени

    Если разница будет более 5 минут, то будет не возможно получить билет от Kerberos. Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP:

    apt-get install ntp ntpdate

     

    В файле конфигурации /etc/ntp.conf, добавляем в него информацию о вашем сервере времени (в моем случае указываю контролер домена):

    # You do need to talk to an NTP server or two (or three).
    server dc1.sysos.local

     

    Перезапускаем службу времени:

    /etc/init.d/ntp restart

     

     

    Для единовременной синхронизации можно воспользоваться командой:

    ntpdate dc1.sysos.local
    Рекомендую ознакомится подробней о синхронизации времени на Linux системах можно почитать в этой статье и выполнить его настройку.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 3,00 из 5)
    Загрузка...
  • Как запускать команды без пароля sudo в Linux

    В различных ситуациях может понадобится выполнение sudo без ввода пароля. Рассмотрим как это сделать на Linux на нескольких примерах.

     

    Для удобства рекомендую хранить файл настроек для каждого пользователя системы (если их много, то будет проще управлять) отдельно в /etc/sudoers.d.

     

     

    К примеру для пользователя jakonda, разрешим выполнять абсолютно все команды без sudo пароля:

    echo "jakonda ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers.d/jakonda

    Пояснение по синтаксису:

    jakonda Задаём имя пользователя, к которому нужно применить данное правило (в данном случае это jakonda).
    Первое ALL Означает, что правило будет применяться ко всем хостам.
    Второе ALL Означает, что указанный пользователь может запускать команды в сессии любого пользователя.
    Третье ALL Означает, что указанный пользователь может запускать команды в любой группе.
    Последнее ALL Указывает, что эти правила нужно применять ко всем командам.

     

     

    Если необходимо разрешить выполнять только определенные команды, к примеру chown, chmod:

    jakonda ALL=(ALL) NOPASSWD:/usr/bin/chmod,/usr/bin/chown
    ИНФОРМАЦИЯ. Важно указывать полный путь к исполняемому файлу. Узнать расположение файла можно используя — which <имя команды>.

     

     

    Можно разрешить пользователю перезапускать какую либо службу (к примеру apache):

    jakonda ALL=(ALL) NOPASSWD:/usr/bin/systemctl restart apache2

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Установка OpenSSL GOST Engine на Debian 11 Bullseye

    Ранее я уже описывал как добавить поддержку шифрования по ГОСТ Р 34.10-2012 в OpenSSL на Debian 9, недавно возвращался к этому вопросу но уже на системе Debian 11, поэтому решил актуализировать под Debian 11.

     

    # Все ниже действия будут производится от root.

     

    Устанавливаем необходимые пакеты:

    apt-get install g++ gcc make git libssl-dev

     

    Поддержу GOST-Engine будем реализовывать для OpenSSL 1.1.1p.

     

    Выполняем сборку OpenSSL 1.1.1p, выполняем команды (скачиваем, распаковываем, собираем билд, устанавливаем, настраиваем):

    wget https://www.openssl.org/source/openssl-1.1.1p.tar.gz
    tar -zxvf openssl-1.1.1p.tar.gz
    cd openssl-1.1.1p
    
    ./config --prefix=/usr/ssl --openssldir=/usr/ssl
    make all
    make install
    
    cd .. && rm /usr/bin/openssl
    ln -s /usr/ssl/bin/openssl /usr/bin/openssl
    echo "/usr/ssl/lib" >> /etc/ld.so.conf.d/ssl.conf
    ldconfig
    

     

    Проверяем версию OpenSSL, должно быть так:

    openssl version -v
    OpenSSL 1.1.1p  21 Jun 2022

     

    # Для сборки GOST Engine нужна версия CMake 3.0 и выше.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 1,00 из 5)
    Загрузка...
  • Как установить MySQL 8.0 / 5.7 на Debian 11 / Debian 10

    # Добавляем в систему репозиторий MySQL.

    wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb
    dpkg -i mysql-apt-config_0.8.18-1_all.deb
    Установщик пакета предложит вам выбрать версию MySQL для создания репозитория. По умолчанию для конфигурации репозитория выбрана версия MySQL 8.0.

     

    # Обновляем индекс репозитория

    apt-get update
    apt-get install mysql-community-server -y
    Во время установки будет предложено ввести пароль от root пользователя, а так же в случае установки MySQL 8.0 будет предложено выбрать метод аутентификации. 

     

    # Выполняем настройку безопасности MySQL сервера.

    mysql_secure_installation

     

    В случае если в процессе обновления индексов репозитория вы увидите ошибку не доступности публичного ключа MySQL репозитория:

    Err:2 http://repo.mysql.com/apt/debian buster InRelease
      The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
    W: GPG error: http://repo.mysql.com/apt/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
    E: The repository 'http://repo.mysql.com/apt/debian buster InRelease' is not signed.
    N: Updating from such a repository can't be done securely, and is therefore disabled by default.
    N: See apt-secure(8) manpage for repository creation and user configuration details.

     

    # Добавляем публичный ключ MySQL репозитория и обновляем локальные индексы репозитория.

    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29 apt-get update

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Как ввести Debian в домен Windows (Active Directory) с помощью realmd, SSSD.

    Рассмотрим как ввести систему Debian в домен Windows с помощью realmd, SSSD.

     

    Realmd (Realm Discovery) – сервис D-Bus, позволяющий производить настройку сетевой аутентификации и членства в домене (Active Directory) без сложных настроек. Информация о домене обнаруживается автоматически. Для аутентификации и проверки учетных записей realmd использует SSSD (через Kerberos и LDAP) или Winbind.

     

    SSSD (System Security Services Daemon) — это клиентский компонент централизованных решений для управления идентификацией, таких как Microsoft Active Directory, Kerberos, OpenLDAP  и других серверов каталогов. SSSD обслуживает и кэширует информацию, хранящуюся на удаленном сервере каталогов, и предоставляет услуги идентификации, аутентификации и авторизации хост-машине.

     

    Исходные данные:

    • Контроллер домена (DC1) на Windows Server 2019, домен JAKONDA.LOCAL (IP — 192.168.1.100)
    • Linux система (debian) на Debian 11 Bullseye (IP — 192.168.1.10)

     

    Подготовка системы

    # Обновляем информацию о репозиториях и обновляем установленные пакеты:

    apt-get update && apt-get upgrade -y

     

    Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле /etc/hostname:

    debian.jakonda.local

     

    Файл /etc/hosts приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP хоста:

    127.0.0.1	localhost
    192.168.1.10	debian.jakonda.local debian

     

     

    Настраиваем клиент DNS на хосте. Файл /etc/resolv.conf приводим к виду с учетом ваших данных:

    domain jakonda.local
    search jakonda.local
    nameserver 192.168.1.100

     

    Настройка синхронизации времени

    Очень важно для корректной работы чтобы разница во времени между хостом и домен контроллером была минимальная или не превышала более 5 минут, в противном случае не возможно получить билет от Kerberos. Настроим синхронизацию времени с контроллером домена.

     

    # Устанавливаем необходимые пакеты:

    apt-get install ntp ntpdate

     

    В файле /etc/ntp.conf, указываем контроллер домена в качестве точки синхранизации, остальные комментируем :

    # You do need to talk to an NTP server or two (or three).
    server dc1.jakonda.local
    
    # pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
    # pick a different set every time it starts up.  Please consider joining the
    # pool: <http://www.pool.ntp.org/join.html>
    # pool 0.debian.pool.ntp.org iburst
    # pool 1.debian.pool.ntp.org iburst
    # pool 2.debian.pool.ntp.org iburst
    # pool 3.debian.pool.ntp.org iburst
    
    

     

    Выполняем единовременную синхронизацию времени с контроллером домена и запускаем службу:

    /etc/init.d/ntp stop
    ntpdate -bs jakonda.local
    /etc/init.d/ntp start

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 1,00 из 5)
    Загрузка...

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика