LINUX.ORG.RU

Сообщения PirateTM

 

Образ ОС через tar для Docker

Форум — Admin

Здравствуйте! Пытаюсь затарить ОС и сделать из нее образ Docker. Работаю на Astra-Linux Orel (Debian 9) Следую такой инструкции:

https://linux-notes.org/sozdanie-base-image-dlya-docker-v-unix-linux/ PS Что удивительно - 2 недели назад все работало без ошибок

После команды

tar --numeric-owner --exclude=/proc --exclude=/sys -cvf linux.tar /

Вылетает ошибка:

...
/run/initramfs/fsck-root
/run/initramfs/fsck.log
tar: Завершение работы с состоянием неисправности из-за возникших ошибок

 ,

PirateTM
()

Проблема с Filebeat при выводе логов в ELK

Форум — Admin

Друзья, если кто-то с ELK работал - помогите пожалуйста разобраться с настройкой Filebeat (syslog). Делаю все по манам, в том числе по индуским и англоязычным, но не идут нужные индeксы. Тому пример на скрине

Image

Конфиги тут configs

 , ,

PirateTM
()

Сравнение двух файлов для выборки уникальных текстов (не diff)

Форум — Admin

Начну с того, что я х@чY!!1 Сделать выборку существующих пользователей во FreeIPA и недавно добавленных.

Использовал такую конструкцию пока не понял, что он дергает кусками (либо сзади, либо спереди, но не выборочно):

#Ищем пользаков
ipa user-find --all > $users
#Чистим от мусора
sed -n "/пользователя/p" $users | sed -e 's/\Логин пользователя: //g' -e 's/ //g' > $bufer
#Делаем это через костыль
cat $bufer > $users
#И вот она наша выборка которая работает не совсем так, как оно нужно.
grep -v -f $copy $users> $bufer


 

PirateTM
()

Авторизация в psql без ручного ввода пароля

Форум — Admin

Доброго времени суток! Как сделать так, чтобы можно было входить в psql (postgres) с помощью скрипта, который будет редактировать пользователей. Или автоматический ввод пароля без вмешательства админа.

Пример Во freeipa я делаю так:

echo "SuperPassword" | ipa user-mod "uzver1" --password 

Но эта конструкция не подходит для postgres

echo "SuperPassword" | sudo -u postgres bash -c "psql -c \"CREATE USER uzver1;\""

 

PirateTM
()

SELinux (создание модуля)

Форум — Admin

Доброго времени суток. Нужна помощь. Создаю SELinux модуль для ПО, доступ к которому сможет получить обычный пользователь.Я перечитал уже много мануалов, применял на практике, собирал Франкенштейна из audit2allow (для извлечения опыта из ошибок). Но по ходу работы вылезают крутые «фичи». В общем буду говорить за себя, и мне кажется, что я где то заблуждаюсь в написании модуля. Взял 2 статьи на Хабре (ссылочки ниже) и по ним пробовал собрать модуль. И как то безуспешно, а об этом расскажу ниже. Тупик возник на втором гайде, когда сделал все строго по пунктам, а результат получился совсем другой.

Первый гайд - https://habr.com/ru/post/320100/ Второй гайд - https://habr.com/ru/post/322476/

Введение: Необходимо наложить контексты на ПО, создать пользователя (login=ovdcoadm; seuser=ovdcoadm_u), выделить ему роль (ovdcoadm_r) и в модуле объявить тип (ovdco_t) позволив ему управлять нашим ПО, ходить по SSH, да и вообще работать на сервере напрямую.

Что я собираю:

#ovdco.te

policy_module(ovdco, 1.0.0)

# объявляем новую роль
role ovdcoadm_r;
# тип для процесса
type ovdco_t;
# тип для исполняемого файла
type ovdco_exec_t;
# тип для конфиг-файлов
type ovdco_conf_t;
# тип для лог-файла
type ovdco_log_t;
# тип для временных файлов
type ovdco_tmp_t;
# тип для порта, который слушает ovdco ( протокол binkp )
type binkp_port_t;





# стандартный шаблон для НЕ-админа
userdom_unpriv_user_template(ovdcoadm)
#userdom_restricted_user_template(myguest)
# разрешаем dac_override
allow ovdco_t self:capability { dac_override dac_read_search };
# разрешаем sudo
sudo_role_template(ovdcoadm, ovdcoadm_r, ovdco_t)

# Макрос приложения: добавляет тип ovdco_t в список приложений
# и разрешает ему стартовать из типа  ovdco_exec_t
application_domain(ovdco_t, ovdco_exec_t)
# Макрос демона: добавляет тип ovdco_t в список демонов,
# разрешает его запускать через systemd
# и назначает переход: если systemd запустит файл с типом ovdco_exec_t,
# то процесс получит тип ovdco_t
init_daemon_domain(ovdco_t, ovdco_exec_t)
# разрешает типу ovdco_t исполнять стандартные бинарники ( /bin, /usr/bin )
corecmd_exec_bin(ovdco_t)
# разрешает типу ovdco_t подключать библиотеки
libs_use_ld_so(ovdco_t)
# разрешает типу ovdco_t читать состояние системы ( cpu, memory )
kernel_read_system_state(ovdco_t)
# разрешает типу ovdco_t писать в /tmp
files_rw_generic_tmp_dir(ovdco_t)
# разрешает типу ovdco_t читать конфиг сети ( /etc/resolv.conf итд )
sysnet_read_config(ovdco_t)
# разрешает типу ovdco_t получать случайные числа из /dev/(u)random
dev_read_rand(ovdco_t)
# разрешает типу ovdco_t получать аттрибуты файловой системы ( свободное место )
fs_getattr_xattr_fs(ovdco_t)
# разрешает типу ovdco_t делать dns resolve
sysnet_dns_name_resolve(ovdco_t)
# разрешает типу ovdco_t ходить в /var/log ( r/o )
logging_search_logs(ovdco_t)
# назначает правило: логи, которые создает процесс ovdco_t, 
# будут иметь тип ovdco_log_t
logging_log_filetrans(ovdco_t, ovdco_log_t, file)
# назначает правило: tmp-файлы, которые создает процесс ovdco_t, 
# будут иметь тип ovdco_tmp_t
files_poly_member_tmp(ovdco_t, ovdco_tmp_t)
# разрешает ovdco_t делать bind() на любой адрес
corenet_tcp_bind_generic_node(ovdco_t)
# разрешает ovdco_t общаться с postgresql по unix-сокету
postgresql_stream_connect(ovdco_t)
# разрешает ovdco_t общаться с postgresql по сети
corenet_tcp_connect_postgresql_port(ovdco_t)


# макрос gen_user создает пользователя так-же, как semanage user -a
# он всегда должен быть в самом конце файла
gen_user(ovdcoadm_u, ovdcoadm, ovdcoadm_r, s0, s0)

Как мы видим - он должен создавать se-пользователя, роль, и несколько типов. И да! Он компилируется, все создает!

semanage * -l

[root@localhost ~]# semanage login -l

Login Name SELinux User MLS/MCS Range Service

__default__ user_u s0 * ovdcoadm ovdcoadm_u s0 * root root s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 *

Local customization in /etc/selinux/targeted/logins ovdcoadm ovdcoadm_u s0 xdm sshd

В файле /etc/selinux/targeted/logins/ovdcoadm

cat /etc/selinux/targeted/logins/ovdcoadm sshd:ovdcoadm_u:s0 xdm:ovdcoadm_u:s0 ovdco:ovdcoadm_u:s0

[root@localhost ~]# semanage user -l

Labeling MLS/ MLS/ SELinux User Prefix MCS Level MCS Range SELinux Roles

guest_u user s0 s0 guest_r ovdcoadm_u user s0 s0 ovdcoadm_r root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r sysadm_u user s0 s0-s0:c0.c1023 sysadm_r system_u user s0 s0-s0:c0.c1023 system_r unconfined_r unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r user_u user s0 s0 user_r ovdcoadm_r xguest_u user s0 s0 xguest_r

В файле /etc/selinux/targeted/contexts/users/ovdcoadm_u

[root@localhost ~]# cat /etc/selinux/targeted/contexts/users/ovdcoadm_u system_r:local_login_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:remote_login_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:sshd_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:crond_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:xdm_t:s0 ovdcoadm_r:ovdco_t:s0 staff_r:staff_su_t:s0 ovdcoadm_r:ovdco_t:s0 staff_r:staff_sudo_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:initrc_su_t:s0 ovdcoadm_r:ovdco_t:s0 staff_r:staff_t:s0 ovdcoadm_r:ovdco_t:s0 sysadm_r:sysadm_su_t:s0 ovdcoadm_r:ovdco_t:s0 sysadm_r:sysadm_sudo_t:s0 ovdcoadm_r:ovdco_t:s0

По идее все ровно встало, доступ к SSH есть и не только к нему.

Но на выходе когда мы заходим под этим пользователем, то его не пускает, a2a ничего не показывает по этой проблеме. Чтобы ничего не сломалось я работаю в permissive режиме. Вот как меня определяет машина, когда авторизуюсь через SSH:

id

[ovdcoadm@localhost ~]$ whoami ovdcoadm [ovdcoadm@localhost ~]$ id uid=1003(ovdcoadm) gid=1003(ovdcoadm) groups=1003(ovdcoadm) context=system_u:system_r:unconfined_t:s0-s0:c0.c1023

Как мы видим - она не может меня определить и выкидывает в unconfined_t. Вроде бы все объявлено, все делал строго по гайдами. А почему так - я не знаю. И это один из важных вопросов. Если есть предложения, то пишите. Если нужна дополнительная информация, то с удовольствием ее предоставлю!

 , , ,

PirateTM
()

sshd в SELinux

Форум — Admin

Доброго времени суток! Создал нового пользователя в SELinux «name_u», прописал у него в файле (/etc/selinux/targeted/contexts/users/name_u) следующее:

#######
name_r:name_t:s0			name_r:name_t:s0
staff_r:staff_t:s0			name_r:name_t:s0
system_r:crond_t:s0			name_r:name_t:s0
system_r:initrc_su_t:s0			name_r:name_t:s0
system_r:local_login_t:s0		name_r:name_t:s0
system_r:remote_login_t:s0		name_r:name_t:s0
system_r:sshd_t:s0			name_r:name_t:s0 
system_r:xdm_t:s0			name_r:name_t:s0
#######
И все равно не дает доступ пользователю к ssh. Когда добавляю в строчку staff_t у которого есть доступ, то все хорошо, он заходит.
system_r:sshd_t:s0			name_r:name_t:s0 staff_r:staff_t:s0
Только мне SSH нужен как инструмент с типом name_t для доступа к каталогу с файлами которые помечены типом name_rw_t.

 

PirateTM
()

SELinux

Форум — Admin

Привет друзья! Возникла проблема с настройкой SELinux, а точнее с пользователями. Добавляю пользователей SELinux, потом имена входа через утилиту semanage. Все вроде добавляется, но при авторизации допустим на кого угодно (к примеру на astk_adm) вводим команду id -Z и как будто ничего не менялось... И реально ничего не менялось, правила на пользователей не применились... В чем может быть проблема

Вывод после настройки http://joxi.ru/a2XevWZU1PYJeA?d=1

Мои контексты http://joxi.ru/BA04V60UJ6DPXA?d=1

 

PirateTM
()

RSS подписка на новые темы