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

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

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

По статията на Stanislav Ievlev
Оригинален документ: linux.ru.net
Превод със съкращения и с допълнения от преводача

Официалната страница на проекта RSBAC е www.rsbac.org. В комбинация с този проект е създадена дистрибуцията Adamantix, която използва системата и пакетите на Debian GNU/Linux. Този уводен материал е компилация от превод и допълнения на базата на опита на преводача в използването на системата RSBAC (Н. А.).

Увод

Преди да се захванем да правим компютъра си непристъпна крепост, трябва да ви предупредим какво ви очаква. Всяка система за сигурност води до ограничения на вашата работа, а сериозната система за сигурност води до много сериозни ограничения. Допълнителните проверки и оторизации понижават производителността на ядрото, а такива неща като сигурното изтриване понижават производителността на файловата система. Забравете за всесилния суперпотребител, защото неговото всесилие е един от най-големите проблеми на безопасността. Сега вие ще имате отделно администратор на системата (по-нататък просто администратор) и администратор по сигурността (по-нататък просто отговорник за сигурността). Двамата не могат да си влияят един на друг и даже ще се конкурират за власт в системата. Администраторът ще може като по-рано да управлява цялата система, да прави настройките, да създава и премахва потребители, да ограничава потребителите спрямо ползването на системните ресурси. Отговорникът по сигурността обаче ще може да ограничава всички потребители (включително и администратора) по отношение достъпа им до едни или други данни, в това число и системни. Например, администраторът за разлика от отговорника може да създава потребители, но не може ръчно да редактира файловете /etc/passwd и /etc/shadow, ако отговорникът не му разреши. Бъдете внимателни при извършването на определени промени, защото можете да забраните достъпа до система за ВСИЧКИ, single user не помага (срещу ядрото няма мърдане), единственото спасение може да бъде зареждането на нормално ядро. Накрая и това няма да ви помогне, ако сте добавили криптирана файлова система към зареждането на ядрото.

И така, ако нищо от гореизброените неща не ви смущава или разноските от загубата на важна информация превишават възможните разходи, давайте напред! Иначе просто се постарайте да настроите максимално грамотно стандартната UNIX-защита.

Компилиране на ядро

Какво ни е необходимо:

1. Основният пач за ядрото -rsbac-версия.tar.gz или rsbac-версия.tar.bz2

2. Инструментите за управление - rsbac-admin.tar.gz

Вземете последната версия на RSBAC. Нужни са ви два архива: rsbac-текуща-версия.tar.gz и rsbac-admin-текуща-версия.tar.gz. Първият съдържа необходимите добавки към ядрото, а вторият – инструментите за управление. Трябва да създадем нов потребител в системата secodff да му присвоим uid 400. По този начин при първото презареждане на системата той ще стане автоматично отговорник по сигурността.

След като сме разархивирали изходния код на ядрото и сме приложили съотвестващия на версията на ядрото пач, с командата make menuconfig пускаме менюто за настройка на ядрото и с удивление откриваме, че в него има раздел "Rule Set Based Access Control (RSBAC)". Ето така ние се срещаме и с темата на нашето изложение.

След като сме настроили останалите компоненти на ядрото, преминаваме към точката RSBAC и настискаме Enter.

Точките, които трябва да са настроени по подразбиране, са следните:

  • RSBAC proc support - в директорията /proc се появява поддиректория rsbac-info, необходима на програмите за администриране.
  • RSBAC maintenance kernel - компилирайте две ядра, като едното е с включени параметри, а другото е без нито един включен параметър. Второто ще ни даде последен шанс да се почувстваме root и може да ни потрябва, ако случайно загубим всякакъв контрол над системата.
  • support secure_delete - файловете ще се изтриват безвъзвратно, но това съответно забавя и работата на файловата система.
  • RSBAC individual logging - допълнително протоколиране на достъпа до файловете. Log full path - ако не включите тази точка, в журнала ще се записва само името на файла, достъпът до който се протоколира, а не пълния път до него.
  • RSBAC extra stsistics - ще се появи статистическа информация в /proc/rsbac-info/xstats и данните в журнала ще бъдат по-подробни.

RSBAC има модулна структура, т.е. има няколко модула за автентикация, всеки от които контролира достъпа до своите собствени възможности. Окончателното решение дали да се предостави или да се откаже достъпът е сумарно след обсъждане на този въпрос между всички модули. Всеки модул работи независимо с изключение на модула auth, който се използва от всички останали.

  • Модул auth - общ контрол над процесите, не позволява процесите да сменят своя uid както им падне.
  • Модул RC (Role Compatibility) - много сериозен модул за достъп на базата на ролевия модел. Решава повечето проблеми относно управлението на достъпа с минимални усилия.
  • Модул MAC (Mandatory Access Control) - предлага мандатен модел за достъп.
  • Модул ACL (Access Control Lists)- разширява правата на файловете в сравнение със стандартните, позволява контролирането на такива неща като добавяне на файл в ядрото, стартиране на файла, смяна на директорията и други с точност до индивидуалния потребител, група от потребители или роля от модела RC.

Като оставите горните модули, включете останалите и се уверете, че за всеки модул е включено само "ИМЕ-НА-МОДУЛ protection for AUTH module" и нищо повече.

След като всички настройки са окончателно направени, записваме конфигурацията и компилираме ядрото. Още от самото начало ще ви направи впечатление, че ще се компилират два вида ядра - едно с включени модули и едно стандартно. Първо компилирайте нормалното ядро, след това изключете опцията "RSBAC maintenance kernel" и без нищо повече да пипате, компилирайте ядрото с включени модули.

Все още подготвителният етап не е приключен. Разархивирайте програмите за администриране, компилирайте ги и ги инсталирайте. На системата ви ще бъде създадена директория/rsbac - това е начатъкът на базите данни за достъп до файловете. Ако се престараете с настройките, заредете нормално ядро и махнете оттук всички файлове с изключение на useraci. Това ще ви позволи да започнете отначало.

Важен момент: във версия 1.0.9b администраторските програми не създават директория rsbac. Вместо тях директорията създава самото ядро.

И така, имаме ядро, имаме програми. При първото зареждане ще ви залее море от несправедливи ругатни, като най-вече ще видите, че се стартират само услугите, които се пускат като root. Не се плашете, всичко е наред.

Първоначално трябва да се разберем с програмата login. Поблемът е, че login променя своя uid с uid-а на потребителя, който се удостоверява в системата, а както беше казано по-рано, модулът auth много строго следи за такива действия. За да разрешим този проблем, трябва да заредим ядрото с параметър rsbac_auth_enable_login. Сега в системата вече може да влиза всеки. Влизаме като secoff.



<< Въведение в RSBAC, част II | Не хвърляйте старите компютри >>