Как очистить кеш SSSD в Linux
System Security Services Daemon (SSSD) — это пакет приложений для управления аутентификацией и авторизацией в операционных системах на базе Linux.
System Security Services Daemon (SSSD) — это пакет приложений для управления аутентификацией и авторизацией в операционных системах на базе Linux.
Периодически пытаюсь вспомнить как отключить сетевой IPv6 интерфейс в Linux, поэтому для памятки себе оставлю тут как это сделать.
В различных ситуациях может понадобится выполнение sudo
без ввода пароля. Рассмотрим как это сделать на Linux на нескольких примерах.
Ранее я уже описывал как добавить поддержку шифрования по ГОСТ Р 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 и выше.
При использовании Linux и необходимости подключения к сервису Exchange Online через PowerShell, то это можно легко сделать, рассмотрим ниже как это сделать.
Разберем как установить phpMyAdmin
последней версии из исходников в Debian 9 Stretch. Так же рассмотрим как обезопасить доступ к нему.
Устанавливаем необходимые пакеты:
apt-get install php php-common php-cli libapache2-mod-php php-gd php-mbstring php-zip php-xml php-curl php-bz2 php-mysql php-common php-tcpdf php-gettext mariadb-server -y
Скачиваем последнюю версию phpMyAdmin
, распаковываем скачанный архив и перемещаем его в пользовательский каталог:
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip unzip phpMyAdmin-latest-all-languages.zip rm phpMyAdmin-latest-all-languages.zip mv phpMyAdmin-*-all-languages/ /usr/share/phpmyadmin
Создадим каталог в котором phpMyAdmin будет хранить свои временные файлы и назначаем права доступа к нему для веб-сервера (www-data
):
mkdir -p /var/lib/phpmyadmin/tmp chown -R www-data:www-data /var/lib/phpmyadmin
Создаем базу данных и таблицы конфигурации для phpMyAdmin. Применяем поставляемый вместе с phpMyAdmin скрипт:
mariadb < /usr/share/phpmyadmin/sql/create_tables.sql
В работе имеется веб-сайт на котором реализована авторизация посредством ЕСИА (Единая система идентификации и аутентификации). До недавнего времени можно было использовать самоподписной RSA сертификат, но с 1 апреля 2020 года, для взаимодействия с ЕСИА необходимо использовать сертификат с алгоритмом шифрования по ГОСТ Р 34.10-2012
.
В связи с этим мне необходимо было реализовать возможность работы с алгоритмом ГОСТ Р 34.11-2012
в OpenSSL на Debian 9 Stretch.
Путем перелопачивания множества информации по этому вопросу и проб использования движка GOST-Engine с различными версиями OpenSSL, для себя определил рабочую связку OpenSSL 1.1.1d + GOST-Engine
.
В качестве памятки опишу действия для реализации связки OpenSSL 1.1.1d + GOST-Engine на Debian 9 Stretch.
Устанавливаем необходимые пакеты:
apt-get install build-essential wget git cmake unzip gcc -y
Выполняем сборку OpenSSL 1.1.1d
, выполняем команды:
cd /opt wget "https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.zip" -O "OpenSSL_1_1_1d.zip" unzip OpenSSL_1_1_1d.zip && cd openssl-OpenSSL_1_1_1d ./config shared -d --prefix=/usr/ssl --openssldir=/usr/ssl make all && make install 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
По различными причинам, случается так что какой то файл может быть удален с файлового сервера и в этом случае он будет потерян на всегда. Для того чтобы иметь возможность восстановить удаленный файл на файловом сервере samba предусмотрен модуль VFS (Virtual File System) — recycle (сетевая корзина), рассмотрим его применение.
Мое личное мнение что не стоит давать повсеместный доступ к сетевой корзине, а лучше ее вынести в отдельную общую папку и по необходимости подключать тому или иному человеку, а лучше всегда процесс восстановления удаленных файлов оставить на системном администраторе. Исходя из этого ниже будет рассмотрен именно такой сценарий, с выносом сетевой корзины в отдельную папку.
В файле конфигурации samba (/etc/samba/smb.conf) в секцию [global] добавим следующие параметры:
vfs object = recycle recycle:repository = /samba/recycle/%S recycle:keeptree = yes recycle:versions = yes recycle:touch = yes recycle:exclude = ~$* *.tmp *.TMP *.temp *.bak *.log .DS_Store [RECYCLE$] path = /samba/recycle read only = no recycle:exclude = *.*
[stextbox id=’info’]Пояснения по параметрам recycle:
recycle:repository — Задаем каталог расположения сетевой корзины. Если параметр не задан, то по-умолчанию сетевая корзина (.recycle) будет располагаться в корне каждой общей папки.
recycle:keeptree — Сохранять структуру каталогов для удаленных файлов.
recycle:versions — В случае если у удаленных файлов их имена совпадают, то к удаленном файлу в начале имени будет добавляться Copy #N of.
recycle:touch — Задавать дату изменения файла на время удаления файла.
recycle:exclude — Список исключений для файлов.[/stextbox]
[stextbox id=’warning’]Сетевая корзина может располагаться только в той же FS что и общая папка для которой задается сетевая корзина. В случае если указать путь к сетевой корзине на другом диске, то в этом случае удаленные файлы не будут туда помещены, так как хард-линк можно сделать только в рамках одной FS.[/stextbox]
[stextbox id=’info’]Если уже используется какой-то модуль VFS, то перечисляем все объекты через пробел, например:
vfs object = recycle full_audit[/stextbox]
Если необходимо включение сетевой корзины для какой то определенной общей папке, то тогда выше описанные параметры необходимо прописывать в секцию описания общей папки.
Как известно система лицензирования Microsoft штука не дешевая и поэтому рассмотрим как установить файловый сервер Samba 4.5 с интеграцией Active Directory на Debian 9 Stretch.
Исходные данные:
Перед началом выполнения ниже описанных действий обновляем систему до актуального состояния:
apt-get update && apt-get upgrade -y
Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле (/etc/hostname):
datastore1.jakonda.local
Так же файл (/etc/hosts) приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP:
127.0.0.1 localhost 127.0.1.1 datastore1.jakonda.local datastore1
Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:
apt-get install ntp ntpdate ntpdate dc1.jakonda.local
[stextbox id=’info’]Более подробно о синхронизации времени на Debian 8 Jessie/Ubuntu Server 14.04 можно почитать в этой статье[/stextbox]
В очередной раз после миграции ВМ Debian Linux с одного хоста VMWare на другой, при загрузке системы наблюдал множественные ошибки:
blk_update_request: I/O error, dev fd0, sector 0 hv_vmbus: probe failed for device vmbus_10 (-19)
Ошибка связана с попытками подключить Floppy дисковод, который в ВМ отсутствует. Решается все довольно просто, путем отключения драйвера Floppy в системе.
Выполняем следующие команды в терминале:
echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf sudo rmmod floppy sudo update-initramfs -u
Для применения изменений перезагружаем систему.
Рассмотрим применение базовых мер безопасности на веб-сервере (Apache), развернутом на Linux (DEB) (Debian 8 Jessie/Debian 9 Stretch/Ubuntu Server 14.04 LTS и т.д.).
После установки веб-сервера и PHP, в первую очередь необходимо скрыть версии самого веб-сервера и PHP. Знание злоумышленником версии установленных продуктов, может облегчить ему задачу по поиску известных уязвимостей, для этих версий продуктов.
Изначально при обращении к веб-серверу, он выдает версию самого веб-сервера и системы на которой он работает. Для примера откроем несуществующую страницу на веб-сервере:
В качестве памятки по работе с MySQL посредством командной строки, буду вести список наиболее полезных и часто используемых команд MySQL. (Список будет дополнятся по мере необходимости)
В случае если ваш домашний каталог зашифрован (ecryptfs) и необходимо сменить пользовательский пароль, то помимо смены пользовательского пароля, так же необходимо изменить контрольную фразу на вашем зашифрованном каталоге.
Если у вас система с GUI, то переходим в терминал (Ctrl + Alt + F2) (для того чтобы вернутся обратно в GUI, нажимаем Ctrl + Alt + F7) авторизовываемся и выполняем следующие действия:
Задаем новый пароль пользователя:
passwd jakonda
Монтируем зашифрованный каталог:
ecryptfs-mount-private
Задаем контрольную фразу, аналогичную заданному паролю пользователя:
ecryptfs-rewrap-passphrase .ecryptfs/wrapped-passphrase
Работая с Linux системами, иногда возникает необходимость запрета обновления какого либо пакета.
Чаще всего это необходимо если развернут какой либо сервис, который требует определенной версии того или иного пакета, в этом случае можно легко запретить его обновление и так же легко разрешить его обновление.
Рассмотрим несколько способов, реализации запрета на обновления пакета, в ОС Debian 8 Jessie.
Для запрета на обновления пакета, выполняем команду:
sudo echo 'имя_пакета hold' | sudo dpkg --set-selections
Для разрешения на обновления пакета, выполняем команду:
sudo echo 'имя_пакета install' | sudo dpkg --set-selections
Чтобы посмотреть все статус пакетов в системе, выполняем команду:
sudo dpkg --get-selections | grep 'имя_пакета'
Данная статья будет мне памяткой, как добавлять пользователей, изменять, удалять пользователей в консольном режиме Debian 8 Jessie.
Пользователь создается командой useradd:
sudo useradd username
Полезные ключи используемые при создании пользователя:
-m (--create-home) |
Создать домашний каталог. По-умолчанию домашний каталог не создается. |
-M (--no-create-home) |
Не создавать домашний каталог. |
-d (--home-dir HOME_DIR) |
Указать расположение домашнего каталога. |
-N (--no-user-group) |
Не создавать группу с таким же именем, как имя пользователя. |
-g (--gid GROUP) |
Название или ID первичной группы пользователя. |
-G (--groups GROUPS) |
Указать список дополнительных групп для пользователя. |
-p (--password PASSWORD) |
Задание пароль пользователя. |
-s (--shell SHELL) |
Указание оболочки пользователя (прим. /bin/bash ). По-умолчанию /bin/sh . |
-c (--comment COMMENT) |
Добавить комментарий к пользователю. |
Изменить пользователя можно командой usermod (прим. добавление пользователя в группу):
sudo usermod -a -G www-data jakonda
Изменить пароль пользователю можно при помощи утилиты passwd:
sudo passwd jakonda
Разберем как делать резервные копии имеющихся Subversion (SVN) репозиториев в Linux среде. Все ниже описанное производилось на Debian 8 Jessie.
Создаем резервную копию указанного репозитория:
sudo svnadmin dump /path/to/repository > svnexport.dump
Создаем резервную копию указанного репозитория и сжимаем его:
sudo svnadmin dump /path/to/repository | gzip > svnexport.dump.gz
Для того чтобы автоматизировать процесс резервирования всех имеющихся репозиториев, создадим скрипт, который будет выполнять эту задачу. Скрипт с коментариями, разобратся в нем не составит труда:
#!/bin/bash # 06/01/2018 Jakonda (http://jakondo.ru) # Резервное копирование репозиториев (SVN) PATH_REPO="/var/svn/" LOCAL_DIR="/srv/backups/svn" EXPIRATION_DAYS=28 DATE=$(date +"%y_%m_%d") # Создаем каталог для размещения бекапов, если он не создан if ! [ -d $LOCAL_DIR ]; then mkdir $LOCAL_DIR fi # Создаем каталог с текущей датой mkdir -p $LOCAL_DIR/$DATE # Создание дампа всех репозиториев cd $PATH_REPO for REPO in *; do test -d "$REPO" && /usr/bin/svnadmin dump $REPO | gzip > $LOCAL_DIR/$DATE/$REPO.dump.gz done # Удаление старых резервных копий find $LOCAL_DIR* -mtime +${EXPIRATION_DAYS} -exec rm {} \; # Удаление пустых каталогов find $LOCAL_DIR* -type d -empty -exec rmdir {} \;
Рассмотрим как сбросить забытый/утерянный пароль от root
в MySQL
. Рассмотрим варианты сброса пароля под Windows и Unix системах.
Рассмотрим как расчитывать различные hash-суммы (MD5, SHA1, SHA256, SHA384, SHA512, CRC) в среде Linux. Hash-суммы обычно служат для проверки сохранности файлов, а так же для шифрования паролей.
Синтаксис для расчета hash-суммы файла:
[алгоритм] [путь к файлу, который нужно рассчитать]
Примеры:
md5sum test.iso sha1sum test.iso sha256sum test.iso sha384sum test.iso sha512sum test.iso cksum test.iso
Разберем как развернуть мощный и в тоже время бесплатный почтовый сервер Zimbra Collaboration 8.6. Zimbra может соперничать с Microsoft Exchange своим функционалом, в который входит необходимый набор инструментов для работы в корпоративной среде. Zimbra имеет удобный и понятный Web интерфейс, поддерживающий работу мобильных устройств, что не мало важно для сотрудников находящихся вне офиса.
Исходные данные для развертывания Zimbra:
Задача: