Регистрация событий ('nss':'nss') was terminated by own WATCHDOG. Consult corresponding службы SSSD
Диагностические шаги:
~]# journalctl -u sssd.service
hostname.domain.ru sssd[sssd][36481]: Child [105359] ('nss':'nss') was terminated by own WATCHDOG. Consult corresponding logs to figure out the reason.
hostname.domain.ru sssd[nss][111051]: Starting up
hostname.domain.ru sssd[nss][111152]: Starting up
hostname.domain.ru sssd[nss][111165]: Starting up
hostname.domain.ru sssd[sssd][36481]: Exiting the SSSD. Could not restart critical service [nss].
hostname.domain.ru sssd[ssh][36566]: Shutting down
hostname.domain.russsd[pam][36565]: Shutting down
hostname.domain.russsd[be[DOMAIN.RU]][36497]: Shutting down
hostname.domain.ru systemd[1]: sssd.service: main process exited, code=exited, status=1/FAILURE
hostname.domain.ru systemd[1]: Unit sssd.service entered failed state.
hostname.domain.ru systemd[1]: sssd.service failed.
Решение:
В конфигурационный файл /etc/sssd/sssd.conf для секци [domain/...] добавить timeout
[domain/DOMAIN.RU]
timeout = 20
По умолчанию значение timeout = 10
Диагностические шаги:
~]# journalctl -u sssd.service
hostname.domain.ru sssd[sssd][36481]: Child [105359] ('nss':'nss') was terminated by own WATCHDOG. Consult corresponding logs to figure out the reason.
hostname.domain.ru sssd[nss][111051]: Starting up
hostname.domain.ru sssd[nss][111152]: Starting up
hostname.domain.ru sssd[nss][111165]: Starting up
hostname.domain.ru sssd[sssd][36481]: Exiting the SSSD. Could not restart critical service [nss].
hostname.domain.ru sssd[ssh][36566]: Shutting down
hostname.domain.russsd[pam][36565]: Shutting down
hostname.domain.russsd[be[DOMAIN.RU]][36497]: Shutting down
hostname.domain.ru systemd[1]: sssd.service: main process exited, code=exited, status=1/FAILURE
hostname.domain.ru systemd[1]: Unit sssd.service entered failed state.
hostname.domain.ru systemd[1]: sssd.service failed.
Решение:
В конфигурационный файл /etc/sssd/sssd.conf для секци [domain/...] добавить timeout
[domain/DOMAIN.RU]
timeout = 20
По умолчанию значение timeout = 10
Повышение безопасности путем отключения шрифтов шифрования
Создание резервной копии конфигурационного файла sshd_config:
~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$(date +%Y%m%d)
Убедиться в отсутствии строки с ciphers:
~]# grep ciphers /etc/ssh/sshd_config
В случае отсутствия строки, выполните команду для исключения слабых шрифтов шифрования:
~]# sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|rijndael-cbc@lysator.liu.se\)\,\?//g" >> /etc/ssh/sshd_config
Перезапустите службу sshd для применения настроек
~]# systemctl restart sshd
Для отключения RC4 и использовать защищенные шифры на SSH-сервере:
~]# ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
Вы можете проверить шифры, используемые в настоящее время вашим сервером
~]# shd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u
Для согласованиия SSH-клиенту только безопасные шифры с удаленными серверами. Добавьте в /etc/ssh/ssh_config
Host *
ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
Создание резервной копии конфигурационного файла sshd_config:
~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$(date +%Y%m%d)
Убедиться в отсутствии строки с ciphers:
~]# grep ciphers /etc/ssh/sshd_config
В случае отсутствия строки, выполните команду для исключения слабых шрифтов шифрования:
~]# sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|rijndael-cbc@lysator.liu.se\)\,\?//g" >> /etc/ssh/sshd_config
Перезапустите службу sshd для применения настроек
~]# systemctl restart sshd
Для отключения RC4 и использовать защищенные шифры на SSH-сервере:
~]# ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
Вы можете проверить шифры, используемые в настоящее время вашим сервером
~]# shd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u
Для согласованиия SSH-клиенту только безопасные шифры с удаленными серверами. Добавьте в /etc/ssh/ssh_config
Host *
ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
Интеграция RHEL8 с несколькими Active Directory. Multidomain
https://github.com/NotesLinuxAdministrator/Multidomain.RHEL8.git
https://github.com/NotesLinuxAdministrator/Multidomain.RHEL8.git
GitHub
GitHub - NotesLinuxAdministrator/Multidomain.RHEL8: Интеграция RHEL8 с несколькими Active Directory. Multidomain
Интеграция RHEL8 с несколькими Active Directory. Multidomain - GitHub - NotesLinuxAdministrator/Multidomain.RHEL8: Интеграция RHEL8 с несколькими Active Directory. Multidomain
Управление пакетами. Как часто вы управляете ими?
Часть команд рекомендуемые для Вас в использовании:
Вывести список установленнях пакетов:
~]# rpm -qa
Вывести требуемый пакет:
~]# rpm -qa | grep {name_pack}
Это достаточно приметивные команды в использовании.
Если требуется вывести вендора пакета
~]# rpm -qa --queryformat="%{NAME}: %{VENDOR} %{INSTALLTIME:date}\n"
Чтобы получить список всех тегов, о которых знает ваша версия RPM, выполните команду
~]# rpm -querytags
Выведет такой список:
BUILDHOST
BUILDTIME
DESCRIPTION
EPOCH
INSTALLTIME
NAME
RELEASE
SIZE
SUMMARY
VERSION
Часть команд рекомендуемые для Вас в использовании:
Вывести список установленнях пакетов:
~]# rpm -qa
Вывести требуемый пакет:
~]# rpm -qa | grep {name_pack}
Это достаточно приметивные команды в использовании.
Если требуется вывести вендора пакета
~]# rpm -qa --queryformat="%{NAME}: %{VENDOR} %{INSTALLTIME:date}\n"
Чтобы получить список всех тегов, о которых знает ваша версия RPM, выполните команду
~]# rpm -querytags
Выведет такой список:
BUILDHOST
BUILDTIME
DESCRIPTION
EPOCH
INSTALLTIME
NAME
RELEASE
SIZE
SUMMARY
VERSION
Как установить Linux на M1 или M2 Mac OS
1. Скачайте с официального сайта https://www.vmware.com/products/fusion.html dmg пакет VMware Fusion 13. Выполните установку.
2. Скачайте с официального сайта вендора iso дистрибутив Linux с архитектурой ARM64 (aarch64). На пример: centos.org
3. Подготовительные работы:
VMware -> Create a custom virtual machine -> Red Hat Enterprise Linux 64-bit Arm (при использовании centos || rhel). Остальное выбираем по желаемым характеристикам.
Перейти в настройки ВМ ->CD/DVD->Выбрать ISO диск с архитектурой arm -> Установить галочку «подключить компакт-диск или DVD-диск»
Приступайте к установке ОС
1. Скачайте с официального сайта https://www.vmware.com/products/fusion.html dmg пакет VMware Fusion 13. Выполните установку.
2. Скачайте с официального сайта вендора iso дистрибутив Linux с архитектурой ARM64 (aarch64). На пример: centos.org
3. Подготовительные работы:
VMware -> Create a custom virtual machine -> Red Hat Enterprise Linux 64-bit Arm (при использовании centos || rhel). Остальное выбираем по желаемым характеристикам.
Перейти в настройки ВМ ->CD/DVD->Выбрать ISO диск с архитектурой arm -> Установить галочку «подключить компакт-диск или DVD-диск»
Приступайте к установке ОС
Vmware
Fusion and Workstation | VMware
VMware Workstation and VMware Fusion desktop hypervisors are the industry leaders in local virtualization. Learn how VMware’s local virtualization solutions provide an easier way to build, test and deliver any app for any device or cloud.
Копирование файлов
~]# cp dir/file1 /home/dir
Приведенная выше комманда - распространенный метод копирования файла.
А что, если у Вас каталог содержит 1000 файлов, а вам необходимо на пример скопровать только 300.
Внесите путь и наименование файлов в file.txt
Пример:
~]# cat file.txt
/home/dir/file1
/home/dir/file2
...
/home/dir/file300
И выполните:
~]# for i in `cat file.txt`; do cp $i /home/dir2; done
~]# cp dir/file1 /home/dir
Приведенная выше комманда - распространенный метод копирования файла.
А что, если у Вас каталог содержит 1000 файлов, а вам необходимо на пример скопровать только 300.
Внесите путь и наименование файлов в file.txt
Пример:
~]# cat file.txt
/home/dir/file1
/home/dir/file2
...
/home/dir/file300
И выполните:
~]# for i in `cat file.txt`; do cp $i /home/dir2; done
Как включить поддержку RC4 в RHEL?
На каждом хосте RHEL, где происходит аутентификация на контроллерах домена AD:
Используйте:
~]# update-crypto-policies --set DEFAULT:AD-SUPPORT
чтобы включить криптографическую подполитику AD-SUPPORT в дополнение к криптографической политике DEFAULT.
На каждом хосте RHEL, где происходит аутентификация на контроллерах домена AD:
Используйте:
~]# update-crypto-policies --set DEFAULT:AD-SUPPORT
чтобы включить криптографическую подполитику AD-SUPPORT в дополнение к криптографической политике DEFAULT.
Опрос: о чем больше описать?
Anonymous Poll
44%
Больше man к системным утилитам
11%
Доменная авторизациях/ошибки
33%
BASH
0%
alias Linu
0%
Поднимаем секурность ssh
11%
Создать пост для добавления своих ХОЧУ ЗНАТЬ
ext4 acl record (s) cannot be restored into xfs filesystem on linux
При регистрации этой ошибки, можно подумать о применении fsck файловой системы.
На самом деле, система Вас информирует о не возможности восстановления ACL EXT4 в файловую систему XFS.
ACL (Access Control List) - позволяет задавать права доступа к объектам на диске для пользователей и групп
Самым верным решением найти объекты имеющие ACL, возможно:
~]# getfacl -R -s -p /dir | sed -n 's/^# file: //p'
Если вы знаете место положение объекта, проверить назначение ACL можно:
~]# ls -l
rwx-rw----+ 1 root file.conf
Предположим, пользователю devops необходимо выдать права на изменение на запись в определённые файлы/каталоги, выполните:
~]# setfacl -dm "u: devops:rwx" /opt/project
При регистрации этой ошибки, можно подумать о применении fsck файловой системы.
На самом деле, система Вас информирует о не возможности восстановления ACL EXT4 в файловую систему XFS.
ACL (Access Control List) - позволяет задавать права доступа к объектам на диске для пользователей и групп
Самым верным решением найти объекты имеющие ACL, возможно:
~]# getfacl -R -s -p /dir | sed -n 's/^# file: //p'
Если вы знаете место положение объекта, проверить назначение ACL можно:
~]# ls -l
rwx-rw----+ 1 root file.conf
Символ + (плюс) после прав доступа указывает на использование ACLПредположим, пользователю devops необходимо выдать права на изменение на запись в определённые файлы/каталоги, выполните:
~]# setfacl -dm "u: devops:rwx" /opt/project
AlIAS. Маленькая но очень удобная.
Alias используется для определения псевдонима. Предположим, у вас есть длинная команда, которую сложнее запомнить. Псевдоним (alias) заменит указанную команду, но будет действовать точно так же.
Синтаксис:
Здесь после слова alias мы помещаем слово, которое хотим использовать в качестве псевдонима. После создания, достаточно в командной строке выполнить:
~]# ports
и у вас выполниться:
netstat -tulanp
Доступные псевдонимы:
~]# alias
или
~]# alias -p
Они предоставят вам список существующих псевдонимов, созданные вами и системой.
Файл ~/.bashrc
Имейте в виду, примененные alias из командной строки после перезапуска системы будут удалены. Созданные системой alias будут по-прежнему доступны.
Для того, чтобы команда была в вашей системе, вам нужно отредактировать файл ~/.bashrc и внести свой alias или рас комментируйте в нем:
Это означает, что вы соглашаетесь поместить alias в файл ~/bash_aliases
Alias используется для определения псевдонима. Предположим, у вас есть длинная команда, которую сложнее запомнить. Псевдоним (alias) заменит указанную команду, но будет действовать точно так же.
Синтаксис:
alias [alias-name[=string]…]
Для создания псевдонима проверки открытых портов, достаточно:
~]# alias ports='netstat -tulanp'Здесь после слова alias мы помещаем слово, которое хотим использовать в качестве псевдонима. После создания, достаточно в командной строке выполнить:
~]# ports
и у вас выполниться:
netstat -tulanp
Доступные псевдонимы:
~]# alias
или
~]# alias -p
Они предоставят вам список существующих псевдонимов, созданные вами и системой.
Файл ~/.bashrc
Имейте в виду, примененные alias из командной строки после перезапуска системы будут удалены. Созданные системой alias будут по-прежнему доступны.
Для того, чтобы команда была в вашей системе, вам нужно отредактировать файл ~/.bashrc и внести свой alias или рас комментируйте в нем:
# if [ -f ~/.bash_aliases ]; then
#. ~/.bash_aliases
# fiЭто означает, что вы соглашаетесь поместить alias в файл ~/bash_aliases
INODES. Файловые дескрипторы.
Количество inode каждой файловой системы определяется при разворачивании ОС. Чаще всего во время установки ОС создаётся 1 inode на каждые 2 Кбайт пространства по умолчанию. Если у вас закончились inode, вы не сможете создать новый файл.
Проверить наличие свободных inode:
~]# df -i
Если процент inodes составляет 100% или близко к этому значению, необходимо найти директорию(ии) в которых создано большое количество файлов:
~]# find / -type d -size +4096 -exec sh -c " ls -d {} && ls {} | wc -l" \;
Если вы нашли ту директорию с большим объемом мелких файлов, стоит их ужалить для высвобождения занятых inodes:
~]# find /dir/files/ -type f -delete
Порой складываются ситуации, когда файл удален а ссылка на него сохранилась, при этом inodes не высвободился. В таком случае стоит прибегнуть к радикальным методам:
Определяем номер индекса:
~]# ls -il
148524 drwx------ 3 root root 4096 2023-01-27 15:45 file
148524 - номер inodes
Выполните find и удалите связующие элементы по номеру inodes:
~]# find . -inum 148524 -exec rm -i {} \;
Количество inode каждой файловой системы определяется при разворачивании ОС. Чаще всего во время установки ОС создаётся 1 inode на каждые 2 Кбайт пространства по умолчанию. Если у вас закончились inode, вы не сможете создать новый файл.
Проверить наличие свободных inode:
~]# df -i
Если процент inodes составляет 100% или близко к этому значению, необходимо найти директорию(ии) в которых создано большое количество файлов:
~]# find / -type d -size +4096 -exec sh -c " ls -d {} && ls {} | wc -l" \;
Если вы нашли ту директорию с большим объемом мелких файлов, стоит их ужалить для высвобождения занятых inodes:
~]# find /dir/files/ -type f -delete
Порой складываются ситуации, когда файл удален а ссылка на него сохранилась, при этом inodes не высвободился. В таком случае стоит прибегнуть к радикальным методам:
Определяем номер индекса:
~]# ls -il
148524 drwx------ 3 root root 4096 2023-01-27 15:45 file
148524 - номер inodes
Выполните find и удалите связующие элементы по номеру inodes:
~]# find . -inum 148524 -exec rm -i {} \;
Защита от «дурака»
Предположим, у Вас важные конфигурационные файлы, которые не стоит модифицировать особенно удалять. В борьбу с человеком который руководствуется только «давай поправим и посмотрим что будет», вам на помощь придет chattr.
chattr (Change Attribute) — это утилита используемая для установки/снятия специальных атрибутов файлов для предотвращения случайной модификации и удаления файлов или директорий, даже если вы авторизованы как root.
Синтаксис chattr:
Для установки атрибута мы используем оператор +, для снятия — оператор
~]#
~]#
Предположим, у Вас важные конфигурационные файлы, которые не стоит модифицировать особенно удалять. В борьбу с человеком который руководствуется только «давай поправим и посмотрим что будет», вам на помощь придет chattr.
chattr (Change Attribute) — это утилита используемая для установки/снятия специальных атрибутов файлов для предотвращения случайной модификации и удаления файлов или директорий, даже если вы авторизованы как root.
Синтаксис chattr:
chattr [operator] [flags] [filename]
Как защитить файл от удаленияДля установки атрибута мы используем оператор +, для снятия — оператор
~]#
chattr +i dir/
~]# chattr +i file.conf
Проверить установленные атрибуты:~]#
lsattr
Проверяем:
[root@ ~]# rm -rf dir/
rm: cannot remove dir/: Operation not permitted
Как защитить файлы /etc/passwd и /etc/shadow~]# chattr +i /etc/passwd
~]# chattr +i /etc/shadow
Проверяем:
~]# useradd test
useradd: cannot open /etc/passwdsystemd-logind: Failed to start user slice user-0.slice, ignoring: Connection timed out ((null))
Сообщения в
systemd-logind[10714]: Failed to start user slice user-0.slice, ignoring: Connection timed out ((null))
systemd-logind[10714]: Failed to start session scope session-13692.scope: Connection timed out
systemd[1]: Failed to propagate agent release message: Operation not supported
Данная ошибка сообщает о том что systemd-logind не может создать user-0.slice. В версии systemd 219-42.el7
~]# rpm -qa | grep systemd
присутствует баг, в следствии чего systemd не может обрабатывать большое количество сессий в ввиду полной утилизации ресурсов RAM и сбоя модуля systemd-logind.
Для решения проблемы рекомендуется произвести обновления модуля до версии systemd-219-62.el7_6.9 или более поздней.
Обновление systemd лучше совместить с установкой более новой версии ядра.
Решение:
~]# /bin/rm $(join -v 1 <(find /run/systemd/system -maxdepth 1 -type f -name "*.scope" | sort) <(find /run/systemd/system -maxdepth 1 -type d -name "*.scope.d" | sed "s/\.d\$//" | sort))
Для реклярного исполненияя, стоит добавить в crontab
~]# vi /etc/crontab
* * * * * root {приведенная выше команда}
Сообщения в
journal
crond[111309]: pam_systemd(crond:session): Failed to create session: Connection timed outsystemd-logind[10714]: Failed to start user slice user-0.slice, ignoring: Connection timed out ((null))
systemd-logind[10714]: Failed to start session scope session-13692.scope: Connection timed out
systemd[1]: Failed to propagate agent release message: Operation not supported
Данная ошибка сообщает о том что systemd-logind не может создать user-0.slice. В версии systemd 219-42.el7
~]# rpm -qa | grep systemd
присутствует баг, в следствии чего systemd не может обрабатывать большое количество сессий в ввиду полной утилизации ресурсов RAM и сбоя модуля systemd-logind.
Для решения проблемы рекомендуется произвести обновления модуля до версии systemd-219-62.el7_6.9 или более поздней.
Обновление systemd лучше совместить с установкой более новой версии ядра.
Решение:
~]# /bin/rm $(join -v 1 <(find /run/systemd/system -maxdepth 1 -type f -name "*.scope" | sort) <(find /run/systemd/system -maxdepth 1 -type d -name "*.scope.d" | sed "s/\.d\$//" | sort))
Для реклярного исполненияя, стоит добавить в crontab
~]# vi /etc/crontab
* * * * * root {приведенная выше команда}