Перед тем как начать
Кроме машины, которую вы используете для чтения данного руководства, вам необходима старая инсталляция Linux, которую вам не жалко сломать, желательно с диском для восстановления системы на случай, если что-то пойдет не так. Если на этой машине у вас есть какие-то ценные для вас данные (даже если вы, следуя данному руководству, экспериментируете с другим разделом или отдельным накопителем, используя мультизагрузку), прежде чем пробовать какой-нибудь из описанных здесь методов, сделайте полную резервную копию этих данных и проверьте ее.
С точки зрения менеджера, отвечающего за инсталляцию или поддержку, возможность модификации — это основной источник проблем Linux; всякий, кто отвечал за любую систему среднего или большого размера, не понаслышке знает об этой опасности. Дополнительные приложения, настройки и инсталляции неизвестного программного обеспечения могут серьезно модифицировать любую машину. Этот цикл статей предназначен для тех, кто всегда хотел иметь возможность безболезненно устанавливать обширную Linux-среду, охватывающую целое предприятие, и управлять ею.
В этом руководстве приведено несколько хороших доводов в пользу контролируемой настройки Linux и предлагается ряд разумных действий, направленных на ограничение стандартного дистрибутива Linux с целью предотвращения нежелательных пользовательских изменений базовой инсталляции. Тут же закладывается фундамент для 2-й части этой серии, которая завершает процесс внесения ограничений построением ядра, вынуждающего использовать только указанный двоичный код, который предоставляется контролируемым образом каждой поддерживаемой машине.
Из этого руководства вы узнаете о проблемах безопасности, которые следует учитывать при широкомасштабной инсталляции Linux, и о том, как предотвратить их возникновение еще до того, как потребуются дополнительные усилия по их исправлению. В первую очередь вы узнаете, как настроить оборудование и встроенное ПО для предотвращения вмешательства на фундаментальном уровне; в завершение вы уберете стандартные интерпретаторы Linux для минимизации риска того, что пользователи запустят непроверенный код в вашей защищенной среде. К моменту завершения знакомства с этим циклом вы сможете сконфигурировать защищенный дистрибутив Linux промышленного масштаба, в который невозможно будет добавить какие-либо приложения без вашей персональной проверки и разрешения.
Это руководство написано для администраторов Linux, чьи навыки и опыт находятся на уровне от среднего до высокого. Вы должны быть хорошо знакомы с процессом загрузки Linux, уверенно управляться с командной строкой и обладать практическими знаниями языка программирования C.
Чтобы пройти все ступени этого пособия, на Linux-машине вам необходимо иметь права доступа пользователя root с возможностью принудительной перезагрузки и уничтожения всех данных, хранящихся на этой машине. У вас должен быть установлен компилятор и должна быть возможность достать исходники и заголовки ядра вашего дистрибутива Linux, а также исходный код программ из этого руководства (имеется в разделе Загрузка) и свободно распространяемая утилита dash для вашей разновидности Linux. (Вы можете воспользоваться
версией dash
Debian Linux,
версией dash Ubuntu Linux
или любой версией, подходящей для вашего дистрибутива Linux.)
Во время разработки этого руководства я использовал Ubuntu Linux V6.10, установленный с инсталляционного СD, хотя, за исключением мелочей, подойдет любой дистрибутив Linux, который вам удобен. Если у вас есть доступ к VMware и вы не собираетесь изучать разделы об оборудовании и встроенном ПО, утилита snapshot от Vmware облегчит ваши эксперименты, так как вы всегда сможете вернуть систему назад к последнему хорошему состоянию, на какой бы стадии ни прервалась загрузка Linux, не используя диск восстановления для диагностики и устранения проблемы.