LINUX.ORG.RU

автомонтирование носителей в hardened gentoo

 , , , ,


0

1

Господа а где нужно попустить настройки hardened gentoo чтобы заработало автомонтирование через systemd/udev с учетом того, что и так уже стоит

cat /proc/sys/kernel/pax/softmode 
1
и хотя все защиты файловой системы выключены и сами носители видно в логах но ничего не работает как нужно?

А точнее говоря:

[ 1531.531486] sd 6:0:0:0: [sdb] 15625216 512-byte logical blocks: (8.00 GB/7.45 GiB)
[ 1531.533240] sd 6:0:0:0: [sdb] Write Protect is off
[ 1531.533252] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 1531.534498] sd 6:0:0:0: [sdb] No Caching mode page present
[ 1531.534508] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 1531.538362] sd 6:0:0:0: [sdb] No Caching mode page present
[ 1531.538371] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 1531.542900]  sdb: sdb1
[ 1531.546585] sd 6:0:0:0: [sdb] No Caching mode page present
[ 1531.546591] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 1531.546596] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 1542.824024] enlightenment_f[525]: segfault at 29 ip 00007f1171134798 sp 00007fff29b88ba0 error 4 in libdbus-1.so.3.7.3[7f117110a000+46000]
[ 1542.824052] grsec: Segmentation fault occurred at 0000000000000029 in /usr/lib64/enlightenment/utils/enlightenment_fm[enlightenment_f:525] uid/euid:1000/1000 gid/egid:1000/1000, parent /usr/bin/enlightenment[enlightenment:478] uid/euid:1000/1000 gid/egid:1000/1000

Это при автомонтировании. И да руками все работает и проблем нет. Подозреваю что где-то просто нужно отпустить пару гаек. Главный вопрос - где?

★★★★★

Попробуй сделать(поставь paxctl, если не ставил):

paxctl -cpsmxer /usr/lib64/enlightenment/utils/enlightenment_fm

И попробовать снова. Раз руками все монтируется, то скорее всего PaX просто не дает нормально работать некоторым утилитам из Enlightenment. Тогда надо смотреть, что сегфолтится и подбирать сочетание флагов, которое позволит работать.

У меня сконфигурировано так, не знаю, как насчет правил udev, но монтирование и автомонтирование силами Thunar, Udisks и Polkit работает. Вкратце: отключено CONFIG_GRKERNSEC_TPE и CONFIG_GRKERNSEC_IO. Softmode PaX'а не включал. Limits.conf дефолтный, RBAC отключен, может быть в этом дело, если ты их настраивал.

JohnnyDoe
()
Ответ на: комментарий от JohnnyDoe

Спасибо

paxctl -cpsmxer /usr/lib64/enlightenment/utils/enlightenment_fm

Это попробую. Вот мои настройки (b) по сравнению с твоими (a).

diff -u a b 
--- a	2013-04-27 13:31:21.901741324 +0300
+++ b	2013-04-27 13:32:57.408547325 +0300
@@ -1,36 +1,62 @@
 CONFIG_GRKERNSEC=y
 # CONFIG_GRKERNSEC_CONFIG_AUTO is not set
 CONFIG_GRKERNSEC_CONFIG_CUSTOM=y
-CONFIG_GRKERNSEC_PROC_GID=0
-CONFIG_GRKERNSEC_KMEM=y
+CONFIG_GRKERNSEC_PROC_GID=10
+CONFIG_PAX=y
+CONFIG_PAX_SOFTMODE=y
+CONFIG_PAX_PT_PAX_FLAGS=y
+CONFIG_PAX_XATTR_PAX_FLAGS=y
+# CONFIG_PAX_NO_ACL_FLAGS is not set
+CONFIG_PAX_HAVE_ACL_FLAGS=y
+# CONFIG_PAX_HOOK_ACL_FLAGS is not set
+CONFIG_PAX_NOEXEC=y
+CONFIG_PAX_PAGEEXEC=y
+# CONFIG_PAX_EMUTRAMP is not set
+CONFIG_PAX_MPROTECT=y
+# CONFIG_PAX_MPROTECT_COMPAT is not set
+# CONFIG_PAX_ELFRELOCS is not set
+# CONFIG_PAX_KERNEXEC is not set
+CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
+CONFIG_PAX_ASLR=y
+# CONFIG_PAX_RANDKSTACK is not set
+CONFIG_PAX_RANDUSTACK=y
+CONFIG_PAX_RANDMMAP=y
+# CONFIG_PAX_MEMORY_STACKLEAK is not set
+# CONFIG_PAX_MEMORY_STRUCTLEAK is not set
+# CONFIG_PAX_MEMORY_UDEREF is not set
+CONFIG_PAX_REFCOUNT=y
+# CONFIG_PAX_USERCOPY is not set
+CONFIG_PAX_SIZE_OVERFLOW=y
+# CONFIG_PAX_LATENT_ENTROPY is not set
+# CONFIG_GRKERNSEC_KMEM is not set
 # CONFIG_GRKERNSEC_IO is not set
 CONFIG_GRKERNSEC_JIT_HARDEN=y
 CONFIG_GRKERNSEC_RAND_THREADSTACK=y
 CONFIG_GRKERNSEC_PROC_MEMMAP=y
 CONFIG_GRKERNSEC_BRUTE=y
 CONFIG_GRKERNSEC_MODHARDEN=y
-CONFIG_GRKERNSEC_HIDESYM=y
-CONFIG_GRKERNSEC_KERN_LOCKOUT=y
-CONFIG_GRKERNSEC_NO_RBAC=y
-CONFIG_GRKERNSEC_ACL_HIDEKERN=y
+# CONFIG_GRKERNSEC_HIDESYM is not set
+# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
+# CONFIG_GRKERNSEC_NO_RBAC is not set
+# CONFIG_GRKERNSEC_ACL_HIDEKERN is not set
 CONFIG_GRKERNSEC_ACL_MAXTRIES=3
 CONFIG_GRKERNSEC_ACL_TIMEOUT=30
 CONFIG_GRKERNSEC_PROC=y
 # CONFIG_GRKERNSEC_PROC_USER is not set
 CONFIG_GRKERNSEC_PROC_USERGROUP=y
-CONFIG_GRKERNSEC_PROC_ADD=y
+# CONFIG_GRKERNSEC_PROC_ADD is not set
 CONFIG_GRKERNSEC_LINK=y
 # CONFIG_GRKERNSEC_SYMLINKOWN is not set
 CONFIG_GRKERNSEC_FIFO=y
-CONFIG_GRKERNSEC_SYSFS_RESTRICT=y
+# CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set
 # CONFIG_GRKERNSEC_ROFS is not set
 CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y
 CONFIG_GRKERNSEC_CHROOT=y
-CONFIG_GRKERNSEC_CHROOT_MOUNT=y
-CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
-CONFIG_GRKERNSEC_CHROOT_PIVOT=y
+# CONFIG_GRKERNSEC_CHROOT_MOUNT is not set
+# CONFIG_GRKERNSEC_CHROOT_DOUBLE is not set
+# CONFIG_GRKERNSEC_CHROOT_PIVOT is not set
 CONFIG_GRKERNSEC_CHROOT_CHDIR=y
-CONFIG_GRKERNSEC_CHROOT_CHMOD=y
+# CONFIG_GRKERNSEC_CHROOT_CHMOD is not set
 CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
 CONFIG_GRKERNSEC_CHROOT_MKNOD=y
 CONFIG_GRKERNSEC_CHROOT_SHMAT=y
@@ -38,22 +64,22 @@
 CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
 CONFIG_GRKERNSEC_CHROOT_NICE=y
 CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
-CONFIG_GRKERNSEC_CHROOT_CAPS=y
+# CONFIG_GRKERNSEC_CHROOT_CAPS is not set
 # CONFIG_GRKERNSEC_AUDIT_GROUP is not set
 # CONFIG_GRKERNSEC_EXECLOG is not set
 CONFIG_GRKERNSEC_RESLOG=y
-CONFIG_GRKERNSEC_CHROOT_EXECLOG=y
-CONFIG_GRKERNSEC_AUDIT_PTRACE=y
+# CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set
+# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set
 # CONFIG_GRKERNSEC_AUDIT_CHDIR is not set
 CONFIG_GRKERNSEC_AUDIT_MOUNT=y
 CONFIG_GRKERNSEC_SIGNAL=y
 CONFIG_GRKERNSEC_FORKFAIL=y
 CONFIG_GRKERNSEC_TIME=y
 CONFIG_GRKERNSEC_PROC_IPADDR=y
-CONFIG_GRKERNSEC_RWXMAP_LOG=y
+# CONFIG_GRKERNSEC_RWXMAP_LOG is not set
 # CONFIG_GRKERNSEC_AUDIT_TEXTREL is not set
-CONFIG_GRKERNSEC_DMESG=y
-CONFIG_GRKERNSEC_HARDEN_PTRACE=y
+# CONFIG_GRKERNSEC_DMESG is not set
+# CONFIG_GRKERNSEC_HARDEN_PTRACE is not set
 CONFIG_GRKERNSEC_PTRACE_READEXEC=y
 CONFIG_GRKERNSEC_SETXID=y
 # CONFIG_GRKERNSEC_TPE is not set
@@ -63,41 +89,6 @@
 # CONFIG_GRKERNSEC_SOCKET is not set
 CONFIG_GRKERNSEC_SYSCTL=y
 CONFIG_GRKERNSEC_SYSCTL_ON=y
-CONFIG_GRKERNSEC_FLOODTIME=2
-CONFIG_GRKERNSEC_FLOODBURST=20
-CONFIG_PAX_KERNEXEC_PLUGIN=y
-CONFIG_PAX_PER_CPU_PGD=y
-CONFIG_PAX_USERCOPY_SLABS=y
-CONFIG_PAX=y
-# CONFIG_PAX_SOFTMODE is not set
-CONFIG_PAX_EI_PAX=y
-CONFIG_PAX_PT_PAX_FLAGS=y
-CONFIG_PAX_XATTR_PAX_FLAGS=y
-# CONFIG_PAX_NO_ACL_FLAGS is not set
-CONFIG_PAX_HAVE_ACL_FLAGS=y
-# CONFIG_PAX_HOOK_ACL_FLAGS is not set
-CONFIG_PAX_NOEXEC=y
-CONFIG_PAX_PAGEEXEC=y
-# CONFIG_PAX_EMUTRAMP is not set
-CONFIG_PAX_MPROTECT=y
-CONFIG_PAX_MPROTECT_COMPAT=y
-# CONFIG_PAX_ELFRELOCS is not set
-CONFIG_PAX_KERNEXEC=y
-CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS=y
-# CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR is not set
-CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="bts"
-CONFIG_PAX_ASLR=y
-CONFIG_PAX_RANDKSTACK=y
-CONFIG_PAX_RANDUSTACK=y
-CONFIG_PAX_RANDMMAP=y
-CONFIG_PAX_MEMORY_SANITIZE=y
-# CONFIG_PAX_MEMORY_STACKLEAK is not set
-CONFIG_PAX_MEMORY_STRUCTLEAK=y
-CONFIG_PAX_MEMORY_UDEREF=y
-CONFIG_PAX_REFCOUNT=y
-CONFIG_PAX_CONSTIFY_PLUGIN=y
-CONFIG_PAX_USERCOPY=y
-# CONFIG_PAX_USERCOPY_DEBUG is not set
-CONFIG_PAX_SIZE_OVERFLOW=y
-# CONFIG_PAX_LATENT_ENTROPY is not set
+CONFIG_GRKERNSEC_FLOODTIME=10
+CONFIG_GRKERNSEC_FLOODBURST=4

Аналогично

$ zgrep CONFIG_GRKERNSEC_TPE /proc/config
# CONFIG_GRKERNSEC_TPE is not set
$ zgrep CONFIG_GRKERNSEC_IO /proc/config
# CONFIG_GRKERNSEC_IO is not set

в limits.conf даже ставил unlimited специально.

init_6 ★★★★★
() автор топика
Ответ на: комментарий от init_6

Я ставлю на убийство PaX'ом нужных процессов. Если так, то снятие флагов с помощью paxctl должно помочь, но в обратном случае придется загрузиться с ванильным ядром с твоим конфигом, затем с genkernel, проверить работоспособность автомонтирования и посравнивать конфигурации и логи из-под разных ядер. Может быть проблема в других опциях ядерного конфига.

Да, еще лучше отключить опцию
CONFIG_GRKERNSEC_PROC_USERGROUP (Allow special group)
и включить
CONFIG_GRKERNSEC_PROC_USER (Restrict /proc to user only),
чтобы ограничения на /proc касались всех, кроме root, если конечно тебе не нужно отключить ограничения для конкретной группы.

JohnnyDoe
()
Ответ на: комментарий от JohnnyDoe

Да, еще лучше отключить опцию CONFIG_GRKERNSEC_PROC_USERGROUP (Allow special group) и включить CONFIG_GRKERNSEC_PROC_USER (Restrict /proc to user only), чтобы ограничения на /proc касались всех, кроме root, если конечно тебе не нужно отключить ограничения для конкретной группы.

Значит так эти ^ не влияют вообще никак. Главное влияют CONFIG_GRKERNSEC_PROC и CONFIG_GRKERNSEC_SYSFS_RESTRICT Вот если их выключить то все вроде бы ок!

init_6 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.