скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Исследование уровня безопасности операционной системы Linux

2.   Техническая электронная документация по операционной системе Linux.


Приложение

ПРИМЕР 1.

Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Назначение – маршрутизатор.

Задача: удалить неиспользуемые регистрационные записи и добавить три записи. Необходимо добавить пользователей anna и pavel, а также одного пользователя с именем systemuser для системных нужд.

Реализация.

Изначально файл пользовательских регистрационных записей может иметь следующий вид:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

news:x:9:13:news:/etc/news:

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

rpm:x:37:37::/var/lib/rpm:/bin/bash

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

Из соображений безопасности следует удалить следующие неиспользуемые в данной конфигурации сервера системные записи: adm, lp, shutdown, halt, news, operator, games, gopher, ftp. Системная запись lp используется только в том случае, если к компьютеру подключен принтер. Настраиваемый компьютер выполняет функции маршрутизатора, следовательно эта регистрационная запись является лишней. Записи shutdown и halt позволяют обычным программам выключать компьютер, что для сервера является только дополнительной брешью в безопасности. Записи news, gopher и ftp используется в том случае, если сервер выполняет функции службы новостей, сервера GOPHER или FTP-сервера. Учетная запись games используется программами графического интерфейса, а поскольку последний отсутствует на маршрутизаторе, эта учетная запись тоже является лишней.

Для удаления пользователей необходимо для каждой учетной записи выполнить команду

userdel <имя_пользователя>

В реализации это будет выглядеть так:

[root@gw /]# userdel adm

[root@gw /]# userdel lp

[root@gw /]# userdel shutdown

[root@gw /]# userdel halt

[root@gw /]# userdel news

[root@gw /]# userdel operator

[root@gw /]# userdel games

[root@gw /]# userdel gopher

[root@gw /]# userdel ftp

Первая часть поставленной задачи выполнена. Далее необходимо добавить указанных пользователей.

[root@gw /]# useradd –m –s /bin/bash –c ‘Normal User’ –d /home/pavel –g users pavel

[root@gw /]# useradd –m –s /bin/bash –c ‘Normal User’ –d /home/pavel –g users anna

[root@gw /]# useradd –r –s /sbin/nologin –c ‘System User’ –d /var/empty systemuser

Приведенные команды создают в системе указанных пользователей, однако, для входа в систему обычным пользователям дополнительно ко всему следует задать еще и пароль. Это выполняют приведенные ниже команды.

[root@gw /]# passwd anna

Changing password for user anna.

New password: <ввод_пароля>

Retype new password: <повтор_ввода_пароля>

passwd: all authentication tokens updated successfully.

[root@gw /]# passwd pavel

Changing password for user pavel.

New password: <ввод_пароля>

Retype new password: <повтор_ввода_пароля>

passwd: all authentication tokens updated successfully.

В результате произведенных действий система будет содержать все необходимые для нормального функционирования системные регистрационные записи, а также двух пользователей anna и pavel, которые смогут заходить и работать в системе.

ПРИМЕР 2.

Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Назначение – сервер приложений. Программное обеспечение – web-сервер Apache, FTP-сервер Proftpd. Web-сервер выполняется от имени системного пользователя nobody, FTP-сервер – от имени системного пользователя ftpuser. Оба пользователя входят в группу nogroup. На сервере работает web-портал, имеющий распределенную структуру. Весь портал делится на 2 части: администрируемую часть – динамические данные и неадминистрируемую часть – статические данные или оболочка. Администрирование динамической части может осуществляться как с помощью протокола FTP, так и с помощью специально разработанного web-интерфейса. Статические данные может изменять только привилегированный пользователь и только с помощью терминального доступа.

Задача: настройка защищенной конфигурации web-портала с использованием средств разграничения прав доступа.

Реализация.

Допустим, что все файлы объекта защиты, то есть web-портала, находятся в директории /www. В свою очередь, директория /www содержит каталоги ftp и html: первый – для хранения и доступа к файлам по FTP протоколу, второй – для доступа к файлам по протоколу HTTP. Для обеспечения эффективной защиты файлы, находящиеся в каталоге /www, должны иметь доступ только на чтение для пользователей nobody и ftpuser. Файлы, находящиеся в каталоге /www/ftp, должны быть доступны на чтение и на запись как пользователю ftpuser, так и пользователю nobody. В свою очередь, файлы каталога /www/html должны быть доступны только пользователю nobody и с правами только на чтение. Привилегированный пользователь всегда имеет право на чтение и на запись, независимо от прав доступа, установленных для файла.

Учитывая, что оба пользователя nobody и ftpuser принадлежат одной группе nogroup, права на каталог /www могут быть установлены следующим образом:

[root@app /]# chmod 050 /www

[root@app /]# chown root:nogroup /www

[root@app /]# ls –l

d---r-x---    1  root  nogroup  4096  Фев 7    19:48   www

Первая команда устанавливает права только на чтение и вход в каталог для пользователей группы-владельца каталога. Вторая команда меняет группу-владельца каталога на группу nogroup. Третья команда позволяет просмотреть сделанные изменения. Как видно из результата выполнения третьей  команды, каталог www теперь имеет права доступа для группы только на чтение и вход, для пользователя-владельца и всех остальных какие-либо права отсутствуют вообще.

Теперь, когда доступ в каталог www имеют оба системных пользователя, необходимо разграничить права на внутренние каталоги www.

[root@app www]# chown –R ftpuser:nogroup /www/ftp

[root@app www]# chmod –R o-rwx /www/ftp

[root@app www]# chmod –R ug+rw /www/ftp

[root@app www]# chown –R nobody:root /www/html

[root@app www]# chmod –R go-rwx /www/html

[root@app www]# chmod –R u+r /www/html

[root@app www]# ls –l /www

drwxrwx---    1  ftpuser nogroup 4096  Фев 7 19:55  ftp

dr-x------    1  nobody  root    4096  Фев 7 20:01  html

Первая команда меняет группу-владельца и пользователя-владельца для каталога ftp, вторая – отменяет все права на операции с файлами для всех остальных, третья – добавляет права на чтение и запись для пользователя-владельца и группы-владельца. Ключ –R позволяет рекурсивно изменить параметры у текущего каталога и всех подкаталогов и файлов, хранящихся в нем. Следующая команда “chown –R nobody:root /www/html” позволяет изменить пользователя-владельца для каталога html и всех его подкаталогов и файлов на пользователя nobody. Команда “chmod –R go-rwx /www/html” отменяет все права для группы-владельца и всех остальных. Далее команда “chmod –R u+r /www/html” устанавливает права только на чтение для пользователя-владельца. Последняя команда выводит результат выполненных операций на экран. Задача выполнена!

Следует сделать маленькое замечание: все вышеприведенное верно только в том случае, если маска создания файла по умолчанию при создании каталогов и файлов была определена как 022 (umask 022). В противном случае действия, которые необходимо предпринять для установки необходимых прав доступа, зависят от конкретных настроек системы.

ПРИМЕР 3.

Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Программное обеспечение – пакет lcap. В данном случае функциональное назначение сервера существенной роли не играет.

Задача: произвести настройку комплексной защиты сервера с использованием расширенных атрибутов (в частности, с помощью атрибута immutable).

Реализация.

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

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

/boot /etc – в окончательно настроенной системе содержимое этих каталогов изменяться не должно. За редким исключением содержимое каталога /etc может меняться при перенастройке каких-либо программ или сервисов.

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

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

/lib – каталог системных библиотек, которые также могут быть изменены только при обновлении программных продуктов.

Следующие команды позволяют установить атрибут immutable для вышеперечисленных директорий и для всех файлов, находящихся в них.

[root@app /]# chattr –R +i /boot /etc /bin /sbin /lib

[root@app /]# lsattr

---i---------- ./boot

---i---------- ./etc

-------------- ./root

---i---------- ./bin

-------------- ./initrd

---i---------- ./lib

---i---------- ./sbin

Параметр –R как и в предыдущих примерах используется для рекурсивной установки атрибута для всех файлов и каталогов, расположенных ниже в иерархии.

Каталог /usr имеет свою собственную иерархию. В этой иерархии следующие каталоги должны иметь установленный флаг immutable:

/usr/bin /usr/sbin /usr/lib /usr/local/bin /usr/local/sbin /usr/local/lib – перечисленные каталоги имеют то же значение, что и одноименные каталоги корневой иерархии.

/usr/include /usr/local/include – оба каталога содержит заголовочные файлы для компилируемых программ. Заголовочные файлы не должны изменяться ни при каких условиях, ну разве только тогда, когда компьютер используется для разработки программного обеспечения и в заголовочные файлы вносятся изменения.

[root@app /]# chattr –R +i /usr/bin /usr/sbin /usr/lib /usr/include

[root@app /]# lsattr /usr

-------------- /usr/lost+found

---i---------- /usr/bin

---i---------- /usr/lib

-------------- /usr/libexec

---i---------- /usr/sbin

---i---------- /usr/include

-------------- /usr/local

---i---------- /usr/src

В завершение всех операций можно выполнить программу lcap с параметрами CAP_LINUX_IMMUTABLE и CAP_SYS_RAWIO:

[root@app /]# lcap CAP_LINUX_IMMUTABLE

[root@app /]# lcap CAP_SYS_RAWIO

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

Приведенный пример, опять же, является не всегда применимым, все зависит от конкретной конфигурации системы и конкретных условий ее эксплуатации.

ПРИМЕР 4.

Исходные данные: ОС Linux RedHat 7.3 без графической оболочки. Назначение  - сервер приложений. Программное обеспечение – ядро версии 2.4.20, собранное с поддержкой пользовательских квот, пакет quota-3.11. Для пользовательских каталогов выделен отдельный раздел /dev/hda3 объемом 25 Гбайт, смонтированный в директории /home.

Задача: организовать разделение дискового пространства между пользователями с использованием механизма квот. Каждому пользователю необходимо выделить по 10 Мбайт дискового пространства с максимальным количеством возможных файлов – 1000.

Реализация.

Пользовательские квоты распространяются на отдельный раздел жесткого диска и активизируются при загрузке системы. Для включения поддержки квот необходимо в файле /etc/fstab для раздела /home добавить параметр usrquota или grpquota, или оба этих параметра, если нужна поддержка квоты для пользователей и групп одновременно. В данном случае для реализации поставленной задачи необходим только параметр usrquota.

Строка файла /etc/fstab, относящаяся к разделу /home, после изменения может иметь следующий вид:

/dev/hda3     /home    ext2     default,usrquota        1  2

Поскольку версии ядер начиная с ветки 2.4 поддерживают новый формат пользовательских квот, который обладает некоторыми преимуществами перед старой версией, использование новой версии будет намного целесообразнее. Вся последующая настройка производится с этим учетом.

Для активации пользовательских квот необходимо перезагрузить систему. При загрузке необходимо выполнить проверку квотируемого раздела, что можно сделать запуском программы quotacheck, а также включить механизм квот выполнением программы quotaon. Эти обе программы имеют множество параметров командной строки, о которых можно узнать из man-руководств, входящих в пакет quota. Стандартная строка запуска этих программ, которая подходит для большинства систем, может иметь вид:

quotacheck –aug

quotaon –aug

Параметр командной строки –a сообщает программе, что необходимо выполнить проверку всех файловых систем, перечисленных в файле fstab, на которых включена поддержка квот, и которые не являются файловыми системами NFS. Параметр –u указывает выполнить проверку квот для пользователей на разделах, перечисленных в файле /etc/mtab. Файл /etc/mtab модифицируется при монтировании и размонтировании любой файловой системы и содержит все файловые системы, смонтированные на текущий момент. Параметр –g выполняет ту же функцию, что и параметр –u, но только для групп. Последний параметр не имеет значения, если квота включена только для пользователей, но, чтобы в дальнейшем при изменении конфигурации не возникало проблем, рекомендую добавлять этот параметр.

Желательно сделать так, чтобы механизм квот активировался сразу после монтирования файловых систем. Монтирование  файловых систем при запуске Linux RedHat выполняется в файле /etc/rc.d/init.d/rc.sysinit. В том же файле сразу после монтирования следует код, который запускает программы quotacheck и quoaton с указанными параметрами, если они присутствуют в системе. Следовательно, для Linux RedHat добавлять код запуска программ не нужно, поскольку он уже присутствует по умолчанию. Для других версий ОС Linux этот код, возможно, придется добавлять вручную.

Во время загрузки системы программа quotacheck выполнит проверку файловых систем с включенными квотами на наличие файлов квот и, если файлы отсутствуют, quotacheck создаст их в корневом каталоге этой файловой системы. В данном случае в каталоге /home появится файл aquota.user, в котором будет храниться информация о пользовательских квотах.

Далее, используя программу setquota, необходимо выполнить настройку квот для каждого пользователя, имеющего домашний каталог в разделе /home. Это можно сделать командой:

[root@app /]# setquota –u <имя_пользователя> 10240 0 1000 0 /dev/hda3

Приведенная команда установит ограничение дискового пространства в 10 Мбайт с максимальным количеством возможных файлов – 1000 для указанного пользователя. Для пользователя anna эта команда будет иметь вид:

[root@app /]# setquota –u anna 10240  0  1000  0  /dev/hda3

Если квота остальных пользователей должна быть идентична приведенной, что как раз и требуется для реализации, квоту пользователя anna можно использовать как шаблон. Далее при создании квоты для пользователя igor   параметры квотирования пользователя anna просто копируются:

[root@app /]# setquota –u –p anna igor /dev/hda3

В результате выполнения команды пользователь igor получает те же настройки квоты, что и пользователь anna, в данном случае ему выделяется 10 Мбайт на хранение 1000 файлов. Вышеприведенную команду необходимо выполнить для всех пользователей системы.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.