Литера О
Подп. и дата
Инв. № дубл.
Взам. инв. №
Подп. и дата
Инв. № подл.
УТВЕРЖДЕН
ЛКНВ.11100-01 90 02-ЛУ
ОПЕРАЦИОННАЯ СИСТЕМА АЛЬТ 8 СП
(ОС Альт 8 СП)
Руководство администратора
ЛКНВ.11100-01 90 02
Листов 479
2020
2
ЛКНВ.11100-01 90 02
АННОТАЦИЯ
Настоящий документ содержит инструкции по установке и эксплуатации
программного изделия (ПИ) «Операционная система Альт 8 СП» (ОС Альт 8 СП) на
процессорах архитектуры Эльбрус.
Версия документа 1.4.
Документ предназначен для администратора ОС Альт 8 СП и содержит общие
сведения об ОС Альт 8 СП, ее общей структуре, настройке, проверке, контрольных
характеристиках развертывания и сообщениях администратору.
Также в документе приведены сведения, необходимые для выполнения
операций администрирования:
- установки и начального конфигурирования ОС Альт 8 СП;
- конфигурирования параметров даты и времени, графической среды, средств
ввода и вывода;
- конфигурирования сетей и сетевых служб;
- управления учетными записями и правами доступа пользователей;
- управления системными сервисами и служебными программами;
- настройки специализированного программного обеспечения;
- обновления программного обеспечения;
- просмотра системных журналов;
- управления автозапуском приложений;
- управления параметрами печати;
- работы с носителями информации;
- работы с руководствами, различными документами и дополнительными
средствами.
3
ЛКНВ.11100-01 90 02
СОДЕРЖАНИЕ
1. Общие сведения об ОС Альт 8 СП .......................................................................... 15
Назначение и функции ОС Альт 8 СП ............................................................. 15
Уровень подготовки администратора .............................................................. 16
2. Структура ОС Альт 8 СП.......................................................................................... 17
2.1.1. Ядро ОС Альт 8 СП ..................................................................................... 18
2.1.2. КСЗ ................................................................................................................ 19
2.1.3. Системные библиотеки ............................................................................... 22
2.1.4. Серверные программы и приложения ....................................................... 22
2.1.5. Прочие системные приложения ................................................................. 22
2.1.6. Программы веб-серверов ............................................................................ 23
2.1.7. Интерактивные рабочие среды .................................................................. 23
2.1.8. Командные интерпретаторы ...................................................................... 23
2.1.9. Графическая оболочка MATE .................................................................... 24
2.1.10. Системы управления базами данных ...................................................... 24
2.1.11. Электронные справочники ....................................................................... 24
3. Подготовительные процедуры ................................................................................. 25
Настройка безопасной конфигурации компьютера ........................................ 25
3.1.1. Процедура верификации ............................................................................ 25
3.1.2. Настройка среды функционирования ....................................................... 25
Настройка опций безопасности ........................................................................ 27
Описание механизмов устранения идентифицированных скрытых
каналов ........................................................................................................................ 29
4. Функции и задачи администрирования ОС Альт 8 СП ......................................... 34
Функции администратора .................................................................................. 34
Задачи администрирования ............................................................................... 34
5. Установка ОС Альт 8 СП.......................................................................................... 36
Начало установки: загрузка системы ............................................................... 36
5.1.1. Способы первоначальной загрузки ........................................................... 36
4
ЛКНВ.11100-01 90 02
5.1.2. Загрузка системы ......................................................................................... 37
Последовательность установки ........................................................................ 39
5.2.1. Язык .............................................................................................................. 40
5.2.2. Подтверждение согласия ............................................................................ 41
5.2.3. Дата и время ................................................................................................. 42
5.2.4. Подготовка диска ........................................................................................ 45
5.2.5. Установка системы ...................................................................................... 53
5.2.6. Сохранение настроек .................................................................................. 56
5.2.7. Настройка сети ............................................................................................ 58
5.2.8. Администратор системы ............................................................................ 59
5.2.9. Системный пользователь ............................................................................ 61
5.2.10. Завершение установки .............................................................................. 62
6. Начало использования ОС Альт 8 СП ..................................................................... 64
Использование кабеля RS232 (COM) для подключения к консоли .............. 64
Запуск ОС ............................................................................................................ 65
Получение доступа к зашифрованным разделам ............................................ 66
Вход в систему .................................................................................................... 66
6.4.1. Идентификация и аутентификация в графической оболочке MATE .... 66
6.4.2. Идентификация и аутентификация в консольном режиме ..................... 69
6.4.3. Виртуальная консоль .................................................................................. 70
Блокирование сеанса доступа ........................................................................... 70
6.5.1. Блокирование сеанса доступа после установленного времени
бездействия (неактивности) пользователя или по его запросу ........................ 70
6.5.2. Блокировка виртуальных текстовых консолей ........................................ 71
6.5.3. Настройка блокировки возможности пользователя изменять
настройки блокировки системы ........................................................................... 71
Завершение работы ОС ...................................................................................... 72
6.6.1. Графический режим .................................................................................... 73
6.6.2. Консольный режим ..................................................................................... 73
6.6.3. Настройки завершения сеанса пользователя ............................................ 73
5
ЛКНВ.11100-01 90 02
Выключение/перезагрузка компьютера ........................................................... 74
6.7.1. Графический режим .................................................................................... 74
6.7.2. Консольный режим ..................................................................................... 74
Утилита уничтожения информации при удалении dm-secdel .................... 74
7. Настройки системы ................................................................................................... 77
Центр управления системой .............................................................................. 77
7.1.1. Графический интерфейс ............................................................................. 78
7.1.2. Веб-интерфейс ЦУС .................................................................................... 79
7.1.3. Установка и удаление модулей ЦУС ........................................................ 82
7.1.4. Права доступа к модулям ЦУС .................................................................. 82
7.1.5. Получение справочной информации ........................................................ 84
Выбор программ, запускаемых автоматически при входе в систему ........... 85
7.2.1. Вкладка автоматического запуска программ ........................................... 85
7.2.2. Вкладка настроек сессии ............................................................................ 86
Задание хешей паролей ...................................................................................... 87
Настройка разграничения доступа к подключаемым устройствам .............. 88
7.4.1. Общие сведения ........................................................................................... 88
7.4.2. Ограничения при помощи правил udev .................................................... 88
7.4.3. Управление монтированием блочных устройств .................................... 91
7.4.4. Настройка ограничений в веб-интерфейсе ЦУС (alterator-ports-
access) ..................................................................................................................... 91
Настройка фильтрации пакетов с помощью утилиты iptables ...................... 94
7.5.1. Устройство фильтра iptables ...................................................................... 94
7.5.2. Встроенные таблицы фильтра iptables ...................................................... 96
7.5.3. Команды утилиты iptables .......................................................................... 97
7.5.4. Ключи утилиты iptables .............................................................................. 99
7.5.5. Основные действия над пакетами в фильтре iptables ............................ 100
7.5.6. Основные критерии пакетов в фильтре iptables ..................................... 102
7.5.7. Модули iptables .......................................................................................... 104
7.5.8. Использование фильтра iptables .............................................................. 108
6
ЛКНВ.11100-01 90 02
7.5.9. Примеры команд iptables .......................................................................... 108
Настройка экспорта аудита на удаленный узел ............................................ 113
Настройка системы сигнализации на основе nagios ..................................... 115
7.7.1. Настройка сервера мониторинга ............................................................. 115
7.7.2. Настройка удаленных узлов (клиенты) .................................................. 116
7.7.3. Добавление удаленных узлов для мониторинга (сервер) ..................... 119
7.7.4. Тестирование системы мониторинга ...................................................... 123
7.7.5. Nagstamon ................................................................................................... 125
8. Средства удаленного администрирования, организация сетевой
инфраструктуры с помощью сервера ........................................................................ 129
Вход в систему .................................................................................................. 129
Развертывание офисной ИТ-инфраструктуры .............................................. 129
8.2.1. Подготовка ................................................................................................. 129
8.2.2. Домен .......................................................................................................... 129
8.2.3. Сервер, рабочие места и аутентификация .............................................. 130
Развертывание доменной структуры .............................................................. 131
Централизованная база пользователей .......................................................... 132
8.4.1. Создание учетных записей пользователей ............................................. 132
8.4.2. Объединение пользователей в группы .................................................... 134
8.4.3. Настройка учетной записи ....................................................................... 136
8.4.4. Привязка групп .......................................................................................... 136
8.4.5. Настройка рабочей станции ..................................................................... 137
Настройка подключения к Интернету ............................................................ 138
8.5.1. Конфигурирование сетевых интерфейсов .............................................. 139
8.5.2. Настройка общего подключения к сети Интернет ................................ 142
8.5.3. Автоматическое присвоение IP-адресов (DHCP-сервер) ...................... 147
Настройка сети – NetworkManager ................................................................. 149
Настройка сети – набор пакетов /etc/net ........................................................ 150
8.7.1. Устройство /etc/net .................................................................................... 150
8.7.2. Быстрая настройка сетевого интерфейса стандарта Ethernet ............... 154
7
ЛКНВ.11100-01 90 02
8.7.3. Настройка ifplugd ...................................................................................... 155
8.7.4. Настройка PPtP-интерфейса и PPPoE-интерфейса ................................ 155
8.7.5. Команды сервиса network ......................................................................... 156
8.7.6. Протоколы конфигурации адресов.......................................................... 157
8.7.7. Расширенные возможности /etc/net ......................................................... 158
8.7.8. Настройка сетевого экрана в /etc/net ....................................................... 171
Сетевая установка ОС на рабочие места ....................................................... 179
8.8.1. Подготовка сервера ................................................................................... 179
8.8.2. Подготовка рабочих станций ................................................................... 182
Сервер электронной почты (SMTP, POP3/IMAP) ......................................... 182
8.9.1. Сервер электронной почты ...................................................................... 182
8.9.2. Сервер SMTP ............................................................................................. 183
8.9.3. Сервер POP3/IMAP ................................................................................... 183
Cервер электронной почты postfix ............................................................... 184
8.10.1. Утилиты командной строки ................................................................... 185
8.10.2. Первичная настройка .............................................................................. 187
8.10.3. Работа в режиме SMTP-сервера............................................................. 188
8.10.4. SMTP-аутентификация ........................................................................... 188
8.10.5. Триггеры ограничений ............................................................................ 193
8.10.6. Алиасы и преобразование адресов ........................................................ 197
8.10.7. Настройка ограничений размера почтового ящика и отправляемого
сообщения ............................................................................................................ 197
Соединение удаленных офисов (OpenVPN) ................................................ 198
8.11.1. Общие сведения об OpenVPN ................................................................ 198
8.11.2. Настройка OpenVPN-сервера в ЦУС .................................................... 200
8.11.3. Настройка клиентов в ЦУС .................................................................... 204
8.11.4. Конфигурирование openvpn ................................................................... 206
8.11.5. Создание ключей для OpenVPN туннеля средствами утилиты
openssl ................................................................................................................... 208
8.11.6. Создание списка отзыва сертификатов ................................................. 211
8
ЛКНВ.11100-01 90 02
8.11.7. Создание ключей для OpenVPN туннеля средствами Easy-Rsa
скриптов ............................................................................................................... 212
8.11.8. Отзыв сертификатов................................................................................ 215
Настройка удаленного подключения ........................................................... 216
8.12.1. OpenSSH, сервер протокола SSH (sshd) ................................................ 217
8.12.2. SSHD_CONFIG ........................................................................................ 230
Прокси-сервер (Squid) .................................................................................... 243
8.13.1. Настройка прозрачного доступа через прокси-сервер ........................ 243
8.13.2. Фильтрация доступа ................................................................................ 244
8.13.3. Авторизация доступа .............................................................................. 244
8.13.4. Кэширование данных .............................................................................. 245
8.13.5. Настройка режима работы в качестве обратного прокси-сервера ..... 245
8.13.6. Сбор статистики и ограничение полосы доступа ................................ 246
8.13.7. Кеширование DNS-запросов .................................................................. 247
Доступ к службам из сети Интернет ............................................................ 247
8.14.1. Внешние сети ........................................................................................... 247
8.14.2. Список блокируемых хостов .................................................................. 248
Статистика ....................................................................................................... 249
Обслуживание системы ................................................................................. 251
8.16.1. Мониторинг состояния системы ............................................................ 251
8.16.2. Системные службы ................................................................................. 252
8.16.3. Резервное копирование ........................................................................... 253
8.16.4. Обновление системы ............................................................................... 256
8.16.5. Локальные учетные записи .................................................................... 257
8.16.6. Администратор системы ........................................................................ 260
8.16.7. Дата и время ............................................................................................. 260
8.16.8. Ограничение использования диска ....................................................... 261
8.16.9. Выключение и перезагрузка компьютера ............................................. 262
9. Корпоративная инфраструктура ............................................................................ 265
Samba ................................................................................................................. 265
9
ЛКНВ.11100-01 90 02
9.1.1. Samba 4 в роли контроллера домена Active Directory ........................... 267
9.1.2. Samba в режиме файлового сервера ........................................................ 278
9.1.3. Принт-сервер на CUPS ............................................................................. 287
9.1.4. Некоторые вопросы безопасности........................................................... 288
Ввод рабочей станции в домен Active Directory ........................................... 289
9.2.1. Подготовка ................................................................................................. 289
9.2.2. Ввод в домен .............................................................................................. 291
9.2.3. Проверка работы ....................................................................................... 292
9.2.4. Вход пользователя ..................................................................................... 293
9.2.5. Отображение глобальных групп на локальные ..................................... 293
9.2.6. Подключение файловых ресурсов ........................................................... 294
Групповые политики ........................................................................................ 296
9.3.1. Механизмы назначения и кеширования ................................................. 296
9.3.2. Конфигурирование с помощью ЦУС ...................................................... 308
9.3.3. Состав ......................................................................................................... 308
9.3.4. Ошибки ....................................................................................................... 309
Настройка FreeIPA ........................................................................................... 312
9.4.1. Добавление новых пользователей домена .............................................. 312
9.4.2. Ввод рабочей станции в домен FreeIPA установка клиента и
подключение к серверу ....................................................................................... 314
Настройка служб DNS (Bind) .......................................................................... 319
9.5.1. Общие сведения ......................................................................................... 319
9.5.2. Уменьшение времени ответа на DNS-запрос абонентов внутренней
сети ........................................................................................................................ 320
9.5.3. Именование компьютеров в интранет-сети ............................................ 321
9.5.4. Примеры использования DNS-сервера Bind .......................................... 321
Система мониторинга Zabbix .......................................................................... 328
9.6.1. Установка сервера PostgreSQL ................................................................ 328
9.6.2. Установка Apache2 .................................................................................... 329
9.6.3. Установка PHP ........................................................................................... 329
10
ЛКНВ.11100-01 90 02
9.6.4. Установка и настройка Zabbix-сервера ................................................... 329
9.6.5. Установка веб-интерфейса Zabbix ........................................................... 330
9.6.6. Установка Zabbix-агента (клиента) ......................................................... 333
9.6.7. Добавление нового хоста на Zabbix-сервере .......................................... 333
9.6.8. Авторегистрация узлов ............................................................................. 336
10. Функциональные возможности ОС ..................................................................... 338
Управление системными сервисами и командами ..................................... 338
10.1.1. Сервисы .................................................................................................... 338
10.1.2. Команды ................................................................................................... 339
Администрирование многопользовательской и многозадачной среды ... 342
10.2.1. Команда who ............................................................................................ 342
10.2.2. Команда ps ............................................................................................... 344
10.2.3. Команда nohup ......................................................................................... 348
10.2.4. Команда nice ............................................................................................ 349
10.2.5. Команда renice ......................................................................................... 350
10.2.6. Команда kill и killall ................................................................................ 351
Основные утилиты для операций с файлами и каталогами ....................... 353
10.3.1. Команда ls ................................................................................................ 353
10.3.2. Команда cp ............................................................................................... 357
10.3.3. Команда rsync .......................................................................................... 358
10.3.4. Команда mv .............................................................................................. 359
10.3.5. Команда dd ............................................................................................... 359
10.3.6. Команда s_rm ........................................................................................... 360
10.3.7. Команда s_fill ........................................................................................... 360
10.3.8. Команда cd ............................................................................................... 361
10.3.9. Команда pwd ............................................................................................ 361
10.3.10. Команда mkdir ....................................................................................... 361
10.3.11. Команда rmdir ........................................................................................ 362
10.3.12. Команда mount ....................................................................................... 362
Создание, просмотр и редактирование файлов ........................................... 363
11
ЛКНВ.11100-01 90 02
10.4.1. Команда cat .............................................................................................. 363
10.4.2. Команда less ............................................................................................. 364
10.4.3. Команда echo ........................................................................................... 364
10.4.4. Команда grep ............................................................................................ 365
10.4.5. Команда touch .......................................................................................... 365
10.4.6. Команда mknod ........................................................................................ 366
Поиск файлов .................................................................................................. 367
10.5.1. Команда find............................................................................................. 367
10.5.2. Команда whereis....................................................................................... 369
Средства архивирования файлов .................................................................. 370
10.6.1. Команда tar ............................................................................................... 370
10.6.2. Команда cpio ............................................................................................ 371
Средства редактирования файлов................................................................. 372
10.7.1. Текстовый редактор Vi ........................................................................... 372
10.7.2. Редактор Vim ........................................................................................... 376
Средства настройки отложенного исполнения команд.............................. 382
10.8.1. Служба crond ............................................................................................ 382
10.8.2. Команда at ................................................................................................ 387
10.8.3. Команда batch .......................................................................................... 389
Служба передачи файлов FTP ....................................................................... 390
Защищенный интерпретатор команд SSH ................................................. 390
Средство управления процессами xinetd ................................................... 391
Работа со смарт-картами ............................................................................. 395
10.12.1. Двухфакторная аутентификация ......................................................... 395
Поддержка файловых систем ...................................................................... 397
Поддержка сетевых протоколов ................................................................. 398
10.14.1. SMB......................................................................................................... 398
10.14.2. NFS .......................................................................................................... 398
10.14.3. FTP .......................................................................................................... 400
10.14.4. NTP ......................................................................................................... 405
12
ЛКНВ.11100-01 90 02
10.14.5. HTTP(S) .................................................................................................. 407
Виртуальная (экранная) клавиатура ........................................................... 407
10.15.1. Клавиатура onboard при входе в систему ........................................... 408
10.15.2. Клавиатура onboard при разблокировке экрана ................................. 408
10.15.3. Настройки onboard ................................................................................ 409
Управление печатью .................................................................................... 410
10.16.1. Устройство CUPS .................................................................................. 410
10.16.2. Установка принтера .............................................................................. 420
10.16.3. Настройка сервера печати для сети ..................................................... 423
10.16.4. Команды управления печатью ............................................................. 424
Управление базами данных ......................................................................... 428
10.17.1. Состав ..................................................................................................... 429
10.17.2. Настройка ............................................................................................... 429
11. Управление программными пакетами ................................................................ 431
Источники программ (репозитории) ............................................................ 432
11.1.1. Репозитории для APT ............................................................................. 432
11.1.2. Добавление репозиториев с использованием терминала .................... 436
11.1.3. Центр управления системой ................................................................... 437
11.1.4. Программа управления пакетами Synaptic ........................................... 437
Обновление информации о репозиториях в APT ....................................... 438
Поиск пакетов (apt-cache) .............................................................................. 438
Управление установкой нсталляцией) компонентов программного
обеспечения .............................................................................................................. 439
11.4.1. Команда updater-start ............................................................................... 440
11.4.2. Команда integrity-applier ......................................................................... 442
Установка или обновление пакета командой apt ........................................ 442
Удаление установленного пакета командой apt .......................................... 444
Альтернативная установка дополнительного ПО ....................................... 445
11.7.1. Установка дополнительного ПО в ЦУС ............................................... 445
11.7.2. Программа управления пакетами Synaptic ........................................... 446
13
ЛКНВ.11100-01 90 02
Обновление всех установленных пакетов apt-get ....................................... 447
Обновление всех установленных пакетов Synaptic .................................... 447
Обновление ядра и модулей ядра ............................................................... 448
Удаление старых версий ядра ..................................................................... 449
Обновление изолированного окружения (chrooted environment) ............ 449
Проверка подлинности пакетов .................................................................. 449
Получение уведомлений о выходе обновлений ........................................ 450
Получение и доставка обновлений ............................................................. 450
Единая команда управления пакетами (epm) ............................................ 453
12. Ограничение действий пользователя .................................................................. 455
Определение параметров уничтожения данных ......................................... 455
Модуль AltHa .................................................................................................. 456
12.2.1. Запрет бита исполнения (SUID) ............................................................ 457
12.2.2. Блокировка интерпретаторов (запрет запуска скриптов) ................... 457
12.2.3. Отключение возможности удаления открытых файлов ...................... 458
13. Контрольные характеристики развернутой ОС Альт 8 СП .............................. 460
14. Основы администрирования Linux ...................................................................... 461
Общие принципы работы ОС ........................................................................ 461
14.1.1. Процессы и файлы .................................................................................. 461
14.1.2. Командные оболочки (интерпретаторы) .............................................. 466
14.1.3. Командная оболочка Bash ...................................................................... 466
14.1.4. Стыкование команд в системе Linux..................................................... 468
Режим суперпользователя ............................................................................. 470
14.2.1. Пользователи ОС ..................................................................................... 470
14.2.2. Назначение режима суперпользователя ............................................... 471
14.2.3. Получение прав суперпользователя ...................................................... 471
14.2.4. Переход в режим суперпользователя .................................................... 472
Управление пользователями ......................................................................... 472
Система инициализации systemd и sysvinit ................................................. 473
14.4.1. Запуск операционной системы .............................................................. 473
14
ЛКНВ.11100-01 90 02
14.4.2. Примеры команд управления службами, журнал в systemd ............... 473
14.4.3. Журнал в systemd .................................................................................... 475
15. Сообщения администратору ................................................................................ 477
Перечень сокращений ................................................................................................. 478
15
ЛКНВ.11100-01 90 02
1. ОБЩИЕ СВЕДЕНИЯ ОБ ОС АЛЬТ 8 СП
Назначение и функции ОС Альт 8 СП
ОС Альт 8 СП, представляет собой совокупность интегрированных программ,
созданных на основе операционной системы (ОС) Linux.
ОС Альт 8 СП предназначено для группового и корпоративного
использования, автоматизации информационных, конструкторских и
производственных процессов предприятий (организаций, учреждений) всех
возможных типов и направлений.
ОС Альт 8 СП поддерживает клиент-серверную архитектуру и может
обслуживать процессы как в пределах одной компьютерной системы, так и
процессы на других персональных электронных вычислительных машинах (далее
ПЭВМ) через каналы передачи данных или сетевые соединения.
ОС Альт 8 СП обладает следующими функциональными характеристиками:
- обеспечивает возможность обработки, хранения и передачи информации в
защищенной программной среде;
- обеспечивает возможность запуска пользовательского программного
обеспечения (далее – ПО) в сертифицированном окружении;
- обеспечивает возможность функционирования в многозадачном режиме
(одновременное выполнение множества процессов);
- обеспечивает возможность масштабирования системы: возможна
эксплуатация ОС как на одной ПЭВМ, так и в информационных системах
различной архитектуры;
- обеспечивает многопользовательский режим эксплуатации;
- обеспечивает поддержку мультипроцессорных систем;
- обеспечивает сетевую обработку данных, в том числе разграничение
доступа к сетевым пакетам.
16
ЛКНВ.11100-01 90 02
Для поддержки выполнения описанных функций в ОС Альт 8 СП реализованы
следующие возможности:
- управление процессами и информационными ресурсами;
- управление системными ресурсами;
- управление памятью;
- управление файлами и внешними устройствами;
- управление доступом к обрабатываемой информации;
- защита хранимых, обрабатываемых и передаваемых информационных
ресурсов комплексом средств защиты (далее – КСЗ) ОС;
- администрирование;
- поддержка интерфейса прикладного программирования;
- поддержка пользовательского интерфейса.
Уровень подготовки администратора
Администратор ОС Альт 8 СП должен иметь базовые знания в областях:
- принципы построения и функционирования современных вычислительных
систем, механизмов защиты информации;
- работа с ОС семейства Linux;
- администрирование общесистемного и прикладного ПО;
- настройка средств защиты, используемых в составе ОС Альт 8 СП;
- конфигурирование проводных подключений.
17
ЛКНВ.11100-01 90 02
2. СТРУКТУРА ОС АЛЬТ 8 СП
ОС Альт 8 СП состоит из набора компонентов, предназначенных для
реализации функциональных задач необходимых пользователям (должностным
лицам для выполнения определенных должностными инструкциями, повседневных
действий). ПИ ОС Альт 8 СП поставляется в виде дистрибутива и комплекта
эксплуатационной документации.
Структура ОС Альт 8 СП представлена на рис. 1.
Рис. 1 Структура ОС Альт 8 СП
В состав ОС Альт 8 СП входят следующие компоненты:
- «Ядро системы»;
- «Программа идентификации и аутентификации пользователей»;
- «Программа контроля целостности и восстановления»;
- «Программа взаимодействия с внешними устройствами»;
- «Программа регистрации и учета событий».
В структуре компонентов ОС Альт 8 СП выделены следующие
функциональные элементы:
- ядро ОС;
- КСЗ;
18
ЛКНВ.11100-01 90 02
- системные библиотеки;
- серверные программы;
- программы веб-серверов;
- прочие серверные программы;
- интерактивные рабочие среды;
- командные интерпретаторы;
- графическая оболочка MATE;
- системы управления базами данных;
- электронные справочники.
Первичный (ПНС) и вторичный загрузчики ОС обращаются напрямую к ядру
ОС, вызывая запуск системных процессов и приложений.
Взаимодействие и обмен информацией в ОС Альт 8 СП контролируются КСЗ,
предназначенным для защиты ОС от несанкционированного доступа к
обрабатываемой (хранящейся) информации на ПЭВМ.
2.1.1. Ядро ОС Альт 8 СП
Ядро ОС Альт 8 СП управляет доступом к оперативной памяти, сети,
дисковым и прочим внешним устройствам. Оно запускает и регистрирует процессы,
управляет разделением времени между ними, реализует разграничение прав и
определяет политику безопасности, обойти которую, не обращаясь к нему, нельзя.
Ядро работает в режиме «супервизора», позволяющем ему иметь доступ сразу
ко всей оперативной памяти и аппаратной таблице задач. Процессы запускаются в
«режиме пользователя»: каждый жестко привязан ядром к одной записи таблицы
задач, в которой, в числе прочих данных, указано, к какой именно части
оперативной памяти этот процесс имеет доступ. Ядро постоянно находится в
памяти, выполняя системные вызовы запросы от процессов на выполнение этих
подпрограмм.
19
ЛКНВ.11100-01 90 02
2.1.2. КСЗ
КСЗ представляет собой набор специальных программных пакетов, в том
числе из состава ядра ОС Альт 8 СП, предназначенных для реализации механизмов
безопасности и контроля функционирования ОС Альт 8 СП в целом. Состав и
версии пакетов КСЗ уточняйте в зависимости от архитектуры процессора.
* группа пакетов.
КСЗ включает в себя следующие программные пакеты:
- acl утилиты, предназначенные для администрирования списков контроля
доступа Access Control Lists, которые используются для более точного
задания прав доступа к файлам и директориям;
- alterator* группа пакетов различных модулей системных настроек
интерфейса Центра управления системой (ЦУС), предназначены для
выполнения наиболее востребованных административных задач;
- apt средства управления пакетами APT, установка, обновление,
разрешение зависимостей RPM пакетов;
- audit утилиты для хранения и поиска записей аудита, генерируемых
подсистемой аудита;
- bacula* группа пакетов клиент-серверной системы создания и управления
резервными копиями данных, а также их резервного восстановления;
- bash командная оболочка Bourne-Again Shell;
- control содержит общие интерфейсы управления системным
оборудованием, предоставляемые другими пакетами;
- control++ утилита конфигурирования системы, которая позволяет
администратору изменять ограничения системы, устанавливать права
доступа;
- coreutils набор утилит для управления файлами и изменения текстовых
файлов;
- dm-secdel утилита уничтожения информации, реализует безопасное
удаление;
20
ЛКНВ.11100-01 90 02
- ima-evm* подсистема контроля целостности GNU/Linux, использует
технологии IMA и EVM;
- iptables используется для настройки, обслуживания и проверки,
находящихся в ядре Linux таблиц правил фильтрации пакетов IP;
- kernel-image* ядро ОС Linux, используется для загрузки и запуска
системы;
- kernel-modules* пакеты аппаратных драйверов и библиотек в ядре ОС;
- lightdm* менеджер дисплеев, предоставляет графический интерфейс;
- mate-screensaver хранитель и блокировщик экрана;
- mount утилита для монтирования файловых систем;
- nagios система мониторинга служб и сетевой активности;
- nagios-nrpe сервер выполнения команд системы мониторинга nagios;
- nagstamon монитор состояний программы nagios;
- nagwad сервис, генерирующий уведомления от nagios, основанные на
записях из журнала аудита;
- openntpd демон NTP синхронизации времени в локальных системных
часах с внешними серверами NTP, а также при необходимости сам
выступает сервером NTP, сообщая свое локальное время по сети другим
компьютерам;
- openvpn VPN с использованием SSL, реализует подключение для
удаленных пользователей, телекоммуникации для дома и офиса, безопасные
подключения для беспроводных сетей;
- osec программный комплекс проверки целостности, предназначенный для
обнаружения различий между двумя состояниями системы, а также для
поиска потенциально опасных файлов;
- pam-config инструменты системы безопасности, позволяющие
администраторам устанавливать политику аутентификации без
необходимости повторной компиляции программ проверки подлинности;
- passwd утилита для установки/смены паролей с использованием PAM;
21
ЛКНВ.11100-01 90 02
- passwdqc набор инструментов для контроля сложности паролей и
парольных фраз, включающий PAM-модуль, программы и библиотеку;
- polkit это набор инструментов для определения и обработки разрешений.
Он используется для того, чтобы позволить непривилегированным
процессам контактировать с привилегированными процессами;
- rpm менеджер пакетов, используемый для сборки, установки, инспекции,
проверки, обновления и удаления отдельных программных пакетов;
- rsync утилита синхронизации файлов по сети, используется в качестве
эффективного процесса зеркалирования, т. к. пересылает только различия
между файлами, а не файлы целиком;
- secure_delete набор утилит для безопасного удаления файлов, безопасной
очистки от остатков данных неиспользуемого пространства дисков,
безопасной очистки разделов подкачки и безопасной очистки
неиспользуемой памяти;
- setup начальный набор конфигурационных файлов;
- sh командная оболочка Bourne shell;
- shadow усиливает безопасность системных паролей;
- su утилита запуска командного интерпретатора от имени другого
пользователя;
- sudo программа, позволяющая делегировать те или иные
привилегированные ресурсы пользователям с ведением протокола работы;
- systemd* менеджер системы и служб в ОС, реализует запуск демонов и
отслеживает процессы;
- util-linux коллекция основных системных утилит;
- vim-console экранный редактор;
- vlock программа блокировки сеансов в консоли.
22
ЛКНВ.11100-01 90 02
2.1.3. Системные библиотеки
Системные библиотеки наборы программ (пакетов программ),
выполняющие различные функциональные задачи и предназначенные для
динамического подключения к работающим программам, которым необходимо
выполнение этих задач.
2.1.4. Серверные программы и приложения
Серверные программы и приложения предоставляют пользователю
специализированные услуги (почтовые службы, хранилище файлов, веб-сервер,
система управления базой данных, обеспечение документооборота, хранилище
данных пользователей и так далее) в локальной или глобальной сети и
обеспечивают их выполнение.
В состав ОС Альт 8 СП включены следующие серверные программы и
приложения:
- приложения, обеспечивающие поддержку сетевого протокола DHCP
(Dynamic Host Configuration Protocol);
- приложения, обеспечивающие поддержку протокола аутентификации LDAP
(Lightweight Directory Access Protocol);
- приложения, обеспечивающие поддержку протоколов FTP, SFTP, SSHD;
- системы управления базами данных;
- программы, обеспечивающие работу SMB-сервера (cервер файлового
обмена);
- программы почтового сервера postfix;
- программы прокси-сервера Squid;
- программы веб-сервера apache2;
- программы DNS-сервера.
2.1.5. Прочие системные приложения
Прочие системные приложения приложения (программы), оказывающие
пользователю дополнительные системные услуги при работе с ОС.
23
ЛКНВ.11100-01 90 02
В состав ОС Альт 8 СП включены следующие дополнительные системные
приложения:
- архиваторы;
- для управления RPM-пакетами;
- резервного копирования;
- мониторинга системы;
- для работы с файлами;
- для настройки системы;
- для настройки параметров загрузки;
- для настройки оборудования;
- для настройки сети.
2.1.6. Программы веб-серверов
Программы веб-серверов участвуют в организации доступа пользователей к
сети Интернет. Доступ организуется с помощью клиент-серверной архитектуры.
Клиент, которым обычно является веб-браузер, передает программе
веб-сервера запросы на получение ресурсов. В качестве ресурсов могут выступать
HTML-страницы, изображения, файлы, медиа-потоки или другие данные, которые
необходимы клиенту. В ответ веб-сервер передает клиенту запрошенные данные.
Обмен происходит по протоколу HTTP.
В состав ОС Альт 8 СП включены программы веб-сервера Apache.
2.1.7. Интерактивные рабочие среды
Интерактивные рабочие среды программы (пакеты программ),
предназначенные для работы пользователя в ОС Альт 8 СП и предоставляющие ему
удобный интерфейс для общения с ней.
2.1.8. Командные интерпретаторы
Командные интерпретаторы специальные программы (терминалы),
предназначенные для выполнения различных команд пользователей при работе с
ОС Альт 8 СП.
24
ЛКНВ.11100-01 90 02
2.1.9. Графическая оболочка MATE
Графическая оболочка MATE набор программ и технологий,
предназначенных для управления ОС Альт 8 СП и предоставляющих пользователю
графический интерфейс для работы.
2.1.10. Системы управления базами данных
Системы управления базами данных (далее СУБД) приложения,
предназначенные для работы с данными, представленными в виде набора записей.
СУБД осуществляет поиск, обработку и хранение данных в виде специальных
таблиц, являющихся базой данных.
2.1.11. Электронные справочники
Электронные справочники наборы внутрисистемных справочных страниц,
описывающих работу команд и приложений, которые выполнены в виде примеров
HOWTOs и справки man.
25
ЛКНВ.11100-01 90 02
3. ПОДГОТОВИТЕЛЬНЫЕ ПРОЦЕДУРЫ
Настройка безопасной конфигурации компьютера
3.1.1. Процедура верификации
Проверка поставленного потребителю дистрибутива производится путем
подсчета контрольной суммы с использованием программы фиксации и контроля
исходного состояния программного комплекса «ФИКС» (версия 2.0.1) (сертификат
913, выдан ФСТЭК России 28 мая 2004 года, действителен до 01 июня 2019 года)
по алгоритму «Уровень- (при наличии)
1
и сравнения ее с контрольной суммой,
указанной в документе «Формуляр. ЛКНВ.11100-01 30 01» и на этикетке ПИ для
соответствующей архитектуры.
Администратор имеет возможность верифицировать версию ОС Альт 8 СП,
выполнив команду:
# cat /root/.install-log/diskinfo
3.1.2. Настройка среды функционирования
Для среды функционирования ОС Альт 8 СП (средств вычислительной
техники (СВТ)) сформулированы следующие рекомендации:
- не допускается использовать аппаратные платформы, базовые системы
ввода-вывода, содержащие уязвимости, без применения патча,
представленного разработчиком данной аппаратной платформы, версии
базовой системы ввода-вывода;
- на серверах отключать системы контроля и управления типа ILO, RSA,
iDRAC, ThinkServer EasyManage, AMT, iMana;
- установка, конфигурирование и управление ОС Альт 8 СП должны
выполняться в соответствии с эксплуатационной документацией;
1
Или с использованием аналогичного ПО, осуществляющего подсчет контрольных сумм по алгоритму ФИКС режим
«Уровень-3».
26
ЛКНВ.11100-01 90 02
- должна быть обеспечена защита от осуществления действий, направленных
на нарушение физической целостности СВТ, на котором функционирует
ОС Альт 8 СП;
- должна быть обеспечена доверенная загрузка ОС (блокирование попыток
несанкционированной загрузки, контроль доступа субъектов доступа к
процессу загрузки, контроль целостности компонентов загружаемой
операционной среды);
- должны быть обеспечены необходимые ресурсы для выполнения
функциональных возможностей безопасности ОС, хранения резервных
копий, создаваемых ОС, а также защищенное хранение данных ОС и
защищаемой информации;
- должно быть обеспечено ограничение на установку ПО и его компонентов,
не задействованных в технологическом процессе обработки информации;
- должен обеспечиваться доверенный маршрут между ОС и пользователями
ОС (администраторами, пользователями);
- должен обеспечиваться доверенный канал передачи данных между ОС и
средствами вычислительной техники, на которых происходит обработка
информации, а также с которых происходит их администрирование;
- должна быть обеспечена невозможность отключения (обхода) компонентов
ОС;
- должны быть реализованы меры, препятствующие несанкционированному
копированию информации, содержащейся в ОС, на съемные машинные
носители информации (или за пределы ИС). В том числе должен
осуществляться контроль вноса (выноса) в (из) контролируемую зону
(контролируемой зоны) съемных машинных носителей информации;
- должна осуществляться проверка целостности внешних модулей уровня
ядра, получаемых от заявителя (разработчика, производителя), перед их
установкой в ОС;
- должно быть обеспечено выделение вычислительных ресурсов для
процессов в соответствии с их приоритетами;
27
ЛКНВ.11100-01 90 02
- персонал, ответственный за функционирование ОС Альт 8 СП, должен
обеспечивать функционирование ОС Альт 8 СП, в точности руководствуясь
эксплуатационной документацией;
- лица, ответственные за эксплуатацию ОС Альт 8 СП, должны обеспечить,
чтобы аутентификационная информация для каждой учетной записи
пользователя ОС содержалась в тайне и были недоступны лицам, не
уполномоченным использовать данную учетную запись;
- должна обеспечиваться возможность генерации аутентификационной
информации соответствующей метрике качества.
Настройка опций безопасности
Во время установки ОС Альт 8 СП администратор должен обеспечить
выполнение следующих условий:
- задать пользователя с паролем, отвечающим требованиям безопасности;
- задать пароль администратора, отвечающий требованиям безопасности.
Перед началом эксплуатации ОС Альт 8 СП рекомендуется администратору
обеспечить выполнение следующих условий:
1) настроить параметры входа пользователя (порядок действий приведен в
документе «Руководство по комплексу средств защиты.
ЛКНВ.11100-01 99 02» далее Руководство по КСЗ):
- время ограничения сеанса;
- время засыпания;
2) настроить параметры пароля пользователя (порядок действий приведен в
Руководстве по КСЗ);
- сложность пароля;
- время действия;
3) настроить средства контроля целостности (порядок действий приведен в
подразделе «Программный комплекс проверки целостности системы Osec»
в Руководстве по КСЗ);
28
ЛКНВ.11100-01 90 02
4) настроить параметры запрета удаления файлов (порядок действий приведен
п. 12.2 «Модуль AltHa»);
5) настроить разрешенные сервисы;
6) настроить аудит:
- создать правила аудита (примеры использования аудита приведены в
Руководстве по КСЗ);
- настроить экспорт аудита на другой компьютер (порядок действий
приведен п. 7.6);
7) настроить подключение оповещений администратора (порядок действий
приведен п. 7.7);
8) механизм замкнутой программной среды должен быть настроен для работы
в штатном режиме пользователя (порядок действий приведен в подразделе
«Подсистема IMA/EVM» Руководства по КСЗ);
9) с использованием средств управления дискреционными правами
разграничения доступа запретить пользователям, не обладающим
привилегиями администратора:
- доступ к библиотеке libpcprofile.so;
- запуск (использование) средств создания символических ссылок;
10) с использованием средств управления запуском сервисов должна быть
отключена служба gpm для поддержки «мыши» в консольном режиме;
11) для защиты от атаки подбора пароля (brute force):
- внести изменения в файл /etc/pam.d/sshd добавить строку:
auth required pam_tally2.so deny=3 unlock_time=19
12) для суперпользователя root необходимо заблокировать возможность его
удаленного входа в ОС посредством включения PAM-модуля
pam_securetty в файл сценария /etc/pam.d/common-auth. Для этого
необходимо в «Primary block» в указанном файле первой строкой добавить:
auth required pam_securetty.so
29
ЛКНВ.11100-01 90 02
Описание механизмов устранения идентифицированных скрытых каналов
Далее приведены дополнительные рекомендации по настройке механизмов
защиты ОС Альт 8 СП для устранения возможных скрытых каналов передачи
информации.
Механизмы защиты, направленны на ограничение, мониторинг, полное или
частичное устранение идентифицированных скрытых каналов, которые могут
возникнуть в информационных (автоматизированных) системах вследствие
использования в них ОС Альт 8 СП.
1) Исключение возможности работы с общими каталогами с правом записи
для пользователей, имеющих разные полномочия доступа.
2) Для противодействия атакам на каналы передачи по времени и памяти
необходимо администратором безопасности исключить наличие в системе общих
для пользователей файловых ресурсов, где размещаются файлы с разными правами
дискреционного разграничения доступа, в частности исключить размещение в
каталогах файлов, доступ к которым полностью закрыт для конкретных
пользователей данного каталога. Также можно монтировать файловую систему без
учета времени доступа: mount -noatime nodiratime.
3) На уровне ядра запретить процессам создавать слушающие сокеты, кроме
тех, что им действительно необходимы, в том числе запрещать слушать на
фиксированном порту, а также контролировать частоту создания сокета.
4) Монтировать подсистему /proc с флагом hidepid=2 или 1. При этом имена
процессов других пользователей и другие данные таких процессов будут
недоступны вызывающему непривилегированному пользователю.
5) Организовать маскирующие процессы, имитирующие постоянную загрузку
процессора. Использовать механизмы ограничения СPU для процессов,
гарантирующий время выполнения, одинаковое для всех процессов, такой как
сgroups.
6) Для предотвращения Timestamp Evaluation отключить отметки времени
TCP в ОС Альт 8 СП. Для этого выполнить следующие команды:
# echo 0 > /proc/sys/net/ipv4/tcp_timestamps
30
ЛКНВ.11100-01 90 02
To make that change permenant though, you need to add the
following line to /etc/sysctl.conf:
net.ipv4.tcp_timestamps = 0
также можно настроить правила iptables:
iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP
7) Для предотвращения ISN Evaluation (оценка временной отметки)
использовать TCP/IP прокси (socks).
8) Для предотвращения TCP URG Pointer (указателя TCP URG) настроить
правила iptables:
iptables -N BADFLAGS
iptables -A BADFLAGS -j LOG --log-prefix "BADFLAGS: "
iptables -A BADFLAGS -j DROP
iptables -N TCP_FLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,FIN FIN -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,PSH PSH -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ACK,URG URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags FIN,RST FIN,RST -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags SYN,FIN SYN,FIN -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags SYN,RST SYN,RST -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL ALL -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL NONE -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL FIN,PSH,URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j BADFLAGS
iptables -A TCP_FLAGS -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j BADFLAGS
9) Для предотвращения IP ToS Evaluation (Оценки IP-ToS) настроить способ
обслуживания для telnet, ftp-control и ftp-data выполнить команды:
# iptables -A PREROUTING -t mangle -p tcp --sport telnet \
-j TOS --set-tos Minimize-Delay
# iptables -A PREROUTING -t mangle -p tcp --sport ftp \
-j TOS --set-tos Minimize-Delay
# iptables -A PREROUTING -t mangle -p tcp --sport ftp-data \
-j TOS --set-tos Maximize-Throughput
31
ЛКНВ.11100-01 90 02
Эти правила прописываются на удаленном хосте и воздействуют на входящие,
по отношению к компьютеру, пакеты. Для пакетов, отправляемых в обратном
направлении, эти флаги устанавливаются автоматически. Настроить их можно,
прописав следующие правила:
# iptables -A OUTPUT -t mangle -p tcp --dport telnet \
-j TOS --set-tos Minimize-Delay
# iptables -A OUTPUT -t mangle -p tcp --dport ftp \
-j TOS --set-tos Minimize-Delay
# iptables -A OUTPUT -t mangle -p tcp --dport ftp-data \
-j TOS --set-tos Maximize-Throughput
Для противодействия данной атаке необходимо в командной строке
выполнить следующие команды:
# Разрешить главные типы протокола ICMP
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT
Типы ICMP-сообщений:
- 0 echo reply (echo-ответ, пинг);
- 3 destination unreachable (адресат недосягаем);
- 4 source quench (подавление источника, просьба посылать пакеты
медленнее);
- 5 redirect (редирект);
- 8 echo request (echo-запрос, ping);
- 9 router advertisement (объявление маршрутизатора);
- 10 router solicitation (ходатайство маршрутизатора);
- 11 time-to-live exceeded (истечение срока жизни пакета);
- 12 IP header bad еправильный IP заголовок пакета);
- 13 timestamp request (запрос значения счетчика времени);
- 14 timestamp reply (ответ на запрос значения счетчика времени);
- 15 information request (запрос информации);
- 16 information reply (ответ на запрос информации);
32
ЛКНВ.11100-01 90 02
- 17 address mask request (запрос маски сети);
- 18 address mask reply (ответ на запрос маски сети).
10) Для предовращения Initial Sequence Number hijacking and spoofing (урона и
подделки исходного кода последовательности) – настроить правила iptables:
# Защита от спуфинга
iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --
tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
# Защита от SYN-флуда
iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-
burst 50 -j ACCEPT
iptables -A INPUT -p udp -m limit --limit 10/s --limit-burst 50 -
j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 10/s --limit-burst 50
-j ACCEPT
iptables -A INPUT -j DROP
# Отбрасывать ошибочные пакеты
iptables -A INPUT -m state --state INVALID -j DROP
iptables -I INPUT -m conntrack --ctstate INVALID -j DROP
# Отбрасывать фрагментированные пакеты
iptables -A INPUT -f -j DROP
# Защита от попытки открыть входящее соединение TCP не через SYN
iptables -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j
DROP
# Защита от Ping of death
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --
limit 10/s --limit-burst 50 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Защита от некорректных ICMP
iptables -I INPUT -p icmp -f -j DROP
# Отбросить ошибочные пакеты
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -I FORWARD -m conntrack --ctstate INVALID -j DROP
# Отбросить фрагментированные пакеты
iptables -A FORWARD -f -j DROP
# Сбрасывать фрагментированные пакеты
iptables -A OUTPUT -f -j DROP
Дополнительно необходимо внести правки в /etc/sysctl.conf:
$ sudo vi /etc/systcl.conf
# Отбросить ICMP-редиректы (против атак типа MITM)
net.ipv4.conf.all.accept_redirects=0
net.ipv6.conf.all.accept_redirects=0
# Включить механизм TCP syncookies
net.ipv4.tcp_syncookies=1
33
ЛКНВ.11100-01 90 02
# Различные улучшения (защита от спуфинга
# увеличение очереди «полуоткрытых» TCP-соединений и далее):
net.ipv4.tcp_timestamps=0
net.ipv4.conf.all.rp_filter=1
net.ipv4.tcp_max_syn_backlog=1280
kernel.core_uses_pid=1
34
ЛКНВ.11100-01 90 02
4. ФУНКЦИИ И ЗАДАЧИ АДМИНИСТРИРОВАНИЯ ОС АЛЬТ 8 СП
Функции администратора
Основными функциями администратора при эксплуатации ОС Альт 8 СП
являются:
- ввод в эксплуатацию и эксплуатация в соответствии с указаниями,
приведенными в документе «Формуляр. ЛКНВ.11100-01 30 01»;
- соблюдение подготовительных процедур (см. раздел 3);
- установка и настройка ОС Альт 8 СП;
- управление и поддержка функционирования персональной электронной
вычислительной машины ПЭВМ.
Задачи администрирования
В состав основных задач администрирования входят следующие:
- установка ОС Альт 8 СП и назначение параметров системы;
- создание загрузочных носителей информации;
- конфигурирование параметров даты и времени, графической среды, средств
ввода и вывода;
- настройка и управление системными сервисами и служебными
программами;
- настройка и управление работой системы управления пакетами Advanced
Packaging Tool (далее APT);
- обновление ОС и прикладного ПО из ее состава;
- настройка и управление учетными записями и правами доступа
пользователей;
- конфигурирование сети /etc/net и проверка ее работоспособности;
- настройка FTP-серверов;
- настройка служб DNS;
- настройка серверов электронной почты postfix;
- настройка и управление кэширующими прокси-серверами;
35
ЛКНВ.11100-01 90 02
- настройка серверного и клиентского ПО Samba для осуществления связи
UNIX-машин с сетями Microsoft и LanManager;
- настройка и управление печатью;
- настройка и управление базами данных.
36
ЛКНВ.11100-01 90 02
5. УСТАНОВКА ОС АЛЬТ 8 СП
Обычно для установки дистрибутива используется установочный загрузочный
компакт-диск дистрибутива. Если установка производится с компакт-диска, можете
сразу перейти к п. 5.2.
Для начала процесса установки ПИ ОС Альт 8 СП необходимо выбрать:
- способ первоначальной загрузки компьютера (п. 5.1.1);
- источник установки (п. 5.1).
В случае загрузки с установочного компакт-диска эти две возможности
предоставляются самим диском: он является загрузочным и содержит все
необходимые для установки файлы.
Установка с загрузочного компакт-диска – это один из возможных способов
установки системы. Он является самым распространенным способом установки
системы, но не работает, например, в случае отсутствия на компьютере
CD/DVD-привода. Для таких случаев поддерживаются альтернативные методы
установки, например, с USB-flash-накопителя.
Начало установки: загрузка системы
5.1.1. Способы первоначальной загрузки
Для запуска программы установки загрузите компьютер с носителем,
содержащим начальный загрузчик. Таким носителем может быть, как сам
загрузочный компакт-диск дистрибутива, так и, например,
USB-flash-накопитель, который можно сделать загрузочным.
Для создания загрузочного USB-flash-накопителя, на ней должен быть один
раздел, отформатированный в файловой системе ext2.
Далее необходимо запустить скрипт write.sh из корневой директории
DVD-диска дистрибутива.
Источник установки в данном случае локальный.
37
ЛКНВ.11100-01 90 02
5.1.2. Загрузка системы
После включения вычислительного комплекса (ВК) «Эльбрус» происходит
инициализация программы начальной загрузки, в процессе которой есть
возможность вмешательства после вывода строки:
Autoboot in 03 sec. PRESS SPACE TO DISABLE IT.
Необходимо нажать пробел, после чего должны появиться следующие строки:
Key pressed. Autoboot canceled.
CPU#00: Starting menu.
BOOT SETUP
Press command letter, or press 'h' to get help
:
Можно запросить подсказку нажатием клавиши <h>, но необходимыми
являются следующие пункты:
- d — show Disks and partitions (показать диски и разделы);
- c — Change boot parameters (изменить параметры загрузки);
- u — show cUrrent parameters (показать текущие параметры);
- m — save params to NVRAM (сохранить параметры в NVRAM);
- b — start Boot.conf menu (запустить меню Boot.conf).
При нажатии на клавишу <d> получим список дисков:
:d
CPU#00: Drive [2]: SATA - PCI BUS[1]:DEV[3]:FUNC[0], MCST SATA COMBINED Port
[0] - KINGSTON SMS200S3120G
CPU#00: Partition [0]: Linux EXT2;
U:246194e7-0512-4db3-a821-cbcbe3c92c38 L:""
CPU#00: Partition [1]: Linux swap
CPU#00: Partition [3]: Extended
CPU#00: Partition [4]: Unknown file system type
CPU#00: Drive [10]: ATAPI device
В данном случае идентификатор 10 присвоен внешнему USB DVD-приводу, с
которого и будет произведена установка ОС; следует выбрать его, указав
идентификатор ответом на первый вопрос команды c и нажав клавишу Esc на
остальные:
:c
CHANGE BOOT PARAMETERS
38
ЛКНВ.11100-01 90 02
Current Settings:
drive_number: '2'
drive label: '*'
partition_number: '0'
file system id: '07bde958-ec62-492e-933c-17334bb02da2'
command_string: ''
filename: ''
initrdfilename: ''
autoboot in: '10'
To advance to next setting press ENTER. To skip setting press ESC
Enter drive number : 10
Enter partition number: < Skipped >
Enter command string : < Skipped >
Enter filename : < Skipped >
Enter initrd file name: < Skipped >
Enter autoboot value : < Skipped >
Current Settings:
drive_number: '10'
drive label: ''
partition_number: '0'
file system id: ''
command_string: ''
filename: ''
initrdfilename: ''
autoboot in: '10'
CPU#00: Search drive and partition by label or uuid succeed
Затем необходимо перейти к загрузке последовательным нажатием клавиш
<b Tab Enter>:
:b
boot# install
CPU#00: Label 'install' found, loading parameters
CPU#00: Search drive and partition by label or uuid succeed
Trying to load and start image with following parameters:
drive_number: '10'
drive label: ''
partition_number: '0'
file system id: ''
command_string: 'hardreset fastboot live automatic=method:cdrom'
filename: '/alt0/vmlinux.0'
initrdfilename: '/alt0/full.cz'
П р и м е ч а н и е . Мышь на этом этапе установки не поддерживается.
Для выбора опций установки и различных вариантов необходимо использовать
клавиатуяру.
После загрузки инсталлятора установка продолжается штатным образом.
После установки системы, если установка производилась на диск, отличный
от того, с которого ВК загружается по умолчанию – следует повторно зайти в
конфигурацию программы начальной загрузки, определить загрузочный диск (d) и
39
ЛКНВ.11100-01 90 02
указать его в качестве загрузочного диска по умолчанию (c). После изменений
параметров загрузки, следует воспользоваться командой m для записи изменений в
NVRAM и их применения в дальнейшем.
Последовательность установки
До того, как будет произведена установка базовой системы на жесткий диск,
программа установки работает с образом системы, загруженным в оперативную
память компьютера.
Если инициализация оборудования завершилась успешно, будет запущен
графический интерфейс программы-установщика. Процесс установки разделен на
шаги; каждый шаг посвящен настройке или установке определенного свойства
системы. Шаги нужно проходить последовательно, переход к следующему шагу
происходит по нажатию кнопки «Далее». При помощи кнопки «Назад» при
необходимости можно вернуться к уже пройденному шагу и изменить настройки.
Однако на этом этапе установки возможность перехода к предыдущему шагу
ограничена теми шагами, где нет зависимости от данных, введенных ранее.
В случае необходимости отмены установки, необходимо нажать на кнопку
<Reset> на корпусе системного блока компьютера.
П р и м е ч а н и е . Совершенно безопасно выполнить отмену установки только
до шага «Подготовка диска» (см. п. 5.2.4), поскольку до этого момента не
производится никаких изменений на жестком диске.
Технические сведения о ходе установки можно посмотреть, нажав клавиши
<Ctrl>+<Alt>+<F1>, вернуться к программе установки <Ctrl>+<Alt>+<F7>.
По нажатию клавиш <Ctrl>+<Alt>+<F2> откроется отладочная виртуальная консоль.
Каждый шаг сопровождается краткой справкой, которую можно вызвать,
нажав <F1>.
Во время установки системы выполняются следующие шаги:
- язык (см. п. 5.2.1);
- подтверждение согласия (см. п. 5.2.2);
- дата и время (см. п. 5.2.3);
- подготовка диска (см. п. 5.2.4);
40
ЛКНВ.11100-01 90 02
- установка системы (см. п. 5.2.5);
- сохранение настроек (см. п. 5.2.6);
- настройка сети (см. п. 5.2.7);
- администратор системы (см. п. 5.2.8);
- системный пользователь (см. п. 5.2.9);
- завершение установки (см. п. 5.2.10).
5.2.1. Язык
Установка начинается с выбора основного языка языка интерфейса
программы установки и устанавливаемой системы (рис. 2).
Также на данном этапе выбирается вариант переключения раскладки
клавиатуры. Раскладка клавиатуры это привязка букв, цифр и специальных
символов к клавишам на клавиатуре. Переключение между раскладками
осуществляется при помощи специально зарезервированных для этого клавиш.
Рис. 2 Установка. Выбор языка
41
ЛКНВ.11100-01 90 02
Для настройки варианта переключения раскладки клавиатуры в пункте
«Выберите вариант переключения раскладки клавиатуры:» необходимо установить
одно из следующих значений (доступно при выборе русского языка, в качестве
основного):
- клавиши <Alt> и <Shift> одновременно;
- клавиша <CapsLock>;
- клавиши <Control> и <Shift> одновременно;
- клавиша <Control>;
- клавиша <Alt>.
Если выбранный основной язык имеет всего одну раскладку апример, при
выборе английского языка в качестве основного), эта единственная раскладка будет
принята автоматически.
После завершения настройки основного языка и варианта переключения
раскладки клавиатуры необходимо нажать на кнопку «Далее».
5.2.2. Подтверждение согласия
После окна выбора языковых параметров ОС Альт 8 СП программа установки
переходит к окну «Подтверждение согласия» (рис. 3).
Перед продолжением установки следует внимательно прочитать условия,
регулирующие права владельца экземпляра дистрибутива ОС Альт 8 СП на
использование дистрибутива, а также включенных в состав дистрибутива отдельных
программ для ЭВМ в установленных условиями пределах.
Для подтверждения согласия, необходимо отметить пункт «Да, я согласен с
условиями» и нажать на кнопку «Далее».
42
ЛКНВ.11100-01 90 02
Рис. 3 Установка. Подтверждение согласия
5.2.3. Дата и время
После окна «Подтверждения согласия» ОС Альт 8 СП программа установки
переходит к окну «Дата и время». На данном этапе выполняется выбор страны и
города, по которым будет определен часовой пояс и установлены системные часы
(рис. 4).
Для корректной установки даты и времени достаточно правильно указать
часовой пояс и выставить желаемые значения для даты и времени. Для этого в
соответствующих списках выберите страну, а затем регион. Поиск по списку можно
ускорить, набирая на клавиатуре первые буквы искомого слова.
Пункт «Хранить время в BIOS по Гринвичу» выставляет настройки даты и
времени в соответствии с часовыми поясами, установленными по Гринвичу, и
добавляет к местному времени часовую поправку для выбранного региона.
После выбора часового пояса будут предложены системные дата и время по
умолчанию.
43
ЛКНВ.11100-01 90 02
Рис. 4 Установка. Выбор часового пояса
Для ручной установки текущих даты и времени нужно нажать на кнопку
«Изменить…». Откроется окно ручной настройки системных параметров даты и
времени (рис. 5).
44
ЛКНВ.11100-01 90 02
Рис. 5 Установка. Настройка времени
Для синхронизации системных часов (NTP) с удаленным сервером по
локальной сети или по сети Интернет нужно отметить пункт «Получать точное
время с NTP-сервера» и указать предпочитаемый NTP-сервер. В большинстве
случаев можно указать сервер pool.ntp.org.
Для работы компьютера в качестве сервера точного времени внутри
локальной сети нужно отметить пункт «Работать как NTP-сервер».
Для сохранения настроек и продолжения установки системы в окне ручной
установки даты и времени необходимо нажать на кнопку «ОК» и затем в окне
«Дата и время» нажать на кнопку «Далее».
45
ЛКНВ.11100-01 90 02
5.2.4. Подготовка диска
На этом этапе программа установки подготавливает площадку для установки
ОС Альт 8 СП, в первую очередь – выделяется свободное место на диске.
Переход к этому шагу может занять некоторое время период ожидания
может быть разным и зависит от производительности компьютера, объема жесткого
диска, количества разделов на нем и других параметров.
Выбор профиля разбиения диска
После завершения первичной конфигурации загрузочного носителя откроется
окно «Подготовка диска» (рис. 6). В списке разделов перечислены уже
существующие на жестких дисках разделы том числе здесь могут оказаться
съемные USB-носители, подключенные к компьютеру в момент установки).
Рис. 6 Установка. Выбор профиля разбиения диска(ов)
46
ЛКНВ.11100-01 90 02
В списке «Выберите метод установки:» перечислены доступные профили
разбиения диска. Профиль это шаблон распределения места на диске для
установки ОС. Можно выбрать один из профилей:
- использовать неразмеченное пространство;
- удалить все разделы и создать разделы автоматически;
- подготовить разделы вручную.
Первые два профиля предполагают автоматическое разбиение диска.
Автоматические профили разбиения диска
ПРЕДУПРЕЖДЕНИЕ
При использовании автоматических профилей разбиения дисков, соответствующие
изменения на диске происходят сразу же по нажатию кнопки «Далее».
Если при применении одного из профилей автоматического разбиения диска
доступного места на диске окажется недостаточно, то на экран будет выведено
сообщение об ошибке:
Невозможно применить профиль, недостаточно места на диске
Если данное сообщение появилось после попытки применить профиль
«Использовать неразмеченное пространство», то можно полностью очистить место
на диске, применив профиль «Удалить все разделы и создать разделы
автоматически».
Если сообщение о недостатке места на диске появляется и при применении
профиля «Удалить все разделы и создать разделы автоматически», то это связано с
недостаточным для использования автоматических методов разметки объемом всего
диска. В этом случае следует воспользоваться профилем разбиения «Подготовить
разделы вручную».
ПРЕДУПРЕЖДЕНИЕ
При применении профиля «Удалить все разделы и создать разделы
автоматически» будут удалены все данные со всех дисков (включая внешние USB-
устройства) без возможности восстановления. Рекомендуется использовать эту
возможность при полной уверенности в том, что диски не содержат никаких ценных
данных.
П р и м е ч а н и е . Разбивка не затрагивает CF-диск, на котором может
храниться система бинарной трансляции.
47
ЛКНВ.11100-01 90 02
Ручной профиль разбиения диска
При необходимости освободить часть дискового пространства следует
воспользоваться профилем разбиения «Подготовить разделы вручную». Можно
удалить некоторые из существующих разделов или содержащиеся в них файловые
системы. После этого можно создать необходимые разделы самостоятельно или
вернуться к шагу выбора профиля и применить один из автоматических профилей.
Выбор этой возможности требует знаний об устройстве диска и технологиях его
разбиения.
ПРЕДУПРЕЖДЕНИЕ
В случае ручной разбивки необходимо создать и подключить на первом
разделе диска (не MD RAID) раздел для ядра /boot с файловой системой ext2
(т. е. без extents и журнала).
По нажатию «Далее» будет произведена запись новой таблицы разделов на
диск и форматирование разделов. Разделы, только что созданные на диске
программой установки, пока не содержат данных и поэтому форматируются без
предупреждения. Уже существовавшие, но измененные разделы, которые будут
отформатированы, помечаются специальным значком в колонке «Файловая
система» слева от названия. При уверенности в том, что подготовка диска
завершена, подтвердите переход к следующему шагу нажатием кнопки «Далее».
Не следует форматировать разделы с теми данными, которые необходимо
сохранить, например, со старыми пользовательскими данными (/home).
Отформатировать можно любые разделы, которые хотите «очистить» (т. е. удалить
все данные).
48
ЛКНВ.11100-01 90 02
Дополнительные возможности разбиения диска
Ручной профиль разбиения диска позволяет установить ОС на программный
RAID-массив, разместить разделы в томах LVM и использовать маскирование на
разделах. Данные возможности требуют от пользователя понимания принципов
функционирования указанных технологий.
Создание программного RAID-массива
Избыточный массив независимых дисков RAID (redundant array of independent
disks) технология виртуализации данных, которая объединяет несколько НЖМД в
логический элемент для избыточности и повышения производительности.
П р и м е ч а н и е . Для создания RAID-массива необходимо два и более
жестких диска.
Программа установки поддерживает создание программных RAID-массивов
следующих типов:
- RAID 1;
- RAID 0;
- RAID 4/5/6;
- RAID 10.
Процесс подготовки к установке на RAID условно можно разбить на
следующие шаги:
- создание разделов на жестких дисках;
- создание RAID-массивов на разделах жесткого диска;
- создание файловых систем на RAID-массиве.
Для настройки параметров нового раздела из состава RAID-массива
необходимо выбрать неразмеченный диск в окне профиля разбивки пространства
«Подготовить разделы вручную» и нажать на кнопку «Создать раздел». После этого
откроется окно (рис. 7).
В этом окне необходимо настроить следующие параметры:
- «Размер» – в поле необходимо указать размер будущего раздела в Мбайт;
- «Смещение» в поле необходимо указать смещение начала данных на
диске в Мбайт;
49
ЛКНВ.11100-01 90 02
- «Основной раздел» необходимо отметить пункт, если раздел является
основным для установки ОС;
- «Тип раздела» в выпадающем поле нужно выбрать значение «Linux
RAID» для последующего включения раздела в RAID-массивы.
Рис. 7 Установка. Создание раздела Linux RAID
П р и м е ч а н и е . При создании разделов следует учесть, что объем
результирующего массива может зависеть от размера, включенных в него разделов
жесткого диска. Например, при создании RAID 1, результирующий размер массива
будет равен размеру минимального участника.
После создания разделов на дисках можно переходить к организации самих
RAID-массивов. Для этого в списке следует выбрать пункт «RAID», после чего
нажать на кнопку «Создать RAID». Далее мастер предложит выбрать тип массива и
указать его участников (рис. 8, рис. 9).
50
ЛКНВ.11100-01 90 02
После создания RAID-массивов их можно использовать как обычные разделы
на жестких дисках, то есть, на них можно создавать файловые системы или же,
например, включать их в LVM-тома.
Рис. 8 Установка. Выбор типа RAID-массива
Рис. 9 Установка. Выбор участников RAID-массива
51
ЛКНВ.11100-01 90 02
Создание LVM-томов
Менеджер логических дисков LVM (Logical Volume Manager) средство
гибкого управления дисковым пространством, позволяющее создавать поверх
физических разделов (либо неразбитых дисков) логические тома, которые в самой
системе будут видны как обычные блочные устройства с данными (обычные
разделы).
Процесс подготовки к установке на LVM можно разбить на следующие шаги:
- создание группы томов LVM;
- создание томов LVM;
- создание файловых систем на томах LVM.
П р и м е ч а н и е . Для создания группы томов LVM может потребоваться
предварительно удалить таблицу разделов с жесткого диска.
Для создания группы томов LVM в списке следует выбрать пункт «LVM»,
после чего нажать на кнопку «Создать группу томов» (рис. 10).
Рис. 10 Установка. Создание группы томов LVM
После создания группы томов LVM ее можно использовать как обычный
жесткий диск, то есть внутри группы томов можно создавать тома (аналог раздела
на физическом жестком диске) и файловые системы внутри томов (рис. 11).
52
ЛКНВ.11100-01 90 02
Рис. 11 Установка. Создание тома
Создание шифрованных разделов
Программа установки ОС Альт 8 СП позволяет создавать шифрованные
разделы с использованием встроенных средств маскирования.
Для создания шифрованного раздела и выполнения дальнейшей разметки
нужно выбрать требуемый диск и нажать на кнопку «Создать шифруемый раздел».
В открывшемся окне доступны следующие настройки (рис. 12):
- «Размер» – общий размер шифрованного тома;
- «Смещение» настройка осуществляется с помощью ползунка либо путем
ввода значения с клавиатуры поле необходимо указать смещение начала
данных на диске в Мбайт);
- «Основной раздел» необходимо отметить пункт, если раздел является
основным для установки ОС;
- «Тип раздела» – в выпадающем поле нужно выбрать значение «Linux»;
- «Создать шифруемый том» отметить пункт для автоматического перехода
к настройке файловой системы на данном разделе;
53
ЛКНВ.11100-01 90 02
- «Показывать дополнительные настройки» отметить пункт для
отображения дополнительных настроек при последующей работе с
разделом.
Рис. 12 Установка. Создание кодируемого раздела
После создания шифрованного раздела мастер, как и при создании обычного
раздела, предложит создать на нем файловую систему и при необходимости
потребует указать точку монтирования.
П р и м е ч а н и е . Установка загрузчика на шифрованный раздел не
поддерживается.
Для сохранения всех внесенных настроек и продолжения установки в окне
«Подготовка диска» нужно нажать на кнопку «Далее».
5.2.5. Установка системы
На данном этапе происходят распаковка ядра и установка набора программ,
необходимых для работы ОС Альт 8 СП.
Программа установки предлагает выбрать дополнительные пакеты программ,
которые будут включены в состав ОС Альт 8 СП и установлены вместе с ней на
диск (рис. 13).
54
ЛКНВ.11100-01 90 02
Рис. 13 Установка. Выбор групп пакетов
В дистрибутиве ОС Альт 8 СП доступно значительное количество программ
(до нескольких тысяч), часть из них составляет саму ОС, а остальные – это
прикладные программы и утилиты.
В ОС Альт 8 СП все операции установки и удаления производятся над
пакетами – отдельными компонентами системы. Пакет и программа соотносятся
неоднозначно: иногда одна программа состоит из нескольких пакетов, иногда один
пакет включает несколько программ.
В процессе установки системы пользователю предлагается выбрать профиль и
состав из небольшого списка групп пакетов, объединяющих пакеты, необходимые
для решения наиболее распространенных задач.
Под списком групп на экране отображается информация об объеме дискового
пространства, которое будет занято после установки пакетов, входящих в
выбранные группы.
55
ЛКНВ.11100-01 90 02
Необходимо учитывать, что на рабочей станции группы пакетов «Рабочее
место контролера событий безопасности» и «Датчики системы сигнализации»
конфликтуют между собой – допускается выбор только одного из них.
Опция «Показать состав группы» выводит список программных пакетов,
входящих в состав той или иной группы пакетов (рис. 14).
Если была отмечена для установки группа «Среда MATE» (по умолчанию в
профиле «Рабочая станция»), то графическая оболочка MATE будет автоматически
запускаться при загрузке ОС автоматически.
П р и м е ч а н и е . При установке ОС на «Эльбрус 801-РС» дистрибутивом
поддерживается конфигурация с двумя видеокартами. Инсталлятор при
обнаружении более чем одной видеокарты изменит список устанавливаемых по
умолчанию дополнительных пакетов так, что после установки будут доступны два
рабочих места. В этом режиме отключается переход в консоль по клавишам
<Ctrl>+<Alt>+<Fx>, а менеджер дисплея lightdm заменяется на wdm. Для
задействования второго места следует создать еще один непривилегированный
пользовательский аккаунт, помимо созданного в процессе установки.
Выбрав профиль и группы пакетов, следует нажать «Далее», после чего
начнется установка пакетов (рис. 15).
Рис. 14 Установка. Состав группы пакетов
56
ЛКНВ.11100-01 90 02
Установка происходит автоматически в два этапа:
- получение пакетов;
- установка пакетов.
Получение пакетов осуществляется с источника, выбранного на этапе
начальной загрузки. При сетевой установке (по протоколу FTP или HTTP) время
выполнения этого шага будет зависеть от скорости соединения и может быть
значительно большим в сравнении с установкой с компакт-диска дистрибутива.
Рис. 15 Установка. Установка пакетов
5.2.6. Сохранение настроек
Начиная с данного этапа, программа установки работает с файлами только что
установленной базовой системы. Все последующие изменения можно будет
совершить после завершения установки посредством редактирования
соответствующих конфигурационных файлов или при помощи модулей управления,
включенных в дистрибутив.
57
ЛКНВ.11100-01 90 02
После завершения установки базовой системы выполняется шаг сохранения
настроек (рис. 16). Он проходит автоматически и не требует вмешательства
пользователя, на экране отображается индикатор выполнения.
Рис. 16 Установка. Сохранение настроек
На данном этапе производится перенос настроек, выполненных на первых
шагах установки, в установленную базовую систему. Также производится запись
информации о соответствии разделов жесткого диска смонтированным на них
файловым системам (заполняется конфигурационный файл /etc/fstab). В список
доступных источников программных пакетов добавляется репозиторий,
находящийся на установочном лазерном диске выполняется команда
apt-cdrom add, осуществляющая запись в конфигурационный файл
/etc/apt/sources.list.
После сохранения настроек осуществляется автоматический переход к
следующему шагу.
58
ЛКНВ.11100-01 90 02
5.2.7. Настройка сети
На этом этапе в окне «Настройка сети» необходимо задать параметры работы
сетевой карты и настройки сети (рис. 17):
- «Имя компьютера:» указать сетевое имя ПЭВМ в поле для ввода имени
компьютера;
- «Интерфейсы:» выбрать доступный сетевой интерфейс, для которого
будут выполняться настройки;
- «Версия протокола IP указать в выпадающем списке версию
используемого протокола IP (IPv4 либо IPv6) и убедиться, что пункт
«Включить», обеспечивающий поддержку работы протокола, отмечен;
- «Конфигурация:» выбрать способ назначения IP-адресов (службы DHCP,
Zeroconf либо вручную);
- «IP-адреса:» пул назначенных IP-адресов из поля «IP:», выбранные адреса
можно удалить нажатием кнопки «Удалить»;
- «IP ввести IP-адрес вручную и выбрать в выпадающем поле
предпочтительную маску сети, затем нажать на кнопку «Добавить» для
переноса адреса в пул поля «IP-адреса:»;
- «Шлюз по умолчанию:» – в поле для ввода необходимо ввести адрес шлюза,
который будет использоваться сетью по умолчанию;
- «DNS-серверы:» в поле для ввода необходимо ввести список
предпочтительных DNS-серверов, которые будут получать информацию о
доменах, выполнять маршрутизацию почты и управлять обслуживающими
узлами для протоколов в домене;
- «Домены поиска:» в поле для ввода необходимо ввести список
предпочтительных доменов, по которым будет выполняться поиск.
Конкретные значения будут зависеть от используемого сетевого окружения.
Ручного введения настроек можно избежать, если в сети уже есть настроенный
DHCP-сервер. В этом случае все необходимое сетевые настройки будут получены
автоматически.
59
ЛКНВ.11100-01 90 02
Для сохранения настроек сети и продолжения работы программы установки
необходимо нажать на кнопку «Далее».
Рис. 17 Установка. Настройка сети
5.2.8. Администратор системы
На данном этапе загрузчик создает учетную запись администратора (рис. 18).
В открывшемся окне необходимо ввести пароль учетной записи администратора
(root). Чтобы исключить опечатки при вводе пароля, пароль учетной записи
вводится дважды.
60
ЛКНВ.11100-01 90 02
Рис. 18 Установка. Задание пароля администратора
Для автоматической генерации пароля необходимо отметить пункт «Создать
автоматически». Система предложит пароль, сгенерированный автоматическим
образом в соответствии с требованиями по стойкости паролей.
В любой системе Linux всегда присутствует один специальный пользователь –
администратор системы, он же суперпользователь. Для него зарезервировано
стандартное системное имя – root.
Администратор системы отличается от всех прочих пользователей тем, что
ему позволено производить любые, в том числе критичные изменения в системе.
Поэтому выбор пароля администратора системы – очень важный момент для
безопасности. Любой, кто сможет ввести его правильно (узнать или подобрать),
получит неограниченный доступ к системе. Даже собственные неосторожные
действия от имени root могут иметь катастрофические последствия для всей
системы.
61
ЛКНВ.11100-01 90 02
ВАЖНО
Запомните пароль root – его нужно будет вводить для получения права
изменять настройки системы с помощью стандартных средств настройки ОС. Более
подробную информацию о режиме суперпользователя см. в п. 14.2.
Подтверждение введенного (или сгенерированного) пароля учетной записи
администратора (root) и продолжение работы программы установки выполняется
нажатием кнопки «Далее».
5.2.9. Системный пользователь
На данном этапе программа установки создает учетную запись системного
пользователя (пользователя) ОС Альт 8 СП (рис. 19).
Рис. 19 Установка. Создание пользователя
62
ЛКНВ.11100-01 90 02
Помимо администратора (root) в систему необходимо добавить, по меньшей
мере, одного обычного системного пользователя. Работа от имени администратора
системы считается опасной, поэтому повседневную работу в Linux следует
выполнять от имени ограниченного в полномочиях системного пользователя.
При добавлении системного пользователя предлагается в окне «Системный
пользователь» необходимо заполнить следующие поля:
- «Имя:» – имя учетной записи пользователя ОС Альт 8 СП (слово, состоящее
только из строчных латинских букв, цифр и символа подчеркивания «_»,
причем цифра и символ «_» не могут стоять в начале слова);
- «Комментарий:» – любой комментарий к имени учетной записи;
- «Пароль:» пароль учетной записи пользователя (чтобы исключить
опечатки при вводе пароля, пароль пользователя вводится дважды).
Для автоматической генерации пароля необходимо отметить пункт «Создать
автоматически». Система предложит пароль, сгенерированный автоматическим
образом в соответствии с требованиями по стойкости паролей.
В процессе установки предлагается создать только одну учетную запись
пользователя чтобы от его имени администратор мог выполнять задачи, которые
не требуют привилегий администратора (root). Учетные записи для всех прочих
пользователей системы можно будет создать в любой момент после ее установки.
Подтверждение введенного (или сгенерированного) пароля учетной записи
системного пользователя и продолжение работы программы установки выполняется
нажатием кнопки «Далее».
5.2.10. Завершение установки
На экране последнего этапа установки отображается информация о
завершении установки ОС Альт 8 СП (рис. 20).
63
ЛКНВ.11100-01 90 02
Рис. 20 Установка. Завершение установки
После нажатия кнопки «Завершить» и перезагрузки компьютера выполняется
штатная загрузка установленной ОС.
П р и м е ч а н и е . Если установка производилась на диск, отличный от того, с
которого ВК загружается по умолчанию — следует повторно зайти в конфигурацию
программы начальной загрузки, определить загрузочный диск (d) и указать его в
качестве загрузочного диска по умолчанию (c). После изменений параметров
загрузки, следует воспользоваться командой m для записи изменений в NVRAM и их
применения в дальнейшем.
Не забудьте извлечь установочный компакт-диск (если это не происходит
автоматически). Далее можно загружать установленную систему в обычном режиме.
64
ЛКНВ.11100-01 90 02
6. НАЧАЛО ИСПОЛЬЗОВАНИЯ ОС АЛЬТ 8 СП
Использование кабеля RS232 (COM) для подключения к консоли
Программа начального старта (ПНС) вычислительного комплекса Эльбрус
является командно-строчной, что позволяет управлять ей через последовательный
порт (порт RS232). Этот вариант подключения имеет ряд преимуществ – вывод
диагностики начинается практически мгновенно после включения машины, ввод
буферизуется (пробельный символ для перехода в меню можно отправить заранее,
не дожидаясь подсказки), на принимающей стороне могут быть доступны средства
копирования/вставки.
В случае терминала, подключенного к последовательному порту, ввод и вывод
производится через оба имеющихся последовательных порта в полудуплексном
режиме.
Для организации подключения используется кабель USB-COM «гнездо»
(«мама»), либо COM-COM («мама»/«мама»).
П р и м е ч а н и е . При использовании кабеля COM-COM возможна ситуация,
когда «общаться» начнут два экземпляра ПНС или, например, agetty – что может
привести к неожиданным результатам; поэтому и предпочтителен асимметричный
вариант USB-COM (ведомый компьютер – COM порт, ведущий – USB).
В качестве эмулятора последовательного терминала можно применять
графические программы (cutecom), текстовые (minicom) или командно-строчные
(cu, miniterm.py).
Параметры последовательного порта (115200 8N1):
- скорость – 115200 бит/сек;
- кадр – 8 бит;
- четность – нет;
- стоп-бит – 1;
- регулировка потока – нет.
65
ЛКНВ.11100-01 90 02
Подключение к консоли на примере входящего в дистрибутив пакета
python-module-serial и кабеля USB-COM:
miniterm.py /dev/ttyUSB0 115200
либо по кабелю COM-COM с применением команды cu из пакета uucp:
cu -l /dev/ttyS0 -s 115200
Далее можно вводить данные, которые хотите отправить в порт. Приходящие
в порт данные от внешних устройств также будут выводиться.
П ри меч ан и е . ПНС ожидает конец строки в форме «CR+LF», загруженная
система – «LF». Может понадобиться соответственно настроить терминальную
программу, либо передать дополнительные аргументы случае miniterm.py это
может быть --lf или --eol LF).
Запуск ОС
После включения ВК «Эльбрус» происходит инициализация программы
начального старта.
Загрузка ОС начинается автоматически после небольшого времени ожидания
(обычно несколько секунд).
Autoboot in xx sec, PRESS SPACE TO DISABLE IT
Загрузка ОС может занять некоторое время, в зависимости от
производительности компьютера. Основные этапы загрузки ОС – загрузка ядра,
подключение (монтирование) файловых систем, запуск системных служб 
 периодически могут дополняться проверкой файловых систем на наличие ошибок.
В этом случае время ожидания может занять больше времени, чем обычно.
Основной задачей программы начальной загрузки является загрузка ОС.
Загрузку можно произвести по одной из четырех схем:
1) дождаться конца таймера обратного отсчета. В этом случае будет
произведена загрузка заранее выбранной программы, с параметрами,
хранящимися в энергонезависимой памяти либо в файле boot.conf (при
его наличии) (метка, указанная как default;). Приоритетом обладает
загрузка по параметрам, указанным в файле boot.conf. В этом случае из
энергонезависимой памяти берется только значение номера устройства
загрузки;
66
ЛКНВ.11100-01 90 02
2) прервать таймер обратного отсчета и нажать клавишу <s>. В этом случае
загрузка произойдет по параметрам, взятым из энергонезависимой памяти.
Содержимое файла boot.conf приниматься в расчет не будет;
3) прервать таймер обратного отсчета и, нажав клавишу <с>, изменить
параметры, взятые из энергонезависимой памяти. Потом, нажав клавишу
<s>, загрузить программу.
4) прервать таймер обратного отсчета и, войдя в диалог загрузки с
использованием конфигурационного файла boot.conf (b основного
режима или #boot расширенного), загрузить одну из меток файла
boot.conf.
П р и м е ч а н и е . Подробнее о работе с программой начального старта можно
узнать из штатной документации ВК «Эльбрус».
Получение доступа к зашифрованным разделам
В случае если был создан шифрованный раздел (см. п. 5.2.4.4.3), потребуется
вводить пароль при обращении к этому разделу (рис. 21).
Рис. 21 Запрос пароля для доступа к шифрованным разделам
Если не ввести пароль за отведенный промежуток времени, то загрузка
системы завершится ошибкой. В этом случае следует перезагрузить систему, нажав
для этого два раза <Enter>, а затем клавиши <Ctrl>+<Alt>+<Delete>.
Вход в систему
6.4.1. Идентификация и аутентификация в графической оболочке MATE
В состав ОС может входить графическая оболочка MATE. Оболочка состоит
из набора различных программ и технологий, используемых для управления ОС и
предоставляющих пользователю графический интерфейс для работы в виде оконных
менеджеров.
67
ЛКНВ.11100-01 90 02
При загрузке в графическом режиме работа загрузчика ОС заканчивается
переходом к окну входа в систему.
Для продолжения работы и входа в ОС Альт 8 СП в графическом режиме
необходимо выбрать одну из учетных записей, предлагаемых в окне
аутентификации. Далее ввести пароль текущей учетной записи и нажать на кнопку
«Войти» (рис. 22).
Рис. 22 Ввод аутентификационных данных в графической оболочке
Для выбора учетной записи, не показанной в списке выбора, нужно раскрыть
выпадающий список со значением логина текущей учетной записи и выбрать пункт
«Другие…» (рис. 23).
Рис. 23 Выбор пользователя
После этого откроется окно ввода логина учетной записи (рис. 24), в котором
нужно ввести логин учетной записи, и нажать на кнопку «Войти». В следующем
окне необходимо ввести пароль учетной записи, и нажать на кнопку «Войти».
68
ЛКНВ.11100-01 90 02
Рис. 24 Ввод имени учетной записи (login)
В результате успешного прохождения процедуры аутентификации и входа в
систему запустится графическая оболочка ОС Альт 8 СП (рис. 25).
П р и м е ч а н и е . Работа в системе с использованием учетной записи
администратора небезопасна, вследствие этого вход в систему в графическом
режиме для администратора (root) запрещен. Попытка зарегистрироваться в системе
будет прервана сообщением об ошибке.
Рис. 25 Графический интерфейс
69
ЛКНВ.11100-01 90 02
В случае если графическая оболочка MATE была включена в состав ОС при
установке, однако не стартовала автоматически, ее допускается вызвать вручную из
консоли с помощью следующих команд:
~/.xinitrc
exec mate-session
Далее необходимо использовать команду startx для запуска MATE.
Подробнее о приложениях для ОС Альт 8 СП Рабочая станция и рабочем
столе MATE приведено в документе «Руководство пользователя.
ЛКНВ.11100-01 91 02».
6.4.2. Идентификация и аутентификация в консольном режиме
При загрузке в консольном режиме работа загрузчика завершается запросом
на ввод логина и пароля учетной записи. В случае необходимости перехода на
другую консоль нажмите клавиши <Ctrl>+<Alt>+<F2>.
Для продолжения работы в консольном режиме необходимо ввести логин
учетной записи пользователя и подтвердить его нажатием клавиши <Enter>. Затем
ввести пароль и подтвердить его аналогичным образом.
В случае успешного прохождения процедуры аутентификации и входа в
систему ОС перейдет к штатному режиму работы и предоставит дальнейший доступ
к консоли (рис. 26).
Рис. 26 Аутентификация пользователя
ПРЕДУПРЕЖДЕНИЕ
В режиме работы с двумя рабочими местами отключается переход в консоль
по клавишам <Ctrl>+<Alt>+<Fx>, а менеджер дисплея lightdm заменяется на wdm.
Для задействования второго места следует создать еще один непривилегированный
пользовательский аккаунт, помимо созданного в процессе установки.
70
ЛКНВ.11100-01 90 02
6.4.3. Виртуальная консоль
В процессе работы ОС Альт 8 СП активно несколько виртуальных консолей.
Каждая виртуальная консоль доступна по одновременному нажатию клавиш <Ctrl>,
<Alt> и функциональной клавиши с номером этой консоли от <F1> до <F6>.
На первых шести виртуальных консолях т <Ctrl>+<Alt>+<F1> до
<Ctrl>+<Alt>+<F6>) пользователь может зарегистрироваться и работать в текстовом
режиме. Если была установлена графическая оболочка MATE, она будет
загружаться в первой виртуальной консоли. Двенадцатая виртуальная консоль
(<Ctrl>+<Alt>+<F12>) выполняет функцию системной консоли на нее выводятся
сообщения о происходящих в системе событиях.
Блокирование сеанса доступа
6.5.1. Блокирование сеанса доступа после установленного времени
бездействия (неактивности) пользователя или по его запросу
После авторизации и загрузки графической рабочей среды MATE,
пользователю предоставляется рабочий стол для работы с графическими
приложениями.
Для безопасности данных компьютера и, чтобы другие пользователи не могли
получить доступ к работающим приложениям, блокируйте свой экран, даже если
оставляете компьютер на короткое время.
Заблокировать сеанс доступа можно по запросу пользователя: панель
инструментов MATE «Система» «Заблокировать экран», или вызвать
клавишами <Ctrl>+<Alt>+<L>.
Также при работе в графическом режиме блокирование сеанса доступа после
установленного времени бездействия происходит посредством срабатывания
программы – хранителя экрана (screensaver).
Время бездействия системы устанавливается: панель инструментов MATE
«Система» → «Параметры» → «Внешний вид» → «Хранитель экрана».
Для разблокировки требуется ввести пароль пользователя и нажать на кнопку
«Разблокировать».
71
ЛКНВ.11100-01 90 02
При заблокированном экране другие пользователи могут входить в систему
под своими учетными записями, нажав на экране ввода пароля кнопку
«Переключить пользователя».
П р и м е ч а н и е . Настройка возможности ввода пароля пользователя с
виртуальной клавиатуры рассмотрена в п. 10.15.
6.5.2. Блокировка виртуальных текстовых консолей
Программа vlock позволяет заблокировать сеанс при работе в консоли.
Для использования программы vlock, требуется ее предварительно
установить:
# apt-get install vlock
Выполнение команды vlock без дополнительных параметров заблокирует
текущий сеанс виртуальной консоли, без прерывания доступа других пользователей:
$ vlock
Блокировка tty2 установлена user.
Используйте Alt-функциональные клавиши для перехода в другие
виртуальные консоли.
Пароль:
Чтобы предотвратить доступ ко всем виртуальным консолям машины, следует
выполнить команду:
$ vlock -a
Теперь вывод на консоль полностью заблокирован user.
Пароль:
В этом случае vlock блокирует текущую активную консоль, а параметр -a
предотвращает переключение в другие виртуальные консоли.
6.5.3. Настройка блокировки возможности пользователя изменять настройки
блокировки системы
Для блокировки возможности пользователя изменять настройки блокировки
системы необходимо выполнить следующие действия:
1) создать файл /etc/dconf/profile/user со следующим содержимым:
user-db:user
system-db:local
72
ЛКНВ.11100-01 90 02
2) создать каталоги /etc/dconf/db/local.d/ и
/etc/dconf/db/local.d/locks:
# mkdir /etc/dconf/db/local.d/
# mkdir /etc/dconf/db/local.d/locks
3) создать файл /etc/dconf/db/local.d/screensaver, в который поместить
текст:
[org/mate/screensaver]
idle-activation-enabled=true
lock-enabled=true
4) в файле /etc/dconf/db/local.d/session установить время бездействия в
минутах:
[org/mate/session]
idle-delay=2
5) запретить пользователям изменять заставку, для этого создать файл
/etc/dconf/db/local.d/locks/00-screensaver со следующим
содержимым:
#prevent users from changing screensaver
/org/mate/screensaver/idle-activation-enabled
/org/mate/screensaver/lock-enabled
/org/mate/desktop/session/idle-delay
6) выполнить обновление:
# dconf update
Завершение работы ОС
Для корректного завершения работы ОС (перезагрузки) во время ее работы
запрещается выключать питание компьютера или перезагружать компьютер
нажатием на кнопку «Reset», так как для корректного завершения работы требуется
размонтирование файловой системы.
Перед окончанием работы с ОС необходимо завершить все работающие
программы.
73
ЛКНВ.11100-01 90 02
6.6.1. Графический режим
Для завершения сеанса пользователя в графическом режиме выбрать на
панели инструментов меню MATE «Система» «Завершить сеанс
пользователя».
Далее откроется окно, в котором предоставляется выбор дальнейших
действий:
- переключить пользователя – сеанс пользователя в графическом режиме
блокируется, другой пользователь может войти в систему под своим
именем;
- завершить сеанс – выполняется завершение сеанса пользователя в
графическом режиме.
Если не производить никаких действий, то сеанс пользователя будет
автоматически завершен через 1 минуту.
Также можно воспользоваться комбинацией клавиш <Ctrl>+<Alt>+<Del>, что
на рабочей станции приведет к вызову диалога завершения работы системы.
6.6.2. Консольный режим
Завершить сеанс пользователя в консольном режиме можно, выполнив
команду exit.
6.6.3. Настройки завершения сеанса пользователя
Для каждого пользователя можно настроить автоматическое завершение
сеанса, после установленного времени бездействия (неактивности) пользователя.
Для этого необходимо создать файл /etc/logout, в который поместить
допустимое время простоя для каждого пользователя, например:
user1 300
user2 200
Формат файла /etc/logout:
<user> <время в секундах от момента последнего действия>
74
ЛКНВ.11100-01 90 02
Выключение/перезагрузка компьютера
6.7.1. Графический режим
Для выключения/перезагрузки компьютера следует выбрать на панели
инструментов MATE → «Система» → «Выключить…».
Далее откроется окно, в котором предоставляется выбор дальнейших
действий:
- ждущий режим – компьютер переводится в режим экономии энергии;
- спящий режим – компьютер переводится в режим энергосбережения,
позволяющий отключить питание компьютера, сохранив при этом текущее
состояние ОС;
- перезагрузить – выполняется перезапуск ОС;
- выключить – выполняется выключение компьютера.
Если не производить никаких действий, то компьютер будет автоматически
выключен через 1 минуту.
Также можно воспользоваться комбинацией клавиш <Ctrl>+<Alt>+<Del>, что
на сервере к перезагрузке системы, при этом необходимо дождаться появления на
экране сообщения «Reboot» (перезагрузка) и выключить питание системы.
6.7.2. Консольный режим
Перезагрузить систему в консольном режиме можно, выполнив команду:
$ systemctl reboot
Завершить работу и выключить компьютер (с отключением питания):
$ systemctl poweroff
Перевести систему в ждущий режим:
$ systemctl suspend
Утилита уничтожения информации при удалении dm-secdel
Операции удаления обычно ограничиваются пометкой блоков данных как
«неиспользуемых» в файловой системе. Утилита dm-secdel, так же помечает
помечает блоки как не используемые, но заменяет очищение, записью случайных
данных в освобождаемые блоки. Таким образом, данные удаляются надежно.
75
ЛКНВ.11100-01 90 02
В силу своего абстрактного характера dm-secdel поддерживает множество
файловых систем, которые поддерживают опцию discard апример, ext3, ext4, xfs,
btrfs).
ПРЕДУПРЕЖДЕНИЕ
Следует создать сопоставленное устройство с помощью инструмента
secdelsetup. Убедиться, что файловая система (ФС) смонтирована на это, а не
основное устройство. Убедиться, что ФС установлена с опцией -o discard.
Проверить смонтирована ли ФС в данный момент с этой опцией можно
посмотрев вывод mount:
/dev/sdd1 on / type ext4 (rw,discard,errors=remount-ro)
Не следует включать ведение журнала данных. Обратите внимание, что при
удалении файлов командой rm удаление будет выполняться асинхронно, поэтому
чтобы убедиться, что данные уже удалены следует использовать команду sync или
опцию монтирования файловой системы -o sync до использования команды rm.
Если необходимо, чтобы имена файлов также были уничтожены, во-первых,
следует убедиться, что файловая система создана полностью без ведения журнала
(например, mkfs.ext4 -O ^has_journal), а во-вторых, удалите сам каталог, тогда
его блоки освободятся и будут стерты. При использовании команды fstrim все
свободные блоки файловой системы будут отброшены (discarded) и,
следовательно, также стерты (файловая система должна быть примонтирована с
опцией -o discard).
Применение: secdelsetup <источник-устройство> [маппинг]
Опции:
1) -d|--detach <устройство> отсоединить устройство;
2) -D|--detach-all|--stop отключить все устройства;
3) -l|--list список активных карт устройства;
4) -a|--all список в другом формате;
5) --lsblk вывод в формате lsblk;
6) --start запускать устройства из secdeltab;
7) --save сохранение активных устройств в secdeltab.
76
ЛКНВ.11100-01 90 02
Отобразить sda5 в secdel5 (один проход со случайными битами):
# secdelsetup /dev/sda5 /dev/mapper/secdel5
Перезапись с тремя проходами (первый проход 1, второй проход случайные
биты и третий проход – 0):
# secdelsetup /dev/sda5 /dev/mapper/secdel5 1R0
Затем файловая система на secdel5 должна быть смонтирована с параметром
-o discard. Например: # mount /dev/mapper/secdel5 /mnt/test/ -o discard
Проверка опций монтирования ФС:
# mount
...
/dev/mapper/secdel1 on /mnt/test type ext4 (rw,relatime,seclabel,discard)
Показать текущие (существующие) карты:
# secdelsetup all
/dev/mapper/secdel5 /dev/sdb5
Сохранить текущие карты в файл /etc/secdeltab, который будет
автоматически активирован после перезагрузки (системной службой
secdeltab.service): # secdelsetup --save
Отсоединить все активные карты:
# secdelsetup --detach-all
detach /dev/mapper/secdel5
77
ЛКНВ.11100-01 90 02
7. НАСТРОЙКИ СИСТЕМЫ
Центр управления системой
Для управления настройками установленной системы можно использовать
ЦУС (также см. применение ЦУС в документе «Руководство по комплексу средств
защиты. ЛКНВ.11100-01 99 02»).
ЦУС состоит из нескольких независимых диалогов-модулей. Каждый модуль
отвечает за настройку определенной функции или свойства системы. Модули
настройки сгруппированы по задачам.
Список установленных модулей можно просмотреть, выполнив команду от
администратора:
# alterator-standalone
ЦУС можно использовать для разных целей, например, скобках указаны
имена соответствующих модулей):
- просмотр системных журналов (logs) (п. 8.16.1);
- управление системными службами (services) (п. 8.16.2);
- конфигурирование сетевых интерфейсов (net-eth) (п. 8.5.1);
- настройка межсетевого экрана (net-iptables) (п. 8.14.1);
- настройка ограничений на использование внешних носителей
(ports-access, доступно только в веб-интерфейсе) (п. 7.4.4);
- создание, удаление и редактирование учетных записей пользователей (users)
(п. 8.16.5);
- изменения пароля администратора системы (root) (п. 8.16.6);
- настройка даты и времени (datetime) (п. 8.16.7);
- настройка ограничений выделяемых ресурсов памяти пользователям
(квоты) (quota п. 8.16.8);
- конфигурирование групповых политик (gpupdate) (п. 9.3);
- управление выключением удаленного компьютера (ahttpd-power, доступно
только в веб-интерфейсе) (п. 8.16.9).
П р и м е ч а н и е . Соответствующие наименования пакетов ЦУС
alterator-<имя_модуля>, например, alterator-net-eth.
78
ЛКНВ.11100-01 90 02
Чтобы исключить возможность несанкционированного доступа к ЦУС по
окончанию работы, необходимо завершить сеанс, нажав кнопку «Выйти».
7.1.1. Графический интерфейс
Графический интерфейс ЦУС можно запустить следующими способами:
- комбинацией клавиш <ALT>+<F2> открыть окно быстрого запуска
приложений и ввести в поле название программы – acc;
- выбрать на панели инструментов меню MATE «Система»
«Администрирование» → «Центр управления системой» (рис. 27);
- при помощи консоли (приложение «Терминал среды MATE»), в которой
необходимо ввести команду acc;
- зная имя модуля, запустить графический интерфейс для него, можно также
выполнив команду:
$ alterator-standalone <имя-модуля>
Запуск ЦУС требует прав администратора – введите пароль root (рис. 28).
Рис. 27 Запуск «Центра управления системой»
Рис. 28 Запрос пароля для запуска «Центра управления системой»
79
ЛКНВ.11100-01 90 02
После успешного входа откроется окно ЦУС (рис. 29).
Кнопка «Режим эксперта» (рис. 29) позволяет выбрать один из режимов:
- основной режим (кнопка отжата);
- режим эксперта (кнопка нажата).
Выбор режима влияет на количество отображаемых модулей. В режиме
эксперта отображаются все модули, а в основном режиме только наиболее
используемые.
Рис. 29 Окно «Центр управления системой»
7.1.2. Веб-интерфейс ЦУС
ЦУС имеет веб-ориентированный интерфейс, позволяющий управлять
системой с любого компьютера сети.
Для запуска веб-ориентированного интерфейса, должен быть установлен
пакет alterator-fbi:
# apt-get install alterator-fbi
80
ЛКНВ.11100-01 90 02
Должен быть запущен сервис ahttpd и alteratord:
systemctl enable ahttpd
systemctl start ahttpd
systemctl enable alteratord
systemctl start alteratord
Работа с ЦУС может происходить из любого веб-браузера. Для начала работы
необходимо перейти по адресу https://localhost:8080/ или
https://IP-адрес:8080/.
IP-адрес можно узнать, выполнив команду:
$ ip addr
П р и м е ч а н и е . IP-адрес будет указан после слова inet:
inet 192.168.88.211/24 brd 192.168.0.255 scope global eth0
IP-адрес 192.168.88.211.
Для начала работы с ЦУС необходимо зарегистрироваться. Запуск ЦУС
требует прав администратора (ввести пароль root) (рис. 30). Дополнительно на этапе
регистрации можно выбрать язык интерфейса. По умолчанию предлагается язык,
определенный настройками браузера.
Рис. 30 Запрос пароля администратора для запуска веб-интерфейса ЦУС
После успешного входа откроется окно «Центра управления системой»
(рис. 31).
81
ЛКНВ.11100-01 90 02
Рис. 31 Окно веб-интерфейса «Центр управления системой»
Веб-интерфейс ЦУС можно настроить (кнопка «Настройка»), выбрав один из
режимов:
- основной режим;
- режим эксперта.
Выбор режима влияет на количество отображаемых модулей. В режиме
эксперта отображаются все модули, а в основном режиме только наиболее
используемые.
ЦУС содержит справочную информацию по модулю, которую можно
прочитать, нажав, на кнопку «Справка» (см. п. 7.1.5).
ПРЕДУПРЕЖДЕНИЕ
После работы с ЦУС, в целях безопасности, не оставляйте открытым браузер.
Обязательно закройте веб-интерфейс нажать на кнопку «Выйти».
82
ЛКНВ.11100-01 90 02
7.1.3. Установка и удаление модулей ЦУС
Состав модулей, предоставляющих различные возможности для настройки
системы в веб-интерфейсе, можно изменять.
Установленные пакеты, которые относятся к ЦУС, можно просмотреть,
выполнив команду:
# rpm qa | grep alterator
Для поиска прочих пакетов ЦУС выполните команду:
# apt-cache search alterator*
Модули можно дополнительно загружать и удалять как обычные программы:
# apt-get install alterator-net-openvpn
# apt-get remove alterator-net-openvpn
7.1.4. Права доступа к модулям ЦУС
Администратор имеет доступ ко всем модулям, установленным в системе, и
может назначать права доступа для пользователей к определенным модулям.
Для разрешения доступа пользователю к конкретному модулю,
администратору в веб-интерфейсе ЦУС необходимо выбрать нужный модуль и
нажать ссылку «Параметры доступа к модулю», расположенную в нижней части
окна модуля (рис. 32).
Рис. 32 Ссылка «Параметры доступа к модулю»
В открывшемся окне, в списке «Новый пользователь» необходимо выбрать
пользователя, который получит доступ к данному модулю, и нажать на кнопку
«Добавить». Для сохранения настроек необходимо перезапустить HTTP-сервер, для
этого достаточно нажать на кнопку «Перезапустить HTTP-сервер» (рис. 33).
83
ЛКНВ.11100-01 90 02
Рис. 33 Параметры доступа к модулю
Для удаления доступа пользователя к определенному модулю,
администратору, в окне этого модуля необходимо нажать ссылку «Параметры
доступа к модулю», в открывшемся окне в списке пользователей, которым разрешен
доступ, выбрать пользователя, нажать на кнопку «Удалить» (рис. 33) и нажать на
кнопку «Перезапустить HTTP-сервер».
Системный пользователь, пройдя процедуру аутентификации (рис. 34), может
просматривать и вызывать модули, к которым он имеет доступ (рис. 35).
Рис. 34 Запрос пароля учетной записи пользователя для запуска веб-интерфейса
ЦУС
84
ЛКНВ.11100-01 90 02
Рис. 35 Веб-интерфейс ЦУС, запущенный от системного пользователя
7.1.5. Получение справочной информации
Все модули ЦУС содержат встроенную справку, поясняющую назначение
конкретного модуля. Справка вызывается кнопкой «Справка» (рис. 36).
Рис. 36 Получение справочной информации о модуле ЦУС
85
ЛКНВ.11100-01 90 02
Выбор программ, запускаемых автоматически при входе в систему
Для более удобной работы с системой можно выбрать определенные
программы, которые будут запущены автоматически при входе пользователя в
систему. Автозапускаемые программы автоматически сохраняют свое состояние и
безопасно завершаются сеансовым менеджером при выходе из системы и
перезапускаются при входе.
Инструмент настройки сессии позволяет настроить, какие программы будут
автоматически запущены при входе в систему. Для запуска инструмента настройки
сессии, выбрать на панели инструментов меню MATE «Система»
«Параметры» → «Личные» → «Запускаемые приложения».
7.2.1. Вкладка автоматического запуска программ
Список автоматически запускаемых программ представлен на
вкладке «Автоматически запускаемые программы» (рис. 37). Этот список содержит
краткое описание каждой программы и отметку, указывающую запускать
программу или нет.
Рис. 37 Автоматически запускаемые программы
86
ЛКНВ.11100-01 90 02
На этой вкладке можно добавлять, удалять и изменять автозапускаемые
приложения.
Для добавления новой автоматически запускаемой программы, следует
выполнить следующие шаги:
- нажать на кнопку «Добавить». Откроется окно «Новая автоматически
запускаемая программа»;
- указать имя программы и команду, которая запустит приложение (рис. 38);
- нажать на кнопку «Добавить».
Рис. 38 Добавление автоматически запускаемой программы
7.2.2. Вкладка настроек сессии
Менеджер сеанса может запомнить какие приложения были запущены при
выходе из системы и автоматически запустить их при входе в систему. Для того
чтобы это происходило каждый раз при выходе из системы, следует на
вкладке «Опции» отметить пункт «Автоматически запоминать запущенные
приложения при выходе из сеанса» (рис. 39).
Рис. 39 Запоминать запущенные приложения при выходе из сеанса
87
ЛКНВ.11100-01 90 02
Задание хешей паролей
В ОС Альт 8 СП реализована возможность хранения аутентификационной
информации пользователей, полученной с использованием хеш-функций по
ГОСТ Р 34.11–2012.
Для смены алгоритма хеширования, внести изменения в файл
/etc/pam.d/system-auth-local-only изменить строку:
auth required pam_tcb.so shadow fork nullok
на
auth required pam_tcb.so shadow fork prefix=$2y$ count=8 nullok
и строку:
password required pam_tcb.so use_authtok shadow fork nullok
write_to=tcb
на
password required pam_tcb.so use_authtok shadow fork prefix=$2y$
count=8 nullok write_to=tcb
где в значение prefix= подставляется значения для алгоритмов:
- $gy$ gost-yescrypt, в соответствии с ГОСТ Р 34.11–2012;
- $2y$ алгоритм bcrypt.
Для проверки результата просмотреть текущий хэш паролей пользователя root
и произвольного пользователя выполнить команду:
cat /etc/tcb/имя_пользователя/shadow
Пример ожидаемого результата (bcrypt):
root:$2y$08$ClW.L8YyyBhbytvuCIiJS.XbGk8E4bV4S6gDqRH9daEuXYr2Y4a4m:18470::::::
Пример ожидаемого результата (gost-yescrypt):
root:$gy$jCT$v3mAdHCfMMlPJVvDZNl5I0$qjAbTbqQhl6eO6l7DZnnTW/5ZRmTO.AcZcVYgLyqsz5
:18477::::::
Выполнить команду просмотра типа хэша пароля пользователя:
passwd -S имя_пользователя
Результат (bcrypt): Password set, blowfish mode Y encryption
Результат (gost-yescrypt): Password set, gost-yescrypt encryption
88
ЛКНВ.11100-01 90 02
Настройка разграничения доступа к подключаемым устройствам
7.4.1. Общие сведения
В ОС Альт 8 СП осуществляется разграничение доступа к символьным и
блочным устройствам, для которых в каталоге /dev создаются файлы устройств.
Разграничение выполняется с использованием генерации правил менеджера
устройств udev.
П р и м е ч а н и е . При разграничении доступа к устройствам типа видеокарт,
либо сетевых карт, названный метод не используется.
Для решения задачи разграничения доступа к устройствам на основе
генерации правил менеджера устройств udev в ОС реализованы:
- средства разграничения доступа к устройствам на основе правил udev;
- средства регистрации устройств.
Средства разграничения доступа к устройствам на основе генерации правил
udev обеспечивают дискреционное разграничение доступа пользователей к
подключаемым, в первую очередь, через интерфейс USB, устройствам (сканерам,
съемным накопителям, видеокамерам).
Средства регистрации устройств обеспечивают учет подключаемых устройств
и съемных носителей в системе, установку дискреционных атрибутов доступа
пользователей к устройствам и создание дополнительных правил доступа к
устройству (например, ограничение на подключение устройства только к
определенному USB-порту).
7.4.2. Ограничения при помощи правил udev
Udev сервис, который подхватывает и конфигурирует внешние устройства,
получая уведомления от ядра ОС. Udev гибко настраивается под оборудование и
задачи с помощью специальных правил.
Разграничение доступа к устройству осуществляется на основе
соответствующего правила для менеджера устройств udev, которое хранится в
файле в каталоге /etc/udev/rules.d. Файл правил обязательно должен иметь
расширение .rules.
89
ЛКНВ.11100-01 90 02
Далее приведен пример правила для съемного USB-носителя:
ENV{ID_SERIAL}=="JetFlash_TS256MJF120_OYLIXNA6", OWNER="user",
GROUP="users"
В приведенном примере для съемного USB-носителя с серийным номером
JetFlash_TS256MJF120_OYLIXNA6 разрешено его использование владельцу
устройства: пользователю user и пользователям, входящим в группу users.
Типовое правило udev состоит из нескольких пар «ключ значение»
разделенных запятой.
Одни ключи используются для проверки соответствия устройства
определенному правилу, в таких ключах используется знак «==» для разделения
пары. Следующий пример отражает применение правила только для случая, если
значения ключа SUBSYSTEM для этого устройства равно «block»:
SUBSYSTEM=="block"
Другие ключи используются для указания действия, если все условия
соответствия выполняются. Для разделения пар в таких ключах используется знак
равно «=». Например, в случае с NAME="mydisk" правило будет выглядеть
следующим образом:
SUBSYSTEM=="block", ATTR(size)=="1343153213", NAME="mydisk"
Это правило выполнится только для устройства подсистемы block и с
размером 1343153213 байт.
Для правил udev существуют следующие ключи соответствия:
- SUBSYSTEM подсистема устройства;
- KERNEL имя выдаваемое устройству ядром;
- DRIVER драйвер обслуживающий устройство;
- ATTR sysfs атрибут устройства;
- SUBSYSTEMS подсистема родительского устройства.
Для действий используются ключи:
- NAME установить имя файла устройства;
- SYMLINK альтернативное имя устройства;
- RUN выполнить скрипт при подключении устройства;
90
ЛКНВ.11100-01 90 02
- GROUP группа, у которой есть доступ к файлу;
- OWNER владелец файла устройства;
- MODE маска прав доступа.
Ключ ATTR позволяет получить информацию об устройстве. Посмотреть все
возможные udev параметры для устройства можно с помощью команды udevadm.
Например, для диска /dev/sda команда просмотра параметров будет
выглядеть следующим образом:
$ udevadm info -a -n sda1
Для создания файла с правилами нужно выполнить следующую команду:
touch /etc/udev/rules.d/usb.rules
Правило отключения ручного монтирования, для всех пользователей не из
группы «plugdev», которое необходимо добавить в файл usb.rules, будет
выглядеть следующим образом:
BUS=="usb", SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add",
GROUP="plugdev", MODE="660"
Правило, которое при подключении USB-устройства запускает скрипт
/etc/udev/usb_on.sh, и сделает необходимые действия (например, запишет в
log-файл необходимую информацию), будет выглядеть следующим образом:
ACTION=="add", SUBSYSTEM=="block",
ENV{ID_BUS}=="usb|mmc|memstick|ieee1394", RUN+="/bin/bash
/etc/udev/usb_on.sh %E{ID_SERIAL_SHORT} %E{ID_MODEL} %E{ID_VENDOR}"
где:
- ACTION отслеживаемое действие;
- add подключение устройств;
- remove отключение;
- ENV перечень отслеживаемых устройств по типу;
- RUN исполняемое действие.
Скрипту usb_on.sh udev передает следующие данные:
- %E{ID_SERIAL_SHORT} серийный номер USB-устройства;
- %E{ID_MODEL} модель USB-устройства;
- %E{ID_VENDOR} производитель USB-устройства.
91
ЛКНВ.11100-01 90 02
Использование скрипта позволяет выполнять более гибкую настройку правил:
можно не только монтировать устройства, но и выполнять другие действия
(копировать, менять владельца и так далее). Также допускается задавать тип доступа
к информации на носителе, например, «только для чтения».
Далее приводятся примеры оформления других возможных правил для udev:
- отключить все USB-порты:
BUS=="usb", OPTIONS+="ignore_device"
- отключить все блочные устройства, присоединенные к USB-портам:
BUS=="usb", SUBSYSTEM=="block", OPTIONS+="ignore_device"
- назначить постоянное имя файлу устройства второго IDE-диска:
KERNEL=="sdb", NAME="my_spare"
- игнорировать второй USB SCSI/IDE-диск, подключенный по USB:
BUS=="usb", KERNEL=="hdb", OPTIONS+="ignore_device"
7.4.3. Управление монтированием блочных устройств
При монтировании блочных устройств используется утилита mount,
модифицированная для монтирования устройства владельцем или пользователем. В
процессе монтирования от имени пользователя ожидается два параметра:
конкретное наименование файла устройства и конкретное наименование точки
монтирования.
Для предоставления локальным пользователям возможности монтирования
ФС съемных накопителей необходимо наличие в файле /etc/fstab следующей
записи:
/dev/sdb1 /media/usb vfat rw,noauto,user 0 0
7.4.4. Настройка ограничений в веб-интерфейсе ЦУС (alterator-ports-access)
Настроить ограничения на использование внешних носителей можно в
веб-интерфейсе ЦУС (alterator-fbi).
Должны быть установлены пакеты alterator-fbi и alterator-ports-access:
# apt-get install alterator-fbi
# apt-get install alterator-ports-access
Далее необходимо запустить службу ahttpd:
# systemctl start ahttpd
92
ЛКНВ.11100-01 90 02
Открыть в браузере веб-интерфейс ЦУС (п. 7.1.2) и ввести пароль
администратора. Далее в меню «Система» необходимо выбрать пункт «Контроль
доступа к портам» (рис. 40).
Для того чтобы отключить поддержку всех USB-устройств кроме заданных,
необходимо нажать на кнопку «Включить контроль USB-портов».
Для того чтобы добавить USB-устройство в список разрешенных можно
ввести HID устройства в поле ID продукта и нажать на кнопку «Добавить правило».
П р и м е ч а н и е . Перед активацией ограничений предварительно разрешите
использоваение USB-портов для клавиатуры и мыши.
Рис. 40 Контроль доступа к портам
93
ЛКНВ.11100-01 90 02
Для определения подключенных USB-устройств нужно нажать на кнопку
«Сканировать USB-устройства», выделить устройство, которое необходимо
разрешить и нажать на кнопку «Разрешить выбранное устройство» (рис. 41).
Для исключения устройства из списка разрешенных, необходимо выделить
правило, разрешающее данное устройство и нажать на кнопку «Удалить выбранное
правило».
Рис. 41 Добавление USB-устройства в список разрешенных устройств
94
ЛКНВ.11100-01 90 02
Настройка фильтрации пакетов с помощью утилиты iptables
Утилита iptables стандартный интерфейс командной строки для управления
фильтрацией сетевых пакетов и сбора статистики сетевого взаимодействия.
Утилита iptables позволяет фильтровать сетевые пакеты по следующим
параметрам:
- на основе сетевых адресов отправителя и получателя (IP-адреса,
MAC-адреса);
- по протоколам tcp, udp, icmp;
- с учетом входного и выходного сетевого интерфейса;
- на основе используемого порта;
- с учетом даты и времени.
Фильтры состоят из правил. Каждое правило это строка, содержащая в себе
критерии, определяющие, подпадает ли пакет под заданное правило, и действие,
которое необходимо выполнить в случае удовлетворения критерия.
7.5.1. Устройство фильтра iptables
Для iptables в общем виде правила выглядят так:
iptables [-t table] command [match] [target/jump]
Если в правило не включается спецификатор [-t table], то по умолчанию
предполагается использование таблицы filter, если же предполагается использование
другой таблицы, то это требуется указать явно. Спецификатор таблицы так же
можно указывать в любом месте строки правила, однако более или менее
стандартом считается указание таблицы в начале правила.
Непосредственно за именем таблицы должна стоять команда управления
фильтром. Если спецификатора таблицы нет, то команда всегда должна стоять
первой. Команда определяет действие iptables (вставить правило, добавить правило
в конец цепочки, или удалить правило). Тело команды в общем виде выглядит так:
[команда] [цепочка]
Ключ команда указывает на то, что нужно сделать с правилом, например,
команда -А указывает на то, что правило нужно добавить в конец указанной
цепочки.
95
ЛКНВ.11100-01 90 02
Цепочка указывает, в какую цепочку нужно добавить правило. Стандартные
цепочки INPUT, OUTPUT, FORWARD, PREROUTING и POSTROUTING. Они
находятся в таблицах фильтра. Не все таблицы содержат все стандартные цепочки.
Подробнее таблицы и цепочки описаны ниже.
Раздел [match] задает критерии проверки, по которым определяется,
подпадает ли пакет под действие этого правила или нет. Здесь можно указать самые
разные критерии – IP-адрес источника пакета или сети, сетевой интерфейс.
Раздел [target] указывает, какое действие должно быть выполнено при
условии выполнения критериев в правиле. Здесь можно передать пакет в другую
цепочку правил, «сбросить» пакет и забыть про него, выдать на источник сообщение
об ошибке и т. д.
Когда пакет приходит на сетевое устройство, он обрабатывается
соответствующим драйвером и далее передается в фильтр в ядре ОС. Далее пакет
проходит ряд таблиц и затем передается либо локальному приложению, либо
переправляется на другую машину (рис. 42).
Рис. 42 Схема движения пакетов в iptables
96
ЛКНВ.11100-01 90 02
7.5.2. Встроенные таблицы фильтра iptables
По умолчанию используется таблица filter. Опция -t в правиле указывает на
используемую таблицу. С ключом -t можно указывать следующие таблицы: nat,
mangle, filter.
Таблица nat
Таблица nat используется главным образом для преобразования сетевых
адресов Network Address Translation. Через эту таблицу проходит только первый
пакет из потока. Преобразования адресов автоматически применяется ко всем
последующим пакетам.
Таблица имеет три цепочки PREROUTING, OUTPUT и POSTROUTING:
- цепочка PREROUTING используется для внесения изменений в пакеты на
входе в фильтр;
- цепочка OUTPUT используется для преобразования пакетов, созданных
приложениями внутри компьютера, на котором установлен фильтр, перед
принятием решения о маршрутизации;
- цепочка POSTROUTING используется для преобразования пакетов перед
выдачей их в сеть.
Таблица mangle
Таблица mangle используется для внесения изменений в заголовки пакетов.
Примером может служить изменение поля TTL, TOS или MARK. Таблица имеет две
цепочки PREROUTING и OUTPUT:
- цепочка PREROUTING используется для внесения изменений на входе в
фильтр перед принятием решения о маршрутизации;
- цепочка OUTPUT для внесения изменений в пакеты, поступающие от
внутренних приложений. Таблица mangle не должна использоваться для
преобразования сетевых адресов (Network Address Translation) или
маскарадинга (masquerading), для этих целей имеется таблица nat.
97
ЛКНВ.11100-01 90 02
Таблица filter
Таблица filter используется, главным образом, для фильтрации пакетов.
Таблица имеет три цепочки – FORWARD, INPUT, OUTPUT:
- цепочка FORWARD используется для фильтрации пакетов, идущих
транзитом через фильтрующий компьютер;
- цепочка INPUT предназначена для обработки входящих пакетов,
направляемых локальным приложениям фильтрующего компьютера;
- цепочка OUTPUT используется для фильтрации исходящих пакетов,
сгенерированных локальными приложениями фильтрующего компьютера.
7.5.3. Команды утилиты iptables
В таблице 1 приведены команды, которые используются в iptables.
Т а б л и ц а 1 Команды утилиты iptables
Команда
Пример
Пояснения
-A, --append
iptables -A INPUT
Добавляет новое правило в конец
заданной цепочки.
-D, --delete
iptables -D INPUT --
dport 80 -j DROP
iptables -D INPUT 1
Удаление правила из цепочки. Команда
имеет два формата записи, первый
когда задается критерий сравнения с
опцией -D (см. первый пример), второй
порядковый номер правила. Если
задается критерий сравнения, то
удаляется правило, которое имеет в
себе этот критерий, если задается
номер правила, то будет удалено
правило с заданным номером. Счет
правил в цепочках начинается с 1.
-R, --replace
iptables -R INPUT 1
-s 192.168.0.1 -j
DROP
Данная команда заменяет одно правило
другим. Используется в основном во
время отладки новых правил.
-I, --insert
iptables -I INPUT 1
-dport 80 -j ACCEPT
Вставляет новое правило в цепочку.
Число, следующее за именем цепочки,
указывает номер правила, перед
которым нужно вставить новое
правило, другими словами число
(задает номер для вставляемого
правила. В примере, указывается, что
данное правило должно быть 1-м в
цепочке INPUT).
98
ЛКНВ.11100-01 90 02
Продолжение таблицы 1
Команда
Пример
-L, --list
iptables -L INPUT
-F, --flush
iptables -F INPUT
-Z, --zero
iptables -Z INPUT
-N, --new-
chain
iptables -N allowed
-X, --delete-
chain
iptables -X allowed
99
ЛКНВ.11100-01 90 02
Окончание таблицы 1
Команда
Пример
-X, --delete-
chain
iptables -X allowed
-P, --policy
iptables -P INPUT
DROP
-E, --rename-
chain
iptables -E allowed
disallowed
Команда должна быть указана всегда. Список доступных команд можно
просмотреть с помощью команды iptables -h или, что то же самое,
iptables --help. Некоторые команды могут использоваться совместно с
дополнительными ключами.
7.5.4. Ключи утилиты iptables
В таблице 2 приводится список дополнительных ключей и описывается
результат их действия.
100
ЛКНВ.11100-01 90 02
Т а б л и ц а 2 Ключи утилиты iptables
Ключ
Пример
Пояснения
-v, --verbose
--list,
--append,
--insert,
--delete,
--replace
Используется для повышения
информативности вывода и, как правило,
используется совместно с командой
--list. В случае использования с
командой --list, в вывод этой команды
включаются: имя интерфейса, счетчики
пакетов и байт для каждого правила.
Формат вывода счетчиков предполагает
вывод кроме цифр числа еще и символьные
множители K (x1000), M (x1,000,000) и G
(x1,000,000,000). Для того чтобы заставить
команду --list выводить полное число
(без употребления множителей) требуется
применять ключ -x. Если ключ -v,
--verbose используется с командами
--append, --insert, --delete или
--replace, то на вывод будет выдан
подробный отчет о произведенной
операции.
-x, --exact
--list
Для всех чисел в выходных данных
выводятся их точные значения без
округления и без применения множителей
K, M, G.
-n, --numeric
--list
Iptables выводит IP-адреса и номера портов
в числовом виде, предотвращая попытки
преобразовать их в символические имена.
--line-numbers
--list
Включает режим вывода номеров строк при
отображении списка правил.
-c, --set-
counters
--insert,
--append,
--replace
Используется при создании нового правила
для установки счетчиков пакетов и байт в
заданное значение. Например, ключ
--set-counters 20 4000 установит
счетчик пакетов = 20, а счетчик байт =
4000.
--modprobe
Любая команда
Определяет команду загрузки модуля ядра.
7.5.5. Основные действия над пакетами в фильтре iptables
В таблице 3 приведены доступные над пакетами действия.
101
ЛКНВ.11100-01 90 02
Т а б л и ц а 3 Действия над пакетами iptables
Действие
Пояснения
ACCEPT
Пакет прекращает движение по цепочке всем вызвавшим
цепочкам, если текущая цепочка была вложенной) и считается
принятым, тем не менее, пакет продолжит движение по цепочкам
в других таблицах и может быть отвергнут там.
DROP
Отбрасывает пакет и iptables «забывает» о его существовании.
Отброшенные пакеты прекращают свое движение полностью.
RETURN
Прекращает движение пакета по текущей цепочке правил и
производит возврат в вызывающую цепочку, если текущая
цепочка была вложенной, или, если текущая цепочка лежит на
самом верхнем уровне (например, INPUT), то к пакету будет
применена политика по умолчанию.
LOG
Служит для журналирования отдельных пакетов и событий.
В системный журнал могут заноситься заголовки IP-пакетов, и
другая интересующая информация.
REJECT
Используется, как правило, в тех же самых ситуациях, что и
DROP, но в отличие от DROP, команда REJECT выдает сообщение
об ошибке на хост, передавший пакет.
SNAT
Используется для преобразования сетевых адресов (Source
Network Address Translation), т. е. изменение исходящего
IP-адреса в IP-заголовке пакета.
DNAT
Destination Network Address Translation используется для
преобразования адреса места назначения в IP заголовке пакета.
MASQUERADE
В основе своей представляет то же самое, что и SNAT только не
имеет ключа --to-source. Причиной тому то, что маскарадинг
может работать, например, с dialup подключением или DHCP,
т. е. в тех случаях, когда IP-адрес присваивается устройству
динамически.
Если используется динамическое подключение, то нужно
использовать маскарадинг, если же используется статическое
IP-подключение, то лучшим выходом будет использование
действия SNAT.
REDIRECT
Выполняет перенаправление пакетов и потоков на другой порт
той же самой машины. К примеру, можно пакеты, поступающие
на HTTP порт перенаправить на порт HTTP proxy. Действие
REDIRECT очень удобно для выполнения «прозрачного»
проксирования (transparent proxy), когда компьютеры в локальной
сети даже не подозревают о существовании прокси.
102
ЛКНВ.11100-01 90 02
Окончание таблицы 3
Действие
Пояснения
TTL
Используется для изменения содержимого поля «время жизни»
(Time To Live) в IP заголовке. Один из вариантов применения
этого действия это устанавливать значение поля «Time To
Live» во всех исходящих пакетах в одно и то же значение. Если
установить на все пакеты одно и то же значение TTL, то тем
самым можно лишить провайдера одного из критериев
определения того, что подключение к Интернету разделяется
между несколькими компьютерами. Для примера можно
привести число «TTL = 64», которое является стандартным для
ядра Linux.
7.5.6. Основные критерии пакетов в фильтре iptables
В таблице 4 приведены возможные критерии для фильтрации пакетов в
фильтре iptables.
Т а б л и ц а 4 Критерии пакетов в фильтре iptables
Критерий
Пояснения
-p, --protocol
Используется для указания типа протокола. Примерами
протоколов могут быть TCP, UDP и ICMP. Список протоколов
можно посмотреть в файле /etc/protocols. Прежде всего, в
качестве имени протокола в данный критерий можно
передавать три вышеупомянутых протокола, а также ключевое
слово ALL. В качестве протокола допускается передавать число
номер протокола.
-s, --src,
--source
IP-адрес(а) источника пакета. Адрес источника может
указываться без маски или префикса (например, 192.168.1.1),
тогда подразумевается единственный IP-адрес. Можно указать
адрес в виде address/mask, например, как
192.168.0.0/255.255.255.0, или более современным способом
192.168.0.0/24, т. е. фактически определяя диапазон адресов.
Символ «!», установленный перед адресом, означает логическое
отрицание, т. е. --source ! 192.168.0.0/24 означает любой
адрес кроме адресов 192.168.0.x.
-d, --dst,
--destination
IP-адрес(а) получателя. Имеет синтаксис схожий с критерием
--source, за исключением того, что подразумевает адрес места
назначения. Точно так же может определять, как единственный
IP-адрес, так и диапазон адресов. Символ «!» используется для
логической инверсии критерия.
103
ЛКНВ.11100-01 90 02
Продолжение таблицы 4
Критерий
Пояснения
-i,
--in-interface
Интерфейс, с которого был получен пакет. Использование этого
критерия допускается только в цепочках INPUT, FORWARD и
PREROUTING, в любых других случаях будет вызывать
сообщение об ошибке.
-o, --out-
interface
Задает имя выходного интерфейса. Этот критерий допускается
использовать только в цепочках OUTPUT, FORWARD и
POSTROUTING, в противном случае будет генерироваться
сообщение об ошибке.
-f, --fragment
Правило распространяется на все фрагменты
фрагментированного пакета, кроме первого, сделано это
потому, что нет возможности определить исходящий/входящий
порт для фрагмента пакета, а для ICMP-пакетов определить их
тип. С помощью фрагментированных пакетов могут
производиться атаки на межсетевой экран, так как фрагменты
пакетов могут не отлавливаться другими правилами.
-sport,
--source-port
Исходный порт, с которого был отправлен пакет. В качестве
параметра может указываться номер порта или название
сетевой службы. Соответствие имен сервисов и номеров портов
можно найти в файле /etc/services. При указании номеров
портов правила отрабатывают несколько быстрее.
--dport,
--destination-
port
Порт, на который адресован пакет. Аргументы задаются в том
же формате, что и для --source-port.
--tcp-flags
SYN, ACK, FIN SYN определяет маску и флаги tcp-пакета.
Пакет считается удовлетворяющим критерию, если из
перечисленных флагов в первом списке в единичное состояние
установлены флаги из второго списка. В качестве аргументов
критерия могут выступать флаги SYN, ACK, FIN, RST, URG,
PSH, а также зарезервированные идентификаторы ALL и
NONE. ALL означает ВСЕ флаги, а NONE НИ ОДИН флаг.
Так, критерий --tcp-flags ALL NONE означает, что все флаги в
пакете должны быть сброшены. Символ «!» означает инверсию
критерия. Имена флагов в каждом списке должны разделяться
запятыми, пробелы служат для разделения списков.
--icmp-type
Тип сообщения ICMP определяется номером или именем.
Числовые значения определяются в RFC 792. Чтобы получить
список имен ICMP значений выполните команду iptables --
protocol icmp --help. Символ «!» инвертирует критерий,
например, --icmp-type ! 8.
104
ЛКНВ.11100-01 90 02
Окончание таблицы 4
Критерий
Пояснения
--state
Для использования данного критерия в правиле перед
--state нужно явно указать -m state. Проверяется признак
состояния соединения. Можно указывать 4 состояния:
INVALID, ESTABLISHED, NEW и RELATED. INVALID
подразумевает, что пакет связан с неизвестным потоком или
соединением и, возможно содержит ошибку в данных или в
заголовке. ESTABLISHED указывает на то, что пакет
принадлежит уже установленному соединению, через которое
пакеты идут в обоих направлениях. NEW подразумевает, что
пакет открывает новое соединение или пакет принадлежит
однонаправленному потоку. RELATED указывает на то, что
пакет принадлежит уже существующему соединению, но при
этом он открывает новое соединение. Примером может
служить передача данных по FTP, или выдача сообщения
ICMP об ошибке, которое связано с существующим TCP или
UDP соединением. Признак NEW это не то же самое, что
установленный бит SYN в пакетах TCP, посредством которых
открывается новое соединение, и, подобного рода пакеты
могут быть потенциально опасны в случае, когда для защиты
сети используется один сетевой экран.
7.5.7. Модули iptables
Возможности фильтрации пакетов расширяются через модули. Модули
подключаются автоматически при выборе протокола (-p/--protocol) или вручную
опцией -m/--match, после которой следует имя подключаемого фильтра и его
опции.
Справку по опциям модуля можно получить с помощью ключа -h/--help.
Допустимо указание нескольких модулей.
Результаты фильтрации, выдаваемые модулем, можно инвертировать указав !
перед его именем.
В таблице 5 приведены возможные критерии для фильтрации пакетов в
фильтре iptables.
105
ЛКНВ.11100-01 90 02
Т а б л и ц а 5 Модули iptables
Модуль
Опции
Пояснение
connlimit
[!] --connlimit-above n
пакет подойдет под описание,
если количество одновременных
подключений на данный момент
больше (меньше), чем n
--connlimit-mask bits
позволяет задать маску блока
адресов
Позволяет задавать возможное
количество одновременных
подключений к машине от
заданного IP или блока адресов.
Пример. Допускать не больше 20
соединений на порт 80 с одного
хоста
iptables -A INPUT -p tcp --
syn --dport 80 -m connlimit
--connlimit-above 20 -j
REJECT --reject-with tcp-
reset
icmp
--icmp-type [!] тип тип
ICMP в виде числа или имени в
соответствии с iptables -p
icmp h
Расширение загружается при
указании --protocol icmp.
iprange
[!]--src-range ip-ip
диапазон IP-адресов отправителя
[!]--dst-range ip-ip
диапазон IP-адресов получателя
Выделяет не один адрес, как --
src, а все адреса от ip1 до ip2.
ipv4options
--ssrr должен быть
установлен флаг strict
source routing
(маршрутизация указывается
источником);
--lsrr должен
присутствовать флаг loose
source routing (свободная
маршрутизация);
--no-srr флаг, позволяющий
источнику определить режим
маршрутизации, должен
отсутствовать;
[!] --rr должен
присутствовать флаг RR;
[!] --ts должен
присутствовать флаг TS;
Результат теста зависит от
параметров заголовка IPv4, таких
как параметры маршрутизации,
запись маршрута, запрос
времени, оповещение
маршрутизатора.
Примеры. Отбрасывать пакеты с
флагом record-route:
iptables -A input -m
ipv4options --rr -j DROP
Отбрасывать пакеты с флагом
timestamp:
iptables -A input -m
ipv4options --ts -j DROP
106
ЛКНВ.11100-01 90 02
Продолжение таблицы 5
Модуль
Опции
Пояснение
[!] --ra должен
присутствовать флаг
оповещения маршрутизатора;
[!] --any-opt выдавать
положительный результат
если хотя бы один пункт из
указанных выше был
выполнен.
length
--length [!]
размер[:размер]
Позволяет проверять размеры
пакетов (точно или по диапазону)
limit
--limit частота
максимальная средняя частота
положительных результатов.
После числа можно указывать
единицы: `/second',
`/minute', `/hour', `/day';
значение по умолчанию
3/hour.
--limit-burst number
ограничение на исходное число
пропускаемых пакетов (по
умолчанию 5).
Выдает положительный результат
с фиксированной частотой.
Правило использующее этот
модуль будет выполняться до
момента достижения лимита
наоборот, если указан «!»). Может
использоваться вместе с целью
LOG для получения
ограниченного протоколирования.
multiport
[!]--source-ports
port1,port2,port3:port4
исходный порт равен одному из
указанных;
[!]--destination-ports
port1,port2,port3:port4
порт назначения равен одному
из указанных;
[!]--ports
port1,port2,port3:port4
исходный и порт назначения и
равны одному из указанных.
Позволяет указывать в тексте
правила несколько (до 15) портов
и диапазонов портов (порт:порт).
Используется только вместе с -p
tcp или -p udp.
state
--state состояния список
фильтруемых состояний через
запятую (см. таблицу 4).
Проверяется признак состояния
соединения (state).
107
ЛКНВ.11100-01 90 02
Окончание таблицы 5
Модуль
Опции
Пояснение
string
--algo bm|kmp стратегия
сравнения/поиска (bm =
Boyer-Moore, kmp = Knuth-
Pratt-Morris);
--from позиция позиция в
данных с которой следует
начинать поиск. Значение по
умолчанию – 0.
--to позиция позиция в
данных, при достижении
которой следует прекращать
поиск. Значение по умолчанию
размер пакета;
--string
последовательность
последовательность символов,
которую следует искать в
пакете;
--hex-string pattern
последовательность символов,
которую следует искать в
пакете шестнадцатеричном
представлении).
Позволяет выполнять фильтрацию
пакетов, основываясь на анализе
содержимого области данных
пакета.
tcp
см. таблицу 4
Это расширение загружается при
указании --protocol tcp
u32
--u32 "Start&Mask=Range"
Позволяет извлекать из пакета
данные размером до 4 байт,
применять к ним операции
логического И, сдвига, и проверять
принадлежность получающихся
данных определенным
диапазонам.
В простейшей форме, u32 вырезает
блок из 4 байт начиная со Start,
применяет к ним маску Mask и
сравнивает результат с Range-m
u32
udp
см. таблицу 4
Это расширение загружается при
указании --protocol udp
108
ЛКНВ.11100-01 90 02
Список доступных модулей можно просмотреть, выполнив команду:
# ls /lib/modules/$(uname -r)/kernel/net/netfilter/
Загруженные модули iptables можно найти в записи файловой системы proc
/proc/net/ip_tables_matches:
# cat /proc/net/ip_tables_matches
Загрузка модуля:
# modprobe <модуль>
Например:
# modprobe xt_limit
# modprobe xt_length
# modprobe xt_u32
7.5.8. Использование фильтра iptables
ОС Альт 8 СП уже включает в себя предустановленный iptables. Для его
настройки рекомендуется использовать возможности системы настройки сети
/etc/net (см. п. 8.7).
7.5.9. Примеры команд iptables
Список текущих правил:
iptables -nvL --line-numbers
Очистка всех правил:
iptables -F
Очистка правил в цепочке:
iptables -F INPUT
Удаления пятого правила в цепочке INPUT:
iptables -D INPUT 5
Фильтрация по источнику пакета
Для фильтрации по источнику используется опция -s.
Например, запретить все входящие пакеты с узла 192.168.1.95:
iptables -A INPUT -s 192.168.1.95 -j DROP
Можно использовать доменное имя для указания адреса хоста:
iptables -A INPUT -s test.host.net -j DROP
109
ЛКНВ.11100-01 90 02
Также можно указать целую подсеть:
iptables -A INPUT -s 192.168.1.0/24 -j DROP
Можно использовать отрицание (знак «!»). Например, все пакеты с хостов
отличных от 192.168.1.96 будут уничтожаться:
iptables -A INPUT ! -s 192.168.1.96 -j DROP
Разрешить трафик по localhost:
iptables -A INPUT 1 -i lo -j ACCEPT
Записывать в журнал попытки спуфинга с префиксом "IP_SPOOF A: " и
запретить соединение:
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix
"IP_SPOOF A: "
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
Фильтрация по адресу назначения
Для фильтрации по адресу назначения используется опция -d.
Например, запретить все исходящие пакеты на хост 192.168.1.95:
iptables -A OUTPUT -d 192.168.156.156 -j DROP
Запретить доступ к ресурсу vk.com:
iptables -A OUTPUT -d vk.com -j REJECT
Как и в случае с источником пакета можно использовать адреса под сети и
доменные имена. Отрицание также работает.
Фильтрация по протоколу
Опция -p указывает на протокол. Можно использовать all, icmp, tcp, udp или
номер протокола (из /etc/protocols).
Разрешить входящие эхо-запросы:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Фильтрация по порту источника
Разрешить все исходящие пакеты с порта 80:
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
Заблокировать все входящие запросы порта 80:
iptables -A INPUT -p tcp --dport 80 -j DROP
110
ЛКНВ.11100-01 90 02
Для указания порта необходимо указать протокол (tcp или udp). Можно
использовать отрицание.
Открыть диапазон портов:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport
7000:7010 -j ACCEPT
Фильтрация по порту назначения
Разрешить подключения по HTTP:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Разрешить подключения по SSH:
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
Разрешить получать данные от DHCP-сервера:
iptables -A INPUT -p UDP --dport 68 --sport 67 -j ACCEPT
Разрешить rsync с определенной сети:
iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 --dport 873 -m
state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state
ESTABLISHED -j ACCEPT
Разрешить IMAP/IMAP2 трафик:
iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state
NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state
ESTABLISHED -j ACCEPT
Разрешить исходящие HTTP, FTP, DNS, SSH, SMTP:
iptables -A OUTPUT -p TCP -o eth0 --dport 443 -j ACCEPT
iptables -A OUTPUT -p TCP -o eth0 --dport 80 -j ACCEPT
iptables -A OUTPUT -p TCP -o eth0 --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP -o eth0 --dport 53 -j ACCEPT
iptables -A OUTPUT -p TCP -o eth0 --dport 25 -j ACCEPT
iptables -A OUTPUT -p TCP -o eth0 --dport 22 -j ACCEPT
iptables -A OUTPUT -p TCP -o eth0 --dport 21 -j ACCEPT
Разрешить mysql для локальных пользователей:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
111
ЛКНВ.11100-01 90 02
Разрешить CUPS (сервер печати, порт 631) для пользователей внутри
локальной сети:
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 631 -j
ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 631 -j
ACCEPT
Разрешить синхронизацию времени NTP для пользователей внутри локальной
сети:
iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp -
-dport 123 -j ACCEPT
Перенаправление портов
Направим трафик с порта 442 на 22, это значит, что входящие ssh-соединения
могут быть принятыми с порта 422 и 22:
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.15 --dport 422
-j DNAT --to 192.168.1.15:22
Также надо разрешить входящие соединения с порта 422:
iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state
NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state
ESTABLISHED -j ACCEPT
Как и в случае с портом источника нужно указать протокол. Можно
использовать отрицание.
Ограничение по локальным пользователям
Ограничение по локальным пользователям нельзя поручить внешнему
межсетевому экрану, так как он не имеет этой информации.
Отбросить все пакеты, исходящие от процессов пользователя с UID=500:
# iptables -A OUTPUT -m owner --uid-owner 500 -j DROP
Попытка соединения с удаленным узлом, пользователя с UID=500:
# su test
$ wget ya.ru
--2017-03-07 13:53:14-- http://ya.ru/
Распознается ya.ru (ya.ru)… ошибка: Имя или служба не известны.
wget: не удается разрешить адрес «ya.ru»
112
ЛКНВ.11100-01 90 02
Попытка соединения с локальным узлом, пользователя с UID=500:
# su test
$ wget localhost
--2017-03-07 13:55:20-- http://localhost/
Распознается localhost (localhost)… 127.0.0.1
Подключение к localhost (localhost)|127.0.0.1|:80... ^C
Фильтрация по содержимому пакета
Отбросить все пакеты, данные в которых содержат подстроку virus:
# iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --algo
kmp --string "virus "
Записывать в журнал пакеты со строкой secret внутри:
# iptables -A INPUT -m string --algo kmp --string "secret" -j
LOG --log-level info --log-prefix "SECRET "
Просмотр журнала:
# journalctl |grep SECRET
апр 03 16:47:18 host-15.localdomain kernel: SECRET IN=eth0 OUT=
MAC=08:00:27:d5:f3:78:74:e5:0b:3e:2c:88:08:00 SRC=192.168.3.101
DST=192.168.3.104 LEN=47 TOS=0x00 PREC=0x00 TTL=64 ID=30811 DF
PROTO=TCP SPT=53878 DPT=8080 WINDOW=229 RES=0x00 ACK PSH URGP=0
апр 03 16:58:47 host-15.localdomain kernel: SECRET IN=eth0 OUT=
MAC=08:00:27:d5:f3:78:74:e5:0b:3e:2c:88:08:00 SRC=192.168.3.101
DST=192.168.3.104 LEN=47 TOS=0x00 PREC=0x00 TTL=64 ID=38640 DF
PROTO=TCP SPT=54510 DPT=8080 WINDOW=229 RES=0x00 ACK PSH URGP=0
Статистика правил iptables и счетчики обработанных пакетов в цепочке
INPUT:
# iptables -nvL INPUT --line-numbers
Chain INPUT (policy ACCEPT 1711 packets, 1400K bytes)
num pkts bytes target prot opt in out source destination
1 47 49550 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0
STRING match "virus" ALGO name kmp TO 65535
2 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0
STRING match "virus " ALGO name kmp TO 65535
3 17 66141 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0
STRING match "secret" ALGO name kmp TO 65535 LOG flags 0 level 6 prefix "SECRET "
113
ЛКНВ.11100-01 90 02
Настройка экспорта аудита на удаленный узел
Для настройки экспорта аудита на удаленный узел необходимо настроить
OpenVPN-соединение (см. подробнее п. 8.10) между принимающей и передающей
стороной, настроить межсетевой экран и внести изменения в конфигурационные
файлы аудита.
На принимающей стороне – сервер:
1) скопировать файл /usr/share/doc/openvpn-*/server.conf (* версия
openvpn) в директорию /etc/openvpn/ для его редактирования и
последующего запуска сервера VPN;
2) в скопированном на предыдущем этапе файле server.conf, проверьте
имена и пути файлов сертификата сервера (.crt), его ключа (.key), а также
сертификата CA (.crt) и DH (dh*.pem), а также закомментировать
параметр proto udp и раскомментировать proto tcp;
3) установить утилиту easy-rsa:
# apt-get install easy-rsa
4) сгенерировать все необходимые ключи и сертификаты. Ввести для них
пароли:
# easyrsa init-pki
# easyrsa build-ca
# easyrsa build-server-full server
# easyrsa build-client-full client1
# easyrsa gen-dh
5) перенести полученные ключи и сертификаты в каталог
/etc/openvpn/keys/.
Настройка OpenVPN-клиента на передающей стороне:
1) скопировать из /usr/share/doc/openvpn-*/client.conf (* версия
openvpn) в директорию /etc/openvpn/ для его редактирования и
последующего запуска клиента VPN;
2) скопировать раннее сгенерированные ключи и сертификаты в директорию
/etc/openvpn/keys/ и указать их в client.conf;
114
ЛКНВ.11100-01 90 02
3) открыть client.conf найти строку remote и изменить ее на:
remote 10.10.3.87 1194
где 10.10.3.87 это IP-адрес сервера на внешнем интерфейсе
принимающей стороны.
Также, закомментировать параметр proto udp и раскомментировать
proto tcp.
Отредактировать конфигурационные файлы аудита:
- на принимающей стороне в файле /etc/audit/auditd.conf исправить
параметр tcp_listen_port=1060;
- на передающей стороне в файле /etc/audisp/audisp-remote.conf
исправить параметры:
remote-server 10.8.0.1
port 1060
#queue_error_action
где 10.8.0.1 IP-адрес сервера vpn на созданном интерфейсе-туннеле
принимающей стороны;
- на передающей стороне изменить параметр: active = yes в файле
/etc/audisp/plugins.d/au-remote.conf;
- перезапустить систему на принимающей и передающей сторонах.
Запустить сервер на принимающей стороне:
# openvpn /etc/openvpn/server.conf
Запустить OpenVPN-клиент на передающей стороне:
# openvpn /etc/openvpn/client.conf
Команды установки правила пропуска tcp пакетов с портом назначения 1060
только через устройство vpn (например, tun0) на принимающей стороне:
# iptables A INPUT p tcp --dport 1060 i tun0 j ACCEPT
# iptables A INPUT p tcp --dport 1060 j DROP
115
ЛКНВ.11100-01 90 02
Настройка системы сигнализации на основе nagios
Главной задачей системы мониторинга является оповещение администратора
безопасности, о том, что поведение наблюдаемых объектов изменилось. Также
оповещения должны отсылаться, когда состояние объекта возвращается в норму.
Nagios позволяет использовать в качестве инструмента оповещения программы,
разработанные пользователями.
Система сигнализации состоит из сервера мониторинга (управляющей
машины) и удаленных узлов с датчиками мониторинга (управляемые машины).
На управляющей машине должны работать:
- nagios осуществляет наблюдение, оповещение администратора, контроль
состояния узлов, сервисов. (см. п. 7.7.1 и п. 7.7.3);
- apache2 позволяет использовать веб-браузер для управления интерфейсом
nagios, nagiosdigger;
- nagstamon (п. 0) это монитор состояний и управлений отслеживаемых
узлов, сервисов;
- nagiosdigger это веб-интерфейс ведения журналов производимых nagios.
На управляемых машинах должны работать:
- nagwad осуществляет мониторинг journald и гернерирует предупреждение
на основе сообщений журнала (см. п. 7.7.2);
- nagios-nrpe это агент мониторинга nagios, позволяющий запускать
плагины на наблюдаемых хостах (см. п. 7.7.2).
7.7.1. Настройка сервера мониторинга
Установка пакета nagios
В качестве сервера мониторинга правляющей машины) используется
ОС Альт 8 СП Рабочая станция с выбранной на этапе установки группой пакетов
«Рабочее место контролера событий безопасности».
П р и м е ч а н и е . На этапе установке выбирается или группа пакетов
«Рабочее место контролера событий безопасности» для управляющей машины или
«Датчики системы сигнализации» для управляемых машин.
116
ЛКНВ.11100-01 90 02
Или установить пакеты nagios-full, nagios-www-apache2, nagios-addons-nrpe,
nagwad-templates, nagwad-actions, apache2-mod_ssl (если они еще не установлены).
7.7.2. Настройка удаленных узлов (клиенты)
Расширение NRPE предназначено для выполнения плагинов Nagios на
удаленных машинах. Основная задача позволить Nagios контролировать
«локальные» ресурсы (например, загрузку процессора, использование памяти) на
удаленных машинах. Поскольку эти ресурсы обычно не подвергаются воздействию
внешних машин, то на удаленных машинах должен быть установлен агент, такой
как NRPE (рис. 43).
Рис. 43 Взаимодействие сервера мониторинга с удаленным узлом
На удаленном хосте, за которым необходимо наблюдать, установить пакеты
nagwad и nagios-nrpe, и добавить их в автозагрузку:
# apt-get install nagwad
# apt-get install nagios-nrpe
П р и м е ч а н и е . Пакеты будут установлены по умолчанию, если на
управляемой машине установлена ОС Альт 8 СП с группой пакетов «Датчики
системы сигнализации».
1) Для отслеживания попыток несанкционированного запуска программ
пользователями ОС создать исполняемый скрипт
(chmod +x /usr/lib/nagios/plugins/check_blacklist) check_blacklist со
следующим содержимым:
#!/bin/bash
NAME=`ls -b /var/log/nagwad/blacklist | head -1 `
if [ "$NAME" == "" ]
then
echo "OK"
exit 0
117
ЛКНВ.11100-01 90 02
else
echo "BLACKLIST AUDIT ALERT"
exit 2
fi
2) Привести к указанному виду содержимое конфигурационного файла
/etc/audit/rules.d/50-nagwad.rules:
-w /etc/passwd -p wa -k usergroup-change
-w /etc/group -p wa -k usergroup-change
# blacklist
-a always,exit -S execve -F exit=-EACCES -F perm=x -F success=0 -F uid=0 -F
uid=<указать_uid_нужного_пользователя> -F key=blacklistau
-a always,exit -S execve -F exit=-EPERM -F perm=x -F success=0 -F uid=0 -F
uid=<указать_uid_нужного_пользователя> -F key=blacklistau
П р и м е ч а н и е . Учитывайте архитектуру системы при добавлении правил.
3) В директорию /etc/nagwad/ добавить конфигурационный файл
audit.regexp со следующим содержимым:
open-eacces
open-eperm
exec-eacces
exec-eperm
4) В директорию /etc/nagwad/ добавить конфигурационный файл
blacklist.regexp со следующим содержимым:
blacklistau
5) В конфигурационном файле /etc/cups/cups-files.conf установить:
AccessLog syslog
А в главном конфигурационном файле /etc/cups/cupsd.conf повысить
уровень сообщений о нарушении доступа с warn до info:
LogLevel info
Затем в этом же файле ограничить доступ к операциям печати, например,
разрешив их конкретному пользователю:
<Limit Create-Job Print-Job Print-URI Validate-Job>
Require user имя-пользователя
Order deny,allow
</Limit>
118
ЛКНВ.11100-01 90 02
Подробнее о написании политик доступа к печати
см. https://www.cups.org/doc/policies.html.
6) Содержимое файла /etc/nagios/nrpe-commands/nagwad.cfg привести к
следующему виду:
command[check_audit]=/usr/lib/nagios/plugins/check_nagwad 'audit'
command[check_authdata]=/usr/lib/nagios/plugins/check_nagwad
'authdata'
command[check_login]=/usr/lib/nagios/plugins/check_nagwad 'login'
command[check_devices]=/usr/lib/nagios/plugins/check_nagwad 'device'
command[check_print]=/usr/lib/nagios/plugins/check_nagwad 'print'
command[check_osec]=/usr/lib/nagios/plugins/check_osec 'osec'
command[check_blacklist]=/usr/lib/nagios/plugins/check_blacklist
'blacklist'
Файл конфигурации NRPE содержит несколько определений команд, которые
можно использовать для мониторинга этой машины. Можно редактировать
определения команд, добавлять новые команды и т. д. редактируя
конфигурационный файл NRPE с помощью текстового редактора.
command[check_audit]=/usr/lib/nagios/plugins/check_audit
для сигнализации о попытках НСД к защищаемой в ОС информации о попытках
несанкционированного запуска программ пользователями ОС.
command[check_authdata]=/usr/lib/nagios/plugins/check_authdata
для сигнализации о попытках несанкционированного изменения полномочий
пользователей в ОС, а также изменения, добавления и удаления учетных данных
пользователей.
command[check_devices]=/usr/lib/nagios/plugins/check_devices для
сигнализации о попытках подключения к СВТ незарегистрированных устройств
ввода-вывода информации или о попытках ввода/вывода информации с/на
неучтенные устройства ввода-вывода, в том числе съемные носители информации.
command[check_osec]=/usr/lib/nagios/plugins/check_osec для
сигнализации о нарушении целостности КСЗ и (или) объектов контроля целостности
необходимо, предварительно настроив подсистему контроля целостности osec.
119
ЛКНВ.11100-01 90 02
command[check_blacklist]=/usr/lib/nagios/plugins/check_blacklist
для сигнализации о попытках несанкционированного запуска программ
пользователями ОС.
Cлужбы, которые используют команды из
/etc/nagios/nrpe-commands/nagwad.cfg, прописаны в
/etc/nagios/templates/50-nagwad.cfg (пакет nagios-templates).
7) IP-адрес сервера мониторинга Nagios необходимо добавить в файл
конфигурации /etc/nagios/nrpe.cfg измените следующие строки:
server_address=0.0.0.0
allowed_hosts=192.168.7.100 #сервер мониторинга с Nagios
8) В файле /etc/nagios/send_nsca.cfg установить:
host_address=192.168.7.100 #сервер мониторинга с Nagios
9) В файл /etc/pam.d/system-auth заменить строку:
auth include system-auth-common
на строку:
auth required pam_tally2.so deny=4 audit
10) Добавить службы в автозапуск, используя следующие команды:
systemctl enable osec.timer
systemctl enable nagwad
systemctl enable xinetd
systemctl enable nrpe
11) Перезагрузить ОС.
Лог событий хранится в /var/log/nagwad/.
7.7.3. Добавление удаленных узлов для мониторинга (сервер)
Для добавления удаленных узлов, на сервере мониторинга (управляющая
машина, на которой работает nagios) необходимо:
- установить пакет для БД, далее в настройках используется пакет
mariadb-server дистрибутива ОС Альт 8 СП Сервер);
- создать определения узла и служб nagios для мониторинга удаленного
хоста;
- создать определение nagios для использования плагина check_nrpe.
120
ЛКНВ.11100-01 90 02
Прежде чем контролировать службу, сначала нужно определить хост, который
связан с этой услугой. Можно поместить определения хостов в любом
конфигурационном файле объекта, указанном в директиве cfg_file или
помещенном в каталог, указанный в директиве cfg_dir. Лучше создать новый
шаблон для каждого типа узла, который планируется контролировать.
1) Для каждого наблюдаемого узла в директории /etc/nagios/objects
нужно создать его конфигурационный файл. Например, для узла nagios-node,
имеющего IP-адрес 192.168.7.100, нужно создать файл
/etc/nagios/objects/nagios-node.cfg со следующим содержимым:
define host {
host_name nagios-node
use linux-server
alias nagios-node
address 192.168.7.100
hostgroups nagwad-nodes
}
При необходимости можно выбрать другое имя файла. Критически важным
является указание hostgroups nagwad-nodes. Все проверки, которые обеспечивает
пакет nagwad и описаны в шаблоне /etc/nagios/templates/50-nagwad.cfg будут
выполняться именно для этой группы хостов.
После того, как определение было добавлено для узла, который будет
контролироваться, нужно определить службы, которые должны контролироваться,
на этом узле. Как и определения хостов, определения служб могут быть помещены
в любой конфигурационный файл объекта.
2) В /etc/nagios/templates/50-nagwad.cfg для мониторинга на удаленном
узле, например, для отслеживания попыток несанкционированного запуска
программ пользователями ОС:
define service {
name blacklist-event
hostgroup_name nagwad-nodes
use generic-service
service_description blacklist_whitelist
check_command check_nrpe!check_blacklist
}
121
ЛКНВ.11100-01 90 02
где:
- blacklist-event имя проверки;
- blacklist_whitelist описание проверки;
- check_blacklist имя файла-паттерна для поиска событий.
П р и м е ч а н и е . В дальнейшем, при добавлении новых событий для
отслеживания осуществляйте на сервере мониторинга перезагрузку сервиса:
systemctl restart nagios.
3) Запустить службу mariadb командой systemctl start mariadb. Далее
подключиться к СУБД командой mysql и ввести следующие команды:
CREATE DATABASE nagiosdigger;
EXIT;
Будет создана БД для хранения статистики нарушений с именем nagiosdigger.
Затем ввести следующую команду (оболочки):
cat /usr/share/doc/nagiosdigger-0.9/create_tables.sql | mysql -B
nagiosdigger
где 0.9 пример версии nagiosdigger.
После ее выполнения в БД nagiosdigger будут созданы все необходимые
таблицы.
Следом, нужно снова подключиться к СУБД командой mysql и ввести
следующие команды:
GRANT INSERT,SELECT ON nagiosdigger.logs TO nagioslogs@localhost
IDENTIFIED BY 'пароль';
FLUSH PRIVILEGES;
EXIT;
указав в качестве пароля желаемый пароль для доступа к БД статистики
нарушений.
4) Для того, чтобы собирающее статистику нарушений ПО имело
возможность чтения и записи статистики нарушений, использованный при
конфигурации БД пароль необходимо прописать в конфигурационный файл
/etc/nagios/nagiosdigger/config.ini (строка dbi_pass).
122
ЛКНВ.11100-01 90 02
5) Включить копирование записей о событиях в БД, записав в
конфигурационный /etc/nagios/nagios.cfg строку:
global_service_event_handler=nagiosdigger-service-handler
6) Импортировать в БД статистику нарушений, имеющуюся в журнале Nagios,
ввести команду:
cat /var/log/nagios/nagios.log | sort | nagiosdigger-import
7) Добавить службы в автозапуск, используя следующие команды:
systemctl enable xinetd
systemctl enable mariadb
systemctl enable nagios
systemctl enable httpd2
8) Для обеспечения удаленного доступа пользователя root на наблюдаемые
узлы, выполнить от его имени следующие команды (предварительно на
управляемой машине должны быть выполнены команды echo PermitRootLogin
yes >> /etc/openssh/sshd_config и
service sshd restart):
ssh-keygen # однократно
ssh-copy-id <IP_адрес_узла> # для каждого наблюдаемого узла
9) Запустить программу Nagstamon, нажать на кнопку «Создать сервер», в
появившемся диалоговом окне ввести параметры для доступа к локальному серверу
Nagios. По умолчанию установлен пароль nagios; поменять его можно с помощью
команды:
htpasswd /etc/nagios/nagios.web-users <имя_пользователя>
и ввести новый пароль.
10) В настройках программы Nagstamon выбрать «Actions» и установить
«Connection method» в положение «IP resolved by hostname».
11) В настройках программы Nagstamon выбрать «Actions/New action», задать
тип действия «Command», имя NSCA_shell и команду:
xvt -- ssh -t root@$ADDRESS$ -- nsca-shell \"$SERVICE$\"
Там же добавить еще одну команду с именем Lock_host и команду:
ssh root@$ADDRESS$ -- /bin/openvt -wfs -- vlock -a
123
ЛКНВ.11100-01 90 02
12) Перезагрузить ОС.
13) Для удаления сигнализации события, необходимо на управляемой машине
перенести содержимое /var/log/nagwad/<имя_события> в
/var/log/nagwad/<имя_события>.archived/.
7.7.4. Тестирование системы мониторинга
Необходимо убедиться, что плагин check_nrpe может обмениваться данными
с демоном NRPE на удаленном узле:
/usr/lib/nagios/plugins/check_nrpe -H 192.168.7.101
где 192.168.7.101 – IP-адрес удаленного хоста, на котором установлен NRPE.
Если плагин возвращает ошибку, необходимо проверить следующее:
- между удаленным узлом и сервером мониторинга нет межсетевого экрана,
который блокирует связь;
- демон NRPE правильно установлен и запущен на удаленном узле;
- на удаленном узле нет правил локального брандмауэра, которые не
позволяют подключаться серверу мониторинга.
Проверить состояние сигнализатора на управляемом узле, можно выполнив на
нем через ssh команду:
# systemctl status nagwad
В строке Tasks должно находиться, как минимум 16 заданий.
Проверить конфигурационные файлы Nagios можно командой:
# /usr/sbin/nagios -v /etc/nagios/nagios.cfg
В случае наличия ошибок, их нужно исправить, если все в порядке, нужно
перезапустить Nagios:
# systemctl restart nagios
В течение нескольких минут Nagios должен получить текущую информацию о
состоянии удаленной машины.
После запуска служб можно проверить работу Nagios Core веб-сервером.
Для этого в адресной строке веб-браузера, необходимо ввести адрес:
localhost/nagios
124
ЛКНВ.11100-01 90 02
Если все настроено верно, после ввода аутентификационных данных
(по умолчанию nagios/nagios), будет загружена начальная страница Nagios (рис. 44).
На странице Host Detail будут показаны узлы, за которыми ведется наблюдение и их
состояние (рис. 45).
Рис. 44 Работа с Nagios в веб-браузере
Рис. 45 Список узлов
125
ЛКНВ.11100-01 90 02
7.7.5. Nagstamon
Nagstamon утилита, которая может подключаться к серверам мониторинга,
например, к nagios, для того, чтобы обеспечить в режиме реального времени
информацию о состоянии узлов и служб. Nagstamon в виде небольшой
настраиваемой строчки может висеть в любом месте экрана, отображая количество
проблем в сети. При наведении на нее мышкой, выпадает список проблем.
Пакет nagstamon (если он еще не установлен) следует установить на сервере
мониторинга:
# apt-get install nagstamon
При первом запуске Nagstamon (меню «Приложения» «Системные»
«Nagstamon») появляется диалоговое окно, в котором необходимо настроить хотя
бы один монитор для проверки (рис. 46):
- тип сервера мониторинга: Nagios;
- URL-адрес главной страницы монитора: http://localhost/nagios/;
- URL-адрес монитора CGI: http://localhost/nagios/;
- имя пользователя: nagios;
- пароль: nagios;
- прокси, если необходимо.
Рис. 46 Настройка сервера мониторинга
126
ЛКНВ.11100-01 90 02
Каталог config по умолчанию находится в $HOME/.nagstamon.
Nagstamon находится на рабочем столе, в виде перемещаемой строки
состояния или полноэкранного режима, где представлено краткое описание (рис. 47)
критических, предупреждающих, неизвестных, недостижимых и недоступных узлов
и сервисов. При касании указателем мыши уведомления, выводится подробный
отчет о состоянии (рис. 48). Пользователи также могут получать звуковые сигналы.
Рис. 47 Уведомление о критической ошибке
Рис. 48 Просмотр отчета об ошибке
Nagstamon позволяет пользователю определять действия, предпринимаемые
для отказавших узлов и служб. Также есть встроенные действия:
- Monitor открыть страницу узла/службы в веб-интерфейсе монитора;
- Recheck снова проверить состояние узла/службы;
- Acknowledge позволяет признать проблему с узлом/службой;
- Downtime позволяет настроить обслуживание службы/узла.
С удаленными узлами и службами можно устанавливать соединение через
SSH, RDP, VNC или выполнить любые самоопределяемые действия.
В качестве примера создать действие, которое будет проверять доступность
узла, командой ping. Для этого из контекстного меню выбрать пункт «Edit action»
(Редактировать действие) (рис. 49). В открывшемся окне необходимо нажать на
кнопку «New action…» (Новое действие).
127
ЛКНВ.11100-01 90 02
Рис. 49 Контекстное меню Nagstamon
Существует три типа действий:
- Browser открыть браузер с определенным URL-адресом;
- Command вызов внешней команды с некоторыми связанными
аргументами;
- URL вызывать любой URL в фоновом режиме с аргументами, например,
действие CGI.
Команды и URL-вызовы могут быть построены с использованием некоторых
переменных-заполнителей.
Необходимо выбрать в поле «тип действия»: command. Далее необходимо
указать уникальное имя, например, PING. Содержимое поля «Строка» будет
передано как внешний вызов (рис. 50):
mate-terminal -e "ping $ADDRESS$"
Регулярными выражениями можно отфильтровать узлы и службы, чтобы
меню действий оставалось как можно более удобным. Для сохранения изменений
необходимо нажать на кнопку «OK».
128
ЛКНВ.11100-01 90 02
Рис. 50 Добавление нового действия
129
ЛКНВ.11100-01 90 02
8. СРЕДСТВА УДАЛЕННОГО АДМИНИСТРИРОВАНИЯ, ОРГАНИЗАЦИЯ
СЕТЕВОЙ ИНФРАСТРУКТУРЫ С ПОМОЩЬЮ СЕРВЕРА
Последующие пункты рекомендуются к прочтению опытным пользователям и
системным администраторам.
Вход в систему
Для начала работы по настройке системы сразу после ее установки,
необходимо использовать веб-ориентированный интерфейс ЦУС (см. п. 7.1.2),
позволяющий управлять выбранным компьютером с любого другого в сети.
Развертывание офисной ИТ-инфраструктуры
8.2.1. Подготовка
Перед началом развертывания офисной ИТ-инфраструктуры необходимо
провести детальное планирование. Конкретные решения в каждом случае будут
продиктованы спецификой требований, предъявляемых к офисной
ИТ-инфраструктуре. При этом важно понимать принципы взаимодействия
компьютеров в сети и роль каждого конкретного компьютера: главный сервер,
подчиненный сервер или компьютер-клиент (рабочее место).
Ключевым понятием для работы сети, построенной на базе ОС Альт 8 СП,
является домен.
8.2.2. Домен
Под доменом понимается группа компьютеров с разными ролями. Каждый
сервер обслуживает один домен – группу компьютеров одной сети, имеющую
единый центр и использующую единые базы данных для различных сетевых служб.
С помощью домена можно:
- вести централизованную базу пользователей и групп;
- аутентифицировать пользователей и предоставлять им доступ к сетевым
службам без повторного ввода пароля;
130
ЛКНВ.11100-01 90 02
- использовать единую базу пользователей для файлового сервера, прокси-
сервера, веб-приложений;
- автоматически подключать файловые ресурсы с серверов, анонсированных
по Zeroconf;
- использовать тонкие клиенты, загружаемые по сети и использующие
сетевые домашние каталоги;
- аутентифицировать пользователей как на «ALT-домен», так и на Microsoft
Windows.
П р и м е ч а н и е . Не следует путать это понятие с другими доменами:
почтовыми доменами, доменными именами (DNS), Windows-доменами.
8.2.3. Сервер, рабочие места и аутентификация
Важно понимать роль, которая будет отводиться ОС Альт 8 СП в домене.
Именно сервер (например, под управлением ОС Альт 8 СП Сервер) будет являться
центральным звеном сети, контролируя доступ к ресурсам сети и предоставляя
различные службы для клиентских машин. Все службы, предоставляемые
серверами, используются рабочими местами.
Таким образом, можно выделить:
1) Сервер (компьютер под управлением ОС Альт 8 СП Сервер).
Сервер осуществляет контроль доступа к ресурсам сети, содержит
централизованную базу данных пользователей и удостоверяющий центр для выдачи
сертификатов службам на серверах и рабочих местах.
2) Рабочее место.
Рабочие места – это клиентские, по отношению к серверам, компьютеры,
непосредственно использующиеся для работы пользователей.
Наибольший эффект от использования ОС Альт 8 СП Сервер достигается при
использовании его вместе с рабочими местами под управлением ОС Альт 8 СП
Рабочая станция. Они уже содержат все необходимое для интеграции в сеть с
ОС Альт 8 СП Сервер, в качестве рабочих мест могут использоваться и другие ОС,
возможно, на стороне компьютера-клиента потребуется дополнительная настройка.
131
ЛКНВ.11100-01 90 02
Для доступа к ресурсам сети (например, общим файлам, расположенным на
сервере, либо получения доступа в сеть Интернет) пользователю, работающему на
клиентском компьютере, необходимо авторизоваться на сервере – ввести свои
данные (имя и пароль). После проверки аутентификации главным сервером,
пользователь получает определенный администратором домена объем прав доступа
к ресурсам сети.
3) Авторизация.
Типичный пример – офисное рабочее место, постоянно находящееся в
локальной сети. В этом случае аутентификация в домене происходит
непосредственно в момент регистрации пользователя на рабочем месте
(с доменными аутентификационными данными).
Рабочие места под управлением ОС Альт 8 СП Рабочая станция позволяют
легко настроить такой способ аутентификации. Для этого в ЦУС (раздел
«Аутентификация» см. п. 8.4.5) на рабочей станции, нужно выбрать домен,
управляемый ОС Альт 8 СП Рабочая станция.
Развертывание доменной структуры
Для развертывания доменной структуры предназначен модуль ЦУС «Домен»
из раздела «Система» (пакет alterator-net-domain).
Модуль поддерживает следующие виды доменов:
1) ALT-домен домен, основанный на OpenLDAP и MIT Kerberos.
Рекомендуется для аутентификации рабочих станций под управлением
дистрибутивов ALT. Домен нужно устанавливать только после настройки
сервера DHCP. В противном случае придется выбирать другое имя
домена;
2) Active Directory домен для контроллера домена Samba AD.
Рекомендуется для аутентификации рабочих станций под управлением и
Windows и Linux (см. п. 9.1, п. 9.2);
3) FreeIPA домен для контроллера домена FreeIPA. Рекомендуется для
аутентификации рабочих станций под управлением Linux (см. п. 9.4);
132
ЛКНВ.11100-01 90 02
4) DNS обслуживание только запросов DNS указанного домена сервисом
Bind (см. п. 9.5) (рис. 51).
Рис. 51
Централизованная база пользователей
Основной идеей домена является единая база учетных записей. При такой
организации работы пользователям требуется лишь одна единственная учетная
запись для доступа ко всем разрешенным администратором сети ресурсам. Наличие
в сети единой централизованной базы пользователей позволяет значительно
упростить работу, как самих пользователей, так и системных администраторов.
8.4.1. Создание учетных записей пользователей
Централизованная база пользователей создается на главном сервере.
Наполнить ее учетными записями можно воспользовавшись модулем ЦУС
«Пользователи» (пакет alterator-ldap-users) из раздела «Пользователи» (рис. 53).
Для выбора источника данных о пользователях, необходимо нажать на кнопку
«Выбор источника», выбрать источник и нажать на кнопку «Применить» (рис. 52).
133
ЛКНВ.11100-01 90 02
Рис. 52
Возможные варианты источника данных о пользователях:
- текущий метод аутентификации (выбирается в модуле «Аутентификация»
см. п. 8.4.5);
- файл /etc/passwd (выбран по умолчанию);
- локальная база LDAP;
- база LDAP на другом сервере;
- локальная база Samba DC.
Рис. 53 Создание учетной записи пользователя в модуле «Пользователи»
134
ЛКНВ.11100-01 90 02
Для создания новой учетной записи необходимо ввести имя новой учетной
записи и нажать на кнопку «Создать», после чего имя отобразится в списке слева.
Для дополнительных настроек необходимо выделить существующую учетную
запись, выбрав ее из списка. Список доступных полей зависит от выбранного
источника данных о пользователях.
После создания учетной записи пользователя не забудьте присвоить учетной
записи пароль. Этот пароль и будет использоваться пользователем для регистрации
в домене. После этого на рабочих местах под управлением ОС Альт 8 СП Рабочая
станция, на которых для аутентификации установлен этот домен, можно вводить это
имя пользователя и пароль.
8.4.2. Объединение пользователей в группы
Пользователи могут быть объединены в группы. Это может быть полезно для
более точного распределения полномочий пользователей. Например, члены группы
wheel могут получать полномочия администратора на локальной машине, выполнив
команду:
$ su -
Настройка групп производится в модуле ЦУС «Группы» (пакет
alterator-ldap-groups) из раздела «Пользователи». С помощью данного модуля можно
(рис. 54):
- просматривать актуальный список групп и список пользователей, входящих
в каждую группу;
- создавать и удалять группы;
- добавлять и удалять пользователей в существующие группы;
- привязывать группу к системным группам и группам Samba.
135
ЛКНВ.11100-01 90 02
Рис. 54
Для выбора источника списка групп, нажмите кнопку «Выбор источника»
(рис. 54) и выберите источник (рис. 55).
Рис. 55
Возможные варианты источника данных о пользователях:
- текущий метод аутентификации (выбирается в модуле «Аутентификация»
см. п. 8.4.5);
- файл /etc/group (выбран по умолчанию);
- локальная база LDAP;
- база LDAP на другом сервере;
- локальная база Samba DC.
136
ЛКНВ.11100-01 90 02
Для создания новой группы необходимо ввести название группы и нажать на
кнопку «Создать», после чего имя отобразится в списке слева.
8.4.3. Настройка учетной записи
Во вкладке «Учетная запись» (модуль ЦУС «Группы» пакет alterator-groups)
можно настроить принадлежность учетной записи группам (рис. 56).
Рис. 56
Для этого необходимо в списке групп выделить группу, к которой нужно
добавить(удалить) пользователей. В списке «Члены группы» отображается
информация о членах выделенной группы. В списке «Доступные пользователи»
отображается список пользователей системы. Для включения пользователя в группу
необходимо выбрать пользователя в списке «Доступные пользователи» и нажать на
кнопку . Для исключения пользователя из группы необходимо выбрать
пользователя в списке «Члены группы» и нажать на кнопку .
8.4.4. Привязка групп
Во вкладке «Привязка групп» (модуль ЦУС «Группы») можно привязать
группу к системной группе или к группе Samba (рис. 57).
137
ЛКНВ.11100-01 90 02
Рис. 57
Привязка к системной группе позволяет включать доменных пользователей в
системные группы при регистрации на рабочей станции.
П р и м е ч а н и е . Некоторые системные группы на сервере и на рабочей
станции имеют разные идентификаторы (GID). Проверьте GID используемых
системных групп на сервере и на рабочих станциях (в файле /etc/group).
Привязка к группе Samba позволяет создавать группы Samba, которые могут
использоваться для установки прав доступа на рабочих станциях под управлением
ОС Windows, которые аутентифицируются в ALT-домене (см. п. 9.2).
8.4.5. Настройка рабочей станции
Настройка рабочих станций для использования централизованной
аутентификации производится в ЦУС (графический интерфейс) в разделе
«Аутентификация» (пакет alterator-auth) (рис. 58).
После выбора домена (см. п. 8.2.2), для полного вступления изменений с силу
необходимо перезагрузить систему.
После перезагрузки у пользователя появится возможность авторизоваться с
использованием централизованной аутентификации.
138
ЛКНВ.11100-01 90 02
Рис. 58
Настройка подключения к Интернету
Помимо множества различных служб, которые ОС Альт 8 СП может
предоставлять компьютерам сети, важно определить, будет ли сервер предоставлять
общий доступ в Интернет для компьютеров домена или нет. В зависимости от этого
сервер можно рассматривать как:
- сервер без подключения к сети Интернет это сервер с одним сетевым
интерфейсом (одной сетевой картой), который и связывает его с
компьютерами локальной сети. Такой сервер называется также сервер
рабочей группы;
- шлюз в этом случае сервер обычно имеет два сетевых интерфейса
(например, две сетевые карты), одна из которых служит для подключения к
локальной сети, а другая – для подключения к сети Интернет.
Как для обеспечения доступа в сеть Интернет самого сервера, так и для
настройки общего выхода в Интернет для компьютеров сети необходимо настроить
подключение к Интернету на самом сервере.
139
ЛКНВ.11100-01 90 02
ОС Альт 8 СП поддерживает самые разные способы подключения к сети
Интернет:
- Ethernet (см. п. 8.5.1);
- PPTP (см. п. 8.7.4);
- PPPoE (см. п. 8.7.4);
- и т.д.
Для настройки подключения можно воспользоваться одним из разделов ЦУС
«Сеть»:
- Ethernet-интерфейсы (см. п. 8.5.1);
- PPTP-соединения;
- PPPoE-соединения;
- OpenVPN-соединения (см. п. 8.11.2).
8.5.1. Конфигурирование сетевых интерфейсов
Конфигурирование сетевых интерфейсов осуществляется в модуле ЦУС
«Ethernet-интерфейсы» (пакет alterator-net-eth) из раздела «Сеть» (рис. 59).
Рис. 59 Настройка модуля «Ethernet-интерфейсы»
140
ЛКНВ.11100-01 90 02
В модуле «Ethernet-интерфейсы» можно заполнить следующие поля:
- «Имя компьютера» указать сетевое имя ПЭВМ в поле для ввода имени
компьютера (это общий сетевой параметр, не привязанный к какому-либо
конкретному интерфейсу). Имя компьютера, в отличие от традиционного
имени хоста в Unix (hostname), не содержит названия сетевого домена;
- «Интерфейсы» выбрать доступный сетевой интерфейс, для которого будут
выполняться настройки;
- «Версия протокола IP» указать в выпадающем списке версию
используемого протокола IP (IPv4, IPv6) и убедиться, что пункт
«Включить», обеспечивающий поддержку работы протокола, отмечен;
- «Конфигурация» выбрать способ назначения IP-адресов (службы DHCP,
Zeroconf, вручную);
- «IP-адреса» пул назначенных IP-адресов из поля «IP», выбранные адреса
можно удалить нажатием кнопки «Удалить»;
- «IP» ввести IP-адрес вручную и выбрать в выпадающем поле
предпочтительную маску сети, затем нажать на кнопку «Добавить» для
переноса адреса в пул поля «IP-адреса»;
- «Шлюз по умолчанию» в поле для ввода необходимо ввести адрес шлюза,
который будет использоваться сетью по умолчанию;
- «DNS-серверы» в поле для ввода необходимо ввести список
предпочтительных DNS-серверов, которые будут получать информацию о
доменах, выполнять маршрутизацию почты и управлять обслуживающими
узлами для протоколов в домене;
- «Домены поиска» в поле для ввода необходимо ввести список
предпочтительных доменов, по которым будет выполняться поиск.
«IP-адрес» и «Маска сети» обязательные параметры каждого узла IP-сети.
Первый параметр уникальный идентификатор машины, от второго напрямую
зависит, к каким машинам локальной сети данная машина будет иметь доступ. Если
требуется выход во внешнюю сеть, то необходимо указать параметр
«Шлюз по умолчанию».
141
ЛКНВ.11100-01 90 02
В случае наличия DHCP-сервера (см. п. 8.5.3) можно все вышеперечисленные
параметры получить автоматически выбрав в списке «Конфигурация» пункт
«Использовать DHCP» (рис. 60).
Если в компьютере имеется несколько сетевых карт, то возможна ситуация,
когда при очередной загрузке ядро присвоит имена интерфейсов (eth0, eth1)
в другом порядке. В результате интерфейсы получат не свои настройки. Чтобы этого
не происходило, можно привязать интерфейс к имени по его аппаратному адресу
(MAC) или по местоположению на системной шине.
Рис. 60 Автоматическое получение настроек от DHCP-сервера
Дополнительно для каждого интерфейса можно настроить сетевую
подсистему (NetworkManager, Etcnet), а также должен ли запускаться данный
интерфейс при загрузке системы (рис. 61).
142
ЛКНВ.11100-01 90 02
Рис. 61 Выбор сетевой подсистемы
8.5.2. Настройка общего подключения к сети Интернет
Пользователи корпоративных сетей обычно подключаются к сети Интернет
через один общий канал. Для организации совместного доступа к сети Интернет
стандартными средствами поддерживаются две технологии, которые могут
использоваться как по отдельности, так и совместно:
- использование прокси-сервера (п. 8.5.2.1);
- использование NAT (п. 8.5.2.2).
Оба способа предполагают, что соединение с Интернет компьютера, через
который предполагается настроить общий выход, предварительно
сконфигурировано. Сделать это можно в ЦУС разделе «Сеть».
Прокси-сервер
Отличительной особенностью использования прокси-сервера является то, что,
помимо предоставления доступа к веб-сайтам, прокси-сервер кэширует
загруженные страницы, а при повторном обращении к ним отдает их из своего
кэша. Это может существенно снизить потребление трафика.
У прокси-сервера есть два основных режима работы:
- прозрачный;
- обычный.
Для работы с прокси-сервером в прозрачном режиме специальная настройка
рабочих станций не потребуется. Они лишь должны использовать сервер в качестве
шлюза по умолчанию. Этого можно добиться, сделав соответствующие настройки
на DHCP-сервере.
143
ЛКНВ.11100-01 90 02
Для использования прокси-сервера в обычном режиме потребуется на каждом
клиенте в настройках браузера указать данные прокси-сервера (IP-адрес и порт).
Преимуществом обычного режима работы, требующего перенастройки
программ локальной сети, является возможность производить аутентификацию
пользователей и контролировать их доступ во внешнюю сеть.
В различных браузерах местоположение формы настройки на прокси-сервер
различное.
По умолчанию прокси-сервер не предоставляет доступ в Интернет никому
кроме себя самого. Список сетей, обслуживаемых прокси-сервером можно
изменить, нажав на кнопку «Разрешенные сети…» в модуле ЦУС «Прокси-сервер»
(пакет alterator-squid) из раздела «Серверы» (рис. 62).
Рис. 62 Модуль «Прокси-сервер»
П р и м е ч а н и е . См. также описание настроек прокси-сервера Squid в
п. 8.13.
144
ЛКНВ.11100-01 90 02
Для того чтобы включить аутентификацию пользователей и контролировать
их доступ во внешнюю сеть, необходимо выбрать обычный режим проксирования и
способ аутентификации, отличный от «Без аутентификации» (рис. 63).
Рис. 63 Настройка аутентификации пользователей
Прокси-сервер принимает запросы из локальной сети и, по мере
необходимости, передает их во внешнюю сеть. Поступление запроса ожидается на
определенном порту, который по умолчанию имеет стандартный номер 3128. Если
по каким-то причинам нежелательно использовать данный порт, то можно поменять
его значение на любое другое.
Перед тем как выполнить перенаправление запроса, прокси-сервер проверяет
принадлежность сетевого адрес узла, с которого запрос был отправлен к группе
внутренних сетевых адресов. Для того чтобы запросы, отправленные из локальной
сети, обрабатывались прокси-сервером, необходимо добавить соответствующую
группу адресов (адрес подсети и адресную маску) в список внутренних сетей
в разделе «Разрешенные сети» (рис. 64).
Вторым условием передачи запроса является принадлежность целевого порта
к разрешенному диапазону. Посмотреть и отредактировать список разрешенных
целевых портов можно в разделе «Разрешенные протоколы» (рис. 65).
145
ЛКНВ.11100-01 90 02
Рис. 64 Настройка списка внутренних сетей
Рис. 65 Настройка списка разрешенных целевых портов
Прокси-сервер позволяет вести статистику посещений страниц в Интернете.
Она доступна в модуле ЦУС «Прокси-сервер» (пакет alterator-squidmill) в разделе
«Статистика» (п. 8.15). Основное предназначение статистики просмотр отчета об
объеме полученных из Интернета данных в привязке к пользователям (если
включена аутентификация) или к IP-адресам клиентов.
146
ЛКНВ.11100-01 90 02
П р и м е ч а н и я :
1. Статистика не собирается по умолчанию. Включить ее сбор следует в
модуле ЦУС «Прокси-сервер» (раздел «Статистика» п. 8.15). Для этого отметьте
«Включить сбор данных прокси-сервера» и нажмите кнопку «Применить».
2. Для учета пользователей в статистике нужно добавить хотя бы одно
правило, например, запрет не аутентифицированных пользователей. Только после
этого в статистике появятся пользователи.
NAT
NAT (Network Address Translation, преобразование сетевых адресов) это
механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных
пакетов. Таким образом, компьютеры локальной сети, имеющие IP-адреса,
зарезервированные для использования исключительно в локальных сетях, могут
использовать общий канал доступа к сети Интернет (общий внешний IP-адрес).
При этом на компьютере-шлюзе, непосредственно подключенном к сети Интернет,
выполняется преобразование адресов.
Настройка NAT осуществляется в модуле ЦУС «Внешние сети» (пакет
alterator-net-iptables) из раздела «Брандмауэр» (см. п. 8.14.1). Для минимальной
настройки достаточно выбрать режим работы Шлюз (NAT), отметить правильный
внешний сетевой интерфейс (рис. 66) и нажать на кнопку «Применить».
Рис. 66 Настройка NAT в модуле «Внешние сети»
147
ЛКНВ.11100-01 90 02
8.5.3. Автоматическое присвоение IP-адресов (DHCP-сервер)
DHCP (Dynamic Host Configuration Protocol) протокол, позволяющий
клиенту самостоятельно получить IP-адрес из зарезервированного диапазона
адресов, а также дополнительную информацию о локальной сети (DNS-сервер сети,
домен поиска, шлюз по умолчанию).
Чтобы настраивать DHCP-сервер, на машине должен быть хотя бы один
статически сконфигурированный Ethernet-интерфейс (см. п. 8.5.1).
Настройка DHCP-сервера осуществляется в модуле ЦУС «DHCP-сервер»
(пакет alterator-dhcp) из раздела «Серверы».
Для включения DHCP-сервера необходимо установить флаг «Включить
службу DHCP» (рис. 67), указать начальный и конечный IP-адрес, а также шлюз по
умолчанию (обычно, это IP-адрес сервера на сетевом интерфейсе, обслуживающем
локальную сеть).
Рис. 67 Настройка модуля DHCP-сервер
148
ЛКНВ.11100-01 90 02
Теперь при включении любой клиентской машины с настройкой «получение
IP и DNS автоматически» будет присваиваться шлюз 192.168.8.250, DNS
192.168.8.251 и адреса начиная с 192.168.8.50 по порядку включения до
192.168.8.60.
Иногда бывает полезно выдавать клиенту один и тот же IP-адрес независимо
от момента обращения. В этом случае он определяется по аппаратному адресу
(MAC-адресу) сетевой карты клиента. Для добавления своих значений в таблицу
соответствия статических адресов следует ввести IP-адрес и соответствующий ему
MAC-адрес и нажать на кнопку «Добавить» (рис. 68).
Рис. 68 Привязка IP-адреса к MAC-адресу
Выданные IP-адреса можно увидеть в списке «Текущие динамически
выданные адреса» ис. 69). Также имеется возможность зафиксировать выданные
адреса, за данными компьютерами. Для этого необходимо отметить хост, за
которым нужно закрепить IP-адрес и нажать на кнопку «Зафиксировать адрес для
выбранных компьютеров».
149
ЛКНВ.11100-01 90 02
Рис. 69 Список динамически выданных адресов
Настройка сети NetworkManager
Программа NetworkManager (рис. 70) позволяет подключаться к различным
типам сетей: проводные, беспроводные, мобильные, VPN и DSL, а также сохранять
эти подключения для быстрого доступа к сети, чтобы в дальнейшем подключиться
автоматически.
При нажатии левой кнопкой мыши на значок NetworkManager в трее, появится
меню, в котором можно выбрать одну из доступных Wi-Fi сетей и подключиться к
ней. Из этого меню так же можно отключить активное Wi-Fi соединение.
Рис. 70 Меню NetworkManger при нажатии левой кнопки мыши
При нажатии правой кнопкой мыши на значок NetworkManager (рис. 71),
появитсяя меню, из которого можно получить доступ к изменению некоторых
настроек, также можно узнать версию программы, посмотреть сведения о
соединении, изменить соединения (например, удалить Wi-Fi сеть, чтобы не
подключаться к ней автоматически).
150
ЛКНВ.11100-01 90 02
Рис. 71 Меню NetworkManger при нажатии правой кнопки мыши
Настройка сети – набор пакетов /etc/net
Набор пакетов /etc/net это система конфигурации сети в ОС семейства
Linux, которая позволяет администратору произвести настройки сети.
8.7.1. Устройство /etc/net
/etc/net интегрирован в ОС Альт 8 СП в виде пакетов:
- etcnet базовые сценарии;
- etcnet-full виртуальный пакет с зависимостями на все пакеты, которые
могут использоваться сценариями /etc/net, с указанием их точных версий;
- etcnet-defaults-desktop умолчания для рабочей станции;
- etcnet-defaults-server умолчания для сервера.
Переменные sysctl в ОС Альт 8 СП конфигурируются в следующих местах:
- /etc/sysctl.conf (глобальные системные);
- /etc/sysconfig/network-scripts/sysctl.conf (общие сетевые в
net-scripts);
- /etc/net/sysctl.conf (общие сетевые в /etc/net);
- /etc/net/ifaces/*/sysctl.conf* (частные для конкретных интерфейсов
или их типов в /etc/net).
151
ЛКНВ.11100-01 90 02
Организация опций /etc/net по умолчанию
Методология работы /etc/net предусматривает несколько шагов
наследования опций, первый из которых загрузка опций по умолчанию. Для их
хранения предназначен каталог /etc/net/options.d, из которого будут
последовательно прочитаны все файлы. В этом каталоге содержится файл
/etc/net/options.d/00-default, содержащий значения по умолчанию, а также
файл /etc/net/options.d/50-ALTLinux-server со специфичными для
дистрибутива значениями.
Для изменения набора функций по умолчанию допускается создать файл с
еще более высоким номером и определить настройки умолчания для своей системы.
В результате такого подхода:
- не изменяются файлы с опциями, принадлежащие пакету. Это делает
обновление пакета намного более корректным;
- можно легко увидеть, какие опции переопределяются на каждом этапе.
Интерфейсы lo, default и unknown
Сразу после установки пакета etcnet в каталоге /etc/net/ifaces котором
хранятся конфигурации интерфейсов) создаются три каталога:
- lo;
- default;
- unknown.
Интерфейс lo стандартная «петля» (loopback), которая должна быть во
всякой Linux-системе, поэтому конфигурация для него включена по умолчанию. В
остальном он ничем не отличается от любого другого интерфейса и
конфигурируется точно так же файлами options и ipv4address.
Интерфейс default специальный каталог, файлы в котором обрабатываются
следующим образом:
- resolv.conf если присутствует, то копируется в /etc/resolv.conf;
- options файл опций, читается после опций по умолчанию;
152
ЛКНВ.11100-01 90 02
- options-<вид интерфейса> файл содержит опции, специфичные для
данного вида интерфейсов. Некоторые из них не обязательны и позволяют
использовать особенности данного вида интерфейсов, например,
LINKDETECT в options-eth; другие обязательны;
- sysctl.conf-<вид интерфейса> файл с переменными sysctl, которые
необходимо изменить. Файл sysctl.conf-dvb отключает return path
filter, что нужно в случае асимметричной маршрутизации;
- iplink-<вид интерфейса> файл с командами iplink, специфичными для
данного вида;
- selectprofile если этот файл исполняемый, то он будет вызван из
сценариев ifup/ifdown, setup/shutdown для того, чтобы вернуть на
стандартном выводе имя профиля, которое необходимо использовать. Это
позволяет автоматически переключать профили в зависимости от
каких-либо условий. В поставку включен пример сценария:
/etc/net/scripts/contrib/selectprofile;
- fw каталог с настройками сетевого экрана по умолчанию.
Интерфейс unknown специальная конфигурация, которая будет использована
в том случае, когда /etc/net выполняет настройку hotplug-интерфейса, для
которого не существует каталога конфигурации. Она будет работать только в том
случае, если включена опция ALLOW_UNKNOWN.
Сценарии конфигурации сети и hotplug-интерфейсы
Сценарии конфигурации сети
Существует несколько сценариев конфигурации сети.
Первый сценарий выполнение service network start при старте системы или
вручную. При этом требуется только сформировать погруппные (потиповые) списки
интерфейсов, подлежащих обработке, и последовательно выполнить требуемые
действия. Модули ядра при этом загружаются сценариями /etc/net, при этом
имена модулей берутся из опции MODULE этой опции можно в кавычках
перечислить несколько имен, и они будут последовательно загружены). Этот метод
153
ЛКНВ.11100-01 90 02
часто используется на практике и лучше всего подходит для маршрутизаторов.
Преимущество метода в том, что вся необходимая информация сконцентрирована в
одном месте каталоге /etc/net. Если опция MODULE не определена, то будет
предпринята попытка загрузки по имени интерфейса, подразумевая, что файл
/etc/modules.conf заполнен правильно.
Второй сценарий реакция на событие ifplugd. В части загрузки модуля этот
сценарий не отличается от первого.
Третий сценарий реакция на появление или исчезновение сменного
устройства. Для обработки таких событий предназначены сценарии
/etc/net/scripts/{ifup,ifdown}-removable, которые вызываются из сценариев
пакетов hotplug и pcmcia-cs. Сложность заключается в том, что для сменных
PCMCIA-карт вызовы могут дублироваться: для одного и того же события первый
раз ifup-removable будет вызван из hotplug, второй из pcmcia-cs. Кроме того,
hotplug также реагирует на загрузку модулей ядра для обычных карт PCI и, более
того, включает сценарии, которые пытаются загружать модули самостоятельно. В
этом контексте /etc/net получает слишком много вызовов от hotplug и по
умолчанию их игнорирует (USE_HOTPLUG=no).
hotplug-интерфейсы
Для настройки сменной карты в файле options необходимо задать следующий
параметр:
USE_HOTPLUG=yes
После этого /etc/net при получении события от hotplug будет автоматически
вызывать управляющий модуль устройства при его подключении и выгружать из
памяти в случае отсоединения устройства.
П р и м е ч а н и е . Съемные интерфейсы будут пропущены при обычном
старте сети, так как их присутствие ОС определяет только после получения вызова
от hotplug.
В случае, если необходимо вручную расконфигурировать hotplug-интерфейс
до его извлечения, допускается использовать команду ifdown. Для повторной
конфигурации интерфейса нужно подключить его к ПЭВМ еще раз.
154
ЛКНВ.11100-01 90 02
Также существует опция USE_PCMCIA. В случае, если события для интерфейса
и карты генерирует демон pcmcia-cs, то нужно ее включить. Также, если события
генерируются только hotplug, то рекомендуется использовать опцию USE_HOTPLUG.
8.7.2. Быстрая настройка сетевого интерфейса стандарта Ethernet
Для настройки сетевого интерфейса стандарта Ethernet следует выполнить
следующие шаги:
1) узнать имя сетевого интерфейса:
$ ip link show
П р и м е ч а н и е . Если система не загрузила модуль ядра для сетевой
карты автоматически, то его следует загрузить вручную. Для определения
модуля можно использовать команду lspci. Чтобы загрузить модуль
вручную можно использовать команду modprobe, например: modprobe
e1000;
2) создать каталог конфигурации интерфейса /etc/net/ifaces/<название
интерфейса>, в котором будут храниться файлы с настройками;
3) в каталоге конфигурации сетевого интерфейса создать файл options и
записать в этот файл строку:
MODULE=<имя модуля>
На данном этапе работу с файлом options можно завершить;
4) выяснить, какой IP-адрес должен быть назначен интерфейсу. Если сетевой
интерфейс конфигурируется по DHCP), то в файл
/etc/net/ifaces/eth0/options следует записать строку:
BOOTPROTO=dhcp
и перейти к шагу 7).
П р и м е ч а н и я:
1. В ряде случаев в файле options может понадобиться запись:
DHCP_HOSTNAME=<имя машины без домена>
2. В конце файла options необходимо наличие пустой строки.
У сетевого интерфейса существуют два взаимосвязанных атрибута:
- IP-адрес;
- сетевая маска (mask);
5) текущие значение адреса можно просмотреть командой:
$ ip address show
155
ЛКНВ.11100-01 90 02
Вероятнее всего интерфейс-петля lo (loopback) уже сконфигурирован с
адресом 127.0.0.1/8 (что эквивалентно IP-адресу 127.0.0.1 и маске подсети
255.0.0.0). /8 означает длину префикса CIDR (Classless InterDomain Routing).
Для задания IP-адреса и маски подсети интерфейса eth0 необходимо создать
файл /etc/net/ifaces/eth0/ipv4address, в который следует записать IP-
адрес с длиной маски, например:
10.0.0.20/24
6) выяснить адрес шлюза (маршрут по умолчанию). Создать файл
/etc/net/ifaces/<название интерфейса>/ipv4route, в который
записать строку:
default via <ip-шлюза>
7) убедиться, что все выполнено правильно, выполнив команду:
# systemctl restart network
На данном этапе сетевой интерфейс должен быть успешно сконфигурирован.
В случае, если интерфейс был сконфигурирован с помощью DHCP-сервера, но
адрес не был назначен, то следует искать сообщение от DHCP-сервера в файле
/var/log/messages.
8.7.3. Настройка ifplugd
Для корректного использования ifplugd необходимо выполнить команду:
# systemctl disable ifplugd
Затем назначить переменную USE_IFPLUGD в файлах options
соответствующих интерфейсов (/etc/net/ifaces/<имя_интерфейса>/options).
8.7.4. Настройка PPtP-интерфейса и PPPoE-интерфейса
В /etc/net введена опция PPPTYPE для единообразной настройки
интерфейсов PPP, PPPoE и PPtP.
PPPTYPE может принимать следующие значения:
- dialup обычный PPP-интерфейс;
- pppoe интерфейс PPPoE;
- pptp интерфейс PPtP.
156
ЛКНВ.11100-01 90 02
Для PPPTYPE=pppoe необходимо в опции HOST указывать имя
Ethernet-интерфейса, через который будет производиться работа PPPoE.
В дальнейшем, этот интерфейс будет настраиваться автоматически.
Для PPPTYPE=pptp необходимо в опции PPTP_SERVER указывать имя хоста или
IP-адрес PPtP-сервера, к которому будет производиться подключение. Кроме того, в
большинстве случаев необходимо указать в опции REQUIRES интерфейс, через
который будет достижим хост, указанный в PPTP_SERVER.
Для настройки PPPoE-соединения необходимо выполнить следующие
действия:
1) создать каталог конфигурации PPP-интерфейса, например,
/etc/net/ifaces/ppp5 (допускается задавать имена PPP-интерфейса вида
pppN, pppNN, pppNNN, где N любая цифра от 0 до 9);
2) создать файл с опциями /etc/net /etc/net/ifaces/ppp5/options
следующего содержания:
PPPTYPE=dialup
PPPPERSIST=on
PPPMAXFAIL=0
HOST=eth0
3) создать файл с опциями pppd /etc/net/ifaces/ppp5/pppoptions
следующего содержания:
defaultroute
mtu 1476
usepeerdns
user ppp_username
password ppp_password
nomppe
8.7.5. Команды сервиса network
У сервиса network имеется ряд команд:
- start запустить все стационарные интерфейсы. hotplug-интерфейсы будут
сконфигурированы при поступлении соответствующего вызова от hotplug;
157
ЛКНВ.11100-01 90 02
- startwith <имя профиля> старт с указанным именем профиля, а не
определенным автоматически;
- stop остановить все стационарные интерфейсы. hotplug-интерфейсы
будут расконфигурированы при поступлении соответствующего вызова от
hotplug;
- stopwith <имя профиля> стоп с указанным именем профиля, а не
определенным автоматически;
- restart эквивалентно «stop» с последующим «start», как и в большинстве
других сервисов;
- restartwith <имя профиля> рестарт в контексте указанного профиля,
эквивалентно stopwith <имя профиля> и startwith <имя профиля>;
- switchto <имя профиля> переключение в указанный профиль,
эквивалентно stop и startwith <имя профиля>;
- reload семантически обозначает «актуализировать текущую
конфигурацию». Для всех сконфигурированных в настоящий момент
интерфейсов будет выполнена реконфигурация при наличии конфигурации;
- check автоматическая проверка конфигурационной базы.
8.7.6. Протоколы конфигурации адресов
Опция BOOTPROTO позволяет управлять назначением адресов и маршрутов
сетевого интерфейса. Управление выполняется с помощью следующих команд:
- static адреса и маршруты будут взяты из ipv4address/ipv6address и
ipv4route/ipv6route;
- dhcp интерфейс будет сконфигурирован по DHCP;
- dhcp6 интерфейс будет сконфигурирован по DHCPv6;
- ipv4ll интерфейс будет сконфигурирован с помощью IPv4LL (link-local),
ранее известному как ZCIP (zeroconf IP), это значит, что из сети
169.254.0.0/16 будет подобран еще не использованный адрес и назначен на
интерфейс.
158
ЛКНВ.11100-01 90 02
Существует несколько комбинированных способов:
- dhcp-static если конфигурация по DHCP не удалась, конфигурировать
методом static;
- dhcp6-static если конфигурация по DHCPv6 не удалась,
конфигурировать методом static;
- dhcp-ipv4ll если конфигурация по DHCP не удалась, конфигурировать
методом ipv4ll;
- dhcp-ipv4ll-static если конфигурация по DHCP не удалась,
конфигурировать методом ipv4ll.
8.7.7. Расширенные возможности /etc/net
Несколько IP-адресов или маршрутов на одном интерфейсе
В файл ipv4address можно помещать произвольное количество IP-адресов по
одному адресу на каждой строке. То же самое относится к статическим маршрутам и
файлу ipv4route.
/etc/net не анализирует содержимое этих файлов, а формирует на основе
каждой строки командную строку для утилиты ip. Это означает, что можно
помещать в этих файлах произвольные поддерживаемые ip опции и они будут
обработаны. Например, в файле ipv4route можно поместить строку:
10.0.1.0/24 via 10.0.0.253 metric 50 weight 5 table 100
Зависимости между интерфейсами
У интерфейсов vlan, bond, bri, teql входящих в группу зависимых физических,
должна быть определена опция HOST со списком интерфейсов, необходимых для
инициализации текущего интерфейса. Если хост-интерфейс не сконфигурирован
при поднятии зависимого интерфейса, то это будет исправлено.
Кроме обязательной для определенных интерфейсов опции HOST, может быть
задана и необязательная для всех остальных интерфейсов опция REQUIRES.
Интерфейсы, перечисленные в этой опции, будут считаться зависимостями
текущего интерфейса. Например, по умолчанию попытка сконфигурировать
159
ЛКНВ.11100-01 90 02
интерфейс А, который зависит от Б и В, приведет сначала к конфигурации Б и В.
Аналогично, при расконфигурации Б или В сначала будет расконфигурирован А.
Зависимость одного интерфейса от другого не всегда формальна. Например, в
сценарии ifup-pre одного интерфейса может использоваться команда, которая
потребует разрешения DNS-имени, которое может быть разрешено только с
помощью resolv.conf, инсталлируемого другим интерфейсом. Или это может быть
PPPoE/PPtP-интерфейс, требующий Ethernet-интерфейс для работы.
Пользовательские сценарии post и pre
Существует возможность поместить в каталог конфигурации интерфейса
файлы, которые будут выполнены в определенные моменты. Для этого они должны
быть исполняемыми и называться следующим образом:
- ifup-pre для выполнения перед конфигурированием интерфейса;
- ifup-post для выполнения после конфигурирования интерфейса.
Например, можно запустить почтовую систему;
- ifdown-pre для выполнения перед расконфигурированием интерфейса.
Например, можно остановить почтовую систему;
- ifdown-post для выполнения после расконфигурирования интерфейса.
Управление канальными параметрами интерфейсов
Если поместить в конфигурационный каталог интерфейса файл iplink, в
котором в каждой строке будут записаны команды режима link утилиты ip, то они
будут выполнены при конфигурации интерфейса.
Например, если необходимо, чтобы интерфейс enp3s0 имел MAC-адрес
aa:bb:cc:dd:ee:ff и MTU 200 байт, то в файл /etc/net/ifaces/enp3s0/iplink
нужно поместить следующее:
address aa:bb:cc:dd:ee:ff
mtu 200
160
ЛКНВ.11100-01 90 02
Управление физическими параметрами интерфейсов
Если поместить в конфигурационный каталог интерфейса файл ethtool, в
котором будет строка с параметрами программы ethtool, то она будет выполнена при
конфигурации интерфейса.
Например, если есть необходимость, чтобы интерфейс enp3s0 имел скорость
10 Мбит/с и авто-согласование скорости было отключено, то в файл
/etc/net/ifaces/enp3s0/ethtool нужно поместить следующую строку:
speed 10 autoneg off
Настройка Ethernet-моста
Etcnet использует утилиту brctl для настройки Ethernet-моста (далее моста).
В случае если интерфейсы, входящие в состав моста, единственные физически
подключенные, и настройка моста происходит с удаленного узла через эти
интерфейсы, то требуется соблюдать осторожность, поскольку эти интерфейсы
перестанут быть доступны.
В случае ошибки в конфигурации, потребуется физический доступ к серверу.
Для страховки перед перезапуском сервиса network можно открыть еще одну
консоль и запустить там, например, команду:
sleep 500 &&reboot
Для настройки моста необходимо завести каталог
/etc/net/ifaces/<имя_моста> и создать там файлы со следующими данными:
- brctl:
stp AUTO on
- ipv4address:
192.168.100.200/24
- options:
TYPE=bri
HOST='eth0 tap0'
BOOTPROTO=static
Содержимое файла brctl передается утилите brctl. AUTO означает, что
скрипт setup-bri самостоятельно определит имя bridge-интерфейса.
161
ЛКНВ.11100-01 90 02
IP-адрес для интерфейса, будет взят из ipv4address.
В опции HOST файла options нужно указать те интерфейсы, которые будут
входить в мост. Если в него будут входить интерфейсы, которые до этого имели
IP-адрес (например, eth0), то этот адрес должен быть удален (например, можно
закомментировать содержимое файла ifaces/eth0/ipv4address).
При старте сети сначала поднимаются интерфейсы, входящие в мост, затем
сам мост (автоматически). Для назначения адреса мосту можно так же использовать
DHCP (BOOTPROTO=dhcp).
Настройка VLAN
Для настройки 802.1q VLAN (например, id 4094 на eth0) следует, создав
каталог ifaces/eth0.4094, поместить в него файлы со следующим содержимым:
- ipv4address:
192.168.100.200/24
- options:
TYPE=vlan
HOST=eth0
VID=4094
BOOTPROTO=static
Содержимое переменных HOST и VID будет передано утилите vconfig;
использование файла vlantab необязательно не рекомендуется по причине
невозможности использовать ifup для отдельного интерфейса).
Следует обратить внимание, что 4094 является верхней допустимой границей
идентификатора валидного VLAN, а 4095 используется технически в процессе
отбрасывания трафика по неверным VLAN. (следует отметить, что это не
ограничение Linux: в стандарте под VID отведено 12 бит).
Для настройки Q-in-Q интерфейса, например, eth0.123.513 (дважды
тегированный трафик: внешняя метка 123, внутренняя 513) следует файл
options в каталоге ifaces/eth0.123.513 заполнить следующим образом:
TYPE=vlan
HOST=eth0.123 # «родительский» интерфейс;
VID=513
VLAN_REORDER_HDR=0
BOOTPROTO=static
162
ЛКНВ.11100-01 90 02
Родительский интерфейс должен быть сконфигурирован (можно с или без
BOOTPROTO, с или без ipv4address).
Таким образом, можно каскадировать интерфейсы как «угодно глубоко»
(Q-in-Q-in-Q-in-Q...). Необходимо только учитывать, что длина имени интерфейса
ограничена (16-ю символами).
Настройка tun/tap интерфейса
Etcnet поддерживает простое создание интерфейсов типа tun/tap. Это
виртуальный тип интерфейсов для передачи пакетов между ядром и программами,
который не передает данных через физические устройства. tun это интерфейс типа
point-to-point, работающий с кадрами IP. tap интерфейс типа ethernet, работающий
с кадрами ethernet.
Потребуется использование утилиты tunctl, находящейся в одноименном
пакете. Пусть требуется создать и настроить tun/tap интерфейс, например, с именем
tap0. Для этого необходимо:
1) создать каталог интерфейса /etc/net/ifaces/tap0;
2) создать в каталоге интерфейса /etc/net/ifaces/tap0 файл настройки
options со следующим содержанием:
TYPE=tuntap
TUNTAP_USER=combr
TUNTAP_USER аккаунт или цифровой id пользователя, которому будут даны
права на использование интерфейса tap0 (устройство /dev/net/tun). Этот параметр
будет передан утилите tunctl как аргумент опции -u.
Для создания интерфейса через /dev/net/tun требуется привилегия
CAP_NET_ADMIN. В общем случае, данная привилегия назначена для учетной записи
root, и обычный пользователь, имеющий доступ к /dev/net/tun, может
использовать только уже созданные интерфейсы, к которым разрешен доступ для
его UID.
Настройка и использование IP-туннелей
IP-туннели средство, позволяющее улучшить IP-сети. Поддерживаются
IP-туннели трех видов: IPIP, GRE и SIT.
163
ЛКНВ.11100-01 90 02
Каждый вид туннеля по степени сложности организации предназначен для
решения задач разных уровней:
- туннели IPIP – самые простые;
- туннели SIT предназначены для транспортировки пакетов IPv6 через сети
IPv4;
- туннели GRE (general incapsulation) обычно используются в
маршрутизаторах Cisco.
По туннелям типа GRE могут передаваться «broadcast» и «multicast» пакеты.
Кроме того, эти туннели поддерживают контрольные суммы и контроль
упорядоченности пакетов. Также GRE-туннели обладают опциональным атрибутом
key в виде произвольного 4-байтового числа, который позволяет конфигурировать
несколько GRE туннелей между одной парой IP-адресов несущей сети отличие от
IPIP-туннелей, с которыми это невозможно).
Тип туннеля определяется опцией TUNTYPE (ipip, gre, sit). По умолчанию
TUNTYPE=ipip. Кроме типа туннеля для конфигурации всегда требуется адрес
удаленного хоста и почти всегда локальный адрес. Эти адреса определяются
опциями TUNREMOTE и TUNLOCAL соответственно. В некоторых случаях локальный
адрес можно не указывать. В этом случае опция TUNLOCAL все равно обязательна, но
принимает значение any. Не забудьте назначить туннельному интерфейсу адреса и
маршруты в соответствующих файлах.
Далее, в качестве примера, выполняется конфигурация GRE-туннеля между
10.0.1.2 и 10.0.2.3 с двумя ключами для исходящих и входящих пакетов, проверкой
очередности пакетов, TTL-8 и вычислением контрольных сумм. Туннель должен
использовать только определенный интерфейс. Пусть имя создаваемого туннеля
будет mytunnel.
Необходимо сделать следующие операции:
1) создать каталог туннеля /etc/net/ifaces/mytunnel;
2) создать в каталоге туннеля файл настроек options
/etc/net/ifaces/mytunnel/options;
164
ЛКНВ.11100-01 90 02
3) отредактировать файл настроек options:
TYPE=iptun
TUNTYPE=gre
TUNLOCAL=10.0.1.2
TUNREMOTE=10.0.2.3
TUNTTL=8
HOST=eth0
TUNOPTIONS='seq ikey 2020 okey 2030 csum'
При настройке VPN-подключения часто не учитывают, что при использовании
опции pppd 'defaultroute' маршрут по умолчанию после подключения будет
изменен. При этом, если VPN-сервер находится в другой, отличной от клиента, сети,
то после подключения изменения маршрута по умолчанию) VPN-сервер
становится недоступным, следовательно, недоступными становятся все внешние
адреса, и подключение, как правило, прекращается по тайм-ауту.
Решением служит указание отдельного маршрута на VPN-сервер (или его
сеть). Для этого необходимо прописать примере для маршрута через eth0) в
/etc/net/ifaces/eth0/ipv4route строку вида:
10.0.1.0/24 via 10.0.0.1
В данном примере подразумевается, что VPN-сервер находится в сети
10.0.1.0/24 (например, имеет адрес 10.0.1.1), клиент в сети 10.0.0.0/24 имеет
адрес, например, 10.0.0.10), а маршрутизатор имеет адрес 10.0.0.1.
Теперь, при использовании опции 'defaulroute' для pppd (которая
указывает, что необходимо изменить на вновь созданное подключение маршрут по
умолчанию), даже после замены маршрута по умолчанию новым, сеть 10.0.1.0, в
которой в нашем примере и находится VPN-сервер, останется доступной.
Как более точечный вариант можно использовать скрипты ifup-pre и
ifdown-post в каталоге конфигурируемого PPP-интерфейса.
Например:
#!/bin/sh
# sample /etc/net/ifaces/ppp0/ifup-pre; replace variables
yourself
ip route add VPN_SERVER via DEF_GW
#!/bin/sh
# sample /etc/net/ifaces/ppp0/ifdown-post; replace variables
yourself
ip route del VPN_SERVER via DEF_GW
165
ЛКНВ.11100-01 90 02
Далее необходимо подставить нужные IP-адреса вместо VPN_SERVER и DEF_GW
(не сеть, где VPN-сервер, а ее /32 префикс CIDR) и выполнить команду:
chmod +x ifup-pre ifdown-post
Сложная маршрутизация
Под «сложной маршрутизацией» подразумевается наличие нескольких таблиц
маршрутизации. Для их использования необходимо сконфигурировать правила ядра.
В правилах по умолчанию можно увидеть следующее:
# ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
Для настройки «сложной маршрутизации» необходимо выполнить следующие
операции:
1) сами таблицы определены в файле /etc/iproute2/rt_tables.
Для создания конфигурации «сложной маршрутизации» необходимо
вначале «создать» нужные таблицы в этом файле (если хотите использовать
имена таблиц, а не числа);
2) необходимо заполнить таблицы. В конфигурационном каталоге интерфейса
в файле ipv4route необходимо добавить маршрутные записи, не забывая
указать tableXX. Важно учитывать, что если строка начинается с режима
iproute (add, del, replace, append, change), то по умолчанию будет
использован режим DEFAULT_IPV4ROUTE_CMD (append);
3) определить правила в файле ipv4rule. Если строка не начинается
с операции del или add, то нужный режим будет подставлен
автоматически. Это подходит для тех случаев, когда при «поднятии»
интерфейса необходимо добавить правила, а при «опускании» удалить.
Возможность указывать del или add реализована для обратных случаев:
если при «поднятии» интерфейса необходимо удалить правила, а при
«опускании» добавить. В этом случае add и del будут в нужный момент
автоматически заменены на del и add.
166
ЛКНВ.11100-01 90 02
Простое переключение маршрутов
При необходимости настроить второй маршрут по умолчанию через
беспроводной интерфейс, в обход работы основного проводного сетевого
интерфейса, но с меньшей метрикой, чем у проводного интерфейса используется
простое переключение маршрутов.
В этом случае при настройке Wi-Fi маршрут настроится по умолчанию:
- для ethernet-интерфейса файл настроек /etc/net/ifaces/eth0/ipv4route
будет следующим:
default via 192.168.3.254 metric 10
- для Wi-Fi-интерфейса файл настроек /etc/net/ifaces/wlan0/ipv4route
таким:
default via 192.168.123.1 metric 5
Настройка Wi-Fi
Большинство беспроводных интерфейсов сейчас представлено в системе как
интерфейсы Ethernet. Соответственно беспроводной интерфейс будет иметь
TYPE=eth. Чтобы интерфейс нормально функционировал, необходимо кроме
загрузки модуля с параметрами, воспользоваться утилитами iwconfig из пакета
wireless-tools или wpa_supplicant из такого же пакета.
Для автоматического запуска поместите в конфигурационный каталог
интерфейса файл iwconfig с командами iwconfig или файл wpa_supplicant.conf
с конфигурацией wpa_supplicant.
Пример конфигурации:
- файл /etc/net/ifaces/wlan0/options:
TYPE=eth
MODULE=ndiswrapper
NEVER_RMMOD=yes
BOOTPROTO=dhcp
USE_HOTPLUG=no
ONBOOT=no
- файл /etc/net/ifaces/wlan0/iwconfig:
essid default
#key bababababa
167
ЛКНВ.11100-01 90 02
Пример использования etcnet для настройки беспроводной сети:
1) файл /etc/net/ifaces/wlan0/options:
TYPE=eth
USE_HOTPLUG=NO
BOOTPROTO=static
module=ipw2200
WPA_DRIVER=wext
2) файл /etc/net/ifaces/eth0/iwconfig:
essid homenet
mode 1
ap 00:11:D8:22:AD:0D
channel 3
rate 11M
3) файл /etc/net/ifaces/eth0/wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="homenet"
bssid=00:11:D8:22:AD:0D
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=TKIP
psk="this is my mega secret password string to wpa
supplicant"
priority=2
}
Использование автодополнения в sysctl.conf
В конфигурационном каталоге интерфейса может находиться файл
sysctl.conf, в котором можно перечислить переменные sysctl. Переменные могут
быть как общесистемными, так и относящимися к интерфейсу. Естественно, запись
в sysctl.conf настроек вида net.ipv4.conf.eth0.log_martians = 1 достаточно
неудобна, а при переименовании интерфейса велик риск не отредактировать файл
sysctl.conf соответствующим образом.
168
ЛКНВ.11100-01 90 02
Эта проблема решается следующим способом: производится запись в файл
только имени переменной и значение, а система /etc/net сама найдет путь к этой
переменной и вызовет sysctl с полным именем.
Пример содержания файла sysctl.conf:
log_martians=1
rp_filter=1
Подключение к Wi-Fi с сертификатом на аппаратном токене
Для беспроводного подключения в корпоративных сетях могут
использоваться сертификаты, записанные на аппаратном токене, например, Aladdin
eToken. Для настройки такого подключения необходимо использовать
/etc/net/ifaces/wlan0/wpa_supplicant.conf:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
#eapol_version=1
#ap_scan=2
#fast_reauth=1
pkcs11_engine_path=/usr/lib/openssl/engines/engine_pkcs11.so
pkcs11_module_path=/usr/lib/libeTPkcs11.so
update_config=0
network={
ssid="test"
key_mgmt=WPA-EAP
pairwise=CCMP TKIP
group=CCMP TKIP
eap=TLS
identity="email@address.ru"
engine_id="pkcs11"
key_id="xxxxxxxxx"
cert_id="xxxxxxxxx"
engine=1
}
где key_id и cerd_id взяты из вывода команды:
# pkcs11-tool --module /usr/lib/libeTPkcs11.so -O -l
Используются оригинальные драйвера Aladdin pkiclient-*, и пакет
openssl-engine_pkcs11-*.
* актуальные версии на момент использования.
169
ЛКНВ.11100-01 90 02
Профили конфигурации
Определение профилей
Профиль именованный вариант конфигурации, в той или иной степени
изменяющий базовую конфигурацию системы. Профили могут быть применены,
например, для конфигурации ноутбука в разных сетевых окружениях, или при
подготовке новой или тестовой конфигурации с возможностью быстрого возврата к
старой. Практически профили реализуются следующим образом: для какого-либо из
файлов, составляющих общесистемную конфигурацию или конфигурацию
интерфейса, создается альтернативный вариант, который отличается добавлением в
конце названия файла знака «#» и имени профиля.
Например, пусть единственное отличие между профилями заключается в том,
какой модуль ядра будет загружен для интерфейса eth0. В этом случае файл
/etc/net/ifaces/eth0/options необходимо скопировать в
/etc/net/ifaces/eth0/options#profile1 и изменить значение переменной
MODULE в одном из них. Далее при использовании конфигурации по умолчанию
будет использован файл options, а при использовании профиля profile1 файл
options#profile1.
Профили могут использоваться также и для отключения каких-то параметров
конфигурации. Например, если используется файл ipv4route для установки
маршрутов для интерфейса, то можно создать файл нулевого размера
ipv4route#profile2, чтобы при использовании профиля profile2 никаких
маршрутов не конфигурировалось.
Выбор профиля при загрузке
Если при загрузке системы ядру был передан параметр netprofile, то его
значение будет использовано как имя профиля по умолчанию. Это может быть
использовано для создания собственных пунктов меню загрузчиков LILO и GRUB с
заранее определенным профилем сетевой конфигурации. Заданный таким образом
профиль может быть далее переопределен другими методами.
170
ЛКНВ.11100-01 90 02
Следует понимать разницу между различными конфигурациями и различными
результатами применения одной конфигурации. Например, если в двух разных сетях
используется DHCP, то смысла в разных профилях конфигурации нет.
Использование этого метода удобно, если смена сетевого окружения
происходит синхронно с загрузкой системы.
Выбор профиля по умолчанию
Если требуется, чтобы определенный профиль конфигурации использовался
по умолчанию, то необходимо записать его название в файл /etc/net/profile.
Этот метод имеет приоритет над параметром ядра netprofile. Использование
такого способа выбора профиля целесообразно, когда переключение между
конфигурациями происходит реже, чем перезагрузка системы.
Смена профиля во время работы
Если требуется переконфигурировать сеть без перезагрузки или
редактирования файла /etc/net/profile, то следует использовать параметры
сервиса network. Этот метод имеет приоритет над профилем по умолчанию и
профилем, выбранным при загрузке. Целесообразно его использовать, если смена
сетевого окружения происходит чаще, чем перезагрузка системы.
Определение профиля во время конфигурации интерфейса
Если в каталоге конфигурации интерфейса существует исполняемый файл
ненулевого размера с именем selectprofile, то этот файл будет выполнен и первое
слово первой строки его стандартного вывода использовано как имя профиля,
которое должно быть использовано для конфигурации данного интерфейса. Этот
метод имеет приоритет над всеми остальными методами. Исходной задачей,
требующей такого решения, являлось конфигурирование беспроводного интерфейса
в зависимости от доступных точек доступа.
Следует учитывать, что число вызовов файла selectprofile может меняться
в зависимости от контекста и время его выполнения может быть различным,
поэтому при написании такого файла следует учитывать, что первым параметром
будет являться имя текущего сценария. В настоящее время это могут быть ifup*,
171
ЛКНВ.11100-01 90 02
ifdown*, setup* и shutdown*. Для приведенного выше примера имеет смысл
реагировать только на вызовы из ifup или ifup-common.
8.7.8. Настройка сетевого экрана в /etc/net
/etc/net содержит поддержку управления сетевым экраном (firewall).
В данный момент поддерживается iptables, ip6tables, ipset и ebtables. Реализация
основана на группировке таблиц и цепочек в таблицах. Таблицы могут быть только
системные, цепочки же, кроме системных, могут быть заданы пользователем.
Ниже приведены файлы и каталоги, используемые для настройки сетевого
экрана.
/etc/net/ifaces/default/fw/options файл с настройками сетевого
экрана по умолчанию:
1) FW_TYPE тип сетевого экрана. Здесь можно указать только iptables, другие
типы пока не поддерживаются. Обратите внимание на этот параметр, т. к.
по умолчанию он не указан в файле настроек;
2) IPTABLES_HUMAN_SYNTAX включает или отключает использование
поддержки удобочитаемого синтаксиса правил для iptables. Значение: yes
или no;
3) IPTABLES_SYSTEM_CHAINS список системных цепочек в таблицах. Все
цепочки, не указанные здесь, будут автоматически создаваться и удаляться.
Значение: названия цепочек (все названия чувствительны к регистру!),
разделенные пробелом;
4) IPTABLES_INPUT_POLICY действие по умолчанию для пакетов,
попадающих в системную цепочку INPUT таблицы filter. Значение: одно из
ACCEPT, DROP, QUEUE или RETURN;
5) IPTABLES_FORWARD_POLICY действие по умолчанию для пакетов,
попадающих в системную цепочку FORWARD таблицы filter. Значение: одно
из ACCEPT, DROP, QUEUE или RETURN;
6) IPTABLES_OUTPUT_POLICY действие по умолчанию для пакетов,
попадающих в системную цепочку OUTPUT таблицы filter. Значение: одно из
ACCEPT, DROP, QUEUE или RETURN;
172
ЛКНВ.11100-01 90 02
7) IPTABLES_RULE_EMBEDDING способ добавления нового правила в цепочку.
Значение: APPEND или INSERT, что означает добавление в конец списка
правил или, соответственно, в начало.
/etc/net/ifaces/default/fw/iptables/filter,
/etc/net/ifaces/default/fw/iptables/nat,
/etc/net/ifaces/default/fw/iptables/mangle каталоги, соответствующие
таблицам iptables. В каталогах создаются файлы, соответствующие необходимым
системным или пользовательским цепочкам, в которых уже и прописываются сами
правила iptables.
/etc/net/ifaces/default/fw/iptables/loadorder,
/etc/net/ifaces/default/fw/tablename/loadorder если такой файл
существует и не пуст, то обработка таблиц и (или) цепочек в таблице происходит в
том порядке, который указан в файле (по одному значению на строку). Все таблицы
и цепочки, которые не указаны, обрабатываться не будут.
/etc/net/ifaces/default/fw/iptables/modules список модулей ядра,
которые необходимо загрузить перед запуском сетевого экрана. При остановке эти
модули выгружаются.
/etc/net/ifaces/default/fw/iptables/syntax описание замен при
использовании удобочитаемого синтаксиса правил iptables.
Алгоритм работы сетевого экрана
Алгоритм работы сетевого экрана:
1) при запуске службы network, виртуальный интерфейс default:
- если опция CONFIG_FW файле /etc/net/ifaces/default/options)
не установлена в yes, то ничего не делает и происходит выход из
процедуры запуска сетевого экрана, иначе переходим к следующему
пункту;
- считывается файл настроек
/etc/net/ifaces/default/fw/iptables/options;
173
ЛКНВ.11100-01 90 02
- до настройки любого интерфейса и обработки значений sysctl
устанавливаются действия по умолчанию (policy) для системных
цепочек таблицы filter;
- считывается файл со списком модулей ядра
/etc/net/ifaces/default/fw/iptables/modules, и все указанные в
нем модули (по одному на строку) загружаются. При отсутствии файла
никакие модули не загружаются;
- создаются все пользовательские цепочки во всех таблицах
(пользовательскими считаются все цепочки, не указанные в
переменной IPTABLES_SYSTEM_CHAINS);
- считывается файл
/etc/net/ifaces/default/fw/iptables/loadorder, и в указанном в
нем порядке происходит обработка таблиц iptables. При отсутствии
файла обработка происходит в соответствии с сортировкой названий
таблиц по имени;
- считывается файл
/etc/net/ifaces/default/fw/iptables/tablename/loadorder в
каждой обрабатываемой таблице, и происходит обработка и загрузка
правил для каждой цепочки в порядке, указанном в файле. При
отсутствии файла обработка опять же происходит в соответствии с
сортировкой по имени;
- если опция IPTABLES_HUMAN_SYNTAX установлена в yes, то считывается
и обрабатывается файл с «синтаксисом»
/etc/net/ifaces/default/fw/iptables/syntax;
- файл с правилами обрабатывает построчно (одно правило на строку);
если указана опция IPTABLES_HUMAN_SYNTAX, то правило
обрабатывается интерпретатором в соответствии с синтаксисом и
превращается в реальные опции для команды iptables, после чего
запускается iptables с этими параметрами; иначе правило без обработки
передается iptables;
174
ЛКНВ.11100-01 90 02
2) при «поднятии» любого интерфейса, кроме default выполняются все
подпункты пункта 1), только все файлы и каталоги ищутся в каталоге
текущего интерфейса;
3) при «опускании» любого интерфейса, кроме default все подпункты
пункта 1) выполняются в обратном порядке, все правила удаляются из
цепочек в обратном порядке, все модули ядра выгружаются в обратном
порядке. Все файлы и каталоги ищутся в каталоге текущего интерфейса;
4) при остановке службы network виртуальный интерфейс default все
подпункты пункта 1) выполняются в обратном порядке, все правила из всех
цепочек удаляются командой iptables F, все модули выгружаются в
обратном порядке, все пользовательские цепочки удаляются.
Действия по умолчанию (policy) для системных цепочек устанавливается в
ACCEPT.
Правила для iptables
Правила для iptables можно писать с помощью синтаксиса, подобного
синтаксису ipfw и других.
Сделано это с помощью простой замены слов на опции iptables. Сами замены
описаны в файле /etc/net/ifaces/default/fw/iptables/syntax, там также
описано некоторое количество вспомогательных слов, так что правила можно
писать практически на английском литературном. Синтаксис правила можно
совмещать (то есть использовать и заданный в «etcnet» синтаксис, и реальные опции
команды iptables (см. подробнее п. 7.5)).
Во всех правилах нельзя использовать названия цепочки и (или) таблицы. Они
будут добавляться автоматически.
В правилах можно использовать любые переменные окружения, выполнять
любые команды shell (они должны быть указаны в одну строку). Переменная
$NAME содержит имя текущего интерфейса. Переменные $IPV4ADDRESS и
$IPV6ADDRESS содержат массив IPV4/IPV6 адресов текущего интерфейса
(это обычные «bash arrays», можно обращаться к ним по индексу:
${IPV4ADDRESS[2]} или просто $IPV4ADDRESS для первого значения). Для удобства
175
ЛКНВ.11100-01 90 02
можно использовать файлы options, в которых прописывать какие-либо
переменные, к примеру, адреса gateway, ISP, сетей и т. д.
Во всех файлах можно использовать комментарии (строка должна начинаться
с символа #).
Нет необходимости копировать все файлы настроек в каталог каждого
интерфейса. Сначала будут считаны настройки виртуального интерфейса default, а
уже потом у текущего интерфейса, соответственно, можно переопределять только
требуемые для настройки параметры.
Описания всех правил в настройках виртуального интерфейса default
достаточно для поднятия простого сетевого экрана. При наличии же большого
количества правил и интерфейсов есть смысл разделить логически все правила по
каждому интерфейсу (опять же, не будет нагружаться процессор без необходимости,
если интерфейс, к которому относится много правил, сейчас не «поднят»).
В начале каждого правила можно указать, что с этим правилом делать. Может
быть одно из трех значений:
1) -A добавление в конец списка правил (при включенном удобочитаемом
таксисе соответствует команде append);
2) -I [num] добавление в начало списка правил; если указан
необязательный параметр num, то правило будет вставлено в строку правил
с таким номером (iptables считает несуществующий номер строки ошибкой
и добавляет правило). При включенном удобочитаемом синтаксисе
соответствует команде insert [num]);
3) -D удаление правила из списка правил (соответственно, при «остановке»
интерфейса правило наоборот будет добавлено). При включенном
удобочитаемом синтаксисе соответствует команде delete;
Если никакое действие не указано, то правила добавляются в цепочку в
соответствии со значением переменной IPTABLES_RULE_EMBEDDING.
Если изменяется какое-то правило в конфигурационных файлах при уже
загруженных правилах iptables, то для того, чтобы в памяти не остались старые
правила, необходимо или выгрузить все правила для текущего интерфейса (если
176
ЛКНВ.11100-01 90 02
настраивается для конкретного интерфейса, а не для default) перед изменением
файлов или после изменения использовать команду
/etc/net/scripts/contrib/efw default restart (она полностью удалит все
правила, однако, пользовательские цепочки других интерфейсов не будут
затронуты), и далее загрузить заново правила для нужного или всех интерфейсов.
Примеры
Пример настройки сетевого экрана в etcnet (файл – содержание):
Файл /etc/net/ifaces/eth0/fw/options:
# Our WAN IP address
WAN_IP=5.6.7.8/24
# First net
NET1=1.2.3.0/24
# Second net
NET2=4.3.2.0/24
# Friend net
FRIEND_NET=5.6.7.0/24
Файл /etc/net/ifaces/eth0/fw/iptables/filter/INPUT:
accept all from any to $IPV4ADDRESS
jump-to COUNT-CHAIN if marked as 0x11
Файл /etc/net/ifaces/eth0/fw/iptables/filter/FORWARD:
jump-to FRIEND-NET if from $FRIEND-NET
append drop tcp from net $NET1 to net NET2
delete drop udp from $NET1 to $NET2
insert reject udp to $WAN_IP
drop icmp to $(somescript.sh)
Файл /etc/net/ifaces/eth0/fw/iptables/filter/FRIEND-NET:
policy reject
Файл /etc/net/ifaces/eth0/fw/iptables/mangle/PREROUTING:
insert 15 mark tcp as 0x10 if from-iface $NAME and dport is 22
mark tcp as 0x11 if from net $NET1 and from-iface $NAME
Файл /etc/net/ifaces/eth0/fw/iptables/nat/POSTROUTING:
snat-to $WAN_IP if marked as 0x10
177
ЛКНВ.11100-01 90 02
Утилиты
В scripts/contrib находятся вспомогательные утилиты.
Скрипт efw предназначен для ручного управления сетевым экраном.
Синтаксис:
efw ips[et]|[--ipt[ables]|--ip6t[ables]|--ebt[ables]|--no-
ips[et]|--no-ipt[ables]|
--no-ip6t[ables]|--no-ebt[ables]] [iface] [table|settype]
[chain|set] <action> [правило или опции для action]
Параметры:
1) --ipset обработать только ipset;
2) --iptables обработать только iptables;
3) --ip6tables обработать только ip6tables;
4) --ebtables обработать только ebtables;
5) --no-iptables обработать все типы за исключением iptables;
6) --no-ip6tables обработать все типы за исключением ip6tables;
7) --no-ebtables обработать все типы за исключением ebtables;
8) iface 'default' (по умолчанию), имя интерфейса или 'all' для всех
интерфейсов;
9) table 'mangle' (только для iptables и ip6tables), 'broute' (только для
ebtables), 'filter' (по умолчанию), 'nat' или 'all' для всех таблиц;
10) chain системная либо пользовательская цепочка (чувствительно к
регистру!) или 'all' для всех цепочек;
11) action 'start', 'stop', 'restart', 'load', 'unload', 'reload',
'flush', 'show|list', 'count|counters', 'rule', 'new|create',
'remove|delete', 'zero', 'policy', 'rename'.
Действия (action):
1) start обработать все таблицы и цепочки для заданного интерфейса (даже
если задано конкретное имя цепочки либо таблицы);
2) stop обработать все таблицы и цепочки для заданного интерфейса (даже
если задано конкретное имя цепочки либо таблицы);
178
ЛКНВ.11100-01 90 02
3) restart равносильно сначала 'stop' затем 'start';
4) load загрузить правила для заданного интерфейса, таблицы и цепочки;
5) unload выгрузить правила для заданного интерфейса, таблицы и цепочки;
6) reload равносильно сначала 'unload' затем 'load';
7) flush очистить правила для заданного интерфейса, таблицы и цепочки;
8) show показать правила для заданного интерфейса, таблицы и цепочки;
9) list тоже что и 'show';
10) count показать значения счетчиков для заданной таблицы и цепочки;
11) counters тоже что и 'count';
12) rule разобрать правило и передать его в iptables и (или) ip6tables и (или)
ebtables;
13) new создать новую цепочку;
14) create тоже что и 'new';
15) remove удалить цепочку;
16) delete тоже что и 'remove';
17) zero очистить счетчики пакетов и байтов в цепочке;
18) policy задать политику для цепочки;
19) rename переименовать цепочку.
Опции для действий show и list:
1) -n или numeric цифровой вывод IP-адресов, портов и сервисов;
2) -v или verbose детальный вывод правил;
3) -x или exact не округлять числа;
4) --line-numbers или lines показать номера каждой строки.
На данный момент скрипт efw «умеет» частично «угадывать» интерфейс,
таблицу и цепочку (если их не передали в командной строке) и все действия, кроме
counters. Так же поддерживается маска «all» для интерфейсов, таблиц и цепочек.
Примеры команд
Выгрузить (flush) все правила из всех цепочек всех таблиц, удалить цепочки,
пользователем, выгрузить все загруженные модули:
/etc/net/scripts/contrib/efw default stop
179
ЛКНВ.11100-01 90 02
Выгрузить (путем удаления каждого правила в обратном порядке) все правила
из цепочки FORWARD таблицы filter для интерфейса eth0:
/etc/net/scripts/contrib/efw eth0 unload
Загрузить все правила для всех цепочек во всех таблицах всех интерфейсов:
/etc/net/scripts/contrib/efw all all all load
Обработать правило и добавить его во все цепочки таблицы filter:
/etc/net/scripts/contrib/efw default filter all rule accept all
from any
Если изменяется какое-либо правило в конфигурационных файлах при уже
загруженных правилах iptables, то для того, чтобы в памяти не остались старые
правила, необходимо:
- вариант 1: выгрузить все правила для текущего интерфейса
(если настраивается для конкретного интерфейса, а не default) перед
изменением файлов;
- вариант 2: после изменения использовать команду efw default restart
(она полностью удалит все правила, однако, пользовательские цепочки
других интерфейсов не будут затронуты), и далее загрузить заново правила
для требуемого или всех интерфейсов.
Таким образом, наиболее используемой командой при изменении
конфигурации сетевого экрана является:
/etc/net/scripts/contrib/efw default stop;
/etc/net/scripts/contrib/efw all start
Сетевая установка ОС на рабочие места
Одной из удобных возможностей ОС Альт 8 СП при разворачивании
инфраструктуры является сетевая установка. При помощи нее можно производить
установку ОС Альт 8 СП не с компакт-диска дистрибутива, а загрузив инсталлятор
по сети.
8.8.1. Подготовка сервера
Перед началом установки рабочих станций следует произвести
предварительную настройку сервера: задать имя сервера (модуль
180
ЛКНВ.11100-01 90 02
«Ethernet-интерфейсы» в ЦУС п. 8.5.1), включить DHCP-сервер (модуль
«DHCP-сервер» (см. п. 8.5.3)), задать имя домена (модуль «Домен» (см. п. 9.1.1.3.3)).
П р и м е ч а н и е . При сетевой установке с сервера будут переняты настройки
домена, и будет включена централизованная аутентификация. Если устанавливается
ОС Альт 8 СП с компакт-диска, то настройку домена и аутентификации надо будет
производить отдельно на каждом компьютере.
Перед активацией сетевой установки потребуется импортировать
установочный компакт-диска дистрибутива ОС Альт 8 СП, предварительно вставив
его в DVD-привод сервера, либо используя образ диска, расположенный на
файловой системе на сервере. В разделе «Сервер сетевых установок» (пакет
alterator-netinst), укажите откуда импортировать новый образ и нажмите кнопку
«Добавить» (рис. 72).
Рис. 72
Процесс добавления занимает какое-то время. Пожалуйста, дождитесь
окончания этого процесса (рис. 73).
Рис. 73
После добавления образа он появится в списке «Доступные образы дисков».
Выберите из этого списка один из образов и нажмите кнопку «Выбрать» (рис. 74).
На этом подготовка сервера к сетевой установке рабочих станций завершена.
181
ЛКНВ.11100-01 90 02
Рис. 74
Далее необходимо выбрать направление соединения. Удаленный доступ к
компьютеру может быть двух видов (рис. 75):
- со стороны клиента во время установки администратор может с помощью
VNC-клиента подключиться к компьютеру, на которой производится
установка, зная его IP-адрес и заданный пароль;
- со стороны сервера во время установки с каждого компьютера
инициируется подключение к запущенному на заданном компьютере
VNC-клиенту. Компьютер-приемник соединений задается IP-адресом или
именем.
Рис. 75
В случае, когда работа с аппаратной подсистемой ввода-вывода невозможна
(например, если клавиатура, мышь или монитор отсутствуют), можно использовать
вариант «Только по VNC».
182
ЛКНВ.11100-01 90 02
Если необходимо управлять установкой удаленно, отметьте пункт «Включить
установку по VNC» и пункт «Подключение со стороны VNC сервера» раздела
«Направление соединения», и там укажите адрес компьютера, с которого будет
происходить управление. Для приема подключения можно запустить, например,
vncviewer -listen.
ПРЕДУПРЕЖДЕНИЕ
Не забудьте отключить сетевую установку по окончании процесса установки
ОС на рабочих станциях. Это можно сделать, выбрав в списке «Доступные образы
дисков» пункт «Нет образа» и подтвердив действие нажатием кнопки «Выбрать».
За дополнительной информацией по настройке обращайтесь к встроенной
справке соответствующих модулей ЦУС (п. 7.1.5).
8.8.2. Подготовка рабочих станций
Для сетевой установки следует обеспечить возможность загрузки по сети
рабочих станций, на которых будет производиться установка ОС.
Большинство современных материнских плат имеют возможность загрузки по
сети, однако она по умолчанию может быть отключена в BIOS (БСВВ). Различные
производители материнских плат дают разные названия данной возможности,
например: «Boot Option ROM» или «Boot From Onboard LAN».
П р и м е ч а н и е . Некоторые материнские платы позволяют выбрать
источник загрузки во время включения компьютера. Эта возможность может
называться, например, «Select boot device» или «Boot menu».
Последовательность установки при установке с компакт-диска и при сетевой
установке не отличаются друг от друга. Подробный о процессе см. в разделе 5
«Установка ОС Альт 8 СП».
Сервер электронной почты (SMTP, POP3/IMAP)
8.9.1. Сервер электронной почты
ОС Альт 8 СП Сервер может служить как почтовым сервером,
обслуживающим определенный домен, так и посредником (шлюзом) для пересылки
почты. Почтовый сервер отвечает, как за отправку писем (SMTP-сервер
183
ЛКНВ.11100-01 90 02
см. п. 8.10.3) исходящих от почтовых клиентов рабочих станций, так и за
предоставление им входящей почты (Сервер POP3/IMAP см. п. 8.9.3).
Для настройки параметров работы сервера предусмотрен модуль ЦУС
«Почтовый сервер» (пакет alterator-postfix-dovecot) из раздела «Серверы» (рис. 76).
Рис. 76
8.9.2. Сервер SMTP
Сервер SMTP отвечает за отправку сообщений и может работать в двух
режимах:
1) посредник в этом режиме исходящая почта пересылается для
дальнейшей отправки на указанный сервер;
2) сервер – в этом режиме сервер доставляет почту самостоятельно.
8.9.3. Сервер POP3/IMAP
Сервер POP3/IMAP используется для доступа пользователей к электронной
почте на сервере.
184
ЛКНВ.11100-01 90 02
Для доступа к службам POP3 и IMAP пользователь должен включить в своем
почтовом клиенте аутентификацию и указать свое имя и пароль.
Выбор конкретного используемого протокола для получения почты зависит от
предпочтений пользователя.
1) POP при проверке почты почтовым клиентом почта передается на
клиентскую машину, где и сохраняется. Возможность просмотра
принятой/отправленной почты при этом существует даже если клиент не
имеет соединения с сервером.
2) IMAP все сообщения хранятся на сервере. Почтовый клиент может
просматривать их только при наличии соединения с сервером.
Помимо включения/отключения служб, модуль ЦУС «Почтовый сервер»
позволяет произвести дополнительные настройки: фильтрацию спама, настройку
параметров аутентификации и т. д.
Cервер электронной почты postfix
Postfix представляет собой агент передачи электронной почты и позволяет
организовать обмен почтой внутри локальной сети, а также с внешней сетью.
Для расширения возможностей postfix используется ряд дополнений,
выделенных в отдельные пакеты, полный список которых можно получить с
помощью следующей команды:
$ apt-cache search ^postfix-
Настройка сервера электронной почты postfix осуществляется с помощью
конфигурационных файлов, хранящихся в каталоге /etc/postfix. Основные
параметры определяются в файле конфигурации main.cf. В файле main.cf
указываются только параметры, выставленные администратором, и некоторые из
значений по умолчанию, которые администратору с большой вероятностью нужно
будет изменить. Значения по умолчанию для всех остальных параметров
перечислены в файле main.cf.default (этот файл не следует редактировать, он
служит только для справок).
185
ЛКНВ.11100-01 90 02
Если конфигурация была изменена при запущенной службе postfix, новые
настройки нужно активизировать командой: # service postfix reload
Postfix сохраняет все сообщения в журнале mail.log, расположенном в
каталоге /var/log/. Сообщения об ошибках и предупреждения сохраняются
отдельно в журналы mail.err и mail.warn соответственно.
Запуск postfix осуществляется с помощью следующей команды:
# postfix start
8.10.1. Утилиты командной строки
Postfix поставляется с набором утилит командной строки, которые помогают
решать административные задачи. Они выполняют разнообразные функции
(обращение к картам, просмотр файлов очередей, постановка сообщений в очередь и
извлечение из очереди, изменение конфигурации).
Команда postfix останавливает, запускает и перезагружает конфигурацию с
помощью параметров stop, start и reload.
Команда postalias создает индексированную карту псевдонимов из файла
псевдонимов и работает аналогично команде postmap, при этом уделяя особое
внимание нотации в файле псевдонимов (ключ и значение разделяются двоеточием).
Команда postcat выводит содержимое сообщения, находящегося в почтовой
очереди. Для того чтобы прочитать сообщение, находящееся в очереди, необходимо
знать идентификатор очереди. Для получения списка идентификаторов очередей
следует выполнить следующую команду:
# mailq
После получения идентификатора очереди необходимо указать его в качестве
параметра команды postcat для просмотра содержимого файла следующим
образом:
# postcat -q <идентификатор очереди>
Основная задача команды postmap заключается в построении
индексированных карт на основе обычных текстовых файлов.
186
ЛКНВ.11100-01 90 02
Для того чтобы создать карту /etc/postfix/virtual.db на основе
/etc/postfix/virtual, необходимо выполнить следующую команду:
# postmap hash:/etc/postfix/virtual
Также команда postmap обеспечивает возможность тестирования карт любого
вида, поддерживаемых конфигурацией postfix.
Команда postdrop считывает почту из стандартного ввода и записывает
результат в каталог maildrop (программа работает в связке с утилитой sendmail).
Команда postkick отправляет запрос демону postfix по локальному
транспортному каналу, делая межпроцессное взаимодействие postfix доступным для
сценариев оболочки и других программ.
Команда postlock предоставляет монопольный доступ к файлам mbox, в
которые выполняет запись postfix, а затем исполняет команду, удерживая
блокировку.
Команда postlog позволяет внешним программам, таким как сценарии
командного интерпретатора, писать сообщения в журнал электронной почты
(представляет собой postfix-совместимый интерфейс регистрации).
Команда postqueue представляет собой пользовательский интерфейс для
очередей postfix, предоставляющий возможности, обычно доступные в рамках
выполнения команды sendmail.
Команда postqueue с параметром -f просит диспетчер очередей доставить
всю стоящую в очереди почту вне зависимости от места назначения:
# postqueue -f
Команда postqueue с параметром -p выводит содержимое очереди:
# postqueue -p
Команда postqueue с параметром -s domain пытается доставить всю
стоящую в очереди почту для домена domain:
# postqueue -s example.com
Команда postsuper обслуживает задания внутри очередей postfix отличие
от postqueue, эта команда доступна только пользователю с идентификатором root, и
она может быть выполнена, когда сервер не запущен).
187
ЛКНВ.11100-01 90 02
8.10.2. Первичная настройка
В первую очередь после установки postfix необходимо настроить параметры,
отвечающие за домен и имя сервера. Чтобы установить значение параметра
myhostname, необходимо отредактировать конфигурационный файл main.cf.
(для параметра myhostname необходимо ввести полностью определенное доменное
имя хоста):
myhostname = mail.example.com
Postfix может автоматически получить значение mydomain после того, как
параметр myhostname настроен, для этого postfix отбрасывает первую часть
значения myhostname до первой точки включительно:
mydomain = example.com
Далее необходимо указать домен, с которого отправляется локальная почта.
Postfix будет добавлять значение из mydomain к любому адресу, если он задан не
полностью. Для этого необходимо в конфигурационном файле main.cf для
параметра myorigin установить следующее значение:
myorigin = $mydomain
П р и м е ч а н и е . Сообщение от процесса cron пользователю root получит
адрес root@$mydomain, которое будет преобразовано в root@example.com.
Далее необходимо указать домены, для которых данный сервер является
конечной точкой доставки электронной почты. Для того чтобы postfix принимал
любую почту, адресованную в домен example.com необходимо в файл
конфигурации внести следующие изменения:
mydestination = $mydomain
Домены, для которых сервер получает почту, отличные от значения mydomain
и не сконфигурированные как виртуальные домены postfix, необходимо перечислить
с помощью параметра mydestination, либо в дополнительном файле, на который
ссылается этот параметр.
Адресаты указываются через запятую следующим образом:
mydestination =
$mydomain,
$myhostname
188
ЛКНВ.11100-01 90 02
Аналогичным образом параметр mynetworks описывает блоки IP-адресов,
которые считаются внутренними и с которых разрешен прием исходящих
сообщений.
После внесения изменений в конфигурацию postfix для применения новых
настроек необходимо перезапустить службу postfix:
# service postfix reload
8.10.3. Работа в режиме SMTP-сервера
После установки служба postfix функционирует в режиме local, в котором
сервер электронной почты postfix не принимает соединения из внешней сети,
ограничиваясь приемом локальных соединений посредством сокетов семейства
UNIX (UNIX-domain socket).
Для настройки возможности приема сообщений по протоколу SMTP или
ESMTP, как из внешней сети, так из внутренней, необходимо переключить службу
postfix в режим работы server с помощью следующей команды:
control postfix server
Рабочие станции в локальной сети или машины в сети провайдера, отделенной
от внешней сети, должны перенаправлять исходящую почту на почтовый сервер,
обслуживающий данную сеть.
Для того чтобы postfix отправлял почту из локальной сети на SMTP-сервер
провайдера, необходимо для параметра relayhost установить следующее значение:
relayhost = [smtp.provider.net]
8.10.4. SMTP-аутентификация
SMTP-аутентификация обеспечивает идентификацию клиентов независимо от
их IP-адресов и позволяет серверу пересылать сообщения от почтовых клиентов, чьи
IP-адреса не входят в список доверенных. Postfix реализует SMTP-аутентификацию
при помощи протокола SASL (Simple Authentication and Security Layer) и использует
библиотеки Cyrus-SASL.
Для защиты соединений используется протокол SSL/TLS (для включения
поддержки необходимо установить пакет postfix-tls).
189
ЛКНВ.11100-01 90 02
Для проверки поддержки SMTP-аутентификации postfix необходимо от имени
от имени администратора (root) выполнить следующую команду:
ldd ‘postconf h daemon_directory’/smtpd
Если в выводе команды присутствует строка libsasl.so.2, значит, пакет
postfix был собран с поддержкой SASL.
Настройки SMTP-аутентификации на сервере
Настройка SMTP-аутентификации на сервере осуществляется в несколько
этапов:
1) включение SMTP-аутентификации на серверной части;
2) настройка механизмов SASL, которые будут предоставляться клиентам;
3) настройка поддержки SMTP-аутентификации для нестандартных почтовых
клиентов;
4) настройка области (realm), которую postfix будет передавать библиотеке
SASL;
5) определение разрешения на пересылку в postfix.
Чтобы включить SMTP-аутентификацию, необходимо в конфигурационный
файл main.cf добавить следующую запись:
smtpd_sasl_auth_enable = yes
Настройка механизмов SASL
Управление предоставляемыми механизмами осуществляется с помощью
параметра smtpd_sasl_security_options, в котором через запятые следует указать
список из одного или более значений:
1) noanonymous значение параметра, позволяющее включить проверку
сервером верительных данных клиента (список значений параметра
smtpd_sasl_security_options всегда должен включать в себя значение
noanonymous);
2) noplaintext значение параметра, позволяющее исключить
использование всех механизмов открытого текста, таких как PLAIN и
LOGIN (значение, рекомендуемое для использования, так как отправляемые
открытым текстом верительные данные могут быть легко перехвачены в
сети);
190
ЛКНВ.11100-01 90 02
3) noactive значение параметра, исключающее использование механизмов
SASL, которые восприимчивы к активным атакам);
4) nodictionary значение параметра, исключающее все механизмы, не
устойчивые к атакам по словарю (атаки, осуществляемые методом полного
перебора паролей);
5) mutual_auth значение параметра, позволяющее включить поддержку
только механизмов, обеспечивающих взаимную аутентификацию (сервер
аутентифицирует себя для клиента).
Настройка SMTP-аутентификации для нестандартных почтовых
клиентов
Для настройки альтернативной нотации для устаревших клиентов, не
распознающих SMTP-аутентификацию по стандарту RFC 2222, но распознающих
более раннюю нотацию, использованную в черновом варианте этого стандарта (где
между командой AUTH и названиями механизмов стоял не пробел, а знак равенства),
необходимо в конфигурационном файле main.cf установить параметр
broken_sasl_auth_clients:
broken_sasl_auth_clients = yes
Настройка области SASL
Для аутентификации клиента сервер postfix отправляет службе паролей Cyrus
SASL область аутентификации (realm) вместе с верительными данными клиента.
Такая необходимость определяется версией Cyrus SASL и выбором службы. Для
указания области аутентификации в файле main.cf используется параметр
smtpd_sasl_local_domain. По умолчанию этот параметр пуст и должен оставаться
пустым, если только не используется вспомогательный плагин, которому
действительно требуется область аутентификации.
Настройка разрешений на пересылку
Для разрешения пересылки для клиентов, прошедших аутентификацию SASL,
необходимо добавить параметр permit_sasl_authenticated в список ограничений
smtpd_recipient_restrictions своей конфигурации следующим образом:
smtpd_recipient_restrictions =
191
ЛКНВ.11100-01 90 02
[...]
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
[...]
Необходимо поместить ключевое слово permit_sasl_authenticated
достаточно близко к началу списка ограничений, чтобы аутентифицированный
клиент не был случайно отвергнут из-за несоответствия какому-то другому правилу
(например, reject_unauth_destination).
Настройка SMTP-аутентификации на стороне клиента
Для настройки SMTP-аутентификации для клиента необходимо выполнить
следующее:
1) запросить у удаленного сервера список поддерживаемых механизмов
аутентификации;
2) включить SMTP-аутентификацию на клиентской части;
3) предоставить файл для хранения верительных данных;
4) настроить postfix на работу с файлом верительных данных;
5) отключить ненадежные механизмы аутентификации.
Клиентская ПЭВМ должна поддерживать механизмы аутентификации,
поддерживаемые сервером. Для получения списка механизмов аутентификации
необходимо подключиться к почтовому серверу и отправить приветствие EHLO с
помощью следующих команд:
$ telnet mail.remoteexample.com 25
EHLO mail.example.com
По умолчанию SMTP-аутентификация на стороне клиента выключена.
Для того чтобы включить SMTP-аутентификацию необходимо в конфигурационный
файл main.cf добавить следующую запись:
smtp_sasl_auth_enable = yes
После включения аутентификации на клиентской ПЭВМ необходимо
сообщить серверу postfix, где следует искать секретные данные, необходимые для
аутентификации, и какой из механизмов (из предлагаемых удаленным сервером)
postfix может использовать.
192
ЛКНВ.11100-01 90 02
Хранение верительных данных
Необходимо подготовить данные, которые клиент postfix будет использовать
для того, чтобы аутентифицировать себя на сервере, для этого следует создать от
имени root файл карты /etc/postfix/sasl_passwd (если он еще не существует) с
помощью следующей команды:
# touch /etc/postfix/sasl_passwd
Далее необходимо отредактировать этот файл, поместив полностью
определенное доменное имя почтового сервера, который требует аутентификации, с
левой стороны, а разделенную двоеточием пару «имя пользователя пароль» с
правой. Для имен пользователей mail.example.com и
relay.another.example.com, а также соответствующих паролей файл sasl_passwd
будет выглядеть следующим образом:
mail.example.com test:testpass
relay.another.example.com username:password
После редактирования файла sasl_passwd необходимо изменить права на
него так, чтобы читать его мог только пользователь root файле хранится
конфиденциальная информация, которая не должна быть доступна локальным
пользователям), для этого необходимо использовать команды chown и chmod:
# chown root:root /etc/postfix/sasl_passwd && chmod 600
/etc/postfix/sasl_passwd
Затем необходимо преобразовать файл карты в индексированную карту для
быстрого доступа postfix (необходимо выполнять при каждом изменении файла
sasl_passwd) с помощью следующей команды:
# postmap hash:/etc/postfix/sasl_passwd
Настройка postfix для использования верительных данных
Необходимо сообщить клиенту postfix, где хранится созданная карта
верительных данных аутентификации, для этого необходимо в параметре
smtp_sasl_password_maps в файле main.cf указать полный путь к файлу
sasl_passwd, указывая при этом помощью спецификатора hash:), что значения
карты хранятся в хеш-файле, например:
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
193
ЛКНВ.11100-01 90 02
Отключение некоторых механизмов аутентификации
Для отключения использования ненадежных механизмов следует указать в
параметре smtp_sasl_security_options список (через запятую) типов
механизмов, которые клиент не может использовать. По умолчанию параметр
smtp_sasl_security_options установлен в значение «noanonymous», но по
возможности (если сервер поддерживает механизм с шифрованием, такой как
DIGEST-MD5 или CRAM-MD5) следует также отключить использование
механизмов открытого текста. Для этого необходимо добавить в файл main.cf
следующую строку:
smtp_sasl_security_options = noanonymous, noplaintext
8.10.5. Триггеры ограничений
Ограничения позволяют почтовому серверу принять или отвергнуть
сообщения на основе данных SMTP-соединения между клиентом и сервером.
Информация, полученная из этого диалога, позволяет postfix наложить или отменить
ограничения на клиента (отправителя и получателя).
Postfix поддерживает следующие триггеры:
1) smtpd_client_restrictions триггер применяется к IP-адресу или имени
хоста клиента либо к ним обоим (по умолчанию postfix разрешает
подключение любому клиенту);
2) smtpd_helo_restrictions триггер применяется к аргументу HELO/EHLO
клиента и к IP-адресу и (или) имени хоста клиента (по умолчанию
допускается любой аргумент HELO/EHLO);
3) smtpd_sender_restrictions набор триггеров, который относится к
частям конверта (Postfix применяет его к отправителю конверта, аргументу
HELO/EHLO и клиенту, по умолчанию любому отправителю конверта
разрешено отправлять сообщения);
4) smtpd_recipient_restrictions триггер применяется к получателям
конверта, отправителю конверта, аргументу HELO/EHLO и к IP-адресу и (или)
имени хоста клиента (по умолчанию postfix допускает любых получателей
для клиентов, которые определены в параметре конфигурации
194
ЛКНВ.11100-01 90 02
mynet-works, для остальных же разрешены получатели в доменах из
relay_domains и mydomains);
5) smtpd_data_restrictions триггер выявляет клиенты, которые
отправляют содержимое письма прежде, чем postfix ответит на команду
DATA (Postfix выполняет это посредством трассировки DATA, когда клиент
отправляет команду на сервер, по умолчанию ограничения нет);
6) smtpd_etrn_restrictions специальный триггер может ограничить
клиенты, которые могут запрашивать у postfix очистку очереди сообщений
(по умолчанию всем клиентам разрешено выдавать команду ETRN).
В postfix существуют несколько видов ограничений, которые можно разбить
на четыре группы:
1) общие ограничения;
2) переключаемые ограничения;
3) настраиваемые ограничения;
4) дополнительные параметры контроля спама.
Общие ограничения выполняют следующие команды:
1) permit разрешает запрос;
2) defer откладывает запрос;
3) reject отвергает запрос;
4) warn_if_reject содействует последующим ограничениям (если
ограничение после warn_if_reject решает отвергнуть запрос, то postfix
записывает в журнал сообщение reject_warning);
5) reject_unauth_pipelining отвергает запрос, когда клиент отправляет
команды SMTP раньше времени, еще не зная о том, действительно ли
postfix поддерживает конвейерную обработку команд ESMTP (таким
образом, достигается противодействие программам массовой рассылки,
которые некорректно используют конвейерную обработку команд ESMTP
для ускорения доставки).
195
ЛКНВ.11100-01 90 02
Переключаемые ограничения работают как переключатели, при активации
которых они проверяют выполнение некоторого условия. К переключаемым
ограничениям относятся следующие:
1) smtpd_helo_required ограничение, требующее от клиентов отправки
команды HELO (или EHLO) в начале сеанса SMTP (наличия команды
HELO/EHLO требуют RFC 821 и RFC 2821);
2) strict_rfc821_envelopes ограничение, регулирующее степень
терпимости postfix к ошибкам в адресах, указанных в команде MAIL FROM
(отправитель конверта) или RCPT TO;
3) disable_vrfy_command SMTP-команда VRFY позволяет клиентам
проверять существование получателя (ограничение позволяет отменить
команды VRFY);
4) allow_percent_hack ограничение, регулирующее преобразование из
формы «user%domain» в «user@domain»;
5) swap_bangpath ограничение, контролирующее преобразование из формы
«site!user» в «user@site» (необходимо, если ПЭВМ подключена к сети
UUCP).
Настраиваемые ограничения представляют собой карты, которые работают
как фильтры. В каждой записи карты ключ является фильтром, а значение тем
действием, которое необходимо выполнить при совпадении:
1) HELO (EHLO) имя хоста ограничения, относящиеся к именам хостов,
которые клиенты могут отправлять с командой HELO или EHLO;
2) имя хоста/адрес клиента ограничения, определяющие клиенты, которые
могут устанавливать SMTP-соединения с почтовым сервером;
3) адрес отправителя ограничения, определяющие адреса отправителей
(конвертов), которые postfix разрешает для использования в командах
MAIL FROM;
4) адрес получателя ограничения, определяющие адреса получателей
(конвертов), которые postfix разрешает для использования в командах
RCPT TO;
196
ЛКНВ.11100-01 90 02
5) ETRN!команды ограничение, накладываемое на клиенты, которые могут
выдавать команды ETRN;
6) проверка заголовка – ограничение, регулирующее заголовки сообщений;
7) проверка тела ограничения, накладываемые на текст, который может
появляться в строках тела сообщения;
8) черные списки DNSBL черные списки, ограничивающие соединения от
IP-адресов (клиентов), которые включены в черные списки DNSBL;
9) черные списки RHSBL черные списки, запрещающие те домены
отправителей (конверта), которые присутствуют в черных списках RHSBL.
Дополнительные параметры контроля спама поддерживают другие
ограничения или возможности, не входящие в функциональность postfix по
умолчанию:
1) default_rbl_reply создает шаблон ответа по умолчанию, который будет
использоваться при блокировании запроса SMTP-клиента ограничением
reject_rbl_client или reject_rhsbl_sender;
2) permit_mx_backup_networks ограничивает использование функции
контроля за пересылкой permit_mx_backup теми адресатами, у которых
основные хосты MX входят в указанный список сетей;
3) rbl_reply_maps определяет таблицы поиска и шаблоны ответов DNSBL,
индексированные по имени домена DNSBL;
4) relay_domains указывает postfix на необходимость приема почты для
этих доменов несмотря на то, что данный сервер не является местом их
конечного назначения;
5) smtpd_sender_login_maps определяет пользователя, которому
разрешено использовать определенный адрес MAIL FROM.
В postfix по умолчанию встроен набор ограничений. Для того чтобы
посмотреть список ограничений необходимо выполнить следующую команду:
# postconf -d smtpd_recipient_restrictions
197
ЛКНВ.11100-01 90 02
Для включения режима фильтрации почты в postfix в зависимости от наличия
в них нежелательной информации (спам) необходимо выполнить следующую
команду:
control postfix filter
8.10.6. Алиасы и преобразование адресов
В postfix для передачи сообщений электронной почты используются алиасы,
которые позволяют создавать псевдонимы для длинных или плохо запоминаемых
адресов электронной почты. Настройка алиасов в postfix осуществляется с помощью
таблиц aliases.
При установке postfix в таблице создается алиас на имя пользователя root: вся
корреспонденция, предназначенная администратору и поступающая на другие
системные адреса, будет отправляться на имя реального пользователя, который
осуществляет функции администратора.
Рабочий образ таблицы строится с помощью следующей команды:
newaliases
а также при актуализации всех изменений посредством следующей команды:
service postfix reload
При отправке сообщения postfix формирует адрес отправителя автоматически
из имени учетной записи пользователя и значения собственного домена (или
значения «myorigin»). Преобразование адресов отправителей в глобальные адреса
задаются в таблице типа canonical:
sender_canonical_maps = cdb:/etc/postfix/sender_canonical
Аналогичная таблица recipient_canonical и соответствующий параметр
recipient_canonical_maps могут быть использованы для преобразования адресов
назначения.
8.10.7. Настройка ограничений размера почтового ящика и отправляемого
сообщения
По умолчанию размер файла почтового ящика при локальной доставке
ограничен 51 200 000 байтами. Это ограничение можно изменить с помощью
параметра mailbox_size_limit.
198
ЛКНВ.11100-01 90 02
Например, снять ограничение можно установив этот параметр в 0:
mailbox_size_limit = 0
Также можно установить требуемый размер, указав в значении параметра
необходимую величину:
mailbox_size_limit = <размер почтового ящика в байтах>
Для настройки размера отправляемого сообщения используется параметр
message_size_limit:
message_size_limit = <размер сообщения в байтах>
Для настройки виртуальных аккаунтов используется параметр
virtual_mailbox_limit:
virtual_mailbox_limit= <размер почтового ящика виртуального
аккаунта в байтах>
Соединение удаленных офисов (OpenVPN)
ОС Альт 8 СП предоставляет возможность безопасного соединения удаленных
офисов используя технологию VPN (англ. Virtual Private Network – виртуальная
частная сеть), которая позволяет организовать безопасные шифрованные
соединения через публичные сети (например, Интернет) между удаленными
офисами или локальной сетью и удаленными пользователями. Таким образом,
можно связать различные офисы организации, что, делает работу с документами,
расположенными в сети удаленного офиса, более удобной.
Помимо соединения целых офисов, также существует возможность
организовать доступ в офисную сеть для работы в ней извне. Это означает,
например, что сотрудник может работать в своем привычном окружении, даже
находясь в командировке или просто из дома.
8.11.1. Общие сведения об OpenVPN
OpenVPN свободная реализация технологии виртуальной частной сети
(VPN) с открытым исходным кодом для создания зашифрованных каналов типа
точка-точка или сервер-клиенты между компьютерами. Она позволяет
устанавливать соединения между компьютерами, находящимися за NAT-firewall, без
необходимости изменения их настроек.
199
ЛКНВ.11100-01 90 02
Для обеспечения безопасности управляющего канала и потока данных
OpenVPN использует библиотеку OpenSSL. Это позволяет задействовать весь набор
алгоритмов шифрования, доступных в данной библиотеке. Также может
использоваться пакетная авторизация HMAC, для обеспечения большей
безопасности, и аппаратное ускорение для улучшения производительности
шифрования. Эта библиотека использует OpenSSL, а точнее протоколы
SSLv3/TLSv1.2.
Аутентификация в OpenVPN возможна несколькими способами:
- статическим ключом, распространяемым на каждого клиента;
- парой логин/пароль (как через самописный скрипт, так и с помощью
плагинов: PAM, RADIUS и других);
- с использованием SSL-сертификатов;
- двухфакторная аутентификация (с использованием смарт-карт).
Размещение файлов OpenVPN:
- /var/lib/openvpn/ корневой каталог после инициализации демона
(chroot);
- /var/lib/openvpn/etc/openvpn/ccd каталог, в котором размещаются
файлы особых параметров для подключаемых клиентов (Client Config
Directory);
- /var/lib/openvpn/cache рабочий каталог, является текущим для работы
демона после инициализации (в него демон записывает файлы, у которых не
указан путь, обычно это ipp и status);
- /etc/openvpn/ каталог с файлами настройки;
- /etc/openvpn/ccd символическая ссылка на
/var/lib/openvpn/etc/openvpn/ccd (файлы доступны и до, и после
chroot). Требуется для отладки, когда openvpn запускается без chroot;
- /etc/openvpn/keys/ каталог для хранения ключей (информации
ограниченного доступа).
200
ЛКНВ.11100-01 90 02
8.11.2. Настройка OpenVPN-сервера в ЦУС
Для организации VPN соединения на стороне сервера предусмотрен модуль
ЦУС «OpenVPN-сервер» (пакет alterator-openvpn-server) из раздела «Серверы»
(рис. 77).
Используя модуль «OpenVPN-сервер» можно:
- включить/отключить OpenVPN-сервер;
- настроить параметры сервера: тип, сети сервера, использование сжатия и
т.д.;
- управлять сертификатами сервера;
- настроить сети клиентов.
Особое внимание при планировании и настройке подключений следует
обратить на используемые сети. Они не должны пересекаться.
Рис. 77
201
ЛКНВ.11100-01 90 02
Для создания соединения необходимо установить флаг «Включить службу
OpenVPN», выбрать тип подключения: маршрутизируемое (используется TUN) или
через мост (используется TAP), и проверить открываемую по соединению сеть
(обычно это локальная сеть в виде IP-адреса и маски подсети).
Для настройки сертификата и ключа ssl необходимо нажать на кнопку
«Сертификат и ключ ssl..». Откроется окно модуля «Управление ключами SSL»
(пакет alterator-sslkey) (рис. 78).
Здесь нужно заполнить графу «Страна (С)» (прописными буквами), отметить
пункт «(Пере)создать ключ и запрос на подпись» и нажать на кнопку
«Подтвердить». После чего станет активной кнопка «Забрать запрос на подпись»
(рис. 79).
Рис. 78
Рис. 79
202
ЛКНВ.11100-01 90 02
Если нажать на кнопку «Забрать запрос на подпись» (рис. 79), появится
диалоговое окно с предложением сохранить файл openvpn-server.csr.
Необходимо сохранить этот файл на диске.
В модуле «Управление ключами SSL» появился новый ключ «openvpn-server
(Нет сертификата)» (рис. 80).
Чтобы подписать сертификат, необходимо перейти в модуль
«Удостоверяющий Центр» «Управление сертификатами», нажать на кнопку
«Обзор», указать путь до полученного файла openvpn-server.csr и загрузить
запрос (рис. 81).
Рис. 80
Рис. 81
В результате на экране появится две группы цифр и кнопка «Подписать».
Необходимо нажать на кнопку «Подписать» и сохранить файл output.pem
(подписанный сертификат) (рис. 82).
203
ЛКНВ.11100-01 90 02
Рис. 82
Далее в разделе «Управление ключами SSL», необходимо выделить ключ
«openvpn-server (Нет сертификата)» и нажать на кнопку «Изменить».
В появившемся окне, в пункте «Положить сертификат, подписанный УЦ» нужно
нажать на кнопку «Обзор», указать путь до файла output.pem и нажать на кнопку
«Положить» (рис. 83).
Рис. 83
В модуле «Управление ключами SSL», видно, что изменился ключ
«openvpn-server (истекает_и_дата)». Ключ создан и подписан.
Для того чтобы положить сертификат удостоверяющего центра (УЦ),
необходимо найти его в модуле «Удостоверяющий Центр» ЦУС, нажать на ссылку
«Управление УЦ» и забрать сертификат, нажав на ссылку «Сертификат:
ca-root.pem» (рис. 84).
204
ЛКНВ.11100-01 90 02
Рис. 84
В модуле «OpenVPN-сервер», в графе «Положить сертификат УЦ:» при
помощи кнопки «Обзор» указать путь к файлу ca-root.pem и нажать на кнопку
«Положить» (рис. 85).
Рис. 85
Появится сообщение: «Сертификат УЦ успешно загружен».
Для включения OpenVPN необходимо отметить пункт «Включить службу
OpenVPN» и нажать на кнопку «Применить».
Если необходимо организовать защищенное соединение между двумя
локальными сетями, воспользуйтесь модулем «OpenVPN-соединения» (раздел
«Сеть») (п. 8.11.3).
8.11.3. Настройка клиентов в ЦУС
Со стороны клиента соединение настраивается в модуле ЦУС
«OpenVPN-соединения» (пакет alterator-net-openvpn) из раздела «Сеть». Доступ к
настроенной приватной сети могут получить пользователи, подписавшие свои
ключи и получившие сертификат в удостоверяющем центре на том же сервере.
Для создания нового соединения необходимо отметить пункт «Сетевой
туннель (TUN)» или «Виртуальное Ethernet устройство (TAP)» и нажать на кнопку
«Создать соединение» (рис. 86). Должен быть выбран тот же тип, что и на стороне
сервера.
205
ЛКНВ.11100-01 90 02
Рис. 86
Обратите внимание, что на стороне клиента, должен быть выбран тот же тип
виртуального устройства, что и на стороне сервера. Для большинства случаев
подходит маршрутизируемое подключение.
Помимо этого, нужно подписать ключ openvpn в модуле «Удостоверяющий
Центр» (пакет alterator-ca) из раздела «Система».
В результате станут доступны настройки соединения. На клиенте в модуле
«OpenVPN-соединение» необходимо указать:
- состояние – «запустить»;
- сервер – IP-адрес сервера или домен;
- порт – 1194;
- ключ – выбрать подписанный на сервере ключ.
Для применения настроек, нажать на кнопку «Применить». Состояние с
«Выключено» должно поменяться на «Включено» (рис. 87).
Рис. 87
206
ЛКНВ.11100-01 90 02
Проверить, появилось ли соединение с сервером можно командой
ip addr
должно появиться новое соединение tun1. При обычных настройках это может
выглядеть так:
tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state UNKNOWN qlen 100
link/[none]
inet 10.8.0.6 peer 10.8.0.5/32 scope global tun0
8.11.4. Конфигурирование openvpn
Каждый файл конфигурации по маске /etc/openvpn/*.conf является
конфигурацией отдельного экземпляра демона openvpn. Для имени экземпляра
берется имя файла без суффикса .conf.
Настройки стартового скрипта располагаются в файле
/etc/sysconfig/openvpn, по умолчанию он устанавливает следующие переменные
окружения:
CHROOT=yes
OPENVPNUSER=openvpn
OPENVPNGROUP=openvpn
MANUAL=""
Стартовый скрипт /etc/init.d/openvpn может запускать и останавливать
как все экземпляры демона, так и каждый по отдельности. Значение переменной
MANUAL в /etc/sysconfig/openvpn указывает экземпляры, которые нужно
запустить при старте системы (и при запуске стартового скрипта без параметра).
Для ручного запуска (остановки, проверки) одного экземпляра в конце
командной строки указываем имя экземпляра.
Например, для экземпляра openvpn с конфигурационным файлом
/etc/openvpn/server.conf:
# service openvpn start server
Adjusting environment for openvpn:
[ DONE ]
Starting openvpn service:
[ DONE ]
# service openvpn status client-one
openvpn is stopped
207
ЛКНВ.11100-01 90 02
При запуске сервиса, демон openvpn запускается, читает файл конфигурации
из /etc/openvpn/, читает оттуда же файлы dh, ca и ключи. Этот каталог доступен
демону только при его запуске.
Далее демон выполняет chroot в /var/lib/openvpn/ и cd в
/var/lib/openvpn/cache, понижает привилегии до пользователя openvpn, затем
инициализирует работу с сетью.
Таким образом, файл конфигурации должен быть размещен в /etc/openvpn,
все ключи в /etc/openvpn/keys, файлы настроек клиентов в
/etc/openvpn/ccd/ или /var/lib/openvpn/etc/openvpn/ccd/.
Важно правильно указать права доступа. Ключи должны быть доступны
только администратору, конфигурации клиентов должны быть доступны на чтение
пользователю openvpn:
# chown root:root /etc/openvpn/keys/* ; chmod 600
/etc/openvpn/keys/*
# chown root:openvpn /var/lib/openvpn/etc/openvpn/ccd/* ; chmod
640 /var/lib/openvpn/etc/openvpn/ccd/*
В файле конфигурации должны быть указаны:
- ifconfig-pool-persist и status без полного пути либо с путем
/cache/;
- ca, dh, cert, key с путем /etc/openvpn/keys/;
- client-config-dir /etc/openvpn/ccd.
Далее приводится пример конфигурации в файле server.conf:
$ cat /etc/openvpn/server.conf
port 1194
proto udp
dev tun
ca /etc/openvpn/keys/admin.ca
dh /etc/openvpn/keys/dh4096.pem
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
comp-lzo
server 192.168.254.0 255.255.255.0
tls-server
cipher AES-256-CBC
verb 3
mute 10
208
ЛКНВ.11100-01 90 02
keepalive 10 60
user nobody
group nogroup
persist-key
persist-tun
status server_status.log
ifconfig-pool-persist server_ipp.txt
verb 3
management localhost 1194
push "route 192.168.1.0 255.255.255.0"
client-config-dir /etc/openvpn/ccd
route 192.168.2.0 255.255.255.0
route 192.168.3.0 255.255.255.0
8.11.5. Создание ключей для OpenVPN туннеля средствами утилиты openssl
Для создания туннеля средствами утилиты openssl необходимо выполнить
следующие действия:
1) проверить наличие в системе установленного пакета openssl с помощью
следующей команды:
# rpm -qa openssl
2) для возможности подписывать любые сертификаты, необходимо открыть
файл /var/lib/ssl/openssl.cnf и изменить значение параметра policy на
следующее:
policy = policy_anything
3) создать папку:
# mkdir -p /root/CA/demoCA
4) перейти в каталог:
# cd /root/CA
5) создать в каталоге /root/CA следующие папки и файлы:
# mkdir -p ./demoCA/newcerts
# touch ./demoCA/index.txt
# echo '01' > ./demoCA/serial
# echo '01' > ./demoCA/crlnumber
где:
- demoCA/newcerts каталог сертификатов;
- demoCA/index.txt текстовый файл, база с действующими и
отозванными сертификатами;
209
ЛКНВ.11100-01 90 02
- demoCA/serial файл индекса для базы ключей и сертификатов;
- demoCA/crlnumber файл индекса для базы отозванных сертификатов;
6) создать «самоподписанный» сертификат my-ca.crt и закрытый ключ
my-ca.pem, которыми будут заверяться/подписываться ключи и
сертификаты клиентов, желающих подключиться к серверу, с помощью
следующей команды:
# openssl req -new -x509 -keyout my-ca.pem -out my-ca.crt
где:
- -req запрос на создание сертификата;
- -x509 создать самоподписанный сертификат стандарта X.509;
- -keyout записать закрытый ключ в файл;
- -out записать сертификат в файл;
7) ввести пароль для закрытого ключа и ответить на запросы о владельце
ключа;
8) создать пару «ключ-сертификат» для сервера и каждого клиента,
желающего подключиться к серверу, с помощью следующей команды:
# openssl req -new -nodes -keyout server.pem -out server.crs
где -nodes означает, что шифровать закрытый ключ не нужно;
9) подписать запрос на сертификат своим «самоподписанным» my-ca.crt
сертификатом и ключом my-ca.pem с помощью следующей команды:
# openssl ca -cert my-ca.crt -keyfile my-ca.pem -days 3650 -in
server.crs -out server.crt
где:
- -cert корневой сертификат удостоверяющего центра;
- -keyfile секретный ключ удостоверяющего центра;
10) после получения связки «ключ-сертификат» для сервера server
сгенерировать запрос на сертификат для пользователя:
# openssl req -new -nodes -keyout user_1.pem -out user_1.crs
210
ЛКНВ.11100-01 90 02
11) подписать запрос на сертификат своим my-ca.crt сертификатом и ключом
my-ca.pem:
# openssl ca -cert my-ca.crt -keyfile my-ca.pem -days 365 -in
user_1.crs -out user_1.crt
12) задать параметры Диффи-Хеллмана для сервера:
# openssl gendh -out server.dh 2048
13) удалить файлы запросов на сертификаты:
# rm *.crs
14) проверить состав каталога /root/CA (состав файлов должен
соответствовать приведенному ниже):
# ls -l
итого 40
drwxr-xr-x 3 root root 4096 авг 26 15:07 demoCA
-rw-r--r-- 1 root root 1123 авг 26 14:47 my-ca.crt
-rw-r--r-- 1 root root 1834 авг 26 14:47 my-ca.pem
-rw-r--r-- 1 root root 4202 авг 26 14:58 server.crt
-rw-r--r-- 1 root root 424 авг 26 15:14 server.dh
-rw-r--r-- 1 root root 1708 авг 26 14:52 server.pem
-rw-r--r-- 1 root root 4190 авг 26 15:07 user_1.crt
-rw-r--r-- 1 root root 1708 авг 26 15:05 user_1.pem
15) разместить ключи и сертификаты в каталогах сервера и клиента
следующим образом:
- my-ca.crt для сервера и клиентов;
- my-ca.pem только для подписи сертификатов (лучше хранить на
отдельном от OpenVPN сервера компьютере);
- my-ca.crt, server.crt, server.dh, server.pem для сервера
OpenVPN;
- my-ca.crt, user_1.crt, user_1.pem для клиента OpenVPN;
16) для новых клиентов создать новые ключи и отдать комплектом
my-ca.crt, новый_сертификат.crt, новый_ключ.pem;
17) в конфигурационном файле OpenVPN сервера поместить ссылки на эти
ключи:
ca /root/CA/my-ca.crt
cert /root/CA/server.crt
211
ЛКНВ.11100-01 90 02
key /root/CA/server.pem
dh /root/CA/server.dh
18) в конфигурационном файле OpenVPN клиента поместить ссылки на эти
ключи:
ca /etc/net/ifaces/tun0/my-ca.crt
cert /var/lib/ssl/certs/user_1.crt
key /var/lib/ssl/private/user_1.pem
19) просмотреть базу ключей:
# cat /root/CA/demoCA/index.txt
V 250823115811Z 01 unknown /C=RU/CN=vpn-server
V 160825120737Z 02 unknown /C=RU/CN=user_1
где v действующий (валидный) ключ.
8.11.6. Создание списка отзыва сертификатов
Для создания списка отзыва сертификатов необходимо выполнить следующие
действия:
1) выполнить следующую команду:
# openssl ca -cert my-ca.crt -keyfile my-ca.pem -gencrl -out
crl.pem
2) просмотреть содержимое файла crl.pem с помощью следующей команды:
# openssl crl -noout -text -in crl.pem
3) отозвать сертификат user_1.crt:
# openssl ca -cert my-ca.crt -keyfile my-ca.pem -revoke
user_1.crt -out crl.pem
4) обновить список (обязательно после каждого отзыва сертификата):
# openssl ca -cert my-ca.crt -keyfile my-ca.pem -gencrl -out
crl.pem
5) просмотреть crl.pem:
# openssl crl -noout -text -in crl.pem
6) поместить файл crl.pem в каталог /var/lib/openvpn.
212
ЛКНВ.11100-01 90 02
8.11.7. Создание ключей для OpenVPN туннеля средствами Easy-Rsa скриптов
Для работы с утилитой Easy-Rsa необходимо установить пакет easy-rsa с
помощью следующей команды:
# apt-get install easy-rsa
Далее нужно выполнить поиск по ключевому слову "easyrsa*", чтобы
посмотреть, куда выполнялась установка утилиты:
# find / -name "easyrsa*"
/usr/bin/easyrsa
/usr/share/easyrsa3
В OpenSSL есть пример файла openssl.cnf, который находится в
соответствующей папке. По умолчанию утилита openssl обращается к файлу
/var/lib/ssl/openssl.cnf. В файле конфигурации есть несколько полезных
параметров например, местонахождение серийных номеров и списка отозванных
сертификатов (Certificate Revocation List).
Однако некоторые записи из раздела CA_default ссылаются на директории и
файлы, которые, в случае их отсутствия, могут привести к проблемам при
развертывании центра сертификации. В связи с этим необходимо создать все
требуемые файлы и папки перед тем, как подписывать CSR. В составе OpenSSL
включена утилита CA.pl, которая упрощает процесс подготовки директорий и
файлов.
В каталоге /usr/share/easyrsa3 находятся следующие файлы:
openssl-1.0.cnf vars.example x509-types/
Файл openssl-1.0.cnf, является конфигуратором для утилиты openssl,
запущенной через скрипты easy-rsa. Программа упрощает процесс создания
инфраструктуры каталогов PKI.
Нужно перейти в каталог, в котором будет создаваться инфраструктура
каталогов для ключей и сертификатов, с помощью следующей команды:
# cd /root
Затем необходимо создать структуру каталогов с помощью следующей
команды:
# easyrsa init-pki
213
ЛКНВ.11100-01 90 02
В текущей директории будет создан каталог pki c вложенными каталогами
для ключей и запросов.
Дальнейшие действия также необходимо выполнять в текущей директории,
иначе утилита будет выводить ошибки из-за отсутствия pki каталога в текущей
директории при запуске easyrsa команды.
Создание ключей центра сертификации с помощью Easy-Rsa
скриптов
Для создания ключей центра сертификации необходимо создать корневой
сертификат. Для этого необходимо запустить easyrsa с помощью следующей
команды:
# easyrsa build-ca
Далее будет выведен процесс генерации, в ходе которого нужно указать
сложный пароль и Common Name сервера, например, CA-ORG:
Generating a 2048 bit RSA private key
......................................................+++
......................................................+++
writing new private key to '/root/pki/private/ca.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
...
-----
Common Name (eg: your user, host, or server name) [Easy-RSA
CA]:CA-ORG
CA creation complete and you may now import and sign cert
requests.
Your new CA certificate file for publishing is at:
/root/pki/ca.crt
Затем нужно создать ключи Диффи-Хелмана:
# easyrsa gen-dh
Создание ключа занимает некоторое продолжительное время. Далее
необходимо проверить содержание каталога pki с помощью следующей команды:
# ls -l ./pki
Содержание каталога должно соответствовать приведенному ниже:
итого 28
-rw------- 1 root root 1151 авг 27 09:32 ca.crt
214
ЛКНВ.11100-01 90 02
drwx------ 2 root root 4096 авг 27 09:32 certs_by_serial
-rw------- 1 root root 424 авг 27 09:38 dh.pem
-rw------- 1 root root 0 авг 27 09:32 index.txt
drwx------ 2 root root 4096 авг 27 09:32 issued
drwx------ 2 root root 4096 авг 27 09:32 private
drwx------ 2 root root 4096 авг 27 09:28 reqs
-rw------- 1 root root 3 авг 27 09:32 serial
где:
- ca.crt сертификат корневого центра сертификации;
- dh.pem ключ Диффи-Хелмана;
- ./private/ca.key секретный ключ центра сертификации.
Создание ключей сервера с помощью Easy-Rsa скриптов
Создать запрос на сертификат для сервера OVPN. Сертификат будет не
зашифрован (запаролен), за это отвечает параметр nopass, иначе при каждом старте
OpenVPN будет запрашивать этот пароль:
easyrsa gen-req vpn-server nopass
Скопировать полученные ключи в рабочий каталог openvpn и в конфигурации
сервера указать полный путь к ключам:
cp ./pki/ca.crt /etc/openvpn/keys
cp ./pki/issued/vpn-server.crt /etc/openvpn/keys
cp ./pki/private/vpn-server.key /etc/openvpn/keys
cp ./pki/dh.pem /etc/openvpn/keys
Для создания пары ключ/сертификат минуя создание запросов и подписи
необходимо выполнить команду:
easyrsa build-server-full vpn-server nopass без пароля.
easyrsa build-server-full vpn-server с паролем.
Создание клиентских ключей с помощью Easy-Rsa скриптов
Процесс создания ключей клиентам аналогичен созданию ключей для сервера.
Создание запроса запароленного ключа для клиента (потребуется вводить при
каждом подключении) с именем User выполняется с помощью следующей команды:
easyrsa gen-req User
215
ЛКНВ.11100-01 90 02
Создание запроса без парольного ключа для клиента выполняется с помощью
следующей команды: easyrsa gen-req User nopass
Создание ключа пользователя выполняется с помощью следующей команды:
easyrsa sign-req client User
Создание ключа пользователя с ограничением действия сертификата в 90 дней
(после истечения срока можно только перевыпустить) выполняется с помощью
следующей команды:
./easyrsa sign-req client User -days 90
Передача файлов клиенту выполняется с помощью следующей команды:
./pki/issued/User.crt
./pki/private/User.key
./pki/ca.crt
Для создания пары ключ/сертификат минуя создание запросов и подписи
необходимо выполнить команду:
easyrsa build-client-full User nopass без пароля
easyrsa build-client-full User с паролем
8.11.8. Отзыв сертификатов
Генерация файла отозванных ключей выполняется с помощью следующей
команды:
# easyrsa gen-crl
Сделать символическую ссылку в каталог с ключами:
# ln -s /root/pki/crl.pem /var/lib/openvpn
В файл конфигурации openvpn сервера добавить строку:
# crl-verify crl.pem
Отзыв сертификата пользователя User выполняется с помощью следующей
команды:
# easyrsa revoke User
Каждый раз при отзыве сертификата необходимо обновлять crl.pem, чтобы
внести в него изменения:
# easyrsa gen-crl
216
ЛКНВ.11100-01 90 02
Одноименный файл ключа не может быть создан, пока не отозван старый. Для
исключения возможности mitm атаки служит параметр remote-cert-tls server.
Список валидных и отозванных сертификатов можно посмотреть в файле
./pki/index.txt. Начало строки описания каждого сертификата начинается с букв
V или R, что значит Valid и Revoked (действующий и отозванный).
Настройка удаленного подключения
Для получения удаленного доступа к другим ПЭВМ и предоставления такого
доступа в ОС Альт 8 СП используется протокол SSH (Secure Shell).
SSH реализует соединение с удаленным компьютером, защищающее от
следующих угроз:
- прослушивание данных, передаваемых по этому соединению;
- манипулирование данными на пути от клиента к серверу;
- подмена клиента либо сервера путем манипулирования IP-адресами, DNS
либо маршрутизацией.
SSH обладает следующими возможностями:
- сжатие передаваемых данных;
- туннелирование каналов внутри установленного соединения в том числе
соединений с X-сервером;
- широкая распространенность: существуют реализации SSH для самых
различных аппаратных платформ и ОС.
OpenSSH реализация SSH, входящая в состав дистрибутива. Эта реализация
включает в себя следующие программы и утилиты:
- клиентские программы ssh, scp и sftp (используются для запуска программ
на удаленных серверах и копирования файлов по сети);
- серверные программы sshd, sftp-server (используются для предоставления
доступа по протоколу SSH);
- вспомогательные программы scp, rescp, ssh-keygen, ssh-add, ssh-agent,
ssh-copy-id, ssh-keyscan.
217
ЛКНВ.11100-01 90 02
8.12.1. OpenSSH, сервер протокола SSH (sshd)
OpenSSH Daemon (sshd) программа-сервер, обслуживающая запросы
программы-клиента ssh. Вместе эти программы заменяют rlogin и rsh и
обеспечивают защищенную и кодированную связь между двумя непроверенными
компьютерами через незащищенную сеть.
sshd это служба, принимающая запросы на соединения от клиентов. Для
каждого нового соединения создается помощью вызова «fork») новый экземпляр
службы. Ответвленный экземпляр обрабатывает обмен ключами, кодирование,
аутентификацию, выполнение команд и обмен данными.
Параметры определяются при помощи ключей командной строки или файла
конфигурации (по умолчанию sshd_config). Ключи командной строки имеют
больший приоритет, чем значения, указанные в файле конфигурации. При
получении сигнала отбоя SIGHUP перечитывает свой файл конфигурации путем
запуска собственной копии с тем же самым именем, с которым был запущен,
например, /usr/sbin/sshd.
Синтаксис команды:
sshd [-46Ddeiqt] [-b длина ключа_1] [-f файл конфигурации] [-g
время_задержки_регистрации] [-h файл_ключа_хоста] [-k
частота_генерации_ключа] [-o директива] [-p порт] [-u длина]
Доступны ключи, приведенные в таблице 6.
Т а б л и ц а 6 Ключи команды sshd
Ключ
Описание
-4
Использовать только адреса IPv4.
-6
Использовать только адреса IPv6.
-b длина_ключа_1
Определяет число битов в ключе сервера
протокола версии 1 (по умолчанию 1024).
-D
Не переходить в фоновый режим и не становиться
службой. Это упрощает слежение за экземпляром
sshd.
-d
Режим отладки. Сервер посылает расширенную
отладочную информацию в файл журнала событий
системы и не переходит в фоновый режим работы.
218
ЛКНВ.11100-01 90 02
Продолжение таблицы 6
Ключ
Описание
Сервер не создает дочерних процессов и
обрабатывает только одно соединение. Параметр
предназначен только для отладки работы сервера.
Несколько параметров -d указанных один за
другим, повышают уровень отладки. Максимум
это 3.
-e
Направлять вывод в консоль (stderr) вместо
механизма журналирования событий системы.
-f файл_конфигурации
Определяет имя файла конфигурации (по
умолчанию /etc/openssh/sshd_config). Не
работает, если нет файла конфигурации.
-g
время_задержки_регистрации
Определяет период, в течение которого клиент
должен себя идентифицировать (по умолчанию
120 секунд). Если клиент не смог
идентифицировать себя в течение этого времени,
экземпляр сервера прекращает свою работу.
Значение равное нулю отменяет ограничение на
время ожидания.
-h файл_ключа_хоста
Определяет файл, из которого будет считан ключ
хоста. Этот параметр должен быть указан, если
запущен не от имени пользователя с
идентификатором root (так как обычно стандартные
файлы хоста доступны для чтения только
пользователю с идентификатором root).
Стандартное расположение файла
/etc/openssh/ssh_host_key для протокола
версии 1, и /etc/openssh/ssh_host_dsa_key,
/etc/openssh/ssh_host_ecdsa_key и
/etc/openssh/ssh_host_rsa_key для протокола
версии 2. Можно иметь несколько ключей хоста
для разных версий протокола и алгоритмов
генерации ключей.
-i
Позволяет уведомить программу о том, что она
запускается службой inetd. Обычно sshd не
запускается из inetd, так как требуется генерировать
ключ сервера до ответа клиенту, а это может отнять
десятки секунд. Клиент будет вынужден ожидать
слишком долго, если ключ будет повторно
генерироваться каждый раз. Однако, при малых
размерах ключа (например, 512), использование из
inetd может быть оправдано.
219
ЛКНВ.11100-01 90 02
Окончание таблицы 6
Ключ
Описание
-k
частота_генерации_ключа
Определяет, как часто будет регенерироваться ключ
сервера протокола версии 1 (по умолчанию 3600
секунд один раз в час). Значение ноль означает, что
ключ никогда не будет регенерирован.
-o директива
Позволяет указывать директивы в формате файла
конфигурации, например, такие, для которых нет
соответствующего ключа командной строки.
Директивы файла конфигурации описаны в
sshd_config.
-p порт
Порт, на котором сервер будет ожидать соединения
(по умолчанию 22). Возможно указание нескольких
ключей с разными портами. Если данный ключ
указан, параметр Port файла конфигурации
игнорируется, однако порты, указанные в
ListenAddress имеют больший приоритет, чем
указанные в командной строке.
-q
Не заносить в системный журнал регистрации
событий никакой информации. В обычном режиме в
нем фиксируется подключение, аутентификация и
разрыв каждого соединения.
-t
Режим тестирования. Выполняется только проверка
соответствия файла конфигурации и готовность
ключей. Полезно для проверки состояния службы
после обновления, при котором были изменены
файлы конфигурации.
-u длина
Размер поля в структуре utmp хранящей имя
удаленного хоста. Если разрешенное имя хоста
превышает указанное значение, то взамен будет
использован десятичное представление IP-адреса
через точку. Это позволяет уникально
идентифицировать машины со слишком длинными
именами.
Указание -u0 включает использование в файле utmp
IP-адресов во всех случаях. При этом будет
производить DNS-запросы только если это явно
требуется конфигурацией
(from=”pattern-list”) или механизмом
аутентификации (либо RhostsRSAAuthentication
либо HostbasedAuthentication). Использование
DNS также обязательно в случае задания параметрам
AllowUsers и DenyUsers значения в формате
USER@HOST.
220
ЛКНВ.11100-01 90 02
Аутентификация
Служба OpenSSH SSH поддерживает версии протокола SSH 1 и 2. При этом
использование протокола версии 1 крайне не рекомендуется. Запретить
использование одного протокола версии 1 можно, указав в параметре Protocol
файла sshd_config:
Protocol 2
Протокол 2 поддерживает ключи DSA, ECDSA и RSA; протокол 1
поддерживает только ключи RSA. Независимо от протокола, каждый
подключающийся хост имеет собственный, обычно 2048-битный
идентифицирующий его ключ.
Для протокола версии 1 подтверждение субъекта сервера обеспечивается
768-битным ключом, который генерируется при запуске сервера. Ключ генерируется
заново каждый час, при условии его использования, и не хранится на диске. При
получении запроса на подключение со стороны клиента служба посылает в ответ
свой открытый ключ и свои ключи. Клиент сравнивает ключ хоста RSA со своими
данными, чтобы убедиться в том, что это тот же сервер. Затем клиент генерирует
256-битное произвольное число, шифрует его при помощи обоих ключей (своего и
сервера) и отправляет результат серверу. Это число становится ключом сеанса, и с
его помощью выполняется кодирование всех последующих данных, по
согласованному методу Blowfish или 3DES (клиент выбирает метод из
предложенных сервером). В настоящее время по умолчанию используется 3DES.
Для протокола версии 2 подтверждение субъекта сервера обеспечивается по
схеме Диффи-Хеллмана, в результате которой также получается общий ключ сеанса.
Дальнейший обмен данными шифруется симметричным кодом, 128-битным AES,
Blowfish, 3DES, CAST128, Arcfour, 192-битным AES или 256-битным AES, который
выбирает клиент из предложенных сервером. Кроме того, целостность
передаваемых данных обеспечивается кодом подтверждения подлинности
сообщения (hmac-md5, hmac-sha1, umac-64, hmac-ripemd160, hmac-sha2-256 или
hmac-sha2-512).
221
ЛКНВ.11100-01 90 02
Далее, сервер и клиент переходят в режим аутентификации. Клиент пытается
аутентифицировать себя по своему хосту, открытому ключу, паролю или с помощью
беспарольного механизма («вызов-ответ»).
Независимо от типа аутентификации служба проверяет доступность
соответствующей учетной записи в системе. Так, она может быть заблокирована
посредством добавления ее в параметр DenyUsers или ее группы в DenyGroups. Для
запрета только аутентификации по паролю укажите в файле passwd 'NP' или
'*NP*'.
После успешной аутентификации себя клиентом связь переходит в режим
подготовки сеанса. В этот момент клиент может запросить такие вещи, как
выделение псевдо-терминала, перенаправление соединения Х11, перенаправление
соединения TCP/IP или перенаправление соединения агента аутентификации через
защищенный канал.
Наконец, клиент запрашивает оболочку или выполнение команды, после чего
стороны входят в режим сеанса. В этом режиме, каждая из сторон в любой момент
может пересылать данные и эти данные будут переданы оболочке или команде на
стороне сервера и на пользовательский терминал соответственно.
По завершении работы пользовательской программы и закрытии всех
перенаправленных Х11 и других соединений сервер посылает клиенту команду со
статусом выхода и сеанс завершается.
Вход в систему
После успешной аутентификации пользователя выполняются следующие
действия:
- если регистрация в системе произведена на терминале (tty) и не указана
никакая команда, то отображается время последнего входа в систему и
содержимое файла /etc/motd (если только это не отключено в файле
конфигурации или ~/.hushlogin);
- если регистрация в системе произведена на терминале, записывается время
регистрации;
222
ЛКНВ.11100-01 90 02
- проверяется /etc/nologin если он присутствует, выводится его
содержимое и завершается работа (исключение – root);
- осуществляется переход к выполнению с правами обычного пользователя;
- устанавливаются значения основных переменных среды;
- интерпретируется файл ~/.ssh/environment, если таковой имеется, и
пользователям разрешено изменять среду;
- происходит переход в домашний каталог пользователя;
- если имеется файл ~/.ssh/rc, то производится его выполнение, а если нет
и имеется /etc/openssh/sshrc, то выполняется он, в противном случае
выполняется xauth. Файлам rc на стандартный ввод передается протокол
аутентификации Х11 и cookie;
- запускается оболочка пользователя или выполняется указанная команда.
SSHRC
Если файл ~/.ssh/rc существует, он будет выполняться после файлов
определения переменных среды, но перед запуском оболочки пользователя или
команды. Если используется подмена Х11, то на его стандартный ввод будет
передана пара «proto cookie», также ему будет доступна переменная среды
DISPLAY. Сценарий должен вызывать xauth самостоятельно для добавления cookie
X11.
Основная цель этого файла состоит в выполнении процедур инициализации,
необходимые прежде, чем станет доступным основной каталог пользователя. AFS
пример такой среды.
Этот файл будет, содержать блок аналогичный следующему:
if read proto cookie && [ -n "$DISPLAY" ]; then
if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
# X11UseLocalhost=yes
echo add unix:`echo $DISPLAY |
cut -c11-` $proto $cookie
else
# X11UseLocalhost=no
echo add $DISPLAY $proto $cookie
fi | xauth -q -
fi
223
ЛКНВ.11100-01 90 02
Если этот файл отсутствует, то выполняется /etc/openssh/sshrc, а если
отсутствует и он, то для добавления cookie используется xauth.
Формат файла authorized_keys
Параметр AuthorizedKeysFile файла конфигурации определяет путь к файлу
с открытыми ключами. Значение по умолчанию ~/.ssh/authorized_keys и
~/.ssh/authorized_keys2. Каждая строка файла содержит один ключ (пустые
строки или строки, начинающиеся с символа «#» считаются комментариями и
игнорируются). Открытые ключи протокола 1 (RSA) состоят из следующих полей,
разделенных пробелами: параметры, битность, порядок, модуль, комментарий.
Открытые ключи протокола версии 2 состоят из полей: параметр, тип ключа, ключ в
виде base64, комментарий. Поля параметров необязательны; их отсутствие
определяется наличием в начале строки цифры (поле параметра никогда не
начинается с цифры). Поля битности, порядка, модуля и комментарии определяют
ключ RSA; поле комментария не используется (но может быть удобно пользователю
для отметки ключа). Для протокола версии 2 типом ключа является
ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-dss или ssh-rsa.
Строки в этих файлах, обычно имеют длину в несколько сотен байт (из-за
размера открытого ключа RSA) и могут достигать длины в 8 килобайт (таким
образом, максимальный размер ключа DSA 8 килобит, а RSA 16 килобит).
Очевидно, не стоит вводить их вручную. Вместо этого следует скопировать файл
identity.pub, id_dsa.pub или id_rsa.pub и отредактировать их.
Минимальная длина модуля RSA независимо от протокола составляет 768 бит.
Параметры (если таковые имеются) состоят из разделенных запятой
определений. Для указания пробелов следует воспользоваться двойными
кавычками. Поддерживаются следующие определения параметров (регистра
названий параметров не учитывается):
- command=”команда” выполнять команду при каждом использовании
данного ключа для аутентификации. Команда, передаваемая пользователем,
будет игнорироваться. Команда выполняется на псевдо-терминале, если
последний запрашивается клиентом; в противном случае она выполняется
224
ЛКНВ.11100-01 90 02
без терминала. Если требуется «чистый» 8-битный канал, запрашивать
псевдо-терминал или указывать no-pty нельзя. В команду может быть
включена кавычка, предваренная обратной косой чертой. Данный параметр
полезен для ограничения использования определенных RSA-ключей.
Примером может служить ключ, по которому можно выполнять удаленные
операции резервного копирования и ничего более. Учтите, что клиент по-
прежнему может запросить перенаправление TCP и (или) X11, если только
это не запрещено явно. Команда, запрашиваемая клиентом, заносится в
переменную SSH_ORIGINAL_COMMAND. Заметьте, что данный параметр
относится к выполнению оболочки, команды или подсистемы;
- environment=”ПЕРЕМЕННАЯ=значение” добавить переменную в среду
(или переопределить ее значение) при регистрации в системе с
использованием данного ключа. Допускается указание нескольких таких
директив. По умолчанию изменение переменных среды таким образом
отключено. За его включение отвечает параметр PermitUserEnvironment.
Этот параметр отключается автоматически при включении UseLogin;
- From=”список-шаблонов” если параметр определен, то в дополнение к
прохождению аутентификации по открытому ключу каноническое имя
удаленного хоста должно соответствовать одному из шаблонов в списке
(шаблоны указываются через запятую). Цель этого параметра увеличение
степени защиты: если частный ключ хоста каким-либо образом удастся
похитить, то он позволит злоумышленнику войти в систему из любой точки
мира. Этот дополнительный параметр делает использование ворованных
ключей более затруднительным (кроме перехвата ключа, требуется взлом
серверов имен и (или) маршрутизаторов). Смотрите секцию ШАБЛОНЫ в
ssh_config;
- no-agent-forwarding запретить перенаправление агента аутентификации
при аутентификации данным ключом;
225
ЛКНВ.11100-01 90 02
- no-port-forwarding запретить перенаправление TCP/IP при
аутентификации данным ключом. Любой запрос на перенаправление порта
приведет к получению клиентом сообщения об ошибке. Это может быть
использовано, например, вместе с параметром command;
- no-pty запретить назначение терминала (запросы на назначение псевдо-
терминала не будут удовлетворены);
- no-X11-forwarding запретить перенаправление Х11 при аутентификации
данным ключом. Любой запрос на перенаправление порта возвратит
клиенту сообщение об ошибке;
- permitopen=”хост:порт” для функции перенаправления данных с
локального клиентского порта на порт удаленной системы (выполняемого
при указании ssh L) ограничить набор возможных целей для
перенаправления указанной машиной и портом. Для указания адресов IPv6
можно использовать альтернативный синтаксис: хост/порт. Допускается
указание нескольких целей через запятую. Значение параметра не
интерпретируется как шаблон (т. е. является литеральным);
- tunnel=”n принудительно использовать устройство tun на сервере.
Без этого параметра при запросе клиентом туннеля используется
ближайшее доступное для этого устройство.
Пример файла authorized_keys:
# допустимы комментарии только на всю строку
ssh-rsa AAAAB3Nza...LiPk== user@example.test
from="*.sales.example.test,!pc.sales.example.test" ssh-rsa
AAAAB2...19Q== test@example.test
command="dump /home",no-pty,no-port-forwarding ssh-dss
AAAAC3...51R== example.test
permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-dss
AAAAB5...21S==
tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...==
user@example.test
226
ЛКНВ.11100-01 90 02
Формат файла ssh_known_hosts
В файлах /etc/openssh/ssh_known_hosts и ~/.ssh/known_hosts хранятся
открытые ключи всех машин, с которыми когда-либо устанавливалась связь.
Глобальный файл должен быть подготовлен администратором (это необязательно),
пользовательский файл поддерживается автоматически: каждый раз, когда
поступает запрос на соединение от неизвестной машины, ее ключ автоматически
заносится в пользовательский файл.
Каждая строка в этом файле содержит следующие поля: имена хостов,
битность, порядок, модуль, комментарий. Поля разделены пробелами.
Имена хостов это разделенный запятыми список шаблонов (символы
подстановки ('*' и '?'); каждый шаблон сопоставляется с каноническим именем
машины (при аутентификации клиента) или с именем, которое указано
пользователем (при аутентификации сервера). Этот шаблон может также быть
предварен знаком '!' для обозначения отрицания: если имя машины соответствует
отрицаемому шаблону, оно будет отвергнуто (этой строкой) даже если оно
соответствует другому шаблону в этой же строке. Также можно, заключив имя хоста
или IP-адрес в квадратные скобки – '[' и '],' – через ':' указать нестандартный порт.
Вместо имен хостов можно записывать их хеши. Это позволит скрыть их от
злоумышленника в случае попадания файла в его руки. Для различия хешей от имен
хостов первые предваряются символом '|'. На одной строке может быть не больше
одного хеша, операция отрицания в этом случае не доступна.
Разрядность, порядок и модуль копируются из ключа хоста RSA, например,
/etc/openssh/ssh_host_key.pub Необязательное поле комментария занимает всю
оставшуюся часть строки и игнорируется.
Комментариями также считаются пустые и строки, начинающиеся с «#».
Идентификация машины принимается, если любая совпавшая строка
содержит правильный ключ. Таким образом, можно (хотя это не рекомендуется)
иметь несколько строк или различных ключей для одного и того же хоста. Это
неизбежно случается при помещении в файл кратких форм имен хостов из
227
ЛКНВ.11100-01 90 02
различных доменов. В файлах может содержаться противоречивая информация.
Идентификация принимается, если адекватная информация имеется в любом из них.
Заметьте, что строки в этих файлах, обычно имеют длину в несколько сотен
символов и, очевидно, не стоит вводить имена хостов вручную. Вместо этого их
можно сгенерировать при помощи сценария оболочки или взять из файла
/etc/ssh/ssh_host_key.pub, добавив вначале имя хоста.
Пример файла ssh_known_hosts:
# допустимы явные комментарии только на всю строку
closenet,...,192.0.2.53 1024 37 159...93 closenet.example.test
cvs.example.test,192.0.2.10 ssh-rsa AAAA1234.....=
# хеш имени хоста
|1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM= ssh-
rsa
AAAA1234.....=
Файлы
~/.hushlogin позволяет отключить вывод времени последнего входа в
систему и содержимого файла /etc/motd, если в файле конфигурации включены
соответственно PrintLastLog и PrintMotd. Файл не влияет на вывод содержимого
Banner.
~/.rhosts используется для аутентификации по хосту. На некоторых
машинах, если каталог пользователя находится на разделе NFS, для того чтобы он
был доступен пользователю root, он должен быть доступен для чтения всем. Файл
должен принадлежать пользователю и не должен быть доступен для записи другим.
Рекомендуемый набор прав доступа в общем случае чтение/запись для
пользователя и недоступность для других.
~/.shosts аналогичен файлу .rhosts, но позволяет проводить
аутентификацию на основе хоста, не разрешая вход в систему с помощью
rlogin/rsh.
~/.ssh/authorized_keys содержит список открытых ключей
(DSA/ECDSA/RSA), которые могут быть использованы для регистрации данного
пользователя. Формат файла описан выше. Этот файл не очень важен для
228
ЛКНВ.11100-01 90 02
злоумышленника, но мы рекомендуем сделать его доступным только пользователю
(чтение/запись).
Если этот файл, каталог ~/.ssh или домашний каталог пользователя доступны
для записи другим пользователям, этот файл может быть изменен или заменен
любым пользователем системы, имеющим сколько угодно мало прав. В этом случае
sshd не будет использовать этот файл, если только параметр StrictModes не имеет
значение «no». Установить рекомендуемый набор прав доступа можно командой
chmodgo-w ~/ ~/.ssh ~/.ssh/authorized_keys.
~/.ssh/environment этот файл (при его наличии) считывается в среду при
регистрации в системе. Он может содержать только пустые строки, строки
комментария (начинающиеся с «#»), и определения значений переменных в виде:
переменная=значение. Правом на запись этого файла должен обладать только
пользователь; он не должен быть доступен остальным. Задание переменных среды
отключено по умолчанию, за что отвечает параметр PermitUserEnvironment.
~/.ssh/known_hosts список адресов, к которым когда-либо подключался
пользователь, и которые отсутствуют в общесистемном файле, и соответствующих
им открытых ключей. Формат файла описан выше. Файл должен быть доступен для
записи только владельцу и администратору. Он может также быть доступен для
чтения всем остальным, но это не обязательно.
~/.ssh/rc сценарий инициализации, запускаемый перед запуском оболочки
пользователя или команды. Этот файл должен быть доступен для записи только
пользователю и не должен быть вообще доступен другим.
/etc/hosts.allow и /etc/hosts.deny данные о разрешении и запрете
соединений с хостами для надстроек TCP.
/etc/hosts.equiv используется для аутентификации на основе хоста.
Должен быть доступен для записи только root.
/etc/openssh/moduli модули для схемы Диффи-Хеллмана.
/etc/motd содержимое файла отображается программой login после того
как осуществлен успешный вход в систему, перед запуском команды
интерпретатора.
229
ЛКНВ.11100-01 90 02
/etc/nologin если существует, подключение будет разрешено только
пользователю с идентификатором root. Любому, кто пытается войти в систему,
будет показано содержимое этого файла, и запросы на регистрацию в качестве не
пользователя с идентификатором root будут отвергнуты. Этот файл должен быть
доступен для чтения всем.
/etc/shosts.equiv аналогичен hosts.equiv, но позволяет проводить
аутентификацию на основе хоста, не разрешая вход в систему с помощью
rlogin/rsh.
/etc/openssh/ssh_known_hosts общесистемный список известных хостов
и их ключей. Этот файл должен составляться администратором. В него следует
включать открытые ключи всех компьютеров организации. Формат файла описан
выше. Файл должен быть доступен всем для чтения и владельцу/администратору
для записи.
/etc/openssh/ssh_host_key, /etc/openssh/ssh_host_dsa_key,
/etc/openssh/ssh_host_ecdsa_key, /etc/openssh/ssh_host_rsa_key содержат
частные ключи хостов. Файлы должны принадлежать root, и быть доступными
только для него. Не запустится если эти файлы доступны для чтения кому-либо
кроме пользователя с идентификатором root.
/etc/openssh/ssh_host_key.pub, /etc/openssh/ssh_host_dsa_key.pub,
/etc/openssh/ssh_host_ecdsa_key.pub, /etc/openssh/ssh_host_rsa_key.pub
содержат открытые ключи хостов. Должны быть доступны всем для чтения и только
пользователю с идентификатором root для записи. Содержимое файлов должно
соответствовать содержимому соответствующих файлов с частными ключами. Эти
файлы не используются программой и предназначены для копирования
пользователем в файлы known_hosts. Эти файлы создаются командой ssh-keygen.
/etc/openssh/sshd_config конфигурация службы sshd.
/etc/openssh/sshrc аналогичен ~/.ssh/rc, позволяет задавать
инициализационный сценарий глобально для всех пользователей. Должен быть
доступен всем для чтения и только root для записи.
230
ЛКНВ.11100-01 90 02
/var/empty каталог chroot используемый при отделении полномочий на
предаутентификационном этапе. В папке не должно быть никаких файлов, она
должна принадлежать только root и не должна быть доступна другим для записи.
/var/run/sshd.pid идентификатор процесса, ожидающего запросов на
подключение (если одновременно работает несколько экземпляров служб для
нескольких портов, в него записывается идентификатор экземпляра, запущенного
последним). Содержимое этого файла может не быть защищено и может быть
доступно всем.
8.12.2. SSHD_CONFIG
Описание файла конфигурации
Служба sshd считывает данные о конфигурации из файла
/etc/openssh/sshd_config (или из файла, указанного в командной строке при
помощи параметра -f). Файл содержит пары «параметр-значение», по одной на
строку. Пустые строки и строки, начинающиеся с «#» интерпретируются как
комментарии. В случае, если аргументы содержат пробелы, они должны быть
заключены в двойные кавычки (”).
Файл /etc/openssh/sshd_config должен быть доступен для записи только
пользователю root, и рекомендуется делать его доступным для чтения всем.
В таблице 7 приведены описания возможных параметров (регистр имен
аргументов учитывается, регистр имен параметров – нет).
Т а б л и ц а 7 Описание параметров
Параметр
Описание
AcceptEnv
Список переменных среды, которые, будучи заданы клиентом,
будут копироваться в environ сеанса. Соответствующая
настройка на стороне клиента выполняется параметром
SendEnv и описана в ssh_config. Переменные указываются
по имени, допускаются символы подстановки «*» и «?»
Несколько переменных среды можно указывать через
пробелы или в нескольких параметрах AcceptEnv. Данный
параметр введен для предотвращения обхода ограничений
среды пользователя посредством изменения значений
переменных среды. По умолчанию не принимаются никакие
переменные среды.
231
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
AddressFamily
Семейство адресов, которое должна использовать служба
sshd. Допустимые значения: «any» «inet» (только IPv4) и
«inet6» олько IPv6). Значение по умолчанию – «any».
AllowGroups
Список шаблонов имен групп через пробел. Если параметр
определен, регистрация в системе разрешается только тем
пользователям, чья главная или вспомогательная группы
соответствуют какому-либо из шаблонов. Допустимы
только имена групп. По умолчанию разрешена регистрация
в системе для членов всех групп.
Разрешающие/запрещающие (allow/deny) директивы
обрабатываются в следующем порядке:
DenyUsers AllowUsers DenyGroups AllowGroups.
AllowTcpForwarding
Определяет, будет ли разрешено перенаправление TCP.
Значение по умолчанию «yes». Отключение пересылки
TCP не увеличит уровень защищенности системы, пока
пользователям не запрещен доступ к командной оболочке,
так как они всегда могут установить свои собственные
перенаправления.
AllowUsers
Список имен пользователей через пробел. Если параметр
определен, регистрация в системе будет разрешена только
пользователям, чьи имена соответствуют одному из
шаблонов. Допустимы только имена пользователей;
числовой идентификатор пользователя не распознается. По
умолчанию разрешена регистрация в системе для всех
пользователей. Если шаблон указывается в форме
ПОЛЬЗОВАТЕЛЬ@ХОСТ, его две части проверяются отдельно,
таким образом, разрешая доступ только пользователям с
указанными именами, подключающимся с указанных
хостов. Разрешающие/запрещающие (allow/deny)
директивы обрабатываются в следующем порядке:
DenyUsers AllowUsers DenyGroups AllowGroups.
AuthorizedKeysFile
Файл с открытыми ключами, которые могут быть
использованы для аутентификации пользователей.
Допустимо указание шаблонов, они преобразуются при
настройке соединения: %% заменяется на символ '%', %h
заменяется на домашний каталог идентифицируемого
пользователя, %u на имя пользователя. После
преобразования AuthorizedKeysFile интерпретируется
либо как абсолютный путь, либо как путь относительно
домашнего каталога пользователя.
Значение по умолчанию:
/etc/openssh/authorized_keys/%u
/etc/openssh/authorized_keys2/%u .ssh/authorized_
keys .ssh/authorized_keys2.
232
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
Banner
Содержимое указанного файла будет отправлено
удаленному пользователю прежде, чем будет разрешена
аутентификация. Этот параметр доступен только с
протоколом версии 2. По умолчанию не выводится
никакой информации.
ChallengeResponseAu
thentication
Определяет, разрешается ли беспарольная
аутентификация «вызов-ответ». Поддерживаются все
схемы аутентификации login.conf. Значение по
умолчанию – «no».
Ciphers
Допустимые для протокола версии 2 шифры. Несколько
кодов указываются через запятую. Поддерживаются
следующие шифры: «3des-cbc», «aes128-cbc», «aes192-
cbc», «aes256-cbc», «aes128-ctr», «aes192-ctr», «aes256-
ctr», «arcfour128», «arcfour256», «arcfour», «blowfish-cbc»
и «cast128-cbc». Значение по умолчанию:
- aes256-ctr,aes192-ctr,aes128-ctr,arcfour256,
arcfour128;
- blowfish-cbc,aes256-cbc,aes192-cbc,aes128-
cbc,3des-cbc;cast128-cbc, arcfour.
ClientAliveCountMax
Количество запросов, проверяющих доступность клиента,
которые могут оставаться без ответа. Если предел
достигнут, sshd отключит клиента и завершит сеанс.
Запросы client alive отличаются от TCPKeepAlive.
Данные запросы отправляются через защищенный канал
и поэтому не могут быть подменены. Параметр
TCPKeepAlive допускает возможность подмены данных.
Механизм client alive полезен, если поведение
клиента или сервера зависит от активности соединения.
Значение по умолчанию 3. Если ClientAliveInterval
равно 15, а для ClientAliveCountMax оставлено значение
по умолчанию, не отвечающие клиенты SSH будут
отключаться приблизительно через 45. Данный параметр
относится только к протоколу версии 2.
ClientAliveInterval
Время бездействия со стороны клиента в секундах, после
которого sshd отправляет через защищенный канал запрос
отклика клиенту. Значение по умолчанию 0, что
означает, что клиенту не будут направляться такие
запросы. Этот параметр применим только с протоколом
версии 2.
Compression
Разрешить сжатие сразу, после аутентификации или
вообще запретить его. Допустимые значения «yes»,
«delayed» и «no». Значение по умолчанию – «delayed».
233
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
DenyGroups
Список шаблонов имен групп через пробел. Если
параметр определен, регистрация в системе
пользователям, чья главная или вспомогательная группа
соответствуют содержащимся в списке шаблонам, не
разрешается. Допустимы только имена групп. По
умолчанию регистрация в системе разрешена для всех
групп. Разрешающие/запрещающие (allow/deny)
директивы обрабатываются в следующем порядке:
DenyUsers AllowUsers DenyGroups AllowGroups.
DenyUsers
Список имен пользователей через пробел. Если параметр
определен, регистрация в системе пользователей, чьи
имена соответствуют одному из шаблонов, будет
запрещена. Допустимы только имена пользователей;
числовой идентификатор пользователя не распознается.
По умолчанию разрешена регистрация в системе для всех
пользователей. Если шаблон указывается в форме
ПОЛЬЗОВАТЕЛЬ@ХОСТ, его две части проверяются
отдельно, таким образом, запрещается доступ только
пользователям с указанными именами, подключающимся
с указанных хостов. Разрешающие/запрещающие
(allow/deny) директивы обрабатываются в следующем
порядке: DenyUsers AllowUsers DenyGroups
AllowGroups.
ForceCommand
Выполнять указанную команду после регистрации
пользователя в системе, игнорируя команду,
запрашиваемую им. Команда запускается оболочкой
пользователя с ключом -c. Это относится к выполнению
оболочки, команды или подсистемы, обычно применяется
внутри блока Match. Команда, запрошенная
пользователем, помещается в переменную среды
SSH_ORIGINAL_COMMAND.
GatewayPorts
Определяет, разрешено ли удаленным машинам
подключение к портам, выделенным для туннелирования
трафика клиентов. По умолчанию sshd делает
доступными порты, используемые для туннелирования
инициируемого сервером, только для кольцевого
(loopback) адреса, то есть удаленные машины
подключаться к перенаправляемым портам не могут.
С помощью данного параметра можно исправить такое
положение дел.
234
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
Значение «no» разрешает туннелирование только в
рамках данной системы, «yes» разрешает
туннелирование для хостов, соответствующих шаблону,
а «clientspecified» позволяет клиенту самостоятельно
выбирать адрес для туннелирования. Значение по
умолчанию – «no».
GSSAPIAuthentication
Допускать аутентификацию по GSSAPI. Значение по
умолчанию «no» Данный параметр относится только к
протоколу версии 2.
GSSAPICleanupCredent
ials
Очищать ли кэш аутентификационных данных клиента
при завершении сеанса. Значение по умолчанию «yes»
Данный параметр относится только к протоколу
версии 2.
HostbasedAuthenticat
ion
Допускать аутентификацию по хостам, т. е.
аутентификацию по rhosts или /etc/hosts.equiv в
сочетании с открытым ключом клиента. Этот параметр
схож с RhostsRSAAuthentication и применим только к
протоколу версии 2. Значение по умолчанию – «no».
HostbasedUsesNameFro
mPacketOnly
Отключить выполнение запросов имени хоста при
обработке файлов ~/.shosts, ~/.rhosts и
/etc/hosts.equiv в рамках аутентификации по хосту
(HostbasedAuthentication). При значении «yes» для
сравнения будет использоваться имя указанное
клиентом, а не имя которое может быть получено
стандартными средствами соединения TCP. Значение по
умолчанию – «no».
HostKey
Файл с частными ключами хоста. Значение по
умолчанию /etc/ssh/ssh_host_key для протокола 1,
и /etc/ssh/ssh_host_dsa_key,
/etc/ssh/ssh_host_ecdsa_key и
/etc/ssh/ssh_host_rsa_key для протокола 2. sshd не
будет принимать файлы частных ключей доступные для
чтения всей группе или вообще всем пользователям.
Можно указывать несколько файлов с ключами хоста.
Ключи «rsa1» используются для протокола версии 1,
ключи «dsa», «ecdsa» и «rsa» для версии 2 протокола
SSH.
IgnoreRhosts
Не учитывать содержимое файлов .rhosts и .shosts
при аутентификации RhostsRSAAuthentication и
HostbasedAuthentication. При этом будут
учитываться только /etc/hosts.equiv и
/etc/openssh/shosts.equiv. Значение по умолчанию –
«yes».
235
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
IgnoreUserKnownHosts
Не учитывать содержимое файла
~/.ssh/known_hosts при
RhostsRSAAuthentication или
HostbasedAuthentication.Значение по умолчанию
«no».
KerberosAuthentication
Определяет, дозволена ли аутентификация Kerberos:
Проверять ли пароль, указанный пользователем для
аутентификации PasswordAuthentication в
Kerberos KDC. Это может быть либо в форме тикетов
Kerberos или, если PasswordAuthentication
установлена в «yes», пароль, предоставленный
пользователем, будет утвержден через Kerberos KDC.
Для использования этого параметра серверу
необходима Kerberos servtab, которая разрешит
проверку субъекта KDC. Значение по умолчанию
«no».
KerberosGetAFSToken
Если AFS активна и у пользователя имеется Kerberos
5 TGT, получать талон AFS перед обращением к
домашнему каталогу пользователя. Значение по
умолчанию – «no».
KerberosOrLocalPasswd
В случае непринятия аутентификации посредством
Kerberos, проверять пароль другими механизмами,
такими как /etc/passwd. Значение по умолчанию
«yes».
KerberosTicketCleanup
Очищать ли кэш талонов пользователя при
завершении сеанса. Значение по умолчанию – «yes».
KeyRegenerationInterval
В протоколе версии 1 эфемерный ключ сервера будет
автоматически регенерироваться по истечении этого
количества секунд. Цель регенерации состоит в том,
чтобы предохранить кодированные установленные
сеансы от более поздних вторжений на машину и
захвата ключей. Ключ нигде не сохраняется. Если
установлено значение 0, то ключ не будет
регенерироваться. Значение по умолчанию 3600
(секунд).
ListenAddress
Локальные адреса, по которым sshd должен ожидать
соединения. Может быт использован следующие
форматы записей:
ListenAddress
хост|адрес-IPv4|адрес-IPv6
ListenAddress
хост|адрес-IPv4:порт
ListenAddress
[хост|адрес-IPv6]:порт
236
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
Если порт не указан, sshd будет ожидать соединения
на указанном адресе и на всех указанных ранее (но
не после) в параметре Port портах. По умолчанию
ожидается соединение на всех локальных адресах.
Допустимо указание нескольких параметров.
LoginGraceTime
Сервер отключается по истечении этого времени,
если пользователю не удалась регистрация в системе.
Если стоит значение 0, то время ожидания не
ограничено. Значение по умолчанию – 120 секунд.
LogLevel
Задает степень подробности сообщений для
протоколов sshd. Допустимыми являются значения:
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1,
DEBUG2, и DEBUG3. Значение по умолчанию INFO.
Значения DEBUG и DEBUG1 эквивалентны.
Использование значения DEBUG* нарушает
конфиденциальность пользователей и потому не
рекомендуется.
MACs
Допустимые алгоритмы MAC (Message
Authentication Code код установления подлинности
сообщения).
Они используются в протоколе версии 2 для
гарантирования целостности данных. Несколько
алгоритмов следует указывать через запятую.
Значение по умолчанию:
hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-
ripemd160,hmac-sha1-96,hmac-md5-96,hmac-
sha2-256,hmac-sha256-96,hmac-sha2-512,hmac-
sha2-512-96.
Match
Начинает условный блок. Если все критерии на
строке Match удовлетворены, указанные в блоке
директивы будут иметь больший приоритет, чем
указанные в глобальном разделе файла
конфигурации. Концом блока считается либо
следующая директива Match, либо конец файла. В
качестве аргументов Match принимаются пары
критерий-шаблон. Допустимые критерии: User
Group Host и Address В самом блоке Match
допустимо указание следующих параметров:
AllowAgentForwarding, AllowTcpForwarding,
AuthorizedKeysFile, AuthorizedPrincipalsFile,
Banner, ChrootDirectory, ForceCommand,
237
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
GatewayPorts, GSSAPIAuthentication,
HostbasedAuthentication,
HostbasedUsesNameFromPacketOnly,
KbdInteractiveAuthentication, Kerber-
osAuthentication, Match, MaxAuthTries,
MaxSessions, PasswordAuthentication,
PermitEmptyPasswords, PermitOpen, PermitRoot-
Login, PermitTunnel, PubkeyAuthentication,
RhostsRSAAuthentication, RSAAuthentication,
X11DisplayOffset, X11Forwarding и
X11UseLocalHost.
MaxAuthTries
Ограничение на число попыток идентифицировать
себя в течение одного соединения. При достижении
количества неудачных попыток аутентификации
записи о последующих неудачах будут вноситься в
протокол. Значение по умолчанию: 6.
MaxSesstions
Ограничение на число одновременно открытых сессий
в каждом сетевом соединении. Значение по
умолчанию – 10.
MaxStartups
Ограничение на число одновременных соединений, в
которых не был пройден этап аутентификации. Все
последующие соединения не будут приниматься, пока
на уже существующем соединении не будет
произведена аутентификация или не истечет время,
указанное в параметре LoginGraceTime. Значение по
умолчанию «10:30:20». Как альтернатива может
быть задействован ранний случайный отказ в
подключении путем указания трех разделенных через
двоеточие значений «старт:норма:предел» (например,
«10:30:60»). Соединение будет сбрасываться с
вероятностью «норма/100» (30%) если имеется
«старт» (10) (10) соединений с не пройденным этапом
аутентификации.
Вероятность возрастает линейно и постоянно,
попытки будут отвергаться при достижении числа
«предел» (60).
PasswordAuthentication
Допускать аутентификацию по паролю. Значение по
умолчанию – «yes».
PermitEmptyPasswords
Допускать использование пустых паролей при
аутентификации по паролю. Значение по умолчанию
«no».
238
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
PermitOpen
Ограничить возможные конечные точки для
туннелирования TCP. Допустимые формы указания
точек:
PermitOpen
хост:порт
PermitOpen
адрес-IPv4:порт
PermitOpen
[адрес-IPv6]:порт
Возможно указание нескольких конечных точек через
пробел. Значение «any» снимает ограничение и
является значением по умолчанию.
PermitRootLogin
Допускать вход в систему через ssh в качестве
пользователя с идентификатором root. Допустимые
значения: «yes», «without-password», «forced-commands-
only», «no». Значение по умолчанию «yes».
Если этот параметр установлен в значение «without-
password» войти в систему в качестве пользователя с
идентификатором root, указав для аутентификации
пароль, будет невозможно.
Если этот параметр установлен в значение «forced-
commands-only» будет разрешена регистрация
пользователя с идентификатором root в системе по
открытому ключу, но только если определен параметр
command команда (может быть полезно для удаленного
создания резервных копий, даже если регистрация
пользователя с идентификатором root в системе не
разрешена). Все другие методы аутентификации для
пользователя с идентификатором root будут
отключены.
При значении «no» вход в систему в качестве root будет
полностью запрещен.
PermitTunnel
Допускать использование перенаправления для
устройств tun. Допустимые значения: «yes» «point-to-
point» (уровень 3), «ethernet» ровень 2), «no».
Значение «yes» эквивалентно «point-to-point» и
«ethernet» одновременно. Значение по умолчанию
«no».
PermitUserEnvironment
Учитывать ли файл ~/.ssh/environment и параметры
environment= в файле ~/.ssh/authorized_keys.
Значение по умолчанию – «no».
239
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
Посредством изменения переменных среды
пользователи могут обойти ограничения своих
полномочий. Например, с помощью механизма
LD_PRELOAD.
PidFile
Файл в который следует записывать идентификатор
процесса службы SSH. Значение по умолчанию
/var/run/sshd.pid.
Port
Порт, на котором следует ожидать запросы на
соединение. Значение по умолчанию 22.
Допустимо указание параметра несколько раз. См.
также ListenAddress.
PrintLastLog
Выводить ли время и дату предыдущего входа в
систему при интерактивной регистрации
пользователя в ней. Значение по умолчанию – «yes».
PrintMotd
Выводить ли содержимое файла /etc/motd при
интерактивной регистрации пользователя в системе
некоторых системах это выполняется оболочкой,
сценарием /etc/profile или аналогичным).
Значение по умолчанию – «yes».
Protocol
Версии протокола, которые следует принимать.
Допустимые значения «1» и «2» Несколько
значений указываются через запятую. Значение по
умолчанию «2». Порядок указания протоколов не
имеет значения, т. к. протокол выбирается клиентом
из списка доступных.
PubkeyAuthentication
Допускать аутентификацию по открытому ключу.
Значение по умолчанию «yes». Данный параметр
относится только к протоколу версии 2.
RhostsRSAAuthentication
Допускать аутентификацию по rhosts или
/etc/hosts.equiv совместно с аутентификацией по
хосту RSA. Значение по умолчанию «no» Данный
параметр относится только к протоколу версии 1.
RSAAuthentication
Допускать аутентификацию только по ключу RSA.
Значение по умолчанию «yes». Данный параметр
относится только к протоколу версии 1.
ServerKeyBits
Длина ключа сервера для эфемерного протокола 1.
Минимальное значение – 512 (по умолчанию – 1024).
StrictModes
Проверять наборы прав доступа и принадлежность
конфигурационных файлов и домашнего каталога
пользователя перед разрешением регистрации в
системе.
240
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
Это рекомендуется выполнять потому, что новички
иногда оставляют свои каталоги или файлы
доступными для записи всем. Значение по умолчанию –
«yes».
Subsystem
Позволяет настроить внешнюю подсистему (например,
службу FTP). В качестве параметров должны выступать
имя подсистемы и команда, которая будет выполняться
при запросе подсистемы. Команда sftp-server
реализует подсистему передачи файлов sftp. По
умолчанию подсистемы не определены. Данный
параметр относится только к протоколу
версии 2.
SyslogFacility
Код источника сообщений для протокола syslog.
Допустимые значения: DAEMON, USER, AUTHPRIV,
LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5,
LOCAL6, LOCAL7. Значение по умолчанию AUTHPRIV.
TCPKeepAlive
Указывает, будет ли система посылать другой стороне
контрольные сообщения для удержания соединения
активным. Если они посылаются, то разрыв соединения
или аварийный отказ одной из машин будут должным
образом замечены. При этом временная потеря
маршрута также повлечет за собой разрыв соединения.
С другой стороны, если контрольные сообщения не
посылаются, сеанс на сервере может зависнуть, оставив
после себя «пользователей-привидений» и отнимая
ресурсы сервера.
Значение по умолчанию «yes». Это позволяет
избежать бесконечно долгих сеансов. Для отключения
отправки сообщений TCP keepalive установите
значение «no».
UseDNS
Выполнять ли запросы DNS для получения имени
удаленного хоста для того чтобы убеждаться в том, что
обратное преобразование выдает тот же самый
IP-адрес. Значение по умолчанию – «yes».
UseLogin
Использовать login для интерактивных сеансов
регистрации в системе. Значение по умолчанию «no».
login никогда не используется для удаленного
выполнения команд. Если этот параметр включен,
функция X11Forwarding будет отключена, потому что
login не может обрабатывать cookie xauth.
В случае использования разделения полномочий
(UsePrivilegeSeparation) данный параметр будет
отключен после прохождения аутентификации.
241
ЛКНВ.11100-01 90 02
Продолжение таблицы 7
Параметр
Описание
UsePAM
Включить интерфейс модулей аутентификации
Pluggable Authentication Module. При значении «yes»
аутентификация PAM будет доступна через
ChallengeResponseAuthentication и
PasswordAuthentication в дополнение к учетной
записи PAM и обработке модулей сеансов для всех
типов аутентификации. Поскольку безпарольная
аутентификация PAM «вызов-ответ» служит заменой
аутентификации по паролю, необходимо отключить
либо PasswordAuthentication, либо
ChallengeResponseAuthentication.
При включенном UsePAM службу sshd можно будет
выполнять только с правами root. Значение по
умолчанию – «yes».
UsePrivilegeSeparation
Разделять полномочия посредством создания
дочернего процесса с меньшими правами для
обработки входящего трафика. После прохождения
аутентификации для работы с клиентом будет создан
специальный процесс, соответствующий его правам.
Если значение параметра равно «sandbox», то на
непривилегированный процесс до прохождения
аутентификации будут наложены дополнительные
ограничения. Значение по умолчанию – «sandbox».
X11DisplayOffset
Номер первого дисплея доступного для
туннелирования трафика X11 sshd (по умолчанию
10). Позволяет избежать вмешательства sshd в работу
настоящих серверов X11.
X11Forwarding
Допускать туннелирование X11. Допустимые
значения «yes» и «no». Значение по умолчанию
«yes».
Если дисплей-посредник ожидает соединений от
любых адресов (или по шаблону) sshd включение
туннелирования X11 подвергает сервер и логические
дисплеи клиентов дополнительной опасности.
Поэтому такое поведение не является поведением по
умолчанию. Проверка и подмена
аутентификационных данных при атаке выполняются
на стороне клиента. При туннелировании X11
графический сервер клиента может подвергаться атаке
при запросе клиентом SSH туннелирования.
242
ЛКНВ.11100-01 90 02
Окончание таблицы 7
Параметр
Описание
Для большей защиты пользователей администратор
может запретить туннелирование, установив
значение «no».
Туннелирование X11 отключается автоматически
при включении UseLogin.
X11UseLocalhost
К какому адресу следует привязывать сервер
туннелирования X11: к кольцевому (loopback) или
адресу, указанному по шаблону. По умолчанию
сервер туннелирования привязывается к кольцевому
адресу, а в качестве хоста в переменную среды
DISPLAY заносится «localhost». Это не позволяет
удаленным хостам подключаться к дисплею-
посреднику. Однако, в случае старых клиентов X11,
такая конфигурация может не сработать. Установите
тогда X11UseLocalhost в «no». Допустимые
значения «yes» и «no». Значение по умолчанию
«yes».
XAuthLocation
Путь к команде xauth. Значение по умолчанию
/usr/bin/xauth.
Указание времени
Ключи командной строки sshd и параметры файлы конфигурации могут
требовать указания времени. Оно должно указываться в виде последовательности:
время [единицы]
где время положительное целое, единицы могут принимать следующие
значения:
- ничего – секунды;
- s | S секунды;
- m | M минуты;
- h | H часы;
- d | D дни;
- w | W недели.
243
ЛКНВ.11100-01 90 02
Итоговое время получается в результате сложения всех выражений. Примеры:
- 600 600 секунд (10 минут);
- 10m 10 минут;
- 1h30m 1 час 30 минут (90 минут).
Прокси-сервер (Squid)
Для обеспечения контролируемого доступа ПЭВМ локальной сети к сети
Интернет в составе ОС Альт 8 СП используется кэширующий прокси-сервер Squid.
Для обеспечения возможности использования ПЭВМ, на которую установлен
Squid, в качестве прокси-сервера необходимо настроить таблицы управления
доступом (Access Control Lists, далее ACL), которые хранятся в
конфигурационном файле squid.conf в директории /etc/squid/.
Для того чтобы сервер Squid принимал соединения из всей внутренней сети,
необходимо в раздел # TAG: acl включить следующую запись:
acl our_networks src <адреса внутренней сети>
http_access allow our_networks
При настройке таблиц управления доступом следует учитывать, что при
обработке запроса на доступ к серверу Squid все строки http_access файла
squid.conf просматриваются последовательно сверху вниз до первой строки,
соответствующей параметрам запроса.
8.13.1. Настройка прозрачного доступа через прокси-сервер
Для настройки прозрачного доступа пользователей локальной сети к сети
Интернет через прокси-сервер необходимо выполнить настройку фильтра адресов,
для этого необходимо выполнить команду iptables, перенаправляющую
HTTP-запросы к внешним серверам на порт Squid:
# iptables -t NAT -A PREROUTING -d ! <прокси-сервер> \
-i <внутренний _интерфейс> -p tcp -m tcp --dport 80 \
-j REDIRECT --to-ports 3128
Также можно выполнить альтернативную команду:
# iptables -t nat -A PREROUTING -p tcp -d 0/0 --dport www \
-i <внутренний_сетевой_интерфейс> -j DNAT \
-to <локальный_адрес_на_котором_слушает_прокси>:3128
244
ЛКНВ.11100-01 90 02
Настройка squid.conf при этом использует обратное проксирование. Далее
необходимо добавить в конфигурационный файл squid.conf следующую строку:
http_port 80 transparent
8.13.2. Фильтрация доступа
В Squid существует гибкая схема фильтрации внешних ссылок, с помощью
которой предоставляется возможность ограничить (запретить) доступ к
определенным сетевым ресурсам. Содержимое фильтруется с помощью таблиц
управления доступом ACL и настроек http_access deny, примеры которых
приведены в конфигурационном файле squid.conf. При задании фильтруемого
URL или доменного имени сервера можно использовать регулярные выражения,
определяя в одной строке фильтр для целого класса адресов или доменных имен.
Запрет доступа к домену baddomain.com, например, можно оформить
следующим образом:
acl Bad dstdomain baddomain.com
http_access deny Bad
8.13.3. Авторизация доступа
Squid позволяет настраивать таблицы доступа ACL индивидуально для
пользователей и (или) категорий пользователей. Если для определения того, какой
именно пользователь подключается к серверу, недостаточно IP-адреса его
компьютера, следует использовать схемы авторизации, принятые в Squid.
Авторизация конфигурируется с помощью тега TAG: auth_param. Схемы
(программы) авторизации, поддерживаемые Squid, хранятся в каталоге
/usr/lib/squid.
Для настройки аутентификации в LDAP можно использовать следующую
конфигурацию:
auth_param basic program /usr/lib/squid/squid_ldap_auth -b
ou=People,dc=office,dc=lan -f (uid=%s) -h ldap.office.lan
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
245
ЛКНВ.11100-01 90 02
8.13.4. Кэширование данных
Squid обеспечивает возможность кэширования данных, полученных по
запросам из сети Интернет (при повторных запросах данные извлекаются из
сохраненной копии).
Настройка правил кэширования данных осуществляется с помощью таблиц
доступа ACL, а также с помощью настройки конфигурационного файла squid.conf.
Для отключения функции кэширования данных необходимо использовать параметр
always_direct, для включения принудительного кэширования – never_direct.
Например, чтобы запретить кэширование данных, получаемых по протоколу
FTP, необходимо в конфигурационный файл squid.conf добавить следующие
строки:
acl FTP proto FTP
always_direct allow FTP
Squid поддерживает возможность обмена данными с кэшем авторизованного
сервера (parent peer (родительский прокси-сервер) /sibling peer ратский
прокси-сервер)), например, если запрашиваемый ресурс в локальном кэше Squid не
найден.
8.13.5. Настройка режима работы в качестве обратного прокси-сервера
Squid поддерживает режим работы в качестве обратного прокси-сервера.
Работа в таком режиме обеспечивает ретрансляцию запросов из внешней сети на
один или несколько серверов, логически расположенных во внутренней сети, и
позволяет скрыть реальное расположение и структуру серверов, а также уменьшить
нагрузку на них.
Для настройки сервера Squid для работы в качестве единственного обратного
прокси-сервера, принимающего HTTP-запросы из внешней сети, необходимо в
конфигурационный файл squid.conf добавить следующие строки:
http_port 80 defaultsite=internal.www.com
cache_peer <имя сервера> parent 80 <порт ICP> no-query
originserver
246
ЛКНВ.11100-01 90 02
П р и м е ч а н и я :
1. В примере в качестве порта, принимающего запросы из внешней сети по
протоколу HTTP, используется порт 80.
2. Так как сервер Squid играет роль единственного обратного прокси-сервера,
необходимо выключить ICP, указав в качестве порта ICP значение 0.
3. parent (родительский прокси-сервер) тип прокси-сервера в соответствии с
иерархией серверов.
Для обратного проксирования нескольких внутренних серверов необходимо,
чтобы внешние запросы к ресурсам сети Интернет с разными доменными именами
попадали на вход Squid, который бы ставил в соответствие каждому имени
действительный адрес сервера во внутренней сети и в соответствии с этим
перенаправлял запрос. Делается это с помощью механизма виртуальных хостов.
Для организации прокси для двух серверов (www1.foo.bar и www2.foo.bar),
адреса которых в DNS указывают на машину со Squid-сервером необходимо в
конфигурационный файл squid.conf добавить следующую запись:
http_port 80 defaultsite=www1.foo.bar vhost
hosts_file /etc/hosts
Настройка defaultsite используется сервером для заполнения HTTP-заголовков.
Для преобразования доменных имен в адреса серверов во внутренней сети следует
использовать файл /etc/hosts:
10.0.0.1 www1.foo.bar
10.0.0.2 www2.foo.bar
8.13.6. Сбор статистики и ограничение полосы доступа
В состав Squid входит утилита кэш-менеджер, предназначенная для
отображения статистики и загрузки сервера. Кэш-менеджер представляет собой
cgi-приложение и должен выполняться под управлением сконфигурированного
HTTP-сервера. Все настройки кэш-менеджера выполняются с помощью
конфигурирования файла squid.conf (строки, которые относятся к кэш-менеджеру,
обычно включают cachemgr).
Squid также обеспечивает возможность ограничения полосы пропускания для
пользователей (для этого используются параметры delay_pools и delay_class).
247
ЛКНВ.11100-01 90 02
8.13.7. Кеширование DNS-запросов
Squid содержит встроенный минисервер запросов DNS. Он выступает как
посредник между Squid и внешними DNS-серверами. При запуске Squid производит
начальное тестирование доступности DNS (можно отключить, используя опцию
D). Время кеширования удачного DNS-запроса по умолчанию составляет шесть
часов.
Доступ к службам из сети Интернет
8.14.1. Внешние сети
Сервер предоставляет возможность организовать доступ к своим службам
извне. Например, можно предоставить доступ к корпоративному веб-сайту из сети
Интернет. Для обеспечения такой возможности необходимо разрешить входящие
соединения на внешних интерфейсах. По умолчанию такие соединения
блокируются.
Для разрешения внешних и внутренних входящих соединений предусмотрен
раздел ЦУС «Брандмауэр». В списке «Разрешить входящие соединения на внешних
интерфейсах» модуля «Внешние сети» (пакет alterator-net-iptables) перечислены
наиболее часто используемые службы, отметив которые, можно сделать их
доступными для соединений на внешних сетевых интерфейсах (рис. 88). Если
необходимо предоставить доступ к службе, отсутствующей в списке, то нужно
задать используемые этой службой порты в соответствующих полях.
Можно выбрать один из двух режимов работы:
- роутер перенаправление пакетов между сетевыми интерфейсами
происходит без трансляции сетевых адресов;
- шлюз (NAT) в этом режиме будет настроена трансляция сетевых адресов
(NAT) при перенаправлении пакетов на внешние интерфейсы.
Использование этого режима имеет смысл, если на компьютере настроен, по
крайней мере, один внешний и один внутренний интерфейс.
248
ЛКНВ.11100-01 90 02
Рис. 88 Модуль «Внешние сети»
П р и м е ч а н и я :
1. В любом режиме включено только перенаправление пакетов с внутренних
интерфейсов. Перенаправление пакетов с внешних интерфейсов всегда выключено.
2. Все внутренние интерфейсы открыты для любых входящих соединений.
8.14.2. Список блокируемых хостов
Модуль ЦУС «Список блокируемых хостов» (пакет alterator-net-bl) позволяет
настроить блокировку любого сетевого трафика с указанных в списке узлов
(входящий, исходящий и пересылаемый).
Блокирование трафика с указанных в списке узлов начинается после
установки флага «Использовать черный список» (рис. 89).
Для добавления блокируемого узла необходимо ввести IP-адрес в поле
«Добавить IP-адрес сети или хоста:» и нажать на кнопку «Добавить».
Для удаления узла необходимо выбрать его из списка и нажать на кнопку
«Удалить».
249
ЛКНВ.11100-01 90 02
Рис. 89 Модуль «Список блокируемых хостов»
Статистика
Сетевой трафик
Все входящие и исходящие с сервера сетевые пакеты могут подсчитываться, и
выводится по запросу для анализа.
Модуль ЦУС «Сетевой трафик» (пакет alterator-ulogd) из раздела
«Статистика» предназначен для просмотра статистики входящих и исходящих с
сервера сетевых пакетов. Данный модуль позволяет оценить итоговый объем
полученных и переданных данных за все время работы сервера, за определенный
период времени и по каждой службе отдельно.
Для включения сбора данных необходимо установить флаг «Включить сбор
данных», и нажать на кнопку «Применить» (рис. 90).
Для просмотра статистики указывается период виде начальной и конечной
дат). Дата указывается в формате YYYY-MM-DD (год-месяц-день) или выбирается
из календаря справа от поля ввода даты. Из списка доступных сетевых интерфейсов
необходимо выбрать интересующий и нажать на кнопку «Показать» (рис. 90).
Трафик на указанном интерфейсе за заданный период показывается в виде:
- служба (название протокола);
- входящий трафик в Кбайтах;
- исходящий трафик в Кбайтах.
250
ЛКНВ.11100-01 90 02
Рис. 90 Просмотр статистики входящих и исходящих пакетов
Прокси-сервер
Пересылка каждого запроса во внешнюю сеть фиксируется прокси-сервером в
специальном журнале. На основании этих данных автоматически формируются
отчеты о статистике использования ресурсов сети, в том числе потраченного
времени и количества переданных данных (трафика).
Статистика не собирается по умолчанию. Включить ее сбор следует в модуле
ЦУС «Прокси-сервер» (пакет alterator-squidmill) из раздела «Статистика».
Для включения сбора статистики прокси-сервера необходимо установить флаг
«Включить сбор данных прокси-сервера» (рис. 91).
Рис. 91 Настройка сбора статистики прокси-сервера
251
ЛКНВ.11100-01 90 02
В том случае, если на прокси-сервере производилась аутентификация
пользователей, отчеты будут содержать данные об обращениях каждого
пользователя. Иначе отчеты будут формироваться только на основании адресов
локальной сети.
Для показа отчета необходимо задать условия фильтра и нажать на кнопку
«Показать».
Данные в таблице отсортированы по объему трафика в порядке убывания.
Для учета пользователей в статистике необходимо добавить хотя бы одно
правило. Самое очевидное правило запрет неаутентифицированных
пользователей. Только после этого в статистике начнут показываться пользователи.
Обслуживание системы
Для безотказной работы системы очень важно следить за корректной работой.
Регулярный мониторинг состояния системы, своевременное резервное копирование,
обновление установленного ПО, являются важной частью комплекса работ по
обслуживанию.
8.16.1. Мониторинг состояния системы
Для обеспечения бесперебойной работы системы крайне важно производить
постоянный мониторинг ее состояния. Все события, происходящие с системой,
записываются в журналы, анализ которых помогает избежать сбоев в работе
системы и предоставляет возможность разобраться в причинах некорректной
работы.
Для просмотра журналов предназначен модуль ЦУС «Системные журналы»
(пакет alterator-logs) из раздела «Система». Интерфейс позволяет просмотреть
различные типы журналов с возможностью перехода к более старым или более
новым записям.
Различные журналы могут быть выбраны из списка «Журналы» (рис. 92).
252
ЛКНВ.11100-01 90 02
Рис. 92 Модуль «Системные журналы»
Доступны следующие виды журналов:
- брандмауэр отображаются события безопасности, связанные с работой
межсетевого экрана ОС;
- системные сообщения сообщения от системных служб (сообщения с
типом DAEMON).
Каждый журнал может содержать довольно большое количество сообщений.
Уменьшить либо увеличить количество выводимых строк можно, выбрав нужное
значение в списке «Показывать».
8.16.2. Системные службы
Для изменения состояния служб можно использовать модуль ЦУС
«Системные службы» (пакет alterator-services) из раздела «Система». Интерфейс
позволяет изменять текущее состояние службы и, если необходимо, применить
опцию запуска службы при загрузке системы (рис. 93).
После выбора названия службы из списка отображается описание данной
службы, а также текущее состояние: Работает/Остановлена/Неизвестно.
253
ЛКНВ.11100-01 90 02
Рис. 93 Модуль «Системные службы»
8.16.3. Резервное копирование
Резервное копирование является важной частью работ по поддержанию
работоспособности сервера и всего домена. Так как сервер является критичной
частью сети, производите регулярное резервное копирование. При возникновении
нештатных ситуаций, например, выхода из строя оборудования, восстановить
работоспособное состояние сервера можно из резервной копии.
Ниже перечислены модули, с помощью которых можно настроить резервное
копирование.
План резервного копирования и дополнительные параметры настраиваются в
модуле ЦУС «Резервное копирование». Этот же модуль может использоваться и для
восстановления данных.
Bacula кроссплатформенное клиент-серверное ПО, позволяющее управлять
резервным копированием, восстановлением, и проверкой данных по сети для
компьютеров и ОС различных типов. Также о Bacula смотрите в документе
«Руководство по комплексу средств защиты. ЛКНВ.11100-01 99 02».
Структура:
- Bacula Director процесс, управляющий системой в целом (управление,
планирование, восстановление резервных копий);
254
ЛКНВ.11100-01 90 02
- Storage Director запускается на сервере, отвечающем за «физическое»
хранение данных;
- File Director сервис, запускаемый на каждом из клиентов;
- Bconsole консоль управления.
Копирование, восстановление, верификация и административные функции
оформляются в виде задания (Job). В задании задается набор файлов (FileSet),
который нужно копировать, компьютер (Client), с которого надо копировать файлы,
время копирования (Schedule), пул (Pool), куда копировать и дополнительные
директивы.
Задания на копирование данных определяются в конфигурационном файле
Директора (Director) и там же определяется график автоматического запуска этих
заданий. Директор выполняется постоянно как демон в фоновом режиме и запускает
задания на копирование в соответствии с графиком. Администратор может также
вручную запустить эти задания в любое время, используя службу Консоль.
Файлы настройки Bacula форматированы на основе ресурсов, включающих
директивы, обрамленные фигурными скобками "{}". Каждый компонент Bacula
имеет индивидуальный файл в каталоге /etc/bacula.
Различные компоненты Bacula должны авторизовывать себя друг для друга.
Это решается использованием директивы password. Например, пароль в ресурсе
Storage файла /etc/ bacula/bacula-dir.conf должен соответствовать паролю
ресурса Director файла /etc/ bacula/bacula-sd.conf.
Для того чтобы начать резервное копирование самого сервера или рабочей
станции, необходимо выполнить следующие шаги в ЦУС:
- перейти в раздел «Сервер резервного копирования» → «Клиенты»;
- указать имя узла (для сервера это будет localhost) и ОС. Нажать на кнопку
«Создать» (рис. 94);
- указать пароль для клиента и включаемые и исключаемые каталоги;
- нажать на кнопку «Сохранить параметры»;
- нажать ссылку «Конфигурационный файл клиента» и сохранить файл
<имя узла>-fd.bin на локальном компьютере;
255
ЛКНВ.11100-01 90 02
Рис. 94
- скопировать полученный файл на рабочую станцию или сервер. В ОС Linux
этот файл нужно сохранить под именем /etc/bacula/bacula-fd.conf;
- запустить на компьютере, где создается резервная копия, службу bacula-fd.
П р и м е ч а н и е . Для клиента под управлением ОС Linux по умолчанию
создается резервная копия всей файловой системы, кроме каталогов с временными и
служебными файлами: /dev, /.fsв ck, /.journal, /media, /mnt, /opt, /proc, /srv,
/sys, и /tmp.
В разделе «Сервер резервного копирования» «Расписание» указывается
время проведения инкрементного резервного копирования для каждого клиента
(рис. 95). Удостоверьтесь, что в это время на клиенте служба bacula-fd запущена.
В этом же разделе можно отключить резервное копирование для выбранных
клиентов.
Модуль «Архив» (раздел «Сервер резервного копирования») для выбранного
клиента (выбирается из списка «Клиенты») позволяет запустить создание резервной
копии вне расписания, удалить все резервные копии или восстановить данные этого
клиента (рис. 96).
Рис. 95
256
ЛКНВ.11100-01 90 02
Рис. 96 Модуль «Архив»
Расширенные параметры восстановления позволяют задать целевой каталог
восстановления. Этот модуль также позволяет:
- посмотреть общую информацию о доступном месте на диске;
- посмотреть состояние и размер архива для каждого клиента;
- принудительно запустить создание резервной копии;
- удалить резервную копию клиента;
- восстановить файл или каталог на выбранную дату.
8.16.4. Обновление системы
После установки системы крайне важно следить за обновлениями ПО.
Обновления для ОС Альт 8 СП могут содержать как исправления, связанные с
безопасностью, так и новый функционал или просто улучшение и ускорение
алгоритмов. В любом случае настоятельно рекомендуется регулярно обновлять
систему для повышения надежности работы системы.
Для автоматизации процесса установки обновлений предусмотрен модуль
ЦУС «Обновление системы» (пакет alterator-updates) из раздела «Система». Здесь
можно включить автоматическое обновление через Интернет с одного из
предлагаемых серверов или задать собственные настройки (рис. 97).
257
ЛКНВ.11100-01 90 02
Источник обновлений указывается явно (при выбранном режиме «Обновлять
систему автоматически из сети Интернет») или вычисляется автоматически
(при выбранном режиме «Обновление системы, управляемое сервером» и наличии в
локальной сети настроенного сервера обновлений (см. в п. 11.15)).
Процесс обновления системы будет запускаться автоматически согласно
заданному расписанию.
Рис. 97 Модуль «Обновление системы»
8.16.5. Локальные учетные записи
Модуль «Локальные учетные записи» (пакет alterator-users) из раздела
«Пользователи» предназначен для администрирования системных пользователей.
Для создания новой учетной записи необходимо ввести имя новой учетной
записи и нажать на кнопку «Создать», после чего имя отобразится в списке слева
(рис. 98).
Для дополнительных настроек необходимо выделить добавленное имя, либо,
если необходимо изменить существующую учетную запись, выбрать ее из списка.
П р и м е ч а н и е . При создании пользователя через ЦУС необходимо снимать
отметку с пункта «Входит в группу администраторов».
258
ЛКНВ.11100-01 90 02
Рис. 98 Управление локальными пользователями в веб-интерфейсе ЦУС
В модуле ЦУС «Локальные учетные записи» (только GUI) можно задать
профиль киоска для пользователя. Режим «киоск» служит для ограничения прав
пользователей в системе (рис. 99).
Рис. 99
259
ЛКНВ.11100-01 90 02
Профиль киоска – файл .desktop (обычно из /usr/share/applications),
размещаемый в каталог /etc/kiosk.
Для создания профиля можно просто скопировать файл .desktop (например,
firefox.desktop) из /usr/share/applications, в каталог /etc/kiosk, но лучше
создать свой desktop-файл и скрипт, содержащий требуемое ПО.
Пример настройки режима «киоск»:
- создать каталог /etc/kiosk (если он еще не создан);
- создать файл /etc/kiosk/webkiosk.desktop со следующим содержимым:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/bin/webkiosk
Name=WEB-kiosk
Icon=start
- создать файл /usr/local/bin/webkiosk со следующим содержимым:
#!/bin/bash
marco --replace &
firefox --kiosk --incognito https://ya.ru
- сделать файл /usr/local/bin/webkiosk исполняемым:
# chmod +x /usr/local/bin/webkiosk
- в модуле «Локальные учетные записи», выбрать учетную запись
пользователя, затем в выпадающем списке «Режим киоска» выбрать пункт
«WEB-kiosk» (webkiosk.desktop) и нажать на кнопку «Применить»;
- завершить сеанс текущего пользователя и войти в систему используя
учетную запись пользователя, для которого настроен режим «киоск».
Пользователю будет доступен только веб-браузер Mozilla firefox, по
умолчанию будет загружена страница, адрес которой указан в файле
/usr/local/bin/webkiosk.
260
ЛКНВ.11100-01 90 02
8.16.6. Администратор системы
В модуле «Администратор системы» (пакет alterator-root) из раздела
«Пользователи» можно изменить пароль суперпользователя (root), заданный при
начальной настройке системы (рис. 100).
В данном модуле (только в веб-интерфейсе) можно добавить публичную часть
ключа RSA или DSA для доступа к серверу по протоколу SSH.
Рис. 100 Модуль «Администратор системы»
8.16.7. Дата и время
В модуле «Дата и время» (пакет alterator-datetime) из раздела «Система»
можно изменить дату и время на сервере, сменить часовой пояс, а также настроить
автоматическую синхронизацию часов на самом сервере по протоколу NTP и
предоставление точного времени по этому протоколу для рабочих станций
локальной сети (рис. 101).
Системное время зависит от следующих факторов:
- часы в BIOS часы, встроенные в компьютер; они работают, даже если он
выключен;
- системное время часы в ядре ОС. Во время работы системы все процессы
пользуются именно этими часами;
261
ЛКНВ.11100-01 90 02
- часовые пояса регионы Земли, в каждом из которых принято единое
местное время.
Рис. 101 Модуль «Дата и время»
При запуске системы происходит активация системных часов и их
синхронизация с аппаратными, кроме того, в определенных случаях учитывается
значение часового пояса. При завершении работы системы происходит обратный
процесс.
Если настроена синхронизация времени с NTP-сервером, то сервер сможет
сам работать как сервер точного времени. Для этого достаточно отметить
соответствующий пункт «Работать как NTP-сервер» и нажать на кнопку
«Применить» (см. рис. 101).
8.16.8. Ограничение использования диска
Модуль «Использование диска» (пакет alterator-quota) в разделе
«Пользователи» позволяет ограничить использование дискового пространства
пользователями, заведенными в системе в модуле «Пользователи».
262
ЛКНВ.11100-01 90 02
Для управления квотами файловая система должна быть подключена с
параметрами usrquota, grpquota. Для этого следует выбрать нужный раздел в
списке «Файловая система» и установить отметку в поле «Включено» (рис. 102).
Модуль позволяет задать ограничения (квоты) для пользователя при
использовании определенного раздела диска. Ограничить можно как суммарное
количество Кбайт, занятых файлами пользователя, так и количество этих файлов
(рис. 102). Выберите пользователя в списке «Пользователь», установите
ограничения и нажмите на кнопку «Применить».
Рис. 102 Модуль «Использование диска»
При задании ограничений различают жесткие и мягкие ограничения:
- мягкое ограничение: нижняя граница ограничения, которая может быть
временно превышена. Временное ограничение – одна неделя;
- жесткое ограничение: использование диска, которое не может быть
превышено ни при каких условиях.
Значение 0 при задании ограничений означает отсутствие ограничений.
8.16.9. Выключение и перезагрузка компьютера
В целях обслуживания или по организационным причинам чтобы корректно
выключить или перезагрузить компьютер можно воспользоваться модулем ЦУС
«Выключение компьютера» (пакет alterator-ahttpd-power) в разделе «Система»
(рис. 103).
263
ЛКНВ.11100-01 90 02
Рис. 103 Веб-интерфейс модуля «Выключение компьютера»
Модуль ЦУС «Выключение компьютера» (раздел «Система») позволяет:
- выключить компьютер (возможна настройка ежедневного выключения
в заданное время);
- перезагрузить компьютер;
- приостановить работу компьютера;
- погрузить компьютер в сон.
Возможна настройка ежедневного применения данных действий в заданное
время.
Так как выключение и перезагрузка критичные для функционирования
компьютера операции, то по умолчанию настройка выставлена в значение
«Продолжить работу» (см. рис. 103). Для выключения или перезагрузки нужно
отметить соответствующий пункт и нажать «Применить».
П р и м е ч а н и е . Для возможности настройки оповещений на e-mail, должен
быть установлен пакет state-change-notify-postfix:
# apt-get install state-change-notify-postfix
264
ЛКНВ.11100-01 90 02
Для настройки оповещений необходимо отметить пункт «При изменении
состояния системы отправлять электронное письмо по адресу», ввести e-mail адрес и
нажать на кнопку «Применить» (см. рис. 103).
По указанному адресу, при изменении состоянии системы будут приходить
электронные письма. Например, при включении компьютера, содержание письма
будет следующее:
Tue Jun 16 11:46:59 EET 2020: The host-15.test.alt is about to start.
При выключении:
Tue Jun 16 12:27:02 EET 2020: The host-15.test.alt is about to shutdown.
Кнопка «Сбросить» возвращает сделанный выбор к безопасному значению по
умолчанию: «Продолжить работу», перечитывает расписания и выставляет отметки
для ежедневного автоматического действия в соответствие с прочитанным.
Для ежедневного автоматического выключения компьютера следует
установить флаг «Выключать компьютер каждый день в» и задать время
выключения в поле ввода слева от этого флага.
265
ЛКНВ.11100-01 90 02
9. КОРПОРАТИВНАЯ ИНФРАСТРУКТУРА
Samba
Samba представляет собой комплект серверного и клиентского программного
обеспечения, которые позволяют обращаться к сетевым дискам и принтерам на
различных ОС по протоколу SMB/CIFS. Может использоваться для связи
UNIX-машин с сетями Microsoft и LanManager.
Для работы в сетях SMB необходимы:
- клиент;
- сервер;
- средства администрирования.
Для этого должны быть установлены пакеты samba, samba-client, samba-
common, samba-winbind, samba-winbind-clients, входящие в состав дистрибутива.
При использовании SMB доступны следующие ресурсы:
- сетевые диски;
- прямые пути к дискам;
- принтеры;
- доменная авторизация и управление.
Все файлы конфигурации и авторизации Samba расположены в каталоге
/etc/samba и его подкаталогах:
1) /usr/share/samba/codepages каталог, содержащий файлы с таблицами
перекодировки;
2) /etc/samba/lmhosts каталог предназначен для преобразования IP-адреса
в имя NetBIOS;
3) /var/lib/samba/private/secrets.tdb ключевой файл для
идентификации машины в домене сети Microsoft;
4) /etc/samba/smb.conf основной конфигурационный файл Samba;
5) /var/lib/samba/private/passdb.td аналог /etc/passwd и
/etc/tcb/*/shadow файл пользователей сервера Samba с паролями.
266
ЛКНВ.11100-01 90 02
Соответствие пользователей Samba и системных пользователей
производится на основе общего UID; данный файл используется Samba при
отсутствии данных о пользователе на PDC (Primary Domain Controller) или
при отсутствии самого PDC;
6) /etc/samba/smbusers файл соответствий имен сетевых и локальных
пользователей SMB;
7) /var/log/samba/* файлы журналов серверной части Samba. log.smbd,
log.nmbd, log.winbind журналы соответствующих процессов, а все
прочие журналы взаимодействия сервера с отдельными клиентскими
хостами в формате log.<Client_NetBIOS_NAME>;
8) /var/spool/samba каталог динамического спулинга печати сервера
Samba;
9) /var/cache/samba/* файлы, формируемые в процессе работы различных
компонентов Samba;
10) /var/lib/samba/ служебные каталоги для администратора.
Список выполняемых файлов Samba можно получить командой:
$ rpm -ql `rpm -qa | grep samba` | grep bin/
Основными серверными компонентами являются:
1) /usr/sbin/nmbd сервер преобразования имен и адресов;
2) /usr/sbin/smbd файловый сервер;
3) /usr/sbin/winbindd сервер импорта пользователей и групп с PDC;
4) /etc/init.d/smb и /etc/init.d/winbind управляющие скрипты
инициализации сервисов.
Скрипт smb имеет два режима перезапуска:
1) restart производит полный перезапуск процессов smbd и nmbd со сбросом
текущих соединений;
2) reload принуждает файловый сервер smbd и сервер преобразования имен
nmbd перечитывать файлы конфигурации без перезапуска и сброса
соединений. При этом старые соединения продолжают существовать по
старым правилам, а ко всем новым соединениям будут применены уже
новые правила на основании файлов конфигурации.
267
ЛКНВ.11100-01 90 02
Основные клиентские компоненты:
1) /usr/bin/smbclient интерактивное приложение для просмотра сетевых
ресурсов;
2) /sbin/mount.smb, /sbin/mount.smbfs, /usr/bin/smbumount,
/usr/sbin/smbmnt, /sbin/mount.cifs средства
монтирования/размонтирования сетевых файловых систем;
3) /usr/bin/smbpasswd утилита управления пользователями и
подключением к домену;
4) /usr/bin/wbinfo утилита отображения списка пользователей,
импортированных winbindd;
5) /usr/bin/testparm утилита проверки синтаксиса конфигурационных
файлов;
6) /usr/bin/smbstatus утилита отображения статуса процессов smbd и
nmbd;
7) /usr/bin/nmblookup программа разрешения имен WINS (аналог nslookup
для DNS).
9.1.1. Samba 4 в роли контроллера домена Active Directory
Использование Samba 4 в роли контроллера домена Active Directory (или AD
далее) позволяет вводить Windows 7/8 в домен без манипуляций с реестром.
Поддерживаются следующие базовые возможности Active Directory:
- аутентификация рабочих станций Windows и Linux и служб;
- авторизация и предоставление ресурсов;
- групповые политики (GPO) (см. п. 9.3);
- перемещаемые профили (Roaming Profiles);
- поддержка инструментов Microsoft для управления серверами (Remote
Server Administration Tools) с компьютеров под управлением Windows;
- поддержка протоколов SMB2 и SMB3 том числе с поддержкой
шифрования);
- репликация с другими серверами (в том числе с Windows 2012).
268
ЛКНВ.11100-01 90 02
ПРЕДУПРЕЖДЕНИЕ
Samba AD (Doman Controller, DC) несовместим с OpenLDAP и MIT Kerberos,
поэтому службы, использующие MIT Kerberos, несовместимы с ним.
ПРЕДУПРЕЖДЕНИЕ
Samba AD DC функционирует на уровне контроллера доменов Windows 2008
R2. Можно ввести его в домен Windows 2012 как клиента, но не как контроллер
домена.
Установка
Для установки Samba AD DC выполняются следующие шаги:
1) установить пакет task-samba-dc, который установит все необходимое:
# apt-get install task-samba-dc
2) так как Samba в режиме контроллера домена (DC) использует как свой
LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед
установкой необходимо остановить конфликтующие службы krb5kdc и
slapd, а также bind:
# for service in smb nmb krb5kdc slapd bind; do chkconfig
$service off; service $service stop; done
Миграция существующего сервера
Для миграции существующего сервера необходимо:
1) скопировать данные для миграции в один каталог:
mkdir /var/lib/samba/dbdir
cp -pv /var/lib/samba/private/* /var/lib/samba/dbdir
cp -pv
/var/lib/samba/{account_policy,gencache_notrans,group_mapping}.
tdb /var/lib/samba/dbdir
При этом должно скопироваться пять файлов .tdb;
2) запустить «classicupgrade» (с правами администратора):
# samba-tool domain classicupgrade --dbdir=/var/lib/samba/dbdir
--use-xattrs=yes --realm=test.alt /etc/samba/smb.conf
269
ЛКНВ.11100-01 90 02
Создание нового домена
Восстановление к начальному состоянию Samba
Если домен уже создавался, необходимо очистить базу и конфигурацию
Samba:
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
mkdir -p /var/lib/samba/sysvol
ПРЕДУПРЕЖДЕНИЕ
Перед созданием домена нужно обязательно удалить /etc/samba/smb.conf:
rm -f /etc/samba/smb.conf
Выбор имени домена
Имя домена для разворачиваемого DC должно состоять минимум из двух
компонентов, разделенных точкой.
При этом должно быть установлено правильное имя узла и домена для сервера
HOSTNAME=dc.test.alt в /etc/sysconfig/network.
# hostnamectl set-hostname dc.test.alt
# domainname test.alt
ПРЕДУПРЕЖДЕНИЕ
При указании домена, имеющего суффикс .local, на сервере и
подключаемых компьютерах под управлением Linux потребуется отключить службу
avahi-daemon.
Создание домена в ЦУС
При инициализации домена в веб-интерфейсе ЦУС следует выполнить
следующие действия:
1) в модуле «Ethernet-интерфейсы» (п. 8.5.1) указать имя компьютера и DNS
127.0.0.1 (рис. 104);
2) в модуле «Домен» указать имя домена, отметить пункт «Active Directory»,
указать IP-адреса внешних DNS-серверов, задать пароль администратора
домена и нажать на кнопку «Применить» (рис. 105);
270
ЛКНВ.11100-01 90 02
Рис. 104
Рис. 105
271
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . Пароль администратора должен быть не менее 7 символов и
содержать символы как минимум трех групп из четырех возможных: латинских
букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых
символов. Пароль не полностью соответствующий требованиям это одна из причин
завершения развертывания домена ошибкой.
3) после успешного создания домена, будет выведена информация о домене
(рис. 106);
4) перегрузить сервер.
Рис. 106
Создание домена одной командой
Создание контроллера домена test.alt, выполняется командой:
# samba-tool domain provision --realm=test.alt --domain test --
adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-
role=dc --use-rfc2307
где:
1) --realm задает область Kerberos (LDAP), и DNS имя домена;
2) --domain задает имя домена (имя рабочей группы);
3) --adminpass пароль основного администратора домена;
4) --server-role тип серверной роли.
Интерактивное создание домена
Для интерактивного развертывания нужно выполнить команду
samba-tool domain provision, это запустит утилиту развертывания, которая
будет задавать различные вопросы о требованиях к установке.
272
ЛКНВ.11100-01 90 02
В примере показано создание домена test.alt:
Realm [TEST.ALT]:
Domain [TEST]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE)
[SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding)
[127.0.0.1]:
Administrator password:
Retype password:
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.0.122
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=test,DC=alt
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated
at /var/lib/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be
ready to use
Server Role: active directory domain controller
Hostname: dc
NetBIOS Domain: TEST
DNS Domain: test.alt
DOMAIN SID: S-1-5-21-80639820-2350372464-3293631772
273
ЛКНВ.11100-01 90 02
При запросе ввода следует нажимать клавишу <Enter>, за исключением
запроса пароля администратора (Administrator password: и Retype password:).
П р и м е ч а н и е . Пароль администратора должен быть не менее 7 символов и
содержать символы как минимум трех групп из четырех возможных: латинских
букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых
символов. Пароль не полностью соответствующий требованиям это одна из причин
завершения развертывания домена ошибкой.
Параметры --use-rfc2307 --use-xattrs=yes позволяют поддерживать
расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе
Linux.
Запуск службы
Установите службу по умолчанию и запустите ее:
# chkconfig samba on
# service samba start
Проверка работоспособности
Просмотр общей информации о домене:
# samba-tool domain info 127.0.0.1
Forest : test.alt
Domain : test.alt
Netbios domain : TEST
DC name : dc.test.alt
DC netbios name : DC
Server site : Default-First-Site-Name
Client site : Default-First-Site-Name
Просмотр предоставляемых служб:
# smbclient -L localhost -Uadministrator
Enter TEST\administrator's password:
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.11.9)
SMB1 disabled -- no workgroup available
274
ЛКНВ.11100-01 90 02
Общие ресурсы netlogon и sysvol создаваемые по умолчанию нужны для
функционирования сервера AD и создаются в smb.conf в процессе
развертывания/модернизации.
Для проверки конфигурации DNS, необходимо выполнить шаги:
1) убедиться в наличии nameserver 127.0.0.1 в /etc/resolv.conf:
# host test.alt
test.alt has address 192.168.0.122
test.alt has IPv6 address fd47:d11e:43c1:0:a00:27ff:fece:2424
2) проверить имена хостов:
# host -t SRV _kerberos._udp.test.alt.
_kerberos._udp.test.alt has SRV record 0 100 88 dc.test.alt.
# host -t SRV _ldap._tcp.test.alt.
_ldap._tcp.test.alt has SRV record 0 100 389 dc.test.alt.
# host -t A dc.test.alt.
dc.test.alt has address 192.168.0.122
Если имена не находятся, необходимо проверить выключение службы named.
Для проверки настройки необходимо запросить билет Kerberos для
администратора домена (имя домена должно быть указано в верхнем регистре):
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Просмотр полученного билета:
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
06.07.2020 16:00:54 07.07.2020 02:00:54 krbtgt/TEST.ALT@TEST.ALT
renew until 13.07.2020 16:00:06
Управление пользователями
Создать пользователя с паролем:
# samba-tool user create <имя пользователя>
# samba-tool user setexpiry <имя пользователя>
Удалить пользователя:
# samba-tool user delete <имя пользователя>
275
ЛКНВ.11100-01 90 02
Отключить пользователя:
# samba-tool user disable <имя пользователя>
Включить пользователя:
# samba-tool user enable <имя пользователя>
Изменить пароль пользователя:
# samba-tool user setpassword <имя пользователя>
Просмотреть доступных пользователей:
# samba-tool user list
Например, создать и разблокировать пользователя ivanov:
# samba-tool user create ivanov --given-name='Иван Иванов' --
mail-address='ivanov@test.alt'
# samba-tool user setexpiry ivanov --noexpiry
ПРЕДУПРЕЖДЕНИЕ
Не допускайте одинаковых имен для пользователя и компьютера, это может
привести к коллизиям апример, такого пользователя нельзя добавить в группу).
Если компьютер с таким именем заведен, удалить его можно командой:
pdbedit -x -m <имя>
Заведение вторичного DC
Присоединение дополнительного Samba DC к существующему AD отличается
от инициализации первого DC в лесу AD.
В примере используется узел: dc2.test.alt с IP-адресом 192.168.1.106:
1) на Primary Domain Controller (PDC) необходимо выключить службу bind и,
если она была включена, перезапустить службу samba:
# service bind stop
# service samba restart
2) завести IP-адрес для dc2:
# samba-tool dns add 192.168.1.1 test.alt DC2 A 192.168.1.106
Uadministrator
ПРЕДУПРЕЖДЕНИЕ
Указание аутентифицирующей информации (имени пользователя и пароля)
обязательно!
276
ЛКНВ.11100-01 90 02
3) установить следующие параметры в файле конфигурации клиента
Kerberos (на dc2.test.alt файл /etc/krb5.conf):
[libdefaults]
default_realm = TEST.ALT
dns_lookup_realm = true
dns_lookup_kdc = true
П р и м е ч а н и е . В resolvconf обязательно должен быть добавлен PDC
как nameserver;
4) для проверки настройки необходимо запросить билет Kerberos для
администратора домена:
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
ПРЕДУПРЕЖДЕНИЕ
Имя домена должно быть указано в верхнем регистре.
5) убедиться, что билет получен:
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
06.07.2020 16:00:54 07.07.2020 02:00:54 krbtgt/TEST.ALT@TEST.ALT
renew until 13.07.2020 16:00:06
6) ввести в домен test.alt в качестве контроллера домена (DC):
# samba-tool domain join test.alt DC -Uadministrator --
realm=test.alt
В результате будет выведена информация о присоединении к домену:
Joined domain TEST (SID S-1-5-21-80639820-2350372464-
3293631772) as a DC
Для получения дополнительной информации можно воспользоваться
командой:
# samba-tool domain join --help
7) поставить службу samba в автозагрузку:
# chkconfig samba on
Если подключение к DC выполнялось под управлением Windows, необходимо
запустить службу samba:
# service samba start
277
ЛКНВ.11100-01 90 02
Репликация
ПРЕДУПРЕЖДЕНИЕ
Без успешной двунаправленной репликации в течение 14 дней DC
исключается из Active Directory
ПРЕДУПРЕЖДЕНИЕ
Указание аутентифицирующей информации (имени пользователя и пароля)
обязательно!
Для выполнения двунаправленной репликации необходимо выполнить
следующие действия:
1) реплицировать на вторичном DC (с первичного):
# samba-tool drs replicate dc2.test.alt dc.test.alt
dc=test,dc=alt -Uadministrator
Сначала указывается приемник, затем источник, после этого
реплицируемая ветка в LDAP;
2) реплицировать на вторичном DC (на первичный):
# samba-tool drs replicate dc.test.alt dc2.test.alt
dc=test,dc=alt -Uadministrator
Сначала указывается приемник, затем источник, после этого
реплицируемая ветка в LDAP.
П р и м е ч а н и е . Имя домена в именах серверов можно опустить (если
они одинаковые);
3) для просмотра статуса репликации на PDC, необходимо запустить на
Samba DC команду:
# samba-tool drs showrepl
П р и м е ч а н и е . Если репликация на Windows не работает, нужно добавить в
Active Directory Sites and Services новое соединение Active Directory. После этого
реплицировать на DC, подождать 5 минут и пробовать реплицировать с Samba на
Windows.
278
ЛКНВ.11100-01 90 02
9.1.2. Samba в режиме файлового сервера
Samba – пакет программ, которые позволяют обращаться к сетевым дискам и
принтерам на различных ОС по протоколу SMB/CIFS. Имеет клиентскую и
серверную части.
Настройка конфигурационного файла smb.conf
Для настройки Samba необходимо отредактировать основной
конфигурационный файл smb.conf (расположен в директории /etc/samba/).
Файл конфигурации smb.conf включает следующие основные параметры:
- [global] начало секции [global], которая определяет общие настройки
серверной части Samba;
- netbios name позволяет указать Netbios имя сервера, по умолчанию
используется первая часть доменного имени компьютера;
- invalid users список пользователей, которым запрещен доступ
(рекомендуется включить в этот список пользователя root);
- interfaces позволяет указать сетевой интерфейс, используемый Samba
(если машина имеет несколько сетевых интерфейсов);
- security выбор режима безопасности, при security=user каждый
пользователь должен иметь учетную запись (account) на GNU/Linux
сервере; для того, чтобы Samba-сервер управлял доступом и
пользователями, используйте security=share;
- workgroup рабочая группа;
- server string описание компьютера;
- socket options параметры сокета, которые будут использоваться для
обслуживания клиентов;
- encrypt passwords включить/выключить шифрование паролей между
сервером и клиентом;
- wins support включить/выключить роль WINS-сервера;
- os level приоритет данного сервера среди других компьютеров рабочей
группы: определяет, кто именно будет главной машиной, отвечающей за
отображение ресурсов сети;
279
ЛКНВ.11100-01 90 02
- domain master включить/выключить параметр domain master;
- local master включить/выключить параметр local master;
- domain logons включить/выключить функцию первичного контролера
домена (PDC) для сервера Samba;
- logon script пакетный файл запуска или файл сценария NT;
- logon path каталог, в котором будут храниться пользовательские
профили;
- logon home домашний каталог при авторизации клиента;
- name resolve order порядок разрешения имен;
- dns proxy позволяет указать будет ли демон nmbd (например, если WINS
не смог разрешить NetBIOS имя) выполнять запрос к DNS;
- preserve case позволяет указать будут ли имена файлов, создаваемых
клиентом оставаться такими как они есть или же они будут
преобразовываться к значению по умолчанию;
- short preserve case позволяет указать регистр имени файла для
сохранения;
- unix password sync позволяет выполнить синхронизацию пароля UNIX
с паролем SMB при изменении зашифрованного пароля SMB в файле
smbpasswd;
- passwd program позволяет указать программу, которая будет
использована для смены паролей UNIX;
- passwd chat позволяет указать chat-протокол для смены пароля;
- max log size позволяет указать максимальный размер файла журнала;
- [NaMe123] позволяет указать название новой секции, где NaMe123 имя,
видимое клиентам;
- comment комментарий, видимый в сети как комментарий к ресурсу;
- path позволяет указать путь к каталогу (общему ресурсу), доступ к
которому будет разрешен пользователю;
280
ЛКНВ.11100-01 90 02
- public позволяет включить/выключить возможность доступа
авторизованных пользователей к общему ресурсу без ввода пароля;
- writable включить/выключить запрет на запись всем пользователям;
- write list разрешение работы на запись пользователям, входящим в
группу;
- browseable включить/выключить отображение общего ресурса в списке
доступных общих ресурсов в сетевом окружении и в списке просмотра;
- force user, force group привязка к определенному имени
пользователя или группе, имена через пробел:
force user = user1 user2
force group = group1 group2
Параметры конфигурационного файла поддерживают переменные:
- %U имя пользователя сессии;
- %G первичная группа %U;
- %h DNS имя;
- %m NETBIOS имя клиента;
- %L NETBIOS имя сервера;
- %v версия Samba;
- %M DNS имя клиента;
- %a архитектура клиента;
- %I IP-адрес клиента;
- %i локальный IP-адрес, к которому подключен клиент;
- %T текущая дата и время;
- %D имя домена или рабочей группы текущего пользователя;
- %S имя ресурса;
- %P корневая папка ресурса.
П р и м е ч а н и е . Комментарии, помогающие при первичной настройке
файла smb.conf, содержатся в файле smb.conf.orig. Кроме того, для ознакомления
с полным списком возможностей smb.conf можно воспользоваться следующей
командой:
man smb.conf
281
ЛКНВ.11100-01 90 02
После сохранения любого вида изменений, внесенных в конфигурационный
файл, рекомендуется выполнить его проверку на наличие синтаксических ошибок,
для этого необходимо выполнить следующую команду:
testparm <полный путь к файлу конфигурации>
Например, опция path = /tmp/%u может быть интерпретирована как path =
/tmp/John, если пользователь связан с именем пользователя John.
В случае отсутствия синтаксических ошибок файловый сервер smbd выполнит
корректную загрузку конфигурационного файла.
Особенности локализации клиента и сервера
Для того чтобы все компоненты Samba правильно работали с русскими
именами файловых объектов и ресурсов, в /etc/samba/smb.conf необходимо
добавить следующие директивы:
[global]
client code page =
character set =
Далее приводятся наборы значений этих директив и системных кодировок,
наиболее часто используемых в России, Белоруссии и на Украине:
$LANG = ru_RU.KOI8-R
client code page = 866
characte set = koi8-r
$LANG = ru_RU.CP2151
client code page = 866
characte set = 1251
$LANG = be_BY.CP1251
client code page = 866
character set = 1251
$LANG = uk_UA.KOI8-U
client code page = 1125
character set = koi8-u
$LANG = uk_UA.CP1251
client code page = 1125
character set = 1251U
282
ЛКНВ.11100-01 90 02
$LANG = ru_UA.CP1251
client code page = 1125
character set = 1251U
Также необходимо проследить, чтобы на тех компьютерах установленной
ОС Windows), с которыми предполагается взаимодействие через Samba, были
установлены соответствующие системные настройки локализации. В противном
случае велика вероятность, что вместо кириллических символов будут отображены
знаки «?» либо другие непрошенные символы.
Указанные директивы /etc/samba/smb.conf воздействуют на работу всех
компонентов Samba и серверных, и клиентских. На данный момент
поддерживаются кириллические написания имен файлов, каталогов и ресурсов.
Создание ресурсов общего доступа
Создание ресурсов общего доступа пользователем samba
Создать пользователя samba в системе и указать пароль:
# useradd -m user_samba
# passwd user_samba
Добавить пользователя в файл smbpasswd с тем же паролем:
# smbpasswd -a user_samba
New SMB password:
Retype new SMB password:
Added user user_samba.
Создать папку sharefolder, для общих ресурсов:
# mkdir /mnt/sharefolder
Назначить нового владельца:
# chown -R user_samba:users /mnt/sharefolder
# chmod -R ugo+rwx /mnt/sharefolder
Добавить в конфигурационный файл сервера Samba /etc/samba/smb.conf
строки:
[public]
#путь к общей папке
path=/mnt/sharefolder
read only=No
#открыть гостевой доступ
guest ok=Yes
comment = Public
283
ЛКНВ.11100-01 90 02
Перезапустить службу:
# systemctl restart smb
# systemctl restart nmb
Создание ресурсов общего доступа от имени обычного пользователя
Usershare – это возможность, позволяющая обычным пользователям
добавлять, изменять и удалять собственные ресурсы общего доступа.
В конфигурационном файле smb.conf должны быть заданы следующие
переменные (данная возможность настроена по умолчанию):
[global]
# ----------------------- User Shares Options -------------------------
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
Добавить пользователя в группу sambashares:
# usermod -a -G sambashare <имя_пользователя>
и перезапустить службы smbd и nmbd:
# systemctl restart smb
# systemctl restart nmb
Далее следует завершить сеанс и войти в него вновь должна появиться
возможность настраивать общий доступ samba через графический интерфейс.
Для того чтобы предоставить общий доступ на папку в контекстном меню
папки выбрать пункт «Опции публикации», настроить параметры публикации и
нажать на кнопку «Создать публикацию» (рис. 107).
Рис. 107
284
ЛКНВ.11100-01 90 02
Пример настройки в режиме файлового сервера
Пример настройки /etc/samba/smb.conf для работы Samba в режиме
файлового сервера с двумя открытыми для общего доступа ресурсами и принтером
(закомментированные параметры действуют по умолчанию):
workgroup = workgroup
server string = Samba Server Version %v
map to guest = Bad User
; idmap config * : backend = tdb
guest ok = yes
cups options = raw
security = user
; encrypt passwords = yes
; guest account = nobody
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
; guest ok = no
; writable = No
printable = yes
# A publicly accessible directory, but read only, except for
people in
# the "staff" group
[public]
comment = Public Stuff
path = /home/samba
public = yes
writable = yes
; printable = no
write list = +staff
; browseable = yes
[Free]
path = /mnt/win/Free
read only = no
; browseable = yes
guest ok = yes
285
ЛКНВ.11100-01 90 02
Подключение по протоколу SMB в графической среде
Для создания подключения по протоколу SMB в графической среде MATE
можно, запустить файловый менеджер, указать в адресной строке протокол и адрес
сервера (рис. 108).
Рис. 108
Нажать клавишу «Enter». Будут показаны ресурсы с общим доступом
(рис. 109).
Рис. 109
286
ЛКНВ.11100-01 90 02
Для доступа к папке, необходимо указать имя пользователя, пароль и нажать
на кнопку «Подключиться» (рис. 110).
Рис. 110
Монтирование ресурса Samba через /etc/fstab
Просмотреть список общедоступных ресурсов на сервере:
$ smbclient -L 192.168.88.218 -U%
Просмотреть список ресурсов на сервере доступных пользователю user_samba:
$ smbclient -L 192.168.88.218 -Uuser_samba
Unable to initialize messaging context
Enter WORKGROUP\user_samba's password:
Sharename Type Comment
--------- ---- -------
public Disk Public
IPC$ IPC IPC Service (Samba Server Version 4.10.3)
user_samba Disk Home Directories
Cups-PDF Printer Cups-PDF
open_folder Disk
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP HOST-15
287
ЛКНВ.11100-01 90 02
Создать файл /etc/samba/sambacreds (например, командой
mcedit /etc/samba/sambacreds), с содержимым:
username=имя_пользователя
password=пароль
Для монтирования ресурса Samba в /etc/fstab необходимо прописать:
//server/public /mnt/server_public cifs
users,credentials=/etc/samba/sambacreds 0 0
Для защиты информации, права на файл /etc/samba/sambacreds, надо
установить так, чтобы файл был доступен только владельцу:
# chmod 600 /etc/samba/sambacreds
и принадлежать root:
# chown root: /etc/samba/sambacreds
Для монтирования ресурса Samba в /etc/fstab необходимо прописать,
строку вида:
//СЕРВЕР/ИМЯ_РЕСУРСА /mnt/точка_монтирования cifs
credentials=/путь/к/полномочиям/sambacreds 0 0
Например:
//192.168.88.218/public /mnt/server_public cifs users,_netdev,x-
systemd.automount,credentials=/etc/samba/sambacreds 0 0
9.1.3. Принт-сервер на CUPS
По умолчанию Samba сконфигурирована на использование CUPS (сервер
печати для UNIX-подобных ОС) в качестве спулера печати. Подразумевается, что
CUPS уже настроен и запущен. В /etc/samba/smb.conf присутствуют следующие
директивы:
[global]
printcap name = lpstat
load printers = yes
printing = cups
Также необходимо создать ресурс [printers] его создание и назначение
директив подробно описано в подпункте «Обычный сервер» в части «Особые
ресурсы».
288
ЛКНВ.11100-01 90 02
9.1.4. Некоторые вопросы безопасности
Данный раздел относится в основном к серверной части Samba.
Прежде всего, необходимо определить, какие интерфейсы должны
прослушиваться Samba в ожидании запроса на соединение (по умолчанию
прослушиваются все имеющиеся в системе).
Например, для того, чтобы ограничить прослушивание локальным хостом и
первой сетевой картой, необходимо написать в /etc/samba/smb.conf:
[global]
interfaces = 127.0.0.1 eth0
bind interfaces only = Yes
Далее можно ограничить диапазоны адресов, с которых позволительно
обращаться к данному серверу. Действие данных директив аналогично воздействию
/etc/hosts.allow и /etc/hosts.deny на xinetd и ssh: если IP-адрес хоста не
подпадает под разрешающее правило, то соединение не будет установлено вовсе.
Для того чтобы ограничить доступ двумя подсетями и локальной системой,
дополнительно исключив при этом один хост, можно написать:
[global]
hosts allow = 192.168.1. 192.168.2. 127.
hostsdeny = 192.168.1.12
Все вышеперечисленные директивы ограничивают соединения на уровне
интерфейсов и IP-адресов до какой-либо авторизации. Следующие директивы
управляют режимом авторизации пользователей.
Во избежание перехвата чувствительных данных при передаче их по сети
открытым текстом принято шифровать пароли. Данная директива включает
шифрование паролей в Samba:
[global]
encrypt passwords = yes
Файл переопределений имен пользователей является весьма мощным
средством управления пользовательскими акаунтами, однако при неразумном
использовании это средство опасно и поэтому по умолчанию отключено.
289
ЛКНВ.11100-01 90 02
Внимательно ознакомьтесь с содержимым файла /etc/samba/smbusers, прежде
чем использовать его.
[global]
; username map = /etc/samba/smbusers
Ввод рабочей станции в домен Active Directory
Инструкция по вводу компьютера под управлением ОС Альт 8 СП в домен
Active Directory (работающий под Windows или под Samba AD в режиме DC).
Параметры домена, например:
- TEST.ALT – имя домена;
- TEST – рабочая группа;
- HOST-15 – имя компьютера в Netbios;
- Administrator – имя пользователя администратора;
- Pa$$word – пароль администратора.
9.2.1. Подготовка
Для ввода компьютера в Active Directory потребуется установить пакет
task-auth-ad-sssd и все его зависимости (если он еще не установлен):
# apt-get install task-auth-ad-sssd
Синхронизация времени с контроллером домена производится автоматически.
Настройки сети можно выполнить как в графическом интерфейсе, так и
в консоли.
В ЦУС в разделе «Сеть» «Ethernet-интерфейсы» (см. п. 8.5.1) задать имя
компьютера, указать в поле «DNS-серверы» DNS-сервер домена и в поле «Домены
поиска» – домен для поиска (рис. 111).
290
ЛКНВ.11100-01 90 02
Рис. 111
В консоли:
1) задать имя компьютера:
# hostnamectl set-hostname host-15.test.alt
2) в качестве первичного DNS должен быть указан DNS-сервер домена. Для
этого необходимо создать файл /etc/net/ifaces/eth0/resolv.conf со
следующим содержимым:
nameserver 192.168.0.113
где 192.168.0.113 – IP-адрес DNS-сервера домена;
3) указать службе resolvconf использовать DNS контроллера домена и домен
для поиска. Для этого в файле /etc/resolvconf.conf
добавить/отредактировать следующие параметры:
interface_order='lo lo[0-9]* lo.* eth0'
search_domains=test.alt
где:
- eth0 – интерфейс на котором доступен контроллер домена;
- test.alt – домен;
291
ЛКНВ.11100-01 90 02
4) обновить DNS адреса:
# resolvconf -u
П р и м е ч а н и е . После изменения имени компьютера могут перестать
запускаться приложения. Для решения этой проблемы необходимо перезагрузить
систему.
В результате выполненных действий в файле /etc/resolv.conf должны
появиться строки:
search test.alt
nameserver 192.168.0.113
9.2.2. Ввод в домен
Ввод в домен можно осуществить следующими способами:
1) в командной строке:
# system-auth write ad test.alt host-15 test 'administrator' 'Pa$$word'
Joined 'HOST-15' to dns domain 'test.alt'
2) в ЦУС в разделе «Пользователи» «Аутентификация» (см. п. 8.4.5).
В открывшемся окне следует выбрать пункт «Домен Active Directory»,
заполнить поля и нажать на кнопку «Применить» (рис. 112).
Рис. 112
292
ЛКНВ.11100-01 90 02
В открывшемся окне необходимо ввести имя пользователя, имеющего право
вводить машины в домен, и его пароль и нажать на кнопку «ОК» (рис. 113).
Рис. 113
При успешном подключении к домену, отобразится соответствующая
информация (рис. 114).
Рис. 114
Перезагрузить рабочую станцию.
9.2.3. Проверка работы
# getent passwd ivanov
ivanov:*:1594401103:1594400513:Иван Иванов:/home/TEST.ALT/ivanov:/bin/bash
# net ads info
LDAP server: 192.168.0.113
LDAP server name: dc.test.alt
Realm: TEST.ALT
Bind Path: dc=TEST,dc=ALT
LDAP port: 389
Server time: Пн, 15 июн 2020 17:24:59 EET
KDC server: 192.168.0.113
Server time offset: 0
Last machine account password change: Пн, 15 июн 2020 17:04:55 EET
# net ads testjoin
Join is OK
293
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . Для того, чтобы сократить нагрузку на серверы, по
умолчанию на клиентской машине отключен просмотр пользователей из AD с
помощью команды # getent passwd. Поэтому для проверки необходимо точно
указать имя пользователя:
# getent passwd <имя_пользователя>
Список пользователей можно посмотреть на сервере командой:
# samba-tool user list
9.2.4. Вход пользователя
В окне входа в систему необходимо сначала ввести логин учетной записи
пользователя домена и нажать на кнопку «Войти».
В открывшемся окне ввести пароль, соответствующий этой учетной записи и
нажать на кнопку «Войти», произойдет вход в систему.
9.2.5. Отображение глобальных групп на локальные
Установить, если еще не установлен, модуль ролей:
# apt-get install libnss-role
Настроить роли и привилегии. Для этого добавить роль локальных
администраторов:
# groupadd -r localadmins
П р и м е ч а н и е . Лучше использовать группу localadmins (вместо admins) во
избежание конфликта с группой admins во FreeIPA.
Добавить группу с правом удаленного доступа (по протоколу ssh):
# groupadd -r remote
Включить удаленный доступ только для группы remote:
# control sshd-allow-groups enabled
# sed -i 's/AllowGroups.*/AllowGroups = remote/'
/etc/openssh/sshd_config
# systemctl reload sshd
Настроить список привилегий для пользователей (для роли users):
# roleadd users cdwriter cdrom audio proc radio camera floppy
xgrp scanner uucp fuse
Настроить список привилегий для администраторов (для роли localadmins):
# roleadd localadmins wheel remote vboxusers
294
ЛКНВ.11100-01 90 02
Настроить отображение локальных привилегий, назначенных локальным
ролям, на глобальные группы безопасности:
# roleadd 'Domain Users' users
# roleadd 'Domain Admins' localadmins
Для просмотра списка назначенных ролей и привилегий выполнить команду:
# rolelst
id ivan
Данная настройка назначает заданный список локальных групп (привилегий)
всем пользователям, входящим в заданные локальные группы (роли). А также
назначает локальные роли для глобальных групп в домене.
9.2.6. Подключение файловых ресурсов
Рассматриваемые способы позволяют подключать файловые ресурсы
(file shares) для доменного пользователя без повторного ввода пароля (SSO, Single
Sign-On).
Подключение с использованием gio
Недостаток такого способа – необходимо открыть ресурс в файловом
менеджере (Caja, Pcmanfm). Однако можно открывать любые ресурсы на любых
серверах, входящие в домен Active Directory.
Установить необходимые пакеты:
# apt-get install fuse-gvfs gvfs-backend-smb libgio
Включить пользователя в группу fuse:
# gpasswd -a <пользователь> fuse
Разрешить для всех доступ к fuse под root:
# control fusermount public
Войти под доменным пользователем.
Открыть ресурс в файловом менеджере (например, по адресу
smb://server/sysvol). Ресурс смонтирован по пути
/var/run/<uid_пользователя>/gvfs или /var/run/user/<uid_пользователя>/g
vfs/smb-share:server=сервер,share=ресурс.
Другой вариант (полезно для скриптов в автозапуске):
gio mount smb://server/sysvol/
295
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . Если необходимо открывать что-то с ресурса в WINE, в
winecfg добавьте диск с путем /var/run/uid_пользователя/gvfs.
Подключение с использованием pam_mount
В этом случае заданный ресурс подключается с заданного сервера
автоматически при каждом входе доменным пользователем.
Установить pam_mount:
# apt-get install pam_mount
Прописать pam_mount в схему /etc/pam.d/system-auth-sss
(перед auth required pam_sss.so):
auth optional pam_mount.so
и в секцию session:
session optional pam_mount.so
Установить правило монтирования ресурса в файле
/etc/security/pam_mount.conf.xml (перед тегом <cifsmount>):
<volume uid="10000-2000200000" fstype="cifs" server="dc"
path="sysvol" mountpoint="~/share"
options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(US
ERGID),file_mode=0664,dir_mode=0775" />
где:
- uid="10000-2000200000" – диапазон присваиваемых для доменных
пользователей UID (подходит для Winbind и для SSSD);
- server="dc" – имя сервера с ресурсом;
- path="sysvol" – имя файлового ресурса;
- mountpoint="~/share" – путь монтирования в домашней папке
пользователя.
ПРЕДУПРЕЖДЕНИЕ
Обязательно указывайте настоящее имя сервера в параметре server, а не имя
домена.
296
ЛКНВ.11100-01 90 02
ПРЕДУПРЕЖДЕНИЕ
По умолчанию для монтирования используется smb версии 1.0, если он
отключен, то укажите в параметрах версию 2 или 3:
<volume uid="10000-2000200000" fstype="cifs" server="dc"
path="sysvol" mountpoint="~/share"
options="sec=krb5,vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID)
,gid=%(USERGID),file_mode=0664,dir_mode=0775" />
Для проверки можно попробовать смонтировать ресурс в сессии:
mount.cifs //server/share /mnt/ -o vers=2.0,user=altlinux
Также можно проверить доступность ресурса с помощью smbclient, например:
smbclient -L server -U altlinux -m SMB2
Групповые политики
Групповая политика это набор правил, в соответствии с которыми
производится настройка рабочей среды относительно локальных политик, по
умолчанию. Групповые политики в реализации Active Directory это часть
интегрированного решения. Альтернативной реализацией Active Directory под
Linux/Unix является проект Samba. Поддержка применения групповых политик в
конкретных дистрибутивных решениях, в целом, не является частью проекта Samba.
В данном подразделе представлен общий обзор данного инструмента в контексте
интеграции применения групповых политик в решениях ALT.
9.3.1. Механизмы назначения и кеширования
Для применения групповых политик на данный момент предлагается
использовать инструмент gpupdate. Инструмент рассчитан на работу на машине,
введенной в домен Samba. Обновление машинных политик происходит раз в час.
Среди применяемых настроек присутствуют настройки:
- установка домашней страницы веб-браузера Mozilla Firefox/Chromium;
- запрет на подключение внешних носителей данных;
- включение или выключение различных служб (сервисов systemd);
- управление control framework;
- генерация ярлыков запуска программ;
- подключение сетевых дисков;
- создание директорий.
297
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . Подробнее о настройках и дополнительных возможностях
gpupdate для инфраструктуры на базе Active Directory
см. https://www.altlinux.org/Групповые_политики.
Развертывание
На текущий момент для включения инструмента групповых политик на
клиентах Active Directory необходимо установить пакеты oddjob-gpupdate и
gpupdate:
apt-get update
apt-get install gpupdate
Включение работы групповых политик и выбор локальной политики по
умолчанию выполняется командой /usr/sbin/gpupdate-setup от пользователя с
правами администратора:
gpupdate-setup enable
Также требуется перезагрузка ОС.
Для выполнения настроек с помощью графических инструментов должны
быть установлены модули ЦУС (см. п. 9.3.2):
apt-get install alterator-auth alterator-gpupdate
Развертывание групповых политик
Развернуть сервер Samba см. п. 9.1.1.
Ввести рабочую станцию в домен Active Directory по инструкции п. 9.2.
При вводе в домен отметить пункт «Включить групповые политики»
(см. рис. 113).
П р и м е ч а н и е . Если рабочая станция уже находится в домене, включить
групповые политики можно в модуле ЦУС «Групповые политики» (пакет
alterator-gpupdate) (см. п. 9.3.2) (рис. 115).
298
ЛКНВ.11100-01 90 02
Рис. 115
Настройка RSAT на Windows 7
1) Ввести машину в домен.
2) Включить компоненты удаленного администрирования: «Панель
управления» «Программы» «Включение или отключение компонентов
Windows».
3) Включить следующие компоненты (рис. 116):
- «Средства удаленного администрирования сервера» «Средства
администрирования возможностей» «Средства управления
групповыми политиками»;
- «Средства удаленного администрирования сервера» «Средства
администрирования ролей» «Средства доменных служб
Active Directory и служб Active Directory облегченного доступа к
каталогам» «Оснастки и программы командной строки доменных
служб Active Directory»;
- «Средства удаленного администрирования сервера» «Средства
администрирования ролей» «Средства доменных служб
299
ЛКНВ.11100-01 90 02
Active Directory и служб Active Directory облегченного доступа к
каталогам» → «Центр администрирования Active Directory»;
- «Средства удаленного администрирования сервера» «Средства
администрирования ролей» → «Средства серверов DNS».
П р и м е ч а н и е . Если данных компонентов нет в списке, то можно
установить данные средства отсюда:
https://www.microsoft.com/ru-ru/download/details.aspx?id=7887
Рис. 116
4) Для задания конфигурации с помощью RSAT необходимо скачать файлы
административных шаблонов (файлы ADMX) и зависящие от языка файлы ADML
из репозитория https://github.com/altlinux/admx-basealt и разместить их в
директории \\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\PolicyDefinitions
(рис. 117).
300
ЛКНВ.11100-01 90 02
Рис. 117
Корректно установленные административные шаблоны будут отображены в
оснастке «Редактор управления групповыми политиками» («Group Policy
Management Editor») (gpme.msc) в разделе «Конфигурация компьютера»
«Политики» «Административные шаблоны» «Система ALT» («Computer
Configuration» «Policies» «Administrative Templates» «ALT System»)
(рис. 118).
Рис. 118
301
ЛКНВ.11100-01 90 02
Добавление доменных устройств в группу членства GPO
1) Войти в систему администратором домена (Administrator).
2) Запустить программу «Active Directory – пользователи и компьютеры».
3) В контекстном меню домена выбрать пункт «Создать» «Подразделение»
(рис. 119).
Рис. 119
4) В открывшемся окне ввести название подразделения (например, OU) и
нажать кнопку «Ок».
5) Переместить компьютеры и пользователей домена в подразделение OU
(рис. 120).
302
ЛКНВ.11100-01 90 02
Рис. 120
Создание политики для подразделения
1) Запустить оснастку «Управление групповой политикой» (gpmc.msc).
2) В контекстном меню подразделения («Управление групповой политикой»
«Лес: test.alt» → «Домены» «test.alt» → «OU») выбрать пункт «Создать объект
групповой политики в этом домене и связать его...» (рис. 121).
Рис. 121
303
ЛКНВ.11100-01 90 02
3) В открывшемся окне ввести название политики и нажать кнопку «Ок»
(рис. 122).
Рис. 122
По умолчанию на всех новых объектах групповой политики в домене
присутствуют разрешения для группы «Authenticated Users» (рис. 123).
Рис. 123
Эта группа включает в себя всех пользователей и компьютеры домена. Это
означает, что данная политика будет применяться на всех компьютерах и для всех
пользователей, которые попадают в область ее действия.
Можно изменить этот фильтр безопасности, чтобы политика применялась
только к членам определенной группы безопасности домена (или конкретным
пользователям/компьютерам). Для этого в поле «Фильтры безопасности» следует
304
ЛКНВ.11100-01 90 02
удалить группу «Authenticated Users» и добавить требуемую группу AD (для
группы, добавленной в «Фильтры безопасности» на вкладке «Делегирование», в
списке разрешений, открывается при нажатии кнопки «Дополнительно...», должны
присутствовать права «Чтение» и «Применить групповую политику») (рис. 124).
Рис. 124
Настройка политики
Для редактирования политики следует в контекстном меню созданной
политики выбрать пункт «Изменить» (рис. 125).
Откроется окно редактирования групповых политик (рис. 126).
305
ЛКНВ.11100-01 90 02
Рис. 125
Рис. 126
306
ЛКНВ.11100-01 90 02
Конфигурирование с помощью RSAT
Управление сервером Samba с помощью RSAT поддерживается из среды до
Windows 2012R2 включительно. Для поддержки более поздних версий требуется
отсутствующий в Samba сервер службы ADWS
( https://bugzilla.samba.org/show_bug.cgi?id=11231 ).
Для задания конфигурации с помощью RSAT необходимо скачать ADMX
файлы («административные шаблоны») из репозитория
https://github.com/altlinux/admx-basealt и разместить их в директории
\\<DOMAIN>\SYSVOL\<DOMAIN>\policies\PolicyDefinitions. Корректно
установленные административные шаблоны будут отображены в оснастке
«Group Policy Management Editor» в разделе «Конфигурация компьютера»
«Политики» «Административные шаблоны» «Система ALT» «Службы»
(«Computer Configuration» «Policies» «Administrative Templates» «ALT
System» → «Services» (рис. 127)).
Рис. 127
При выборе опции из списка справа возможно задать конфигурацию службы
или параметра (рис. 128).
307
ЛКНВ.11100-01 90 02
Рис. 128
Конфигурирование Firefox
Дополнительное дерево настроек для веб-браузера Mozilla Firefox появится
после установки ADMX файлов Firefox. Для Linux поддерживаются только
машинные политики вследствие ограничений реализации Firefox для Linux.
На данный момент поддерживается только опция URL for Home Page,
позволяющая задать URL домашней страницы при старте веб-браузера (рис. 129).
Рис. 129
308
ЛКНВ.11100-01 90 02
9.3.2. Конфигурирование с помощью ЦУС
Для конфигурирования групповых политик предназначен модуль
alterator-gpupdate.
Этот модуль включает поддержку управления групповыми политиками
пользователей и компьютера. Дополнительные настройки применяются во время
загрузки компьютера и после входа пользователя в систему при аутентификации в
Active Directory.
Функционал в настоящее время ограничен включением/выключением
политики и выбором шаблона локальной политики «Сервер», «Рабочая станция»
или «Контроллер домена» (Active Directory).
Модуль alterator-gpupdate доступен в ЦУС раздел «Система» «Групповые
политики», а также в веб-интерфейсе ЦУС (https://ip-address:8080).
9.3.3. Состав
Групповые политики кэшируются в файле
/var/cache/gpupdate/registry.sqlite (можно просматривать его командой
sqlite3).
Состав локальной политики
Для клиента также существует понятие локальной политики. Настройки
локальной политики находятся в каталоге /usr/share/local-policy/default
(таблица 8). Данные настройки по умолчанию поставляются пакетом local-policy.
Администраторы инфраструктур имеют возможность поставлять собственный пакет
с локальной политикой и развертывать ее единообразно на всех клиентах. Формат
шаблонов локальных политик представляет из себя архивный формат политик
Samba с дополнительными модификациями. Локальную политику рекомендуется
править только опытным администраторам. Состав локальной политики может
меняться или адаптироваться системным администратором.
309
ЛКНВ.11100-01 90 02
Т а б л и ц а 8
Описание
Комментарий
Включение
oddjobd.service
Необходимо для обеспечения возможности
запуска gpupdate для пользователя с правами
администратора.
Включение
gpupdate.service
Необходимо для регулярного обновления настроек
машины.
Включение sshd.service
Необходимо для обеспечения возможности
удаленного администрирования.
Включение аутентификации
с помощью GSSAPI для sshd
Необходимо для аутентификации в домене при
доступе через SSH.
Ограничение
аутентификации для sshd по
группам wheel и remote
Необходимо для ограничения доступа при доступе
через SSH для всех пользователей домена (только
при наличии соответствующей привилегии).
Открытие порта 22
Необходимо для обеспечения возможности
подключения SSH на машинах при старте Firewall
applier.
9.3.4. Ошибки
В случае неописанных ошибок и «развала» отладочного вывода один из
простых подходов к решению проблемы удалить файл
/var/cache/gpupdate/registry.sqlite и запустить gpoa заново для
перегенерации файла и применения настроек.
Сообщения, сопутствующие кодам ошибок (таблица 9), могут изменяться
(переводиться, исправляться), но сам код уникален для определенной части
программы, что позволяет однозначно идентифицировать проблему.
Т а б л и ц а 9
Код
Описание
Решение
E00001
Недостаточно прав для запуска
программы gpupdate.
Необходимо повысить уровень
привилегий. Может помочь запуск
программы от имени администратора.
E00002
Программа gpupdate не будет запущена из-
за предыдущих ошибок.
310
ЛКНВ.11100-01 90 02
Продолжение таблицы 9
Код
Описание
Решение
E00003
Ошибка работы бэкэнда, которая привела к
досрочному прекращению обработки
групповых политик. Этот код
характеризует серьезные ошибки, которые
обрабатываются на самом высоком уровне.
Возможно, это баг в коде и необходимо
отправить багрепорт в багтрекер проекта.
E00004
Ошибка во время работы фронтенда.
Высокоуровневая ошибка при
инициализации фронтенда или во время
работы appliers. С большой вероятностью
может оказаться багом в коде.
E00005
Не получилось запустить применялку
политик для обновления групповых
политик компьютера.
Проверьте, что машина все еще в домене,
демон oddjobd доступен через D-Bus и у
пользователя достаточно прав для
запуска ПО.
E00006
Не получилось запустить применялку
политик для обновления групповых
политик пользователя.
Проверьте, что машина все еще в домене,
демон oddjobd доступен через D-Bus и у
пользователя достаточно прав для
запуска ПО.
E00007
Невозможно инициализировать бэкэнд
Samba в силу неполадок компонентов,
связанных с Samba.
Необходимо проверить инсталляцию
Samba на машине, убедиться, что машина
введена в домен и домен доступен.
E00008
Невозможно инициализировать бэкэнд no-
domain для выполнения процедуры
бутстрапа групповых политик.
Возможно, было произведено
вмешательство в локальную политику
или произошел misconfiguration.
Необходимо проверить целостность
пакета local-policy и настройки домена в
ЦУС.
E00009
Произошла ошибка при попытке
запуска adp
Необходимо обратиться к руководству по
устранению неполадок проекта ADP.
E00010
Произошел сбой при попытке получить имя
домена Active Directory
Необходимо проверить работу доменной
службы имен (DNS), а также доступность
доменного LDAP. Для доступа к LDAP
необходим работоспособный Kerberos,
так что стоит проверить и его
конфигурацию.
E00011
Во время работы applier с пониженным
уровнем привилегий произошла неполадка.
Возможно, что в используемой групповой
политике заданы параметры, для
установки которых требуются права
администратора. Это необходимо
проверить и исправить объект групповой
политики соответственно.
E00012
Высокоуровневая ошибка инициализации
бэкэнда.
Необходимо проверить наличие условий
для запуска бэкэнда. В случае с Samba –
удостовериться, что машина введена в
домен.
311
ЛКНВ.11100-01 90 02
Продолжение таблицы 9
Код
Описание
Решение
E00013
У пользователя, запустившего программу,
недостаточно прав для обновления
настроек машины.
Запустите программу с правами
администратора.
E00014
Не прошла проверка наличия билета
Kerberos. Билет Kerberos нужен для
доступа к сервисам домена.
Проверьте конфигурацию Kerberos в
файле /etc/krb5.conf. Попробуйте
получить билет Kerberos вручную.
E00015
Запрос на получение имени домена Active
Directory через LDAP не прошел.
Проверьте возможность получения
Kerberos ticket для машины. Проверьте
работу DNS и возможность обратиться к
доменному LDAP.
E00016
Утилита wbinfo не отдает SID для
пользователя, для которого выполняется
обновление групповых политик.
Проверьте целостность программы wbinfo.
Проверьте, что машина введена в домен.
E00017
Невозможно получить список групповых
политик для репликации на используемое
имя пользователя.
Удостоверьтесь, что пользователь, для
которого произходит попытка получить
список групповых политик, существует в
домене. Также необходимо
удостовериться, что проблема не вызвана
misconfiguration домена.
E00018
Не получилось прочитать содержимое
настройки XDG_DESKTOP_DIR.
Удостоверьтесь, что XDG в системе
сконфигурирован корректно и
пользователь, для которого вычитывается
настройка, существует.
E00019
Произошла ошибка во время работы
applier для пользователя.
Необходимо удостовериться, что это не
misconfiguration в используемой GPO.
Возможен баг. В таком случае необходимо
оставить bug report на страничке проекта.
E00020
Произошла ошибка во время работы
applier для пользователя с пониженными
привилегиями.
Необходимо удостовериться, что это не
misconfiguration в используемой GPO.
Возможен баг. В таком случае необходимо
оставить bug report на страничке проекта.
E00021
Не был получен ответ от D-Bus при
попытке запустить GPOA для текущего
пользователя.
Удостоверьтесь, что D-Bus работает
корректно и демон oddjobd запущен.
Удостоверьтесь, что у текущего
пользователя достаточно прав для
обращения к D-Bus.
E00022
Не был получен ответ от D-Bus при
попытке запустить GPOA для машины.
Удостоверьтесь, что D-Bus работает
корректно и демон oddjobd запущен.
E00023
Не был получен ответ от D-Bus при
попытке запустить GPOA для
пользователя.
Удостоверьтесь, что D-Bus работает
корректно и демон oddjobd запущен.
Удостоверьтесь, что у текущего
пользователя достаточно прав для
обращения к D-Bus.
312
ЛКНВ.11100-01 90 02
Окончание таблицы 9
Код
Описание
Решение
E00024
Ошибка во время работы машинного
applier.
Проверьте настройки applier вручную,
чтобы убедиться, что соответствующая
часть ОС не поломана.
E00025
Ошибка во время инициализации
пользовательского applier.
Проверьте, что машина является частью
домена и контроллер домена доступен.
Удостоверьтесь, что пользователь
существует. Проверьте, что
соответствующая часть ОС не поломана.
Настройка FreeIPA
FreeIPA это комплексное решение по управлению безопасностью
Linux-систем, 389 Directory Server, MIT Kerberos, NTP, DNS, Dogtag, состоит из
веб-интерфейса и интерфейса командной строки.
FreeIPA является интегрированной системой проверки подлинности и
авторизации в сетевой среде Linux, FreeIPA-сервер (может строится на основе
ОС Альт 8 СП Сервер 64 бит) обеспечивает централизованную проверку
подлинности, авторизацию и контроль за аккаунтами пользователей сохраняя
сведения о пользователе, группах, узлах и других объектах необходимых для
обеспечения сетевой безопасности.
9.4.1. Добавление новых пользователей домена
Для добавления новых пользователей можно воспользоваться
веб-интерфейсом FreeIPA. Для этого необходимо открыть в веб-браузере адрес
https://ipa.example.test/ipa/ui и ввести данные администратора для входа в
систему (рис. 130). Для входа в веб-интерфейс следует использовать имя admin, и
пароль, введенный при установке сервера FreeIPA.
313
ЛКНВ.11100-01 90 02
Рис. 130 Веб-интерфейс FreeIPA
После успешной авторизации можно создать нового пользователя домена. Для
этого в окне «Пользователи домена» необходимо нажать на кнопку «Добавить»
(рис. 131).
Рис. 131 Окно «Пользователи домена»
В открывшемся окне необходимо ввести данные пользователя и нажать на
кнопку «Добавить» (рис. 132).
314
ЛКНВ.11100-01 90 02
Рис. 132 Окно добавления нового пользователя домена
Созданный пользователь появится в списке пользователей (рис. 133).
Рис. 133 Список пользователей домена
9.4.2. Ввод рабочей станции в домен FreeIPA установка клиента и
подключение к серверу
Инструкция по вводу рабочей станции под управлением
ОС Альт 8 СП Рабочая станция в домен FreeIPA.
315
ЛКНВ.11100-01 90 02
Установка FreeIPA клиента
Установить необходимые пакеты:
# apt-get install freeipa-client libsss_sudo krb5-kinit bind-
utils libbind zip
П р и м е ч а н и е . Очистить конфигурацию freeipa-client невозможно.
В случае если это необходимо (например, для удаления, переустановки
freeipa-client) следует переустановить систему.
Настройка сети
Клиентские компьютеры должны быть настроены на использование
DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его
установки. В сетевых настройках необходимо указать использовать сервер FreeIPA
для разрешения имен. Эти настройки можно выполнить как в графическом
интерфейсе, так и в консоли:
1) в ЦУС в разделе «Сеть» «Ethernet-интерфейсы» (см. п. 8.5.1) задать имя
компьютера, указать в поле DNS-серверы IP-адрес FreeIPA-сервера и в поле
«Домены поиска» – домен для поиска (рис. 134);
Рис. 134
316
ЛКНВ.11100-01 90 02
2) в консоли:
- задать имя компьютера:
# hostnamectl set-hostname comp02.example.test
- добавить DNS сервер, для этого необходимо создать файл
/etc/net/ifaces/eth0/resolv.conf со следующим содержимым:
nameserver 192.168.0.113
где 192.168.0.113 – IP-адрес FreeIPA-сервера;
- указать службе resolvconf использовать DNS FreeIPA и домен для
поиска. Для этого в файле /etc/resolvconf.conf
добавить/отредактировать следующие параметры:
interface_order='lo lo[0-9]* lo.* eth0'
search_domains=example.test
где:
а) eth0 – интерфейс на котором доступен FreeIPA-сервер;
б) example.test – домен;
- обновить DNS адреса:
# resolvconf -u
П р и м е ч а н и е . После изменения имени компьютера могут перестать
запускаться приложения. Для решения этой проблемы необходимо перезагрузить
систему.
В результате выполненных действий в файле /etc/resolvconf.conf должны
появиться строки:
search example.test
nameserver 192.168.0.113
Подключение к серверу в ЦУС
Для ввода рабочей станции в домен FreeIPA, необходимо в ЦУС перейти в
раздел «Пользователи» → «Аутентификация» (см. п. 8.4.5).
В открывшемся окне следует выбрать пункт «Домен FreeIPA», заполнить поля
«Домен» и «Имя компьютера», затем нажать на кнопку «Применить» (рис. 135).
317
ЛКНВ.11100-01 90 02
Рис. 135
В открывшемся окне необходимо ввести имя пользователя, имеющего право
вводить машины в домен, и его пароль и нажать на кнопку «ОК» (рис. 136).
Рис. 136
В случае успешного подключения, будет выведено соответствующее
сообщение (рис. 137).
318
ЛКНВ.11100-01 90 02
Рис. 137
Перезагрузить рабочую станцию.
Подключение к серверу в консоли
Запустить скрипт настройки клиента в пакетном режиме:
# ipa-client-install -U -p admin -w 12345678
или интерактивно:
# ipa-client-install
Если все настроено, верно, скрипт должен выдать такое сообщение:
'''Discovery was successful!'''
Client hostname: comp01.example.test
Realm: EXAMPLE.TEST
DNS Domain: example.test
IPA Server: ipa.example.test
BaseDN: dc=example,dc=test
Continue to configure the system with these values? [no]:
Необходимо ответить yes, ввести имя пользователя, имеющего право вводить
машины в домен, и его пароль.
ВНИМАНИЕ!
Если при входе в домен возникает такая ошибка:
Hostname (comp01.example.test) does not have A/AAAA record.
Failed to update DNS records.
Необходимо проверить IP-адрес доменного DNS сервера в файле
/etc/resolv.conf.
В случае возникновения ошибки, необходимо перед повторной установкой
запустить процедуру удаления:
# ipa-client-install -U --uninstall
319
ЛКНВ.11100-01 90 02
Для работы sudo-политик для доменных пользователей на клиентской машине
необходимо разрешить доступ к sudo:
# control sudo public
Вход пользователя
В окне входа в систему необходимо ввести логин учетной записи
пользователя FreeIPA и нажать на кнопку «Войти» (рис. 138).
Рис. 138
В открывшемся окне ввести пароль, соответствующий этой учетной записи и
нажать на кнопку «Войти».
При первом входе пользователя будет запрошен текущий (установленный
администратором) пароль, затем у пользователя запрашивается новый пароль и его
подтверждение.
ПРЕДУПРЕЖДЕНИЕ
Если машина до этого была в других доменах или есть проблемы со входом
пользователей рекомендуется очистить кэш sssd:
# systemctl stop sssd
# rm -f /var/lib/sss/db/*
# rm -f /var/lib/sss/mc/*
# systemctl start sssd
Настройка служб DNS (Bind)
9.5.1. Общие сведения
Службы DNS (Bind) в ОС Альт 8 СП отвечают за преобразование доменного
имени в IP-адрес и за обратную операцию.
320
ЛКНВ.11100-01 90 02
Если локальная сеть не подключена к сети Интернет, вполне возможно, что
внутренний DNS-сервер в ней не нужен. За преобразование доменного имени в IP-
адрес и обратно в различные механизмы, лишь один из которых базируется на
службе доменных имен. В самом простом случае имена всех компьютеров вместе с
их адресами можно записать в файл /etc/hosts. Порядок просмотра различных
пространств имен указывается в файле /etc/nsswitch.conf. Строка
hosts: files dns этого файла предписывает приложениям, пользующимся
стандартной функцией gethostbyname() сначала обратиться в /etc/hosts, а затем
отправить запрос к DNS-серверу.
Если задачу преобразования имен в адреса взял на себя провайдер,
собственный DNS-сервер также не требуется. В этом случае на всех компьютерах в
качестве сервера имен указывается сервер провайдера (поле «nameserver» в файле
/etc/resolv.conf), к которому и идут все запросы. Даже если внутренняя сеть
организована согласно RFC1918 (т. н. интранет) и адреса компьютеров в ней
недоступны из внешней сети, DNS-запросы во внешнюю сеть будут выполняться.
Между собой компьютерам предлагается общаться с помощью /etc/hosts или
IP-адресов.
Некоторые службы и системные утилиты, работающие с доменными именами,
запускаются в ОС Альт 8 СП с использованием chroot каталоге /var/resolv),
поэтому после изменения упомянутых файлов рекомендуется выполнить команду:
update_chrootedconf
Собственную службу доменных имен рекомендуется настраивать для решения
задач, описанных ниже.
9.5.2. Уменьшение времени ответа на DNS-запрос абонентов внутренней сети
Если канал подключения к сети Интернет обладает большим временем
задержки, то работа с данными, включающими в себя много доменных имен
(например, с www-страницами) может замедлиться. Общий объем трафика при этом
не вырастет, поскольку система доменных имен распределенная база данных,
поддерживающая механизм кеширования запросов. Первое обращение к
кеширующему DNS-серверу приводит к выполнению рекурсивного запроса:
321
ЛКНВ.11100-01 90 02
опрашивается сервер более высокого уровня, который, если не знает ответа,
передаст запрос дальше. Результат запроса сохраняется в кэше, и таким образом все
последующие обращения именно к этой записи дальше кеширующего сервера не
уйдут. Время жизни (Time To Live, TTL) записи в кэше определяется хозяином
запрошенного доменного имени. По истечении TTL запись из кэша удаляется.
9.5.3. Именование компьютеров в интранет-сети
Решение этой задачи может потребоваться, если среди компьютеров
внутренней сети есть свои серверы (например, корпоративный www-сервер), к
которым другие компьютеры обращаются по доменному имени.
Поскольку адреса такой сети не пойдут дальше межсетевого экрана,
допускается использовать имя какого угодно в том числе несуществующего
домена и сделать соответствующие записи /etc/hosts. Поддержание в актуальном
состоянии файла /etc/hosts на всех компьютерах нелегкая задача, и лучше все-
таки воспользоваться DNS-сервером.
9.5.4. Примеры использования DNS-сервера Bind
Решение обеих поставленных задач предоставляется настройкой DNS-сервера
Bind.
В ОС Альт 8 СП сервер Bind запускается с использованием chroot. В /etc от
Bind остается символьная ссылка на главный файл настроек named.conf. Корневым
каталогом является /var/lib/bind, где у Bind есть собственный каталог /etc
содержащий набор включаемых друг в друга конфигурационных файлов, каталоги
/var и /dev.
П р и м е ч а н и е . Все пути к файлам и каталогам в настройках Bind
начинаются именно из этого каталога, и /zone соответствует /var/lib/bind/zone.
Чтобы запустить named в кеширующем режиме, достаточно
раскомментировать и заполнить раздел настройки forwarders (вышестоящие
серверы) в файле /var/lib/bind/etc/options.conf.
322
ЛКНВ.11100-01 90 02
В связи с возможными ограничениями на право обращаться к серверу с
обычными и рекурсивными запросами (настройки allow-query и
allow-recursion), допускается раскомментировать установки по умолчанию. Эти
настройки открывают доступ только абонентам локальных сетей, к которым
компьютер подключен непосредственно:
# grep allow- /var/lib/bind/etc/options.conf
// allow-query { localnets; };
// allow-recursion { localnets; };
Использование Bind для полноценного именования компьютеров в локальной
сети требует создания двух зон (прямой и обратной), содержащих в виде записей
определенного формата информацию о доменных именах компьютеров и об их роли
в этих доменах.
Каждая зона должна включать запись типа SOA (StateOfAuthority, сведения об
ответственности). В этой записи определяются основные временные и
административные параметры домена, в том числе электронный адрес лица,
ответственного за домен (администратора) и серийный номер зоны.
Серийный номер число в диапазоне от 0 до 4294967295 (232); каждое
изменение, вносимое в зону, должно сопровождаться увеличением этого номера.
Обнаружив увеличение серийного номера, кеширующие и вторичные серверы
признают все закешированные записи из этой зоны устаревшими. Удобно
использовать формат «годмесяцчисловерсия», где все числа, кроме года,
двузначные, а версия может обнуляться раз в день, соответствовать времени
(например, по формуле 100*(часы*60+минуты)/(60*24) или иметь сквозную
нумерацию (в этом случае появляется сложность с переходом от версии 99 к версии
100, то есть 0). Даже если серийный номер генерируется автоматически,
рекомендуется пользоваться этим форматом, наглядно отражающим время создания
зоны.
Пример зоны, не содержащей ничего, кроме записи SOA и обязательной
записи типа NS (NameServer), находится в файле /var/lib/bind/zone/empty.
323
ЛКНВ.11100-01 90 02
Кроме записи типа SOA, в каждой зоне должна быть хотя бы одна запись типа
NS, указывающая адрес DNS-сервера, авторитативного в этом домене (как минимум
адрес сервера, на котором запущен named).
Несколько зон включаются в настройку Bind автоматически (файл
/var/lib/bind/etc/rfc1912.conf). Они нужны для обслуживания сети,
привязанной к сетевой заглушке (127.0.0.1/8). Имя домена, который обслуживается
зоной, задается в файле настроек, а в самом файле зоны можно использовать
относительную адресацию (без «.» в конце имени), благодаря чему операция
переименования домена выполняется редактированием одной строки.
В ОС Альт 8 СП рекомендуется добавлять описания зон в конфигурационный
файл /var/lib/bind/etc/local.conf.
Прямая зона нужна для преобразования доменного имени в IP-адрес
операции, необходимой многим программам постоянно. Большинство записей в
прямой зоне типа A (Address) предназначены именно для этого. Другие часто
встречающиеся типы записей это CNAME (CanonicalName, настоящее имя),
позволяющий привязать несколько дополнительных имен к одному, и MX
(MaileXchange, обмен почтой), указывающий, куда пересылать почтовые
сообщения, в поле адресат которых встречается определенное доменное имя.
Пример прямой зоны для домена internal.domain.net (незначащие поля
соответствующих файлов заменены на «. . .»):
# cat /var/lib/bind/etc/local.conf
. . .
zone "internal.domain.net" {
type master;
file "internal.domain.net";
};
. . .
# cat /var/lib/bind/zone/internal.domain.net
$TTL 1D
@ IN SOA server root.server (
2013082202 ; serial
12H ; refresh
1H ; retry
1W ; expire
1H ; ncache
324
ЛКНВ.11100-01 90 02
)
IN NS server
MX 10 server
server A 10.10.10.1
www CNAME server
mail CNAME server
jack A 10.10.10.100
jill A 10.10.10.101
В этом примере используются правила по умолчанию: если в записи
некоторое поле опущено, оно наследуется от предыдущей. Так, вместо A
допускается написать INA, а вместо MX @ IN MX, где @ означает имя домена,
указанное в конфигурационном файле.
Как видно из примера, всю работу в сети делает компьютер с адресом
10.10.10.1, он же server.internal.domain.net, он же www.internal.domain.net
и mail.internal.domain.net. Несмотря на наличие среди CNAME этого сервера
имени «mail», MX-запись указывает на действительный адрес так рекомендовано
RFC (Request for Comments, документ из серии пронумерованных информационных
документов Интернета, содержащих технические спецификации и стандарты,
широко применяемые во всемирной сети).
Для того чтобы преобразовывать IP-адреса в доменные имена, у каждой сети
должна быть обратная зона. Если такой зоны нет, и в файле /etc/hosts тоже ничего
не написано, операция не выполнится. Такое преобразование нужно гораздо реже и
в основном по соображениям административным: для того, чтобы выяснить
принадлежность компьютера которого, допустим, пытаются атаковать сервер) по
его IP-адресу. Некоторые почтовые серверы проверяют, содержится ли IP-адрес
машины, передающей сообщение, в обратной зоне и похоже ли полученное
доменное имя на то, что указано в сообщении, и при несовпадении отказываются
принимать письмо.
Обратная зона состоит почти целиком из записей типа PTR (Pointer,
указатель). Чтобы не умножать сущностей, решено было не вводить новый способ
работы сервера имен и представить обратное преобразование IP-адреса как прямое
преобразование доменного имени специального вида. Например, чтобы выяснить
доменное имя компьютера с адресом «1.2.3.4», необходимо запросить информацию
325
ЛКНВ.11100-01 90 02
о доменном имени 4.3.2.1.in-addr.arpa. Таким образом, каждой подсети класса
C (или выше) соответствует определенный домен, в котором можно найти ответ.
Обратная зона для домена, приведенного выше:
# cat /var/lib/bind/etc/local.conf
. . .
zone "12.11.10.in-addr.arpa" {
type master;
file "12.11.10.in-addr.arpa";
};
. . .
# cat /var/lib/bind/zone/12.11.10.in-addr.arpa
$TTL 1D
@ IN SOA server.internal.domain.net.
root.server.internal.domain.net (
2013082201 ; serial
12H ; refresh
1H ; retry
1W ; expire
1H ; ncache
)
IN NS server.internal.domain.net.
0 PTR internal.domain.net.
1 PTR server.internal.domain.net.
100 PTR jack.internal.domain.net.
101 PTR jill.internal.domain.net.
Относительные адреса, использованные в левой части записей PTR,
раскрываются в полные вида адрес.12.11.10.in-addr.arpa, а в правой части
используются полные, которые могут указывать на имена в разных доменах.
Проверить синтаксическую правильность конфигурационного файла и файла
зоны можно с помощью утилит named-checkconf и named-checkzone, входящих в
пакет bind. Они же используются при запуске службы командой
service bind start.
Стоит иметь ввиду, что, в отличие от прямых зон, обратные описывают
административную принадлежность компьютеров, но сами принадлежат хозяину
сети (как правило, провайдеру).
Существует особого рода затруднение, связанное с работой DNS-сервера уже
не во внутренней сети, а в сети Интернет. Связано это с тем, что подсети класса C
(сети /24, в которых сетевая маска занимает 24 бита, а адрес компьютера 8)
выдаются только организациям, способным такую подсеть освоить сети класса C
326
ЛКНВ.11100-01 90 02
254 абонентских IP-адреса, один адрес сети и один широковещательный адрес).
Чаще всего выдаются совсем маленькие подсети от /30 (на два абонентских
адреса) до /27 (на 30 адресов) или другие диапазоны, сетевая маска которых не
выровнена по границе байта. Таких подсетей в обратной зоне получится несколько,
а возможности просто разделить ее, отдав часть адресов в администрирование
хостам, нет. Провайдер в таких случаях пользуется RFC2317, предписывающем в
обратной зоне заводить не записи вида PTR, а ссылки CNAME на адреса в
«классифицированных» обратных зонах специального вида. Обратное
преобразование становится двухступенчатым, зато администрирование каждой
классифицированной зоны можно отдать хосту.
DNS-сервер, отвечающий на запросы из глобальной сети, должен быть
зарегистрирован в родительском домене. Правила требуют, чтобы при регистрации
домена было указано не менее двух DNS-серверов, которые будут его обслуживать.
Из всех зарегистрированных серверов (записей типа NS в родительской зоне)
только одна соответствует первичному (master) серверу, а остальные вторичным
(slave). Для внешнего пользователя вторичный сервер не отличается от первичного,
отличия состоят только в способе администрирования: все изменения вносятся в
зоны первичного сервера, а вторичный только кеширует эти зоны, целиком получая
их по специальному межсерверному протоколу. Полученная зона складывается в
файл, редактировать который бессмысленно: первичный сервер при изменении зоны
рассылает всем своим вторичным указание скачать ее заново. Право на скачивание
зоны можно ограничить настройкой allow-transfer (как правило, в ней
перечисляются адреса вторичных серверов).
Пример задания вторичного сервера в файле настроек:
// We are a slave server for eng.example.com
zone "eng.example.com" {
type slave;
file "slave/eng.example.com";
// IP address of eng.example.com master server
masters { 192.168.4.12; };
};
327
ЛКНВ.11100-01 90 02
Вторичный сервер рекомендуется размещать в сети, отличной от той, в
которой помещается первичный, так повышается надежность обработки запроса
(если один сервер недоступен, возможно, ответит второй) и возрастает скорость
распространения записей по кэшам промежуточных серверов.
Проверку работоспособности, доступности и вообще самочувствия
DNS-сервера рекомендуется выполнять утилитой dig из пакета bind-utils, которая
выдает максимум информации о том, что происходило с запросом (для информации
об обратном преобразовании необходимо добавить ключ -x):
dig basealt.ru
; <<>> DiG 9.10.4-P5 <<>> basealt.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32751
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0,
ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;basealt.ru. IN A
;; ANSWER SECTION:
basealt.ru. 86400 IN A 194.107.17.41
;; Query time: 1177 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Mar 01 10:07:17 MSK 2017
;; MSG SIZE rcvd: 55
Можно также использовать утилиту host из того же пакета:
host basealt.ru
basealt.ru has address 194.107.17.41
Для выяснения административной принадлежности тех или иных доменов и
сетей можно воспользоваться утилитой whois из одноименного пакета, которая
обращается к специальной сетевой базе данных (не имеющей отношения к DNS).
328
ЛКНВ.11100-01 90 02
Система мониторинга Zabbix
Zabbix система мониторинга и отслеживания статусов разнообразных
сервисов компьютерной сети, серверов и сетевого оборудования.
Для управления системой мониторинга и чтения данных используется
веб-интерфейс.
9.6.1. Установка сервера PostgreSQL
Перед установкой Zabbix должен быть установлен и запущен сервер
PostgreSQL, с созданным пользователем zabbix и созданной базой zabbix.
Установить необходимые пакеты:
# apt-get install postgresql9.6-server zabbix-server-pgsql
где 9.6 актуальная версия пакета.
Подготовить к запуску и настроить службы PostgreSQL, для этого необходимо
выполнить следующие действия:
- создать системные базы данных:
# /etc/init.d/postgresql initdb
- включить по умолчанию и запустить службу:
# chkconfig postgresql on
# service postgresql start
- создать пользователя zabbix и базу данных zabbix (под правами root):
# su - postgres -s /bin/sh -c 'createuser --no-superuser --no-
createdb --no-createrole --encrypted --pwprompt zabbix'
# su - postgres -s /bin/sh -c 'createdb -O zabbix zabbix'
# service postgresql restart
- добавить в базу данные для веб-интерфейса (последовательность команд
важна, в разных версиях путь будет отличаться, версия помечена *):
# su - postgres -s /bin/sh -c 'psql -U zabbix -f
/usr/share/doc/zabbix-common-database-pgsql-*/schema.sql zabbix'
# если вы создаете базу данных для Zabbix прокси, следующие
команды выполнять не нужно
# su - postgres -s /bin/sh -c 'psql -U zabbix -f
/usr/share/doc/zabbix-common-database-pgsql-*/images.sql zabbix'
329
ЛКНВ.11100-01 90 02
# su - postgres -s /bin/sh -c 'psql -U zabbix -f
/usr/share/doc/zabbix-common-database-pgsql-*/data.sql zabbix'
9.6.2. Установка Apache2
Установить необходимые пакеты:
# apt-get install apache2 apache2-mod_php7
Добавить в автозапуск и запустить apache2:
# chkconfig httpd2 on
# service httpd2 start
9.6.3. Установка PHP
Установить необходимые пакеты:
# apt-get install php7-mbstring php7-sockets php7-gd2 php7-
xmlreader php7-pgsql php7-ldap
В файле /etc/php/7.3/apache2-mod_php/php.ini изменить некоторые
опции php:
memory_limit = 256M
post_max_size = 32M
max_execution_time = 600
max_input_time = 600
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1
П р и м е ч а н и е . Актуальная версия PHP может быть другой.
Перезапустить apache2:
# service httpd2 restart
9.6.4. Установка и настройка Zabbix-сервера
Установить, если еще не установлены, пакеты:
# apt-get install zabbix-server-pgsql fping
Внести изменения в конфигурационный файл
/etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Пароль от базы
330
ЛКНВ.11100-01 90 02
Добавить Zabbix-сервер в автозапуск и запустить его:
# chkconfig zabbix_pgsql on
# service zabbix_pgsql start
9.6.5. Установка веб-интерфейса Zabbix
Установить метапакет:
# apt-get install zabbix-phpfrontend-apache2-mod_php7
Включить аддоны в apache2:
# ln -s /etc/httpd2/conf/addon.d/A.zabbix.conf
/etc/httpd2/conf/extra-enabled/
Перезапустить apache2:
# service httpd2 restart
Изменить права доступа к конфигурационному каталогу веб-интерфейса,
чтобы веб-установщик мог записать конфигурационный файл:
# chown apache2:apache2 /var/www/webapps/zabbix/ui/conf
П р и м е ч а н и е . Если устанавливается Zabbix4, команда будет такой:
# chown apache2:apache2/var/www/webapps/zabbix/frontends/php/conf
В браузере перейти на страницу установки Zabbix-сервера:
http://<IP-сервера>/zabbix
При первом заходе на страницу запустится мастер, который шаг за шагом
проверит возможности веб-сервера, интерпретатора PHP и сконфигурирует
подключение к базе данных.
Для начала установки необходимо нажать на кнопку «Next Step» (рис. 139),
что осуществит переход на страницу проверки предварительных условий.
Необходимо доустановить то, что требуется и перейти на следующую
страницу.
Здесь необходимо ввести параметры подключения к базе данных (параметры
подключения нужно указывать такие же, как у Zabbix-сервера). По умолчанию в
качестве «Database schema» необходимо указать «public» (рис. 140).
П р и м е ч а н и е . Если выбрана опция Шифрование TLS базы данных
(Database TLS encryption), то в форме появятся дополнительные поля для настройки
TLS-соединения с базой данных.
331
ЛКНВ.11100-01 90 02
Рис. 139
Рис. 140
Далее необходимо задать имя сервера и завершить установку (рис. 141).
332
ЛКНВ.11100-01 90 02
Рис. 141
После окончания установки на экране будет отображаться форма входа в
веб-интерфейс управления системой мониторинга (рис. 142)
http://IP-сервера/zabbix. Параметры доступа по умолчанию:
Логин: Admin
Пароль: zabbix
Рис. 142 Вход в веб-интерфейс управления системой мониторинга
333
ЛКНВ.11100-01 90 02
Войдя в систему, нужно сменить пароль администратора, завести других
пользователей и затем можно переходить к настройкам Zabbix.
П р и м е ч а н и е . В профиле пользователя можно настроить некоторые
функции веб-интерфейса Zabbix, такие как язык интерфейса, цветовая тема,
количество отображаемых строк в списках и т. п. Сделанные в профиле изменения
будут применены только к пользователю, в профиле которого были сделаны эти
изменения.
Чтобы собирать информацию с узлов, Zabbix-сервер использует информацию,
получаемую от агентов. Чтобы добавить новый узел, следует установить на узел,
который необходимо мониторить Zabbix-агент (п. 9.6.6) и добавить новый хост на
Zabbix-сервере (п. 9.6.7, п. 9.6.8).
9.6.6. Установка Zabbix-агента (клиента)
Для установки Zabbix-агента необходимо выполнить команду:
# apt-get install zabbix-agent
Если Zabbix-агент устанавливается не на сам сервер мониторинга, то в файле
конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно задать параметры
сервера:
Server=<IP-сервера>
ServerActive=<IP-сервера>
Hostname=freeipa.example.test
freeipa.example.test – имя узла мониторинга, которое будет указано на
Zabbix-сервере.
П р и м е ч а н и е . Если параметр Hostname будет пустой или
закомментирован, то узел добавится под системным именем.
Добавить Zabbix-агент в автозапуск и запустить его:
# systemctl enable --now zabbix_agentd.service
9.6.7. Добавление нового хоста на Zabbix-сервере
Каждый хост необходимо зарегистрировать на Zabbix-сервере, сделать это
можно, используя веб-интерфейс.
334
ЛКНВ.11100-01 90 02
Информация о настроенных узлах сети в Zabbix доступна в разделе меню
«Настройка» «Узлы сети». Для добавления нового узла сети следует нажать на
кнопку «Создать узел сети» (рис. 143).
Рис. 143
В открывшемся окне необходимо заполнить поля «Имя узла сети» и
«IP адрес» согласно данным добавляемого хоста. Затем следует добавить хост в
определенную группу, выбрав одну из них из списка, либо создав новую группу
(рис. 144).
Рис. 144
335
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . В поле «Имя узла сети» ставится значение, которое указано
в настройках агента (/etc/zabbix/zabbix_agentd.conf) в поле Hostname.
П р и м е ч а н и е . Все права доступа назначаются на группы узлов сети, а не
индивидуально узлам сети. Поэтому узел сети должен принадлежать хотя бы одной
группе.
Перейти на вкладку «Шаблоны», выбрать шаблон «Template OS Linux by
Zabbix agent» и нажать на кнопку «Добавить» (рис. 145).
Рис. 145
Получение первых данных может занять до 60 секунд. Для того чтобы
просмотреть собранные данные необходимо перейти в раздел «Мониторинг»
«Последние данные», выбрать в фильтре нужный узел сети и нажать на кнопку
«Применить» (рис. 146).
Рис. 146
336
ЛКНВ.11100-01 90 02
9.6.8. Авторегистрация узлов
В Zabbix существует механизм, который позволяет Zabbix-серверу начинать
мониторинг нового оборудования автоматически, если на этом оборудовании
имеется установленный Zabbix-агент. Такой подход позволяет добавлять новые
узлы сети на мониторинг без какой-либо настройки Zabbix-сервера вручную по
каждому отдельному узлу сети.
Для настройки авторегистрации, перейти в раздел «Настройка»
«Действия». В выпадающем списке действий выбрать значение «Действия
авторегистрации»» и нажать на кнопку «Создать действие» (рис. 147).
Рис. 147
На открывшейся странице на вкладке «Действия» заполнить поле «Имя» и в
поле «Условия» следует задать правила, по которым будут идентифицироваться
регистрируемые хосты (рис. 148).
337
ЛКНВ.11100-01 90 02
Рис. 148
На вкладке «Операции» в поле «Операции» следует добавить правила,
которые необходимо применить при регистрации хоста. Например, для добавления
узла, добавления его к группе «Discovered hosts» с присоединением к шаблону
«Template OS Linux by Zabbix agent» (рис. 149).
Рис. 149
В конфигурационном файле агента указать следующие значения:
- в параметре Hostname – уникальное имя;
- в параметре ServerActive – IP-адрес сервера;
- в параметре HostMetadata – значение, которое было указано в настройках
сервера (HostMetadata=alt.autoreg).
Перезапустить агент.
338
ЛКНВ.11100-01 90 02
10. ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ОС
Управление системными сервисами и командами
10.1.1. Сервисы
Сервисы это программы, которые запускаются и останавливаются через
инициализированные скрипты, расположенные в каталоге /etc/init.d. Многие из
этих сервисов запускаются на этапе старта ОС Альт 8 СП.
Каталог /sbin/service обеспечивает интерфейс (взаимодействие)
пользователя с инициализированными скриптами. В свою очередь, скрипты
обеспечивают интерфейс для управления сервисами, предоставляя пользователю
опции для запуска, остановки, перезапуска, запроса состояния сервиса и
выполнения других воздействий на сервис.
Инициализированный скрипт сервиса openssh имеет следующие опции:
/etc/init.d/sshd
Usage: sshd
{start|stop|reload|restart|condstop|condrestart|condreload|check|
status}
Текущее состояние всех системных служб в ОС Альт 8 СП можно
просмотреть с помощью команды systemctl:
systemctl
...
sshd.service
loaded active running OpenSSH server daemon
systemd-binfmt.service
loaded active exited Set Up Additional Binary F
systemd-fsck-root.service
loaded active exited File System Check on Roo
...
Информация о запущенности и включенности сервисов может быть получена
или изменена с помощью команды systemctl. Например, для службы удаленного
доступа ssh установки по умолчанию выглядят следующим образом:
/sbin/systemctl status sshd
● sshd.service - OpenSSH server daemon
339
ЛКНВ.11100-01 90 02
Loaded: loaded (/lib/systemd/system/sshd.service; enabled;
vendor preset: ena
Active: active (running) since Mon 2019-04-01 09:48:34 MSK; 4h
0min ago
Process: 921 ExecStartPre=/usr/sbin/sshd -t (code=exited,
status=0/SUCCESS)
Process: 904 ExecStartPre=/usr/bin/ssh-keygen -A (code=exited,
status=0/SUCCES
Main PID: 942 (sshd)
CGroup: /system.slice/sshd.service
└─942 /usr/sbin/sshd -D
Сервис sshd запускается автоматически. Для того чтобы отключить его
автоматический запуск сервиса, можно воспользоваться следующей опцией
команды systemctl:
/sbin/systemctl disable sshd
Запуск, остановка, перезапуск и перезагрузка настроек служб выполняются
соответственно командами:
/sbin/systemctl start <служба>
/sbin/systemctl stop <служба>
/sbin/systemctl restart <служба>
/sbin/systemctl reload <служба>
10.1.2. Команды
Далее приведены основные команды, использующиеся в ОС Альт 8 СП:
- ar создание и работа с библиотечными архивами;
- at формирование или удаление отложенного задания (см. п. 10.8.2);
- awk язык обработки строковых шаблонов;
- batch планирование команд в очереди загрузки (см. п. 10.8.3);
- bc строковый калькулятор;
- chfn управление информацией учетной записи (имя, описание);
- chsh управление выбором командного интерпретатора (по умолчанию
для учетной записи);
- cut разбивка файла на секции, задаваемые контекстными разделителями;
- df вывод отчета об использовании дискового пространства;
- dmesg вывод содержимого системного буфера сообщений;
340
ЛКНВ.11100-01 90 02
- du вычисление количества использованного пространства элементов ФС;
- echo вывод содержимого аргументов на стандартный вывод;
- egrep поиск в файлах содержимого согласно регулярным выражениям;
- fgrep поиск в файлах содержимого согласно фиксированным шаблонам;
- file определение типа файла;
- find поиск файла по различным признакам в иерархии каталогов
(см. п. 10.5.1);
- gettext получение строки интернационализации из каталогов перевода;
- grep вывод строки, содержащей шаблон поиска (см. п. 10.4.4);
- groupadd создание новой учетной записи группы;
- groupdel удаление учетной записи группы;
- groupmod изменение учетной записи группы;
- groups вывод списка групп;
- gunzip распаковка файла;
- gzip упаковка файла;
- hostname вывод и задание имени хоста;
- install копирование файла с установкой атрибутов;
- ipcrm удаление ресурса IPC;
- ipcs вывод характеристик ресурса IPC;
- kill прекращение выполнения процесса (см. п. 10.2.6);
- killall удаление процессов по имени (см. п. 10.2.6);
- lpr система печати;
- ls вывод содержимого каталога (см. п. 10.3.1);
- lsb_release вывод информации о дистрибутиве;
- m4 запуск макропроцессора;
- md5sum генерация и проверка MD5-сообщения;
- mknod создание файла специального типа (см. п. 10.4.6);
- mktemp генерация уникального имени файла;
- more постраничный вывод содержимого файла;
341
ЛКНВ.11100-01 90 02
- mount монтирование ФС (см. п. 10.3.12);
- msgfmt создание объектного файла сообщений из файла сообщений;
- newgrp смена идентификатора группы;
- nice изменение приоритета процесса перед его запуском (см. п. 10.2.4);
- nohup работа процесса после выхода из системы (см. п. 10.2.3);
- od вывод содержимого файла в восьмеричном и других видах;
- passwd смена пароля учетной записи (см. п. 14.3);
- patch применение файла описания изменений к оригинальному файлу;
- pidof вывод идентификатора процесса по его имени;
- ps вывод информации о процессах (см. п. 10.2.2);
- renice изменение уровня приоритета процесса (см. п. 10.2.5);
- rm удаление файлов или каталогов;
- sed строковый редактор;
- sendmail транспорт системы электронных сообщений;
- sh командный интерпретатор;
- shutdown команда останова системы;
- srm безопасная перезапись/переименование/удаление целевого файла;
- su изменение идентификатора запускаемого процесса (см. п. 14.2.4);
- sync сброс системных буферов на носители;
- tar файловый архиватор (см. п. 10.6.1);
- umount размонтирование ФС;
- useradd создание новой учетной записи или обновление существующей
(см. п. 14.3);
- userdel удаление учетной записи и соответствующих файлов окружения
(см. п. 14.3);
- usermod модификация информации об учетной записи (см. п. 14.3);
- w список пользователей, кто в настоящий момент работает в системе и с
какими файлами;
- who вывод списка пользователей системы (см. п. 10.2.1).
342
ЛКНВ.11100-01 90 02
Узнать об опциях команд можно с помощью команды man.
Администрирование многопользовательской и многозадачной среды
10.2.1. Команда who
Для получения списка пользователей, работающих в ОС, используется
команда who, которая позволяет вывести в консоль идентификаторы активных
пользователей, терминалы и время входа в систему.
Для получения списка пользователей, зарегистрировавшихся в системе,
необходимо выполнить команду who. Задавая различные опции, с помощью
команды who можно получить информацию о времени начала и конца сеансов
работы пользователей, перезагрузок, корректировках системных часов, а также о
других процессах, порожденных процессом init.
Синтаксис команды who:
who [-u] [-T] [-l] [-H] [-q] [-p] [-d] [-b] [-r] [-t] [-a] [-s]
[имя файла]
Опции команды who приведены в таблице 10.
Т а б л и ц а 10 Опции команды who
Опция
Описание
-u
Позволяет вывести информацию о пользователях, которые в
настоящее время являются активными (работают в ОС).
-H
Опция, аналогичная опции -u (дополнительно в консоль выводится
название столбцов).
-s
Позволяет вывести в консоль имена активных пользователей и
терминальных линий, а также время и дату начала сессии
пользователей.
-t
Позволяет вывести информацию о последней корректировке
системных часов администратором.
-r
Позволяет вывести текущий уровень выполнения процесса init,
кроме этого, будут выведены идентификатор процесса, системный
код завершения и пользовательский код завершения процесса.
-a
Позволяет обработать файл /etc/utmp или файл, указанный в
команде, считая, что все опции (кроме THqs) включены.
-b
Позволяет вывести время и дату последней загрузки системы.
343
ЛКНВ.11100-01 90 02
Окончание таблицы 10
Опция
Описание
-d
Позволяет вывести информацию обо всех процессах, которые
прекратили существование и не были заново порождены
процессом init.
-p
Позволяет вывести список всех других процессов, активных в
настоящий момент, которые были порождены процессом init.
-q
Позволяет вывести имена и количество пользователей,
работающих в настоящий момент в системе.
-l
Позволяет вывести список линий, на которых система ожидает
входа в нее какого-либо пользователя.
-T
Аналогична опции -s с той разницей, что дополнительно в
позиции STATE выводится информация о состоянии терминальной
линии.
Сообщения, выводимые после выполнения команды who, имеют следующий
формат:
NAME [STATE] LINE TIME [IDLE] [PID] [COMMENT] [EXIT]
Информация NAME, LINE и TIME выводится при использовании всех опций,
кроме -q, STATE только при использовании опции -T, IDLE и PID только при
использовании опции -u и -l, COMMENT и EXIT только при использовании опции
-a.
В сообщениях, выводимых после выполнения команды who, фигурируют
следующие параметры:
- NAME имя пользователя;
- STATE состояние терминальной линии (состояние возможность
передавать сообщения на терминал от кого-либо другого терминала:
состояние «+» свидетельствует о том, что терминалу может передавать
сообщения любой другой терминал, состояние «» терминалу сообщения
передаваться не могут; пользователь root может передавать сообщения во
все линии, которым отвечает состояние «+» или «–»; при обнаружении
неисправной линии выводится «?»);
- LINE имя терминальной линии;
344
ЛКНВ.11100-01 90 02
- TIME время и дата начала сеанса работы пользователя в системе;
- IDLE время, прошедшее со времени последней активной работы
пользователя;
- PID идентификатор процесса входной оболочки пользователя;
- COMMENT комментарий, характеризующий данную линию (если таковые
имеются в файле /etc/inittab этот файл может содержать, например,
сведения о местоположении терминала, телефонном номере комнаты или о
типе физического терминала).
Чтобы получить сведения о сеансе, учетной записи и PID запущенного
процесса необходимо выполнить следующую команду:
who -uH
На экран монитора будет выведено сообщение следующего вида:
ИМЯ ЛИНИЯ ВРЕМЯ IDLE PID КОММЕНТАРИЙ
user-name line-name mm-dd hh:mm . 10340 (:0)
где:
- user-name имя пользователя;
- line-name имя терминальной линии;
- mm-dd hh:mm дата формате мм- дд, мм месяц, дд день) и время
формате чч:мм, чч час, мм – минута) начала сеанса работы пользователя;
- 10340 PID-идентификатор процесса;
- (:0) отсутствующий комментарий.
Точка (.) в параметре IDLE свидетельствует о том, что данный терминал
находился в активном состоянии не более минуты тому назад.
10.2.2. Команда ps
Для получения информации о состоянии запущенных процессов используется
команда ps. Она выдает следующую информацию о процессах: какие из них
выполнены, какие вызвали проблемы в системе, как долго выполняется тот или
иной процесс, какие он затребовал системные ресурсы, идентификатор процесса
(который будет необходим, например, для прекращения работы процесса с
помощью команды kill).
345
ЛКНВ.11100-01 90 02
Команда ps, запущенная без опций командной строки, выдает список
процессов, которые порождены учетной записью администратора.
Наиболее распространенное применение ps отслеживание работы фоновых
и других процессов в системе. Поскольку в большинстве случаев фоновые процессы
никак не взаимодействуют ни с экраном, ни с клавиатурой, команда ps остается
основным средством наблюдения за ними.
Синтаксис команды ps:
ps [-e] [-d] [-a] [-f] [-l] [-n файл_с_системой] [-t
список_терминалов]
[-p список_идентификаторов_процессов]
[-u список_идентификаторов_пользователей]
[-g список_идентификаторов_лидеров_групп]
Опции команды ps приведены в таблице 11.
Т а б л и ц а 11 Опции команды ps
Опция
Описание
-e
Позволяет вывести информацию обо всех процессах.
-d
Позволяет вывести информацию обо всех процессах, кроме
лидеров групп.
-a
Позволяет вывести информацию обо всех наиболее часто
запрашиваемых процессах, то есть обо всех процессах,
кроме лидеров групп и процессов, не ассоциированных с
терминалом.
-f
Позволяет сгенерировать полный листинг.
-l
Генерировать листинг в длинном формате.
-n файл_с_системой
Считать, что ОС загружена из файла_с_системой, а не из
файла /unix.
-t
список_терминалов
Позволяет вывести информацию только о процессах,
ассоциированных с терминалами из заданного
списка_терминалов (терминал – это либо имя файла-
устройства, например, tty, номер или console, либо просто
номер, если имя файла начинается с tty).
-p
Список_идентификаторов_процессов – позволяет вывести
информацию только об указанных процессах.
346
ЛКНВ.11100-01 90 02
Окончание таблицы 11
Опция
Описание
-u
Список_идентификаторов_пользователей – позволяет
вывести информацию только о процессах с заданными
идентификаторами или входными именами пользователей
(идентификатор пользователя выводится в числовом виде,
а при наличии опции -f в символьном).
-g
Список_идентификаторов_лидеров_групп – позволяет
вывести информацию только о процессах, для которых
указаны идентификаторы лидеров групп (лидер группы
это процесс, номер которого идентичен его
идентификатору группы).
ps выводит четыре основных поля информации для каждого процесса:
- PID идентификатор процесса;
- TTY терминал, с которого был запущен процесс;
- TIME время работы процесса;
- COMMAND имя выполненной команды.
При указании опции -f команда ps пытается определить имя команды и
аргументы, с которыми был создан процесс, исследуя пользовательский блок
процесса. В случае если это не удается, имя процесса выводится так же, как и при
отсутствии опции f, только заключается в квадратные скобки.
В таблице 12 приводятся заголовки колонок листинга, и поясняется смысл их
содержимого. Буквы «l» или «f» в скобках означают, что эта колонка появляется
соответственно при длинном или полном формате листинга, отсутствие букв
означает, что данная колонка выводится всегда. При этом опции -l и -f влияют
только на формат выдачи, но не на список процессов, информация о которых будет
предоставлена.
347
ЛКНВ.11100-01 90 02
Т а б л и ц а 12 Описание заголовков колонок листинга
Заголовок
Значение
Описание
F (l)
Флаги (шестнадцатеричные), логическая сумма которых
характеризует процессы следующим образом:
00
Процесс терминирован, элемент таблицы процессов
свободен.
01
Системный процесс: всегда в основной памяти.
02
Процесс трассируется родительским процессом.
04
Родительский трассировочный сигнал остановил
процесс, родительский процесс находится в состоянии
ожидания.
08
Процесс не может быть разбужен сигналом.
10
Процесс в основной памяти.
20
Процесс в основной памяти, блокирован до завершения
события.
40
Идет сигнал к удаленной системе.
80
Процесс в очереди на ввод/вывод.
S (l)
Статус процесса:
O
Процесс обрабатывается процессором.
S
Процесс ожидает завершения события.
R
Процесс стоит в очереди на выполнение.
I
Процесс создается.
Z
Процесс завершен, но родительский процесс не ждет
этого.
T
Процесс остановлен сигналом, так как родительский
процесс трассирует его.
X
Процесс ожидает получения большего объема основной
памяти.
UID (f,l)
Идентификатор владельца процесса, при указании опции
-f выдается входное имя пользователя.
PID
Идентификатор процесса (необходим для
терминирования процесса).
PPID(f,l)
Идентификатор родительского процесса.
C (f,l)
Доля выделенного планировщиком времени
центрального процессора.
348
ЛКНВ.11100-01 90 02
Окончание таблицы 12
Заголовок
Значение
Описание
STIME (f)
Время запуска процесса (часы:минуты:секунды). Если
процесс запущен более чем 24 часа назад, выводится
месяц и день запуска.
PRI (l)
Приоритет процесса: большее число означает меньший
приоритет.
NI (l)
Поправка к приоритету.
ADDR (l)
Адрес процесса в памяти.
SZ (l)
Размер (в блоках по 512 байт) образа процесса в памяти.
WCHAN (l)
Адрес события, которого ожидает процесс (у активного
процесса эта колонка пуста).
TTY
Управляющий терминал (обычно – терминал, с
которого был запущен процесс). В случае если такового
нет, выводится символ «?».
TIME
Истраченное процессом время на выполнение
центральным процессором.
COMMAND
Имя программы: если указана опция -f, выводится
полное имя команды и ее аргументы.
10.2.3. Команда nohup
Команда nohup применяется для того, чтобы процесс продолжал выполняться
даже после выхода из системы, поскольку выполнение стандартного дочернего
процесса завершается сразу после прекращения работы родительского, и, если был
запущен фоновый процесс, он также прекращает работу при выходе из системы.
При выполнении, команду nohup следует поместить в начало командной
строки следующим образом:
nohup sort sales.dat &
В данном примере nohup заставляет ОС игнорировать выход из нее и
продолжать выполнение до тех пор, пока процесс не закончится сам по себе. Будет
запущен процесс, который продолжит свое выполнение, не требуя контроля
администратора.
349
ЛКНВ.11100-01 90 02
10.2.4. Команда nice
Команда nice позволяет запустить другую команду с предопределенным
приоритетом выполнения, предоставляя администратору возможность определять
приоритет при выполнении своих задач.
При обычном запуске все задачи имеют один и тот же приоритет, и ОС
равномерно распределяет между ними процессорное время. С помощью команды
nice можно понизить приоритет какой-либо задачи, предоставив другим задачам
больше процессорного времени. Повысить приоритет той или иной задачи имеет
право только пользователь с идентификатором root.
Команда nice обладает следующим синтаксисом:
nice -number command
Уровень приоритета определяется параметром number, при этом большее его
значение означает меньший приоритет команды. Значение по умолчанию равно
«10», и number представляет собой число, на которое он должен быть уменьшен.
Например, если запущен процесс сортировки:
sort sales.dat > sales.srt &
Далее, чтобы дать ему преимущество над следующим процессом, нужно
запустить следующий процесс с уменьшенным приоритетом:
niсе -5 lp mail_list &
Для того чтобы назначить процессу самый низкий приоритет из возможных,
необходимо выполнить следующую команду:
nice -10 lp mail_list &
П р и м е ч а н и е . В случае команды nice тире означает знак опции.
Только пользователь с идентификатором root может повысить приоритет того
или иного процесса, применяя для этого отрицательное значение аргумента.
Максимально возможный приоритет «20», присвоить его процессу пользователь с
идентификатором root может с помощью команды:
nice --10 job &
Наличие символа «&» в примере достаточно условно, можно изменять
приоритеты, как фоновых процессов, так и процессов переднего плана.
350
ЛКНВ.11100-01 90 02
10.2.5. Команда renice
Команда renice позволяет изменить приоритет работающего процесса.
Формат этой команды подобен формату команды nice:
renice -number PID
Для изменения приоритета работающего процесса необходимо знать его
идентификатор, получить который можно с помощью команды ps, например,
вызвав:
ps -е : grep name
В данной команде необходимо заменить name именем интересующего
процесса. Команда grep отфильтрует только те записи, в которых будет встречаться
имя нужной команды. В случае если необходимо изменить приоритет всех
процессов пользователя или группы пользователей, в команде renice используется
идентификатор пользователя или группы.
Далее приводится пример использования команды renice, предположив, что
имя пользователя – pav:
ps -ef : grep $LOGNAME
рav 11805 11804 0 Dec 22 ttysb 0:01 sort sales.dat > sales srt
pav 19955 19938 4 16:13:02 ttypo 0:00 grep рav
рav 19938 1 0 16:11:04 ttypo 0-00 bash
рav 19940 19938 42 16:13:02 ttypo 0:33 find . -name core -exec nn
{};
Теперь, чтобы понизить приоритет процесса find с идентификатором 19940,
нужно ввести:
renice -5 19940
В случае команды renice работают те же правила, что и в случае команды
nice, а именно:
- ее можно использовать только со своими процессами;
- пользователь с идентификатором root может применить ее к любому
процессу;
- только пользователь с идентификатором root может повысить приоритет
процесса.
351
ЛКНВ.11100-01 90 02
10.2.6. Команда kill и killall
В отдельных ситуациях необходимо прекратить выполнение процесса, не
дожидаясь его нормального завершения. Это может произойти в следующих
случаях:
- процесс использует слишком много времени процессора и ресурсов
компьютера;
- процесс работает слишком долго, не давая ожидаемых результатов;
- процесс производит слишком большой вывод информации на экран или в
файл;
- процесс привел к блокировке терминала или другой сессии;
- из-за ошибки пользователя или программы используются не те файлы или
параметры командной строки;
- дальнейшее выполнение процесса бесполезно.
В случае если процесс работает не в фоновом режиме, нажатие клавиш
<Ctrl>+<С> должно прервать его выполнение, но, если процесс фоновый прервать
его выполнение можно только с помощью команды kill, которая посылает
процессу сигнал, требующий от процесса завершения. Для этого используются две
формы:
kill PID(s)
kill -signal PID(s)
Для завершения процесса с идентификатором 127 ввести:
kill 127
Для того чтобы завершить процессы 115, 225 и 325, ввести:
kill 115 225 325
С помощью опции -signal можно, например, заставить процесс перечитать
конфигурационные файлы без прекращения работы.
Список доступных сигналов можно получить с помощью команды:
kill -l
При успешном завершении процесса никакое сообщение не выводится.
352
ЛКНВ.11100-01 90 02
Сообщение появится при попытке завершения процесса без наличия
соответствующих прав доступа или при попытке завершить несуществующий
процесс.
Завершение родительского процесса иногда приводит к завершению
дочерних, однако для полной уверенности в завершении всех процессов, связанных
с данным, следует указывать их в команде kill.
В случае, если терминал оказался заблокированным, можно войти в систему с
другого терминала:
ps -ef: grep $LOGNAME
и завершить работу оболочки на блокированном терминале.
При выполнении команда kill посылает процессу соответствующий сигнал.
Программы ОС могут посылать и принимать более 20 сигналов, каждый из которых
имеет свой номер. Например, при выходе администратора ОС посылает всем его
процессам сигнал 1, который заставляет все процессы (кроме запущенных с
помощью nohup) прекратить работу. Программы могут быть написаны и таким
образом, что будут игнорировать посылаемые им сигналы, включая сигнал 15,
который возникает при запуске команды kill без указания конкретного сигнала.
Однако сигнал 9 не может быть проигнорирован процесс все равно будет
завершен. Таким образом, если команда kill PID не смогла завершить процесс (он
виден при использовании команды ps), необходимо воспользоваться следующей
командой: kill -9 PID
Команда kill -9 прекращает процесс, не давая возможности, например,
корректно закрыть файлы, что может привести к потере данных. Использовать эту
возможность следует только в случае крайней необходимости.
Для завершения всех фоновых процессов необходимо ввести следующую
команду:
kill 0
Команда killall завершает все процессы с данным именем, обладает
следующим синтаксисом:
killall [имя процесса]
353
ЛКНВ.11100-01 90 02
Пример использования killall:
killall httpd
Преимущественное право контроля над процессом принадлежит владельцу.
Права владельца могут отменяться только пользователем с идентификатором root.
Ядро назначает каждому процессу четыре идентификатора: реальный и
эффективный UID, реальный и эффективный GID. Реальные ID используются для
учета использования системных ресурсов, а эффективные для определения прав
доступа. Как правило, реальные и эффективные ID совпадают. Владелец процесса
может посылать в процесс сигналы, а также понижать приоритет процесса.
Процесс, приступающий к выполнению другого программного файла,
осуществляет один из системных вызовов семейства ехес. Когда такое случается,
эффективные UID и GID процесса могут быть установлены равными UID и GID
файла, содержащего образ новой программы, если у этого файла установлены биты
смены идентификатора пользователя и идентификатора группы.
Системный вызов ехес это механизм, с помощью которого такие команды,
как passwd, временно получают права пользователя с идентификатором root
(команде passwd они нужны для того, чтобы изменить /etc/passwd).
Основные утилиты для операций с файлами и каталогами
10.3.1. Команда ls
Команда ls предназначена для вывода информации о файлах или каталогах.
Команда ls для каждого имени каталога распечатывает список входящих в этот
каталог файлов; для файлов повторяется имя файла и выводится дополнительная
информация в соответствии с указанными флагами. По умолчанию имена файлов
выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое
текущего каталога.
Синтаксис:
ls [параметры]... [файл]...
Параметры:
1) -a, --all вывести список всех файлов (обычно не выводятся файлы,
имена которых начинаются с точки);
354
ЛКНВ.11100-01 90 02
2) -A, --almos-all не показывать подразумеваемые «.» и «..»;
3) --block-size=РАЗМЕР выдает размеры в блоках по РАЗМЕР байт.
Например, --block-size=M для вывода объема в единицах равных
1048576 байтов;
4) -B, --ignore-backups не показывать файлы, заканчивающиеся на «~»,
если они не заданы в командной строке;
5) -c, --time=ctime, --time=status сортировать содержимое каталога в
соответствии с временм изменения состояния файла. Если с помощью
опции -l задан этот формат, то выдавать время изменения файла вместо
времени его модификации. С опций -t показать время последней
модификации описания файла и сортировать по имени;
6) -C, --format=vertical вывод в несколько колонок с сортировкой по
вертикали;
7) --color[=КОГДА] использовать цвета в выводе. КОГДА по умолчанию
always. Также можно использовать never и auto;
8) -d, --directory если аргумент является каталогом, то выводить только
его имя, а не содержимое. Часто используется с флагом -l для получения
сведений о состоянии каталога;
9) -h, --human-readable в сочетании с -l показывает размеры в
удобочитаемом формате (например, 1K 234M 2G);
10) -i, --inode показывать индекс каждого файла;
11) -I, --ignore= ШАБЛОН не показывать записи, соответствующие ШАБЛОНУ
командного интерпретатора;
12) -k, --kibibytes использовать блоки по 1024 байта;
13) -l вывод в длинном формате;
14) -m показать записи в список шириной в размер терминала, имена файлов
разделяются запятыми;
15) -r, --reverse изменить порядок сортировки на обратный;
16) -R, --revcursive рекурсивно обойти встретившиеся подкаталоги;
355
ЛКНВ.11100-01 90 02
17) -s, --size выдавать размер файлов в блоках;
18) -S отсортировать по размеру файлов, большие сначала;
19) --sort=СЛОВО сортировать по СЛОВУ, а не по имени: none
(без сортировки) -U, extension (расширение) -X, size (размер) -S, time
(время) -t или version (версия) v;
20) -t файлы сортируются по времени последнего изменения (сначала идут
самые новые файлы);
21) -U не сортировать, отображать записи в обычном порядке;
22) -v сортировать по номерам (версии) в текстовом представлении;
23) -x вывод в несколько колонок с сортировкой по строкам;
24) -Z, --context вывести контекст для каждого файла;
25) -1 отображать по одному файлу в строке.
Режим доступа к файлу при указании флага -l выводится в виде 10 символов.
При этом первый символ означает:
1) d файл является каталогом;
2) b файл является специальным блочным файлом;
3) c файл является специальным символьным файлом;
4) p файл является именованным каналом;
5) - обычный файл.
Остальные 9 символов делятся на три группы по три символа: права доступа
владельца, других пользователей из его группы, всех прочих пользователей. Внутри
каждой группы используются три символа, обозначающие права на чтение, запись и
выполнение файла соответственно. Для каталога под правом на выполнение
подразумевается право на просмотр в поисках требуемого файла.
Пример:
ls -l /util/by
-rwxr-xr-x 1 root sys 50 Jun 22 10:42 /util/by
Права обозначаются следующим образом:
1) r право на чтение;
2) w право на запись;
356
ЛКНВ.11100-01 90 02
3) x право на выполнение (поиск в каталоге);
4) - данное право доступа отсутствует;
5) l учет блокировки доступа (бит переустановки идентификатора группы
равен 1, бит права на выполнение членами группы равен 0). Располагается
на месте права на выполнение для членов группы;
6) s право переустанавливать идентификатор группы или идентификатор
владельца и право выполнения файла для членов группы или владельца;
7) S неопределенная комбинация бит: право переустанавливать
идентификатор владельца есть, а право выполнения файла для владельца
отсутствует;
8) t установлен бит навязчивости у файла, который могут выполнять
прочие пользователи. Располагается на месте права на выполнение для
прочих пользователей;
9) T бит навязчивости установлен, а права на выполнение у прочих
пользователей нет. Располагается на месте права на выполнение для прочих
пользователей.
Примеры:
1) Если файл доступен владельцу для чтения, записи и выполнения, а членам
группы и прочим пользователям только для чтения, он имеет режим: -rwxr--r-
2) Файл доступен владельцу для чтения, записи и выполнения, а членам
группы и прочим пользователям только для чтения и выполнения. Разрешена
переустановка при выполнении идентификатора пользователя на идентификатор
владельца файла: -rwsr-xr-x
3) Файл доступен для чтения и записи только владельцу и членам группы;
может быть блокирован при доступе: -rw-rwl--
4) Вывести имена всех файлов в текущем каталоге, включая и те, которые
начинаются с точки и обычно не выдаются: ls -a
5) Вывести разнообразную информацию: список всех файлов, включая те,
которые обычно не выводятся (a); номера описателей файлов будут выведены в
357
ЛКНВ.11100-01 90 02
левой колонке (i); размеры файлов блоках) выводятся во второй колонке (s);
наконец, будут выданы числовые идентификаторы владельцев и групп (n):
ls aisn
Возможные сообщения об ошибках, при использовании команды ls:
ls: невозможно открыть каталог <путь>: Отказано в доступе
ls: невозможно получить доступ к <путь>/<файл>: Нет такого файла
или каталога
10.3.2. Команда cp
Команда cp предназначена для копирования файлов и каталогов.
Синтаксис:
cp [ОПЦИЯ]... [-T] ИСТОЧНИК НАЗНАЧЕНИЕ
cp [ОПЦИЯ]... ИСТОЧНИК... КАТАЛОГ
cp [ОПЦИЯ]... -t КАТАЛОГ ИСТОЧНИК...
Копирует ИСТОЧНИК в НАЗНАЧЕНИЕ или несколько ИСТОЧНИКОВ в КАТАЛОГ.
Основные опции:
1) --backup[=CONTROL] сделать резервную копию каждого целевого файла;
2) -b тоже что и --backup, но не принимает аргументы;
3) -f, --force если невозможно открыть существующий файл, то удалить
его и попробовать еще раз (данная опция игнорируется, если используется
совместно с -n);
4) -i, --interactive спросить перед перезаписью (отменяет ранее
указанный ключ -n);
5) -H следовать символьным ссылкам в ИСТОЧНИКЕ;
6) -l, --link создавать жесткие ссылки вместо копирования;
7) -n, --no-clobber не перезаписывать существующие файлы (отменяет
стоящую перед ней опцию -i);
8) -R, -r, --recursive копировать каталоги рекурсивно;
9) -s, --symbolic-link создать символьную ссылку вместо копирования;
10) -u, --update копировать, только если файл ИСТОЧНИК новее, чем файл
назначения или если файл назначения отсутствует;
11) -v, --verbose выводить имя каждго файла перед копированием.
358
ЛКНВ.11100-01 90 02
По умолчанию суффикс для резервных копий «~». Его можно переопределить
при помощи опции --suffix или переменной окружения SIMPLE_BACKUP_SUFFIX.
Способ контроля версий может быть задан через опцию --backup или через
переменную окружения VERSION_CONTROL. Допустимые значения:
1) none, off никогда не делать резервные копии (даже если задана опция
--backup);
2) numbered, t создать нумерованные резервные копии;
3) existing, nil если существуют нумерованные резервные копии, то
создавать нумерованные резервные копии, если нет, то создавать простые;
4) simple, never всегда создавать простые резервные копии.
Следующий пример использования команды cp демонстрирует копирование
файла srcfile1 в каталог dest_dir: cp srcfile1 dest_dir
10.3.3. Команда rsync
Команда rsync выполняет синхронизацию файлов и каталогов, использует
протокол удаленного обновления для ускорения передачи файлов, которые
существуют в месте назначения.
Синтаксис:
rsync [ОПЦИИ] источник место_назначения
Опции:
1) -v подробный режим;
2) -r копировать данные рекурсивно;
3) -a режим архивирования, позволяет копировать данные рекурсивно, с
сохранением прав доступа на файлы, символических ссылок и другой
информации);
4) -h вывод данных в удобном формате;
5) -z сжатие данных.
Примеры:
1) Скопировать или синхронизировать все файлы из одного каталога в другой:
rsync avh /tmp/firstdir /tmp/seconddir
359
ЛКНВ.11100-01 90 02
2) Копирование локальных данных на удаленный хост:
rsync avzh /tmp/firstdir user@10.110.2.1:/tmp/seconddir
Возможные сообщения об ошибках, при использовании команды sfill:
rsync: change_dir#1 <каталог> failed: Отказано в доступе
rsync: change_dir <каталог> failed: Нет такого файла или каталога
10.3.4. Команда mv
Команда mv перемещение (переименование) файлов.
Синтаксис:
mv [ОПЦИЯ]... [-T] ИСТОЧНИК НАЗНАЧЕНИЕ
mv [ОПЦИЯ]... ИСТОЧНИК... КАТАЛОГ
mv [ОПЦИЯ]... -t КАТАЛОГ ИСТОЧНИК...
Переименовать ИСТОЧНИК в НАЗНАЧЕНИЕ или переместить ИСТОЧНИК (и) в
КАТАЛОГ.
Основные опции:
1) -i, --interactive просит подтверждения на замену существующего
файла;
2) -n, --no-clobber не переписывать существующий файл. Если указано
несколько опций -i, -f и -n, то действовать будет только последняя;
3) -u, --update перемещать только, если файл ИСТОЧНИК новее, чем файл
назначения или если файл назначения отсутствует;
4) -v, --verbose выдавать имя каждого файла перед его переносом.
Возможные сообщения об ошибках, при использовании команды mv:
mv: невозможно переместить <файл> в <файл>: Операция не позволена
mv: не удалось выполнить stat для <файл>: Отказано в доступе
mv: не удалось выполнить stat для <файл>: Нет такого файла или
каталога
10.3.5. Команда dd
Команда dd предназначена для копирования файла (по умолчанию из
стандартного ввода на стандартный вывод), используя заданные размеры блоков для
ввода и вывода, и в тоже время выполняя его преобразование.
360
ЛКНВ.11100-01 90 02
Синтаксис:
dd [параметр]
Основные опции:
1) if=ФАЙЛ читает данные из ФАЙЛа вместо стандартного ввода;
2) of=ФАЙЛ пишет данные в ФАЙЛ вместо стандартного вывода;
3) ibs=ЧИСЛО читает по ЧИСЛО байт за раз. По умолчанию 512;
4) obs=ЧИСЛО пишет по ЧИСЛО байт за раз. По умолчанию 512;
5) bs=ЧИСЛО читает и пишет по ЧИСЛО байт за раз. По умолчанию 512.
Примеры:
1) Заполнить устройство случайными данными:
dd if=/dev/urandom of=/dev/sda bs=4k
2) Скопировать раздел в другой раздел:
dd if=/dev/sda3 of=/dev/sdb3 bs=4096 conv=notrunc,noerror
Возможные сообщения об ошибках, при использовании команды dd:
dd: не удалось открыть <файл>: Отказано в доступе
10.3.6. Команда s_rm
Команда s_rm выполняет безопасное удаление целевого файла.
Синтаксис:
s_rm ФАЙЛ...
Возможные сообщения об ошибках, при использовании команды s_rm:
Ошибка: файл <файл>: Отказано в доступе
Ошибка: файл <файл>: Нет такого файла или каталога
10.3.7. Команда s_fill
Команда s_fill выполняет безопасную перезапись свободного пространства
на разделе, в котором находится указанная директория и всех свободных индексных
дескриптеров указанного каталога.
Синтаксис:
S_fill каталог...
Возможные сообщения об ошибках, при использовании команды s_fill:
Ошибка: не достаточно прав для <каталог>: Отказано в доступе
361
ЛКНВ.11100-01 90 02
10.3.8. Команда cd
Команда cd предназначена для смены каталога. Команда работает как с
абсолютными, так и с относительными путями. Если каталог не указан,
используется значение переменной окружения HOME (домашний каталог
пользователя). Если каталог задан полным маршрутным именем, он становится
текущим. По отношению к новому каталогу нужно иметь право на выполнение,
которое в данном случае трактуется как разрешение на поиск.
Синтаксис:
cd [-L|-P] [каталог]
Опция -L заставляет следовать по символическим ссылкам.
Поскольку для выполнения каждой команды создается отдельный процесс, cd
не может быть обычной командой; она распознается и выполняется командной
оболочкой.
Если в качестве аргумента задано -, то это эквивалентно $OLDPWD.
Если переход был осуществлен по переменной окружения CDPATH или в
качестве аргумента был задан - и смена каталога была успешной, то абсолютный
путь нового рабочего каталога будет выведен на стандартный вывод.
10.3.9. Команда pwd
Команда pwd выводит абсолютный путь текущего (рабочего) каталога.
Синтаксис:
pwd [-LP]
Опции:
1) -P вывод не будет содержать символических ссылок;
2) -L вывод может содержать символические ссылки.
10.3.10. Команда mkdir
Команда mkdir предназначена для создания каталогов.
Синтаксис:
mkdir [опция]... каталог...
Опции:
1) -m, --mode=РЕЖИМ установить права доступа для создаваемых каталогов;
362
ЛКНВ.11100-01 90 02
2) -p, --parents перед созданием нового каталога предварительно
создаются все несуществующие вышележащие каталоги. В случае
существования каталога не будет выведена ошибка;
3) -v, --verbose выводить сообщение для каждого созданного каталога;
4) -Z, --context[=CTX] задать контекст для каждого создаваемого
каталога. Если CTX не задан, то контекст будет равным типу по
умолчанию.
Чтобы создать поддерево каталогов tmpdir/temp/dir, надо выполнить
команду:
mkdir -p tmpdir/temp/dir
Возможные сообщения об ошибках, при использовании команды mkdir:
mkdir: невозможно создать каталог <каталог>: Отказано в доступе
mkdir: невозможно создать каталог <каталог>: Нет такого файла или
каталога
10.3.11. Команда rmdir
Команда rmdir предназначена для удаления каталога, при условии, что он
пуст.
Синтаксис:
rmdir [опция]... каталог...
Для команды rmdir доступна опция -p при указании пути к каталогу не
просто имени каталога), команда удалит каталог и его потомков:
rmdir p a/b/c
Команда rmdir часто заменяется командой rm -rf, которая позволяет удалять
каталоги, даже если они не пусты.
10.3.12. Команда mount
Команда mount используется для монтирования файловых систем.
Синтаксис:
mount [-lhV]
mount a [опция]
mount [опция] [--source] <source> | [--target] <directory>
mount [опция] <source> <directory>
363
ЛКНВ.11100-01 90 02
Опции:
1) -t определение типа файловой системы раздела, предполагаемого для
размещения;
2) -o указание параметров монтирования.
Примеры:
1) Просмотр примонтированных устройств:
mount -l
2) Монтирование разделов жесткого диска:
mount t ext3 /dev/sdb1 /home/user/test
Возможные сообщения об ошибках, при использовании команды mount:
mount: точка монтирования <каталог> не существует
Создание, просмотр и редактирование файлов
10.4.1. Команда cat
Команда cat позволяет просмотреть файл целиком, копируя файлы в
стандартный поток вывода и объединяя их.
Синтаксис:
cat [ОПЦИЯ]... [ФАЙЛ]...
Опции:
1) -A, --show-all тоже что и -vET;
2) -e тоже что и -vE;
3) -E, --show-ends отображать символ «$» в конце каждой строки;
4) -n, --number нумеровать выводимые строки;
5) -s, --squeeze-blank скрывать повторяющиеся пустые строки в выводе;
6) -t тоже что и vT;
7) -T, --show-tabs отображать символ табуляции как ^I;
8) -v, --show-nonprinting использовать ^- и M-нотацию для всех
непечатаемых символов кроме LFD (перевод строки и табуляция) и
табуляции.
Если ФАЙЛ не задан или задан как «-», то читать из стандартного ввода.
364
ЛКНВ.11100-01 90 02
Примеры:
1) Вывести содержимое файла f, затем со стандартного ввода, затем
содержимое файла g:
cat f - g
2) Скопировать стандартный ввод на стандартный вывод:
cat
Возможные сообщения об ошибках, при использовании команды cat:
cat: <файл>: Отказано в доступе
cat: <файл>: Нет такого файла или каталога
10.4.2. Команда less
Команда less позволяет просматривать текст постранично.
less [ опции ] файл
Опции:
1) -c очистка экран перед тем, как отобразить следующую страницу;
2) -m вывод информации о том, какая часть файла выведена на данный
момент (в процентах);
3) -N вывод номеров строк;
4) -r вывод управляющих (непечатаемых) символов;
5) -s объединение несколько пустых строк в одну;
6) -S урезание длинных строк до длины экрана вместо переноса.
Возможные сообщения об ошибках, при использовании команды less:
<файл>: Отказано в доступе
<файл>: Нет такого файла или каталога
10.4.3. Команда echo
Команда echo выводит текст на стандартное устройство вывода.
echo [опции] [строка]
Опции:
1) -n не выводить в конце символ новой строки;
2) -e –включить интерпретацию управляющих символов;
3) -E отключить интерпретацию управляющих символов;
365
ЛКНВ.11100-01 90 02
Возможные сообщения об ошибках, при использовании команды echo:
<файл>: Отказано в доступе
<файл>: Нет такого файла или каталога
10.4.4. Команда grep
Команда grep предназначена для поиска текста, соответствующего
регулярному выражению в файлах или потоке вывода.
Cинтаксис:
grep [ опции ] шаблон_поиска [файл]
Опции:
1) -r рекурсивный поиск во всех каталогах;
2) -n вывод номеров строк, в которых найдено совпадение;
3) -l вывод списка файлов, содержащих шаблон;
4) -v поиск строк, не содержащих шаблон (инверсия);
5) -i поиск с игнорированием регистра.
10.4.5. Команда touch
Создание и редактирование файлов выполняется командой touch, которая
устанавливает время последнего изменения и доступа в текущее системное время у
заданного файла. Если файл не существует – он создается.
Синтаксис:
touch [опции]... файл
Основные опции:
1) -a изменить только время доступа к файлу;
2) -c, --no-create не создавать файл;
3) -d, --date=СТРОКА проанализировать строку и использовать вместо
текущего времени;
4) -m изменить время последней модификации файла;
5) -r, --reference=ФАЙЛ использовать соответствующий временной штамп
от ФАЙЛ в качестве нового значения для изменяемого временного штампа;
6) -t время использовать заданное время в качестве нового значения для
изменяемого временного штампа.
366
ЛКНВ.11100-01 90 02
Следующий пример использования команды touch создает файл myfile.txt:
touch myfile.txt
Возможные сообщения об ошибках, при использовании команды touch:
touch: невозможно выполнить touch для <файл>: Отказано в доступе
touch: невозможно выполнить touch для <путь>/<файл>: Нет такого
файла или каталога
10.4.6. Команда mknod
Утилита mknod создает специальные блочные или символьные файлы.
Специальный файл записывается в файловой системе с помощью тройки
параметров: один логический и два целых. Логический параметр говорит о том,
является ли специальный файл символьным или блочным. Два целых параметра
задают старший и младший номера устройства. Специальнй файл практически не
занимает места на диске и используется только для общения с ОС, а не для хранения
данных.
Синтаксис:
mknod [опции] имя {bc} старший_номер младший_номер
mknod [опции] имя p
Основные опции:
1) -m, --mode=РЕЖИМ установить РЕЖИМ доступа;
2) -Z установить контекст безопасности равным типу по умолчанию.
Тип устройства может принимать следующие значения:
1) b создать файл блочного устройства (буферизированный);
2) c создать файл символьного устройства (небуферизированный);
3) p создать именованный канал.
Возможные сообщения об ошибках, при использовании команды mknod:
mknod: <файл>: Файл существует
367
ЛКНВ.11100-01 90 02
Поиск файлов
10.5.1. Команда find
Утилита find используется для поиска файлов.
Синтаксис:
find [-H] [-L] [-P] [-0уровень] [-D help | tree | search | stat |
rates | opt | exec] [путь…] [выражение]
find [путь] [опции] [критерии поиска] [действия над файлами]
В качестве пути для поиска можно использовать как абсолютные, так и
относительные пути, а также список путей, разделенных пробелом. Путем по
умолчанию является текущий подкаталог. Выражение по умолчанию -print.
Основные опции:
1) -d, --depth поиск в подкаталогах перед поиском в самом каталоге;
2) -L при поиске следовать по символическим ссылкам;
3) -P никогда не следовать по символическим ссылкам;
4) -maxdepth N при поиске проверять не более чем N вложенных уровней
каталогов;
5) -mindepth N не проверять вложенные каталоги уровня N и меньше;
6) -mount не искать в каталогах других файловых систем.
У команды find может быть несколько критериев поиска (tests). Каждый
критерий представляет собой определенное условие проверки, которое возвращает
либо true либо false. В процессе обработки очередного файла команда find по
очереди проверяет каждый критерий, и, если очередной критерий возвращает false,
тогда команда find переходит к следующему файлу.
Основные критерии поиска:
1) -name шаблон имя файла (шаблон имени) без указания пути.
Рекомендуется всегда заключать шаблон в кавычки;
2) -atime N последний доступ к файлу производился N дней назад. (-atime
+1 найдет файлы, доступ к которым осуществлялся как минимум два дня
назад);
3) -mtime N последнее изменение файла было N дней назад;
368
ЛКНВ.11100-01 90 02
4) -ctime N статус файла последний раз изменялся N дней назад;
5) -newer другой_файл файл был модифицирован позднее, чем
другой_файл;
6) -size [±]N[cwbkMG] размер файла равен N блокам, если указано +N,
тогда размер файла больше N, -N меньше. Символ после N означает
размер блока (b 512 байт, с байт, w 2 байта, k Кбайт, M Мбайт,
G Гбайт);
7) -type C файл имеет тип c, где c есть b (блочный специальный файл), c
(символьный специальный файл), d (каталог), p (именованный канал), f
(обычный файл), l (символьная ссылка) или s (сокет);
8) [-perm] [-]восьмеричное_число режим доступа к текущему файлу в
точности равен восьмеричному_числу. Если перед восьмеричным_числом
указан знак -, то для сравнения из режима файла берутся только биты,
соответствующие битам восьмеричного_числа, равным единице;
9) -links n на файл имеется n ссылок;
10) -user имя_пользователя файл принадлежит пользователю с данным
именем. Разрешены цифровые идентификаторы пользователя;
11) -group имя_группы файл принадлежит группе с данным именем.
Разрешены цифровые идентификаторы группы.
Критерии можно объединять, используя операторы. Ниже приведены
операторы в порядке убывания их приоритета:
- унарная операция отрицания, обозначается ! (! критерий);
- логическое И, обозначается пробелом (критерий1 критерий2);
- логическое ИЛИ, обозначается -o (критерий1-o критерий2).
Когда выполняется команда find, можно выполнять различные действия над
найденными файлами.
Основные действия:
1) -exec команда \; выполнить команду. Запись команды должна
заканчиваться экранированной точкой с запятой. Строка «{}» заменяется
текущим маршрутным именем файла;
369
ЛКНВ.11100-01 90 02
2) execdir команда \; то же самое что и exec, но команда вызывается из
подкаталога, содержащего текущий файл;
3) -ok команда эквивалентно -exec за исключением того, что перед
выполнением команды запрашивается подтверждение виде
сгенерированной командной строки со знаком вопроса в конце) и она
выполняется только при ответе: y;
4) -print вывод имени файла на экран.
Примеры:
1) Найти в текущем каталоге обычные файлы (не каталоги), имя которых
начинается с символа «:
find . -type f -name "~*" -print
2) Найти в текущем каталоге файлы, измененные позже, чем файл file.bak:
find . -newer file.bak -type f -print
3) Удалить все файлы с именами a.out или *.o, доступ к которым не
производился в течение недели:
find / \( -name a.out -o -name '*.o' \) \ -atime +7 -exec rm {}
\;
4) Удалить из текущего каталога и его подкаталогов все файлы нулевого
размера, запрашивая подтверждение:
find . -size 0c -ok rm {} \;
10.5.2. Команда whereis
Команда whereis сообщает путь к исполняемому файлу программы, ее
исходным файлам (если есть) и соответствующим страницам справочного
руководства.
Опции:
1) -b вывод информации только об исполняемых файлах;
2) -m вывод информации только о страницах справочного руководства;
3) -s вывод информации только об исходных файлах.
370
ЛКНВ.11100-01 90 02
Средства архивирования файлов
Команды tar, cpio, gzip представляют собой инструменты создания
резервных копий и архивирования ФС.
При создании архива командами tar (п. 10.6.1) и gzip передается список
файлов и каталогов, указываемых как параметры командной строки. Любой
указанный каталог просматривается рекурсивно.
При создании архива с помощью команды cpio (п. 10.6.2) ей предоставляется
список объектов (имена файлов и каталогов, символические имена любых
устройств, гнезда доменов UNIX, именованные каналы).
10.6.1. Команда tar
Команда tar предназначена для преобразования файла или группы файлов в
архив без сжатия (tarfile).
Синтаксис:
tar [Опции] [АРГ]
Опции:
1) -c создает архив;
2) -x восстанавливает файлы из архива на устройстве, заданном по
умолчанию или определенном опцией f;
3) -f name создает (или читает) архив с name, где name имя файла или
устройства, определенного в /dev, например, /dev/rmt0;
4) -Z сжимает или распаковывает архив с помощью compress;
5) -z сжимает или распаковывает архив с помощью gzip;
6) -M создает многотомный архив;
7) -t создает список сохраненных в архиве файлов и выводит его на
консоль;
8) -v выводит подробную информацию о процессе.
Упаковка файлов в архив чаще всего выполняется следующей командой:
tar -cf [имя создаваемого файла архива] [упаковываемые файлы
и (или) директории]
371
ЛКНВ.11100-01 90 02
Пример использования команды упаковки архива:
$ tar -cf moi_dokumenti.tar Docs project.tex
Распаковка содержимого архива в текущий каталог выполняется следующей
командой:
tar -xf [имя файла архива]
Далее приводится пример использования команды распаковки архива:
$ tar -xf moi_dokumenti.tar
Для сжатия файлов используются специальные программы сжатия: gzip, bzip2
и 7z.
10.6.2. Команда cpio
Команда cpio предназначена для копирования файлов. Ее можно
использовать с опцией -о для создания резервных архивов и с опцией -i для
восстановления файлов. Команда получает информацию от стандартного устройства
ввода и посылает выводимую информацию на стандартное устройство вывода.
Команда cpio может архивировать любой набор файлов и специальные
файлы, хранит информацию более эффективно, чем tar, пропускает сбойные
сектора или блоки при восстановлении данных, и ее архивы могут быть
восстановлены в ОС.
Недостатком команды cpio является то, что для обновления архива следует
использовать язык программирования оболочки, чтобы создать соответствующий
сценарий.
Синтаксис:
cpio [Опции] < список-имен [> архив]
Опции:
1) -o создание архива в стандартное устройство вывода;
2) -l восстановление файлов из архива, передаваемого на стандартное
устройство ввода;
3) -t создание списка содержимого стандартного устройства ввода.
Ниже приводятся примеры использования команды cpio для решения
различных задач.
372
ЛКНВ.11100-01 90 02
Копирование файлов из каталога /home в архив home.cpio выполняется
следующим образом:
find /home/* | cpio -о > /tmp/home.cpio
Восстановление файлов из архива home.cpio с сохранением дерева каталогов
и создание списка в файле bkup.index выполняется следующим образом:
cpio -id < /tmp/home.cpio > bkup.index
Использование команды find для поиска измененных за последние сутки
файлов и сохранение их в архив home.new.cpio выполняется следующим образом:
find /home -mtime 1 -type f | cpio -o > /tmp/home.new.cpio
Восстановление файла /home/dave/notes.txt из архива home.cpio
выполняется следующим образом:
cpio -id /home/dave/notes.txt < home.cpio
Для восстановления файла с помощью cpio следует указывать его полное
имя.
Все эти команды могут выполняться автоматически путем их размещения в
файле crontab пользователя с идентификатором root.
Пример записи, выполняющей резервное копирование каталога /home
ежедневно в 01:30:
30 02 *** ls /home : cpio -о > /tmp/home.cpio
При необходимости выполнения резервного копирования более сложного
уровня можно создать соответствующий сценарий оболочки. Запуск подобных
сценариев также может быть осуществлен посредством cron.
Создание резервных копий означает определение политики создания
резервных копий для снижения потерь и восстановления информации после
возможной аварии системы.
Средства редактирования файлов
10.7.1. Текстовый редактор Vi
Текстовый редактор Vi системный редактор, назначаемый ОС по умолчанию
для работы с текстовыми файлами.
373
ЛКНВ.11100-01 90 02
Текстовый редактор Vi имеет модальный интерфейс одни и те же клавиши в
разных режимах работы выполняют разные действия.
В редакторе Vi есть несколько режимов работы:
1) командный режим перемещение по файлу, удаление текста и другие
редактирующие функции. По умолчанию, работа начинается в командном
режиме. Перейти в него из любого другого режима <ESC>, иногда два раза;
2) режим ввода ввод текста (удаление и ввод текста происходит в двух
разных режимах). Переход в режим ввода из командного режима
осуществляется командой <i>;
3) режим строчного редактора ED это специальный режим, в котором
редактору даются сложные команды. При вводе этих команд они
отображаются в последней строке экрана. Например, команда <wq>
позволяет записать файл и покинуть редактор Vi, а команда <q!> выйти из
редактора Vi без сохранения изменений. В этом режиме обычно вводятся
команды, название которых состоит из нескольких символов. Переход в
него из командного режима осуществляется командой <:>.
Далее описаны операции, которые можно произвести с файлом в командном
режиме.
Открыть (создать) файл
Управляющая команда открытия файла выглядит следующим образом:
vi <имя_файла>
Создание файла происходит при помощи той же команды, поскольку создание
файла происходит в момент сохранения.
Для открытия или создания нового файла в командном режиме необходимо
набрать:
:e filename
Перед этим нужно сохранить предыдущий файл с помощью следующих
команд:
- <:w> сохраняет файл с существующим именем;
- <:sav filename> или «Сохранить как».
374
ЛКНВ.11100-01 90 02
Навигация по файлу
Навигация по файлу происходит с помощью управляющих клавиш на
клавиатуре. Также допускается использовать клавиши быстрого перемещения:
- <^> или <0> в начало текущей строки;
- <$> в конец текущей строки;
- <w> на слово вправо;
- <b> на слово влево.
Редактирование файла
Для редактирования текста необходимо перейти в режим ввода (нажать <i>).
Основные команды редактирования:
- <R>, <i> переход в режим ввода, замена текста под курсором;
- <I> переход в режим ввода с начала текущей строки;
- <o> переход в режим ввода с новой строки под курсором;
- <O> переход в режим ввода с новой строки над курсором;
- <a> переход в режим ввода после курсора;
- <x> стирание символа под курсором;
- <X> стирание символа перед курсором;
- <dd> стирание текущей строки;
- <d<число>d> стирание выбранного числа строк, начиная с текущей;
- <yy> копирование текущей строки в неименованный буфер;
- <y<число>y> копирование выбранного числа строк, начиная с текущей в
неименованный буфер;
- <p> вставка строки из неименованного буфера под курсор;
- <P> вставка строки из неименованного буфера над курсором;
- <J> слияние текущей строки со следующей;
- <u> отмена последней команды;
- <.> повтор последней команды.
Для перехода в режим строчного редактора ED необходимо нажать
<Shift>+<:>.
375
ЛКНВ.11100-01 90 02
Запись в файл и выход из редактора
Запись в файл выполняется следующей командой:
<Esc>:w<Enter>
В случае, если файл заблокирован другим пользователем либо отсутствуют
права на запись, необходимо использовать следующую команду:
<Esc>:w!<Enter>
При попытке записи без «!» будет выдано соответствующее предупреждение.
Создать новый файл <имя_файла> и записать в него текущее содержимое:
<Esc>:w имя_файла <Enter>
В случае, если файл с таким именем уже существует, редактор выдаст
предупреждение. После успешного создания файла и осуществления записи
информации в него работа продолжится со старым файлом.
Для выхода из редактора необходимо использовать следующую команду:
<Esc>:q<Enter>
В случае, если в файл были внесены изменения, необходимо добавлять после
команды «!».
Выйти из редактора не сохраняя изменения:
<Esc>:q!<Enter>
Сохранить изменения в файле и выйти:
<Esc>:wq<Enter> или <Esc>ZZ<Enter>.
Дополнительные возможности
Текстовый редактор Vi обладает рядом дополнительных возможностей,
которые вызываются следующими командами:
- ^G показать информацию о файле;
- G перейти в конец файла;
- <number>G перейти на конкретную строку <number>;
- :<number> перейти на <number> строк вперед;
- :setnu[mber] отобразить слева нумерацию строк (:setnonu[mber]
спрятать нумерацию);
- :setwrap переносить длинные строки (:setnowrap не переносить);
376
ЛКНВ.11100-01 90 02
- :colorscheme<name> задать цветовую тему (где <name> имя темы, TAB
работает как авто-дополнение);
- /мама поиск текста «мама» в файле;
- n повторить поиск;
- :h или :help список возможной помощи (:viusage, :exusage).
Привести концы строк в файле к виду dos или unix соответственно:
:set fileformat=dos
:setfileformat=unix
Задать размер табуляции в четыре пробела:
:setts=4
10.7.2. Редактор Vim
Vim свободный режимный текстовый редактор, созданный на основе Vi.
Основной режим работы
Основной режим работы Vim предназначен для просмотра файлов, ввода
команд и перехода из него в другие режимы. В командный режим можно попасть по
нажатию клавиши <Esc>.
При нажатии клавиши «:» становится доступна командная строка Vim, в
которой вводятся следующие команды:
- команда выхода – quit либо q;
- команда сохранения write либо w, параметром которой может быть имя
файла;
- вызов справки – help либо h.
Для остальных клавиш их последовательностей) допускается задавать
любые команды либо использовать значения по умолчанию.
Перечисленные ниже команды вводятся в основном режиме (если нет
специального уточнения). Все они имеют команднострочные аналоги и могут быть
легко переопределены.
377
ЛКНВ.11100-01 90 02
Визуальный режим работы
Визуальный режим работы предназначен, в первую очередь, для выделения
блоков текста. Переход в визуальный режим выполняется с помощью следующих
сочетаний клавиш:
- <v> для посимвольного выбора;
- <Shift>+<v> для построчного выбора;
- <Ctrl>+<v> для блочного выбора.
В режиме посимвольного выделения (при переходе по клавише «v»)
допускается оперировать следующими сущностями:
- слово («w»);
- предложение («s»);
- параграф («p»);
- блок («b»).
Выделение при этом необходимо начинать с позиции курсора («a»), или же с
начала блока («i»). Например, выделение текущего блока частка, ограниченного
парными элементами) можно произвести следующим образом:
<Esc>vib
Копирование в буфер выделенного текста осуществляется по «y», вырезание
по «d» а вставка, соответственно, «p».
Режим редактирования
Режим редактирования предназначен для ввода текста. Переключение на
режим редактирования осуществляется нажатием клавиши <Insert>.
Переходы
Для перехода на строку с номером n используется команда G. Так для
перехода к началу текста нужно набрать 1G, для сотой строки 100G, а для перехода в
конец текста – $G.
Для перехода на n символов в нужную сторону используются клавиши
навигации на клавиатуре. То есть для перехода на 1000 символов вниз нужно
набрать «1000» и нажать клавишу «↓».
378
ЛКНВ.11100-01 90 02
Для перемещения по тексту допускается использовать следующие команды:
- «(», «)» – для перемещения по предложениям;
- «{», «}» – для параграфов;
- «[[«, «]]» для функций;
- «%» переход к парной скобке;
- «”» – к предыдущему положению;
- <Ctrl>+<O>, <Ctrl>+<I> соответственно, назад и вперед по истории
переходов.
Метки
Используются для отметки позиции (<буква>-метка, где меткой является
любая буква) и быстрого к ней перехода (<`>-метка). Метки нижнего регистра
действительны в пределах данного файла, метки верхнего регистра действуют во
всех открытых файлах.
Список всех меток можно получить командой marks.
Регистры
Регистр отмечается видом <"буква>. К нему применимы все стандартные
действия: копирование в него ("<метка>y), вырезание ("<метка>d), и вставка из него
("<метка>p), можете вместо p использовать [p,]p для вставки соответственно
перед, или после курсора).
В режиме редактирования вставка из регистра осуществляется по
<Ctrl>+R<метка>. Для добавления данных в регистр используйте заглавную метку.
Также допускается писать в регистр, воспользовавшись командой «q<метка>»
и завершив запись по q. Таким образом сохраняется макрос, выполнить который
можно по «@<метка>».
Регистры с метками «*» и «+» совпадают с X-Window clipboards, «%»
соответствует редактируемому файлу. Для просмотра содержимого всех регистров
нужно воспользоваться командой :registers, либо :reg метка1метка2... для
просмотра только выбранных регистров.
379
ЛКНВ.11100-01 90 02
Фолды
Фолды предназначены для сокрытия строк, ненужных в данный момент.
По умолчанию фолды активированы в режиме ручной расстановки. Все
команды для работы с фолдами начинаются с z:
- создание фолд выполняется командой zf;
- открытие фолд производится командой zo либо нажатием навигационной
стрелки «→»;
- закрытие кода в существующий фолд – по zc.
Для автоматического подключения фолд по отношению к табуляции
необходимо добавить в файл настроек следующую строку:
set foldmethod=indent
Сессии
Сессии предназначены для сохранения текущего состояния и настройки
редактора таким образом, что при следующем запуске работа продолжится с того же
места.
Сессии создаются следующей командой:
:mksession /path/to/Session.vim
Чтение сессий выполняется командой:
:so /path/to/Session.vim
Для сохранения текущего контекста (текст, положение курсора в коде,
текущая расстановка фолдов) нужно использовать команду :mkview, а для чтения
:loadview.
Автоматическое сохранение и чтение контекста при начале и окончании
редактирования файла может быть реализовано следующим кодом (применяется для
всех файлов, имеющих точку в имени):
au BufWinLeave *.* mkview
au BufWinEnter *.* silent loadview
Поиск и замена
Поиск по тексту осуществляется следующими командами:
- / поиск по регулярному выражению вперед;
380
ЛКНВ.11100-01 90 02
- ? поиск по регулярному выражению в обратном направлении;
- n продолжение поиска далее по тексту;
- N повторение предыдущего запроса;
- # либо * поиск слова под установленным курсором.
Для поиска с заменой рекомендуется использовать следующую команду:
%s/что/на что/gic
где % означает работу со всем текстом (а не с текущей строкой), g глобальная
замена не первое совпадение), i игнорирование регистра, а c подтверждение
каждого действия.
Автодополнение, Отмена, Смена регистра, Повтор
Автодополнение производится по содержимому данного файла, а также
указанных в переменной dictionary по нажатию клавиш ``.
Для отмены предыдущих действий в режиме автодополнения используется u.
Для смены регистра выделенного участка (или буквы под курсором)
используется ~. При этом команда U принудительно устанавливает верхний
регистр, а u нижний.
Для повтора прошлой команды используется символ «.».
Конфигурация
Файл конфигурации используется для настройки различных аспектов
поведения и внешнего вида Vim. Комментарии в этом файле начинаются с
символа «"» (двойная кавычка) и продолжаются до конца строки. Основным
конфигурационным файлом является ~/.vimrc. Активация русского шрифта в GUI-
режиме, плюс выбор темы для обоих режимов осуществляется, например,
следующим кодом:
if has("gui_running")
colorscheme candy
set guifont=-cronyx-courier-medium-r-normal-*-*-120-*-*-m-*-koi8-
r
endif
if !has("gui_running")
381
ЛКНВ.11100-01 90 02
colorscheme elflord
endif
В файл конфигурации можно добавить привычное поведение и привычные
сочетания клавиш:
"Выход по F10
nmap <F10> :q<CR>
imap <F10> <ESC>:q<CR>
"Сохранение по F2
nmap <F2> :w<CR>
imap <F2> <ESC>:w<CR>i<Right>
"Компиляция по F9
nmap <F9> :make<CR>
imap <F9> <ESC>:make<CR>
В Vim присутствует подробная документация по настройкам – :options.
Основным конфигурационным файлом является ~/.vimrc. Активация
русского шрифта в GUI-режиме и выбор темы для обоих режимов осуществляется
следующим образом:
if has("gui_running")
colorscheme candy
set guifont=-cronyx-courier-medium-r-normal-*-*-120-*-*-m-*-koi8-
r
endif
if !has("gui_running")
colorscheme elflord
endif
Быстрые клавиши:
"Выход по F10
nmap <F10> :q<CR>
imap <F10> <ESC>:q<CR>
"Сохранение по F2
nmap <F2> :w<CR>
imap <F2> <ESC>:w<CR>i<Right>
"Компиляция по F9
nmap <F9> :make<CR>
imap <F9> <ESC>:make<CR>
382
ЛКНВ.11100-01 90 02
Средства настройки отложенного исполнения команд
10.8.1. Служба crond
Для регулярного запуска команд в ОС Альт 8 СП используется служба crond.
Служба crond запускается при загрузке системы и проверяет очередь заданий
at и заданий пользователей в файлах crontab. При запуске, служба crond сначала
проверяет каталог /var/spool/cron на наличие файлов crontab, файлы crontab
имеют имена пользователей, соответствующие именам пользователей из
/etc/passwd. Каждый пользователь может иметь только один файл crontab, записей
в файле может быть несколько.
В случае, если задание не было обнаружено, crond переходит в режим
ожидания на одну минуту и затем вновь приступает к поискам команды, которую
следует запустить в этот момент. Большую часть времени служба crond проводит в
режиме ожидания, и для ее работы используется минимум системных ресурсов.
Чтобы определить список задач для cron, используется команда crontab.
Crontab
Утилита crontab управляет доступом пользователя к службе crond путем
копирования, создания, выдачи содержимого и удаления файлов crontab, таблиц
заданий. При вызове без опций, crontab копирует указанный файл или стандартный
входной поток (если файл не указан) в каталог, в котором хранятся
пользовательские таблицы заданий cron. Каждый пользователь может иметь свои
собственные файлы crontab, и, хотя эти файлы доступны в /var/spool/cron, они не
предназначены для редактирования напрямую.
Синтаксис:
crontab [имя_файла]
crontab [ -elr ] имя_пользователя
Опции:
1) -e редактирует копию файла crontab текущего пользователя или создает
пустой файл для редактирования, если соответствующего файла crontab не
существует. Когда редактирование завершается, файл устанавливается в
383
ЛКНВ.11100-01 90 02
качестве пользовательского файла crontab. Переменная среды EDITOR
задает редактор, вызываемый при указании опции -e. Все задания в файле
crontab должны создаваться с помощью утилиты crontab;
2) -l отображает текущий файл crontab на стандартный вывод;
3) -r удаляет текущий файл crontab.
Контроль доступа к crontab
Доступ пользователя к crontab разрешен, если:
- имя пользователя указано в файле /etc/cron.d/cron.allow;
- файл /etc/cron.d/cron.allow не существует и имя пользователя не
указано в файле /etc/cron.d/cron.deny.
Доступ пользователя к crontab не разрешен, если:
- файл /etc/cron.d/cron.allow существует и имя пользователя в нем не
указано;
- файл /etc/cron.d/cron.allow не существует и имя пользователя указано в
файле /etc/cron.d/cron.deny.
Правила разрешения и запрещения выполнения заданий применимы к
пользователю root, только если существуют файлы allow/deny.
В файлах allow/deny надо задавать по одному имени пользователя в строке.
Формат записи файла crontab
Редактировать crontab пользователя можно используя команду:
crontab -e
Файл crontab состоит из строк, содержащие шесть полей. Поля разделяются
пробелами или символами табуляции. Первые пять полей целочисленные
шаблоны, задающие:
- минуту (0 – 59);
- час (0 – 23);
- день месяца (1 31);
- месяц года (1 – 12);
- день недели (0 – 6, причем 0=воскресенье).
384
ЛКНВ.11100-01 90 02
Каждый из этих шаблонов может представлять собой звездочку (которая
обозначает все допустимые значения) или список элементов через запятые. Элемент
число или два числа через дефис (что обозначает закрытый интервал). Обратите
внимание, что дни можно указывать в двух полях (день месяца и день недели). Оба
поля учитываются, если заданы в виде списка элементов (запись: 30 4 1,15 * 5
приведет к выполнению команды в 4:30 пополуночи первого и пятнадцатого числа
каждого месяца, плюс в каждую пятницу). При указании диапазона можно
пропускать некоторые его значения, указав шаг в форме «/число». Например:
«0-23/2» для поля час означает запуск команды через два часа. Шаг можно
указывать также после звездочки: «каждые два часа» соответствует значению «*/2».
Для задания полей месяц и день_недели можно использовать имена. Указывайте
первые три буквы нужного дня или месяца на английском, регистр букв не имеет
значения. Диапазоны или списки имен не разрешены.
Служба crond запускает команды, когда значения полей минута, час, месяц и
хотя бы одно из полей число и день_недели, совпадают с текущим временем.
Служба crond сверяет директивы с текущим временем раз в минуту.
Вместо первых пяти полей допустимо указание одного из восьми
специальных триггеров:
- @reboot выполнить команду один раз, при запуске cron;
- @yearly выполнять команду каждое 1 января, «0 0 1 1 *»;
- @annually эквивалентно @yearly;
- @monthly выполнять команду в начале каждого месяца, «0 0 1 * *»;
- @weekly выполнять команду каждое воскресенье, «0 0 * * 0»;
- @daily выполнять команду в полночь, «0 0 * * *»;
- @midnight эквивалентно @daily;
- @hourly выполнять команду раз в час, «0 * * * *».
Шестое поле в строке файла crontab строка, выполняемая командным
интерпретатором в указанные моменты времени. Символ % (процент) в этом поле,
если он не замаскирован «\» (обратной косой), преобразуется в символ новой
строки.
385
ЛКНВ.11100-01 90 02
Только первая строка (до символа % или до конца строки) поля команды
выполняется командным интерпретатором. Другие строки передаются команде как
стандартный входной поток. Пустые строки, ведущие пробелы и символы
табуляции игнорируются. Строки, начинающиеся с символа («#») считаются
комментариями и игнорируются. Комментарии не допускаются в тех же строках, где
расположены команды cron, так как они будут распознаны как части команды. По
этой же причине комментарии не разрешены в строках, задающих переменные
среды.
Строка-директива представляет собой либо задание переменной среды, либо
команду cron.
Демон crond предоставляет каждому командному интерпретатору
стандартную среду, задавая переменные HOME, LOGNAME, SHELL(=/bin/sh), TZ и
PATH. Стандартное значение переменной PATH для пользовательских заданий cron
/usr/bin, а для заданий cron пользователя root – /usr/sbin:/usr/bin.
Если стандартный выходной поток и стандартный поток ошибок команд не
перенаправлены, любые сгенерированные результаты или сообщения об ошибках
будут отправлены пользователю по электронной почте.
Примеры
Далее приведены примеры использования таблиц crontab в ходе
администрирования ОС Альт 8 СП.
Пример 1
$ crontab -e
#minute (0-59),
#| hour (0-23),
#| | day of the month (1-31),
#| | | month of the year (1-12),
#| | | | day of the week (0-6 with 0=Sunday).
#| | | | | commands
# Каждые 5 минут записывать результат вывода
# команды date в файл date.txt в домашнем каталоге
*/5 * * * * date > ~/date.txt
# Выполнять задание в 18 часов 7 минут 13 числа
# каждого месяца и по пятницам
7 18 13 * 5 /home/www/myscript.pl
386
ЛКНВ.11100-01 90 02
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.pl
crontab: installing new crontab
Вывод crontab: installing new crontab означает, что новый crontab
успешно установлен.
Пример 2
# использовать для запуска команд /bin/sh
# не обращая внимание на то, что написано в /etc/passwd
SHELL=/bin/sh
# отправлять вывод выполнения команд по электронной
# почте пользователю 'paul'
# не обращая внимания на то, чей это crontab
MAILTO=paul
#
# запускать пять минут пополуночи, каждый день
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# запускать в 14:15 первого числа каждого месяца
15 14 1 * * $HOME/bin/monthly
# запускать в 22.00 каждый рабочий день
0 22 * * 1-5 mail -s "Уже 10 вечера"
23 0-23/2 * * * echo "запуск в 00:23, 2:23, 4:23 ..., каждый
день"
5 4 * * sun echo "запуск в 4:05 каждое воскресенье"
Дополнительные возможности таблиц
Таблицы crontab обладают следующими дополнительными возможностями:
- при задании дня недели 0 и 7 соответствуют воскресенью;
- допускается указывать одновременно и списки, и диапазоны в одном и том
же поле;
- допускается указывать диапазоны с пропусками например, «1-9/2»
соответствует «1,3,5,7,9»;
- допустимо указание месяцев или дней недели по имени;
- в crontab разрешено задавать переменные среды вручную;
- вывод команд отсылается почтой владельцу файла crontab, а также может
отправляться кому-либо другому, либо отправка может быть отключена
(функция не поддерживается в SysV);
- любая из команд с префиксом «@» может заменять первые пять полей
файла.
387
ЛКНВ.11100-01 90 02
10.8.2. Команда at
Для запуска одной или более команд в заранее определенное время
используется команда at. В ней можно определить время и (или) дату запуска той
или иной команды.
Команда at требует двух (или большего числа) параметров как минимум,
следует указать время запуска и какая команда должна быть запущена. Параметры
запуска с помощью команды at указываются в виде списка строк, следующих за ней.
Ввод каждой строки завершается нажатием клавиши <Enter>. По окончании ввода
всей команды нажать клавиши <Ctrl>+<D> для ее завершения.
Например, если необходимо запустить команды в 1:23, следует ввести:
at 1:23
lpr /usr/sales/reports/.
echo "Files printed"
В указанном примере будут распечатаны все файлы каталога
/usr/sales/reports, и пользователю будет выведено сообщение на экран
монитора.
После ввода всей команды отобразится следующая запись:
job 756603300.а at Tues Jan 21 01:23:00 2007
Это означает, что указанные команды будут запущены, как и было задано, в
1:23. В сообщении также приведен идентификатор задания (756603300.а), который
понадобится, если необходимо отменить задание:
at -d 756603300.а
В случае, если список команд находится в файле, например, getdone, и
необходимо запустить все перечисленные в нем команды в 10:00, следует
воспользоваться одной из двух форм команды at:
at 10:00 < getdone либо at 10:00 -f getdone
Обе приведенные команды эквивалентны. Разница заключается в том, что в
первой команде используется механизм перенаправления потоков ввода-вывода, во
второй команде – дисковый файл.
388
ЛКНВ.11100-01 90 02
Кроме времени, в команде at может быть также определена дата:
at 17:00 Jan 24
lp /usr/sales/reports/
echo "Files printed"
Задания, определяемые администратором, помещаются в очередь, которую
ОС периодически просматривает. Администратору необязательно находиться в
системе для того, чтобы at отработала задания, команда будет работать в фоновом
режиме.
Для того чтобы просмотреть очередь заданий, нужно ввести следующую
команду:
at -l
В случае если предыдущие примеры были запущены, то будет выведено:
job 756603300.a at Sat Dec 20 01:23:00 2007 job 756604200.a at
Sat Jan 24
17:00:00 2008
Администратор видит только свои задания по команде at.
Для удаления задания из очереди следует запустить at с опцией -d и номером
удаляемого задания следующим образом:
at -d 756604200.а
Далее представлены варианты использования команды at.
Выполнить задание во время hh:mm в 24-часовом формате:
at hh:mm
Выполнить задание во время hh:mm в 24-часовом формате в соответствующий
день:
at hh:mm месяц день год
Вывести список заданий в очереди (псевдоним команды – atq):
at -l
Выполнить задание через определенное время, которое задано параметром
count в соответствующих единицах – неделях, днях, часах или минутах:
at now+count time-units
389
ЛКНВ.11100-01 90 02
Удалить задание с идентификатором job_ID из очереди (псевдоним команды
atrm):
at -d job_ID
Администратор может применять все эти команды. Для других пользователей
права доступа к команде at определяются файлами /etc/at.allow и /etc/at.deny.
В случае если, существует файл /etc/at.allow, то применять команду at могут
только перечисленные в нем пользователи. В случае, если же такого файла нет,
проверяется наличие файла /etc/at.deny, в котором отражено, кому запрещено
пользоваться командой at. Также если ни одного из файлов, описывающих доступ к
«alt», нет, то команда at доступна только пользователю с идентификатором root.
10.8.3. Команда batch
Команда batch позволяет ОС самой решить, когда наступает подходящий
момент для запуска задачи например, когда система находится в состоянии
наименьшей загрузки, и процессы запускаются в фоновом режиме.
Формат команды batch представляет собой список заданий для выполнения,
следующих в строках за ней, заканчивается список комбинацией клавиш
<Ctrl>+<D>. Также допускается поместить список команд в файл и перенаправить
его на стандартный ввод команды batch.
Например, для сортировки набора файлов, печати результатов и вывода
сообщения нужно ввести следующие команды:
batch
sort /usr/sales/reports ; lp
echo "Files printed"
В ответ на это система выдаст:
job 7789001234.b at Fri Feb 21 11:43:09 1999
П р и м е ч а н и е . Дата и время, приведенные в сообщении, соответствуют
нажатию клавиш <Ctrl>+<D>.
390
ЛКНВ.11100-01 90 02
Служба передачи файлов FTP
В ОС Альт 8 СП передача файлов обеспечивается с помощью программы lftp.
Данная команда реализует протокол передачи файлов FTP. Для копирования файлов
необходимо знать имя и пароль пользователя, которому принадлежат файлы на
сервере службы FTP.
Для запуска lftp необходимо в консоли ввести команду:
lftp
После появления приглашения lftp :~> становятся доступными для
использования внутренние команды lftp.
Основные внутренние команды lftp:
- open подключение к серверу;
- user идентификация при удаленном подключении;
- close отключение от сервера;
- ls просмотр списка файлов;
- lcd смена локального каталога;
- mkdir создание нового каталога;
- lpwd просмотр имени каталога на локальном компьютере;
- get копирование файла с сервера;
- put копирование файла на сервер;
- help просмотр списка доступных команд и справки по ним;
- exit выход из lftp.
Защищенный интерпретатор команд SSH
Защищенный интерпретатор команд SSH клиент-серверная система для
организации защищенных туннелей для удаленного доступа к другим компьютерам.
SSH реализует соединение с удаленным компьютером, которое позволяет
защититься от следующих угроз:
- прослушивание данных, передаваемых по этому соединению;
- манипулирование данными на пути от клиента к серверу;
391
ЛКНВ.11100-01 90 02
- подмена клиента либо сервера путем манипулирования IP-адресами, DNS
либо маршрутизацией.
Для создания защищенного туннеля используется программа ssh.
Инициировать соединение с сервером можно командой:
ssh <имя_клиента>@IP_addr
где IP_addr IP-адрес компьютера с запущенной службой sshd.
При использовании идентификации по паролю на сервере должна
существовать учетная запись с указанным именем клиента.
Параметры, относящиеся к способу аутентификации, а также все прочие
настройки ssh указываются в конфигурационном файле /etc/ssh/ssh_config.
Конфигурационные файлы разбиты на разделы, установки которых относятся
к отдельному компьютеру, группе компьютеров или ко всем компьютерам, при этом
установки разных разделов могут конфликтовать друг с другом. Предпочтение в
данном случае будет отдаваться тому параметру, который указан раньше.
Средство управления процессами xinetd
Средство управления процессами xinetd (далее сервер xinetd) выполняет
функции управления процессами, которые обеспечивают работу сервисов
подключения к локальным и глобальным сетям.
Сервер xinetd представляет собой единственный процесс, который выполняет
прослушивание всех портов на наличие запросов от других сервисов,
перечисленных в файле конфигурации xinetd.conf (расположен в директории
/etc): когда на порт поступает запрос, сервер xinetd запускает соответствующий
сервер.
Сервисы, перечисленные в конфигурационном файле сервера xinetd, можно
разделить на две группы.
Сервисы из первой группы («multi-threaded») на каждый новый запрос
запускают новый серверный процесс. Для таких сервисов сервер xinetd продолжает
прослушивать сеть на соответствующем порту, ожидая новых запросов на
порождение нового процесса.
392
ЛКНВ.11100-01 90 02
В другую группу single-threaded») включаются сервисы службы, которые в
состоянии обрабатывать новые соединения. В ходе работы с ними сервер xinetd
прекращает обработку новых запросов до тех пор, пока серверный процесс не
завершит свою работу. Сервисы в этой группе также обычно относят к группе
«datagram-based», работающих с дейтаграммными протоколами передачи данных
формата UDP.
Сервер xinetd позволяет сохранять системные ресурсы за счет контроля
запуска серверных процессов. Полностью соответствуя назначению запускать
требуемые сервисы, сервер xinetd осуществляет также функции контроля доступа и
регистрации событий. Кроме того, сервер xinetd не ограничен сервисами,
перечисленными в файле /etc/services. Также допускается использовать сервер
xinetd для запуска сервисов специального назначения.
Синтаксис:
xinetd [опции]
Опции:
- -d активирует режим отладки. Указание этой опции приводит к большому
количеству отладочных сообщений, которые делают возможным
использование отладчика на xinetd;
- -syslog syslog_facility разрешает протоколирование создаваемых
xinetd сообщений через syslog с заданным syslogfacility. Поддерживаются
следующие имена facility: daemon, auth, user, local[0-7] (назначение
можно просмотреть в syslog.conf). Данная опция неэффективна в режиме
отладки, так как все необходимые сообщения отправляются на терминал;
- -filelog файл_журнала сообщения, создаваемые xinetd будут
помещаться в указанный файл. Сообщения всегда добавляются к уже
существующему файлу. Если файл не существует, то он будет создан.
Данная опция неэффективна в режиме отладки, так как все необходимые
сообщения отправляются на терминал;
- -f файл_настроек задает файл, который xinetd использует для настройки.
По умолчанию это /etc/xinetd.conf;
393
ЛКНВ.11100-01 90 02
- -pidfile pid_файл в этот файл записывается идентификатор процесса.
Данная опция неэффективна в режиме отладки;
- -stayalive xinetd будет оставаться запущенным, даже если не задано
никаких служб;
- -loop rate устанавливает верхнюю величину цикла, по которой
определяется, что служба работает с ошибками и по которой она
отключается. Величина цикла задается в терминах количества серверов в
секунду, которое может быть запущено в обработку (fork). Для этой опции,
корректное значение определяется скоростью вашей машины. По
умолчанию равно 10;
- -reuse xinetd будет устанавливать опцию сокета SO_REUSEADDR перед
привязкой сокета службы к какому-либо интернет адресу. Это позволяет
привязать адрес, даже если есть программа, которая уже использует его,
например, в том случае, если некоторые серверы были запущены во время
предыдущего запуска xinetd и еще не завершили свою работу. Данная опция
не оказывает влияния на службу RPC;
- -limit proc_limit устанавливает ограничение на количество
одновременно запущенных процессов, которые может запустить xinetd. Ее
назначение предотвращать переполнение таблицы процессов;
- -logprocs limit устанавливает ограничение на количество
одновременно запущенных серверов на один идентификатор удаленного
пользователя;
- -shutdownprocs limit устанавливает ограничение на количество
одновременно запущенных серверов для завершения работы службы;
- -version вывести информацию о версии xinetd;
- -cc interval xinetd будет выполнять периодические проверки своего
внутреннего состояния каждые interval секунд.
394
ЛКНВ.11100-01 90 02
Опции syslog и filelog являются взаимно исключающими. Если ни одна из
них не задана, то по умолчанию используется syslog с daemonfacility. Не путайте
сообщения xinetd с сообщениями, которые создаются службами. Последние
протоколируются только если это задано в файле с настройками.
Сервер xinetd выполняет определенные действия при получении
определенных сигналов. Действия, ассоциированные с соответствующими
сигналами, могут быть переопределены путем редактирования config.h и
последующей компиляции.
Сигналы:
- SIGHUP заставляет выполнить жесткую перенастройку, означающую, что
xinetd перечитает файл с настройками и завершит работу серверов для тех
служб, которые больше не доступны. Управление доступом выполняется
снова на уже запущенных серверах через проверку удаленных
подключений, времени доступа и копий серверов. Если количество копий
серверов уменьшается, то некоторые произвольно выбранные сервера будут
убиты, чтобы соблюсти ограничение; это случится после завершения
работы тех серверов, которые попадают под ограничение доступа с
удаленных адресов или ограничение времени доступа. Также, если флаг
INTERCEPT был сброшен и происходит его установка, то будет завершена
работа любых запущенных серверов для служб с этим флагом. Цель такого
поведения убедиться, что после жесткой перенастройки не будет
запущено серверов, которые могут принимать пакеты с тех адресов,
которые не соответствуют критериями управления доступом;
- SIGQUIT приводит к завершению работы;
- SIGTERM завершает работу всех запущенных серверов перед
завершением работы xinetd;
- SIGUSR1 приводит к снятию дампа внутреннего состояния (по
умолчанию файл дампа это /var/run/xinetd.dump; чтобы изменить данное
имя файла нужна правка config.h и перекомпиляция);
- SIGIOT производит внутреннюю проверку того, что структуры данных,
используемые программой не повреждены. Когда проверка завершится,
395
ЛКНВ.11100-01 90 02
xinetd сгенерирует сообщение, которое скажет успешно прошла проверка
или нет.
При реконфигурации файлы журналов закрываются и вновь открываются. Это
позволяет удалять старые файлы журналов.
Работа со смарт-картами
Для настройки работы со смарт-картами необходимо установить
дополнительные пакеты:
1) синхронизировать файлы описаний пакетов с источником пакетов,
выполнив команду:
# apt-get update
2) установить пакеты для поддержки программно-аппаратного комплекса
электронно-цифровой подписи и хранения ключевой информации
«RUTOKEN», выполнив команду:
# apt-get install opensc pcsc-lite pam_pkcs11 librtpkcs11ecp
pcsc-lite-ccid openssl-engine_pkcs11 nss-utils
И для рабочей станции пакет: lightdm-gtk-greeter.
10.12.1. Двухфакторная аутентификация
На токене должны присутствовать ключевая пара и сертификат.
Для генерирования ключевой пары на токене и создания самоподписанного
сертификата, используя openssl, необходимо выполнить следующие действия:
1) запустить сервис поддержки смарт-карт, выполнив команду:
# systemctl start pcscd
2) сгенерировать ключевую пару, выполнив команду:
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen
--key-type rsa:2048 -l --id 45
3) сгенерировать сертификат в формате PEM:
# openssl
OpenSSL> engine dynamic pre
SO_PATH:/usr/lib64/openssl/engines/libpkcs11.so -pre ID:pkcs11
-pre LIST_ADD:1 -pre LOAD -pre
MODULE_PATH:/usr/lib64/librtpkcs11ecp.so
OpenSSL> req -engine pkcs11 -new -key 45 -keyform engine -x509
-out CA.pem -text
396
ЛКНВ.11100-01 90 02
4) конвертировать сертификат из формата PEM в формат CRT:
OpenSSL> x509 -in CA.pem -out cert.crt -outform DER
5) сохранить сертификат на аутентифицирующий носитель:
# pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -l -y cert
-w cert.crt --id 45
Для настройки двухфакторной аутентификации необходимо выполнить
следующие действия:
1) отредактировать файл /etc/security/pam_pkcs11/pam_pkcs11.conf для
установки аутентификации по «RUTOKEN» следующим образом:
- закомментировать строку # use_pkcs11_module = opensc; и
добавить строку use_pkcs11_module = rutoken;:
# use_pkcs11_module = opensc;
use_pkcs11_module = rutoken;
- после строки use_pkcs11_module = rutoken; добавить модуль
rutoken:
use_pkcs11_module = rutoken;
pkcs11_module rutoken {
ca_dir = /etc/security/pam_pkcs11/cacerts;
crl_dir = /etc/security/pam_pkcs11/crls;
module = /usr/lib64/librtpkcs11ecp.so;
cert_policy = subject;
description = "Rutoken ECP";
slot_description = "none";
}
2) включить сервисы поддержки смарт-карт, выполнив команды:
# systemctl enable pcscd
# systemctl start pcscd
3) включить системную аутентификацию по смарт-картам в графическом
интерфейсе, выполнив команду:
# control system-auth pkcs11
4) добавить информацию об удостоверяющем центре на машину (файл о
сертификате создан в начальных условиях):
cp CA.pem /etc/security/pam_pkcs11/cacerts/
certutil -A -n 'Root CA' -t 'CT,C,C' -a -d /etc/pki/nssdb/ -i
./CA.pem
397
ЛКНВ.11100-01 90 02
5) добавить информацию о сертификате в домашний каталог пользователя:
mkdir /home/user/.eid/
cat CA.pem > /home/user/.eid/authorized_certificates
6) для возможности аутентификации по сертификату в консоли необходимо в
файл /etc/pam.d/login вначале добавить строку:
auth [success=done authinfo_unavail=ignore ignore=ignore
default=die] pam_pkcs11.so
Поддержка файловых систем
Файловая система представляет из себя набор правил, определяющих то, как
хранятся и извлекаются документы, хранящиеся на устройстве
Проверка поддержки файловых систем ext2, ext3, ext4, iso9660, fat16, fat32,
ntfs:
1) создать раздел объемом менее 4 Гбайт на flash-накопителе (например,
/dev/vdс1).
2) для создания iso файла установить пакет genisoimage:
# apt-get install genisoimage
3) создать директорию /mnt/filesystem, в которую будет монтироваться
раздел:
# mkdir /mnt/filesystem
4) отформатировать раздел в проверяемую файловую систему:
- для ext2:
# mkfs.ext2 /dev/vdc1
- для ext3:
# mkfs.ext3 /dev/vdc1
- для ext4:
# mkfs.ext4 /dev/vdc1
- для fat16:
# mkfs.fat -F 16 /dev/vdc1
- для fat32:
# mkfs.fat -F 32 /dev/vdc1
398
ЛКНВ.11100-01 90 02
- для ntfs:
# mkfs.ntfs /dev/vdc1
- для iso9660 – создать iso-файл из каталога /etc:
# mkisofs -r -jcharset koi8-r -o /root/cd.iso /etc
5) для проверки поддержки файловых систем ext2, ext3, ext4, fat16, fat32, ntfs:
- примонтировать раздел с файловой системой в каталог
/mnt/filesystem:
# mount /dev/vdc1 /mnt/filesystem
- проверить возможность записи файла на текущую файловую систему:
# echo test_content > /mnt/filesystem/test.fs
- проверить командой:
# ls -l /mnt/filesystem/test.fs
-rw-r--r--. 1 root root 13 май 23 20:10
/mnt/filesystem/test.fs
- проверить возможность чтения файла с текущей файловой системой:
# cat /mnt/filesystem/test.fs
6) для проверки поддержки файловой системы iso9660 смонтировать
созданный iso файл в каталог /mnt/filesystem/ (файл образа диска будет
примонтирован в режиме «только для чтения»):
# mount -o loop,ro /root/cd.iso /mnt/filesystem/
Поддержка сетевых протоколов
10.14.1. SMB
Samba – пакет программ, которые позволяют обращаться к сетевым дискам и
принтерам на различных ОС по протоколу SMB/CIFS. Имеет клиентскую и
серверную части. См. подробнее п. 9.1.
10.14.2. NFS
Настройка сервера NFS
П р и м е ч а н и е . Должен быть установлен пакет nfs-server:
# apt-get install nfs-server
399
ЛКНВ.11100-01 90 02
Запустить NFS-сервер и включить его по умолчанию:
# systemctl start nfs
# systemctl enable nfs
В файле /etc/exports следует указать экспортируемые каталоги (каталоги,
которые будет разрешено монтировать с других машин):
/mysharedir ipaddr1(rw)
Например, разрешить монтировать /home на сервере:
# vim /etc/exports
/home 192.168.88.0/24 (no_subtree_check,rw)
где 192.168.88.0/24 – разрешение экспорта для подсети 192.168.88.X;
rw – разрешены чтение и запись.
Подробную информацию о формате файла можно посмотреть командой:
man exports
После внесения изменений в файл /etc/exports необходимо выполнить
команду:
# exportfs r
Проверить список экспортируемых файловых систем можно, выполнив
команду:
# exportfs
/home 192.168.8.0/24
Использование NFS
Подключение к NFS-серверу можно производить как вручную, так и настроив
автоматическое подключение при загрузке.
Для ручного монтирования необходимо:
- создать точку монтирования:
# mkdir /mnt/nfs
- примонтировать файловую систему:
# mount -t nfs 192.168.88.218:/home /mnt/nfs
где:
а) 192.168.88.3 – IP-адрес сервера NFS;
б) /mnt/nfs – локальный каталог куда монтируется удаленный каталог;
400
ЛКНВ.11100-01 90 02
- проверить наличие файлов в /mnt/nfs:
# ls al /mnt/nfs
Должен отобразиться список файлов каталога /home расположенного на
сервере NFS.
Для автоматического монтирования к NFS-серверу при загрузке необходимо
добавить следующую строку в файл /etc/fstab:
192.168.88.218:/home /mnt/myshare nfs intr,soft,nolock,_netdev,x-
systemd.automount 0 0
П р и м е ч а н и е . Прежде чем изменять /etc/fstab, попробуйте
смонтировать вручную и убедитесь, что все работает.
10.14.3. FTP
В состав дистрибутива ОС Альт 8 СП входит vsftpd (Very Secure FTP Daemon)
полнофункциональный FTP-сервер, позволяющий обслуживать как анонимные
запросы, так и запросы от пользователей, зарегистрированных на сервере и
имеющих полноценный доступ к его ресурсам.
Для установки vsftpd необходимо выполнить следующую команду:
# apt-get install vsftpd
Организация анонимного доступа на основе vsftpd
В конфигурационном файле сервера /etc/vsftpd.conf за разрешение
анонимного доступа к серверу vsftpd отвечает параметр anonymous_enable,
который по умолчанию имеет значение YES, т. е. анонимный доступ к серверу
разрешен.
При установке vsftpd в системе автоматически создается учетная запись
псевдопользователя «novsftpd». Это регистрационное имя не должно использоваться
кем-либо для входа в систему, поэтому реальный пароль для него не задается.
Вместо командного интерпретатора указывается /dev/null.
При установке пакета anonftp автоматически создается каталог, который будет
корневым при анонимном подключении, /var/ftp с необходимыми правами
доступа. Владельцем этого каталога является пользователь root.
401
ЛКНВ.11100-01 90 02
Группой-владельцем каталога является специальная группа ftpadmin,
предназначенная для администраторов FTP-сервера.
Если требуется создать в области для анонимного доступа дерево каталогов,
следует в каталоге /var/ftp/pub установить права доступа 2775. При этом
анонимным пользователям FTP-сервера будет предоставлен доступ на чтение к
файлам, находящимся в каталоге. Владельцем каталога следует назначить
пользователя root. В качестве группы, которой принадлежит /var/ftp/pub, следует
назначить группу ftpadmin, включив в нее пользователей, которым необходимо
изменять содержимое каталогов FTP-сервера.
П р и м е ч а н и е . Не рекомендуется работать с содержимым от имени
пользователя с идентификатором root.
Чтобы разрешить анонимным пользователям сервера доступ на запись,
необходимо создать каталог /var/ftp/incoming с правами доступа 3773 (владелец
«ftpadmin», группа-владелец «ftpadmin»), тем самым предоставив анонимным
пользователям право записи в этот каталог, но лишив их возможности просмотра
его содержимого.
Доступ к серверу зарегистрированных пользователей
Чтобы предоставить доступ к FTP-серверу для локально зарегистрированных
пользователей, необходимо внести изменения в конфигурационный файл
/etc/vsftpd.conf. Для этого достаточно удалить знак комментария перед
директивой local_enable=YES. В такой конфигурации клиенты FTP-сервера
получат доступ к любым каталогам файловой системы, для которых такой доступ
разрешен исходя из прав соответствующих локальных пользователей. Это могут
быть как домашние каталоги пользователей, так и системные каталоги. Если в
настройках vsftpd разрешена запись, клиенты получат и все права на запись,
которыми располагают эти пользователи.
Сервер vsftpd позволяет ограничить возможность пользователей,
зарегистрированных локально, перемещаться по дереву каталогов. При этом
процесс, работающий с клиентом, будет выполняться в изолированной среде
(chrooted environment), и пользователь будет иметь доступ только к своему
402
ЛКНВ.11100-01 90 02
домашнему каталогу и его подкаталогам. Чтобы ограничить таким образом доступ к
каталогам для отдельных пользователей, необходимо удалить знаки комментариев у
следующих строк в конфигурационном файле:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
В файле /etc/vsftpd/chroot_list следует перечислить регистрационные
имена пользователей, для которых должна использоваться изолированная среда
выполнения. Можно использовать для этого и другой файл, указав его имя в строке
chroot_list_file конфигурационного файла.
Чтобы ограничить доступ к дереву каталогов для всех пользователей,
зарегистрированных локально, следует добавить в конфигурационный файл
директиву chroot_local_user=YES.
В этом случае имена пользователей, перечисленные в файле
/etc/vsftpd/chroot_list (при условии, что у строк, указанных выше, удалены
знаки комментария), имеют противоположное действие. Для них не используется
изолированная среда выполнения, и перемещение по файловой иерархии не
ограничивается домашним каталогом.
Чтобы запретить анонимный доступ к FTP-серверу, необходимо поставить
знак комментария в начале строки anonymous_enable=YES в конфигурационном
файле.
Дополнительные сведения о настройке сервера
Сервер vsftpd способен осуществлять всю передачу данных в пассивном
режиме, что сопряжено со значительно меньшим риском.
Чтобы разрешить использование только пассивного режима, достаточно
удалить символ комментария у директивы port_enable=NO в конфигурационном
файле.
Чтобы разрешить запись файлов на сервер, следует удалить знак комментария
у директивы write_enable=YES. Этого достаточно для того, чтобы пользователи,
зарегистрированные локально, получили возможность загружать файлы в те
каталоги, для которых они располагают правами на запись.
403
ЛКНВ.11100-01 90 02
Чтобы разрешить запись файлов анонимным пользователям, необходимо,
кроме этого, удалить знак комментария у строки anon_upload_enable=YES.
Специальный непривилегированный пользователь, используемый для работы с
анонимными клиентами, должен иметь права на запись в один или несколько
каталогов, доступных таким клиентам.
Параметры использования vsftpd том числе относящиеся к безопасности)
могут быть заданы при помощи xinetd. Этот сервер позволяет ограничить
количество одновременно выполняемых процессов как по системе в целом, так и
для каждого отдельного пользователя, указать пользователя, от имени которого
будет выполняться служба, задать приоритет процесса (nice), указать адреса, с
которых разрешено подключение к данной службе, а также время доступа и
множество других параметров.
Пример настройки FTP-сервера
Настройте параметры конфигурации xinetd для vsftpd в файле
/etc/xinetd.d/vsftpd:
# default: off
# description: The vsftpd FTP server.
service ftp
{
disable = no # включает службу
socket_type = stream
protocol = tcp
wait = no
user = root
nice = 10
rlimit_as = 200M # лимит адресного пространства
server = /usr/sbin/vsftpd # путь к исполняемому файлу
# only_from = 192.168.0.0 # доступ из всей подсети
# доступ с указанных адресов
# only_from = 207.46.197.100 207.46.197.101
only_from = 0.0.0.0 # неограниченный по адресам доступ
access_times = 2:00-9:00 12:00-24:00 # время, доступа
}
Перезапустите xinetd:
# systemctl restart xinetd
404
ЛКНВ.11100-01 90 02
Измените настройку прав доступа в файле /etc/vsftpd/conf:
local_enable=YES
Убедитесь в нормальной работе FTP-сервера:
# netstat -ant | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
FTP-сервер запущен и принимает соединения на 21 порту.
Обратитесь к серверу по протоколу FTP:
$ lftp user@localhost
Пароль:
lftp user@localhost:~>
П р и м е ч а н и е . Пакет lftp должен быть заранее установлен.
Соединение на сервере по протоколу FTP успешно установлено.
Подключение рабочей станции
П р и м е ч а н и е . На рабочей станции должен быть установлен пакет lftp:
# apt-get install lftp
Для создания подключения по протоколу FTP в консоли, на рабочей станции
необходимо выполнить команду:
$ lftp user@192.168.88.218
Пароль:
lftp user@192.168.8.218:~>pwd
ftp://user@192.168.8.218
Для создания подключения по протоколу FTP в графической среде MATE
можно запустить файловый менеджер, указать в адресной строке протокол и адрес
сервера (рис. 150).
Рис. 150
Нажать клавишу «Enter».
405
ЛКНВ.11100-01 90 02
В появившемся окне указать имя пользователя, пароль и нажать на кнопку
«Подключиться» (рис. 151).
Рис. 151
10.14.4. NTP
Настройка сервера NTP
В качестве NTP-сервера/клиента используется сервер времени chrony:
- chronyd – демон, работающий в фоновом режиме. Он получает информацию
о разнице системных часов и часов внешнего сервера времени и
корректирует локальное время. Демон реализует протокол NTP и может
выступать в качестве клиента или сервера.
- chronyc – утилита командной строки для контроля и мониторинга
программы. Утилита используется для тонкой настройки различных
параметров демона, например, позволяет добавлять или удалять серверы
времени.
Выполнить настройку NTP-сервера можно следующими способами:
1) в ЦУС настроить модуль «Дата и время» на получение точного времени с
NTP-сервера (см. п. 8.16.7).
2) указать серверы NTP в директиве server или pool в файле конфигурации
NTP /etc/chrony.conf:
allow all #Разрешить NTP-клиенту доступ из локальной сети
406
ЛКНВ.11100-01 90 02
pool pool.ntp.org iburst #параметр iburst используется для ускорения
начальной синхронизации
и перезапустить сервис командой:
# systemctl restart chronyd
Убедиться в нормальной работе NTP-сервера, выполнив команду:
# systemctl status chronyd.service
Настройка рабочей станции
Настроить в ЦУС модуль «Дата и время» на получение точного времени с
NTP-сервера качестве NTP-сервера указать IP-адрес сервера NTP) и нажать на
кнопку «Применить» (рис. 152).
Рис. 152
Проверить текущие источники времени:
$ chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.88.218 3 8 0 23m +396us[ -803us] +/- 55ms
Проверить статус источников NTP:
$ chronyc activity
200 OK
1 sources online
0 sources offline
407
ЛКНВ.11100-01 90 02
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address
10.14.5. HTTP(S)
Настройка HTTP-сервера
Установить пакет apache2-base:
# apt-get install apache2-base
Запустить httpd2:
# systemctl start httpd2
Убедиться, что служба httpd2 запущена:
# systemctl status httpd2
Создать стартовую страницу для веб-сервера:
# echo “Hello, World” >/var/www/html/index.html
Проверка настройки на рабочей станции
Запустить браузер, перейти по адресу http://<IP-сервера>:> (рис. 153).
Рис. 153
Также можно выполнить команду:
$ curl http://192.168.88.218
Hello, World
Происходит обращение к серверу и получение данных по протоколу http.
Виртуальная (экранная) клавиатура
Onboard – гибкая в настройках виртуальная (экранная) клавиатура.
Виртуальная клавиатура полезна тогда, когда по каким-либо причинам, нет
возможности использовать обычную клавиатуру. Так же виртуальная клавиатура
может оказаться удобной пользователям сенсорных экранов (touchscreen).
П р и м е ч а н и е . На рабочей станции должен быть установлен пакет onboard:
# apt-get install onboard
408
ЛКНВ.11100-01 90 02
10.15.1. Клавиатура onboard при входе в систему
Для того чтобы появилась возможность использовать виртуальную
клавиатуру при входе в систему, необходимо в файле
/etc/lightdm/lightdm-gtk-greeter.conf выставить параметр keyboard в
значение onboard --xid:
# vim /etc/lightdm/lightdm-gtk-greeter.conf
[greeter]
...
keyboard=onboard --xid
...
На странице входа следует щелкнуть значок на панели инструментов, а
затем отметить пункт «Экранная клавиатура».
На экране появится виртуальная клавиатура, ее можно использовать для ввода
пароля.
10.15.2. Клавиатура onboard при разблокировке экрана
Для того, чтоб клавиатура работала при разблокировке экрана, следует
выставить следующие параметры dconf:
org.mate.screensaver.embedded-keyboard-enabled=true
org.mate.screensaver.embedded-keyboard-command="onboard --xid"
Установить параметры dconf для конкретного пользователя можно, выполнив
команды (под этим пользователем):
$ gsettings set org.mate.screensaver embedded-keyboard-enabled true
$ gsettings set org.mate.screensaver embedded-keyboard-command "onboard
--xid"
Для того чтобы выставить настройки dconf глобально для всех пользователей,
необходимо (все действия выполняются от имени root):
1) создать файл /etc/dconf/profile/user следующего содержания:
user-db:user
system-db:local
2) создать, если он еще не создан, каталог /etc/dconf/db/local.d:
# mkdir /etc/dconf/db/local.d
409
ЛКНВ.11100-01 90 02
3) создать файл для локальной базы данных в
/etc/dconf/db/local.d/00_screensaver следующего содержания:
[org/mate/screensaver]
embedded-keyboard-enabled=true
embedded-keyboard-command="onboard --xid"
4) обновить системные базы данных, выполнив команду:
# dconf update
Просмотреть настройки org.mate.screensaver можно, выполнив команду:
$ gsettings list-recursively org.mate.screensaver
org.mate.screensaver mode 'single'
org.mate.screensaver status-message-enabled true
org.mate.screensaver lock-dialog-theme 'default'
org.mate.screensaver logout-command ''
org.mate.screensaver user-switch-enabled true
org.mate.screensaver embedded-keyboard-enabled true
org.mate.screensaver idle-activation-enabled true
org.mate.screensaver lock-delay 0
org.mate.screensaver logout-delay 120
org.mate.screensaver cycle-delay 10
org.mate.screensaver lock-enabled false
org.mate.screensaver logout-enabled false
org.mate.screensaver embedded-keyboard-command 'onboard --xid'
org.mate.screensaver themes ['screensavers-gnomelogo-floaters']
org.mate.screensaver power-management-delay 30
В результате при разблокировке экрана появится виртуальная клавиатура, ее
можно использовать для ввода пароля.
10.15.3. Настройки onboard
Onboard имеет множество настроек, сворачивается в системный трей и (или) в
«индикатор действия», имеет несколько тем оформления, с возможностью
настройки цвета и формы клавиш (можно создать собственную тему полностью),
прозрачности, включения/выключения рамки окна.
Запустить виртуальную клавиатуру Onboard можно, выбрав на панели
инструментов меню MATE «Cистема» «Параметры» «Личное»
«Настройки экранной клавиатуры Onboard».
Окно настроек Onboard можно открыть, нажав правой клавишей мыши по
значку Onboard в системном трее и выбрав пункт «Параметры».
410
ЛКНВ.11100-01 90 02
В настройках можно:
- подобрать стилевое оформление экранной клавиатуры;
- закрепить к верхнему или нижнему краю экрана рабочего стола;
- включить или отключить звук нажатых клавиш, а также показывать
нажатые клавиши;
- изменить раскладку клавиатуры (например, выбрать эргономичную
клавиатуру или клавиатуру для небольших экранов).
Управление печатью
В ОС Альт 8 СП используется система печати CUPS, которая позволяет
выполнять следующие действия:
- управляет заданиями на печать;
- исполняет административные команды;
- предоставляет информацию о состоянии принтеров локальным и удаленным
программам;
- информирует пользователей, если это требуется.
Система печати CUPS решает задачу монопольной постановки задания в
очередь на печать. Данная функция предполагает невозможность вывода документа
на печать в обход системы печати.
Существует два способа настройки принтера:
- утилита «Настройка принтера» (пакет system-config-printer);
- веб-интерфейс CUPS (Common UNIX Printing System) (пакет cups).
10.16.1. Устройство CUPS
В состав файлов конфигурации CUPS входят следующие файлы:
- файл конфигурации сервера CUPS (/etc/cups/cupsd.conf);
- файлы определения принтеров и классов (/etc/cups/printers.conf,
/etc/cups/classes.conf);
- файлы типа MIME и файлы правил преобразования;
- файлы описания PostScript-принтеров (PPD).
411
ЛКНВ.11100-01 90 02
Файл конфигурации сервера CUPS
Конфигурационный файл сервера очень похож на файлы конфигурации
веб-сервера и определяет все свойства управления доступом. Настраивать CUPS
можно либо непосредственно редактируя файл конфигурации
/etc/cups/cupsd.conf, либо в веб-интерфейсе CUPS (рис. 154). Веб-интерфейс
CUPS можно запустить следующими способами:
- в графической среде MATE: «Приложения» «Системные» «Настройка
печати»;
- в браузере: http://localhost:631.
Если файл cupsd.conf редактируется в консоли для применения изменения,
необходимо перезапустить службу cups, выполнив команду:
# systemctl restart cups
Если файл cupsd.conf редактируется в веб-интерфейсе, то служба cups
автоматически перезапускается после нажатия на кнопку «Сохранить изменения».
Файл конфигурации cupsd.conf начинается с ряда глобальных директив,
которые оформлены в виде пар имя – значение.
LogLevel указывает подробность журналирования. Доступные значения: none
(не записывать логи), emerg, alert, crit, error, warn (по умолчанию), notice,
info, debug, debug2 (подробный вывод).
412
ЛКНВ.11100-01 90 02
Рис. 154 Веб-интерфейс CUPS
PageLogFormat определяет формат строк журнала печати (файл
/var/log/cups/page_log). Последовательности, начинающиеся со знака процента
(%), заменяются соответствующей информацией:
- % {name} значение указанного атрибута IPP;
- % C количество копий для текущей страницы;
- % P номер текущей страницы;
- % T текущую дату и время в общий формат журнала;
- % j идентификатор задания;
- % p имя принтера;
- % u имя пользователя.
По умолчанию строка PageLogFormat пустая (журнал печати не пишется).
Для ведения журнала печати можно изменить эту строку:
PageLogFormat "%p %u %j %T %P %C %{job-billing}
%{job-originating-host-name} %{job-name} %{media} %{sides}"
413
ЛКНВ.11100-01 90 02
MaxLogSize задает максимальный размер журналов до их ротации. Значение
0 отключает ротацию.
Listen позволяет указать на каком IP-адресе будет доступен веб-интерфейс
(по умолчанию localhost:631), а также прослушиваемый сокет.
Параметры Browsing задают настройки возможности CUPS обнаруживать
принтеры в сети. Данная возможность поддерживается на уровне протокола IPP.
Обнаружение происходит посредством широковещательных рассылок, что при
большом количестве серверов CUPS или при частом отключении/подключении
принтеров может порождать дополнительную нагрузку на сеть. Browsing
указывает CUPS предоставлять свои серверы в общий доступ, либо нет. Значения
может принимать On или Off соответственно.
Директива DefaultAuthType указывает механизм аутентификации, который
будет использоваться для организации доступа (по умолчанию Basic использовать
логины/пароли от локальной системы).
BrowseAllow и BrowseDeny указывают CUPS на стороне клиента адреса, от
которых может приниматься или отвергаться, соответственно, информация о
принтерах. Формат директив соответствует директивам Allow и Deny. В качестве
аргумента для данной директивы может быть как отдельный IP, так и подсеть в
формате 10.0.0.0/24 или 10.0.0.0/255.255.255.0 или 10.0.0.0-10.0.0.255, так и значение
@LOCAL обозначающее локальную сеть, а также имена хостов. Возможно
использование нескольких данных директив.
Директива Order определяет порядок предоставления доступа к CUPS по
умолчанию. Значение allow,deny определяет что доступ запрещен, если право на
доступ не указано явно. Если директива имеет значение deny,allow, то доступ будет
разрешен, если явно не запрещен.
Далее идут параметры, сгруппированные в разделы <Location /...>. Такие
директивы определяют доступ к определенным функциям сервера:
- <Location /> доступ к серверу;
- <Location /admin> доступ к странице администрирования;
- <Location /admin/conf> доступ к конфигурационным файлам;
414
ЛКНВ.11100-01 90 02
- <Location /jobs> доступ к заданиям;
- <Location /printer> доступ к принтерам.
Управление политиками операций
Политики операций это правила, используемые для каждой операции IPP в
CUPS. Правила могут включать такие опции, как «пользователь должен
предоставить пароль», «пользователь должен находиться в системной группе»,
«разрешать только из локальной системы» и т. д.
CUPS позволяет полностью переопределить правила для каждой операции
и (или) принтера. Каждая политика имеет название и определяет правила контроля
доступа для каждой операции IPP.
Политики операций используются для всех запросов IPP, отправленных в
планировщик заданий, и оцениваются после правил управления доступом на основе
местоположения. Таким образом политики операций могут только добавлять
дополнительные ограничения безопасности к запросу, а не ослаблять их. Для
ограничений на уровне сервера необходимо использовать правила управления
доступом на основе местоположения, а для ограничений на отдельные принтеры,
задачи или службы политики операций.
Политики хранятся в файле cupsd.conf в разделах Policy. Каждая политика
имеет название, которое используется для ее выбора. Внутри раздела политики
находятся один или несколько подразделов Limit, в которых перечислены операции,
на которые влияют правила внутри него.
Каждая политика имеет название. В названии политики можно использовать
те же символы, что и в названии принтера, в частности все печатные символы,
кроме пробела, слэша (/) и решетки (#).
В разделах < Limit …> определяется, какие ограничения должна содержать
политика. Директивы внутри подраздела Limit могут использовать любую из
директив ограничения: Allow, AuthType, Deny, Encryption, Require и Satisfy.
В таблице 13 перечислены основные примеры для разных правил контроля доступа.
415
ЛКНВ.11100-01 90 02
Т а б л и ц а 13 Правила контроля доступа
Уровень доступа
Директива
Разрешить всем
Order allow,deny
Allow from all
Разрешить всем в локальной сети
Order allow,deny
Allow from @LOCAL
Запретить всем/Отклонить
операции
Order allow,deny
Требовать аутентификацию
пользователя (Логин, Пароль)
AuthType Basic
Требовать CUPS аутентификацию
CUPS (lppasswd) Password
AuthType BasicDigest
Требовать Kerberos
AuthType Negotiate
Только владелец
Require user @OWNER
Только администратор
Require user @SYSTEM
Члены группы foogroup
Require user @foogroup
Пользователи test или test1
Require user test test1
Требовать шифрование
Encryption Required
Пример политики, которая разрешает доступ только из подсети 10.110.1.х:
<Policy mypolicy>
# Операции, связанные с заданиями доступны только владельцам
# членам группы lab999 и администратору...
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job
Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-
Subscription Cancel-Subscription Get-Notifications Reprocess-Job
Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs
Close-Job CUPS-Move-Job>
Require user @OWNER @lab999 @SYSTEM
Order allow,deny
Allow from 10.110.1.0/24
</Limit>
# Все административные операции доступны только администратору
и членам группы lab999, также необходима процедура аутентификации...
<Limit Pause-Printer Resume-Printer Set-Printer-Attributes
Enable-Printer Disable-Printer Pause-Printer-After-Current-Job
Hold-New-Jobs Release- Held-New-Jobs Deactivate-Printer Activate-
Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job
Schedule-Job-After CUPS- Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>
AuthType Default
Require user @lab999 @SYSTEM
416
ЛКНВ.11100-01 90 02
Order allow,deny
Allow from 10.110.1.0/24
</Limit>
# Все остальные операции доступны из подсети 10.110.1.0/24 с
обязательной аутентификацией пользователей...
<Limit All>
AuthType Default
Order allow,deny
Allow from 10.110.1.0/24
</Limit>
</Policy>
После создания политики ее можно использовать двумя способами.
Первый способ назначить ее в качестве политики по умолчанию для всей
системы, используя директиву DefaultPolicy в файле cupsd.conf. Например:
DefaultPolicy mypolicy
Второй способ связать политику с одним или несколькими принтерами.
Для этого можно воспользоваться командой lpadmin (8) или веб-интерфейсом для
изменения политики операций для каждого принтера. Например:
# lpadmin -p HP_LaserJet_M1536dnf_MFP -o printer-op-
policy=mypolicy
Файлы описания принтеров и классов
Файлы описания принтеров и классов перечисляют доступные очереди печати
и классы. Классы принтеров наборы принтеров. Задания, посланные классу
принтеров, направляются к первому доступному принтеру данного класса.
Для редактирования фалов /etc/cups/printers.conf и /etc/cups/classes.conf
можно использовать утилиту lpadmin.
Пример настройки для локального принтера:
<DefaultPrinter laserjet>
UUID urn:uuid:7efaaede-819d-3d9a-6270-3fe957597756
Info laserjet
Location host-15.localdomain
MakeModel HP LaserJet m1537dnf MFP pcl3, hpcups 3.19.1
DeviceURI
usb://HP/LaserJet%20M1536dnf%20MFP?serial=00CND9D8YC9C&interface=1
State Idle
StateTime 1553167952
ConfigTime 1553167952
417
ЛКНВ.11100-01 90 02
Type 36892
Accepting Yes # принтер принимает задания
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer # остановить принтер при ошибке
Option job-hold-until indefinite
</DefaultPrinter>
Очередь печати
Очередь печати механизм, который позволяет буферизовать и организовать
задания, посылаемые на принтер. Необходимость организации такого механизма
обуславливается тем, что принтер является медленно действующим устройством, и
задания не могут быть распечатаны мгновенно.
Очевидно, что в многопользовательской среде возникает конкуренция со
стороны пользователей при доступе к принтерам, поэтому задания необходимо
располагать в очереди. Для этого используется буферный каталог
/var/spool/cups/.
Файлы типов MIME перечисляют поддерживаемые MIME-типы (text/plain,
application/postscript) и правила для автоматического обнаружения формата файла.
Они используются сервером для определения поля Content-Type для GET- и HEAD-
запросов и обработчиком запросов протоколов сетевой печати IPP (Internet Printing
Protocol), чтобы определить тип файла.
Правила преобразования MIME перечисляют доступные фильтры. Фильтры
используются, когда задание направляется на печать, таким образом, приложение
может послать файл удобного (для него) формата системе печати, которая затем
преобразует документ в требуемый печатный формат. Каждый фильтр имеет
относительную «стоимость», связанную с ним, и алгоритм фильтрования выбирает
набор фильтров, который преобразует файл в требуемый формат с наименьшей
общей «стоимостью».
418
ЛКНВ.11100-01 90 02
Файлы PPD описывают возможности всех типов принтеров. Для каждого
принтера имеется один PPD-файл. Файлы PPD для не-PostScript-принтеров
определяют дополнительные фильтры посредством атрибута cupsFilter для
поддержки драйверов принтеров.
В ОС стандартным языком описания страниц является язык PostScript.
Большинство прикладных программ (редакторы, браузеры) генерируют программы
печати на этом языке. Когда необходимо напечатать ASCII-текст, программа печати
может быть ASCII-текстом. Имеется возможность управления размером шрифтов
при печати ASCII-текста.
Управляющая информация используется для контроля доступа пользователя к
принтеру и аудита печати. Также имеется возможность печати изображений в
форматах GIF, JPEG, PNG, TIFF и документов в формате PDF.
Фильтр программа, которая читает из стандартного входного потока или из
файла, если указано его имя. Все фильтры поддерживают общий набор опций,
включающий имя принтера, идентификатор задания, имя пользователя, имя задания,
число копий и опции задания. Весь вывод направляется в стандартный выходной
поток.
Фильтры предоставлены для многих форматов файлов и включают, в
частности, фильтры файлов изображения и растровые фильтры PostScript, которые
поддерживают принтеры, не относящиеся к типу PostScript. Иногда несколько
фильтров запускаются параллельно для получения требуемого формата на выходе.
Программа backend это специальный фильтр, который отправляет
печатаемые данные устройству или через сетевое соединение. В состав системы
печати включены фильтры для поддержки устройств, подключаемых с помощью
параллельного и последовательного интерфейсов, а также шины USB.
Клиентские программы используются для управления заданиями и сервером
печати.
Управление заданиями включает выполнение следующих действий:
- формирование;
- передачу серверу печати;
419
ЛКНВ.11100-01 90 02
- мониторинг и управление заданиями в очереди на печать.
Управление сервером включает выполнение следующих действий:
- запуск/остановку сервера печати;
- запрещение/разрешение постановки заданий в очередь;
- запрещение/разрешение вывода заданий на принтер.
Основные пользовательские настройки содержатся в файлах конфигурации
client.conf и ~/.cups/lpoptions.
Для удаленного использования сервера печати необходимо от имени
пользователя с идентификатором root выполнить следующие команды:
cupsctl --remote-admin --remote-printers --remote-any
cupsctl ServerAlias=*
В случае использования сервера печати в едином пользовательском
пространстве (далее ЕПП) необходимо задание соответствующего типа
аутентификации: для работы в ЕПП значение параметра должно быть
DefaultAuthType Negotiate, без использования ЕПП значение параметра должно
быть DefaultAuthType Basic.
В файле конфигурации клиента client.conf должен быть задан один
параметр ServerName, определяющий имя сервера печати, например:
ServerName computer.domain
В общем случае вывод данных на принтер происходит следующим образом:
1) программа формирует запрос на печать задания к серверу печати;
2) сервер печати принимает подлежащие печати данные, формирует в
буферном каталоге файлы с содержимым задания и файлы описания
задания, при этом задание попадает в соответствующую очередь печати;
3) сервер печати просматривает очереди печати для незанятых принтеров,
находит в них задания и запускает конвейер процессов, состоящий из
фильтров и заканчивающийся выходным буфером, информация из которого
поступает в принтер посредством драйверов ОС;
4) контроль и мониторинг процесса печати выполняется с помощью программ
lpq, lpc, lprm, lpstat, lpmove, cancel.
420
ЛКНВ.11100-01 90 02
10.16.2. Установка принтера
Перед началом установки необходимо убедиться в том, что в случае
локального подключения принтер присоединен к соответствующему порту
компьютера и включен, а в случае сетевого подключения принтер корректно
сконфигурирован для работы в сети.
Окно «Настройки принтера» можно запустить следующими способами:
- в графической среде: панель инструментов MATE «Система»
«Администрирование» → «Параметры печати»;
- из командной строки: командой system-config-printer.
Для добавления принтера в диалоговом окне «Настройки принтера»
необходимо нажать на кнопку «Добавить».
П р и м е ч а н и е . Если возникает ошибка «Служба печати недоступна»,
необходимо запустить терминал, и от имени системного администратора root
выполнить команду systemctl restart cups. После этого следует вернуться к
окну «Настройки принтера» и нажать на кнопку «Обновить».
В диалоговом окне «Аутентификация» следует ввести имя, и пароль
пользователя, имеющего право изменять настройки принтера, после чего нажать на
кнопку «OK» (рис. 155).
Рис. 155 Диалоговое окно «Аутентификация»
Далее в открывшемся окне необходимо нажать на кнопку «Добавить» и
выбрать принтер, который необходимо подключить и нажать на кнопку «Далее»
(рис. 156).
421
ЛКНВ.11100-01 90 02
Рис. 156 Выбор принтера
На следующих шагах настройки принтера необходимо выбрать драйвер для
принтера. Драйвер можно выбрать из базы данных, содержащей различные файлы
описания принтеров (PPD-файлы) от производителей или предоставить файл
описания PostScript-принтера (рис. 157).
После выбора драйвера в окне «Новый принтер» можно изменить название и
описание принтера (рис. 158).
После нажатия кнопки «Применить» установка принтера завершена, принтер
станет доступным для печати (рис. 159).
422
ЛКНВ.11100-01 90 02
Рис. 157 Выбор источника драйвера принтера
Рис. 158 Название и описание принтера
423
ЛКНВ.11100-01 90 02
Рис. 159 Выбор принтера
Изменить настройки принтера (разрешение, размер используемой по
умолчанию бумаги, принтер по умолчанию и т. д.) можно в любой момент, выбрав в
контекстном меню принтера пункт «Свойства».
10.16.3. Настройка сервера печати для сети
Если в сети имеются несколько принтеров или, когда принтеры не
подключены непосредственно к тому компьютеру, на котором работает главный
сервер CUPS, то целесообразно настроить сервер cupsd, так, чтобы он мог
принимать задания на печать из сети.
По умолчанию сервер CUPS работает с локально установленными
принтерами, для того, чтобы он мог обрабатывать задания из сети, в
конфигурационный файл /etc/cups/cupsd.conf нужно внести следующие
изменения:
- разрешить доступ к серверу добавить в секцию Location директиву
Allow from:
<Location />
Order allow,deny
Allow localhost
Allow from ip-address/netmask
</Location>
- включить отображение (обнаружение) общего принтера:
...
Browsing On
BrowseOrder allow,deny
424
ЛКНВ.11100-01 90 02
BrowseAllow 192.168.1.* #локальная сеть
BrowseAddress 192.168.1.*:631#локальная сеть
П р и м е ч а н и е . Включить отображение (обнаружение) общего принтера
можно также отметив пункт «Разрешить совместный доступ к принтерам,
подключенным к этой системе» в веб-интерфейсе на вкладке «Администрирование».
После внесения изменений необходимо перезапустить службу cups:
# systemctl restart cups
На клиентах также должен быть установлен CUPS. После установки системы
печати на клиенте, CUPS-принтеры, присутствующие в сети, автоматически
находятся менеджерами принтеров. В качестве альтернативы, можно
воспользоваться веб-интерфейсом CUPS на клиентской машине по адресу
http://localhost:631. Если принтер не был обнаружен автоматически, можно
ввести IPP или HTTP-адрес (URI) сетевого CUPS принтера:
ipp://server-name-or-ip/printers/printername
или
http://server-name-or-ip:631/printers/printername
Если CUPS клиент не находит в сети принтеры, доступные через сервер CUPS,
то иногда может помочь создание или изменение файла
/usr/local/etc/cups/client.conf с добавлением записи, подобной следующей:
ServerName server-ip
В этом случае server-ip необходимо заменить на IP-адрес сервера CUPS в
сети.
10.16.4. Команды управления печатью
При печати через локальный сервер печати данные сначала формируются на
локальном сервере, как для любой другой задачи печати, после чего посылаются на
принтер, подключенный к данному компьютеру.
Вся информация, необходимая для драйвера принтера (используемое
физическое устройство, удаленный компьютер и принтер для удаленной печати),
содержится в файлах /etc/cups/printers.conf и
/etc/cups/ppd/<имя_очереди>.ppd.
425
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . Далее термин «принтер» в этом разделе используется для
обозначения принтера, соответствующего одной записи в файле
/etc/cups/printers.conf. Под термином «физический принтер» подразумевается
устройство, с помощью которого производится печать на бумаге. В файле
/etc/cups/printers.conf может быть несколько записей, описывающих один
физический принтер различными способами.
В системе печати CUPS приняты следующие команды для управления
печатью:
- /usr/bin/lpr постановка заданий в очередь, совместима с командой lpr
системы печати BSD UNIX;
- /usr/bin/lp постановка заданий в очередь, совместима с командой lp
системы печати System V UNIX;
- /usr/bin/lpq просмотр очередей печати;
- /usr/sbin/lpc управление принтером, является частичной реализацией
команды lpc системы печати BSD UNIX;
- /usr/bin/lprm отмена заданий, поставленных в очередь на печать;
- /usr/sbin/cupsd сервер печати;
- /usr/sbin/lpadmin настройка принтеров и классов принтеров;
- /usr/sbin/lpmove перемещение задания в другую очередь;
- /usr/bin/fly-admin-printer настройка системы печати, установка и
настройка принтеров, управление заданиями.
CUPS предоставляет утилиты командной строки для отправления заданий и
проверки состояния принтера. Команды lpstat и lpс status также показывают
сетевые принтеры (принтер@сервер), когда разрешен обзор принтеров.
С помощью команды lp выполняется передача задачи принтеру, то есть
задача ставится в очередь на печать. В результате выполнения этой команды файл
передается серверу печати, который помещает его в каталог /var/spool/cups/.
Остановить работу сервиса печати можно с помощью команды:
# systemctl stop cups
Запустить сервис печати можно с помощью команды:
# systemctl start cups
426
ЛКНВ.11100-01 90 02
Настройка принтера
Настроить принтер в ОС можно также с помощью команды lpadmin. Ее
запуск с опцией -p выполняется для добавления или модификации принтера:
/usr/sbin/lpadmin -p printer [опции]
Для lpadmin существуют также опции по регулированию политики лимитов и
ограничений по использованию принтеров и политики доступа к принтерам.
Для удаления принтера необходимо выполнить lpadmin с опцией -x:
/usr/sbin/lpadmin -x printer
Проверка очереди печати
Команда lpq предназначена для проверки очереди печати (используемой lpd)
и вывода состояния заданий на печать, указанных при помощи номера задания, либо
системного идентификатора пользователя, которому принадлежит задание.
lpq выводит для каждого задания имя его владельца, текущий приоритет
задания, номер задания и размер задания в байтах, без параметров выводит
состояние всех заданий в очереди.
Удаление задания из очереди печати
Команда lprm предназначена для удаления задания из очереди печати. Для
определения номера задания необходимо использовать команду lpq. Для удаления
задания необходимо быть его владельцем или пользователем с идентификатором
root.
Системные каталоги, определяющие работу системы печати ОС, также
содержат файлы, которые не являются исполняемыми:
- /etc/cups/printers.conf содержит описания принтеров в ОС;
- /etc/cups/ppd/<имя_очереди>.ppd содержит описания возможностей
принтера, которые используются при печати заданий и при настройке
принтеров;
- /var/log/cups/error_log содержит протокол работы принтера, в этом
файле могут находиться сообщения об ошибках сервера печати или других
программ системы печати;
427
ЛКНВ.11100-01 90 02
- /var/log/cups/access_log содержит все запросы к серверу печати;
- /var/log/cups/page_log содержит сообщения, подтверждающие
успешную обработку страниц задания фильтрами и принтером.
Настройка сетевого принтера из консоли
Для настройки принтера из консоли необходимо выполнить следующие
действия:
1) получить права администратора;
2) просмотреть содержимое каталога model на наличие необходимых
драйверов:
ls /usr/share/cups/model
3) если драйвер устройства присутствует перейти к шагу 7) (настройка нового
устройства);
4) найти необходимое устройство:
lpinfo -m | grep название_модели
5) просмотреть данные о драйвере устройства:
foomatic-ppdfile -A | grep название_модели
6) сформировать файл .ppd:
foomatic-ppdfile -p ‘имя_ppd_драйвера’ >
/usr/share/cups/model/имя_ppd_файла.ppd
7) произвести настройку нового устройства:
- если принтер подключен по сети:
lpadmin -p название_принтера -D еще_одно_название -m
название_ppd_файла.ppd -v socket://ip_принтера -E
- если принтер подключен по usb:
lpadmin -p название_принтера -D еще_одно_название -m
название_ppd_файла.ppd -v "usb://адрес_принтера" -E
8) печать документа:
lp -d название_принтера /путь_документ
П р и м е ч а н и е . Список доступных устройств можно просмотреть,
выполнив команду: lpinfo v
428
ЛКНВ.11100-01 90 02
Пример вывода:
usb://Samsung/M262x%20282x%20Series?serial=ZD1UBJCD5000LVW
Список установленных принтеров:
lpstat p -d
Пример настройки сетевого принтера Kyocera Ecosys P2235dn:
1) получить права администратора;
2) просмотреть содержимое каталога /usr/share/cups/model на наличие
необходимых драйверов:
ls /usr/share/cups/model
3) если драйвер устройства присутствует произвести настройку нового
устройства (перейти к 7) шагу);
4) найти необходимое устройство:
lpinfo -m | grep Kyocera-P-2
5) просмотреть данные о драйвере устройства:
foomatic-ppdfile -A | grep Kyocera-P-2
6) сформировать файл .ppd:
foomatic-ppdfile -p ‘Kyocera-P-2000’ >
/usr/share/cups/model/Kyocera.ppd
7) создать новое устройство:
lpadmin -p Kyocera -D Kyocera-P-2000 -m Kyocera.ppd -v
socket://10.120.70.90 E
Управление базами данных
В качестве СУБД в составе ОС Альт 8 СП может использоваться PostgreSQL.
CУБД PostgreSQL предназначена для создания и управления реляционными
БД и предоставляет многопользовательский доступ к расположенным в них данным.
Данные в реляционной БД хранятся в отношениях (таблицах), состоящих из строк и
столбцов. При этом единицей хранения и доступа к данным является строка,
состоящая из полей, идентифицируемых именами столбцов. Кроме таблиц,
существуют другие объекты БД (виды, процедуры), которые предоставляют доступ
к данным, хранящимся в таблицах.
429
ЛКНВ.11100-01 90 02
Для работы СУБД на НЖМД выделяется область для хранения БД,
называемая «кластером БД». Кластер БД является набором БД, управляемых одним
экземпляром сервера СУБД. Настройка работы отдельного экземпляра сервера
СУБД так же определяется в рамках кластера соответствующими
конфигурационными файлами.
10.17.1. Состав
СУБД PostgreSQL состоит из нескольких компонентов:
- postgresql сервисная служба, реализующая непосредственно сервер БД;
- libpq клиентская библиотека, предоставляющая доступ к серверу СУБД;
- набор серверных утилит для управления работой сервера и создания
кластеров БД;
- набор клиентских утилит для создания и управления БД.
10.17.2. Настройка
Настройка сервера СУБД осуществляется установкой параметров в
конфигурационном файле postgresql.conf. В дополнение к файлу
postgresql.conf в PostgreSQL используется еще два конфигурационных файла,
которые контролируют аутентификацию клиента.
По умолчанию все эти три файла находятся в каталоге данных кластера БД
или в соответствующем кластеру конфигурационном каталоге, например,
/etc/postgreslq/x.x/main. За расположение указанных файлов отвечают
конфигурационные параметры, описанные ниже:
- data_directory определяет каталог для хранения данных;
- config_file определяет основной конфигурационный файл сервера
(postgresql.conf), значение этого параметра может быть задано только в
командной строке postgres;
- hba_file определяет конфигурационный файл для аутентификации по
узлам (pg_hba.conf);
- ident_file определяет конфигурационный файл для аутентификации по
методу ident (pg_ident.conf);
430
ЛКНВ.11100-01 90 02
- external_pid_file определяет имя дополнительного файла с
идентификатором процесса, который сервер создает для использования
программами администрирования сервера.
431
ЛКНВ.11100-01 90 02
11. УПРАВЛЕНИЕ ПРОГРАММНЫМИ ПАКЕТАМИ
После установки ОС Альт 8 СП при первом запуске доступен тот или иной
набор ПО. Количество предустановленных программ зависит от набора программ
конкретного дистрибутива или от выбора, сделанного при установке системы. Если
интересующие программы не были обнаружены в системе, то имеется возможность
доустановить их из разных источников.
Дополнительное ПО может находиться на установочном диске и (или) в
специальных банках программ (репозиториях), расположенных в сети Интернет
и (или) в локальной сети. Программы, размещенные в указанных источниках, имеют
вид подготовленных для установки пакетов.
Для установки, удаления и обновления программ и поддержания целостности
системы в ОС семейства Linux используются менеджеры пакетов типа «rpm».
Для автоматизации этого процесса и применяется усовершенствованная система
управления программными пакетами APT (Advanced Packaging Tool).
ПРЕДУПРЕЖДЕНИЕ
Перед установкой программ внимательно ознакомьтесь с п. 11.4 «Управление
установкой (инсталляцией) компонентов программного обеспечения».
Автоматизация достигается созданием одного или нескольких внешних
репозиториев, в которых хранятся пакеты программ и относительно которых
производится сверка пакетов, установленных в системе. Репозитории могут
содержать как официальную версию дистрибутива, обновляемую его
разработчиками по мере выхода новых версий программ, так и локальные
наработки, например, пакеты, разработанные внутри компании.
Таким образом, в распоряжении APT находятся две базы данных: одна
описывает установленные в системе пакеты, вторая внешний репозиторий. APT
отслеживает целостность установленной системы и, в случае обнаружения
противоречий в зависимостях пакетов, руководствуется сведениями о внешнем
репозитории для разрешения конфликтов и поиска корректного пути их устранения.
432
ЛКНВ.11100-01 90 02
Система APT состоит из нескольких утилит. Чаще всего используется утилита
управления пакетами apt-get, которая автоматически определяет зависимости между
пакетами и строго следит за их соблюдением при выполнении любой из следующих
операций: установка, удаление или обновление пакетов.
Источники программ (репозитории)
11.1.1. Репозитории для APT
Репозитории, с которыми работает APT, отличаются от обычного набора
пакетов наличием мета информации индексов пакетов, содержащихся в
репозитории, и сведений о них. Поэтому, чтобы получить всю информацию о
репозитории, APT достаточно получить его индексы.
APT может работать с любым количеством репозиториев одновременно,
формируя единую информационную базу обо всех содержащихся в них пакетах.
При установке пакетов APT обращает внимание только на название пакета, его
версию и зависимости, а расположение в том или ином репозитории не имеет
значения. Если потребуется, APT в рамках одной операции установки группы
пакетов может пользоваться несколькими репозиториями.
Подключая одновременно несколько репозиториев, нужно следить за тем,
чтобы они были совместимы друг с другом по пакетной базе отражали один
определенный этап разработки. Совместимыми являются основной репозиторий
дистрибутива и репозиторий обновлений по безопасности к данному дистрибутиву.
В то же время смешение среди источников APT репозиториев, относящихся к
разным дистрибутивам, или смешение стабильного репозитория с нестабильной
веткой разработки (Sisyphus) чревато различными неожиданными трудностями при
обновлении пакетов.
APT позволяет взаимодействовать с репозиторием с помощью различных
протоколов доступа. Наиболее популярные HTTP и FTP, однако существуют и
некоторые дополнительные методы.
Для того чтобы APT мог использовать тот или иной репозиторий,
информацию о нем необходимо поместить в файл.
433
ЛКНВ.11100-01 90 02
Файлы описания источников находятся в директории
/etc/apt/source.list.d/ и имеют расширение .list, например:
altsp.list
sources.list
Так же, есть файл с предопределенным именем: /etc/apt/source.list.
Непосредственно после установки дистрибутива ОС Альт 8 СП в
/etc/apt/sources.list, а также в файлах /etc/apt/sources.list.d/*.list
обычно указывается несколько репозиториев:
- репозиторий с установочного диска дистрибутива;
- интернет-репозиторий, совместимый с установленным дистрибутивом.
П р и м е ч а н и е . Репозитории для архитектуры Эльбрус недоступны в сети
Интернет публично.
Утилита apt-get, в момент работы, просматривает одновременно все эти
файлы.
Описания репозиториев заносятся в этот файл в следующем виде:
rpm [подпись] метод: путь база название
rpm-src [подпись] метод: путь база название
где:
- rpm или rpm-src тип репозитория (скомпилированные программы или
исходные тексты);
- [подпись] необязательная строка-указатель на электронную подпись
разработчиков. Наличие этого поля подразумевает, что каждый пакет из
данного репозитория должен быть подписан соответствующей электронной
подписью. Подписи описываются в файле /etc/apt/vendor.list;
- метод – способ доступа к репозиторию: ftp, http, file, rsh, ssh, cdrom, copy;
- путь – путь к репозиторию в терминах выбранного метода;
- база – относительный путь к базе данных репозитория;
- название – название репозитория.
Пример синтаксиса, описывающего источники:
$ cat /etc/apt/sources.list.d/altsp-C.list
# update.altsp.su (IVK, Moscow)
434
ЛКНВ.11100-01 90 02
# ALT Certified 8
#rpm [cert8] ftp://update.altsp.su/pub/distributions/ALTLinux CF/branch/x86_64
classic
#rpm [cert8] ftp://update.altsp.su/pub/distributions/ALTLinux CF/branch/x86_64-i586
classic
#rpm [cert8] ftp://update.altsp.su/pub/distributions/ALTLinux CF/branch/noarch
classic
rpm [cert8] http://update.altsp.su/pub/distributions/ALTLinux CF/branch/x86_64
classic
rpm [cert8] http://update.altsp.su/pub/distributions/ALTLinux CF/branch/x86_64-i586
classic
rpm [cert8] http://update.altsp.su/pub/distributions/ALTLinux CF/branch/noarch
classic
Если первым символом идет символ комментария строка считается простым
текстом, а не описанием источника. У активной записи, в начале строки этот символ
отсутствует.
Описание источника состоит из ключевых элементов:
- тип репозитория применяется пакетная система rpm (все источники
описывают rpm-репозитории);
- ключ подписи пакеты в репозитории подписаны и могут быть проверены,
если указать ключ. Списки доступных ключей хранятся в каталоге
/etc/apt/vendors.list.d в файлах с расширением .list. Так же, есть
файл /etc/apt/vendors.list. В примере использован ключ [cert8];
- адрес адрес расположения репозитория. Репозитории доступы
несколькими способами (ftp://, http:// и rsync://). После описания
способа доступа, прописан адрес;
- тип данных репозиторий может содержать как исполняемые пакеты, так и
пакеты для разработчиков или пакеты с данными общего характера. Тип
x86_64-i586 показывает, в данном репозитории находятся исполняемые
программы и библиотеки, собранные для 32-х разрядных систем (32bit).
В общем случае, запись источника с выполняемыми программами и
библиотеками дополняет источник с типом noarch. Этот источник
предоставляет пакеты, идентичные для обеих платформ x86. Как правило,
это данные, небинарные библиотеки к Perl, Python и т. п.;
- название – название репозитория.
435
ЛКНВ.11100-01 90 02
Для добавления в sources.list репозитория на CD/DVD-носителе
информации в APT предусмотрена специальная утилита apt-cdrom. Чтобы
добавить запись о репозитории на носителе, достаточно вставить его в привод для
чтения (записи) CD (DVD)-носителей информации и выполнить следующую
команду: # apt-cdrom add
Если используется внешний CD-ROM, то в файле /etc/fstab требуется
добавить строку:
/dev/sr0 /media/ALTLinux udf,iso9660 ro,noauto,user,utf8,nofail,comment=x-gvfs-show 0 0
Создать директорию для монтирования:
# mkdir /media/ALTLinux
Затем использовать команду добавления носителя:
# apt-cdrom add
После этого в sources.list появится запись о подключенном диске
примерно такого вида:
rpm cdrom:[ALT for Elbrus 2018-10-19]/ ALTLinux main
После того как список репозиториев в sources.list будет отредактирован,
необходимо обновить локальную базу данных APT о доступных пакетах, выполнив
команду:
# apt-get update
В случае, если в sources.list присутствует репозиторий, содержимое
которого может изменяться, то прежде чем работать с APT, необходимо
синхронизировать локальную базу данных с удаленным сервером:
# apt-get update
Так происходит с любым постоянно разрабатываемым репозиторием,
например, появляются обновления по безопасности (updates).
Локальная база данных создается заново каждый раз, когда в репозитории
происходит изменение: добавление, удаление или переименование пакета. Для
репозиториев, находящихся на извлекаемых носителях информации и
подключенных командой apt-cdrom add, синхронизация производится единожды в
момент подключения.
436
ЛКНВ.11100-01 90 02
При установке определенного пакета APT производит поиск самой новой
версии этого пакета во всех известных ему репозиториях вне зависимости от
способа доступа к ним. Так, если в репозитории, доступном в сети Интернет,
обнаружена более новая в сравнении с компакт-диском версия программы, то APT
начнет загружать соответствующий пакет из сети Интернет. Поэтому, если
подключение к сети Интернет отсутствует или ограничено низкой пропускной
способностью канала или высокой стоимостью, то следует закомментировать
строчки (добавить в начало строки символ #) в /etc/apt/sources.list,
относящиеся к ресурсам в сети Интернет.
11.1.2. Добавление репозиториев с использованием терминала
Скрипт apt-repo
Можно воспользоваться скриптом apt-repo, для этого потребуется запустить
терминал и вводить команды в него. Для выполнения большинства команд
необходимы права администратора.
Просмотреть список активных репозиториев можно командой:
apt-repo list
Для добавления репозитория в список активных репозиториев используйте
команду:
apt-repo add репозиторий
Для удаления или выключения репозитория используйте команду:
apt-repo rm репозиторий
Для обновления информации о репозиториях выполните команду:
apt-repo update
Для более подробной справки используйте команду:
man apt-repo
или
apt-repo --help
437
ЛКНВ.11100-01 90 02
Добавление репозиториев вручную
Отредактируйте в любом текстовом редакторе файлы из папки
/etc/apt/sources.list.d/. Необходимы права администратора для изменения
этих файлов.
В файле alt.list может содержаться такая информация:
rpm file:/srv/repo e2kv4 classic
rpm file:/srv/repo noarch classic
По сути, каждая строчка соответствует некому репозиторию. Не активные
репозитории – строки, начинающиеся с #rpm.
После добавления репозиториев обновите информацию о них: запустите
терминал и выполните команду apt-get update или apt-repo update.
Для выполнения этих команд необходимы права администратора.
11.1.3. Центр управления системой
Для выбора репозитория в ЦУС меню «Программное обеспечение»
«Источники для установки ПО» в выпадающем списке необходимо отметить один
из предлагаемых вариантов и нажать на кнопку «Изменить».
К предложенному списку можно самостоятельно добавить репозитории, нажав на
кнопку «Дополнительно…».
После добавления репозиториев необходимо обновить информацию о них в
разделе ЦУС «Программное обеспечение» «Установка программ» кнопка
«Обновить».
Информация по установки ПО в ЦУС см. в п. 11.7.1.
11.1.4. Программа управления пакетами Synaptic
Программа Synaptic также может использоваться для выбора репозитория.
Для указания конкретного репозитория в меню «Параметры» «Репозитории»
необходимо отметить один из предлагаемых вариантов и нажать на кнопку «OK».
К предложенному списку можно самостоятельно добавить репозитории, нажав на
кнопку «Создать» и введя необходимые данные.
438
ЛКНВ.11100-01 90 02
После добавления репозиториев необходимо обновить информацию о них в
программе управления пакетами Synaptic: «Правка» «Получить сведения о
пакетах».
П р и м е ч а н и е . После выбора и добавления репозиториев необходимо
получить сведения о находящихся в них пакетах. В противном случае список
доступных для установки программ будет не актуален.
Обновление информации о репозиториях в APT
Практически любое действие с системой APT начинается с обновления
данных от активированных источников. Список источников необходимо обновлять
при поиске новой версии пакета, установке пакетов или обновлении установленных
пакетов новыми версиями.
Обновление данных осуществляется командой:
# apt-get update
Программа загрузит данные с активированных источников в свой кеш.
После выполнения этой команды, apt обновит свой кеш новой информацией.
Поиск пакетов (apt-cache)
Утилита apt-cache предназначена для поиска программных пакетов, в
репозитории, и позволяет искать не только по имени пакета, но и по его описанию.
Команда apt-cache search <подстрока> позволяет найти все пакеты, в
именах или описании которых присутствует указанная подстрока. Пример поиска
может выглядеть следующим образом:
$ apt-cache search ^gimp
gimp - The GNU Image Manipulation Program
libgimp - GIMP libraries
libgimp-devel - GIMP plugin and extension development kit
gimp-help-en - English help files for the GIMP
gimp-help-ru - Russian help files for the GIMP
gimp-plugin-separateplus - Improved version of the CMYK
Separation plug-in [...]
gimp-script-ISONoiseReduction - Gimp script for reducing sensor
noise [...]
gimp-plugin-gutenprint - GIMP plug-in for gutenprint
gimp-plugin-ufraw - GIMP plugin for opening and converting RAW
files [...]
439
ЛКНВ.11100-01 90 02
Символ «^» в поисковом выражении, указывает на то, что необходимо найти
совпадения только в начале строки (в данном случае – в начале имени пакета).
Для того чтобы подробнее узнать о каждом из найденных пакетов и прочитать
его описание, можно воспользоваться командой apt-cache show, которая покажет
информацию о пакете из репозитория:
$ apt-cache show gimp-help-ru
Package: gimp-help-ru
Section: Graphics
Installed Size: 37095561
Maintainer: Alexey Tourbin <at@altlinux.org>
Version: 2.6.1-alt2
Pre-Depends: rpmlib(PayloadIsLzma)
Provides: gimp-help-ru (= 2.6.1-alt2)
Obsoletes: gimp-help-common (< 2.6.1-alt2)
Architecture: noarch
Size: 28561160
MD5Sum: 0802d8f5ec1f78af6a4a19005af4e37d
Filename: gimp-help-ru-2.6.1-alt2.noarch.rpm
Description: Russian help files for the GIMP
Russian help files for the GIMP.
Команда apt-cache позволяет осуществлять поиск по русскому слову, однако в
этом случае будут найдены только те пакеты, у которых есть описание на русском
языке.
Управление установкой (инсталляцией) компонентов программного
обеспечения
Установку пакетов может производить только администратор.
ВНИМАНИЕ!
Обновление пакетов выполняется при отсутствии нарушений целостности
системы. Проверка целостности системы выполняется:
1) с помощью команды:
# integalert
При отсутствии изменений вывод команды: integrity check OK
2) или просмотр записей osec в системном журнале с помощью команды:
# journalctl | grep osec
При отсутствии изменений в записях журнала присутствует:
No changes[osec]
440
ЛКНВ.11100-01 90 02
ВНИМАНИЕ!
Если в системе инициализирована система контроля целостности ima-evm
(должна быть инициализирована), то установка/обновление пакетов должно
происходить посредством команды updater-start (см. п. 11.4.1) или штатным
методом с использованием команды integrity-applier (см. п. 11.4.2).
Подробнее информацию о контроле целостности см. в документе
«Руководство по комплексу средств защиты. ЛКНВ.11100-01 99 02».
Если система контроля целостности не используется, то обновление пакетов
необходимо производить в следующем порядке:
1) если используется control++ (черные/белые списки), необходимо
выключить черные/белые списки, выполнив сброс текущего режима
(просмотреть установленный режим можно, выполнив команду
control++ list, активный режим будет дополнительно отмечен *):
# control++ reset
2) установить пакеты/обновить систему при помощи apt-get;
3) включить установленный ранее режим черного/белого списка, выполнив
команду (в зависимости от вывода в пункте 1):
# control++ blacklist
или
# control++ wl
4) выполнить команду:
# integalert fix
11.4.1. Команда updater-start
Для того чтобы система сохранила все настройки безопасности для
установки/обновления пакетов может использоваться команда updater-start
(из пакета updater).
В результате запуска данной команды будет обновлена система и ядро
системы, а также включена система контроля целостности ima-evm. Необходимо
дождаться завершения работы команды (система будет несколько раз
перезагружена).
441
ЛКНВ.11100-01 90 02
П р и м е ч а н и е . Выполнение команды может занять довольно
продолжительное время (время зависит от количества установленных в системе
файлов).
П р и м е ч а н и е . Если после отработки команды updater-start не
запускается сервис auditd, необходимо переименовать/удалить старый журнал
аудита (/var/log/audit/audit.log) и потом выполнить команду
systemctl start auditd:
# mv /var/log/audit/audit.log /var/log/audit/audit.log_old
# systemctl start auditd
Команда updater-start также запускает скрипты из /etc/updater.d/* c
параметром remove перед установкой пакетов и их же с параметром apply после.
В частности, если используется control++ со списками, то в
/etc/updater.d/ нужно положить скрипт, вызывающий сontrol++ и cнимающий
списки доустановки пакетов и устанавливающий их после установки.
Последовательность действий:
1) в каталоге /etc/updater.d создать файл произвольным названием) с
содержимым:
#!/bin/bash
if [ "$1" == "remove" ] ;
then
control++ reset
fi
if [ "$1" == "apply" ] ;
then
control++ blacklist
fi
2) сделать этот файл исполняемым:
# chmod +x /etc/updater.d/<имя_файла>
3) запустить обновление:
# updater-start
4) переименовать файл записи аудита /var/log/audit/audit.log:
# mv /var/log/audit/audit.log /var/log/audit/audit_old.log
5) выполнить запуск аудита:
# service auditd start
442
ЛКНВ.11100-01 90 02
11.4.2. Команда integrity-applier
Для того чтобы система сохранила все настройки безопасности
установку/обновление пакетов необходимо производить в следующем порядке:
1) установить пакеты/обновить систему при помощи apt-get;
2) выполнить команду для инициализации контроля целостности:
# /usr/bin/integrity-applier
3) дождаться завершения работы команды (система будет перезагружена
четыре раза);
4) переименовать файл записи аудита /var/log/audit/audit.log:
# mv /var/log/audit/audit.log /var/log/audit/audit_old.log
5) выполнить запуск аудита:
# service auditd start
Установка или обновление пакета командой apt
Установка пакета с помощью APT выполняется командой:
# apt-get install имя_пакета
Перед установкой и обновлением пакетов необходимо выполнить команду
обновления индексов пакетов:
# apt-get update
Если пакет уже установлен и в подключенном репозитории нет обновлений
для данного пакета, система сообщит об уже установленном пакете последней
версии. Если в репозитории присутствует более новая версия или новое обновление
программа начнет процесс установки.
apt-get позволяет устанавливать в систему другие, пока еще не
установленные пакеты, требуемые для работы. Он определяет, какие пакеты
необходимо установить, и устанавливает их, пользуясь всеми доступными
репозиториями.
Установка пакета gimp командой apt-get install gimp приведет к
следующему диалогу с APT:
# apt-get install gimp
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
443
ЛКНВ.11100-01 90 02
Следующие дополнительные пакеты будут установлены:
icc-profiles libbabl libgegl libgimp libjavascriptcoregtk2
libopenraw libspiro libwebkitgtk2 libwmf
Следующие НОВЫЕ пакеты будут установлены:
gimp icc-profiles libbabl libgegl libgimp libjavascriptcoregtk2
libopenraw libspiro libweb-kitgtk2 libwmf
0 будет обновлено, 10 новых установлено, 0 пакетов будет удалено
и 0 не будет обновлено.
Необходимо получить 0B/24,6MB архивов.
После распаковки потребуется дополнительно 105MB дискового
пространства.
Продолжить? [Y/n] y
. . .
Получено 24,6MB за 0s (44,1MB/s).
Совершаем изменения...
Preparing... ####################### [100%]
1: libbabl ####################### [ 10%]
2: libwmf ####################### [ 20%]
3: libjavascriptcoregtk2 ####################### [ 30%]
4: libwebkitgtk2 ####################### [ 40%]
5: icc-profiles ####################### [ 50%]
6: libspiro ####################### [ 60%]
7: libopenraw ####################### [ 70%]
8: libgegl ####################### [ 80%]
9: libgimp ####################### [ 90%]
10: gimp ####################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.
Команда apt-get install имя_пакета используется и для обновления уже
установленного пакета или группы пакетов. В этом случае apt-get дополнительно
проверяет, не обновилась ли версия пакета в репозитории по сравнению с
установленным в системе.
При помощи APT можно установить и отдельный бинарный rpm-пакет, не
входящий ни в один из репозиториев. Для этого достаточно выполнить команду
apt-get install путь_к_файлу.rpm. При этом APT проведет стандартную
процедуру проверки зависимостей и конфликтов с уже установленными пакетами.
В результате операций с пакетами без использования APT может нарушиться
целостность ОС Альт 8 СП, и apt-get в таком случае откажется выполнять
операции установки, удаления или обновления.
Для восстановления целостности ОС Альт 8 СП необходимо повторить
операцию, задав опцию -f, заставляющую apt-get исправить нарушенные
444
ЛКНВ.11100-01 90 02
зависимости, удалить или заменить конфликтующие пакеты. Любые действия в
этом режиме обязательно требуют подтверждения со стороны пользователя.
При установке пакетов происходит запись в системный журнал вида:
apt-get: имя-пакета installed
Удаление установленного пакета командой apt
Для удаления пакета используется команда apt-get remove <имя_пакета>.
Удаление пакета с сохранением его файлов настройки производится при помощи
следующей команды:
# apt-get remove <значимая_часть_имени_пакета>
В случае, если при этом необходимо полностью очистить систему от всех
компонент удаляемого пакета, то применяется команда:
# apt-get remove --purge <значимая_часть_имени_пакета>
Для того чтобы не нарушать целостность системы, будут удалены и все
пакеты, зависящие от удаляемого.
В случае удаления с помощью apt-get базового компонента системы
появится запрос на подтверждение операции:
# apt-get remove filesystem
Обработка файловых зависимостей... Завершено
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
basesystem filesystem ppp sudo
Внимание: следующие базовые пакеты будут удалены:
В обычных условиях этого не должно было произойти, надеемся, вы
точно
представляете, чего требуете!
basesystem filesystem (по причине basesystem)
0 пакетов будет обновлено, 0 будет добавлено новых, 4 будет
удалено(заменено) и 0 не будет обновлено.
Необходимо получить 0B архивов. После распаковки 588kБ будет
освобождено.
Вы делаете нечто потенциально опасное!
Введите фразу 'Yes, do as I say!' чтобы продолжить.
Каждую ситуацию, в которой APT выдает такое сообщение, необходимо
рассматривать отдельно. Однако, вероятность того, что после выполнения этой
команды система окажется неработоспособной, очень велика.
445
ЛКНВ.11100-01 90 02
При удалении пакетов происходит запись в системный журнал вида:
apt-get: имя-пакета removed
Альтернативная установка дополнительного ПО
Для установки дополнительного ПО также можно использовать ЦУС либо
программу управления пакетами Synaptic.
ПРЕДУПРЕЖДЕНИЕ
Нельзя использовать одновременно два менеджера пакетов, так как это может
привести к их некорректной работе.
11.7.1. Установка дополнительного ПО в ЦУС
ЦУС содержит модуль установки пакетов: «Программное обеспечение»
«Установка программ». Для облегчения поиска доступные для установки
программы (рис. 160) разделены на группы, выводимые в левой части окна
программы. Справа расположен список самих программ с указанием их текущего
состояния:
- зеленая метка – пакет уже установлен;
- белая – пакет не установлен.
Рис. 160 ЦУС Программное обеспечение
446
ЛКНВ.11100-01 90 02
Объяснение всех обозначений можно увидеть, отметив пункт «Показать
статистику».
Для начала установки двойным щелчком мыши необходимо отметить
неустановленный пакет в правой половине окна и нажать на кнопку «Применить».
При необходимости менеджер пакетов попросит вставить установочный диск.
11.7.2. Программа управления пакетами Synaptic
Программа управления пакетами Synaptic находится на панели инструментов
меню MATE → «Система» → «Параметры» → «Прочие» «Менеджер пакетов».
Для облегчения поиска доступные для установки программы (рис. 161)
разделены на группы, выводимые в левой части окна программы. Справа
расположен список самих программ с указанием их текущего состояния:
- зеленая метка – пакет уже установлен;
- белая – пакет не установлен.
Рис. 161 Программа управления пакетами Synaptic
При выборе пакета из списка в нижней части отображаются сведения о нем и
его описание.
447
ЛКНВ.11100-01 90 02
Перед тем как устанавливать или обновлять пакет, необходимо нажать на
кнопку «Получить сведения» (или комбинацию клавиш <Ctrl>+<R>), для того чтобы
скачать список самых последних версий ПО.
Для начала установки двойным щелчком мыши необходимо отметить
неустановленный пакет в правой половине окна и нажать на кнопку «Применить».
Обновление всех установленных пакетов apt-get
Полное обновление всех установленных в системе пакетов производится при
помощи команды:
# apt-get dist-upgrade
П р и м е ч а н и е . Команда apt-get dist-upgrade обновит систему, но ядро
ОС не будет обновлено (см. п. 11.10).
В случае обновления всего дистрибутива APT проведет сравнение системы с
репозиторием и удалит устаревшие пакеты, установит новые версии
присутствующих в системе пакетов, отследит ситуации с переименованиями
пакетов или изменения зависимостей между старыми и новыми версиями программ.
Все, что потребуется поставить (или удалить) дополнительно к уже имеющемуся в
системе, будет указано в отчете apt-get, которым APT предварит само обновление.
Обновление всех установленных пакетов Synaptic
Synaptic поддерживает два варианта обновления системы:
1) Умное обновление (рекомендуется)
Умное обновление попытается разрешить конфликты пакетов перед
обновлением системы. Действие умного обновления аналогично действию команды
apt-get dist-upgrade.
2) Стандартное обновление
Стандартное обновление обновит только те пакеты, которые не требуют
установки дополнительных зависимостей.
448
ЛКНВ.11100-01 90 02
По умолчанию Synaptic использует умное обновление. Для того чтобы
изменить метод обновления системы, необходимо открыть диалоговое окно
«Параметры» (Параметры Параметры) и на вкладке «Основные» в списке
«Обновить систему» выбрать требуемый способ.
Для обновления системы необходимо:
1) нажать на кнопку «Получить сведения» (или комбинацию клавиш
<Ctrl>+<R>), для того чтобы скачать список самых последних версий ПО;
2) нажать на кнопку «Отметить для обновления» (или комбинацию клавиш
<Ctrl>+<G>), для того чтобы Synaptic отметил для обновления все пакеты;
3) нажать на кнопку «Применить».
Обновление ядра и модулей ядра
Для обновления ядра ОС необходимо выполнить команду:
# update-kernel
П р и м е ч а н и е . Если индексы сегодня еще не обновлялись перед
выполнением команды update-kernel необходимо выполнить команду
apt-get update.
Если необходимо обновить/установить другой тип ядра, необходимо
выполнить команду: update-kernel -t <новый тип ядра>
где <новый тип ядра> std-def, un-def и т.п.
П р и м е ч а н и е . Ключ -t и тип ядра (std-def, un-def и т.п.) следует
указывать только если необходимо обновить ядро другого типа, так как по
умолчанию обновляется текущий тип ядра. Узнать версию загруженного ядра
можно командой: $ uname r
Команда update-kernel обновляет и модули ядра, если в репозитории
обновилось что-то из модулей без обновления ядра.
Новое ядро загрузится только после перезагрузки системы.
Установка/обновление модулей ядра выполняется командой:
apt-get install kernel-modules-<модуль>-<тип ядра>
Например, для установки модуля VirtualBox, если текущий тип ядра
std-def, следует выполнить команду:
# apt-get install kernel-modules-virtualbox-std-def
449
ЛКНВ.11100-01 90 02
Удаление старых версий ядра
После успешной загрузки на обновленном ядре можно удалить старое,
выполнив команду:
# remove-old-kernels
Обновление изолированного окружения (chrooted environment)
Команда update_chrooted --list выводит список всех типов модулей для
update_chrooted, которые установлены в системе:
# update_chrooted --list
List of registered types: all conf lib
С помощью команды update_chrooted <имя_типа> можно выполнить все
модули указанного типа.
После изменения общесистемных конфигурационных файлов типа
/etc/resolv.conf, для того чтобы синхронизировать эти изменения во всех
многочисленных chrooted environments следует выполнить команду:
# update_chrooted conf
После изменения системных библиотек следует выполнить команду:
# update_chrooted lib
Для синхронизации изменений конфигурационных файлов и системных
библиотек следует выполнить команду:
# update_chrooted all
Проверка подлинности пакетов
Подлинность пакетов при обновлении обеспечивается средствами
кодирования, подтверждающих как целостность самих пакетов, так и целостность
индексов, описывающих репозитории.
Ключевая информация для проверки подлинности распространяется вместе с
дистрибутивом на сертифицированном носителе и защищена от потенциальной
подмены при передаче по каналам связи.
Проверить подлинность и целостность пакета можно командой:
# rpm vK имя_пакета
450
ЛКНВ.11100-01 90 02
Получение уведомлений о выходе обновлений
Информирование потребителей о мерах, направленных на нейтрализацию
выявленных уязвимостей ПИ ОС Альт 8 СП, и выпускаемых обновлениях
выполняется путем публикации информации на официальном сайте предприятия-
разработчика (https://altsp.su) или по электронной почте.
Получение и доставка обновлений
Для ПИ ОС Альт 8 СП для архитектуры Эльбрус получение и доставка файлов
обновленной версии ПИ ОС Альт 8 СП или файлов обновлений к компьютерам
происходит на электронных носителях.
Модуль ЦУС «Сервер обновлений» (пакет alterator-mirror) из раздела
«Серверы» предназначен для зеркалирования репозиториев и публикации их для
обновлений рабочих станций и серверов.
Сервер обновлений – технология, позволяющая настроить автоматическое
обновление программного обеспечения, установленного на клиентских машинах
(рабочих местах), работающих под управлением ОС Альт 8 СП.
Для добавления диска в качестве источника установки следует
воспользоваться командой apt-cdrom add (см. п. 11.1.1).
По умолчанию локальное зеркало репозитория находится в
/srv/public/mirror. Для того чтобы зеркалирование происходило в другую папку
необходимо эту папку примонтировать в папку /srv/public/mirror. Для этого в
файл /etc/fstab следует вписать следующую строку:
/media/disk/localrepo /srv/public/mirror none rw,bind,auto 0 0
где /media/disk/localrepo папка-хранилище локального репозитория.
На странице настройки сервера обновлений ЦУС (рис. 162) можно выбрать,
как часто выполнять закачку пакетов, можно выставить время, когда начинать
зеркалирование ис. 163).
Так же можно выбрать репозитории, локальные срезы которых необходимы.
Далее при нажатии на название репозитория, появляются настройки этого
репозитория. Необходимо выбрать источник (сайт, откуда будет скачиваться
451
ЛКНВ.11100-01 90 02
репозиторий), архитектуру процессора (если их несколько, то стоит выбрать
соответствующие).
Настройка локального репозитория заканчивается нажатием на кнопку
«Применить».
Сервер обновлений предоставляет возможность автоматически настроить
обновление клиентских машин в нужном режиме:
- локальное зеркало репозитория в этом режиме на сервере создается копия
удаленного репозитория, доступная клиентским машинам по протоколу
FTP. Загрузка ПО клиентскими машинами производится с локального
сервера. Наличие на локальном сервере зеркала репозитория при большом
количестве машин в сети позволяет существенно сэкономить на трафике;
- публикация репозитория в этом случае реального зеркалирования
(загрузки пакетов) не происходит. Публикуется URL внешнего сервера,
содержащего репозиторий. Такая публикация позволяет клиентским
машинам автоматически настроить свои менеджеры пакетов на
использование внешнего сервера. Загрузка ПО клиентским машинам
производится с внешнего сервера.
Рис. 162 Меню «Сервер обновлений»
452
ЛКНВ.11100-01 90 02
Рис. 163 Настройка расписания
Здесь также можно указать имена каталогов и файлов, которые будут
исключены из синхронизации, что позволит уменьшить размер скачиваемых файлов
и занимаемое репозиторием место на диске. Например, не скачивать пакеты с
исходным кодом и пакеты с отладочной информацией:
SRPMS
*-debuginfo-*
Шаблоны указываются по одному в отдельной строке. Символ «*»
используется для подстановки любого количества символов.
Настройка локального репозитория заканчивается нажатием на кнопку
«Применить».
Далее необходимо отредактировать файл /etc/httpd2/conf/extra-
available/Directory_html_default.conf, изменив следующие строки:
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Эти настройки разрешают серверу apache обрабатывать символические
ссылки. Перезапустите apache:
# service httpd2 restart
Осуществите переход в папку веб-сервера:
cd /var/www/html
Создайте здесь символическую ссылку на репозиторий:
ln -s /srv/public/mirror mirror
453
ЛКНВ.11100-01 90 02
На клиентских машинах необходимо настроить репозитории. Для этого
необходимо запустить Synaptic, в параметрах выбрать репозитории. И далее
настроить URL доступных репозиториев:
http://<IP-адрес>/mirror/
Так же со стороны клиентских машин на них необходимо настроить модуль
ЦУС «Обновление системы» (пакет alterator-updates) в соответсвии с п. 8.16.4.
Единая команда управления пакетами (epm)
epm единая команда управления пакетами. Основное предназначение:
унифицировать управление пакетам в дистрибутивах с разными пакетными
менеджерами. epm упрощает процедуру управления пакетами, особенно полезна для
тех, кто работает с множеством дистрибутивов, может использоваться в скриптах и
установщиках, сервисных программах, в повседневном администрировании
различных систем. Кроме того, в epm добавлены типовые операции, которые,
например, в случае использования apt, потребовали бы ввода более одной команды.
Установка выполняется командой:
# apt-get install eepm
Включает в себя следующую функциональность:
- управление пакетами (установка – удаление – поиск);
- управление репозиториями (добавление – удаление – обновление – список);
- управление системными сервисами (включение – выключение – список).
Список поддерживаемых пакетных менеджеров: rpm, deb, tgz, tbz, tbz2, apk,
pkg.gz.
454
ЛКНВ.11100-01 90 02
Список команд, epm --help:
Описание операции
Команда epm
Команда ОС Альт 8 СП
(ALT Linux)
Установка пакета по
названию в систему
epm -i (package)
apt-get install (package)
Установка файла пакета в
систему
epm -i (package file)
apt-get install (package file)
Удаление пакета из
системы
epm -e (package)
apt-get remove (package)
Поиск пакета в
репозитории
epm -s (text)
apt-cache search (text)
Проверка наличия пакета
в системе
epm -q (package)
rpm -qa (pipe) grep (package)
Список установленных
пакетов
epm -qa
rpm -qa
Поиск по названиям
установленных пакетов
epm -qp <word>
grep <word>
Принадлежность файла к
(установленному) пакету
epm -qf (file)
rpm -qf (file)
Поиск, в каком пакете
есть указанный файл
epm -sf <file>
Список файлов в
(установленном) пакете
epm -ql (package)
rpm -ql (package)
Вывести информацию о
пакете
epm -qi (package)
apt-cache show (package)
Обновить дистрибутив
epm upgrade
apt-get dist-upgrade
Примеры:
# epms name subtext выполняет epms name | grep subtest
# epms name ^subtext выполняет epms name | grep -v subtest
# epms "name1 name2" выполняет поиск именно такого сочетания.
455
ЛКНВ.11100-01 90 02
12. ОГРАНИЧЕНИЕ ДЕЙСТВИЙ ПОЛЬЗОВАТЕЛЯ
Определение параметров уничтожения данных
Для пользователей необходимо запретить использование команды rm.
Для этого необходимо выполнить команду:
# chmod o-x /bin/rm
Команда srm предназначена для удаления данных без возможности их
восстановления. srm выполняет безопасную перезапись/переименование/удаление
целевого файла(ов). Использование команды srm аналогично использованию rm.
Команда shred переписывает несколько раз файл, скрывая его содержимое,
для того, чтобы сделать более трудоемким процесс восстановления данных даже в
случае использования специального оборудования для восстановления:
shred [ОПЦИЯ] ФАЙЛ [...]
Стандартные опции для запуска команды:
1) -f, --force изменить права для разрешения записи, если необходимо;
2) -n, --iterations=N переписать N раз вместо указанных (25) по
умолчанию;
3) -s, --size=N очистить N байт (возможны суффиксы вида K, M, G);
4) -u, --remove обрезать и удалить файл после перезаписи;
5) -v, --verbose показывать индикатор прогресса
6) -x, --exact не округлять размеры файлов до следующего целого блока;
7) -z, --zero перезаписать в конце с нулями, чтобы скрыть
перемешивание.
Если файл задан как -, перемешивать стандартный вывод.
Удаляет ФАЙЛЫ если указан --remove (-u). По умолчанию файлы не
удаляются, так как часто обрабатываются файлы-устройства вроде /dev/hda, а
такие файлы нельзя удалять.
456
ЛКНВ.11100-01 90 02
Команда sfill выполняет безопасную перезапись свободного пространства
на разделе, в котором находится указанная директория и всех свободных индексных
дескрипторов (inode) указанного каталога. Процесс удаления данных выглядит
следующим образом:
- 1 проход с 0xff (все данные затираются значением 0xff);
- 5 случайных проходов с /dev/urandom используя RNG;
- 27 проходов со значениями Питера Гутмана;
- обрезает файл.
Стандартные опции для запуска команды:
1) -d игнорировать специальные файлы "." и "..";
2) -f быстрый (и небезопасный режим);
3) -l выполнить только два прохода, с 0xff и случайное заполнение;
4) -l -l выполнить только случайное заполнение (один проход);
5) -r выполнить в рекурсивном режиме, удалить все подкаталоги;
6) -v подробный режим;
7) -z последний проход заполняет нулями, а не случайными данными.
Пользователю запрещено определять параметры уничтожения данных. Эти
параметры определяет администратор.
Для определения параметров уничтожения данных в системе созданы скрипты
с предопределенными настройками уничтожения данных, для их переопределения
администратор должен внести правки в файл /etc/sysconfig/s_rm.
Пользователи для удаления данных должны использовать команды s_rm и
s_fill.
Модуль AltHa
AltHa – это модуль безопасности Linux, может использоваться для настройки
блокировки возможности удаления открытого файла.
Модуль в настоящее время имеет три варианта защиты пользовательского
пространства:
- игнорировать биты SUID в двоичных файлах (возможны исключения);
457
ЛКНВ.11100-01 90 02
- запретить запуск выбранных интерпретаторов в интерактивном режиме;
- отключить возможность удаления открытых файлов в выбранных каталогах.
Для включения модуля AltHa необходимо передать ядру параметр altha=1:
для этого в файле /boot/boot.conf необходимо добавить в параметр cmdline
опцию altha=1.
Перезагрузить систему.
12.2.1. Запрет бита исполнения (SUID)
При включенном подмодуле altha.nosuid биты SUID во всех двоичных файлах,
кроме явно перечисленных, игнорируются в масштабе всей системы.
Отключение влияния бита SUID на привилегии порождаемого
процесса в консоли
Для включения запрета бита исполнения следует установить значение
переменной kernel.altha.nosuid.enabled равным 1:
# sysctl -w kernel.altha.nosuid.enabled=1
И добавить, если это необходимо, исключения (список включенных двоичных
файлов SUID, разделенных двоеточиями), например:
# sysctl -w kernel.altha.nosuid.exceptions="/bin/su:/usr/libexec/hasher-
priv/hasher-priv"
Проверка состояния режима запрета бита исполнения выполняется командой:
# sysctl -n kernel.altha.nosuid.enabled
1
Результат выполнения команды:
- 1 – режим включен;
- 0 – режим выключен.
12.2.2. Блокировка интерпретаторов (запрет запуска скриптов)
При включении блокировки интерпретаторов блокируется
несанкционированное использование интерпретатора для выполнения кода
напрямую из командной строки.
458
ЛКНВ.11100-01 90 02
Блокировка интерпретаторов в консоли
Для включения режима блокировки интерпретаторов следует установить
значение переменной kernel.altha.rstrscript.enabled равным 1:
# sysctl -w kernel.altha.rstrscript.enabled=1
Переменная kernel.altha.rstrscript.interpreters должна содержать
разделенный двоеточиями список ограниченных интерпретаторов. Для изменения
значения переменной kernel.altha.rstrscript.interpreters выполнить
команду:
# sysctl -w
kernel.altha.rstrscript.interpreters="/usr/bin/python:/usr/bin/python3
:/usr/bin/perl:/usr/bin/tclsh"
П р и м е ч а н и е . В этой конфигурации все скрипты, начинающиеся с
#!/usr/bin/env python, будут заблокированы.
Проверка состояния режима блокировки интерпретаторов выполняется
командой:
# sysctl -n kernel.altha.rstrscript.enabled
1
Результат выполнения команды:
- 1 – режим включен;
- 0 – режим выключен.
Для получения списка заблокированных интерпретаторов выполнить команду:
# sysctl -n kernel.altha.rstrscript.interpreters
/usr/bin/python:/usr/bin/python3:/usr/bin/perl:/usr/bin/tclsh
12.2.3. Отключение возможности удаления открытых файлов
Отключение возможности удаления открытых файлов в консоли
Для отключения возможности удаления открытых файлов следует установить
значение переменной kernel.altha.olock.enabled равным 1:
# sysctl -w kernel.altha.olock.enabled=1
Переменная kernel.altha.olock.dirs должна содержать разделенный
двоеточиями список каталогов, например: /var/lib/something:/tmp/something.
459
ЛКНВ.11100-01 90 02
Для изменения значения переменной kernel.altha.olock.dirs следует выполнить
команду:
# sysctl -w kernel.altha.olock.dirs="/var/lib/something:/tmp/something"
Проверка состояния режима выполняется командой:
# sysctl -n kernel.altha.olock.enabled
1
Результат выполнения команды:
- 1 – режим включен;
- 0 – режим выключен.
При необходимости устанавливать эти переменные автоматически при каждой
загрузке ОС, необходимо добавить их в файл /etc/sysctl.conf. После
редактирования sysctl.conf применить изменения, без перезагрузки ОС, можно
выполнив команду:
# sysctl -p
460
ЛКНВ.11100-01 90 02
13. КОНТРОЛЬНЫЕ ХАРАКТЕРИСТИКИ РАЗВЕРНУТОЙ ОС АЛЬТ 8 СП
После установки необходимо проверить корректность развертывания
ОС Альт 8 СП путем подсчета и сличения контрольных характеристик
установленных файлов. Подробнее см. в документе «Руководство по комплексу
средств защиты. ЛКНВ.11100-01 99 02».
В качестве контрольной характеристики файла выступает контрольная сумма.
Подробнее об интегральных контрольных суммах ПИ, расположении
пофайловых отчетов подсчета, алгоритме подсчета контрольных сумм приведено в
документе «Формуляр. ЛКНВ.11100-01 30 01».
В случае изменения контрольных сумм после применения критических
обновлений ОС Альт 8 СП перечень измененных файлов и новые контрольные
суммы необходимо внести в раздел «Особые отметки» документа «Формуляр.
ЛКНВ.11100-01 30 01».
461
ЛКНВ.11100-01 90 02
14. ОСНОВЫ АДМИНИСТРИРОВАНИЯ LINUX
Общие принципы работы ОС
14.1.1. Процессы и файлы
ОС Альт 8 СП является многопользовательской интегрированной системой.
Это значит, что она разработана в расчете на одновременную работу нескольких
пользователей.
Пользователь может либо сам работать в системе, выполняя некоторую
последовательность команд, либо от его имени могут выполняться прикладные
процессы.
Пользователь взаимодействует с системой через командный интерпретатор.
Командный интерпретатор представляет собой прикладную программу, которая
принимает от пользователя команды или набор команд и транслирует их в
системные вызовы к ядру системы. Интерпретатор позволяет пользователю
просматривать файлы, передвигаться по дереву файловой системы, запускать
прикладные процессы. Все командные интерпретаторы UNIX имеют развитый
командный язык и позволяют писать достаточно сложные программы, упрощающие
процесс администрирования системы и работы с ней.
Процессы функционирования ОС
Все программы, которые выполняются в текущий момент времени,
называются процессами. Процессы можно разделить на два основных класса:
системные процессы и пользовательские процессы.
Системные процессы – программы, решающие внутренние задачи ОС,
например, организацию виртуальной памяти на диске или предоставляющие
пользователям те или иные сервисы (процессы-службы).
Пользовательские процессы – процессы, запускаемые пользователем из
командного интерпретатора для решения задач пользователя или управления
системными процессами. Linux изначально разрабатывался как многозадачная
462
ЛКНВ.11100-01 90 02
система. Он использует технологии, опробованные и отработанные другими
реализациями UNIX, которые существовали ранее.
Фоновый режим работы процесса – режим, когда программа может работать
без взаимодействия с пользователем. В случае необходимости интерактивной
работы с пользователем общем случае) процесс будет «остановлен» ядром, и
работа его продолжается только после переведения его в «нормальный» режим
работы.
Файловая система ОС
В ОС использована файловая система Linux, которая, в отличие от файловых
систем DOS и Windows, является единым деревом. Корень этого дерева – каталог,
называемый root и обозначаемый /.
Части дерева файловой системы могут физически располагаться в разных
разделах разных дисков или вообще на других компьютерах – для пользователя это
прозрачно. Процесс присоединения файловой системы раздела к дереву называется
монтированием, удаление – размонтированием. Например, файловая система
CD-ROM в дистрибутиве монтируется по умолчанию в каталог /media/cdrom (путь
в дистрибутиве обозначается с использованием /, а не \, как в DOS/Windows).
Текущий каталог обозначается ./.
Структура каталогов
Корневой каталог /:
- /bin – командные оболочки (shell), основные утилиты;
- /boot – содержит ядро системы;
- /dev – псевдофайлы устройств, позволяющие работать с устройствами
напрямую. Файлы в /dev создаются сервисом udev;
- /etc – общесистемные конфигурационные файлы для большинства
программ в системе;
- /etc/rc?.d, /etc/init.d, /etc/rc.boot, /etc/rc.d  каталоги, где
расположены командные файлы, выполняемые при запуске системы или
при смене ее режима работы;
463
ЛКНВ.11100-01 90 02
- /etc/passwd – база данных пользователей, в которой содержится
информация об имени пользователя, его настоящем имени, личном
каталоге, его зашифрованный пароль и другие данные;
- /etc/shadow – теневая база данных пользователей. При этом информация
из файла /etc/passwd перемещается в /etc/shadow, который недоступен
для чтения всем, кроме пользователя root. В случае использования
альтернативной схемы управления теневыми паролями (TCB), все теневые
пароли для каждого пользователя располагаются в каталоге
/etc/tcb/имя пользователя/shadow;
- /home – домашние каталоги пользователей;
- /lib – содержит файлы динамических библиотек, необходимых для работы
большей части приложений, и подгружаемые модули ядра;
- /lost+found – восстановленные файлы;
- /media – подключаемые носители (каталоги для монтирования файловых
систем сменных устройств);
- /mnt – точки временного монтирования;
- /opt – вспомогательные пакеты;
- /proc – виртуальная файловая система, хранящаяся в памяти компьютера
при загруженной ОС. В данном каталоге расположены самые свежие
сведения обо всех процессах, запущенных на компьютере;
- /root – домашний каталог администратора системы;
- /run – файлы состояния приложений;
- /sbin – набор программ для административной работы с системой
(системные утилиты);
- /selinux – виртуальная файловая система SELinux;
- /srv – виртуальные данные сервисных служб;
- /sys – файловая система, содержащая информацию о текущем состоянии
системы;
- /tmp – временные файлы;
464
ЛКНВ.11100-01 90 02
- /usr – пользовательские двоичные файлы и данные, используемые только
для чтения (программы и библиотеки);
- /var – файлы для хранения изменяющихся данных (рабочие файлы
программ, очереди, журналы).
Каталог /usr:
- /usr/bin – дополнительные программы для всех учетных записей;
- /usr/sbin – команды, используемые при администрировании системы и не
предназначенные для размещения в файловой системе root;
- /usr/local – место, где рекомендуется размещать файлы, установленные
без использования пакетных менеджеров, внутренняя организация
каталогов практически такая же, как и корневого каталога;
- /usr/man – каталог, где хранятся файлы справочного руководства man;
- /usr/share – каталог для размещения общедоступных файлов большей
части приложений.
Каталог /var:
- /var/log – место, где хранятся файлы аудита работы системы и
приложений;
- /var/spool – каталог для хранения файлов, находящихся в очереди на
обработку для того или иного процесса (очереди печати, непрочитанные
или не отправленные письма, задачи cron т.д.).
Организация файловой структуры
Система домашних каталогов пользователей помогает организовывать
безопасную работу пользователей в многопользовательской системе. Вне своего
домашнего каталога пользователь обладает минимальными правами (обычно чтение
и выполнение файлов) и не может нанести ущерб системе, например, удалив или
изменив файл.
Кроме файлов, созданных пользователем, в его домашнем каталоге обычно
содержатся персональные конфигурационные файлы некоторых программ.
465
ЛКНВ.11100-01 90 02
Маршрут (путь) – это последовательность имен каталогов, представляющая
собой путь в файловой системе к данному файлу, где каждое следующее имя
отделяется от предыдущего наклонной чертой (слешем). Если название маршрута
начинается со слеша, то путь в искомый файл начинается от корневого каталога
всего дерева системы. В обратном случае, если название маршрута начинается
непосредственно с имени файла, то путь к искомому файлу должен начаться от
текущего каталога (рабочего каталога).
Имя файла может содержать любые символы за исключением косой черты (/).
Однако следует избегать применения в именах файлов большинства знаков
препинания и непечатаемых символов. При выборе имен файлов рекомендуется
ограничиться следующими символами:
- строчные и ПРОПИСНЫЕ буквы. Следует обратить внимание на то, что
регистр всегда имеет значение;
- символ подчеркивания (_);
- точка (.).
Для удобства работы точку можно использовать для отделения имени файла
от расширения файла. Данная возможность может быть необходима пользователям
или некоторым программам, но не имеет значение для shell.
Имена дисков и разделов
Все физические устройства компьютера отображаются в каталог /dev
файловой системы дистрибутива. Диски том числе IDE/SATA/SCSI/SAS жесткие
диски, USB-диски) имеют имена:
- /dev/sda – первый диск;
- /dev/sdb – второй диск;
- и т. д.
Диски обозначаются /dev/sdX, где X – a, b, c, d, e, в зависимости от
порядкового номера диска на шине.
Раздел диска обозначается числом после его имени. Например, /dev/sdb4 –
 четвертый раздел второго диска.
466
ЛКНВ.11100-01 90 02
Разделы, необходимые для работы ОС
Для работы ОС на жестком диске (дисках) должны быть созданы, по крайней
мере, два раздела: корневой (то есть тот, который будет содержать каталог /) и
раздел подкачки (swap). Размер последнего, как правило, составляет от однократной
до двукратной величины оперативной памяти компьютера. Если на диске много
свободного места, то можно создать отдельные разделы для каталогов /usr, /home,
/var.
14.1.2. Командные оболочки (интерпретаторы)
Для управления ОС используются командные интерпретаторы (shell).
Зайдя в систему, Вы увидите приглашение – строку, содержащую символ «$»
(далее этот символ будет обозначать командную строку). Программа ожидает ваших
команд. Роль командного интерпретатора – передавать ваши команды ОС. По своим
функциям он соответствует command.com в DOS, но несравненно мощнее. При
помощи командных интерпретаторов можно писать небольшие программы 
 сценарии (скрипты). В Linux доступны следующие командные оболочки:
- bash – самая распространенная оболочка под linux. Она ведет историю
команд и предоставляет возможность их редактирования;
- pdksh – клон korn shell, хорошо известной оболочки в UNIX системах.
Проверить, какая оболочка используется в данный момент можно, выполнив
команду:
$ echo $SHELL
Оболочкой по умолчанию является Bash (Bourne Again Shell) – самая
распространенная оболочка под Linux, которая ведет историю команд и
предоставляет возможность их редактирования.
14.1.3. Командная оболочка Bash
В Bash имеется несколько приемов для работы со строкой команд. Например,
можно использовать следующие сочетания клавиш:
- <Ctrl>+<A> – перейти на начало строки;
- <Ctrl>+<U> – удалить текущую строку;
467
ЛКНВ.11100-01 90 02
- <Ctrl>+<C> – остановить текущую задачу.
Для ввода нескольких команд одной строкой можно использовать разделитель
«;». По истории команд можно перемещаться с помощью клавиш («вверх») и
(«вниз»).
Чтобы найти конкретную команду в списке набранных, не пролистывая всю
историю, можно нажать <Ctrl+R> и начать вводить символы ранее введенной
команды.
Для просмотра истории команд можно воспользоваться командой history.
Команды, присутствующие в истории, отображаются в списке пронумерованными.
Чтобы запустить конкретную команду необходимо набрать:
!номер команды
Если ввести:
!!
запустится последняя из набранных команд.
В Bash имеется возможность самостоятельного завершения имен команд из
общего списка команд, что облегчает работу при вводе команд, в случае, если имена
программ и команд слишком длинны. При нажатии клавиши <Tab> Bash завершает
имя команды, программы или каталога, если не существует нескольких
альтернативных вариантов. Например, чтобы использовать программу
декомпрессии gunzip, можно набрать следующую команду:
gu
Затем нажать клавишу <Tab>. Так как в данном случае существует несколько
возможных вариантов завершения команды, то необходимо повторно нажать
клавишу <Tab>, чтобы получить список имен, начинающихся с gu.
В предложенном примере можно получить следующий список:
$ gu
guile gunzip gupnp-binding-tool
Если набрать: n (gunzip – это единственное имя, третьей буквой которого
является «n»), а затем нажать клавишу <Tab>, то оболочка самостоятельно дополнит
имя. Чтобы запустить команду нужно нажать <Enter>.
468
ЛКНВ.11100-01 90 02
Программы, вызываемые из командной строки, Bash ищет в каталогах,
определяемых в системной переменной $PATH. По умолчанию в этот перечень
каталогов не входит текущий каталог, обозначаемый ./ (точка слеш) (если только не
выбран один из двух самых слабых уровней защиты). Поэтому, для запуска
программы из текущего каталога, необходимо использовать команду примере
запускается команда prog):
./prog
14.1.4. Стыкование команд в системе Linux
Стандартный ввод и стандартный вывод
Многие команды системы имеют так называемые стандартный ввод (standard
input) и стандартный вывод (standard output), часто сокращаемые до stdin и stdout.
Ввод и вывод здесь – это входная и выходная информация для данной команды.
Программная оболочка делает так, что стандартным вводом является клавиатура, а
стандартным выводом – экран монитора.
Пример с использованием команды cat. По умолчанию команда cat читает
данные из всех файлов, которые указаны в командной строке, и посылает эту
информацию непосредственно в стандартный вывод (stdout). Следовательно,
команда:
cat history-final masters-thesis
выведет на экран сначала содержимое файла history-final, а затем – файла
masters-thesis.
Если имя файла не указано, программа cat читает входные данные из stdin и
возвращает их в stdout. Пример:
cat
Hello there.
Hello there.
Bye.
Bye.
Ctrl-D
Каждую строку, вводимую с клавиатуры, программа cat немедленно
возвращает на экран. При вводе информации со стандартного ввода конец текста
469
ЛКНВ.11100-01 90 02
сигнализируется вводом специальной комбинации клавиш, как правило,
<Ctrl>+<D>. Сокращенное название сигнала конца текста – EOT (end of text).
Перенаправление ввода и вывода
При необходимости можно перенаправить стандартный вывод, используя
символ >, и стандартный ввод, используя символ <.
Фильтр (filter) – программа, которая читает данные из стандартного ввода,
некоторым образом их обрабатывает и результат направляет на стандартный вывод.
Когда применяется перенаправление, в качестве стандартного ввода и вывода могут
выступать файлы. Как указывалось выше, по умолчанию, stdin и stdout относятся к
клавиатуре и к экрану соответственно. Программа sort является простым
фильтром – она сортирует входные данные и посылает результат на стандартный
вывод. Совсем простым фильтром является программа cat – она ничего не делает с
входными данными, а просто пересылает их на выход.
Использование состыкованных команд
Стыковку команд (pipelines) осуществляет командная оболочка, которая stdout
первой команды направляет на stdin второй команды. Для стыковки используется
символ |. Направить stdout команды ls на stdin команды sort:
ls | sort -r
notes
masters-thesis
history-final
english-list
Вывод списка файлов частями:
ls /usr/bin | more
Если необходимо вывести на экран последнее по алфавиту имя файла в
текущем каталоге, можно использовать следующую команду:
ls | sort -r | head -1 notes
где команда head -1 выводит на экран первую строку получаемого ей
входного потока строк примере поток состоит из данных от команды ls),
отсортированных в обратном алфавитном порядке.
470
ЛКНВ.11100-01 90 02
Недеструктивное перенаправление вывода
Эффект от использования символа > для перенаправления вывода файла
является деструктивным; т.е, команда ls > file-list уничтожит содержимое
файла file-list, если этот файл ранее существовал, и создаст на его месте новый
файл. Если вместо этого перенаправление будет сделано с помощью символов >>,
то вывод будет приписан в конец указанного файла, при этом исходное содержимое
файла не будет уничтожено.
П р и м е ч а н и е . Перенаправление ввода и вывода и стыкование команд
осуществляется командными оболочками, которые поддерживают использование
символов >, >> и |. Сами команды не способны воспринимать и интерпретировать
эти символы.
Режим суперпользователя
14.2.1. Пользователи ОС
Linux – система многопользовательская, а потому пользователь – ключевое
понятие для организации всей системы доступа в Linux. Файлы всех пользователей
в Linux хранятся раздельно, у каждого пользователя есть собственный домашний
каталог, в котором он может хранить свои данные. Доступ других пользователей к
домашнему каталогу пользователя может быть ограничен.
Суперпользователь в Linux – это выделенный пользователь системы, на
которого не распространяются ограничения прав доступа. Именно
суперпользователь имеет возможность произвольно изменять владельца и группу
файла. Ему открыт доступ на чтение и запись к любому файлу или каталогу
системы.
Среди учетных записей Linux всегда есть учетная запись суперпользователя
root. Поэтому вместо «суперпользователь» часто говорят «root». Множество
системных файлов принадлежат root, множество файлов только ему доступны для
чтения или записи. Пароль этой учетной записи – одна из самых больших
драгоценностей системы. Именно с ее помощью системные администраторы
выполняют самую ответственную работу.
471
ЛКНВ.11100-01 90 02
14.2.2. Назначение режима суперпользователя
Системные утилиты, например, такие, как ЦУС или программа управления
пакетами Synaptic, настройки КСЗ ОС требуют для своей работы привилегий
суперпользователя, потому что они вносят изменения в системные файлы. При их
запуске выводится запрос/диалоговое окно с запросом пароля системного
администратора.
14.2.3. Получение прав суперпользователя
Существует два различных способа получить права суперпользователя.
Первый – это зарегистрироваться в системе под именем root в командной
строке.
Второй способ – воспользоваться специальной утилитой su (shell of user),
которая позволяет выполнить одну или несколько команд от лица другого
пользователя. По умолчанию эта утилита выполняет команду sh от пользователя
root, то есть запускает командный интерпретатор. Отличие от предыдущего способа
в том, что всегда известно, кто именно запускал su, а значит, ясно, кто выполнил
определенное административное действие.
В некоторых случаях удобнее использовать не su, а утилиту sudo, которая
позволяет выполнять только заранее заданные команды.
П р и м е ч а н и е . Для того чтобы воспользоваться командами su и sudo,
необходимо быть членом группы wheel. Пользователь, созданный при установке
системы, по умолчанию уже включен в эту группу.
В дистрибутивах ОС Альт 8 СП для управления доступом к важным службам
используется подсистема control. control – механизм переключения между неким
набором фиксированных состояний для задач, допускающих такой набор.
Команда control доступна только для суперпользователя (root). Для того,
чтобы посмотреть, что означает та или иная политика control азрешения
выполнения конкретной команды, управляемой control), надо запустить команду с
ключом help:
# control su help
472
ЛКНВ.11100-01 90 02
Запустив control без параметров, можно увидеть полный список команд,
управляемых командой (facilities) вместе с их текущим состоянием и набором
допустимых состояний.
14.2.4. Переход в режим суперпользователя
Для перехода в режим суперпользователя наберите в терминале команду su -.
Синтаксис:
su [-] [name [arg…]]
Чтобы вернуться к правам пользователя, необходимо ввести следующую
команду:
exit
Если воспользоваться командой su без ключа, то происходит вызов
командного интерпретатора с правами root. При этом значение переменных
окружения, в частности $PATH, остается таким же, как у пользователя: в переменной
$PATH не окажется каталогов /sbin, /usr/sbin, без указания полного имени будут
недоступны команды route, shutdown, mkswap и другие. Более того, переменная
$HOME будет указывать на каталог пользователя, все программы, запущенные в
режиме суперпользователя, сохранят свои настройки с правами root в каталоге
пользователя, что в дальнейшем может вызвать проблемы.
Чтобы избежать этого, следует использовать su -. В этом режиме su запустит
командный интерпретатор в качестве login shell, и он будет вести себя в точности
так, как если бы в системе зарегистрировался root.
Управление пользователями
Подробнее о средствах управления учетными записями пользователей
смотрите в документе «Руководство по комплексу средств защиты.
ЛКНВ.11100-01 99 02».
473
ЛКНВ.11100-01 90 02
Система инициализации systemd и sysvinit
14.4.1. Запуск операционной системы
Запуск системы
Алгоритм запуска компьютера приблизительно такой:
1) BIOS (БСВВ) компьютера;
2) загрузчик системы (например, LILO, GRUB или другой). В загрузчике
(файл /boot/boot.conf) можно задать параметры запуска системы;
3) загружается ядро Linux;
4) запускается на выполнение первый процесс в системе – init.
Ядром запускается самая первая программа в системе init. Ее задачей является
запуск новых процессов и повторный запуск завершившихся. Можно просмотреть,
где расположился init в иерархии процессов системы, введите команду: pstree.
От конфигурации init зависит, какая система инициализации будет
использована.
Система инициализации
Система инициализации – это набор скриптов, которые будут выполнены при
старте системы.
Существуют разные системы инициализации, наиболее популярной системой
являются sysvinit и ее модификации. systemd разрабатывается как замена для
sysVinit.
В ОС Альт 8 СП используется sysvinit (от System V init).
System V – классическая схема инициализации, на которой базируются многие
дистрибутивы. Привычна и довольно проста для понимания: init описывает весь
процесс загрузки в своем конфигурационном файле /etc/inittab, откуда
вызываются другие программы и скрипты на определенном этапе запуска.
14.4.2. Примеры команд управления службами, журнал в systemd
Обратите внимание, что команды service и chkconfig продолжат работать в
systemd практически без изменений. Тем не менее, в таблице 14 показано как
выполнить те же действия с помощью встроенных утилит systemctl.
474
ЛКНВ.11100-01 90 02
Т а б л и ц а 14 Команды управления службами
Команды sysvinit
Команды systemd
Примечания
service frobozz
start
systemctl start frobozz.service
Используется для
запуска службы (не
перезагружает
постоянные).
service frobozz stop
systemctl stop frobozz.service
Используется для
остановки службы
(не перезагружает
постоянные).
service frobozz
restart
systemctl restart frobozz.service
Используется для
остановки и
последующего
запуска службы.
service frobozz
reload
systemctl reload frobozz.service
Если
поддерживается,
перезагружает
файлы
конфигурации без
прерывания
незаконченных
операций.
service frobozz
condrestart
systemctl condrestart
frobozz.service
Перезапускает
службу, если она
уже работает.
service frobozz
status
systemctl status frobozz.service
Сообщает, запущена
ли уже служба.
ls /etc/rc.d/init.d/
systemctl list-unit-files --
type=service (preferred)
ls /lib/systemd/system/*.service
/etc/systemd/system/*.service
Используется для
отображения списка
служб, которые
можно запустить или
остановить.
Используется для
отображения списка
всех служб.
chkconfig frobozz on
systemctl enable frobozz.service
Включает службу во
время следующей
перезагрузки, или
любой другой
триггер.
chkconfig frobozz
off
systemctl disable frobozz.service
Выключает службу
во время следующей
перезагрузки, или
любой другой
триггер.
475
ЛКНВ.11100-01 90 02
Окончание таблицы 14
Команды sysvinit
Команды systemd
Примечания
chkconfig frobozz
systemctl is-enabled frobozz.service
Используется для
проверки,
сконфигурирована
ли служба для
запуска в текущем
окружении.
chkconfig --list
systemctl list-unit-files --
type=service(preferred)
ls /etc/systemd/system/*.wants/
Выводит таблицу
служб. В ней видно,
на каких уровнях
загрузки они
(не)запускаются.
chkconfig frobozz
--list
ls
/etc/systemd/system/*.wants/frobozz.s
ervice
Используется, для
отображения на
каких уровнях
служба
(не)запускается.
chkconfig frobozz
--add
systemctl daemon-reload
Используется, когда
создается новая
служба или
модифицируется
любая
конфигурация.
14.4.3. Журнал в systemd
В systemd включена возможность ведения системного журнала. Для чтения
журнала следует использовать команду journalctl. По умолчанию, больше не
требуется запуск службы syslog.
Можно запускать journalctl с разными ключами (таблица 15).
Т а б л и ц а 15 Примеры запуска journalctl
Команда
Описание
journalctl -b
Покажет сообщения только с текущей загрузки.
journalctl -f
Покажет только последние сообщения.
journalctl --since "2015-
07-20 17:15:00"
Просмотреть все сообщения начиная с 20 июля
2015 года 17:15.
journalctl k
Просмотр сообщений ядра.
journalctl
/usr/lib/systemd/system
Все сообщение конкретной утилиты systemd.
476
ЛКНВ.11100-01 90 02
Окончание таблицы 15
Команда
Описание
journalctl _PID=1
Просмотр сообщения определенного процесса,
покажет сообщения первого процесса (init).
journalctl -u netcfg
Все сообщения конкретного приложения или
службы.
journalctl _UID=33
Все сообщения процессов, запущенных от
имени конкретного пользователя.
Для ознакомления с прочими возможностями, читайте руководство по
journalctl. Для этого используйте команду man journalctl.
477
ЛКНВ.11100-01 90 02
15. СООБЩЕНИЯ АДМИНИСТРАТОРУ
При возникновении проблем в процессе функционирования ОС Альт 8 СП
появляются диагностические сообщения трех типов: информационные,
предупреждающие и сообщения об ошибках.
Администратор должен проанализировать диагностические сообщения и
принять меры по устранению появившихся проблем.
Также каждый объект системы Linux обязательно сопровождается
документацией, описывающей их назначение и способы использования, подробнее
см. в документе «Руководство пользователя. ЛКНВ.11100-01 91 02».
478
ЛКНВ.11100-01 90 02
ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
БД
база данных;
БСВВ
базовая система ввода-вывода;
ЕПП
единое пользовательское пространство;
КСЗ
комплекс средств защиты;
НЖМД
накопитель на жестких магнитных дисках;
ОС
операционная система;
ПИ
программное изделие;
ПО
программное обеспечение;
ПЭВМ
персональная электронная вычислительная машина;
СВТ
средство вычислительной техники;
СУБД
система управления базами данных;
УЦ
удостоверяющий центр;
ФС
файловая система;
ЦУС
центр управления системой;
AD
Active Directory;
DC
Domain Controller;
PDC
Primary Domain Controller.
479
ЛКНВ.11100-01 90 02
Лист регистрации изменений
Номера листов (страниц)
Всего
листов
(страниц)
в докум.
докумен-
та
Входящий
№ сопро-
водитель-
ного докум.
и дата
Подп.
Да-
та
Изм.
изменен-
ных
заменен-
ных
новых
анули-
рован-
ных