от Н. Антонов(3-12-2004)

рейтинг (14)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Модулът AUTH

Всички модули, чиято поддръжка сме компилирали, се контролират от централизирано административно меню, което трябва да стартираме като потебител secoff. Ако го стартираме като root, по подразбиране ще можем да виждаме настройките, но няма да можем да правим промени по тях. Чрез администраторския център на RSBAC можем да включваме и изключваме самите модули. Както вече беше казано, няма логика да ползваме всички модули едновременно. Трябва да си направим ясна сметка точно за какво е предназначена машината, какви услуги ще работят на нея и какъв контрол ще искаме да установим върху тях. Едва тогава вече включваме и настройваме нужните модули, а останалите изключваме, за да не си пречат.

Администраторският център на RSBAC се стартира с командата rsbac_menu.

Както беше казано по-рано, модулът AUTH контролира смяната на собственика на даден процес. Основните параметри са два:

  • auth_may_setuid - процесите с включен такъв флаг ще могат да променят собственика си.
  • auth_capabilities - тук можем да контролираме точно кои потребителски идентификатори (UID) може да сменя даденият процес. Това е много полезно, когато искаме да предпазим програмата, на която сме разрешили да променя собственика си, от безконтролна смяна на UID-то.

Ако в системните логове се появяват записи от този вид:

Feb 25 12:58:13 stas kernel: rsbac_adf_request(): request CHANGE_OWNER, caller_pid 77, caller_prog_name portmap, caller_uid 0, target-type PROCESS, tid 77, attr owner, value 1, result NOT_GRANTED by AUTH

Това е неприятно съобщение, което означава, че процесът potrmap с текущ UID 0 се е опитал да смени собственика си (CHANGE_OWNER) на 1 (value 1) и модулът AUTH не му е позволил. В такъв случай трябва да разрешим на програмата portmap да сменя потребителя си на 1 в списъка с допустимите собственици (auth_capabilities).

Пристъпваме към ликвидиране на грешката. Влизаме в системата като secoff, отиваме в директорията, в която се намира portmap (примерно /sbin) и стартираме програмата rsbac_menu.

Избираме подменюто "File/Dir Attributes" и попадаме в раздела за администриране на атрибутите на файла. Вероятно ще ви порази, но надявам се не и да ви уплаши огромното количество от атрибути, които могат да бъдат свързани с един файл. Това разнообразие идва от многото възможности, предоставени от различните модули за защита, но в текущия момент работят само тези параметри, които съотвестват на включен модул. В нашия случай това са модулите AUTH, MAC, RC и ACL.

Избираме файла portmap от текущата директория ("File/Dir List:Choose from listing of last dir") и от съответното меню добавяме потребителските идентификатори на допустимите UID-та, които могат да бъдат собственик на този процес. Това е всичко. Действаки по подобен начин, можете да оправите и другите грешки от този характер, свързани с други програми, които изискват промяна на собственика. На една стандартна система това може да са демони като sshd (/usr/sbin/sshd) и програми като ssh (/usr/bin/ssh), сървърите, работещи като непривилегировани потребители като Apache, ISC BIND, MySQL...

Модулът FF

Това е най-простият до гениалност модул. Възползвайки се от него, можете много лесно да зададете атрибути на цели дърва от директории. Например, можете да зададете флаг "read_only" (само за четене) на:

/bin
/sbin
/usr/bin
/usr/sbin

Сега всички потребители могат да стартират програми от тези директории, но не могат да ги променят. Това ограничение важи включително и за root! Интересна е възможността за конкретни файлове или поддиректории да махнете флага "add_inherited", чрез който файлът/директорията наследява флаговете от по-главната директория. Можете да се възползвате от това при задаването на права "read_only" например на /etc, като разрешите да се променя само файлът /etc/mtab.

Пълен списък с правата:

  • no_execute - можете да зададете този флаг върху /tmp, /var/tmp (където по правило всеки може да пише) и дори върху /home, ако искате да забраните на потребителите да стартират изпълними файлове от собствените си директории без знанието на администратора.
  • secure_delete - безопасно изтриване.
  • write_only - защита от четене, разрешено е само писане във файла (удобно е за журнални файлове)
  • search_only - полезно е само за директории. Файловете в тази директория са напълно скрити.
  • execute_only - разрешено е само стартиране.
  • read_only - само за четене.

Важен момент: Ако сте включили "FF Role Protection" при конфигурирането на ядрото, губите възможност да влизате в системата като отговорник по сигурността. FF ще ви забранява да сменяте собственика от администратор (root) на отговорник по сигуронстта (secoff). Трябва да влезете като обикновен потребител и след това да станете отговорник по сигуронстта чрез su.

Модулът MAC

Разгледаният по-горе модел на сигурност е изключително прост, въпреки че е от ключово значение. Всички останали модули изглеждат спрямо него като слон пред муха. Модулът MAC реализира модел на мандатен достъп, което налага да започнем с малко суха теория.

Следва...



<< Въведение в RSBAC, част III | Въведение в RSBAC, част I >>