Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы администрирования и системного программирования в операционной системе Linux. В 2 частях. Ч.2. Учебное пособие.pdf
X
- •ВВЕДЕНИЕ
- •1. АДМИНИСТРИРОВАНИЕ СЕРВИСА LDAP
- •1.1. ПРОТОКОЛ LDAP
- •1.2. БАЗОВАЯ НАСТРОЙКА 389 DIRECTORY SERVER
- •1.3. РЕАЛИЗАЦИЯ РЕШЕНИЯ НА ОСНОВЕ FREEIPA
- •2. АДМИНИСТРИРОВАНИЕ СЕТЕВЫХ СЕРВИСОВСОВ МЕСТНОГО ИСПОЛЬЗОВАНИЯ ДАННЫХ
- •2.1. СЕТЕВАЯ ФАЙЛОВАЯ СИСТЕМА NFS
- •2.2. ФАЙЛОВАЯ СИСТЕМА SMB
- •2.3. РАЗВЁРТЫВАНИЕ И КОНФИГУРИРОВАНИЕ СЕТИ
- •3. АДМИНИСТРИРОВАНИЕ СЕРВИСА OPENVPN
- •3.1. ТЕХНОЛОГИЯ OPENVPN
- •3.2. ПРИНЦИП РАБОТЫ OPENVPN
- •3.3. РАЗВЁРТЫВАНИЕ И КОНФИГУРИРОВАНИЕ СЕТИ
- •4. АДМИНИСТРИРОВАНИЕ СИСТЕМЫ ИНСПЕКЦИИ ТРАФИКА DNS
- •4.1. ТИПОВЫЕ ОПЕРАЦИИ DNS
- •4.2. СПОСОБЫШИФРОВАНИЯ DNS-ТРАФИКА
- •4.3. ОТКРЫТЫЕ DNS-СЕРВЕРЫ
- •4.4. НАСТРОЙКА ZEEK
- •4.5. НАСТРОЙКА СТЕКА ELK
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

2.1.2. СТРУКТУРА ФАЙЛА EXPORTS
В системе Linux файл exports содержит список экспортированных каталогов в левом столбце и список связанных с ним параметров в правом. Список
файловых систем отделён от списка клиентов пробелом, и после имён каждого
клиента в скобках стоит список параметров, разделённых запятыми. Синтаксис
записей в файле exports имеет следующую структуру:
адрес_папки клиент(опции)
Файловые системы, перечисленные в файле exports без указания конкретных хостов, монтируются на всех компьютерах, что является значительной
брешью в системе безопасности.
К сожалению, нет способа указать несколько спецификаций клиентов для
одного набора параметров. Необходимо повторить параметры для всех желаемых клиентов.
Типы спецификаций клиента, которые могут указываться в файле exports:
− имя хоста;
− сетевая группа (записывается после знака @; используется редко);
− полностью определённые имена доменов (записывается с использова-
нием шаблонного символа *);
− IPv4-сеть (IPv4-адрес/маска);
− IPv6-сеть (IPv6-адрес/маска).
В таблице 2.1 представлены опции для экспорта файловых систем с помощью протокола NFS.
2.1. Основные опции экспорта файловых систем в Linux
Опция Описание
rw
ro
sync
Разрешить чтение и запись в этой папке
Разрешить только чтение
Отвечать на следующие запросы только тогда, когда
данные будут сохранены на диск (по умолчанию)
async
secure
insecure
Не блокировать подключения пока данные записываются на диск
Использовать для соединения только порты ниже 1024
Использовать любые порты
21

Опция Описание
Продолжение табл. 2.1
nohide
hide
root_squash
no_root_squash
all_squash
subtree_check
no_subtree_check
Не скрывать поддиректории при открытии доступа к
нескольким директориям (выявляет файловые системы,
смонтированные в дереве экспортированных файлов)
Противоположна по смыслу опции nohide
Подменять запросы от root на анонимные, используется
по умолчанию
Не подменять запросы от root на анонимные
Превращать все запросы в анонимные
Проверять не пытается ли пользователь выйти за пре-
делы экспортированной папки
Отключить проверку обращения к экспортированной
папке; улучшает производительность, но снижает безопасность, можно использовать, когда экспортируется
раздел диска
anonuid
anongid
noaccess
wdelay
no_wdelay
secure_locks
insecure_locks
pnfs
Указывает uid для анонимного пользователя
Указывает gid для анонимного пользователя
Блокировать доступ к данному каталогу и подкатало-
гам
Откладывать запись в ожидании объединения обновле-
ний
Немедленно записывать данные на диск
Требует авторизации для всех запросов на блокировку
Использует менее строгие критерии блокировки (под-
держивает старых клиентов)
Разрешить параллельные расширения NFS в версии
V4.1 для обеспечения прямого доступа клиентов
rерliсаs=путь@хост
Посылать клиентам список альтернативных сервером
для этого экспорта
22

2.1.3. КЛИЕНТСКАЯ ЧАСТЬ ПРОТОКОЛА NFS
Прежде чем начать работать с файловой системой NFS, клиент должен её
смонтировать, т.е. подключить удалённый раздел сервера в системе клиента.
Процессы монтирования сетевых и локальных файловых систем во многом схожи. При монтировании файловой системы необходимо воспользоваться командой mount. Полная команда при монтировании будет иметь следующий вид:
$ sudo mount –о список_флагов сервер:импортируемый_каталог расположение
Каталогу, расположенному на указанном устройстве, будет поставлен в
соответствие каталог локальной файловой системы. После окончания монтирования доступ к сетевой файловой системе осуществляется традиционными
средствами.
При завершении работы с монтируемым каталогом, рекомендуется его
размонтировать при помощи команды umount.
В таблице 2.2 перечислены флаги, используемые при монтировании файловой системы.
2.2. Флаги команды mount в системе Linux
Флаг Назначение
rw Монтирование файловой системы для чтения-записи (должна
экспортироваться сервером в режиме чтения-записи)
ro Монтирование файловой системы только для чтения
bg Если смонтировать файловую систему не удаётся (сервер не от-
вечает), следует перевести операцию в фоновый режим и продолжить обработку других запросов на монтирование
hard Если сервер отключился, операции, которые пытаются полу-
чить к нему доступ, блокируются до тех пор, пока сервер не
включится вновь
soft Если сервер отключился, операции, которые пытаются получить
к нему доступ, завершаются выдачей сообщения об ошибке
intr Позволяет прерывать с клавиатуры заблокированные операции
(будут выдаваться сообщения об ошибке)
nointr Не позволяет прерывать с клавиатуры заблокированные опера-
ции
23

Продолжение табл. 2.2
Флаг Назначение
nointr Не позволяет прерывать с клавиатуры заблокированные опера-
ции
retrans=n Указывает, сколько раз нужно повторить запрос, прежде чем
будет выдано сообщение об ошибке (для файловых систем,
смонтированных с флагом soft)
timeo=n Задаёт интервал тайм-аута для запросов (в десятых долях се-
кунды)
rsize=n Задаёт размер буфера чтения равным n байт
wsize=n Задаёт размер буфера записи равным n байт
sес=режим Задаёт режим безопасности
nfsvers=n Задаёт версию протокола NFS. Клиентская сторона NFS по
умолчанию пытается автоматически согласовать подходящую
версию протокола
При монтировании удалённого каталога с использованием протокола NFS
выполняются следующие операции:
1) на сервере и клиенте запускается RPC-сервер, обслуживанием которо-
го занимается процесс portmapper и регистрируется на порту tcp/111 и udp/111;
2) запускаются сервисы (rpc.nfsd, rpc.statd и др.), которые регистрируют-
ся на RPC сервере и регистрируются на произвольных сетевых портах (если в
настройках сервиса не задан статичный порт);
3) команда mount на компьютере клиента отправляет ядру запрос на
монтирование сетевого каталога с указанием типа файловой системы, хоста и
собственно – каталога, ядро формирует RPC-запрос процессу portmap на NFS
сервере на порт udp/111 (если на клиенте не задана опция работать через tcp);
4) ядро сервера NFS опрашивает RPC о наличии демона rpc.mountd и
возвращает ядру клиента сетевой порт, на котором работает демон;
5) утилита mount отправляет RPC запрос на порт, на котором работает
rpc.mountd. Теперь NFS сервер может проверить достоверность клиента, осно-
вываясь на его IP адресе и номере порта, чтобы убедиться, можно ли этому
клиенту смонтировать указанную файловую систему;
24

Рис. 2.1. Файл fstab
6) демон монтирования возвращает описание запрошенной файловой
системы;
7) команда mount клиента выдаёт системный вызов, чтобы связать опи-
сатель файла, полученный в шаге 5, с локальной точкой монтирования на хосте
клиента. Описатель файла хранится в коде NFS клиента, и с этого момента любое обращение пользовательских процессов к файлам на файловой системе
сервера будет использовать описатель файла как стартовую точку.
С помощью команды mount можно создавать лишь временные сетевые
точки монтирования. Файловые системы, которые являются частью постоянной
конфигурации, должны быть указаны в файле /etc/fstab, для того чтобы они автоматически монтировались на этапе начальной загрузки операционной системы. На рисунке 2.1 представлен пример, описывающий структуру файла fstab.
В данном примере элементы файла fstab предназначены для монтирования файловой системы /home, расположенной на компьютере monk. Параметры
монтирования файловой системы NFS задаёт поле flags в файле fstab. Это те же
самые параметры, которые указываются в команде mount.
2.1.4. ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ NFS-СЕРВЕРА
Этот протокол изначально не предполагал никаких мер безопасности, и
благодаря этому он был удобным. Версия NFSv4 устранила дефекты системы
безопасности, которые были присущи предыдущим версиям, обеспечив сильную поддержку службам безопасности и внедрив более совершенную идентификацию пользователей.
Все версии протокола NFS не зависят от механизма, обеспечивающего
безопасность работы в сети, и большинство серверов поддерживают разные
режимы аутентификации:
− AUTH_NONE – без аутентификации;
− AUTH_SYS – способ управления доступом для пользователей и групп;
− RPCSEC_GSS – строгий режим аутентификации, предполагающий це-
лостность и закрытость в дополнение к аутентификации.
В большинстве организаций применяется режим AUTH_SYS, который использует идентификаторы групп и пользователей в системе. В этой схеме при
запросе к серверу клиент просто посылает локальный идентификатор пользова-
25

теля и группы. Сервер сравнивает значения этих идентификаторов со значениями из своего файла /etc/passwd и определяет, следует ли предоставлять доступ данному пользователю. Таким образом, если два пользователя имеют одинаковые идентификаторы на двух разных клиентах, то они получат доступ ко
всем файлам друг друга. Более того, пользователи, имеющие права администратора системы, могут с помощью команды su установить любой идентификатор пользователя по своему усмотрению, после этого сервер предоставит им
доступ к соответствующим файлам.
Клиентам разрешается использовать любой ТСР- или UDР-порт для подключения к серверу NFS. Однако некоторые серверы могут требовать, чтобы
запросы поступали из привилегированного порта, для этого используется флаг
secure. Другие серверы позволяют выбирать порт по своему усмотрению. Однако применение привилегированных портов не приводит к реальному повышению безопасности системы.
Также существует дополнительный механизм аутентификации – протокол Kerberos в сочетании со слоем NFS RPSSEC GSS . Эта конфигурация требует от клиента и сервера совместного участия в работе механизма Kerberos. Механизм Kerberos аутентифицирует клиентов централизованно, тем самым предотвращая возможность самоидентификации, описанной выше. Кроме того,
протокол Kerberos обеспечивает сильное шифрование и гарантирует целостность файлов, передаваемых по сети.
2.2. ФАЙЛОВАЯ СИСТЕМА SMB
2.2.1. СЕРВЕРНАЯ ЧАСТЬ ПРОТОКОЛА SMB
Samba уже пару десятилетий используется для организации общего доступа к файлам и принтерам с разных устройств. Большое количество всевозможных опций пакета обеспечивает гибкость системы.
Пакет Samba настраивается в файле /etc/samba/smb.conf. В этом файле
указываются каталоги для совместного использования, их права доступа и общие рабочие параметры Samba. Пакеты Linux достаточно удобны тем, что в них
предоставляется хорошо документированный файл конфигурации Samba, который является хорошей отправной точкой для новых настроек.
Для большинства применений нужен только небольшой файл конфигурации. Для вывода списка всех параметров конфигурации Samba и их значений
используется команда testparm -v. Этот список включает настройки из файла
26

smb.conf, а также любые значения по умолчанию, которые администратор не
переопределил. После запуска пакет Samba проверяет свой файл конфигурации
каждые несколько секунд и загружает любые внесённые в него изменения, при
этом перезагрузка устройства не требуется.
Конфигурационный файл smb.conf разбит на разделы. Названия разделов
заключаются в прямоугольные скобки (например, [global], [homes]).
Раздел global определяет переменные, которые Samba будет использовать
для определения доступа ко всем ресурсам. В разделе global присутствуют следующие параметры:
− workgroup – рабочая группа. Для упрощения работы пользователей
WORKGROUP указывается как группа по умолчанию. Если в вашей сети имя
рабочей группы изменено, то следует изменить это значение и для Samba;
− security – уровень безопасности сервера. Значение user означает авто-
ризацию по паре логин/пароль;
− map to guest – параметр указывает, когда пользователю будет предос-
тавляться гостевой доступ. Доступно три значения: never – никогда, bad user –
когда такого пользователя не существует, bad password – когда пароль введён
неверно;
− log file – адрес файла, в котором будет записываться информация об
ошибках и др.;
− passdb backend – способ хранения паролей пользователей;
− wins support – включить или выключить поддержку WINS;
− dns proxy – возможность проксирования запросов к DNS.
Все остальные секции описывают отдельный ресурс сервера (например,
public, private).
Специальный раздел homes позволяет удалённым пользователям иметь
доступ к своим домашним директориям. Так что, если пользователи Windows
попытаются подключиться к этому разделу со своих Windows-машин, то они
будут подключены к своим персональным домашним директориям.
Отдельные записи в разделах указываются в соответствии с формулой
name = значение
Некоторые параметры разделов:
− path – полный путь до директории на жестком диске;
− guest ok – возможность доступа к каталогу без пароля (гостевой дос-
туп);
− browsable – даёт возможность, показывать ли каталог на сервере среди
прочих. Если установлен параметр no, то доступ будет возможен по полному
пути;
27

− force user – пользователь, от которого ведётся работа с каталогом.
Для повышения безопасности сервера, обычно используют nobody. Главное
не использовать пользователя root – это небезопасно;
− writable – значение параметра yes позволяет пользователю выполнять
действия над файлами внутри каталога – переименование, добавление, удаление, перемещение в подкаталог и копирование;
− valid users – список пользователей, у которых есть доступ к каталогу.
Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей, принадлежащих группе, перед именем
группы устанавливается символ @;
− security – режим аутентификации пользователей будет использовать
сервер Samba;
− hosts allow – список устройств, которым разрешено использовать ре-
сурс;
− hosts deny – список устройств, которым запрещено использовать ре-
сурс;
− socket options – параметры сетевого соединения;
− comment – комментарий ресурса, который будет выводиться в сетевом
браузере напротив имени ресурса.
2.2.2. КЛИЕНТСКАЯ ЧАСТЬ ПРОТОКОЛА SMB
Монтирование общих SМВ-ресурсов работает совсем не так, как это делается в других сетевых файловых системах. В частности, SМВ-тома монтируются конкретным пользователем, а не самой системой.
Для выполнения монтирования SМВ-ресурсов требуется локальное разрешение. Пользователю также нужен пароль для идентификации, который позволит удалённому SМВ-серверу разрешить доступ к общему ресурсу. Типичная командная строка в системе Linux для подключения монтирования SMBресурса выглядит следующим образом:
$ sudo mount -t cifs –о username=имя_пользователя //монтируемый
_раздел_сервера/ /каталог_пользователя/
В системе Windows монтирования сетевых ресурсов выполняются для
конкретного пользователя, тогда как в системе Linux они выполняются, как
правило, для всей системы в целом. Серверы Windows обычно не допускают,
чтобы несколько разных пользователей могли получить доступ к смонтированному общему ресурсу Windows.
28

С точки зрения клиента Linux все файлы в смонтированном каталоге принадлежат пользователю, который его смонтировал. Параметры монтирования
uid, gid, fmask и dmask можно настроить таким образом, чтобы права собственности и биты разрешений были более точно согласованы с предполагаемой политикой доступа для этого ресурса.
2.2.3. ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ
SMB-СЕРВЕРА
Важно помнить о влиянии безопасности на совместное использование
файлов и других сетевых ресурсов. Чтобы обеспечить базовый уровень безопасности для типичной организации, необходимо сделать две вещи:
1) явно указать, какие клиенты могут получить доступ к общим ресурсам
SМВ-сервера. Эта часть конфигурации задаётся параметром hosts allow в файле
smb.conf. Важно убедиться, что он содержит только необходимые IР-адреса,
диапазоны адресов или имена хостов. В файл smb.conf можно также включить
параметр настройки hosts deny, запрещающий конкретным устройствам использовать ресурсы сервера;
2) блокировать доступ к SМВ-серверу за пределами сети вашей органи-
зации. В пакете Samba используется шифрование только для аутентификации с
помощью пароля. В нём не используется шифрование для передачи данных.
Почти во всех случаях следует блокировать доступ извне сети организации,
чтобы пользователи случайно не загружали файлы в открытом виде через
Интернет. Блокировка обычно выполняется на уровне сетевого брандмауэра.
Пакет Samba использует UDР-порты 137 – 139 и ТСР-порты 137, 139 и 445.
2.3. РАЗВЁРТЫВАНИЕ И КОНФИГУРИРОВАНИЕ СЕТИ
2.3.1. СОЗДАНИЕ ТОПОЛОГИИ
Для имитации физической сети использована виртуальная машина. Топология сети была реализована на основе виртуальной машины Eve-NG. Получившаяся топология представлена на рис. 2.2 и полностью отражает все аспекты требуемой сети. Все дальнейшие действия будут проводиться над устройствами сети, реализованной в виртуальной машине.
29

Рис. 2.2. Реализация топологии в виртуальной машине Eve-NG
2.3.2. НАСТРОЙКА МАРШРУТИЗАТОРА
Выполним настройку маршрутизатора R1
Router>en
Router#conf t
Router(config)#hostname R1
R1(config)#int e0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#ex
R1(config)#int e0/1
30
R1(config-if)#ip add 192.168.2.1 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#ex
R1(config)#int e0/2
R1(config-if)#ip add 172.16.0.11 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#ex
R1(config)#int e0/3
R1(config-if)#ip add 172.16.10.1 255.255.255.0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
