создайте пользователя chroot на первом входе в систему

Хорошо, как, кажется, случай 75% времени, я на самом деле споткнулся за ответ на свой собственный вопрос. -t и -x флаги для df сделает то, что я ищу.

-t [type] перечислит файловые системы, соответствующие ТИПУ фс [тип]

-x [type] перечислит файловые системы, НЕ соответствующие ТИПУ фс [тип]

Т.е. чтобы я исключил смонтированные NFS файловые системы, команда df -x nfs.

3
задан 17 April 2014 в 21:15
1 ответ

Прежде всего, возможно, chroot не может считаться функцией безопасности . Есть мнений и в другом направлении, .

Возможно, вам нужно реализовать воспроизводимый, проверяемый метод ограничения возможности пользователя выполнять действия, отличные от строго разрешенных.

Если вы регистрируете своих пользователей в LDAP, вы наверняка уже развернули механизмы для выполнения аутентификации LDAP на любом компьютере, подключенном к этому LDAP, будь то с помощью sssd или с помощью любого другого модуля PAM, это не имеет отношения к остальной части решения и предполагается, что он уже существует (в моем случае я использую freeIPA и sssd ).

Для реализации этого сценария, В настоящее время я делаю следующее (имейте в виду, что для такого рода ограничений требуется выполнение нескольких условий, иначе ограничение можно легко обойти):

  • Пользователи не принадлежат к группе wheel , единственный, кто имеет право использовать su (принудительно через PAM). Обычно существует пользователь, не являющийся пользователем LDAP ( sysadm ), чтобы позволить доверенным администраторам выполнять действия в случае аварийного восстановления или недоступности LDAP.
  • Пользователям предоставляется должным образом защищенный rbash с доступный только для чтения ПУТЬ, указывающий на частный ~ / bin , этот ~ / bin / каталог содержит ссылки на все разрешенные команды, например:

     $ ll ~ / bin 

    • Пользователи не принадлежат к группе wheel , единственной, кому разрешено использовать su (принудительно через PAM). Обычно существует пользователь, не являющийся пользователем LDAP ( sysadm ), чтобы позволить доверенным администраторам выполнять действия в случае аварийного восстановления или недоступности LDAP.
    • Пользователям предоставляется должным образом защищенный rbash с доступный только для чтения ПУТЬ, указывающий на частный ~ / bin , этот ~ / bin / каталог содержит ссылки на все разрешенные команды, например:

       $ ll ~ / bin 

      • Пользователи не принадлежат к группе wheel , единственной, кому разрешено использовать su (принудительно через PAM). Обычно существует пользователь, не являющийся пользователем LDAP ( sysadm ), чтобы позволить доверенным администраторам выполнять действия в случае аварийного восстановления или недоступности LDAP.
      • Пользователям предоставляется должным образом защищенный rbash с доступный только для чтения ПУТЬ, указывающий на частный ~ / bin , этот ~ / bin / каталог содержит ссылки на все разрешенные команды, например:

         $ ll ~ / bin
        всего 0
        lrwxrwxrwx. 1 root dawud 14 сен 17 08:58 clear -> / usr / bin / clear *
        lrwxrwxrwx. 1 root dawud 7 сен 17 08:58 df -> / bin / df *
        lrwxrwxrwx. 1 root dawud 10 сен 17 08:58 egrep -> / bin / egrep *
        lrwxrwxrwx. 1 root dawud 8 сен 17 08:58 env -> / bin / env *
        lrwxrwxrwx. 1 root dawud 10 сен 17 08:58 fgrep -> / bin / fgrep *
        lrwxrwxrwx. 1 root dawud 9 сен 17 08:58 grep -> / bin / grep *
        lrwxrwxrwx. 1 root dawud 10 сен 17 08:58 rview -> / bin / rview *
        lrwxrwxrwx. 1 root dawud 13 сен 17 08:58 rvim -> / usr / bin / rvim *
        lrwxrwxrwx. 1 root dawud 13 сентября 17 08:58 sudo -> / usr / bin / sudo *
        lrwxrwxrwx. 1 root dawud 17 сен 17 08:58 sudoedit -> / usr / bin / sudoedit *
        lrwxrwxrwx. 1 root dawud 13 сен 17 08:58 tail -> / usr / bin / tail *
        lrwxrwxrwx. 1 root dawud 11 сен 17 08:58 туалет -> / usr / bin / wc *
        
      • пользователям предоставляется ограниченная среда только для чтения (подумайте о таких вещах, как LESSSECURE , TMOUT , HISTFILE переменные). Это сделано для того, чтобы избежать экранирования оболочки из таких команд, как less или vim .

      • если ограничения MAC существуют (конкретный дистрибутив GNU / Linux, который вы используете SELinux включен), пользователи отображаются на пользователя SELinux staff_u и получают права на выполнение команд от имени другого пользователя по мере необходимости через sudo . Конкретные разрешенные Sudorules должны быть тщательно проверены, чтобы предотвратить обход этих ограничений пользователем, и также могут быть развернуты в вашей существующей инфраструктуре LDAP (это одна из функций freeIPA).
      • пользователи / дом , / var / tmp /tmp/.inst/var-tmp.inst-$USER- tmpdir: создать root $ HOME $ HOME / $ USER.inst / tmpdir: создать root

      Полиинстанция каталогов - не новая функция, она доступна уже довольно давно. Для справки см. эту статью от 2006 г. . Фактически, многие модули уже используют pam_namespace по умолчанию, но конфигурация по умолчанию в /etc/security/namespace.conf не включает многоэкземплярное создание. Кроме того, /etc/security/namespace.init должен сделать все скелетные файлы доступными только для чтения для пользователей и принадлежащими root .

    Таким образом, вы можете выбрать, могут ли пользователи выполнять любую команду от своего имени (по ссылке в частном каталоге ~ / bin , предоставленной через / etc / skel , как описано выше), от имени другого пользователя (через sudo ) или вообще ничего.

3
ответ дан 3 December 2019 в 06:34

Теги

Похожие вопросы