The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Безопасные опции монтирования разделов на примере Debian Wheezy
В данной заметке мы рассмотрим установку системы на несколько разделов по
критерию опций монтирования.
Я использую для установки системы 4 раздела:

/boot - требуется отдельный раздел если остальная часть системы
устанавливается на software raid.

/ - основной раздел на котором расположены все исполняемые файлы, хотя он может
быть тоже раскидан по разным разделам, но уже не по критерию опций монтирования.

/home - раздел домашних каталогов.

/var - раздел переменных сред, который обычно не содержит исполняемых файлов.

Итак я предлагаю вариант установки системы со следующими опциями монтирования
(в моем примере это raspberry pi с установленным raspbian wheezy):

   pavel@pspi ~ $ cat /etc/fstab
   proc            /proc           proc    defaults          0       0
   /dev/mmcblk0p1  /boot           vfat    defaults,ro,noexec          0       2
   /dev/mmcblk0p2  /               ext2    defaults,ro          0       1
   /dev/mmcblk0p3  /var            ext2    defaults,noexec          0       1
   /dev/mmcblk0p5  /home           ext2    defaults,noexec          0       1

Для раздела /boot я применил опции ro,noexec, так как записывать в него и
исполнять при работе системы не надо.

Для раздела / - опция ro - там содержатся исполняемые файлы, но они
неизменяемы и записывать в раздел при нормальной работе ничего не требуется,
только во время администрирования.

Раздел /home смонтирован с опцией noexec - это мое решение, чтобы
пользователи не скачивали и не запускали программы из ненадежных источников.

Раздел /var смонтирован с noexec, так как обычно не содержит исполняемых файлов
(за исключением /var/lib/dpkg) и выполнение тут не требуется.

Посмотрим какие у нас еще остались виртуальные fs с опцией exec:

   pavel@pspi ~ $ mount | grep -v noexec
   /dev/root on / type ext2 (ro,relatime)
   devtmpfs on /dev type devtmpfs (rw,relatime,size=218636k,nr_inodes=54659,mode=755)
   tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=89160k)

Попробуем внести для них записи в /etc/fstab, чтобы система попробовала их
перемонтировать с нашими опциями:

   devtmpfs        /dev            devtmpfs rw,noexec,relatime,size=218636k,nr_inodes=54659,mode=755
   tmpfs           /tmp            tmpfs rw,noexec,nosuid,nodev,relatime,size=89160k

и перезагрузим систему получив:

   pavel@pspi ~ $ mount | grep -v noexec
   /dev/root on / type ext2 (ro,relatime)
   devtmpfs on /dev type devtmpfs (rw,relatime,size=218636k,nr_inodes=54659,mode=755)

Не сработало для fs /dev - для нее добавим в /etc/rc.local:

   mount /dev -o remount

и снова перезагрузим систему получив:

   pavel@pspi ~ $ mount | grep -v noexec
   /dev/root on / type ext2 (ro,relatime)

Мы видим, что у нас все разделы смонтированы по возможности с noexec кроме /,
который смонтирован readonly.

При администрировании системы я перемонтирую разделы:

   pavel@pspi ~ $ sudo mount /var -o remount,exec
   pavel@pspi ~ $ sudo mount / -o remount,rw

После администрирования:

   pavel@pspi ~ $ sudo mount / -o remount
   pavel@pspi ~ $ sudo mount /var -o remount
 
22.10.2015 , Автор: Павел Самсонов , Источник: http://www.tinyware.hostline.su/...
Ключи: debian, mount, readonly
Раздел:    Корень / Администратору / Система / Диски и файлы / Монтирование

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 14:16, 24/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это конфигурация сервера для каких задач ?
     
  • 1.2, Андрей (??), 15:43, 24/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это призрачная защита, потому что файлы всё равно можно исполнять через . /path/to/script.sh

    Если нужно огородить систему, используй SElinux (ну, или apparmor).

    [Пример: У меня на сервере тихо работает уязвимая версия Joomla, зажатая SElinux. А у компании-хостера она жрала 100% CPU, за что хостинг отключили.]

     
     
  • 2.3, cmp (ok), 19:15, 24/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вы гордитесь тем, что не можете использовать нормальный цмс, или тем, что вам еще винт не отформатили, возможно, потому что шлют с вас спам. Если уж надо, то можно через обратную проксю запретить с внешних ip дырявые урлы, но через se, это фееричный идиотизм
     
     
  • 3.8, Аноним (-), 20:02, 27/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Человек забил микроскопом гвоздь, а вы ему праздник пытаетесь испортить. Нехорошо.
     
  • 3.16, Павел Самсонов (?), 20:31, 09/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Какие Вы нетерпимые. Это явно подорванное здоровье, поправляйте. Сделал человек, и хорошо.
     

  • 1.4, cmp (ok), 19:27, 24/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    man mount прочитал? красавчик, а не думал, что добавить команду перемонтирования в rw или exec перед тем как на раздел слить инфу и заразить системку не так уж сложно, хочешь секурности пиши на сд-р и грузись с них))
     
     
  • 2.5, Онаним (?), 11:39, 26/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > man mount прочитал? красавчик

    Абсолютной защиты не существует. Но, как правило, для получения рута требуется запустить в системе сплоит, который прежде еще нужно записать. Одэев в ядро или в сервис от рута крайне мало, одэй же в непривилегированный процесс обломится с перемонтированием, записью и запуском.

    Автору:
    не забываем об опции "nosuid".

     
     
  • 3.6, cmp (ok), 14:35, 26/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > непривилегированный процесс

    в /bin /usr/bin кто попало тоже не пишет, в отличии от винды, линукс трудно ломануть даже имея шелл на нем, большенство "вирусятины" прилитевшие через кривую cms в апаче довольствуется возможностью отправлять спам сидя в памяти, так в чем прикол монтирования на ro.

    Нет, ну конечно, когда мы ставим сервер в глухом лесу, в климатическом шкафу рядом с радиорелейкой, куда заглянуть в лучшем случае лет через 7 это имеет смысл, но не потому, что страшно, что сломают, а чтобы фс не глюканула, даже когда контроллер глюканет, но это "ох" какая редкость, когда надо слепить связь из того, что под столом завалялось))

     
     
  • 4.7, Аноним (-), 20:01, 27/10/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > чтобы фс не глюканула, даже когда контроллер глюканет

    В таком случае никакие опции монтирования ничего не гарантируют.

     
     
  • 5.11, cmp (??), 18:15, 01/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Очень даже гарантируют, поскольку система даже пытаться не будет писать на раздел, то есть и не запишет куда не надо, а прочитать не сможет - ну зависнет, ресет и делов то.
     
  • 2.26, Павел Самсонов (?), 12:47, 19/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Кто интересуется, обновлена страничка http://tinyware.hostline.su/restrictcap.ko.html. В конце дописана информация, отвечающая на вопросы "Я все равно перемонтирую" и подобное. Без загрузки посмотреть патчи можно http://tinyware.hostline.su/TinyWare/release/src/linux-4.1.13-tinyware/
     

  • 1.9, Pilat (ok), 16:27, 30/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если у меня работает Web сервер с CGI скриптами, то куда его надо положить?
     
  • 1.10, fedfed (ok), 08:59, 31/10/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а в чем смысл этого банального перечисления известных вещей? реклама сайта с булочками?
     
  • 1.12, Аноним (-), 03:20, 03/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > (в моем примере это raspberry pi с установленным raspbian wheezy):

    ...
    > Раздел /home смонтирован с опцией noexec - это мое решение, чтобы
    > пользователи не скачивали и не запускали программы из ненадежных источников.

    Чем же же тогда несчастным пользователям заниматься?

     
  • 1.13, anonymous (??), 02:07, 04/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    noexec не защищает от выполнения программ.

    /var нельзя монтировать с noexec (сломаются post-inst и прочие скрипты из deb-пакетов)

    Как выяснилось, /var нельзя даже с nodev монтировать — Debian installer не отрабоает.

    Для полноты картины не хватает пересказа заклинания про noatime,nodiratime.

     
     
  • 2.14, Аноним (-), 15:06, 06/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Он же собирается обновляться раз в год и перед этим все перемонтировать скриптом. Правда при этом вирусня в оперативке запишется и запустится =)
     
  • 2.15, Павел Самсонов (?), 15:28, 09/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > noexec не защищает от выполнения программ.
    > /var нельзя монтировать с noexec (сломаются post-inst и прочие скрипты из deb-пакетов)

    Эти опции для полетного режима. При установке пакетов надо перемонтировать в rw и exec все разделы.

    > Как выяснилось, /var нельзя даже с nodev монтировать — Debian installer не
    > отрабоает.

    Опции монтирования я добавляю в уже установленной системе. На этапе инсталлятора только деление на разделы.
    > Для полноты картины не хватает пересказа заклинания про noatime,nodiratime.

    Полнота картины в книжке http://files.mail.ru/291D0F7807F6425E89C210C65003E278 . Локхарт Э. Антихакинг в сети. Трюки.pdf


     

  • 1.17, Анонимкульхацкер (?), 02:31, 10/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://pastebin.com/dY2htk7r - запуск произвольного шеллкода при наличии Python-a в стандартной комплектации. Зачем это нужно, если есть сам Python, и можно ли допилить скрипт до возможности запуска произвольного elf-файла, доступного для чтения - вопрос отдельный.
     
     
  • 2.18, Павел Самсонов (?), 10:05, 10/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > http://pastebin.com/dY2htk7r - запуск произвольного шеллкода при наличии Python-a в стандартной
    > комплектации. Зачем это нужно, если есть сам Python, и можно ли
    > допилить скрипт до возможности запуска произвольного elf-файла, доступного для чтения
    > - вопрос отдельный.

    Понятно что можно запускать сценарии например $bash /home/pavel/Downloads/script.sh или другими интерпретаторами. Но вопрос в другом - где способ заражения в один клик - скачал - кликнул - запустилось? Это защита от этого, а на от запрета все запускать. Ктому же запустить сценарий и получить повышенные привелегии меньше вероятно, это не бинарник.

     
     
  • 3.19, Анонимкульхацкер (?), 17:16, 10/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, так я же и пишу как из скрипта сделать бинарник даже в условиях noexec.
    От скачал-кликнул-запустилось защищает скорее нормальный umask, из-за которого перед запуском нужно будет сначала поставить права на исполнение, что для скриптов, что для бинарников, да и сама эта проблема актуальна в основном для ведроида и винды.
    А если же говорить о всяких дырах в флешплеере и иже с ним, то запуск такого скрипта вполне может неплохо помочь имеющему шелл, но не имеющему рута кульхацкеру в условиях noexec запустить локальный эксплойт, перехватить нажатия клавиш и вообще делать всё, что обычно.
    Поэтому говорить о какой-то значительной практической пользе этой опции особого смысла нет и это просто перестраховка.
     
     
  • 4.20, Павел Самсонов (?), 17:32, 10/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, так я же и пишу как из скрипта сделать бинарник даже
    > в условиях noexec.

    Ты написал как питон заставить выполнить произвольный байткод, а не родной его диалект. Это плохо для питона, да. И что это дает по твоему? Вот я этот скрипт скачал, он не запускается сам по себе, я должен вызвать $python tvoy-script.py.
    > От скачал-кликнул-запустилось защищает

    Да втом то и дело что по клику не запустится, надо еще организовать выполнение.
    скорее нормальный umask, из-за которого перед
    > запуском нужно будет сначала поставить права на исполнение, что для скриптов,
    > что для бинарников, да и сама эта проблема актуальна в основном
    > для ведроида и винды.

    Тоже вариант, выбор значения umask важное дело.
    > А если же говорить о всяких дырах в флешплеере и иже с
    > ним, то запуск такого скрипта вполне может неплохо помочь имеющему шелл,
    > но не имеющему рута кульхацкеру в условиях noexec запустить локальный эксплойт,
    > перехватить нажатия клавиш и вообще делать всё, что обычно.

    Ну пока что у меня с noexec на home youtube в браузере не работает, а не адоб флэш мне что то запускает.
    > Поэтому говорить о какой-то значительной практической пользе этой опции особого смысла
    > нет и это просто перестраховка.

    Ну вобщем то да, это не панацея, дядька делал простую фичу, и она только то что есть.


     
     
  • 5.21, Анонимкульхацкер (?), 19:05, 10/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, а что, кроме payload-ов эксплойтов, запускается "само по себе"? Проблема со случайным скачиванием и запуском вредоносного elf-файла абсолютно надуманная, а проблемы, которые возникают у пользователей из-за такой заSHITы вполне реальны. При этом технически грамотный юзверь или даже обычный скрипт-кидди её легко обойдет, да и действительно нужна она только в определенном ряде специальных случаев, для proc, например.
    В общем тут я вижу только бездумную копипасту (да ещё и ухудшениями, там то только про tmp говорили) команд из книжки, смыла в которой довольно мало.
     
     
  • 6.22, Павел Самсонов (?), 19:16, 10/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Хорошо, а что, кроме payload-ов эксплойтов, запускается "само по себе"? Проблема со
    > случайным скачиванием и запуском вредоносного elf-файла абсолютно надуманная, а проблемы,
    > которые возникают у пользователей из-за такой заSHITы вполне реальны. При этом
    > технически грамотный юзверь или даже обычный скрипт-кидди её легко обойдет, да
    > и действительно нужна она только в определенном ряде специальных случаев, для
    > proc, например.
    > В общем тут я вижу только бездумную копипасту (да ещё и ухудшениями,
    > там то только про tmp говорили) команд из книжки, смыла в
    > которой довольно мало.

    Книжку мне дали несколько дней назад. В ней я нашел некоторые те же мысли, до которых допетрил сам. В конце концов я эту проблемму вижу в том, что когда то это все было just for fun. А теперь люди с подходами инквизиторов или жаждой каких то идеальностей нарыли кучу проблемм. Компьютеры я считаю не для того. Не нравятся дедовские методы, ну что ж, значит вам не на мой сайт. Я тоже не глупый и в инсталляшке в /etc/motd оставил no warranty. И debian no warranty, и многое другое. Вопорос только в том сколько онкологии люди сделают себе и другим из за каких то дурацких компов.
    P.s. дурак на английский переводится do cancer.

     
     
  • 7.23, Анонимкульхацкер (?), 20:03, 10/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > же мысли, до которых допетрил сам. В конце концов я эту
    > проблемму вижу в том, что когда то это все было just
    > for fun. А теперь люди с подходами инквизиторов или жаждой каких
    > то идеальностей нарыли кучу проблемм. Компьютеры я считаю не для того.
    > Не нравятся дедовские методы, ну что ж, значит вам не на
    > мой сайт. Я тоже не глупый и в инсталляшке в /etc/motd
    > оставил no warranty. И debian no warranty, и многое другое. Вопорос
    > только в том сколько онкологии люди сделают себе и другим из
    > за каких то дурацких компов.
    > P.s. дурак на английский переводится do cancer.

    Мне кажется, что книжки плана "100 профессиональных примеров по X" стоит читать только после того, как прочтешь о общих принципах того, как это всё работает, иначе комбинирование и экстраполяция изначально вполне адекватных советов может привести к откровенному маразму.
    Я слабо понимаю, причём здесь жажда идеальностей и где вы здесь видите подход инквизиторов, а дальше в сообщении идёт вообще нечто маловразумительное, но в общем суть в том, что дело не в желании нагадить, а в том, что именно слабая техническая грамотность пользователей, лень и некомпетентность многих системных администраторов, ошибки программистов создаёт ту среду, в которой процветают злоумышленники, создающие вышеперечисленным товарищам эту твою "онкологию".

     
     
  • 8.24, Павел Самсонов (?), 11:59, 12/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Ну извини, я не маразматик Я занимаюсь Linux ом 13 лет ... текст свёрнут, показать
     

  • 1.25, megavir (?), 00:06, 14/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    13 лет администрирвания... и додуматься только до этого..  Это прям мемуары "путь черепахи"
     
  • 1.27, mickvav (?), 22:50, 24/11/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    /boot в vfat ? Зачем, спрашивается? То есть зачем вообще держать vfat в сервере?
     
     
  • 2.28, Павел Самсонов (?), 14:07, 26/11/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > /boot в vfat ? Зачем, спрашивается? То есть зачем вообще держать vfat
    > в сервере?

    Это пример с raspberry pi. там нужно vfat. Конечно на сервере vfat не надо, вы же не копипастеры.


     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру