1 votes

Montage de "/run" en tant que noexec

J'utilise Ubuntu 22.04.1 LTS.

Actuellement /run est monté comme un tmpfs sans noexec :

mount | grep '/run '
  tmpfs on /run type tmpfs (rw,nosuid,nodev,size=...,nr_inodes=...,mode=755,inode64)

lsb_release -a
  No LSB modules are available.
  Distributor ID: Ubuntu
  Description:    Ubuntu 22.04.1 LTS
  Release:        22.04
  Codename:       jammy

uname -a
  Linux example.com 5.15.0-1020-aws #24-Ubuntu SMP Thu Sep 1 16:04:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Je suppose que c'est configuré via systemd en tant que Système de fichiers de l'API ? Mais je ne suis pas sûr de savoir comment/où il est configuré.

Il n'y a pas d'entrée dans /etc/fstab .

Les serveurs que j'administre qui utilisent Ubuntu 20.04.5 LTS ont déjà noexec sur /run . Je ne me souviens pas avoir fait cela manuellement, je me demande donc si cela ne serait pas un changement dans Ubuntu 22.04.1 LTS ?


Quant à savoir pourquoi... J'ai un script qui vérifie tous les dossiers accessibles en écriture par l'utilisateur. www-data l'utilisateur est sur un noexec monter. En théorie, si l'un des sites web hébergés présente une faille de sécurité permettant à un attaquant de créer un fichier sur le disque à un emplacement arbitraire (par exemple /run/lock/apache2/), alors au moins noexec pourrait fournir une certaine protection (je sais qu'elle n'empêche pas un interprète de s'exécuter).

2voto

Andrew Lowther Points 3661

El /run est créé par le initramfs-tools init script à l'intérieur de l'initramfs. C'est avant que des choses comme systemd ne s'exécutent. Le site /run mount persiste après que l'initramfs pivote vers le vrai système de fichiers racine.

La vérification d'une installation Ubuntu 22.04 stock montre que le noexec L'option de montage est présente, je suis donc curieux de savoir s'il y a quelque chose de différent dans votre installation.

ubuntu@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy
ubuntu@ubuntu:~$ uname -a
Linux ubuntu 5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@ubuntu:~$ mount | grep '/run '
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=99272k,mode=755,inode64)

liens

modifier

Lorsque Ubuntu démarre dans AWS, il fait ainsi initrdless et n'utilise pas l'initramfs. Lorsque le noyau démarre initrdless Je crois que systemd monte /run (voir édition 2).

Sur la base de commentaire 21 dans ce bogue ces commandes rétabliront le comportement par défaut.

mv /etc/default/grub.d/40-force-partuuid.cfg{,.bak}
update-grub

modifier 2

Après avoir creusé un peu plus, je crois systemd crée le /run mount (et autres) quand Ubuntu est démarré sans défaut comme défini dans cette entrée de la table de montage y ces options de montage . Les options de montage ne semblent pas être personnalisables. La commande de montage équivalente qui en résulte semble être

mount -t tmpfs -o "nodev,nosuid,strictatime,size=20%,nr_inodes=800k,mode=0755" tmpfs /run

Si vous devez modifier les arguments de montage utilisés par initramfs-tools alors vous pourriez concevoir de modifier le init script localement à /usr/share/initramfs-tools/init et reconstruire les initramfs avec la commande

update-initramfs -c -k $(uname -r)

1voto

Adam K. Points 11

Les AMIs Ubuntu Jammy sont pré-configurés avec /run/lock mount et noexec.

# findmnt -l | grep noexec
/proc                                     proc                   proc       rw,nosuid,nodev,noexec,relatime
/sys                                      sysfs                  sysfs      rw,nosuid,nodev,noexec,relatime
/sys/kernel/security                      securityfs             securityfs rw,nosuid,nodev,noexec,relatime
/dev/pts                                  devpts                 devpts     rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
/run/lock                                 tmpfs                  tmpfs      rw,nosuid,nodev,noexec,relatime,size=5120k,inode64
/sys/fs/cgroup                            cgroup2                cgroup2    rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot
/sys/fs/pstore                            pstore                 pstore     rw,nosuid,nodev,noexec,relatime
/sys/fs/bpf                               bpf                    bpf        rw,nosuid,nodev,noexec,relatime,mode=700
/dev/mqueue                               mqueue                 mqueue     rw,nosuid,nodev,noexec,relatime
/sys/kernel/debug                         debugfs                debugfs    rw,nosuid,nodev,noexec,relatime
/sys/kernel/tracing                       tracefs                tracefs    rw,nosuid,nodev,noexec,relatime
/sys/kernel/config                        configfs               configfs   rw,nosuid,nodev,noexec,relatime
/sys/fs/fuse/connections                  fusectl                fusectl    rw,nosuid,nodev,noexec,relatime
/run/credentials/systemd-sysusers.service none                   ramfs      ro,nosuid,nodev,noexec,relatime,mode=700

# mount -l | grep run
tmpfs on /run type tmpfs (rw,nosuid,nodev,size=192760k,nr_inodes=819200,mode=755,inode64)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
none on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
tmpfs on /run/snapd/ns type tmpfs (rw,nosuid,nodev,size=192760k,nr_inodes=819200,mode=755,inode64)
nsfs on /run/snapd/ns/lxd.mnt type nsfs (rw)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=96380k,nr_inodes=24095,mode=700,uid=1000,gid=1000,inode64)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X