Литера О
Подп. и дата
Инв. № дубл.
Взам. инв. №
Подп. и дата
Инв. № подл.
УТВЕРЖДЕН
ЛКНВ.11100-01 90 01-ЛУ
ОПЕРАЦИОННАЯ СИСТЕМА АЛЬТ 8 СП
(ОС Альт 8 СП)
Руководство администратора
ЛКНВ.11100-01 90 01
Листов 538
2020
2
ЛКНВ.11100-01 90 01
АННОТАЦИЯ
Настоящий документ содержит инструкции по установке и эксплуатации
программного изделия (ПИ) «Операционная система Альт 8 СП» (ОС Альт 8 СП) на
процессорах архитектур х86/х86-64 (AMD, Intel), armh (ARMv7), AArch64
(ARMv8), ppc64le (POWER).
Версия документа 1.7.1.
Документ предназначен для администратора ОС Альт 8 СП и содержит общие
сведения об ОС Альт 8 СП, ее общей структуре, настройке, проверке, контрольных
характеристиках развертывания и сообщениях администратору.
Также в документе приведены сведения, необходимые для выполнения
операций администрирования:
- установки и начального конфигурирования ОС Альт 8 СП;
- конфигурирования параметров даты и времени, графической среды, средств
ввода и вывода;
- конфигурирования сетей и сетевых служб;
- управления учетными записями и правами доступа пользователей;
- управления системными сервисами и служебными программами;
- настройки специализированного программного обеспечения;
- обновления программного обеспечения;
- просмотра системных журналов;
- управления автозапуском приложений;
- управления параметрами печати;
- работы с носителями информации;
- работы с руководствами, различными документами и дополнительными
средствами.
3
ЛКНВ.11100-01 90 01
СОДЕРЖАНИЕ
1. Общие сведения об ОС Альт 8 СП .......................................................................... 16
Назначение и функции ОС Альт 8 СП ............................................................. 16
Уровень подготовки администратора .............................................................. 17
2. Структура ОС Альт 8 СП.......................................................................................... 18
2.1.1. Ядро ОС Альт 8 СП ..................................................................................... 19
2.1.2. КСЗ ................................................................................................................ 20
2.1.3. Системные библиотеки ............................................................................... 23
2.1.4. Серверные программы и приложения ....................................................... 23
2.1.5. Прочие системные приложения ................................................................. 24
2.1.6. Программы веб-серверов ............................................................................ 24
2.1.7. Интерактивные рабочие среды .................................................................. 25
2.1.8. Командные интерпретаторы ...................................................................... 25
2.1.9. Графическая оболочка MATE .................................................................... 25
2.1.10. Системы управления базами данных ...................................................... 25
2.1.11. Электронные справочники ....................................................................... 25
3. Подготовительные процедуры ................................................................................. 26
Настройка безопасной конфигурации компьютера ........................................ 26
3.1.1. Процедура верификации ............................................................................ 26
3.1.2. Настройка среды функционирования ....................................................... 26
Настройка опций безопасности ........................................................................ 28
Описание механизмов устранения идентифицированных скрытых
каналов ........................................................................................................................ 30
4. Функции и задачи администрирования ОС Альт 8 СП ......................................... 35
Функции администратора .................................................................................. 35
Задачи администрирования ............................................................................... 35
5. Установка ОС Альт 8 СП.......................................................................................... 37
Запись установочного образа на USB-flash-накопитель ................................ 37
Источники установки ......................................................................................... 39
4
ЛКНВ.11100-01 90 01
5.2.1. Настройка сервера сетевой установки ...................................................... 40
5.2.2. Запуск сетевой установки ........................................................................... 43
5.2.3. Установка с жесткого диска ....................................................................... 44
Начало установки: загрузка системы ............................................................... 44
5.3.1. Способы первоначальной загрузки ........................................................... 44
5.3.2. Загрузка системы ......................................................................................... 45
Последовательность установки ........................................................................ 47
5.4.1. Язык .............................................................................................................. 48
5.4.2. Подтверждение согласия ............................................................................ 50
5.4.3. Дата и время ................................................................................................. 51
5.4.4. Подготовка диска ........................................................................................ 53
5.4.5. Установка системы ...................................................................................... 62
5.4.6. Сохранение настроек .................................................................................. 65
5.4.7. Установка загрузчика.................................................................................. 66
5.4.8. Настройка сети ............................................................................................ 67
5.4.9. Администратор системы ............................................................................ 69
5.4.10. Системный пользователь .......................................................................... 70
5.4.11. Установка пароля на LUKS-разделы ...................................................... 71
5.4.12. Завершение установки .............................................................................. 72
Особенности установки в UEFI-режиме .......................................................... 74
5.5.1. Начальный загрузчик EFI ........................................................................... 74
5.5.2. Подготовка диска ........................................................................................ 75
5.5.3. Установка загрузчика.................................................................................. 92
Инструкция по установке на armh (ARMv7) mcom02 .................................... 93
Обновление системы до актуального состояния ............................................ 94
Проблемы при установке системы ................................................................... 94
6. Начало использования ОС Альт 8 СП ..................................................................... 96
Запуск ОС ............................................................................................................ 96
Получение доступа к зашифрованным разделам .......................................... 100
Вход в систему .................................................................................................. 101
5
ЛКНВ.11100-01 90 01
6.3.1. Идентификация и аутентификация в графической оболочке MATE .. 101
6.3.2. Идентификация и аутентификация в консольном режиме ................... 103
6.3.3. Виртуальная консоль ................................................................................ 103
Блокирование сеанса доступа ......................................................................... 104
6.4.1. Блокирование сеанса доступа после установленного времени
бездействия (неактивности) пользователя или по его запросу ...................... 104
6.4.2. Блокировка виртуальных текстовых консолей ...................................... 105
6.4.3. Настройка блокировки возможности пользователя изменять
настройки блокировки системы ......................................................................... 105
Завершение работы ОС .................................................................................... 106
6.5.1. Графический режим .................................................................................. 106
6.5.2. Консольный режим ................................................................................... 107
6.5.3. Настройки завершения сеанса пользователя .......................................... 107
Выключение/перезагрузка компьютера ......................................................... 107
6.6.1. Графический режим .................................................................................. 107
6.6.2. Консольный режим ................................................................................... 108
Глобальное выключение файловых POSIX capabilities................................ 108
Утилита уничтожения информации при удалении dm-secdel .................. 108
7. Настройки системы ................................................................................................. 111
Центр управления системой ............................................................................ 111
7.1.1. Графический интерфейс ........................................................................... 112
7.1.2. Веб-интерфейс ЦУС .................................................................................. 113
7.1.3. Установка и удаление модулей ЦУС ...................................................... 116
7.1.4. Права доступа к модулям ЦУС ................................................................ 116
7.1.5. Получение справочной информации ...................................................... 118
Выбор программ, запускаемых автоматически при входе в систему ......... 119
7.2.1. Вкладка автоматического запуска программ ......................................... 119
7.2.2. Вкладка настроек сессии .......................................................................... 120
Задание хешей паролей .................................................................................... 121
Настройка разграничения доступа к подключаемым устройствам ............ 122
6
ЛКНВ.11100-01 90 01
7.4.1. Общие сведения ......................................................................................... 122
7.4.2. Ограничения при помощи правил udev .................................................. 122
7.4.3. Управление монтированием блочных устройств .................................. 125
7.4.4. Настройка ограничений в веб-интерфейсе ЦУС (alterator-ports-
access) ................................................................................................................... 125
Настройка фильтрации пакетов с помощью утилиты iptables .................... 128
7.5.1. Устройство фильтра iptables .................................................................... 128
7.5.2. Встроенные таблицы фильтра iptables .................................................... 130
7.5.3. Команды утилиты iptables ........................................................................ 131
7.5.4. Ключи утилиты iptables ............................................................................ 133
7.5.5. Основные действия над пакетами в фильтре iptables ............................ 134
7.5.6. Основные критерии пакетов в фильтре iptables ..................................... 136
7.5.7. Модули iptables .......................................................................................... 138
7.5.8. Использование фильтра iptables .............................................................. 142
7.5.9. Примеры команд iptables .......................................................................... 142
Настройка экспорта аудита на удаленный узел ............................................ 147
Настройка системы сигнализации на основе nagios ..................................... 149
7.7.1. Настройка сервера мониторинга ............................................................. 149
7.7.2. Настройка удаленных узлов (клиенты) .................................................. 150
7.7.3. Добавление удаленных узлов для мониторинга (сервер) ..................... 153
7.7.4. Тестирование системы мониторинга ...................................................... 157
7.7.5. Nagstamon ................................................................................................... 158
ГОСТ в OpenSSL .............................................................................................. 162
7.8.1. Поддержка шифрования по ГОСТ в OpenSSL ....................................... 162
7.8.2. Создание ключей ....................................................................................... 162
8. Средства удаленного администрирования, организация сетевой
инфраструктуры с помощью сервера ........................................................................ 163
Вход в систему .................................................................................................. 163
Развертывание офисной ИТ-инфраструктуры .............................................. 163
8.2.1. Подготовка ................................................................................................. 163
7
ЛКНВ.11100-01 90 01
8.2.2. Домен .......................................................................................................... 163
8.2.3. Сервер, рабочие места и аутентификация .............................................. 164
Развертывание доменной структуры .............................................................. 165
Централизованная база пользователей .......................................................... 166
8.4.1. Создание учетных записей пользователей ............................................. 166
8.4.2. Объединение пользователей в группы .................................................... 168
8.4.3. Настройка учетной записи ....................................................................... 170
8.4.4. Привязка групп .......................................................................................... 170
8.4.5. Настройка рабочей станции ..................................................................... 171
Настройка подключения к Интернету ............................................................ 172
8.5.1. Конфигурирование сетевых интерфейсов .............................................. 173
8.5.2. Настройка общего подключения к сети Интернет ................................ 176
8.5.3. Автоматическое присвоение IP-адресов (DHCP-сервер) ...................... 181
Настройка сети – NetworkManager ................................................................. 183
Настройка сети – набор пакетов /etc/net ........................................................ 184
8.7.1. Устройство /etc/net .................................................................................... 184
8.7.2. Быстрая настройка сетевого интерфейса стандарта Ethernet ............... 188
8.7.3. Настройка ifplugd ...................................................................................... 189
8.7.4. Настройка PPtP-интерфейса и PPPoE-интерфейса ................................ 189
8.7.5. Команды сервиса network ......................................................................... 190
8.7.6. Протоколы конфигурации адресов.......................................................... 191
8.7.7. Расширенные возможности /etc/net ......................................................... 192
8.7.8. Настройка межсетевого экрана в /etc/net ................................................ 205
Сетевая установка ОС на рабочие места ....................................................... 214
8.8.1. Подготовка сервера ................................................................................... 214
8.8.2. Подготовка рабочих станций ................................................................... 216
Сервер электронной почты (SMTP, POP3/IMAP) ......................................... 217
8.9.1. Сервер электронной почты ...................................................................... 217
8.9.2. Сервер SMTP ............................................................................................. 218
8.9.3. Сервер POP3/IMAP ................................................................................... 218
8
ЛКНВ.11100-01 90 01
Cервер электронной почты postfix ............................................................... 218
8.10.1. Утилиты командной строки ................................................................... 219
8.10.2. Первичная настройка .............................................................................. 221
8.10.3. Работа в режиме SMTP-сервера............................................................. 222
8.10.4. SMTP-аутентификация ........................................................................... 223
8.10.5. Триггеры ограничений ............................................................................ 228
8.10.6. Алиасы и преобразование адресов ........................................................ 231
8.10.7. Настройка ограничений размера почтового ящика и отправляемого
сообщения ............................................................................................................ 232
Соединение удаленных офисов (OpenVPN) ................................................ 233
8.11.1. Общие сведения об OpenVPN ................................................................ 233
8.11.2. Настройка OpenVPN-сервера в ЦУС .................................................... 234
8.11.3. Настройка клиентов в ЦУС .................................................................... 239
8.11.4. Конфигурирование openvpn ................................................................... 240
8.11.5. Создание ключей для OpenVPN туннеля средствами утилиты
openssl ................................................................................................................... 242
8.11.6. Создание списка отзыва сертификатов ................................................. 246
8.11.7. Создание ключей для OpenVPN туннеля средствами Easy-Rsa
скриптов ............................................................................................................... 246
8.11.8. Отзыв сертификатов................................................................................ 250
Настройка удаленного подключения ........................................................... 250
8.12.1. OpenSSH, сервер протокола SSH (sshd) ................................................ 251
8.12.2. SSHD_CONFIG ........................................................................................ 265
Прокси-сервер (Squid) .................................................................................... 278
8.13.1. Настройка прозрачного доступа через прокси-сервер ........................ 278
8.13.2. Фильтрация доступа ................................................................................ 279
8.13.3. Авторизация доступа .............................................................................. 279
8.13.4. Кэширование данных .............................................................................. 280
8.13.5. Настройка режима работы в качестве обратного прокси-сервера ..... 280
8.13.6. Сбор статистики и ограничение полосы доступа ................................ 281
9
ЛКНВ.11100-01 90 01
8.13.7. Кеширование DNS-запросов .................................................................. 282
Доступ к службам из сети Интернет ............................................................ 282
8.14.1. Внешние сети ........................................................................................... 282
8.14.2. Список блокируемых хостов .................................................................. 283
Статистика ....................................................................................................... 284
Обслуживание системы ................................................................................. 286
8.16.1. Мониторинг состояния системы ............................................................ 286
8.16.2. Системные службы ................................................................................. 287
8.16.3. Поддержка дополнительных рабочих мест .......................................... 288
8.16.4. Обновление системы ............................................................................... 291
8.16.5. Локальные учетные записи .................................................................... 292
8.16.6. Администратор системы ........................................................................ 293
8.16.7. Дата и время ............................................................................................. 294
8.16.8. Ограничение использования диска ....................................................... 295
8.16.9. Резервное копирование ........................................................................... 296
9. Корпоративная инфраструктура ............................................................................ 299
Samba ................................................................................................................. 299
9.1.1. Samba 4 в роли контроллера домена Active Directory ........................... 301
9.1.2. Samba в режиме файлового сервера ........................................................ 311
9.1.3. Принт-сервер на CUPS ............................................................................. 321
9.1.4. Некоторые вопросы безопасности........................................................... 321
Ввод рабочей станции в домен Active Directory ........................................... 322
9.2.1. Подготовка ................................................................................................. 323
9.2.2. Ввод в домен .............................................................................................. 324
9.2.3. Проверка работы ....................................................................................... 326
9.2.4. Вход пользователя ..................................................................................... 326
9.2.5. Отображение глобальных групп на локальные ..................................... 327
9.2.6. Подключение файловых ресурсов ........................................................... 328
Групповые политики ........................................................................................ 330
10
ЛКНВ.11100-01 90 01
9.3.1. Развертывание групповых политик на клиентах Active Directory с
ОС Альт 8 СП ...................................................................................................... 331
9.3.2. Инструмент ADMC ................................................................................... 334
9.3.3. Конфигурирование с помощью ЦУС ...................................................... 337
9.3.4. Пример создания групповой политики ................................................... 337
SOGo .................................................................................................................. 339
9.4.1. Установка ................................................................................................... 339
9.4.2. Подготовка среды ...................................................................................... 340
9.4.3. Включение веб-интерфейса ..................................................................... 341
9.4.4. Настройка электронной почты................................................................. 342
Настройка FreeIPA ........................................................................................... 347
9.5.1. Установка сервера FreeIPA ...................................................................... 348
9.5.2. Установка сервера FreeIPA в режиме CA-less ....................................... 349
9.5.3. Добавление новых пользователей домена .............................................. 353
9.5.4. Ввод рабочей станции в домен FreeIPA установка клиента и
подключение к серверу ....................................................................................... 355
9.5.5. Настройка репликации .............................................................................. 359
9.5.6. Настройка доверительных отношений с Active Directory..................... 360
Настройка служб DNS (Bind) .......................................................................... 365
9.6.1. Общие сведения ......................................................................................... 365
9.6.2. Уменьшение времени ответа на DNS-запрос абонентов внутренней
сети ........................................................................................................................ 366
9.6.3. Именование компьютеров в интранет-сети ............................................ 366
9.6.4. Примеры использования DNS-сервера Bind .......................................... 367
Система мониторинга Zabbix .......................................................................... 371
9.7.1. Установка сервера PostgreSQL ................................................................ 371
9.7.2. Установка Apache2 .................................................................................... 372
9.7.3. Установка PHP ........................................................................................... 372
9.7.4. Установка и настройка Zabbix-сервера ................................................... 372
9.7.5. Установка веб-интерфейса Zabbix ........................................................... 373
11
ЛКНВ.11100-01 90 01
9.7.6. Установка Zabbix-агента (клиента) ......................................................... 375
9.7.7. Добавление нового хоста на Zabbix-сервере .......................................... 376
9.7.8. Авторегистрация узлов ............................................................................. 378
Отказоустойчивый кластер (High Availability) на основе Pacemaker ......... 379
9.8.1. Настройка узлов кластера ........................................................................ 380
9.8.2. Установка кластерного ПО и создание кластера ................................... 382
9.8.3. Настройка основных параметров кластера............................................. 384
10. Функциональные возможности ОС ..................................................................... 387
Управление системными сервисами, основные команды.......................... 387
10.1.1. Сервисы .................................................................................................... 387
10.1.2. Команды ................................................................................................... 388
Администрирование многопользовательской и многозадачной среды ... 391
10.2.1. Команда who ............................................................................................ 391
10.2.2. Команда ps ............................................................................................... 393
10.2.3. Команда nohup ......................................................................................... 397
10.2.4. Команда nice ............................................................................................ 398
10.2.5. Команда renice ......................................................................................... 399
10.2.6. Команда kill и killall ................................................................................ 400
Основные утилиты для операций с файлами и каталогами ....................... 402
10.3.1. Команда ls ................................................................................................ 402
10.3.2. Команда cp ............................................................................................... 406
10.3.3. Команда rsync .......................................................................................... 407
10.3.4. Команда mv .............................................................................................. 408
10.3.5. Команда dd ............................................................................................... 408
10.3.6. Команда s_rm ........................................................................................... 409
10.3.7. Команда s_fill ........................................................................................... 409
10.3.8. Команда cd ............................................................................................... 409
10.3.9. Команда pwd ............................................................................................ 410
10.3.10. Команда mkdir ....................................................................................... 410
10.3.11. Команда rmdir ........................................................................................ 411
12
ЛКНВ.11100-01 90 01
10.3.12. Команда mount ....................................................................................... 411
Создание, просмотр и редактирование файлов ........................................... 412
10.4.1. Команда cat .............................................................................................. 412
10.4.2. Команда less ............................................................................................. 413
10.4.3. Команда echo ........................................................................................... 413
10.4.4. Команда grep ............................................................................................ 413
10.4.5. Команда touch .......................................................................................... 414
10.4.6. Команда mknod ........................................................................................ 415
Поиск файлов .................................................................................................. 415
10.5.1. Команда find............................................................................................. 415
10.5.2. Команда whereis....................................................................................... 418
Средства архивирования файлов .................................................................. 418
10.6.1. Команда tar ............................................................................................... 419
10.6.2. Команда cpio ............................................................................................ 420
Средства редактирования файлов................................................................. 421
10.7.1. Текстовый редактор Vi ........................................................................... 421
10.7.2. Редактор Vim ........................................................................................... 424
Средства настройки отложенного исполнения команд.............................. 430
10.8.1. Служба crond ............................................................................................ 430
10.8.2. Команда at ................................................................................................ 435
10.8.3. Команда batch .......................................................................................... 438
Служба передачи файлов FTP ....................................................................... 438
Защищенный интерпретатор команд SSH ................................................. 439
Средство управления процессами xinetd ................................................... 440
Работа со смарт-картами ............................................................................. 444
10.12.1. Двухфакторная аутентификация ......................................................... 444
Поддержка файловых систем ...................................................................... 446
Поддержка сетевых протоколов ................................................................. 447
10.14.1. SMB......................................................................................................... 447
10.14.2. NFS .......................................................................................................... 447
13
ЛКНВ.11100-01 90 01
10.14.3. FTP .......................................................................................................... 449
10.14.4. NTP ......................................................................................................... 454
10.14.5. HTTP(S) .................................................................................................. 456
Виртуальная (экранная) клавиатура ........................................................... 457
10.15.1. Клавиатура onboard при входе в систему ........................................... 457
10.15.2. Клавиатура onboard при разблокировке экрана ................................. 457
10.15.3. Настройки onboard ................................................................................ 458
Управление печатью .................................................................................... 459
10.16.1. Устройство CUPS .................................................................................. 459
10.16.2. Установка принтера .............................................................................. 468
10.16.3. Настройка сервера печати для сети ..................................................... 472
10.16.4. Команды управления печатью ............................................................. 473
Управление базами данных ......................................................................... 477
10.17.1. Состав ..................................................................................................... 477
10.17.2. Настройка ............................................................................................... 478
Организация терминального доступа XRDP ............................................. 479
10.18.1. Базовая настройка сервера терминалов .............................................. 479
10.18.2. Настройка сервера ................................................................................. 480
10.18.3. Настройки доступа пользователей ...................................................... 482
10.18.4. Подключение звука ............................................................................... 482
10.18.5. Подключение USB-устройств .............................................................. 482
10.18.6. Настройка клиента для подключения к серверу терминалов ........... 484
10.18.7. Управление XRDP ................................................................................. 489
11. Управление программными пакетами ................................................................ 490
Источники программ (репозитории) ............................................................ 491
11.1.1. Репозитории для APT ............................................................................. 491
11.1.2. Добавление репозиториев с использованием терминала .................... 495
11.1.3. Центр управления системой ................................................................... 496
11.1.4. Программа управления пакетами Synaptic ........................................... 496
Обновление информации о репозиториях в APT ....................................... 497
14
ЛКНВ.11100-01 90 01
Поиск пакетов (apt-cache) .............................................................................. 497
Управление установкой (инсталляцией) компонентов программного
обеспечения .............................................................................................................. 498
11.4.1. Команда updater-start ............................................................................... 500
11.4.2. Команда integrity-applier ......................................................................... 501
Установка или обновление пакета командой apt ........................................ 501
Удаление установленного пакета командой apt .......................................... 503
Альтернативная установка дополнительного ПО ....................................... 504
11.7.1. Установка дополнительного ПО в ЦУС ............................................... 504
11.7.2. Программа управления пакетами Synaptic ........................................... 505
Обновление всех установленных пакетов apt-get ....................................... 506
Обновление всех установленных пакетов Synaptic .................................... 507
Обновление ядра и модулей ядра ............................................................... 507
Удаление старых версий ядра ..................................................................... 508
Обновление изолированного окружения (chrooted environment) ............ 508
Проверка подлинности пакетов .................................................................. 509
Получение уведомлений о выходе обновлений ........................................ 509
Обновление систем, не имеющих выхода в Интернет ............................. 509
Единая команда управления пакетами (epm) ............................................ 513
12. Ограничение действий пользователя .................................................................. 515
Определение параметров уничтожения данных ......................................... 515
Модуль AltHa .................................................................................................. 516
12.2.1. Запрет бита исполнения (SUID) ............................................................ 517
12.2.2. Блокировка интерпретаторов (запрет запуска скриптов) ................... 518
12.2.3. Отключение возможности удаления открытых файлов ...................... 519
13. Контрольные характеристики развернутой ОС Альт 8 СП .............................. 520
14. Основы администрирования Linux ...................................................................... 521
Общие принципы работы ОС ........................................................................ 521
14.1.1. Процессы и файлы .................................................................................. 521
14.1.2. Командные оболочки (интерпретаторы) .............................................. 526
15
ЛКНВ.11100-01 90 01
14.1.3. Командная оболочка Bash ...................................................................... 526
14.1.4. Стыкование команд в системе Linux..................................................... 528
Режим суперпользователя ............................................................................. 530
14.2.1. Пользователи ОС ..................................................................................... 530
14.2.2. Назначение режима суперпользователя ............................................... 531
14.2.3. Получение прав суперпользователя ...................................................... 531
14.2.4. Переход в режим суперпользователя .................................................... 532
Управление пользователями ......................................................................... 532
Система инициализации systemd и sysvinit ................................................. 533
14.4.1. Запуск операционной системы .............................................................. 533
14.4.2. Примеры команд управления службами, журнал в systemd ............... 533
14.4.3. Журнал в systemd .................................................................................... 535
15. Сообщения администратору ................................................................................ 537
Перечень сокращений ................................................................................................. 538
16
ЛКНВ.11100-01 90 01
1. ОБЩИЕ СВЕДЕНИЯ ОБ ОС АЛЬТ 8 СП
Назначение и функции ОС Альт 8 СП
ОС Альт 8 СП, представляет собой совокупность интегрированных программ,
созданных на основе операционной системы (ОС) Linux.
ОС Альт 8 СП предназначено для группового и корпоративного использования,
автоматизации информационных, конструкторских и производственных процессов
предприятий (организаций, учреждений) всех возможных типов и направлений.
ОС Альт 8 СП поддерживает клиент-серверную архитектуру и может
обслуживать процессы как в пределах одной компьютерной системы, так и процессы
на других персональных электронных вычислительных машинах (далее ПЭВМ)
через каналы передачи данных или сетевые соединения.
ОС Альт 8 СП обладает следующими функциональными характеристиками:
- обеспечивает возможность обработки, хранения и передачи информации в
защищенной программной среде;
- обеспечивает возможность запуска пользовательского программного
обеспечения (далее – ПО) в сертифицированном окружении;
- обеспечивает возможность функционирования в многозадачном режиме
(одновременное выполнение множества процессов);
- обеспечивает возможность масштабирования системы: возможна
эксплуатация ОС как на одной ПЭВМ, так и в информационных системах
различной архитектуры;
- обеспечивает многопользовательский режим эксплуатации;
- обеспечивает поддержку мультипроцессорных систем;
- обеспечивает сетевую обработку данных, в том числе разграничение доступа
к сетевым пакетам.
Для поддержки выполнения описанных функций в ОС Альт 8 СП реализованы
следующие возможности:
- управление процессами и информационными ресурсами;
- управление системными ресурсами;
17
ЛКНВ.11100-01 90 01
- управление памятью;
- управление файлами и внешними устройствами;
- управление доступом к обрабатываемой информации;
- защита хранимых, обрабатываемых и передаваемых информационных
ресурсов комплексом средств защиты (далее – КСЗ) ОС;
- администрирование;
- поддержка интерфейса прикладного программирования;
- поддержка пользовательского интерфейса.
Уровень подготовки администратора
Администратор ОС Альт 8 СП должен иметь базовые знания в областях:
- принципы построения и функционирования современных вычислительных
систем, механизмов защиты информации;
- работа с ОС семейства Linux;
- администрирование общесистемного и прикладного ПО;
- настройка средств защиты, используемых в составе ОС Альт 8 СП;
- конфигурирование проводных подключений.
18
ЛКНВ.11100-01 90 01
2. СТРУКТУРА ОС АЛЬТ 8 СП
ОС Альт 8 СП состоит из набора компонентов, предназначенных для
реализации функциональных задач необходимых пользователям (должностным
лицам для выполнения определенных должностными инструкциями, повседневных
действий). ПИ ОС Альт 8 СП поставляется в виде дистрибутива и комплекта
эксплуатационной документации.
Структура ОС Альт 8 СП представлена на рис. 1.
Рис. 1 Структура ОС Альт 8 СП
В состав ОС Альт 8 СП входят следующие компоненты:
- «Ядро системы»;
- «Программа идентификации и аутентификации пользователей»;
- «Программа контроля целостности и восстановления»;
- «Программа взаимодействия с внешними устройствами»;
- «Программа регистрации и учета событий».
19
ЛКНВ.11100-01 90 01
В структуре компонентов ОС Альт 8 СП выделены следующие
функциональные элементы:
- ядро ОС;
- КСЗ;
- системные библиотеки;
- серверные программы;
- программы веб-серверов;
- прочие серверные программы;
- интерактивные рабочие среды;
- командные интерпретаторы;
- графическая оболочка MATE;
- системы управления базами данных;
- электронные справочники.
Первичный и вторичный загрузчики ОС обращаются напрямую к ядру ОС,
вызывая запуск системных процессов и приложений.
Взаимодействие и обмен информацией в ОС Альт 8 СП контролируются КСЗ,
предназначенным для защиты ОС от несанкционированного доступа к
обрабатываемой (хранящейся) информации на ПЭВМ.
2.1.1. Ядро ОС Альт 8 СП
Ядро ОС Альт 8 СП управляет доступом к оперативной памяти, сети, дисковым
и прочим внешним устройствам. Оно запускает и регистрирует процессы, управляет
разделением времени между ними, реализует разграничение прав и определяет
политику безопасности, обойти которую, не обращаясь к нему, нельзя.
Ядро работает в режиме «супервизора», позволяющем ему иметь доступ сразу
ко всей оперативной памяти и аппаратной таблице задач. Процессы запускаются в
«режиме пользователя»: каждый жестко привязан ядром к одной записи таблицы
задач, в которой, в числе прочих данных, указано, к какой именно части оперативной
памяти этот процесс имеет доступ. Ядро постоянно находится в памяти, выполняя
системные вызовы запросы от процессов на выполнение этих подпрограмм.
20
ЛКНВ.11100-01 90 01
2.1.2. КСЗ
КСЗ представляет собой набор специальных программных пакетов, в том числе
из состава ядра ОС Альт 8 СП, предназначенных для реализации механизмов
безопасности и контроля функционирования ОС Альт 8 СП в целом. Состав и версии
пакетов КСЗ уточняйте в зависимости от архитектуры процессора.
* группа пакетов.
КСЗ включает в себя следующие программные пакеты:
- acl утилиты, предназначенные для администрирования списков контроля
доступа Access Control Lists, которые используются для более точного
задания прав доступа к файлам и директориям;
- alterator* группа пакетов различных модулей системных настроек
интерфейса Центра управления системой (ЦУС), предназначены для
выполнения наиболее востребованных административных задач;
- apt средства управления пакетами APT, установка, обновление, разрешение
зависимостей RPM пакетов;
- audit утилиты для хранения и поиска записей аудита, генерируемых
подсистемой аудита;
- bacula* группа пакетов клиент-серверной системы создания и управления
резервными копиями данных, а также их резервного восстановления;
- bash командная оболочка Bourne-Again Shell;
- control содержит общие интерфейсы управления системным
оборудованием, предоставляемые другими пакетами;
- control++ утилита конфигурирования системы, которая позволяет
администратору изменять ограничения системы, устанавливать права
доступа;
- coreutils набор утилит для управления файлами и изменения текстовых
файлов;
- corosync реализует систему взаимодействия для отказоустойчивых
кластеров (Сервер x86-64 (AMD, Intel), AArch64 (ARMv8),
ppc64le (POWER));
21
ЛКНВ.11100-01 90 01
- dm-secdel утилита уничтожения информации, реализует безопасное
удаление;
- docker-ce
1
автоматизирует развертывание и управление приложениями в
средах с поддержкой контейнеризации;
- grub* модули загрузчика ОС;
- ima-evm* подсистема контроля целостности GNU/Linux, использует
технологии IMA и EVM;
- iptables используется для настройки, обслуживания и проверки,
находящихся в ядре Linux таблиц правил фильтрации пакетов IP;
- kernel-image* ядро ОС Linux, используется для загрузки и запуска системы;
- kernel-modules* пакеты аппаратных драйверов и библиотек в ядре ОС;
- libvirt*1 набор инструментов для управления виртуализацией;
- lightdm* менеджер дисплеев, предоставляет графический интерфейс;
- mate-screensaver хранитель и блокировщик экрана;
- mount утилита для монтирования файловых систем;
- nagios система мониторинга служб и сетевой активности;
- nagios-nrpe сервер выполнения команд системы мониторинга nagios;
- nagstamon монитор состояний программы nagios;
- nagwad сервис, генерирующий уведомления от nagios, основанные на
записях из журнала аудита;
- openntpd демон NTP синхронизации времени в локальных системных часах
с внешними серверами NTP, а также при необходимости сам выступает
сервером NTP, сообщая свое локальное время по сети другим компьютерам;
- openvpn VPN с использованием SSL, реализует подключение для
удаленных пользователей, телекоммуникации для дома и офиса, безопасные
подключения для беспроводных сетей;
1
Средства виртуализации поддерживаются на процессорах архитектур: x86_64, AArch64 (ARMv8), ppc64le (POWER).
22
ЛКНВ.11100-01 90 01
- osec программный комплекс проверки целостности, предназначенный для
обнаружения различий между двумя состояниями системы, а также для
поиска потенциально опасных файлов;
- pacemaker менеджер управления ресурсами масштабируемого и высоко
доступного кластера (Сервер x86-64 (AMD, Intel), AArch64 (ARMv8), ppc64le
(POWER));
- libpam0, pam*, pam0* инструменты системы безопасности, позволяющие
администраторам устанавливать политику аутентификации без
необходимости повторной компиляции программ проверки подлинности;
- passwd утилита для установки/смены паролей с использованием PAM;
- passwdqc набор инструментов для контроля сложности паролей и
парольных фраз, включающий PAM-модуль, программы и библиотеку;
- polkit это набор инструментов для определения и обработки разрешений.
Он используется для того, чтобы позволить непривилегированным
процессам контактировать с привилегированными процессами;
- qemu
2
быстрый эмулятор процессора, использующий динамическую
трансляцию для достижения хорошей скорости эмуляции;
- rpm менеджер пакетов, используемый для сборки, установки, инспекции,
проверки, обновления и удаления отдельных программных пакетов;
- rsync утилита синхронизации файлов по сети, используется в качестве
эффективного процесса зеркалирования, т. к. пересылает только различия
между файлами, а не файлы целиком;
- secure_delete набор утилит для безопасного удаления файлов, безопасной
очистки от остатков данных неиспользуемого пространства дисков,
безопасной очистки разделов подкачки и безопасной очистки
неиспользуемой памяти;
- setup начальный набор конфигурационных файлов;
- sh командная оболочка Bourne shell;
2
Средства виртуализации поддерживаются на процессорах архитектур: x86_64, AArch64 (ARMv8), ppc64le.
23
ЛКНВ.11100-01 90 01
- shadow усиливает безопасность системных паролей;
- su утилита запуска командного интерпретатора от имени другого
пользователя;
- sudo программа, позволяющая делегировать те или иные
привилегированные ресурсы пользователям с ведением протокола работы;
- systemd* менеджер системы и служб в ОС, реализует запуск демонов и
отслеживает процессы;
- util-linux коллекция основных системных утилит;
- vim-console экранный редактор;
- vlock программа блокировки сеансов в консоли.
2.1.3. Системные библиотеки
Системные библиотеки – наборы программ (пакетов программ), выполняющие
различные функциональные задачи и предназначенные для динамического
подключения к работающим программам, которым необходимо выполнение этих
задач.
2.1.4. Серверные программы и приложения
Серверные программы и приложения предоставляют пользователю
специализированные услуги (почтовые службы, хранилище файлов, веб-сервер,
система управления базой данных, обеспечение документооборота, хранилище
данных пользователей и так далее) в локальной или глобальной сети и обеспечивают
их выполнение.
В состав ОС Альт 8 СП включены следующие серверные программы и
приложения:
- приложения, обеспечивающие поддержку сетевого протокола DHCP
(Dynamic Host Configuration Protocol);
- приложения, обеспечивающие поддержку протокола аутентификации LDAP
(Lightweight Directory Access Protocol);
- приложения, обеспечивающие поддержку протоколов FTP, SFTP, SSHD;
- системы управления базами данных;
24
ЛКНВ.11100-01 90 01
- программы, обеспечивающие работу SMB-сервера (cервер файлового
обмена);
- программы почтового сервера postfix;
- программы прокси-сервера Squid;
- программы веб-сервера apache2;
- программы DNS-сервера.
2.1.5. Прочие системные приложения
Прочие системные приложения приложения (программы), оказывающие
пользователю дополнительные системные услуги при работе с ОС.
В состав ОС Альт 8 СП включены следующие дополнительные системные
приложения:
- архиваторы;
- для управления RPM-пакетами;
- резервного копирования;
- мониторинга системы;
- для работы с файлами;
- для настройки системы;
- для настройки параметров загрузки;
- для настройки оборудования;
- для настройки сети.
2.1.6. Программы веб-серверов
Программы веб-серверов участвуют в организации доступа пользователей к
сети Интернет. Доступ организуется с помощью клиент-серверной архитектуры.
Клиент, которым обычно является веб-браузер, передает программе
веб-сервера запросы на получение ресурсов. В качестве ресурсов могут выступать
HTML-страницы, изображения, файлы, медиа-потоки или другие данные, которые
необходимы клиенту. В ответ веб-сервер передает клиенту запрошенные данные.
Обмен происходит по протоколу HTTP.
В состав ОС Альт 8 СП включены программы веб-сервера Apache.
25
ЛКНВ.11100-01 90 01
2.1.7. Интерактивные рабочие среды
Интерактивные рабочие среды программы (пакеты программ),
предназначенные для работы пользователя в ОС Альт 8 СП и предоставляющие ему
удобный интерфейс для общения с ней.
2.1.8. Командные интерпретаторы
Командные интерпретаторы специальные программы (терминалы),
предназначенные для выполнения различных команд пользователей при работе с
ОС Альт 8 СП.
2.1.9. Графическая оболочка MATE
Графическая оболочка MATE набор программ и технологий,
предназначенных для управления ОС Альт 8 СП и предоставляющих пользователю
графический интерфейс для работы.
2.1.10. Системы управления базами данных
Системы управления базами данных (далее СУБД) приложения,
предназначенные для работы с данными, представленными в виде набора записей.
СУБД осуществляет поиск, обработку и хранение данных в виде специальных таблиц,
являющихся базой данных.
2.1.11. Электронные справочники
Электронные справочники наборы внутрисистемных справочных страниц,
описывающих работу команд и приложений, которые выполнены в виде примеров
HOWTOs и справки man.
26
ЛКНВ.11100-01 90 01
3. ПОДГОТОВИТЕЛЬНЫЕ ПРОЦЕДУРЫ
Настройка безопасной конфигурации компьютера
3.1.1. Процедура верификации
Проверка поставленного потребителю дистрибутива производится путем
подсчета контрольной суммы с использованием программы фиксации и контроля
исходного состояния программного комплекса «ФИКС» (версия 2.0.1) (сертификат
913, выдан ФСТЭК России 28 мая 2004 года, действителен до 01 июня 2019 года)
по алгоритму «Уровень- (при наличии)
3
и сравнения ее с контрольной суммой,
указанной в документе «Формуляр. ЛКНВ.11100-01 30 01» и на этикетке ПИ для
соответствующей архитектуры.
Администратор имеет возможность верифицировать версию ОС Альт 8 СП,
выполнив команду:
# cat /root/.install-log/diskinfo
3.1.2. Настройка среды функционирования
Для среды функционирования ОС Альт 8 СП (средств вычислительной техники
(СВТ)) сформулированы следующие рекомендации:
- не допускается использовать аппаратные платформы, базовые системы
ввода-вывода, UEFI-драйвера, содержащие уязвимости, без применения
патча, представленного разработчиком данной аппаратной платформы,
версии базовой системы ввода-вывода или версии UEFI-драйвера;
- отключать в BIOS-е Intel SGX;
- на серверах отключать системы контроля и управления типа ILO, RSA,
iDRAC, ThinkServer EasyManage, AMT, iMana;
- для Intel платформ необходимо устранить уязвимости Intel-SA-00086 в Intel
Management Engine;
3
Или с использованием аналогичного ПО, осуществляющего подсчет контрольных сумм по алгоритму ФИКС режим
«Уровень-3».
27
ЛКНВ.11100-01 90 01
- установка, конфигурирование и управление ОС Альт 8 СП должны
выполняться в соответствии с эксплуатационной документацией;
- должна быть обеспечена защита от осуществления действий, направленных
на нарушение физической целостности СВТ, на котором функционирует
ОС Альт 8 СП;
- должна быть обеспечена доверенная загрузка ОС локирование попыток
несанкционированной загрузки, контроль доступа субъектов доступа к
процессу загрузки, контроль целостности компонентов загружаемой
операционной среды);
- должны быть обеспечены необходимые ресурсы для выполнения
функциональных возможностей безопасности ОС, хранения резервных
копий, создаваемых ОС, а также защищенное хранение данных ОС и
защищаемой информации;
- должно быть обеспечено ограничение на установку ПО и его компонентов,
не задействованных в технологическом процессе обработки информации;
- должен обеспечиваться доверенный маршрут между ОС и пользователями
ОС (администраторами, пользователями);
- должен обеспечиваться доверенный канал передачи данных между ОС и
средствами вычислительной техники, на которых происходит обработка
информации, а также с которых происходит их администрирование;
- должна быть обеспечена невозможность отключения (обхода) компонентов
ОС;
- должны быть реализованы меры, препятствующие несанкционированному
копированию информации, содержащейся в ОС, на съемные машинные
носители информации (или за пределы ИС). В том числе должен
осуществляться контроль вноса (выноса) в (из) контролируемую зону
(контролируемой зоны) съемных машинных носителей информации;
- должна осуществляться проверка целостности внешних модулей уровня
ядра, получаемых от заявителя (разработчика, производителя), перед их
установкой в ОС;
28
ЛКНВ.11100-01 90 01
- должно быть обеспечено выделение вычислительных ресурсов для процессов
в соответствии с их приоритетами;
- персонал, ответственный за функционирование ОС Альт 8 СП, должен
обеспечивать функционирование ОС Альт 8 СП, в точности руководствуясь
эксплуатационной документацией;
- лица, ответственные за эксплуатацию ОС Альт 8 СП, должны обеспечить,
чтобы аутентификационная информация для каждой учетной записи
пользователя ОС содержалась в тайне и была недоступна лицам, не
уполномоченным использовать данную учетную запись;
- должна обеспечиваться возможность генерации аутентификационной
информации соответствующей метрике качества.
Настройка опций безопасности
Во время установки ОС Альт 8 СП в соответствии с принятыми парольными
ограничениями на объекте эксплуатации:
- задать пользователя с паролем, отвечающим требованиям безопасности;
- задать пароль администратора, отвечающий требованиям безопасности;
- установить пароль на загрузчик (при наличии).
Перед началом эксплуатации ОС Альт 8 СП рекомендуется администратору
обеспечить выполнение следующих условий:
1) настроить параметры входа пользователя (порядок действий приведен в
документе «Руководство по комплексу средств защиты.
ЛКНВ.11100-01 99 01» далее Руководство по КСЗ):
- время засыпания (блокирование сеанса доступа см. в п. 6.4);
2) настроить параметры пароля пользователя (порядок действий приведен в
Руководстве по КСЗ подразделы «Настройка парольных ограничений»,
«Управление сроком действия пароля»);
- сложность пароля;
- время действия;
29
ЛКНВ.11100-01 90 01
3) настроить средства контроля целостности (порядок действий приведен в
Руководстве по КСЗ в подразделе «Программный комплекс проверки
целостности системы Osec»);
4) настроить параметры запрета удаления файлов (порядок действий приведен
п. 12.2 «Модуль AltHa»);
5) настроить сервисы в соответствии с функциональным назначением объекта
автоматизации (управление сервисами см. в п. 10.1.1);
6) настроить аудит:
- создать правила аудита (примеры использования аудита приведены в
Руководстве по КСЗ подраздел «Использование аудита»);
7) настроить экспорт аудита на другой компьютер (порядок действий приведен
п. 7.6);
8) настроить подключение оповещений администратора (порядок действий
приведен п. 7.7);
9) настроить отключение posix capabilities (порядок действий приведен п. 6.7
настоящего документа);
10) механизм замкнутой программной среды должен быть настроен для работы
в штатном режиме пользователя (порядок действий приведен в Руководстве
по КСЗ в подразделе «Подсистема IMA/EVM»);
11) с использованием средств управления дискреционными правами
разграничения доступа запретить пользователям, не обладающим
привилегиями администратора:
- доступ к библиотеке libpcprofile.so;
- запуск (использование) средств создания символических ссылок;
12) с использованием средств управления запуском сервисов должна быть
отключена служба gpm для поддержки «мыши» в консольном режиме;
13) для защиты от атаки подбора пароля (brute force):
- внести изменения в файл /etc/pam.d/sshd добавить строку:
для armh (ARMv7):
auth required pam_tally2.so deny=3 unlock_time=19
для других архитектур:
auth required pam_faillock.so authfail deny=3 unlock_time=19
30
ЛКНВ.11100-01 90 01
14) для суперпользователя root необходимо заблокировать возможность его
удаленного входа в ОС посредством включения PAM-модуля
pam_securetty в файл сценария /etc/pam.d/common-auth. Для этого
необходимо в «Primary block» в указанном файле первой строкой добавить:
auth required pam_securetty.so
Описание механизмов устранения идентифицированных скрытых каналов
Далее приведены дополнительные рекомендации по настройке механизмов
защиты ОС Альт 8 СП для устранения возможных скрытых каналов передачи
информации.
Механизмы защиты, направленны на ограничение, мониторинг, полное или
частичное устранение идентифицированных скрытых каналов, которые могут
возникнуть в информационных (автоматизированных) системах вследствие
использования в них ОС Альт 8 СП.
1) Исключение возможности работы с общими каталогами с правом записи для
пользователей, имеющих разные полномочия доступа.
2) Для противодействия атакам на каналы передачи по времени и памяти
необходимо администратором безопасности исключить наличие в системе общих для
пользователей файловых ресурсов, где размещаются файлы с разными правами
дискреционного разграничения доступа, в частности исключить размещение в
каталогах файлов, доступ к которым полностью закрыт для конкретных
пользователей данного каталога. Также можно монтировать файловую систему без
учета времени доступа: mount -noatime nodiratime.
3) На уровне ядра запретить процессам создавать слушающие сокеты, кроме
тех, что им действительно необходимы, в том числе запрещать слушать на
фиксированном порту, а также контролировать частоту создания сокета.
4) Монтировать подсистему /proc с флагом hidepid=2 или 1. При этом имена
процессов других пользователей и другие данные таких процессов будут недоступны
вызывающему непривилегированному пользователю.
31
ЛКНВ.11100-01 90 01
5) Организовать маскирующие процессы, имитирующие постоянную загрузку
процессора. Использовать механизмы ограничения СPU для процессов,
гарантирующий время выполнения, одинаковое для всех процессов, такой как
сgroups.
6) Для предотвращения Timestamp Evaluation отключить отметки времени
TCP в ОС Альт 8 СП. Для этого выполнить следующие команды:
# echo 0 > /proc/sys/net/ipv4/tcp_timestamps
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
32
ЛКНВ.11100-01 90 01
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
Эти правила прописываются на удаленном хосте и воздействуют на входящие,
по отношению к компьютеру, пакеты. Для пакетов, отправляемых в обратном
направлении, эти флаги устанавливаются автоматически. Настроить их можно,
прописав следующие правила:
# 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);
33
ЛКНВ.11100-01 90 01
- 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 (ответ на запрос информации);
- 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
34
ЛКНВ.11100-01 90 01
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
# Различные улучшения (защита от спуфинга
# увеличение очереди «полуоткрытых» 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
35
ЛКНВ.11100-01 90 01
4. ФУНКЦИИ И ЗАДАЧИ АДМИНИСТРИРОВАНИЯ ОС АЛЬТ 8 СП
Функции администратора
Основными функциями администратора при эксплуатации ОС Альт 8 СП
являются:
- ввод в эксплуатацию и эксплуатация в соответствии с указаниями,
приведенными в документе «Формуляр. ЛКНВ.11100-01 30 01»;
- соблюдение подготовительных процедур (см. раздел 3);
- установка и настройка ОС Альт 8 СП;
- управление и поддержка функционирования ПЭВМ.
Задачи администрирования
В состав основных задач администрирования входят следующие:
- установка ОС Альт 8 СП и назначение параметров системы;
- создание загрузочных носителей информации;
- конфигурирование параметров даты и времени, графической среды, средств
ввода и вывода;
- настройка и управление системными сервисами и служебными программами;
- настройка и управление работой системы управления пакетами Advanced
Packaging Tool (далее APT);
- обновление ОС и прикладного ПО из ее состава;
- настройка и управление учетными записями и правами доступа
пользователей;
- конфигурирование сети /etc/net и проверка ее работоспособности;
- настройка FTP-серверов;
- настройка служб DNS;
- настройка серверов электронной почты postfix;
- настройка и управление кэширующими прокси-серверами;
- настройка серверного и клиентского ПО Samba для осуществления связи
UNIX-машин с сетями Microsoft и LanManager;
- настройка и управление печатью;
36
ЛКНВ.11100-01 90 01
- настройка и управление базами данных.
37
ЛКНВ.11100-01 90 01
5. УСТАНОВКА ОС АЛЬТ 8 СП
Обычно для установки дистрибутива используется установочный загрузочный
компакт-диск дистрибутива. Если установка производится с компакт-диска, можете
сразу перейти к п. 5.3 и п. 5.4.
Для начала процесса установки ПИ ОС Альт 8 СП необходимо:
- выбрать способ первоначальной загрузки компьютера (п. 5.3.1);
- выбрать источник установки (п. 5.2).
В случае загрузки с установочного компакт-диска эти две возможности
предоставляются самим диском: он является загрузочным и содержит все
необходимые для установки файлы. Однако, вполне допустим и такой вариант:
первоначальная загрузка происходит со специально подготовленного USB-flash-
накопителя, а установочные файлы берутся с FTP-сервера сети.
Установка с загрузочного компакт-диска – это один из возможных способов
установки системы. Он является самым распространенным способом установки
системы, но не работает, например, в случае отсутствия на компьютере
CD/DVD-привода. Для таких случаев поддерживаются альтернативные методы
установки (см. п. 5.1 и п. 5.2).
В зависимости от особенностей архитектуры процессора процесс установки
может отличаться, так, описание установки для armh (ARMv7) приведено в п. 5.6.
Запись установочного образа на USB-flash-накопитель
ПРЕДУПРЕЖДЕНИЕ
Запись образа дистрибутива на USB-flash-накопитель приведет к изменению
таблицы разделов на носителе, таким образом, если USB-flash-накопитель выполнил
функцию загрузочного\установочного устройства и требуется вернуть ему функцию
переносного накопителя данных, то необходимо удалить все имеющиеся разделы на
USB-flash-накопителе и создать нужное их количество заново.
Для восстановления совместимости USB-flash-накопителя с ОС семейства
Windows может понадобиться также пересоздание таблицы разделов (например, при
помощи parted). Нужно удалить таблицу GPT и создать таблицу типа msdos. Кроме
того, должен быть только один раздел с FAT или NTFS.
38
ЛКНВ.11100-01 90 01
Для создания загрузочного USB-flash-накопителя необходим файл ISO-образа
установочного носителя информации с дистрибутивом. ISO-образы установочных
носителей информации являются гибридными (Hybrid ISO/IMG), что позволяет
записывать их на USB-flash-накопитель.
В ОС Linux для записи образа на USB-flash-накопитель можно воспользоваться
любой программой с графическим интерфейсом, например:
- ALT Media Writer (altmediawriter) может автоматически загружать образы
из интернета и записывать их, при необходимости извлекая сжатые образы
(img.xz);
- SUSE Studio Imagewriter.
Или воспользоваться для записи установочного образа утилитой командной
строки dd, выполнив с правами пользователя root следующие команды:
# dd oflag=direct if=<файл-образа.iso> of=/dev/sdX bs=1M
# sync
где:
- <файл-образа.iso> ISO-образ установочного диска с дистрибутивом;
- /dev/sdX устройство, соответствующее USB-flash-накопителю.
Точное обозначение устройства можно узнать, выполнив команду dmesg, после
подключения USB-flash-накопителя к компьютеру. Например:
$ dmesg | grep disk
[ 1.171036] sd 0:0:0:0: [sda] Attached SCSI disk
[ 4.755468] sd 1:0:0:0: [sdb] Attached SCSI disk
[53271.629338] sd 5:0:0:0: [sdc] Attached SCSI removable disk
USB-flash-накопитель имеет имя устройства sdc. Далее в примере устройство
будет называться /dev/sdc.
Также просмотреть список доступных устройств можно командой lsblk или
(если такой команды нет): blkid.
Затем для удобства отображения прогресса записи необходимо установить
пакет pv и запустить команду:
# pv <файл-образа.iso> | dd oflag=direct of=/dev/sdX bs=1M;sync
39
ЛКНВ.11100-01 90 01
ПРЕДУПРЕЖДЕНИЕ
Будьте внимательны при указании имени USB-устройства – запись образа по
ошибке на жесткий диск приведет к потере данных на нем.
ПРЕДУПРЕЖДЕНИЕ
Не добавляйте номер раздела, образ пишется на USB-flash-накопитель с самого
начала!
ПРЕДУПРЕЖДЕНИЕ
Пока образ не запишется до конца нельзя извлекать USB-flash-накопитель.
Определить финал процесса можно по прекращению моргания индикатора
USB-устройства либо посредством виджета «Безопасное извлечение съемных
устройств». В консоли можно подать команду:
$ eject /dev/sdX
В среде ОС Windows для создания загрузочного USB-flash-накопителя
рекомендуется использовать специализированные программные средства, например:
ALT Media Writer, Win32 Disk Imager и другие.
Созданный, описанным выше способом, USB-flash-накопитель является
одновременно и загрузочным, и установочным. В результате, установка дистрибутива
может быть произведена исключительно с использованием
USB-flash-накопителя.
Источники установки
После первоначальной загрузки с одного из поддерживаемых носителей
(загрузочный компакт-диск или USB-flash-накопитель (п. 5.1)), можно выбрать
источник установки место, откуда программа установки будет брать все
необходимые при установке данные (прежде всего устанавливаемое ПО). Так как
установка системы возможна не только с компакт-диска, то можно выбрать один из
поддерживаемых альтернативных источников установки.
Источники установки:
1) сетевые:
- FTP-сервер;
- NFS-сервер;
- HTTP-сервер;
40
ЛКНВ.11100-01 90 01
2) локальные – внешний жесткий диск.
Условием для всех способов установки является доступность дерева файлов,
аналогичного содержимому установочного диска.
5.2.1. Настройка сервера сетевой установки
Для настройки сервера сетевой установки через веб-интерфейс серверу должен
быть задан статический IP-адрес апример, с помощью модуля
«Ethernet-интерфейсы» в Центре управления системой (ЦУС) (см. подробнее в
п. 8.5.1)), так же в системе должны быть установлены следующие пакеты:
- alterator-netinst Сервер сетевых установок»);
- alterator-dhcp (модуль «DHCP-Сервер») (см. п. 8.5.3);
- alterator-vsftpd (модуль «FTP-сервер»).
Модуль «Сервер сетевых установок» ЦУС позволяет настроить источники
(образы дисков) для установки ОС по сети.
Модуль предоставляет следующие возможности:
- выбор образа установочного диска из списка доступных образов;
- добавление и удаление образов установочных дисков. При добавлении
образа можно выбрать как существующий iso-образ установочного диска, так
и считать этот образ с CD или DVD;
- использование удаленного доступа к компьютеру (по протоколу VNC) в
процессе установки ОС на него.
На сервере сетевой установки следует произвести настройку DHCP-сервера с
помощью модуля «DHCP-Сервер» (рис. 2) (см. также п. 8.5.3):
- выбрать в строке «Версия IP» пункт «IPv;
- отметить пункт «Включить службу DHCP»;
- в строке «Интерфейс» выбрать сетевую карту;
- задать «Начальный IP-адрес»;
- задать «Конечный IP-адрес»;
- задать «Шлюз по умолчанию»;
- нажать на кнопку «Применить».
41
ЛКНВ.11100-01 90 01
Рис. 2 Пример настройки DHCP-сервера с помощью модуля «DHCP-Сервер»
Отредактировать файл конфигурации, добавить строку в /etc/exports:
/srv/public -ro,insecure,no_subtree_check,fsid=1
Выполнить команду: # exportfs -r
Далее необходимо настроить сервер сетевой установки с помощью модуля
«Сервер сетевых установок» (рис. 3).
Необходимо импортировать установочный компакт-диск, предварительно
вставив его в DVD-привод сервера, либо использовав образ диска, расположенный на
файловой системе на сервере.
П р и м е ч а н и е . При использовании образа диска с файловой системы на
сервере поместите его в директорию /tmp и от администратора измените права
доступа на файл образа:
# chmod o+r /tmp/alt-sp8-*.iso
где * – актуальное наименование образа диска дистрибутива.
Для этого следует указать, откуда импортировать новый образ и нажать на
кнопку «Добавить». Процесс добавления занимает какое-то время.
После добавления образа он появится в списке «Доступные образы дисков»
(рис. 4). Далее необходимо выбрать образ из списка и нажать на кнопку «Выбрать».
42
ЛКНВ.11100-01 90 01
Рис. 3 Модуль «Сервер сетевых установок»
Рис. 4 Доступные образы дисков
Для управления сетевой установкой следует отметить пункт «Включить
установку по VNC» и пункт «Подключение со стороны VNC сервера» раздела
«Направление соединения». В окне «Подключение со стороны VNC сервера»
43
ЛКНВ.11100-01 90 01
необходимо указать адрес компьютера, с которого будет происходить управление и
нажать на кнопку «Применить».
В случае, когда работа с аппаратной подсистемой ввода-вывода невозможна
(например, если клавиатура, мышь или монитор отсутствуют), можно использовать
вариант «Только по VNC».
Включить nfs сервис:
# systemctl enable nfs
# systemctl start nfs
Для удаленного управления установкой с помощью VNC в системе должен
быть установлен пакет tigervnc. Для приема подключения в терминале необходимо
выполнить команду:
$ vncviewer -listen
П р и м е ч а н и е . По окончании процесса установки ОС на рабочих станциях
необходимо отключить сетевую установку. Это можно сделать, выбрав в списке
«Доступные образы дисков» пункт «Нет образа» и нажать на кнопку «Выбрать».
5.2.2. Запуск сетевой установки
Клавиша <F4> позволяет выбрать источник сетевой установки: FTP, HTTP или
NFS-сервер. Нужно указать имя или IP-адрес сервера и каталог (начиная с /),
в котором размещен дистрибутив ОС Альт 8 СП. В случае установки по протоколу
FTP может понадобиться, также ввести имя пользователя и пароль.
Пример установки:
1) имя сервера: 192.168.0.1;
2) каталог: /pub/netinstall, в данном каталоге на сервере должны
находиться:
- файл altinst;
- каталог Metadata;
- каталог ALTLinux с подкаталогами RPMS.секция, содержащими rpm-
пакеты.
Для получения подобного дерева каталогов на стороне сервера необходимо
скопировать содержимое установочного носителя информации в один из
44
ЛКНВ.11100-01 90 01
подкаталогов FTP-сервера (либо HTTP или NFS-сервера). В описанном примере это
каталог /pub/netinstall.
При сетевой установке со стороны клиента (компьютера, на который
производится установка) может понадобиться определить параметры соединения с
сервером. В этом случае на экране будет выведен ряд сообщений с предложением
выбора сетевой карты (если их несколько) или указать тип IP-адреса: статический
(необходимо ввести его самостоятельно) или динамический (DHCP).
После успешного соединения с сервером в память компьютера будет загружен
образ установочного диска, после чего начнется установка системы.
5.2.3. Установка с жесткого диска
Для установки ОС Альт 8 СП с жесткого диска необходимо подключить
дополнительный жесткий диск с записанным на него дистрибутивом. Чтобы выбрать
подключенный диск в качестве источника установки, нужно с помощью клавиши
<F4> выбрать источник установки «Жесткий диск» и нажать клавишу <Enter>. На
экране появится диалог выбора дискового раздела. В данном окне необходимо
выбрать раздел жесткого диска, а также указать путь к каталогу с дистрибутивом.
Далее нажать клавишу <Enter>.
Можно указать путь к дистрибутиву, сделав в строке параметров загрузки
запись вида:
automatic=method:disk,disk:sdb,partition:sdbX,directory:<путь_к_к
аталогу_с_дистрибутивом>
В данной команде <путь_к_каталогу_с_дистрибутивом> полный путь до
каталога, в котором находится дистрибутив.
Начало установки: загрузка системы
5.3.1. Способы первоначальной загрузки
Для загрузки компьютера с целью установки системы необходимо
воспользоваться носителем, содержащим начальный загрузчик. Таким носителем
может быть, как сам загрузочный компакт-диск дистрибутива, так и, например,
USB-flash-накопитель, который можно сделать загрузочным (см. п. 5.1).
45
ЛКНВ.11100-01 90 01
5.3.2. Загрузка системы
Для того чтобы начать обычную установку (при наличии установочного
компакт-диска с дистрибутивом и устройства для чтения DVD), необходимо
загрузиться с компакт-диска, на котором записан дистрибутив.
П р и м е ч а н и я :
1. Перед установкой системы необходимо выставить точное время в базовой
системе ввода-вывода (БСВВ).
2. Может потребоваться включить в БСВВ опцию загрузки с
CD/DVD-привода. Способ входа в меню БСВВ и информация о расположении
настроек определяется производителем используемого оборудования.
За информацией можно обратиться к документации на оборудование.
После загрузки компьютера с установочного компакт-диска или специально
подготовленного USB-flash-накопителя (см. п. 5.1) выводится меню, в котором
возможно перечисление нескольких вариантов загрузки, зависит от особенностей
архитектуры процессора, причем установка системы это только одна из
возможностей (рис. 5 (цвет фона ОС для armh (ARMv7) зеленый)):
- «Загрузка с жесткого диска» запуск уже установленной на жестком диске
ОС;
- «Установка» – установка ОС;
- «Восстановление системы» восстановление уже установленной, но так или
иначе поврежденной ОС Linux путем запуска небольшого образа ОС в
оперативной памяти. Восстановление системы потребует некоторой
квалификации. Этот пункт также может быть использован для сбора
информации об оборудовании компьютера, которую можно отправить
разработчикам, если ОС Альт 8 СП устанавливается и работает неправильно.
Загрузка восстановительного режима заканчивается приглашением
командной строки: [root@localhost /]#.
П р и м е ч а н и е . На данном этапе установки не поддерживается «мышь»,
поэтому для выбора различных вариантов и опций установки необходимо
воспользоваться клавиатурой.
В строке «Параметры загрузки», меню начального загрузчика, можно вручную
задать параметры, передаваемые ядру, например:
- nomodeset– не использовать modeset-драйверы для видеокарты;
- vga=normal – отключить графический экран загрузки установщика;
46
ЛКНВ.11100-01 90 01
- xdriver=vesa – явно использовать видеодрайвер vesa. Данным параметром
можно явно указать нужный вариант драйвера;
- acpi=off noapic – отключение ACPI (управление питанием), если система
не поддерживает ACPI полностью.
Рис. 5 Пример загрузки с установочного диска
Можно получить справку по любому пункту меню, выбрав этот пункт и нажав
клавишу <F1>.
Нажатие клавиши <F2> вызывает переход к окну выбора языка. От выбора
языка в загрузчике зависит язык интерфейса загрузчика и программы установки.
Нажатие клавиши <F3> открывает меню доступных видеорежимов
(разрешений экрана). Это разрешение будет использоваться во время установки и
загрузки установленной системы.
Выбрать источник установки можно, нажав клавишу <F4>. Кроме установки с
лазерного диска доступно несколько вариантов сетевой установки и установка с
жесткого диска.
47
ЛКНВ.11100-01 90 01
Нажатие клавиши <F5> выполняет переход к списку модулей для определения
состава системных служб и сервисов, с которыми ядро ОС Альт 8 СП будет
установлено на загрузочный носитель.
Сочетание клавиш <Ctrl>+<Alt>+<F1> выдает технические сведения о
выполнении процесса установки ОС Альт 8 СП.
Чтобы начать процесс установки, нужно клавишами перемещения курсора
вверх <↑>, вниз <↓> выбрать пункт меню «Установка» и нажать клавишу <Enter>.
Начальный этап установки не требует вмешательства пользователя:
происходит автоматическое определение оборудования и запуск компонентов
программы установки. Сообщения о том, что происходит на этом этапе, можно
просмотреть, нажав клавишу <ESC>.
П р и м е ч а н и е . В начальном загрузчике установлено небольшое время
ожидания: если в этот момент не предпринимать никаких действий, то будет
загружена та система, которая уже установлена на жестком диске. Если пропустили
нужный момент, перезагрузите компьютер и вовремя выберите пункт «Установка».
Последовательность установки
До того, как будет произведена установка базовой системы на жесткий диск,
программа установки работает с образом системы, загруженным в оперативную
память компьютера.
Если инициализация оборудования завершилась успешно, будет запущен
графический интерфейс программы-установщика. Процесс установки разделен на
шаги; каждый шаг посвящен настройке или установке определенного свойства
системы. Шаги нужно проходить последовательно, переход к следующему шагу
происходит по нажатию кнопки «Далее». При помощи кнопки «Назад» при
необходимости можно вернуться к уже пройденному шагу и изменить настройки.
Однако на этом этапе установки возможность перехода к предыдущему шагу
ограничена теми шагами, где нет зависимости от данных, введенных ранее.
В случае необходимости отмены установки, необходимо нажать на кнопку
<Reset> на корпусе системного блока компьютера.
П р и м е ч а н и е . Совершенно безопасно выполнить отмену установки только
до шага «Подготовка диска» (см. п. 0), поскольку до этого момента не производится
никаких изменений на жестком диске. Если прервать установку между шагами
«Подготовка диска» и «Установка загрузчика» (см. п. 5.4.7), существует вероятность,
что после этого с жесткого диска ОС не сможет загрузиться.
48
ЛКНВ.11100-01 90 01
Технические сведения о ходе установки можно посмотреть, нажав клавиши
<Ctrl>+<Alt>+<F1>, вернуться к программе установки <Ctrl>+<Alt>+<F7>.
По нажатию клавиш <Ctrl>+<Alt>+<F2> откроется отладочная виртуальная консоль.
Каждый шаг сопровождается краткой справкой, которую можно вызвать, нажав
<F1>.
Во время установки системы выполняются следующие шаги:
- язык (см. п. 5.4.1);
- подтверждение согласия (см. п. 5.4.2);
- дата и время (см. п. 5.4.3);
- подготовка диска (см. п. 0);
- установка системы (см. п. 0);
- сохранение настроек (см. 5.4.6);
- установка загрузчика (см. п. 5.4.7);
- настройка сети (см. п. 5.4.8);
- администратор системы (см. п. 5.4.9);
- системный пользователь (см. п. 5.4.10);
- в случае создания LUKS разделов – этап установки пароля на LUKS разделы
(см. п. 5.4.11);
- завершение установки (см. п. 5.4.12).
П р и м е ч а н и е . Некоторые шаги при установке могут отсутствовать в связи
с особенностями архитектуры процессора.
5.4.1. Язык
Установка начинается с выбора основного языка языка интерфейса
программы установки и устанавливаемой системы (рис. 6).
Также на данном этапе выбирается вариант переключения раскладки
клавиатуры. Раскладка клавиатуры это привязка букв, цифр и специальных
символов к клавишам на клавиатуре. Переключение между раскладками
осуществляется при помощи специально зарезервированных для этого клавиш.
49
ЛКНВ.11100-01 90 01
Рис. 6 Установка. Выбор языка
Для настройки варианта переключения раскладки клавиатуры в пункте
«Выберите вариант переключения раскладки клавиатуры:» необходимо установить
одно из следующих значений (доступно при выборе русского языка, в качестве
основного):
- клавиши <Alt> и <Shift> одновременно;
- клавиша <CapsLock>;
- клавиши <Control> и <Shift> одновременно;
- клавиша <Control>;
- клавиша <Alt>.
Если выбранный основной язык имеет всего одну раскладку (например, при
выборе английского языка в качестве основного), эта единственная раскладка будет
принята автоматически.
50
ЛКНВ.11100-01 90 01
После завершения настройки основного языка и варианта переключения
раскладки клавиатуры необходимо нажать на кнопку «Далее».
5.4.2. Подтверждение согласия
После окна выбора языковых параметров ОС Альт 8 СП программа установки
переходит к окну «Подтверждение согласия» (рис. 7).
Перед продолжением установки следует внимательно прочитать условия,
регулирующие права владельца экземпляра дистрибутива ОС Альт 8 СП на
использование дистрибутива, а также включенных в состав дистрибутива отдельных
программ для ЭВМ в установленных условиями пределах.
Для подтверждения согласия, необходимо отметить пункт «Да, я согласен с
условиями» и нажать на кнопку «Далее».
Рис. 7 Установка. Подтверждение согласия
51
ЛКНВ.11100-01 90 01
5.4.3. Дата и время
После окна «Подтверждения согласия» ОС Альт 8 СП программа установки
переходит к окну «Дата и время». На данном этапе выполняется выбор страны и
города, по которым будет определен часовой пояс и установлены системные часы
(рис. 8).
На этом шаге следует выбрать часовой пояс, по которому нужно установить
часы. Для этого в соответствующих списках выберите страну, а затем регион. Поиск
по списку можно ускорить, набирая на клавиатуре первые буквы искомого слова.
Пункт «Хранить время в BIOS по Гринвичу» выставляет настройки даты и
времени в соответствии с часовыми поясами, установленными по Гринвичу, и
добавляет к местному времени часовую поправку для выбранного региона.
После выбора часового пояса будут предложены системные дата и время по
умолчанию.
Рис. 8 Установка. Выбор часового пояса
52
ЛКНВ.11100-01 90 01
Для ручной установки текущих даты и времени нужно нажать на кнопку
«Изменить…». Откроется окно ручной настройки системных параметров даты и
времени (рис. 9).
Рис. 9 Установка. Настройка времени
Для синхронизации системных часов (NTP) с удаленным сервером по
локальной сети или по сети Интернет нужно отметить пункт «Получать точное время
с NTP-сервера» и указать предпочитаемый NTP-сервер. В большинстве случаев
можно указать сервер pool.ntp.org.
Для работы компьютера в качестве сервера точного времени внутри локальной
сети нужно отметить пункт «Работать как NTP-сервер».
Для сохранения настроек и продолжения установки системы в окне ручной
установки даты и времени необходимо нажать на кнопку «ОК» и затем в окне «Дата
и время» нажать на кнопку «Далее».
53
ЛКНВ.11100-01 90 01
5.4.4. Подготовка диска
На этом этапе программа установки подготавливает площадку для установки
ОС Альт 8 СП, в первую очередь – выделяется свободное место на диске.
Переход к этому шагу может занять некоторое время период ожидания может
быть разным и зависит от производительности компьютера, объема жесткого диска,
количества разделов на нем и других параметров.
Выбор профиля разбиения диска
После завершения первичной конфигурации загрузочного носителя откроется
окно «Подготовка диска» (рис. 10). В списке разделов перечислены уже
существующие на жестких дисках разделы том числе здесь могут оказаться
съемные USB-носители, подключенные к компьютеру в момент установки).
Рис. 10 Установка. Выбор профиля разбиения диска(ов)
54
ЛКНВ.11100-01 90 01
В списке «Выберите метод установки:» перечислены доступные профили
разбиения диска. Профиль это шаблон распределения места на диске для установки
ОС. Можно выбрать один из профилей:
- использовать неразмеченное пространство;
- удалить все разделы и создать разделы автоматически;
- подготовить разделы вручную.
Первые два профиля предполагают автоматическое разбиение диска.
Автоматические профили разбиения диска
Если происходит установка сервера, то при разбиении диска будут выделены
отдельные разделы для подкачки и для корневой файловой системы. Оставшееся
место будет отведено под файловую систему, содержащую данные серверных
приложений /var.
Если происходит установка рабочей станции, то при разбиении диска будут
выделены отдельные разделы для подкачки и для корневой файловой системы.
Оставшееся место будет отведено под файловую систему содержащую домашние
каталоги пользователей /home.
ПРЕДУПРЕЖДЕНИЕ
При использовании автоматических профилей разбиения дисков, соответствующие
изменения на диске происходят сразу же по нажатию кнопки «Далее» будет
произведена запись новой таблицы разделов на НЖМД и форматирование разделов.
Если при применении одного из профилей автоматического разбиения диска
доступного места на диске окажется недостаточно, то на экран будет выведено
сообщение об ошибке:
Невозможно применить профиль, недостаточно места на диске
Если данное сообщение появилось после попытки применить профиль
«Использовать неразмеченное пространство», то можно полностью очистить место
на диске, применив профиль «Удалить все разделы и создать разделы
автоматически».
Если сообщение о недостатке места на диске появляется и при применении
профиля «Удалить все разделы и создать разделы автоматически», то это связано с
55
ЛКНВ.11100-01 90 01
недостаточным для использования автоматических методов разметки объемом всего
диска. В этом случае следует воспользоваться профилем разбиения «Подготовить
разделы вручную».
ПРЕДУПРЕЖДЕНИЕ
При применении профиля «Удалить все разделы и создать разделы автоматически»
будут удалены все данные со всех дисков (включая внешние USB-устройства) без
возможности восстановления. Рекомендуется использовать эту возможность при
полной уверенности в том, что диски не содержат никаких ценных данных.
Ручной профиль разбиения диска
При необходимости освободить часть дискового пространства следует
воспользоваться профилем разбиения «Подготовить разделы вручную». Можно
удалить некоторые из существующих разделов или содержащиеся в них файловые
системы. После этого можно создать необходимые разделы самостоятельно или
вернуться к шагу выбора профиля и применить один из автоматических профилей.
Выбор этой возможности требует знаний об устройстве диска и технологиях его
разбиения.
По нажатию «Далее» будет произведена запись новой таблицы разделов на диск
и форматирование разделов. Разделы, только что созданные на диске программой
установки, пока не содержат данных и поэтому форматируются без предупреждения.
Уже существовавшие, но измененные разделы, которые будут отформатированы,
помечаются специальным значком в колонке «Файловая система» слева от названия.
При уверенности в том, что подготовка диска завершена, подтвердите переход к
следующему шагу нажатием кнопки «Далее».
Не следует форматировать разделы с теми данными, которые необходимо
сохранить, например, со старыми пользовательскими данными (/home).
Отформатировать можно любые разделы, которые хотите «очистить» (т.е. удалить
все данные).
Дополнительные возможности разбиения диска
Ручной профиль разбиения диска позволяет установить ОС на программный
RAID-массив, разместить разделы в томах LVM и использовать маскирование на
56
ЛКНВ.11100-01 90 01
разделах. Данные возможности требуют от пользователя понимания принципов
функционирования указанных технологий.
Создание программного RAID-массива
Избыточный массив независимых дисков RAID (redundant array of independent
disks) технология виртуализации данных, которая объединяет несколько НЖМД в
логический элемент для избыточности и повышения производительности.
Для создания RAID-массива необходимо два и более жестких диска. Программа
установки поддерживает создание программных RAID-массивов следующих типов:
- RAID 1;
- RAID 0;
- RAID 4/5/6;
- RAID 10.
Процесс подготовки к установке на RAID условно можно разбить на
следующие шаги:
- создание разделов на жестких дисках;
- создание RAID-массивов на разделах жесткого диска;
- создание файловых систем на RAID-массиве.
Для настройки параметров нового раздела из состава RAID-массива
необходимо выбрать неразмеченный диск в окне профиля разбивки пространства
«Подготовить разделы вручную» и нажать на кнопку «Создать раздел». После этого
откроется окно (рис. 11).
В этом окне необходимо настроить следующие параметры:
- «Размер» – в поле необходимо указать размер будущего раздела в Мбайт;
- «Смещение» в поле необходимо указать смещение начала данных на диске
в Мбайт;
- «Основной раздел» необходимо отметить пункт, если раздел является
основным для установки ОС;
- «Тип раздела» – в выпадающем поле нужно выбрать значение «Linux RAID»
для последующего включения раздела в RAID-массивы.
57
ЛКНВ.11100-01 90 01
Рис. 11 Установка. Подготовка диска. Создание раздела Linux RAID
П р и м е ч а н и е . Объем результирующего массива может зависеть от размера,
включенных в него разделов жесткого диска.
После создания разделов на дисках можно переходить к организации самих
RAID-массивов. Для этого в списке следует выбрать пункт «RAID», после чего
нажать на кнопку «Создать RAID». Далее мастер предложит выбрать тип массива и
указать его участников (рис. 12, рис. 13).
После создания RAID-массивов их можно использовать как обычные разделы
на жестких дисках, то есть, на них можно создавать файловые системы или же,
например, включать их в LVM-тома.
58
ЛКНВ.11100-01 90 01
Рис. 12 Установка. Подготовка диска. Выбор типа RAID-массива
Рис. 13 Установка. Подготовка диска. Выбор участников RAID-массива
59
ЛКНВ.11100-01 90 01
Создание LVM-томов
Менеджер логических дисков LVM (Logical Volume Manager) средство
гибкого управления дисковым пространством, позволяющее создавать поверх
физических разделов (либо неразбитых дисков) логические тома, которые в самой
системе будут видны как обычные блочные устройства с данными (обычные
разделы).
Процесс подготовки к установке на LVM можно разбить на следующие шаги:
- создание группы томов LVM;
- создание томов LVM;
- создание файловых систем на томах LVM.
П р и м е ч а н и е . Для создания группы томов LVM может потребоваться
предварительно удалить таблицу разделов с жесткого диска.
Для создания группы томов LVM в списке следует выбрать пункт «LVM»,
после чего нажать на кнопку «Создать группу томов» (рис. 14).
Рис. 14 Установка. Подготовка диска. Создание группы томов LVM
60
ЛКНВ.11100-01 90 01
После создания группы томов LVM ее можно использовать как обычный
жесткий диск, то есть внутри группы томов можно создавать тома (аналог раздела на
физическом жестком диске) и файловые системы внутри томов (рис. 15).
Рис. 15 Установка. Подготовка диска. Создание тома
Создание шифрованных разделов
Программа установки ОС Альт 8 СП позволяет создавать шифрованные
разделы с использованием встроенных средств маскирования.
Для создания шифрованного раздела и выполнения дальнейшей разметки
нужно выбрать требуемый диск и нажать на кнопку «Создать шифруемый раздел».
В открывшемся окне доступны следующие настройки (рис. 16):
- «Размер» – общий размер шифрованного тома;
- «Смещение» настройка осуществляется с помв ииощью ползунка либо
путем ввода значения с клавиатуры поле необходимо указать смещение
начала данных на диске в Мбайт);
- «Основной раздел» необходимо отметить пункт, если раздел является
основным для установки ОС;
- «Тип раздела» – в выпадающем поле нужно выбрать значение «Linux»;
61
ЛКНВ.11100-01 90 01
- «Создать шифруемый том» отметить пункт для автоматического перехода
к настройке файловой системы на данном разделе;
- «Показывать дополнительные настройки» отметить пункт для отображения
дополнительных настроек при последующей работе с разделом.
Рис. 16 Установка. Подготовка диска. Создание кодируемого раздела
После создания шифрованного раздела мастер, как и при создании обычного
раздела, предложит создать на нем файловую систему и при необходимости
потребует указать точку монтирования.
ПРЕДУПРЕЖДЕНИЕ
Установка загрузчика на шифрованный раздел не поддерживается.
Для сохранения всех внесенных настроек и продолжения установки в окне
«Подготовка диска» нужно нажать на кнопку «Далее».
62
ЛКНВ.11100-01 90 01
5.4.5. Установка системы
На данном этапе происходят распаковка ядра и установка набора программ,
необходимых для работы ОС Альт 8 СП.
Программа установки предлагает выбрать дополнительные пакеты программ,
которые будут включены в состав ОС Альт 8 СП и установлены вместе с ней на диск
(рис. 17).
Рис. 17 Установка. Выбор групп пакетов
В дистрибутиве ОС Альт 8 СП доступно значительное количество программ
(до нескольких тысяч), часть из них составляет саму ОС, а остальные – это
прикладные программы и утилиты.
В ОС Альт 8 СП все операции установки и удаления производятся над
пакетами – отдельными компонентами системы. Пакет и программа соотносятся
неоднозначно: иногда одна программа состоит из нескольких пакетов, иногда один
пакет включает несколько программ.
63
ЛКНВ.11100-01 90 01
В процессе установки системы пользователю предлагается выбрать профиль и
состав из небольшого списка групп пакетов, объединяющих пакеты, необходимые
для решения наиболее распространённых задач.
Под списком групп на экране отображается информация об объеме дискового
пространства, которое будет занято после установки пакетов, входящих в выбранные
группы.
Необходимо учитывать, что на рабочей станции группы пакетов «Рабочее
место контролера событий безопасности» и «Датчики системы сигнализации»
конфликтуют между собой – допускается выбор только одного из них.
Опция «Показать состав группы» выводит список программных пакетов,
входящих в состав той или иной группы пакетов (рис. 18).
Рис. 18 Установка. Состав группы пакетов
64
ЛКНВ.11100-01 90 01
Если была отмечена для установки группа «Среда MATE» (по умолчанию в
профиле «Рабочая станция»), то графическая оболочка MATE будет автоматически
запускаться при загрузке ОС автоматически.
Выбрав профиль и группы пакетов, следует нажать «Далее», после чего
начнется установка пакетов (рис. 19).
Установка происходит автоматически в два этапа:
- получение пакетов;
- установка пакетов.
Получение пакетов осуществляется с источника, выбранного на этапе
начальной загрузки. При сетевой установке (по протоколу FTP или HTTP) время
выполнения этого шага будет зависеть от скорости соединения.
Рис. 19 Установка. Установка пакетов
65
ЛКНВ.11100-01 90 01
5.4.6. Сохранение настроек
Начиная с данного этапа, программа установки работает с файлами только что
установленной базовой системы. Все последующие изменения можно будет
совершить после завершения установки посредством редактирования
соответствующих конфигурационных файлов или при помощи модулей управления,
включенных в дистрибутив.
После завершения установки базовой системы выполняется шаг сохранения
настроек (рис. 20). Он проходит автоматически и не требует вмешательства
пользователя, на экране отображается индикатор выполнения.
Рис. 20 Установка. Сохранение настроек
На данном этапе производится перенос настроек, выполненных на первых
шагах установки, в установленную базовую систему. Также производится запись
информации о соответствии разделов жесткого диска смонтированным на них
файловым системам (заполняется конфигурационный файл /etc/fstab). В список
доступных источников программных пакетов добавляется репозиторий, находящийся
на установочном лазерном диске выполняется команда apt-cdrom add,
осуществляющая запись в конфигурационный файл /etc/apt/sources.list.
66
ЛКНВ.11100-01 90 01
После сохранения настроек осуществляется автоматический переход к
следующему шагу.
5.4.7. Установка загрузчика
Загрузчик ОС программа, которая позволяет загружать ОС.
Программа установки автоматически определяет, в каком разделе НЖМД
следует располагать загрузчик для возможности корректного запуска ОС Альт 8 СП
(рис. 21).
Положение загрузчика, в случае необходимости, можно изменить в
выпадающем списке «Устройство:», выбрав другой раздел.
Для ограничения доступа к опциям загрузки устанавливается пароль
на загрузчик. Чтобы исключить опечатки при вводе пароля, пароль вводится дважды.
Рис. 21 Установка загрузчика
П р и м е ч а н и е . При необходимости изменения опций загрузки при старте
компьютера потребуется ввести имя пользователя «boot» и заданный на этом шаге
пароль.
67
ЛКНВ.11100-01 90 01
ВАЖНО
При установке на EFI выберите в качестве устройства для установки «EFI».
Рекомендуется выбрать автоматическое разбиение на этапе разметки диска для
создания необходимых разделов для загрузки с EFI.
Для подтверждения выбора и продолжения работы программы установки
необходимо нажать на кнопку «Далее».
5.4.8. Настройка сети
На этом этапе в окне «Настройка сети» необходимо задать параметры работы
сетевой карты и настройки сети (рис. 22):
- «Имя компьютера:» указать сетевое имя ПЭВМ в поле для ввода имени
компьютера;
- «Интерфейсы:» выбрать доступный сетевой интерфейс, для которого будут
выполняться настройки;
- «Версия протокола IP указать в выпадающем списке версию
используемого протокола IP (IPv4 либо IPv6) и убедиться, что пункт
«Включить», обеспечивающий поддержку работы протокола, отмечен;
- «Конфигурация:» выбрать способ назначения IP-адресов (службы DHCP,
Zeroconf либо вручную);
- «IP-адреса:» пул назначенных IP-адресов из поля «IP:», выбранные адреса
можно удалить нажатием кнопки «Удалить»;
- «IP ввести IP-адрес вручную и выбрать в выпадающем поле
предпочтительную маску сети, затем нажать на кнопку «Добавить» для
переноса адреса в пул поля «IP-адреса:»;
- «Шлюз по умолчанию:» – в поле для ввода необходимо ввести адрес шлюза,
который будет использоваться сетью по умолчанию;
- «DNS-серверы:» в поле для ввода необходимо ввести список
предпочтительных DNS-серверов, которые будут получать информацию о
доменах, выполнять маршрутизацию почты и управлять обслуживающими
узлами для протоколов в домене;
68
ЛКНВ.11100-01 90 01
- «Домены поиска:» в поле для ввода необходимо ввести список
предпочтительных доменов, по которым будет выполняться поиск.
Рис. 22 Установка. Настройка сети
Конкретные значения будут зависеть от используемого сетевого окружения.
Ручного введения настроек можно избежать, если в сети уже есть настроенный
DHCP-сервер. В этом случае все необходимое сетевые настройки будут получены
автоматически.
Для сохранения настроек сети и продолжения работы программы установки
необходимо нажать на кнопку «Далее».
69
ЛКНВ.11100-01 90 01
5.4.9. Администратор системы
На данном этапе загрузчик создает учетную запись администратора (рис. 23). В
открывшемся окне необходимо ввести пароль учетной записи администратора (root).
Чтобы исключить опечатки при вводе пароля, пароль учетной записи вводится
дважды.
Рис. 23 Установка. Задание пароля администратора
Для автоматической генерации пароля необходимо отметить пункт «Создать
автоматически». Система предложит пароль, сгенерированный автоматическим
образом в соответствии с требованиями по стойкости паролей.
В любой системе Linux всегда присутствует один специальный пользователь –
администратор системы, он же суперпользователь. Для него зарезервировано
стандартное системное имя – root.
70
ЛКНВ.11100-01 90 01
Администратор системы отличается от всех прочих пользователей тем, что ему
позволено производить любые, в том числе критичные изменения в системе. Поэтому
выбор пароля администратора системы  очень важный момент для безопасности.
Любой, кто сможет ввести его правильно знать или подобрать), получит
неограниченный доступ к системе. Даже собственные неосторожные действия от
имени root могут иметь катастрофические последствия для всей системы.
ВАЖНО
Запомните пароль root – его нужно будет вводить для получения права изменять
настройки системы с помощью стандартных средств настройки ОС. Более подробную
информацию о режиме суперпользователя см. в п. 14.2.
Подтверждение введенного (или сгенерированного) пароля учетной записи
администратора (root) и продолжение работы программы установки выполняется
нажатием кнопки «Далее».
5.4.10. Системный пользователь
На данном этапе программа установки создает учетную запись системного
пользователя (пользователя) ОС Альт 8 СП (рис. 24).
Помимо администратора (root) в систему необходимо добавить, по меньшей
мере, одного обычного системного пользователя. Работа от имени администратора
системы считается опасной, поэтому повседневную работу в Linux следует
выполнять от имени ограниченного в полномочиях системного пользователя.
При добавлении системного пользователя предлагается в окне «Системный
пользователь» необходимо заполнить следующие поля:
- «Имя:» – имя учетной записи пользователя ОС Альт 8 СП (слово, состоящее
только из строчных латинских букв, цифр и символа подчеркивания «_»,
причем цифра и символ «_» не могут стоять в начале слова);
- «Комментарий:» – любой комментарий к имени учетной записи;
- «Пароль:» пароль учетной записи пользователя (чтобы исключить опечатки
при вводе пароля, пароль пользователя вводится дважды).
71
ЛКНВ.11100-01 90 01
Рис. 24 Установка. Создание пользователя
Для автоматической генерации пароля необходимо отметить пункт «Создать
автоматически». Система предложит пароль, сгенерированный автоматическим
образом в соответствии с требованиями по стойкости паролей.
В процессе установки предлагается создать только одну учетную запись
пользователя чтобы от его имени администратор мог выполнять задачи, которые не
требуют привилегий администратора (root). Учетные записи для всех прочих
пользователей системы можно будет создать в любой момент после ее установки.
5.4.11. Установка пароля на LUKS-разделы
Если на этапе подготовки диска был создан LUKS-раздел, на данном этапе
необходимо ввести пароль для обращения к этому разделу (рис. 25).
72
ЛКНВ.11100-01 90 01
Рис. 25 Установка. Установка пароля на LUKS-разделы
Установленный пароль потребуется вводить для получения доступа к
информации на данных разделах.
П р и м е ч а н и е . Если кодируемые разделы, не создавались, этот шаг
пропускается автоматически.
LUKS надо устанавливать при разметке вручную, удаляя и пересоздавая
каждый раздел. LUKS будет требовать пароля при загрузке для каждого раздела.
5.4.12. Завершение установки
На экране последнего этапа установки отображается информация о завершении
установки ОС Альт 8 СП (рис. 26).
73
ЛКНВ.11100-01 90 01
Рис. 26 Установка. Завершение установки
После нажатия кнопки «Завершить» и перезагрузки компьютера выполняется
штатная загрузка установленной ОС.
Не забудьте извлечь установочный компакт-диск (если это не происходит
автоматически). Далее можно загружать установленную систему в обычном режиме.
74
ЛКНВ.11100-01 90 01
Особенности установки в UEFI-режиме
5.5.1. Начальный загрузчик EFI
После загрузки компьютера с установочного диска выводится меню, в котором
можно выбрать варианты загрузки системы. Меню загрузчика EFI горизонтальное,
графическое (рис. 27).
Рис. 27 Установка. Загрузка с установочного диска
П р и м е ч а н и я :
1. Графическое/цветовое оформление может отличаться в зависимости от
архитектуры аппаратной платформы.
2. На данном этапе установки не поддерживается «мышь», поэтому для выбора
различных вариантов и опций установки необходимо воспользоваться клавиатурой.
В нижней части экрана отображаются подсказки по использованию
клавиатуры:
- для перемещения курсора необходимо использовать клавиши со стрелками
<↑>, <↓>, <→> и <←>;
75
ЛКНВ.11100-01 90 01
- нажатие клавиши <Enter> приводит к активированию выбранного пункта
меню;
- по нажатию клавиши <F2> открывается меню доступных параметров,
каждого пункта. Например, при установке системы можно выбрать язык
интерфейса загрузчика и программы установки (рис. 28).
Рис. 28 Установка. Параметры загрузки
5.5.2. Подготовка диска
Особенности разбиения диска:
- для того чтобы система правильно работала (в частности могла загрузиться)
с UEFI, при ручном разбиении диска надо обязательно сделать точку
монтирования /boot/efi, в которую нужно смонтировать vfat раздел с
загрузочными записями. Если такого раздела нет, то его надо создать
вручную. При разбивке жесткого диска в автоматическом режиме такой
раздел создает сам установщик;
- требуется создать новый или подключить существующий FAT32-раздел с
GPT-типом ESP (efi system partition) размером 100 500 Мбайт удет
смонтирован в /boot/efi);
- может понадобиться раздел типа «bios boot partition» минимального размера,
никуда не подключенный и предназначенный для встраивания grub2-efi;
- остальные разделы и файловая система, и swap имеют GPT-тип
«basic data»; актуальный тип раздела задается отдельно.
76
ЛКНВ.11100-01 90 01
Ручной профиль разбиения диска позволяет установить ОС Альт 8 СП на
программный RAID-массив, разместить разделы в томах LVM и использовать
шифрование на разделах.
Ручной профиль разбиения диска
При подготовке диска вручную необходимо выполнить следующие шаги:
1) На этапе «Подготовка диска» выбрать пункт «Подготовить разделы
вручную» (рис. 29) и нажать на кнопку «Далее».
Рис. 29 Установка. Подготовка диска
2) Удалить все разделы с диска sda. Для этого следует выбрать диск sda и
нажать на кнопку «Удалить» (рис. 30).
77
ЛКНВ.11100-01 90 01
Рис. 30 Установка. Подготовка диска. Удаление разделов с диска sda
3) Создать раздел sda1 типа «efi system partition» размером 104 Мбайт с
файловой системой FAT32, опции монтирования оставить предложенными по
умолчанию.
Для этого следует выбрать диск sda, после чего нажать на кнопку «Создать
раздел» (рис. 31).
78
ЛКНВ.11100-01 90 01
Рис. 31 Установка. Подготовка диска. Диск sda без разделов
Далее в поле «Размер» необходимо ввести размер раздела (104 Мбайт), в списке
«Тип раздела» выбрать «efi system partition» и нажать на кнопку «ОК» (рис. 32).
79
ЛКНВ.11100-01 90 01
Рис. 32 Установка. Подготовка диска. Создание раздела sda1
В открывшемся окне выбрать пункт «Файловая система FAT32» и нажать на
кнопку «ОК» (рис. 33).
Рис. 33 Установка. Подготовка диска. Выбор файловой системы для раздела sda1
В открывшемся окне (рис. 34) не менять предложенные настройки, нажать на
кнопку «ОК».
80
ЛКНВ.11100-01 90 01
Рис. 34 Установка. Подготовка диска. Параметры монтирования для раздела sda1
4) Создать раздел sda2 типа «bios boot partition» размером 8 Мбайт без
файловой системы.
Для этого следует выбрать неиспользуемое пространство <unused2> и нажать
на кнопку «Создать раздел» (рис. 35).
Рис. 35 Установка. Подготовка диска. Диск sda с одним разделом
81
ЛКНВ.11100-01 90 01
Далее в поле «Размер» ввести размер раздела (8 Мбайт), в списке «Тип раздела»
выбрать «bios boot partition», снять отметку с пункта «Создать том» и нажать на
кнопку «ОК» (рис. 36).
Рис. 36 Установка. Подготовка диска. Создание раздела sda2
5) Создать раздел sda3 типа «basic data» размером 1024 Мбайт с файловой
системой Ext2/3/4 и точкой монтирования /boot, опции монтирования оставить
предложенными по умолчанию.
Для этого следует выбрать неиспользуемое пространство <unused2>, и нажать
на кнопку «Создать раздел». Затем в поле «Размер» ввести размер раздела
(1024 Мбайт), в списке «Тип раздела» выбрать basic data и нажать на кнопку «ОК»
(рис. 37).
82
ЛКНВ.11100-01 90 01
Рис. 37 Установка. Подготовка диска. Создание раздела sda3
Выбрать пункт «Файловая система Ext2/3/4» и нажать на кнопку «ОК» ис. 38).
Рис. 38 Установка. Подготовка диска. Выбор файловой системы для раздела sda3
Выбрать в списке «Точка монтирования» пункт /boot. Нажать на кнопку «ОК»
(рис. 39).
83
ЛКНВ.11100-01 90 01
Рис. 39 Установка. Подготовка диска. Параметры монтирования для раздела sda3
6) Создать раздел sda4 типа «basic data» с файловой системой «Файловая
система подкачки (swap)».
Для этого следует выбрать неиспользуемое пространство <unused2>, нажать на
кнопку «Создать раздел». В открывшемся окне в поле «Размер» ввести размер раздела
подкачки, в списке «Тип раздела» выбрать «basic data» и нажать на кнопку «ОК»
(рис. 40).
Рис. 40 Установка. Подготовка диска. Создание раздела sda4
В открывшемся окне выбрать пункт «Файловая система подкачки (swap)» и
нажать на кнопку «ОК» (рис. 41).
84
ЛКНВ.11100-01 90 01
Рис. 41 Установка. Подготовка диска. Выбор файловой системы для раздела sda4
7) По аналогии создать остальные разделы. При создании раздела следует
выбирать тип basic data.
Например, создать раздел sda5 с файловой системой Ext2/3/4 (рис. 42) и точкой
монтирования / (рис. 43).
Рис. 42 Установка. Подготовка диска. Создание раздела sda5
85
ЛКНВ.11100-01 90 01
Рис. 43 Установка. Подготовка диска. Параметры монтирования для раздела sda5
Создать раздел sda6, на все оставшееся свободное место на диске, с файловой
системой Ext2/3/4 (рис. 44) и точкой монтирования /home (рис. 45).
Рис. 44 Установка. Подготовка диска. Создание раздела sda6
Рис. 45 Установка. Подготовка диска. Параметры монтирования для раздела sda6
86
ЛКНВ.11100-01 90 01
8) Продолжить установку с получившейся схемой разметки, нажав кнопку
«Далее» (рис. 46).
Рис. 46 Установка. Подготовка диска. Схема разметки диска sda
Размещение разделов в LVM томах
Для подготовки к установке на LVM томах необходимо выполнить первые пять
шагов, описанных в предыдущем разделе («Ручной профиль разбиения диска»), а
затем выполнить следующие шаги:
1) Создать раздел sda4 типа «basic data» на все оставшееся свободное место на
диске без файловой системы.
Для этого следует выбрать неиспользуемое пространство <unused2>, нажать на
кнопку «Создать раздел». В списке «Тип раздела» выбрать «basic data» и нажать на
кнопку «ОК» (рис. 47).
87
ЛКНВ.11100-01 90 01
Рис. 47 Установка. Подготовка диска. Создание раздела sda4
2) Создать группу томов LVM vg0 на разделе sda4.
Для этого следует выбрать пункт «LVM» в списке и нажать на кнопку «Создать
группу томов». В списке выбрать раздел sda4, в поле «Имя группы томов», ввести имя
vg0, и нажать на кнопку «ОК» (рис. 48).
Рис. 48 Установка. Подготовка диска. Создание группы томов LVM vg0
88
ЛКНВ.11100-01 90 01
3) Создать LVM том swap типа SWAP необходимого размера.
Для этого следует выбрать <unused20>, нажать на кнопку «Создать том»
(рис. 49).
Рис. 49 Установка. Подготовка диска. Создание LVM тома
В поле «Имя тома» ввести название тома swap, в поле «Размер тома» выбрать
или указать нужный размер и нажать на кнопку «ОК» (рис. 50).
Рис. 50 Установка. Подготовка диска. Создание LVM тома swap
В открывшемся окне выбрать пункт «Файловая система подкачки (swap)» и
нажать на кнопку «ОК» (рис. 51).
89
ЛКНВ.11100-01 90 01
Рис. 51 –Подготовка диска. Выбор файловой системы для LVM тома swap
По аналогии создать LVM том root необходимого размера (рис. 52), с файловой
системой Ext2/3/4 и точкой монтирования /, опции монтирования оставить по
умолчанию (рис. 53).
Рис. 52 Установка. Подготовка диска. Создание LVM тома root
90
ЛКНВ.11100-01 90 01
Рис. 53 Подготовка диска. Параметры монтирования для LVM тома root
4) По аналогии создать LVM том home необходимого размера на все свободное
место vg0 (рис. 54), с файловой системой Ext2/3/4 и точкой монтирования /home,
опции монтирования оставить по умолчанию (рис. 55).
Рис. 54 Установка. Подготовка диска. Создание LVM тома home
91
ЛКНВ.11100-01 90 01
Рис. 55 Установка. Параметры монтирования для LVM тома home
5) Продолжить установку с получившейся схемой разметки, нажав кнопку
«Далее» (рис. 56).
Рис. 56 Установка. Схема разметки
92
ЛКНВ.11100-01 90 01
5.5.3. Установка загрузчика
Программа установки автоматически определяет, в каком разделе НЖМД
следует располагать загрузчик для возможности корректного запуска ОС Альт 8 СП.
Модуль установки загрузчика предложит вариант EFI (рис. 57), с которым стоит
согласиться.
Для ограничения доступа к опциям загрузки устанавливается пароль на
загрузчик. Чтобы исключить опечатки при вводе пароля, пароль вводится дважды.
Для подтверждения выбора и продолжения работы программы установки
необходимо нажать на кнопку «Далее».
Рис. 57 Установка. Установка загрузчика
93
ЛКНВ.11100-01 90 01
Инструкция по установке на armh (ARMv7) mcom02
Далее <name>.img.xz образ для mcom02 armh (ARMv7) с компакт-диска
дистрибутива. Где <name> наименование файла с дистрибутивом.
Для установки требуется:
- micro-SD карта (или иной накопитель, если целевое устройство его
поддерживает) рекомендуется объема не менее 32 Гбайт;
- ОС Linux;
- программа для автоматической установки архива с rootfs alt-rootfs-installer.
Даже при наличии программы в репозитории, рекомендуется обновить ее
перед применением именно из репозитория Sisyphus.
Порядок действий для установки:
- установить/обновить пакет alt-rootfs-installer в ОС;
- вставить чистую micro-SD карту;
- запустить команду от администратора:
alt-rootfs-installer --image-in=<путь к name.img.xz> --media=/dev/mmcblk0
- полученную micro-SD карту вставить в слот mcom02;
- включить питание mcom02 и ответить на вопросы установщика.
Для работы с armh (ARMv7) mcom02 используется кабель USB <-> miniUSB.
После подключения к компьютеру появляется устройство /dev/ttyUSB0, если не
подключено других устройств, предоставляющих последовательный интерфейс через
USB.
В конфигурационном файле /etc/uucp/port должен быть указан актуальный
номер порта:
port 0
type direct
device /dev/ttyUSB0
speed 115200
hardflow false
Для подключения выполните команду:
cu -p0
94
ЛКНВ.11100-01 90 01
Обновление системы до актуального состояния
После установки системы, ее лучше сразу обновить до актуального состояния.
Можно не обновлять систему и сразу приступать к работе только в том случае, если
не планируется подключение к сети или Интернету и нет необходимости
устанавливать дополнительные программы.
Для обновления системы необходимо выполнить команды правами
администратора):
# apt-get update
# apt-get dist-upgrade
# update-kernel
# apt-get clean
# reboot
П р и м е ч а н и е . Получить права администратора (см. также п. 14.2) можно,
выполнив в терминале команду:
$ su -
или зарегистрировавшись в системе (например, на второй консоли нажать
клавиши <Ctrl>+<Alt>+<F2>) под именем root.
Подробнее про обновление пакетов можно прочитать в п. 11.8, п. 11.9 и п. 11.10
«Обновление ядра».
Проблемы при установке системы
Если в системе не произошла настройка какого-либо компонента после стадии
установки пакетов, доведите установку до конца, загрузитесь в систему и
попытайтесь повторить настройку.
В случае возникновения проблем с установкой, можно вручную задать
необходимые параметры в строке «Параметры загрузки» (см. рис. 5) меню
начального загрузчика:
- xdriver – графический установщик предпринимает попытку автоматического
подбора драйвера видеокарты, но иногда это ему не удается. Данным
параметром можно явно указать нужный вариант драйвера.
Если установка системы не произошла вообще или не завершилась стадия
установки пакетов, то сначала попробуйте повторить попытку в «Безопасном
95
ЛКНВ.11100-01 90 01
режиме» (нажать клавишу <F5> и выбрать подготовленные заранее параметры ядра
«Безопасный режим» см. рис. 5). Возможно, оборудование новое или нестандартное,
но может оказаться, что оно отлично настраивается со старыми драйверами.
96
ЛКНВ.11100-01 90 01
6. НАЧАЛО ИСПОЛЬЗОВАНИЯ ОС АЛЬТ 8 СП
Запуск ОС
Запуск ОС Альт 8 СП выполняется автоматически после запуска компьютера
и отработки набора программ BIOS (БСВВ).
На экране появляется меню, в котором перечислены возможные варианты
загрузки ОС (рис. 58).
Рис. 58 Варианты загрузки
По умолчанию, если не были нажаты управляющие клавиши на клавиатуре,
загрузка ОС Альт 8 СП продолжится автоматически.
Для выбора дополнительных параметров загрузки нужно выбрать пункт
«Дополнительные параметры для ALT 8 SP …» (Advanced options for ALT 8 SP…).
П р и м е ч а н и е . Если при установке системы был установлен пароль на
загрузчик потребуется ввести имя пользователя «boot» и заданный на шаге
«Установка загрузчика» пароль (рис. 59).
97
ЛКНВ.11100-01 90 01
Рис. 59 Пример окна ввода пароля на загрузчик
Откроется окно с возможностью выбора способа дальнейшей загрузки ОС,
например, (рис. 60, рис. 61):
- «ALT 8 SP Workstation, vmlinuz»;
- «ALT 8 SP Workstation, vmlinuz (recovery mode)»;
- «ALT 8 SP Workstation, *».
* зависит от актуального дистрибутива.
98
ЛКНВ.11100-01 90 01
Рис. 60 Пример окна дополнительные параметры
Рис. 61 Пример окна дополнительные параметры. Сервер
99
ЛКНВ.11100-01 90 01
Окно с перечнем дополнительных настроек загрузки (рис. 62) вызывается
нажатием клавиши <E>.
П р и м е ч а н и е . Если при установке системы был установлен пароль на
загрузчик, то потребуется ввести имя пользователя «boot» и заданный на шаге
«Установка загрузчика» пароль (см. рис. 59).
П р и м е ч а н и е . Дополнительные опции загрузчика могут быть добавлены:
- в файле /etc/sysconfig/grub2 в строке GRUB_CMDLINE_LINUX_DEFAULT=…,
после следует обновить настройки загрузчика – выполнить команду:
# update-grub
- для armh (ARMv7) в файле /boot/extlinux/extlinux.conf строка
append root=LABEL=ROOT...
также следует перезагрузить ОС.
В процессе загрузки ОС Альт 8 СП пользователь может следить за
информацией процесса загрузки, которая отображает этапы запуска различных служб
и программных серверов в виде отдельных строк (рис. 63) на экране монитора.
Рис. 62 Пример окна с перечнем дополнительных настроек загрузчика GRUB
100
ЛКНВ.11100-01 90 01
Рис. 63 Загрузка ОС
При этом каждая строка начинается словом вида [XXXXXXX] (OK или FAILED),
являющегося признаком нормального или ненормального завершения этапа загрузки.
Слово XXXXXXX=FAILED (авария) свидетельствует о неуспешном завершении этапа
загрузки, что требует вмешательства и специальных действий администратора
системы.
Получение доступа к зашифрованным разделам
В случае если был создан шифрованный раздел (см. п. 5.4.4.4.3), потребуется
вводить пароль при обращении к этому разделу (рис. 64).
Рис. 64 Пример запрос пароля для доступа к шифрованным разделам
Если не ввести пароль за отведенный промежуток времени, то загрузка системы
завершится ошибкой. В этом случае следует перезагрузить систему, нажав для этого
два раза <Enter>, а затем клавиши <Ctrl>+<Alt>+<Delete>.
101
ЛКНВ.11100-01 90 01
Вход в систему
6.3.1. Идентификация и аутентификация в графической оболочке MATE
В состав ОС может входить графическая оболочка MATE. Оболочка состоит из
набора различных программ и технологий, используемых для управления ОС и
предоставляющих пользователю графический интерфейс для работы в виде оконных
менеджеров.
При загрузке в графическом режиме работа загрузчика ОС заканчивается
переходом к окну входа в систему.
Для продолжения работы и входа в ОС Альт 8 СП в графическом режиме
необходимо выбрать одну из учетных записей, предлагаемых в окне аутентификации.
Далее ввести пароль текущей учетной записи и нажать на кнопку «Войти» (рис. 65).
Рис. 65 Ввод аутентификационных данных в графической оболочке
Для выбора учетной записи, не показанной в списке выбора, нужно раскрыть
выпадающий список со значением логина текущей учетной записи и выбрать пункт
«Другие…» (рис. 66).
Рис. 66 Выбор пользователя
102
ЛКНВ.11100-01 90 01
После этого откроется окно ввода логина учетной записи (рис. 66), в котором
нужно ввести логин и пароль учетной записи, и нажать на кнопку «Войти».
В следующем окне необходимо ввести пароль учетной записи, и нажать на кнопку
«Войти» (рис. 67).
Рис. 67 Ввод имени учетной записи
В результате успешного прохождения процедуры аутентификации и входа в
систему запустится графическая оболочка ОС Альт 8 СП (рис. 68).
П р и м е ч а н и е . Работа в системе с использованием учетной записи
администратора небезопасна, вследствие этого вход в систему в графическом режиме
для администратора (root) запрещен. Попытка зарегистрироваться в системе будет
прервана сообщением об ошибке.
Рис. 68 Пример графического интерфейса ОС
103
ЛКНВ.11100-01 90 01
В случае если графическая оболочка MATE была включена в состав ОС при
установке, однако не стартовала автоматически, ее допускается вызвать вручную из
консоли с помощью следующих команд:
~/.xinitrc
exec mate-session
Далее необходимо использовать команду startx для запуска MATE.
Подробнее о приложениях для ОС Альт 8 СП Рабочая станция и рабочем столе
MATE приведено в документе «Руководство пользователя.
ЛКНВ.11100-01 91 01».
6.3.2. Идентификация и аутентификация в консольном режиме
При загрузке в консольном режиме работа загрузчика завершается запросом на
ввод логина и пароля учетной записи. В случае необходимости перехода на другую
консоль нажмите клавиши <Ctrl>+<Alt>+<F2>.
Для продолжения работы в консольном режиме необходимо ввести логин
учетной записи пользователя и подтвердить его нажатием клавиши <Enter>. Затем
ввести пароль и подтвердить его аналогичным образом.
В случае успешного прохождения процедуры аутентификации и входа в
систему ОС перейдет к штатному режиму работы и предоставит дальнейший доступ
к консоли (рис. 69).
Рис. 69 Аутентификация пользователя
6.3.3. Виртуальная консоль
В процессе работы ОС Альт 8 СП активно несколько виртуальных консолей.
Каждая виртуальная консоль доступна по одновременному нажатию клавиш <Ctrl>,
<Alt> и функциональной клавиши с номером этой консоли от <F1> до <F6>.
104
ЛКНВ.11100-01 90 01
На первых шести виртуальных консолях (от <Ctrl>+<Alt>+<F1> до
<Ctrl>+<Alt>+<F6>) пользователь может зарегистрироваться и работать в текстовом
режиме. Если была установлена графическая оболочка MATE, она будет загружаться
в первой виртуальной консоли. Двенадцатая виртуальная консоль
(<Ctrl>+<Alt>+<F12>) выполняет функцию системной консоли на нее выводятся
сообщения о происходящих в системе событиях.
Блокирование сеанса доступа
6.4.1. Блокирование сеанса доступа после установленного времени бездействия
(неактивности) пользователя или по его запросу
После авторизации и загрузки графической рабочей среды MATE,
пользователю предоставляется рабочий стол для работы с графическими
приложениями.
Для безопасности данных компьютера и, чтобы другие пользователи не могли
получить доступ к работающим приложениям, блокируйте свой экран, даже если
оставляете компьютер на короткое время.
Заблокировать сеанс доступа можно по запросу пользователя: панель
инструментов MATE «Система» «Заблокировать экран», или вызвать
клавишами <Ctrl>+<Alt>+<L>.
Также при работе в графическом режиме блокирование сеанса доступа после
установленного времени бездействия происходит посредством срабатывания
программы – хранителя экрана (screensaver).
Время бездействия системы устанавливается: панель инструментов MATE
«Система» → «Параметры» → «Внешний вид» → «Хранитель экрана».
Для разблокировки требуется ввести пароль пользователя и нажать на кнопку
«Разблокировать».
При заблокированном экране другие пользователи могут входить в систему под
своими учетными записями, нажав на экране ввода пароля кнопку «Переключить
пользователя».
105
ЛКНВ.11100-01 90 01
6.4.2. Блокировка виртуальных текстовых консолей
Программа vlock позволяет заблокировать сеанс при работе в консоли.
Для использования программы vlock, требуется ее предварительно установить:
# apt-get install vlock
Выполнение команды vlock без дополнительных параметров заблокирует
текущий сеанс виртуальной консоли, без прерывания доступа других пользователей:
$ vlock
Блокировка tty2 установлена user.
Используйте Alt-функциональные клавиши для перехода в другие
виртуальные консоли.
Пароль:
Чтобы предотвратить доступ ко всем виртуальным консолям машины, следует
выполнить команду:
$ vlock -a
Теперь вывод на консоль полностью заблокирован user.
Пароль:
Примечание. Для разблокировки консоли введите пароль пользователя.
В этом случае vlock блокирует текущую активную консоль, а параметр -a
предотвращает переключение в другие виртуальные консоли.
6.4.3. Настройка блокировки возможности пользователя изменять настройки
блокировки системы
Для блокировки возможности пользователя изменять настройки блокировки
системы необходимо выполнить следующие действия:
1) создать файл /etc/dconf/profile/user со следующим содержимым:
user-db:user
system-db:local
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
106
ЛКНВ.11100-01 90 01
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», так как для корректного завершения работы требуется
размонтирование файловой системы.
Перед окончанием работы с ОС необходимо завершить все работающие
программы.
6.5.1. Графический режим
Для завершения сеанса пользователя в графическом режиме выбрать на панели
инструментов меню MATE → «Система» → «Завершить сеанс пользователя».
Далее откроется окно, в котором предоставляется выбор дальнейших действий:
- переключить пользователя – сеанс пользователя в графическом режиме
блокируется, другой пользователь может войти в систему под своим именем;
107
ЛКНВ.11100-01 90 01
- завершить сеанс – выполняется завершение сеанса пользователя в
графическом режиме.
Если не производить никаких действий, то сеанс пользователя будет
автоматически завершен через 1 минуту.
Также можно воспользоваться комбинацией клавиш <Ctrl>+<Alt>+<Del>, что
на рабочей станции приведет к вызову диалога завершения работы системы.
6.5.2. Консольный режим
Завершить сеанс пользователя в консольном режиме можно, выполнив команду
exit.
6.5.3. Настройки завершения сеанса пользователя
Для каждого пользователя можно настроить автоматическое завершение
сеанса, после установленного времени бездействия (неактивности) пользователя.
Для этого необходимо создать файл /etc/logout, в который поместить
допустимое время простоя для каждого пользователя, например:
user1 300
user2 200
Формат файла /etc/logout:
<user> <время в секундах от момента последнего действия>
Выключение/перезагрузка компьютера
6.6.1. Графический режим
Для выключения/перезагрузки компьютера следует выбрать на панели
инструментов MATE → «Система» → «Выключить…».
Далее откроется окно, в котором предоставляется выбор дальнейших действий:
- ждущий режим – компьютер переводится в режим экономии энергии;
- спящий режим – компьютер переводится в режим энергосбережения,
позволяющий отключить питание компьютера, сохранив при этом текущее
состояние ОС;
- перезагрузить – выполняется перезапуск ОС;
- выключить – выполняется выключение компьютера.
108
ЛКНВ.11100-01 90 01
Если не производить никаких действий, то компьютер будет автоматически
выключен через 1 минуту.
Также можно воспользоваться комбинацией клавиш <Ctrl>+<Alt>+<Del>, что
на сервере к перезагрузке системы, при этом необходимо дождаться появления на
экране сообщения «Reboot» (перезагрузка) и выключить питание системы.
6.6.2. Консольный режим
Перезагрузить систему в консольном режиме можно, выполнив команду:
$ systemctl reboot
Завершить работу и выключить компьютер (с отключением питания):
$ systemctl poweroff
Перевести систему в ждущий режим:
$ systemctl suspend
Глобальное выключение файловых POSIX capabilities
После установки системы необходимо выключить настройку posix capabilities в
файлах.
Для изменения опции загрузчика в файле /etc/sysconfig/grub2 в
переменную GRUB_CMDLINE_LINUX_DEFAULT добавить опцию no_file_caps=1 и
выполнить команду update-grub.
Для архитектуры armh (ARMv7) в файле /boot/extlinux/extlinux.conf в
строке append root=LABEL=ROOT... добавить no_file_caps=1.
Перезагрузить ОС.
После этого для работы bacula-mls надо будет устанавливать не capabilities, а
делать соответствующие файлы suid-root (см. описание пакета bacula-mls-
backup).
Утилита уничтожения информации при удалении dm-secdel
Операции удаления обычно ограничиваются пометкой блоков данных как
«неиспользуемых» в файловой системе. Утилита dm-secdel, так же помечает блоки
как не используемые, но заменяет очищение, записью случайных данных в
освобождаемые блоки. Таким образом, данные удаляются надежно.
109
ЛКНВ.11100-01 90 01
В силу своего абстрактного характера 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.
Пример
Пусть /home находится на устройстве /dev/sda5, закомментировать строку с
разделом /home в файле /etc/fstab и выполнить перезагрузку системы.
Проверить наличие журналирования на устройстве, выполнить команду:
110
ЛКНВ.11100-01 90 01
dumpe2fs /dev/sda5 | grep has_journal
Если параметры журналирования найдены, отключить их с помощью команды:
tune2fs -O ^has_journal /dev/sda5
Создадим для /dev/sda5 сопоставленное устройство (карта) (по умолчанию
задается один проход со случайными битами):
# secdelsetup /dev/sda5
Пример ожидаемого вывода команды:
/dev/mapper/secdel0 is attached to /dev/sda5
где /dev/mapper/secdel0 имя созданного сопоставленного устройства.
В файл /etc/fstab добавить новую строку, указывающую на точку
монтирования /home:
/dev/mapper/secdel0 /home ext4 noexec,nosuid,relatime,discard 1 2
Затем /dev/mapper/secdel0 должно быть смонтировано с параметром
-o discard, выполнить команду:
# mount /dev/mapper/secdel0 /mnt/test/ -o discard
Команда просмотра текущих (существующих) карт:
# secdelsetup all
/dev/mapper/secdel0 /dev/sda5
Для хранения конфигурации карт используется файл /etc/secdeltab, который
будет автоматически активирован после перезагрузки (системной службой
secdeltab.service). Для сохранение текущих карт в файл выполнить команду:
# secdelsetup --save
Для изменения перезаписи, например, с тремя проходами (первый проход 1,
второй проход случайные биты – R, третий проход – 0) выполнить команду:
# secdelsetup /dev/sda5 /dev/mapper/secdel0 1R0
Команда отсоединения всех активных карт:
# secdelsetup --detach-all
Пример ожидаемого вывода команды:
detach /dev/mapper/secdel0
111
ЛКНВ.11100-01 90 01
7. НАСТРОЙКИ СИСТЕМЫ
Центр управления системой
Для управления настройками установленной системы можно использовать
ЦУС (также см. применение ЦУС в документе «Руководство по комплексу средств
защиты. ЛКНВ.11100-01 99 01»).
ЦУС состоит из нескольких независимых диалогов-модулей. Каждый модуль
отвечает за настройку определенной функции или свойства системы. Модули
настройки сгруппированы по задачам.
Список установленных модулей можно просмотреть, выполнив команду от
администратора:
# 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, доступно
только в веб-интерфейсе).
П р и м е ч а н и е . Соответствующие наименования пакетов ЦУС
alterator-<имя_модуля>, например, alterator-net-eth.
112
ЛКНВ.11100-01 90 01
Чтобы исключить возможность несанкционированного доступа к ЦУС по
окончанию работы, необходимо завершить сеанс, нажав кнопку «Выйти».
7.1.1. Графический интерфейс
Графический интерфейс ЦУС можно запустить следующими способами:
- комбинацией клавиш <ALT>+<F2> открыть окно быстрого запуска
приложений и ввести в поле название программы – acc;
- выбрать на панели инструментов меню MATE «Система»
«Администрирование» → «Центр управления системой» (рис. 70);
- при помощи консоли (приложение «Терминал среды MATE»), в которой
необходимо ввести команду acc;
- зная имя модуля, запустить графический интерфейс для него, можно также
выполнив команду:
$ alterator-standalone <имя-модуля>
Запуск ЦУС требует прав администратора – введите пароль root (рис. 71).
Рис. 70 Запуск «Центра управления системой»
Рис. 71 Запрос пароля для запуска «Центра управления системой»
113
ЛКНВ.11100-01 90 01
После успешного входа откроется окно ЦУС (рис. 72).
Кнопка «Режим эксперта» (рис. 72) позволяет выбрать один из режимов:
- основной режим (кнопка отжата);
- режим эксперта (кнопка нажата).
Выбор режима влияет на количество отображаемых модулей. В режиме
эксперта отображаются все модули, а в основном режиме только наиболее
используемые.
Рис. 72 Окно «Центр управления системой»
7.1.2. Веб-интерфейс ЦУС
ЦУС имеет веб-ориентированный интерфейс, позволяющий управлять
системой с любого компьютера сети.
Для запуска веб-ориентированного интерфейса, должен быть установлен пакет
alterator-fbi:
# apt-get install alterator-fbi
Должен быть запущен сервис ahttpd и alteratord:
systemctl enable ahttpd
114
ЛКНВ.11100-01 90 01
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) (рис. 73). Дополнительно на этапе
регистрации можно выбрать язык интерфейса. По умолчанию предлагается язык,
определенный настройками браузера.
Рис. 73 Запрос пароля администратора для запуска веб-интерфейса ЦУС
После успешного входа откроется окно «Центра управления системой»
(рис. 74).
115
ЛКНВ.11100-01 90 01
Рис. 74 Окно веб-интерфейса «Центр управления системой»
Веб-интерфейс ЦУС можно настроить (кнопка «Настройка»), выбрав один из
режимов:
- основной режим;
- режим эксперта.
Выбор режима влияет на количество отображаемых модулей. В режиме
эксперта отображаются все модули, а в основном режиме только наиболее
используемые.
ЦУС содержит справочную информацию по модулю, которую можно
прочитать, нажав, на кнопку «Справка» (см. п. 7.1.5).
ПРЕДУПРЕЖДЕНИЕ
После работы с ЦУС, в целях безопасности, не оставляйте открытым браузер.
Обязательно закройте веб-интерфейс нажать на кнопку «Выйти».
116
ЛКНВ.11100-01 90 01
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. Права доступа к модулям ЦУС
Администратор имеет доступ ко всем модулям, установленным в системе, и
может назначать права доступа для пользователей к определенным модулям.
Для разрешения доступа пользователю к конкретному модулю,
администратору в веб-интерфейсе ЦУС необходимо выбрать нужный модуль и
нажать ссылку «Параметры доступа к модулю», расположенную в нижней части окна
модуля (рис. 75).
Рис. 75 Ссылка «Параметры доступа к модулю»
В открывшемся окне, в списке «Новый пользователь» необходимо выбрать
пользователя, который получит доступ к данному модулю, и нажать на кнопку
«Добавить». Для сохранения настроек необходимо перезапустить HTTP-сервер, для
этого достаточно нажать на кнопку «Перезапустить HTTP-сервер» (рис. 76).
117
ЛКНВ.11100-01 90 01
Рис. 76 Параметры доступа к модулю
Для удаления доступа пользователя к определенному модулю, администратору,
в окне этого модуля необходимо нажать ссылку «Параметры доступа к модулю», в
открывшемся окне в списке пользователей, которым разрешен доступ, выбрать
пользователя, нажать на кнопку «Удалить» (рис. 76) и нажать на кнопку
«Перезапустить HTTP-сервер».
Системный пользователь, пройдя процедуру аутентификации (рис. 77), может
просматривать и вызывать модули, к которым он имеет доступ (рис. 78).
Рис. 77 Запрос пароля учетной записи пользователя для запуска веб-интерфейса
ЦУС
118
ЛКНВ.11100-01 90 01
Рис. 78 Веб-интерфейс ЦУС, запущенный от системного пользователя
7.1.5. Получение справочной информации
Все модули ЦУС содержат встроенную справку, поясняющую назначение
конкретного модуля. Справка вызывается кнопкой «Справка» (рис. 79).
Рис. 79 Получение справочной информации о модуле ЦУС
119
ЛКНВ.11100-01 90 01
Выбор программ, запускаемых автоматически при входе в систему
Для более удобной работы с системой можно выбрать определенные
программы, которые будут запущены автоматически при входе пользователя в
систему. Автозапускаемые программы автоматически сохраняют свое состояние и
безопасно завершаются сеансовым менеджером при выходе из системы и
перезапускаются при входе.
Инструмент настройки сессии позволяет настроить, какие программы будут
автоматически запущены при входе в систему. Для запуска инструмента настройки
сессии, выбрать на панели инструментов меню MATE «Система» «Параметры»
→ «Личные» → «Запускаемые приложения».
7.2.1. Вкладка автоматического запуска программ
Список автоматически запускаемых программ представлен на
вкладке «Автоматически запускаемые программы» (рис. 80). Этот список содержит
краткое описание каждой программы и отметку, указывающую запускать программу
или нет.
Рис. 80 Автоматически запускаемые программы
120
ЛКНВ.11100-01 90 01
На этой вкладке можно добавлять, удалять и изменять автозапускаемые
приложения.
Для добавления новой автоматически запускаемой программы, следует
выполнить следующие шаги:
- нажать на кнопку «Добавить». Откроется окно «Новая автоматически
запускаемая программа»;
- указать имя программы и команду, которая запустит приложение (рис. 81);
- нажать на кнопку «Добавить».
Рис. 81 Добавление автоматически запускаемой программы
7.2.2. Вкладка настроек сессии
Менеджер сеанса может запомнить какие приложения были запущены при
выходе из системы и автоматически запустить их при входе в систему. Для того чтобы
это происходило каждый раз при выходе из системы, следует на
вкладке «Опции» отметить пункт «Автоматически запоминать запущенные
приложения при выходе из сеанса» (рис. 82).
Рис. 82 Запоминать запущенные приложения при выходе из сеанса
121
ЛКНВ.11100-01 90 01
Задание хешей паролей
В ОС Альт 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
122
ЛКНВ.11100-01 90 01
Настройка разграничения доступа к подключаемым устройствам
7.4.1. Общие сведения
В ОС Альт 8 СП осуществляется разграничение доступа к символьным и
блочным устройствам, для которых в каталоге /dev создаются файлы устройств.
Разграничение выполняется с использованием генерации правил менеджера
устройств udev.
П р и м е ч а н и е . При разграничении доступа к устройствам типа видеокарт,
либо сетевых карт, названный метод не используется.
Для решения задачи разграничения доступа к устройствам на основе генерации
правил менеджера устройств udev в ОС реализованы:
- средства разграничения доступа к устройствам на основе правил udev;
- средства регистрации устройств.
Средства разграничения доступа к устройствам на основе генерации правил
udev обеспечивают дискреционное разграничение доступа пользователей к
подключаемым, в первую очередь, через интерфейс USB, устройствам (сканерам,
съемным накопителям, видеокамерам).
Средства регистрации устройств обеспечивают учет подключаемых устройств
и съемных носителей в системе, установку дискреционных атрибутов доступа
пользователей к устройствам и создание дополнительных правил доступа к
устройству (например, ограничение на подключение устройства только к
определенному USB-порту).
7.4.2. Ограничения при помощи правил udev
Udev сервис, который подхватывает и конфигурирует внешние устройства,
получая уведомления от ядра ОС. Udev гибко настраивается под оборудование и
задачи с помощью специальных правил.
Разграничение доступа к устройству осуществляется на основе
соответствующего правила для менеджера устройств udev, которое хранится в файле
в каталоге /etc/udev/rules.d. Файл правил обязательно должен иметь расширение
.rules.
123
ЛКНВ.11100-01 90 01
Далее приведен пример правила для съемного 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 выполнить скрипт при подключении устройства;
124
ЛКНВ.11100-01 90 01
- 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-устройства.
125
ЛКНВ.11100-01 90 01
Использование скрипта позволяет выполнять более гибкую настройку правил:
можно не только монтировать устройства, но и выполнять другие действия
(копировать, менять владельца и так далее). Также допускается задавать тип доступа
к информации на носителе, например, «только для чтения».
Далее приводятся примеры оформления других возможных правил для 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
126
ЛКНВ.11100-01 90 01
Открыть в браузере веб-интерфейс ЦУС (п. 7.1.2) и ввести пароль
администратора. Далее в меню «Система» необходимо выбрать пункт «Контроль
доступа к портам» (рис. 83).
Для того чтобы отключить поддержку всех USB-устройств кроме заданных,
необходимо нажать на кнопку «Включить контроль USB-портов».
Рис. 83 Контроль доступа к портам
Для того чтобы добавить USB-устройство в список разрешенных можно ввести
HID устройства в поле ID продукта и нажать на кнопку «Добавить правило».
127
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Перед активацией ограничений предварительно разрешите
использование USB-портов для клавиатуры и мыши.
Для определения подключенных USB-устройств нужно нажать на кнопку
«Сканировать USB-устройства». Для помещения в список разрешенных устройств
можно выделить устройство, которое необходимо разрешить в таблице
«Подключенные USB-устройства», и нажать на кнопку «Разрешить выбранное
устройство» (рис. 84).
Для исключения устройства из списка разрешенных, необходимо выделить
правило, разрешающее данное устройство и нажать на кнопку «Удалить выбранное
правило».
Рис. 84 Добавление USB-устройства в список разрешенных устройств
128
ЛКНВ.11100-01 90 01
Настройка фильтрации пакетов с помощью утилиты iptables
Утилита iptables стандартный интерфейс командной строки для управления
фильтрацией сетевых пакетов и сбора статистики сетевого взаимодействия.
Утилита iptables позволяет фильтровать сетевые пакеты по следующим
параметрам:
- на основе сетевых адресов отправителя и получателя (IP-адреса,
MAC-адреса);
- по протоколам tcp, udp, icmp;
- с учетом входного и выходного сетевого интерфейса;
- на основе используемого порта;
- с учетом даты и времени.
Фильтры состоят из правил. Каждое правило это строка, содержащая в себе
критерии, определяющие, подпадает ли пакет под заданное правило, и действие,
которое необходимо выполнить в случае удовлетворения критерия.
7.5.1. Устройство фильтра iptables
Для iptables в общем виде правила выглядят так:
iptables [-t table] command [match] [target/jump]
Если в правило не включается спецификатор [-t table], то по умолчанию
предполагается использование таблицы filter, если же предполагается использование
другой таблицы, то это требуется указать явно. Спецификатор таблицы так же можно
указывать в любом месте строки правила, однако более или менее стандартом
считается указание таблицы в начале правила.
Непосредственно за именем таблицы должна стоять команда управления
фильтром. Если спецификатора таблицы нет, то команда всегда должна стоять
первой. Команда определяет действие iptables (вставить правило, добавить правило в
конец цепочки, или удалить правило). Тело команды в общем виде выглядит так:
[команда] [цепочка]
Ключ команда указывает на то, что нужно сделать с правилом, например,
команда -А указывает на то, что правило нужно добавить в конец указанной цепочки.
129
ЛКНВ.11100-01 90 01
Цепочка указывает, в какую цепочку нужно добавить правило. Стандартные
цепочки INPUT, OUTPUT, FORWARD, PREROUTING и POSTROUTING. Они
находятся в таблицах фильтра. Не все таблицы содержат все стандартные цепочки.
Подробнее таблицы и цепочки описаны ниже.
Раздел [match] задает критерии проверки, по которым определяется, подпадает
ли пакет под действие этого правила или нет. Здесь можно указать самые разные
критерии – IP-адрес источника пакета или сети, сетевой интерфейс.
Раздел [target] указывает, какое действие должно быть выполнено при
условии выполнения критериев в правиле. Здесь можно передать пакет в другую
цепочку правил, «сбросить» пакет и забыть про него, выдать на источник сообщение
об ошибке и т. д.
Когда пакет приходит на сетевое устройство, он обрабатывается
соответствующим драйвером и далее передается в фильтр в ядре ОС. Далее пакет
проходит ряд таблиц и затем передается либо локальному приложению, либо
переправляется на другую машину (рис. 85).
Рис. 85 Схема движения пакетов в iptables
130
ЛКНВ.11100-01 90 01
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.
Таблица filter
Таблица filter используется, главным образом, для фильтрации пакетов.
131
ЛКНВ.11100-01 90 01
Таблица имеет три цепочки – 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).
132
ЛКНВ.11100-01 90 01
Продолжение таблицы 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
133
ЛКНВ.11100-01 90 01
Окончание таблицы 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 приводится список дополнительных ключей и описывается
результат их действия.
134
ЛКНВ.11100-01 90 01
Т а б л и ц а 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 приведены доступные над пакетами действия.
135
ЛКНВ.11100-01 90 01
Т а б л и ц а 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), когда компьютеры в
локальной сети даже не подозревают о существовании прокси.
136
ЛКНВ.11100-01 90 01
Окончание таблицы 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-адрес, так и диапазон адресов. Символ «!» используется для
логической инверсии критерия.
137
ЛКНВ.11100-01 90 01
Продолжение таблицы 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.
138
ЛКНВ.11100-01 90 01
Окончание таблицы 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.
139
ЛКНВ.11100-01 90 01
Т а б л и ц а 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
140
ЛКНВ.11100-01 90 01
Продолжение таблицы 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).
141
ЛКНВ.11100-01 90 01
Окончание таблицы 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
142
ЛКНВ.11100-01 90 01
Список доступных модулей можно просмотреть, выполнив команду:
# 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
143
ЛКНВ.11100-01 90 01
Также можно указать целую подсеть:
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
144
ЛКНВ.11100-01 90 01
Для указания порта необходимо указать протокол (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
145
ЛКНВ.11100-01 90 01
Разрешить 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»
146
ЛКНВ.11100-01 90 01
Попытка соединения с локальным узлом, пользователя с 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 "
147
ЛКНВ.11100-01 90 01
Настройка экспорта аудита на удаленный узел
Для настройки экспорта аудита на удаленный узел необходимо настроить
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;
148
ЛКНВ.11100-01 90 01
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
149
ЛКНВ.11100-01 90 01
Настройка системы сигнализации на основе nagios
Главной задачей системы мониторинга является оповещение администратора
безопасности, о том, что поведение наблюдаемых объектов изменилось. Также
оповещения должны отсылаться, когда состояние объекта возвращается в норму.
Nagios позволяет использовать в качестве инструмента оповещения программы,
разработанные пользователями.
Система сигнализации состоит из сервера мониторинга (управляющей
машины) и удаленных узлов с датчиками мониторинга (управляемые машины).
На управляющей машине должны работать:
- nagios осуществляет наблюдение, оповещение администратора, контроль
состояния узлов, сервисов. (см. п. 7.7.1 и п. 7.7.3);
- apache2 позволяет использовать веб-браузер для управления интерфейсом
nagios, nagiosdigger;
- nagstamon (п. 7.7.5) это монитор состояний и управлений отслеживаемых
узлов, сервисов;
- nagiosdigger это веб-интерфейс ведения журналов производимых nagios.
На управляемых машинах должны работать:
- nagwad осуществляет мониторинг journald и генерирует предупреждение на
основе сообщений журнала (см. п. 7.7.2);
- nagios-nrpe это агент мониторинга nagios, позволяющий запускать плагины
на наблюдаемых хостах (см. п. 7.7.2).
7.7.1. Настройка сервера мониторинга
Установка пакета nagios
В качестве сервера мониторинга правляющей машины) используется
ОС Альт 8 СП Рабочая станция с выбранной на этапе установки группой пакетов
«Рабочее место контролера событий безопасности».
П р и м е ч а н и е . На этапе установке выбирается или группа пакетов «Рабочее
место контролера событий безопасности» для управляющей машины или «Датчики
системы сигнализации» для управляемых машин.
150
ЛКНВ.11100-01 90 01
Или установить пакеты nagios-full, nagios-www-apache2, nagios-addons-nrpe,
nagwad-templates, nagwad-actions, apache2-mod_ssl, nagiosdigger, perl-DBD-mysql
(если они еще не установлены).
7.7.2. Настройка удаленных узлов (клиенты)
Расширение NRPE предназначено для выполнения плагинов Nagios на
удаленных машинах. Основная задача позволить Nagios контролировать
«локальные» ресурсы (например, загрузку процессора, использование памяти) на
удаленных машинах. Поскольку эти ресурсы обычно не подвергаются воздействию
внешних машин, то на удаленных машинах должен быть установлен агент, такой как
NRPE (рис. 86).
Рис. 86 Взаимодействие сервера мониторинга с удаленным узлом
На удаленном хосте, за которым необходимо наблюдать, установить пакеты
nagwad и nagios-nrpe, и добавить их в автозагрузку:
# apt-get install nagwad
# apt-get install nagios-nrpe
П р и м е ч а н и е . Пакеты будут установлены по умолчанию, если на
управляемой машине установлена ОС Альт 8 СП с группой пакетов «Датчики
системы сигнализации».
1) Привести к указанному виду содержимое конфигурационного файла
/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 key=blacklistau
-a always,exit -S execve -F exit=-EPERM -F perm=x -F success=0 -F uid=0 -F
key=blacklistau
151
ЛКНВ.11100-01 90 01
-a always,exit -S execve -F exit=-EACCES -F perm=x -F success=0 -F
uid=<указать_UID_нужного_пользователя> -F key=blacklistau
-a always,exit -S execve -F exit=-EPERM -F perm=x -F success=0 -F
uid=<указать_UID_нужного_пользователя> -F key=blacklistau
П р и м е ч а н и я :
1. При добавлении дополнительных правил в файл учитывайте архитектуру
системы (arch), см. примеры правил аудита в документе «Руководство по
комплексу средств защиты. ЛКНВ.11100-01 99 01».
2. Для каждого пользователя (UID) необходимо создавать отдельные правила
или можно указать, например, uid>=500 для отслеживания действий всех
пользователей системы с UID удовлетворяющим значению.
2) В директорию /etc/nagwad/ добавить конфигурационный файл
audit.regexp со следующим содержимым:
open-eacces
open-eperm
exec-eacces
exec-eperm
3) В директорию /etc/nagwad/ добавить конфигурационный файл
blacklist.regexp со следующим содержимым:
blacklistau
4) В конфигурационном файле /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>
Подробнее о написании политик доступа к печати
см. https://www.cups.org/doc/policies.html.
5) Содержимое файла /etc/nagios/nrpe-commands/nagwad.cfg привести к
следующему виду:
command[check_audit]=/usr/lib/nagios/plugins/check_nagwad 'audit'
152
ЛКНВ.11100-01 90 01
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_nagwad
'blacklist'
Файл конфигурации NRPE содержит несколько определений команд, которые
можно использовать для мониторинга этой машины. Можно редактировать
определения команд, добавлять новые команды и т. д. редактируя конфигурационный
файл NRPE с помощью текстового редактора.
command[check_audit]=/usr/lib/nagios/plugins/check_nagwad
для сигнализации о попытках НСД к защищаемой в ОС информации о попытках
несанкционированного запуска программ пользователями ОС.
command[check_authdata]=/usr/lib/nagios/plugins/check_nagwad для
сигнализации о попытках несанкционированного изменения полномочий
пользователей в ОС, а также изменения, добавления и удаления учетных данных
пользователей.
command[check_devices]=/usr/lib/nagios/plugins/check_nagwad для
сигнализации о попытках подключения к СВТ незарегистрированных устройств
ввода-вывода информации или о попытках ввода/вывода информации с/на
неучтенные устройства ввода-вывода, в том числе съемные носители информации.
command[check_osec]=/usr/lib/nagios/plugins/check_osec для
сигнализации о нарушении целостности КСЗ и (или) объектов контроля целостности
необходимо, предварительно настроить подсистему контроля целостности osec.
command[check_blacklist]=/usr/lib/nagios/plugins/check_nagwad для
сигнализации о попытках несанкционированного запуска программ пользователями
ОС.
Cлужбы, которые используют команды из
/etc/nagios/nrpe-commands/nagwad.cfg, прописаны в
/etc/nagios/templates/50-nagwad.cfg (пакет nagwad-templates).
153
ЛКНВ.11100-01 90 01
6) IP-адрес сервера мониторинга Nagios необходимо добавить в файл
конфигурации /etc/nagios/nrpe.cfg измените следующие строки:
server_address=0.0.0.0
allowed_hosts=192.168.7.100 #сервер мониторинга с Nagios
7) В файле /etc/nagios/send_nsca.cfg установить:
host_address=192.168.7.100 #сервер мониторинга с Nagios
8) В файл /etc/pam.d/system-auth заменить строку:
auth include system-auth-common
на строку:
для блокировки пользователя без возможности разблокирования учетной
записи через время (разблокировать может только root):
auth required pam_faillock.so authfail deny=4 audit
или для установки времени разблокировки учетной записи, например, через 100
с для armh (ARMv7):
auth required pam_tally2.so deny=4 unlock_time=100 audit
для других архитектур:
auth required pam_faillock.so authfail deny=4 unlock_time=100 audit
9) Добавить службы в автозапуск, используя следующие команды:
systemctl enable osec.timer
systemctl enable nagwad
systemctl enable xinetd
systemctl enable nrpe
10) Перезагрузить ОС.
Лог событий хранится в /var/log/nagwad/.
7.7.3. Добавление удаленных узлов для мониторинга (сервер)
Для добавления удаленных узлов, на сервере мониторинга (управляющая
машина, на которой работает nagios) необходимо:
- установить пакет для БД, далее в настройках используется пакет
mariadb-server дистрибутива ОС Альт 8 СП Сервер);
- создать определения узла и служб nagios для мониторинга удаленного хоста;
- создать определение nagios для использования плагина check_nrpe.
154
ЛКНВ.11100-01 90 01
Прежде чем контролировать службу, сначала нужно определить хост, который
связан с этой услугой. Можно поместить определения хостов в любом
конфигурационном файле объекта, указанном в директиве 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
}
155
ЛКНВ.11100-01 90 01
где:
- 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).
5) Включить копирование записей о событиях в БД, записав в
конфигурационный /etc/nagios/nagios.cfg строку:
global_service_event_handler=nagiosdigger-service-handler
156
ЛКНВ.11100-01 90 01
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
12) Перезагрузить ОС.
13) Для удаления сигнализации события, необходимо на управляемой машине
перенести содержимое /var/log/nagwad/<имя_события> в
157
ЛКНВ.11100-01 90 01
/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
Проверить конфигурационные файлы Nagios можно командой:
# /usr/sbin/nagios -v /etc/nagios/nagios.cfg
В случае наличия ошибок, их нужно исправить, если все в порядке, нужно
перезапустить Nagios:
# systemctl restart nagios
В течение нескольких минут Nagios должен получить текущую информацию о
состоянии удаленной машины.
После запуска служб можно проверить работу Nagios Core веб-сервером.
Для этого в адресной строке веб-браузера, необходимо ввести адрес:
localhost/nagios
Если все настроено верно, после ввода аутентификационных данных
(по умолчанию nagios/nagios), будет загружена начальная страница Nagios (рис. 87).
На странице Host Detail будут показаны узлы, за которыми ведется наблюдение и их
состояние (рис. 88).
158
ЛКНВ.11100-01 90 01
Рис. 87 Работа с Nagios в веб-браузере
Рис. 88 Список узлов
7.7.5. Nagstamon
Nagstamon утилита, которая может подключаться к серверам мониторинга,
например, к nagios, для того, чтобы обеспечить в режиме реального времени
информацию о состоянии узлов и служб. Nagstamon в виде небольшой настраиваемой
строчки может висеть в любом месте экрана, отображая количество проблем в сети.
При наведении на нее мышкой, выпадает список проблем.
159
ЛКНВ.11100-01 90 01
Пакет nagstamon (если он еще не установлен) следует установить на сервере
мониторинга:
# apt-get install nagstamon
При первом запуске Nagstamon («Приложения» «Системные»
«Nagstamon») появляется диалоговое окно, в котором необходимо настроить хотя бы
один монитор для проверки (рис. 89):
- тип сервера мониторинга: Nagios;
- URL-адрес главной страницы монитора: http://localhost/nagios/;
- URL-адрес монитора CGI: http://localhost/nagios/;
- имя пользователя: nagios;
- пароль: nagios;
- прокси, если необходимо.
Рис. 89 Настройка сервера мониторинга
Каталог config по умолчанию находится в $HOME/.nagstamon.
Nagstamon находится на рабочем столе, в виде перемещаемой строки состояния
или полноэкранного режима, где представлено краткое описание (рис. 90)
критических, предупреждающих, неизвестных, недостижимых и недоступных узлов
и сервисов. При касании указателем мыши уведомления, выводится подробный отчет
о состоянии (рис. 91). Пользователи также могут получать звуковые сигналы.
160
ЛКНВ.11100-01 90 01
Рис. 90 Уведомление о критической ошибке
Рис. 91 Просмотр отчета об ошибке
Nagstamon позволяет пользователю определять действия, предпринимаемые
для отказавших узлов и служб. Также есть встроенные действия:
- Monitor открыть страницу узла/службы в веб-интерфейсе монитора;
- Recheck снова проверить состояние узла/службы;
- Acknowledge позволяет признать проблему с узлом/службой;
- Downtime позволяет настроить обслуживание службы/узла.
С удаленными узлами и службами можно устанавливать соединение через SSH,
RDP, VNC или выполнить любые самоопределяемые действия.
В качестве примера создать действие, которое будет проверять доступность
узла, командой ping. Для этого из контекстного меню выбрать пункт «Edit action»
(Редактировать действие) (рис. 92). В открывшемся окне необходимо нажать на
кнопку «New action…» (Новое действие).
Существует три типа действий:
- Browser открыть браузер с определенным URL-адресом;
- Command вызов внешней команды с некоторыми связанными аргументами;
- URL вызывать любой URL в фоновом режиме с аргументами, например,
действие CGI.
Команды и URL-вызовы могут быть построены с использованием некоторых
переменных-заполнителей.
161
ЛКНВ.11100-01 90 01
Рис. 92 Контекстное меню Nagstamon
Регулярными выражениями можно отфильтровать узлы и службы, чтобы меню
действий оставалось как можно более удобным. Для сохранения изменений
необходимо нажать на кнопку «OK».
Рис. 93 Добавление нового действия
162
ЛКНВ.11100-01 90 01
ГОСТ в OpenSSL
7.8.1. Поддержка шифрования по ГОСТ в OpenSSL
Для включения поддержки шифрования ГОСТ в OpenSSL необходимо
выполнить следующие действия:
1) установить пакет: # apt-get install openssl-gost-engine
2) изменить конфигурационный файл OpenSSL, выполнив команду:
# control openssl-gost enabled
3) проверить, доступны ли шифры ГОСТ для OpenSSL:
$ openssl ciphers|tr ':' '\n'|grep GOST
GOST2012-GOST8912-GOST8912
GOST2001-GOST89-GOST89
7.8.2. Создание ключей
Пример генерации закрытого ключа с алгоритмом ГОСТ-2012:
$ openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:TCA -out ca.key
Пример создания сертификата на 365 дней (ca.cer):
$ openssl req -new -x509 -md_gost12_256 -days 365 -key ca.key -out ca.cer \
-subj "/C=RU/ST=Russia/L=Moscow/O=SuperPlat/OU=SuperPlat CA/CN=SuperPlat CA
Root"
Проверка сертификата (ca.cer):
$ openssl x509 -in ca.cer -text noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
70:66:39:34:7b:4b:55:52:89:64:83:66:1c:63:ff:fb:90:2e:2e:3b
Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
Issuer: C = RU, ST = Russia, L = Moscow, O = SuperPlat, OU = SuperPlat CA, CN
= SuperPlat CA Root
Validity
Not Before: Jun 15 10:08:24 2020 GMT
Not After : Jun 15 10:08:24 2021 GMT
Subject: C = RU, ST = Russia, L = Moscow, O = SuperPlat, OU = SuperPlat CA, CN
= SuperPlat CA Root
Subject Public Key Info:
Public Key Algorithm: GOST R 34.10-2012 with 256 bit modulus
Public key:
X:24529B83573322D0F2B5A75DD20D31DCD3B84AA7E69AF5035E228AC46705798A
Y:3E4F9142B640EBCAA8C76A6EE13B431E452337ADC10E52D3E4D3E8C9745AAE16
Parameter set: GOST R 34.10-2012 (256 bit) ParamSet A
X509v3 extensions:
X509v3 Subject Key Identifier:
BD:E6:E8:74:62:82:EE:F1:9F:FE:C1:48:73:A1:F3:0B:E0:4C:D2:0F
X509v3 Authority Key Identifier:
keyid:BD:E6:E8:74:62:82:EE:F1:9F:FE:C1:48:73:A1:F3:0B:E0:4C:D2:0F
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)
2d:6c:71:78:da:fe:9c:70:75:81:82:c5:4e:1e:10:19:8a:bb:
9f:12:6a:02:6c:d5:12:43:20:3e:01:4f:b1:a2:13:ba:44:11:
b5:e6:9d:82:49:98:f5:24:49:c4:fb:ff:a2:ea:18:0a:72:57:
d7:7b:cc:6a:66:0b:d8:7e:2a:10
163
ЛКНВ.11100-01 90 01
8. СРЕДСТВА УДАЛЕННОГО АДМИНИСТРИРОВАНИЯ, ОРГАНИЗАЦИЯ
СЕТЕВОЙ ИНФРАСТРУКТУРЫ С ПОМОЩЬЮ СЕРВЕРА
Последующие пункты рекомендуются к прочтению опытным пользователям и
системным администраторам.
Вход в систему
Для начала работы по настройке системы сразу после ее установки, необходимо
использовать веб-ориентированный интерфейс ЦУС (см. п. 7.1.2), позволяющий
управлять выбранным компьютером с любого другого в сети.
Развертывание офисной ИТ-инфраструктуры
8.2.1. Подготовка
Перед началом развертывания офисной ИТ-инфраструктуры необходимо
провести детальное планирование. Конкретные решения в каждом случае будут
продиктованы спецификой требований, предъявляемых к офисной
ИТ-инфраструктуре. При этом важно понимать принципы взаимодействия
компьютеров в сети и роль каждого конкретного компьютера: главный сервер,
подчиненный сервер или компьютер-клиент (рабочее место).
Ключевым понятием для работы сети, построенной на базе ОС Альт 8 СП,
является домен.
8.2.2. Домен
Под доменом понимается группа компьютеров с разными ролями. Каждый
сервер обслуживает один домен – группу компьютеров одной сети, имеющую единый
центр и использующую единые базы данных для различных сетевых служб.
С помощью домена можно:
- вести централизованную базу пользователей и групп;
- аутентифицировать пользователей и предоставлять им доступ к сетевым
службам без повторного ввода пароля;
- использовать единую базу пользователей для файлового сервера, прокси-
сервера, веб-приложений;
164
ЛКНВ.11100-01 90 01
- автоматически подключать файловые ресурсы с серверов, анонсированных
по Zeroconf;
- использовать тонкие клиенты, загружаемые по сети и использующие сетевые
домашние каталоги;
- аутентифицировать пользователей как на «ALT-домен», так и на Microsoft
Windows.
П р и м е ч а н и е . Не следует путать это понятие с другими доменами:
почтовыми доменами, доменными именами (DNS), Windows-доменами.
8.2.3. Сервер, рабочие места и аутентификация
Важно понимать роль, которая будет отводиться ОС Альт 8 СП в домене.
Именно сервер (например, под управлением ОС Альт 8 СП Сервер) будет являться
центральным звеном сети, контролируя доступ к ресурсам сети и предоставляя
различные службы для клиентских машин. Все службы, предоставляемые серверами,
используются рабочими местами.
Таким образом, можно выделить:
1) Сервер (компьютер под управлением ОС Альт 8 СП Сервер).
Сервер осуществляет контроль доступа к ресурсам сети, содержит
централизованную базу данных пользователей и удостоверяющий центр для выдачи
сертификатов службам на серверах и рабочих местах.
2) Рабочее место.
Рабочие места – это клиентские, по отношению к серверам, компьютеры,
непосредственно использующиеся для работы пользователей.
Наибольший эффект от использования ОС Альт 8 СП Сервер достигается при
использовании его вместе с рабочими местами под управлением ОС Альт 8 СП
Рабочая станция. Они уже содержат все необходимое для интеграции в сеть с
ОС Альт 8 СП Сервер, в качестве рабочих мест могут использоваться и другие ОС,
возможно, на стороне компьютера-клиента потребуется дополнительная настройка.
Для доступа к ресурсам сети апример, общим файлам, расположенным на
сервере, либо получения доступа в сеть Интернет) пользователю, работающему на
клиентском компьютере, необходимо авторизоваться на сервере – ввести свои данные
165
ЛКНВ.11100-01 90 01
(имя и пароль). После проверки аутентификации главным сервером, пользователь
получает определенный администратором домена объем прав доступа к ресурсам
сети.
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);
4) DNS обслуживание только запросов DNS указанного домена сервисом
Bind (см. п. 9.6) (рис. 94).
166
ЛКНВ.11100-01 90 01
Рис. 94
Централизованная база пользователей
Основной идеей домена является единая база учетных записей. При такой
организации работы пользователям требуется лишь одна единственная учетная
запись для доступа ко всем разрешенным администратором сети ресурсам. Наличие
в сети единой централизованной базы пользователей позволяет значительно
упростить работу, как самих пользователей, так и системных администраторов.
8.4.1. Создание учетных записей пользователей
Централизованная база пользователей создается на главном сервере. Наполнить
ее учетными записями можно воспользовавшись модулем ЦУС «Пользователи»
(пакет alterator-ldap-users) из раздела «Пользователи» (рис. 96).
Для выбора источника данных о пользователях, необходимо нажать на кнопку
«Выбор источника», выбрать источник и нажать на кнопку «Применить» (рис. 95).
167
ЛКНВ.11100-01 90 01
Рис. 95
Возможные варианты источника данных о пользователях:
- текущий метод аутентификации (выбирается в модуле «Аутентификация»
см. п. 8.4.5);
- файл /etc/passwd (выбран по умолчанию);
- локальная база LDAP;
- база LDAP на другом сервере;
- локальная база Samba DC.
Рис. 96 Создание учетной записи пользователя в модуле «Пользователи»
168
ЛКНВ.11100-01 90 01
Для создания новой учетной записи необходимо ввести имя новой учетной
записи и нажать на кнопку «Создать», после чего имя отобразится в списке слева.
Для дополнительных настроек необходимо выделить существующую учетную
запись, выбрав ее из списка. Список доступных полей зависит от выбранного
источника данных о пользователях.
После создания учетной записи пользователя не забудьте присвоить учетной
записи пароль. Этот пароль и будет использоваться пользователем для регистрации в
домене. После этого на рабочих местах под управлением ОС Альт 8 СП Рабочая
станция, на которых для аутентификации установлен этот домен, можно вводить это
имя пользователя и пароль.
8.4.2. Объединение пользователей в группы
Пользователи могут быть объединены в группы. Это может быть полезно для
более точного распределения полномочий пользователей. Например, члены группы
wheel могут получать полномочия администратора на локальной машине, выполнив
команду:
$ su -
Настройка групп производится в модуле ЦУС «Группы» (пакет
alterator-ldap-groups) из раздела «Пользователи». С помощью данного модуля можно
(рис. 97):
- просматривать актуальный список групп и список пользователей, входящих
в каждую группу;
- создавать и удалять группы;
- добавлять и удалять пользователей в существующие группы;
- привязывать группу к системным группам и группам Samba.
169
ЛКНВ.11100-01 90 01
Рис. 97
Для выбора источника списка групп, нажмите кнопку «Выбор источника» (рис.
97) и выберите источник (рис. 98).
Рис. 98
Возможные варианты источника данных о пользователях:
- текущий метод аутентификации (выбирается в модуле «Аутентификация»
см. п. 8.4.5);
- файл /etc/group (выбран по умолчанию);
- локальная база LDAP;
- база LDAP на другом сервере;
- локальная база Samba DC.
170
ЛКНВ.11100-01 90 01
Для создания новой группы необходимо ввести название группы и нажать на
кнопку «Создать», после чего имя отобразится в списке слева.
8.4.3. Настройка учетной записи
Во вкладке «Учетная запись» (модуль ЦУС «Группы» пакет alterator-groups)
можно настроить принадлежность учетной записи группам (рис. 99).
Рис. 99
Для этого необходимо в списке групп выделить группу, к которой нужно
добавить(удалить) пользователей. В списке «Члены группы» отображается
информация о членах выделенной группы. В списке «Доступные пользователи»
отображается список пользователей системы. Для включения пользователя в группу
необходимо выбрать пользователя в списке «Доступные пользователи» и нажать на
кнопку . Для исключения пользователя из группы необходимо выбрать
пользователя в списке «Члены группы» и нажать на кнопку .
8.4.4. Привязка групп
Во вкладке «Привязка групп» (модуль ЦУС «Группы») можно привязать
группу к системной группе или к группе Samba (рис. 100).
171
ЛКНВ.11100-01 90 01
Рис. 100
Привязка к системной группе позволяет включать доменных пользователей в
системные группы при регистрации на рабочей станции.
П р и м е ч а н и е . Некоторые системные группы на сервере и на рабочей
станции имеют разные идентификаторы (GID). Проверьте GID используемых
системных групп на сервере и на рабочих станциях (в файле /etc/group).
Привязка к группе Samba позволяет создавать группы Samba, которые могут
использоваться для установки прав доступа на рабочих станциях под управлением
ОС Windows, которые аутентифицируются в ALT-домене (см. п. 9.2).
8.4.5. Настройка рабочей станции
Настройка рабочих станций для использования централизованной
аутентификации производится в ЦУС (графический интерфейс) в разделе
«Аутентификация» (пакет alterator-auth) (рис. 101).
После выбора домена (см. п. 8.2.2), для полного вступления изменений с силу
необходимо перезагрузить систему.
После перезагрузки у пользователя появится возможность авторизоваться с
использованием централизованной аутентификации.
172
ЛКНВ.11100-01 90 01
Рис. 101
Настройка подключения к Интернету
Помимо множества различных служб, которые ОС Альт 8 СП может
предоставлять компьютерам сети, важно определить, будет ли сервер предоставлять
общий доступ в Интернет для компьютеров домена или нет. В зависимости от этого
сервер можно рассматривать как:
- сервер без подключения к сети Интернет это сервер с одним сетевым
интерфейсом дной сетевой картой), который и связывает его с
компьютерами локальной сети. Такой сервер называется также сервер
рабочей группы;
- шлюз в этом случае сервер обычно имеет два сетевых интерфейса
(например, две сетевые карты), одна из которых служит для подключения к
локальной сети, а другая – для подключения к сети Интернет.
Как для обеспечения доступа в сеть Интернет самого сервера, так и для
настройки общего выхода в Интернет для компьютеров сети необходимо настроить
подключение к Интернету на самом сервере.
173
ЛКНВ.11100-01 90 01
ОС Альт 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) из раздела «Сеть» (рис. 102).
Рис. 102 Настройка модуля «Ethernet-интерфейсы»
174
ЛКНВ.11100-01 90 01
В модуле «Ethernet-интерфейсы» можно заполнить следующие поля:
- «Имя компьютера» указать сетевое имя ПЭВМ в поле для ввода имени
компьютера (это общий сетевой параметр, не привязанный к какому-либо
конкретному интерфейсу). Имя компьютера, в отличие от традиционного
имени хоста в Unix (hostname), не содержит названия сетевого домена;
- «Интерфейсы» выбрать доступный сетевой интерфейс, для которого будут
выполняться настройки;
- «Версия протокола IP» указать в выпадающем списке версию
используемого протокола IP (IPv4, IPv6) и убедиться, что пункт
«Включить», обеспечивающий поддержку работы протокола, отмечен;
- «Конфигурация» выбрать способ назначения IP-адресов (службы DHCP,
Zeroconf, вручную);
- «IP-адреса» пул назначенных IP-адресов из поля «IP», выбранные адреса
можно удалить нажатием кнопки «Удалить»;
- «IP» ввести IP-адрес вручную и выбрать в выпадающем поле
предпочтительную маску сети, затем нажать на кнопку «Добавить» для
переноса адреса в пул поля «IP-адреса»;
- «Шлюз по умолчанию» – в поле для ввода необходимо ввести адрес шлюза,
который будет использоваться сетью по умолчанию;
- «DNS-серверы» в поле для ввода необходимо ввести список
предпочтительных DNS-серверов, которые будут получать информацию о
доменах, выполнять маршрутизацию почты и управлять обслуживающими
узлами для протоколов в домене;
- «Домены поиска» в поле для ввода необходимо ввести список
предпочтительных доменов, по которым будет выполняться поиск.
«IP-адрес» и «Маска сети» обязательные параметры каждого узла IP-сети.
Первый параметр уникальный идентификатор машины, от второго напрямую
зависит, к каким машинам локальной сети данная машина будет иметь доступ. Если
требуется выход во внешнюю сеть, то необходимо указать параметр
«Шлюз по умолчанию».
175
ЛКНВ.11100-01 90 01
В случае наличия DHCP-сервера (см. п. 8.5.3) можно все вышеперечисленные
параметры получить автоматически выбрав в списке «Конфигурация» пункт
«Использовать DHCP» (рис. 103).
Если в компьютере имеется несколько сетевых карт, то возможна ситуация,
когда при очередной загрузке ядро присвоит имена интерфейсов (eth0, eth1) в другом
порядке. В результате интерфейсы получат не свои настройки. Чтобы этого не
происходило, можно привязать интерфейс к имени по его аппаратному адресу (MAC)
или по местоположению на системной шине.
Рис. 103 Автоматическое получение настроек от DHCP-сервера
Дополнительно для каждого интерфейса можно настроить сетевую подсистему
(NetworkManager, Etcnet), а также должен ли запускаться данный интерфейс при
загрузке системы (рис. 104).
Рис. 104 Выбор сетевой подсистемы
176
ЛКНВ.11100-01 90 01
В списке «Сетевая подсистема» (рис. 104) можно выбрать следующие режимы:
- Etcnet в этом режиме настройки берутся исключительно из файлов
находящихся в каталоге настраиваемого интерфейса
/etc/net/ifaces/<интерфейс>. Настройки сети могут изменяться либо в
ЦУС в данном модуле, либо напрямую через редактирование файлов
/etc/net/ifaces/<интерфейс>;
- NetworkManager (etcnet) в этом режиме NetworkManager сам инициирует
сеть, используя в качестве параметров – настройки из файлов Etcnet.
Настройки сети могут изменяться либо в ЦУС в данном модуле, либо
напрямую через редактирование файлов /etc/net/ifaces/<интерфейс>. В
этом режиме можно просмотреть настройки сети, например полученный по
DHCP IP-адрес, через графический интерфейс NetworkManager;
- NetworkManager (native) в данном режиме управление настройками
интерфейса передаётся NetworkManager и не зависит от файлов Etcnet.
Управлять настройками можно через графический интерфейс
NetworkManager. Файлы с настройками находятся в директории
/etc/NetworkManager/system-connections. Этот режим особенно
актуален для задач настройки сети на клиенте, когда IP-адрес необходимо
получать динамически с помощью DHCP, а DNS-сервер указать явно. Через
ЦУС так настроить невозможно, так как при включении DHCP отключаются
настройки, которые можно задавать вручную;
- Не контролируется в этом режиме интерфейс находится в состоянии DOWN
(выключен).
8.5.2. Настройка общего подключения к сети Интернет
Пользователи корпоративных сетей обычно подключаются к сети Интернет
через один общий канал. Для организации совместного доступа к сети Интернет
стандартными средствами поддерживаются две технологии, которые могут
использоваться как по отдельности, так и совместно:
- использование прокси-сервера (п. 8.5.2.1);
- использование NAT (п. 8.5.2.2).
177
ЛКНВ.11100-01 90 01
Оба способа предполагают, что соединение с Интернет компьютера, через
который предполагается настроить общий выход, предварительно
сконфигурировано. Сделать это можно в ЦУС разделе «Сеть».
Прокси-сервер
Отличительной особенностью использования прокси-сервера является то, что,
помимо предоставления доступа к веб-сайтам, прокси-сервер кэширует загруженные
страницы, а при повторном обращении к ним отдает их из своего кэша. Это может
существенно снизить потребление трафика.
У прокси-сервера есть два основных режима работы:
- прозрачный;
- обычный.
Для работы с прокси-сервером в прозрачном режиме специальная настройка
рабочих станций не потребуется. Они лишь должны использовать сервер в качестве
шлюза по умолчанию. Этого можно добиться, сделав соответствующие настройки на
DHCP-сервере.
Для использования прокси-сервера в обычном режиме потребуется на каждом
клиенте в настройках браузера указать данные прокси-сервера (IP-адрес и порт).
Преимуществом обычного режима работы, требующего перенастройки
программ локальной сети, является возможность производить аутентификацию
пользователей и контролировать их доступ во внешнюю сеть.
В различных браузерах местоположение формы настройки на прокси-сервер
различное.
По умолчанию прокси-сервер не предоставляет доступ в Интернет никому
кроме себя самого. Список сетей, обслуживаемых прокси-сервером можно изменить,
нажав на кнопку «Разрешенные сети…» в модуле ЦУС «Прокси-сервер» (пакет
alterator-squid) из раздела «Серверы» (рис. 105).
178
ЛКНВ.11100-01 90 01
Рис. 105 Модуль «Прокси-сервер»
П р и м е ч а н и е . См. также описание настроек прокси-сервера Squid в п. 8.13.
Для того чтобы включить аутентификацию пользователей и контролировать их
доступ во внешнюю сеть, необходимо выбрать обычный режим проксирования и
способ аутентификации, отличный от «Без аутентификации» (рис. 106).
Рис. 106 Настройка аутентификации пользователей
Прокси-сервер принимает запросы из локальной сети и, по мере
необходимости, передает их во внешнюю сеть. Поступление запроса ожидается на
определенном порту, который по умолчанию имеет стандартный номер 3128. Если по
каким-то причинам нежелательно использовать данный порт, то можно поменять его
значение на любое другое.
179
ЛКНВ.11100-01 90 01
Перед тем как выполнить перенаправление запроса, прокси-сервер проверяет
принадлежность сетевого адрес узла, с которого запрос был отправлен к группе
внутренних сетевых адресов. Для того чтобы запросы, отправленные из локальной
сети, обрабатывались прокси-сервером, необходимо добавить соответствующую
группу адресов (адрес подсети и адресную маску) в список внутренних сетей
в разделе «Разрешенные сети» (рис. 107).
Вторым условием передачи запроса является принадлежность целевого порта к
разрешенному диапазону. Посмотреть и отредактировать список разрешенных
целевых портов можно в разделе «Разрешенные протоколы» (рис. 108).
Рис. 107 Настройка списка внутренних сетей
Рис. 108 Настройка списка разрешенных целевых портов
Прокси-сервер позволяет вести статистику посещений страниц в Интернете.
Она доступна в модуле ЦУС «Прокси-сервер» (пакет alterator-squidmill) в разделе
180
ЛКНВ.11100-01 90 01
«Статистика» (п. 8.15). Основное предназначение статистики просмотр отчета об
объеме полученных из Интернета данных в привязке к пользователям (если включена
аутентификация) или к IP-адресам клиентов.
П р и м е ч а н и я :
1. Статистика не собирается по умолчанию. Включить ее сбор следует в модуле
ЦУС «Прокси-сервер» (раздел «Статистика» п. 8.15). Для этого отметьте «Включить
сбор данных прокси-сервера» и нажмите кнопку «Применить».
2. Для учета пользователей в статистике нужно добавить хотя бы одно правило,
например, запрет не аутентифицированных пользователей. Только после этого в
статистике появятся пользователи.
NAT
NAT (Network Address Translation, преобразование сетевых адресов) это
механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных
пакетов. Таким образом, компьютеры локальной сети, имеющие IP-адреса,
зарезервированные для использования исключительно в локальных сетях, могут
использовать общий канал доступа к сети Интернет (общий внешний IP-адрес).
При этом на компьютере-шлюзе, непосредственно подключенном к сети Интернет,
выполняется преобразование адресов.
Настройка NAT осуществляется в модуле ЦУС «Внешние сети» (пакет alterator-
net-iptables) из раздела «Брандмауэр» (см. п. 8.14.1). Для минимальной настройки
достаточно выбрать режим работы Шлюз (NAT), отметить правильный внешний
сетевой интерфейс (рис. 109) и нажать на кнопку «Применить».
Рис. 109 Настройка NAT в модуле «Внешние сети»
181
ЛКНВ.11100-01 90 01
8.5.3. Автоматическое присвоение IP-адресов (DHCP-сервер)
DHCP (Dynamic Host Configuration Protocol) протокол, позволяющий клиенту
самостоятельно получить IP-адрес из зарезервированного диапазона адресов, а также
дополнительную информацию о локальной сети (DNS-сервер сети, домен поиска,
шлюз по умолчанию).
Чтобы настраивать DHCP-сервер, на машине должен быть хотя бы один
статически сконфигурированный Ethernet-интерфейс (см. п. 8.5.1).
Настройка DHCP-сервера осуществляется в модуле ЦУС «DHCP-сервер»
(пакет alterator-dhcp) из раздела «Серверы».
Для включения DHCP-сервера необходимо установить флаг «Включить службу
DHCP» (рис. 110), указать начальный и конечный IP-адрес, а также шлюз по
умолчанию (обычно, это IP-адрес сервера на сетевом интерфейсе, обслуживающем
локальную сеть).
Рис. 110 Настройка модуля DHCP-сервер
182
ЛКНВ.11100-01 90 01
Теперь при включении любой клиентской машины с настройкой «получение IP
и DNS автоматически» будет присваиваться шлюз 192.168.8.250, DNS
192.168.8.251 и адреса начиная с 192.168.8.50 по порядку включения до
192.168.8.60.
Иногда бывает полезно выдавать клиенту один и тот же IP-адрес независимо от
момента обращения. В этом случае он определяется по аппаратному адресу (MAC-
адресу) сетевой карты клиента. Для добавления своих значений в таблицу
соответствия статических адресов следует ввести IP-адрес и соответствующий ему
MAC-адрес и нажать на кнопку «Добавить» (рис. 111).
Рис. 111 Привязка IP-адреса к MAC-адресу
Выданные IP-адреса можно увидеть в списке «Текущие динамически выданные
адреса» (рис. 112). Также имеется возможность зафиксировать выданные адреса, за
данными компьютерами. Для этого необходимо отметить хост, за которым нужно
закрепить IP-адрес и нажать на кнопку «Зафиксировать адрес для выбранных
компьютеров».
183
ЛКНВ.11100-01 90 01
Рис. 112 Список динамически выданных адресов
Настройка сети NetworkManager
Программа NetworkManager (рис. 113) позволяет подключаться к различным
типам сетей: проводные, беспроводные, мобильные, VPN и DSL, а также сохранять
эти подключения для быстрого доступа к сети, чтобы в дальнейшем подключиться
автоматически.
При нажатии левой кнопкой мыши на значок NetworkManager в трее, появится
меню, в котором можно выбрать одну из доступных Wi-Fi сетей и подключиться к
ней. Из этого меню так же можно отключить активное Wi-Fi соединение.
Рис. 113 Меню NetworkManger при нажатии левой кнопки мыши
При нажатии правой кнопкой мыши на значок NetworkManager (рис. 114),
появится меню, из которого можно получить доступ к изменению некоторых
настроек, также можно узнать версию программы, посмотреть сведения о
соединении, изменить соединения (например, удалить Wi-Fi сеть, чтобы не
подключаться к ней автоматически).
184
ЛКНВ.11100-01 90 01
Рис. 114 Меню 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).
185
ЛКНВ.11100-01 90 01
Организация опций /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 файл опций, читается после опций по умолчанию;
186
ЛКНВ.11100-01 90 01
- 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 этой опции можно в кавычках
перечислить несколько имен, и они будут последовательно загружены). Этот метод
187
ЛКНВ.11100-01 90 01
часто используется на практике и лучше всего подходит для маршрутизаторов.
Преимущество метода в том, что вся необходимая информация сконцентрирована в
одном месте каталоге /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. Для повторной
конфигурации интерфейса нужно подключить его к ПЭВМ еще раз.
188
ЛКНВ.11100-01 90 01
Также существует опция 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
Вероятнее всего интерфейс-петля lo (loopback) уже сконфигурирован с
189
ЛКНВ.11100-01 90 01
адресом 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.
190
ЛКНВ.11100-01 90 01
Для 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;
191
ЛКНВ.11100-01 90 01
- 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 будет подобран еще не использованный адрес и назначен на
интерфейс.
192
ЛКНВ.11100-01 90 01
Существует несколько комбинированных способов:
- 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.
Интерфейсы, перечисленные в этой опции, будут считаться зависимостями текущего
интерфейса. Например, по умолчанию попытка сконфигурировать интерфейс А,
193
ЛКНВ.11100-01 90 01
который зависит от Б и В, приведет сначала к конфигурации Б и В. Аналогично, при
расконфигурации Б или В сначала будет расконфигурирован А.
Зависимость одного интерфейса от другого не всегда формальна. Например, в
сценарии ifup-pre одного интерфейса может использоваться команда, которая
потребует разрешения DNS-имени, которое может быть разрешено только с помощью
resolv.conf, инсталлируемого другим интерфейсом. Или это может быть
PPPoE/PPtP-интерфейс, требующий Ethernet-интерфейс для работы.
Пользовательские сценарии post и pre
Существует возможность поместить в каталог конфигурации интерфейса
файлы, которые будут выполнены в определенные моменты. Для этого они должны
быть исполняемыми и называться следующим образом:
- ifup-pre для выполнения перед конфигурированием интерфейса;
- ifup-post для выполнения после конфигурирования интерфейса.
Например, можно запустить почтовую систему;
- ifdown-pre для выполнения перед расконфигурированием интерфейса.
Например, можно остановить почтовую систему;
- ifdown-post для выполнения после расконфигурирования интерфейса.
Управление канальными параметрами интерфейсов
Если поместить в конфигурационный каталог интерфейса файл iplink, в
котором в каждой строке будут записаны команды режима link утилиты ip, то они
будут выполнены при конфигурации интерфейса.
Например, если необходимо, чтобы интерфейс eth0 имел MAC-адрес
aa:bb:cc:dd:ee:ff и MTU 200 байт, то в файл /etc/net/ifaces/eth0/iplink
нужно поместить следующее:
address aa:bb:cc:dd:ee:ff
mtu 200
194
ЛКНВ.11100-01 90 01
Управление физическими параметрами интерфейсов
Если поместить в конфигурационный каталог интерфейса файл ethtool, в
котором будет строка с параметрами программы ethtool, то она будет выполнена при
конфигурации интерфейса.
Например, если есть необходимость, чтобы интерфейс eth0 имел скорость
10 Мбит/с и авто-согласование скорости было отключено, то в файл
/etc/net/ifaces/eth0/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-интерфейса.
195
ЛКНВ.11100-01 90 01
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
196
ЛКНВ.11100-01 90 01
Родительский интерфейс должен быть сконфигурирован (можно с или без
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.
197
ЛКНВ.11100-01 90 01
Каждый вид туннеля по степени сложности организации предназначен для
решения задач разных уровней:
- туннели 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;
198
ЛКНВ.11100-01 90 01
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
199
ЛКНВ.11100-01 90 01
Далее необходимо подставить нужные 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.
200
ЛКНВ.11100-01 90 01
Простое переключение маршрутов
При необходимости настроить второй маршрут по умолчанию через
беспроводной интерфейс, в обход работы основного проводного сетевого
интерфейса, но с меньшей метрикой, чем у проводного интерфейса используется
простое переключение маршрутов.
В этом случае при настройке 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
201
ЛКНВ.11100-01 90 01
Пример использования 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 соответствующим образом.
202
ЛКНВ.11100-01 90 01
Эта проблема решается следующим способом: производится запись в файл
только имени переменной и значение, а система /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-*.
* актуальные версии на момент использования.
203
ЛКНВ.11100-01 90 01
Профили конфигурации
Определение профилей
Профиль именованный вариант конфигурации, в той или иной степени
изменяющий базовую конфигурацию системы. Профили могут быть применены,
например, для конфигурации ноутбука в разных сетевых окружениях, или при
подготовке новой или тестовой конфигурации с возможностью быстрого возврата к
старой. Практически профили реализуются следующим образом: для какого-либо из
файлов, составляющих общесистемную конфигурацию или конфигурацию
интерфейса, создается альтернативный вариант, который отличается добавлением в
конце названия файла знака «#» и имени профиля.
Например, пусть единственное отличие между профилями заключается в том,
какой модуль ядра будет загружен для интерфейса eth0. В этом случае файл
/etc/net/ifaces/eth0/options необходимо скопировать в
/etc/net/ifaces/eth0/options#profile1 и изменить значение переменной
MODULE в одном из них. Далее при использовании конфигурации по умолчанию будет
использован файл options, а при использовании профиля profile1 файл
options#profile1.
Профили могут использоваться также и для отключения каких-то параметров
конфигурации. Например, если используется файл ipv4route для установки
маршрутов для интерфейса, то можно создать файл нулевого размера
ipv4route#profile2, чтобы при использовании профиля profile2 никаких
маршрутов не конфигурировалось.
Выбор профиля при загрузке
Если при загрузке системы ядру был передан параметр netprofile, то его
значение будет использовано как имя профиля по умолчанию. Это может быть
использовано для создания собственных пунктов меню загрузчиков LILO и GRUB с
заранее определенным профилем сетевой конфигурации. Заданный таким образом
профиль может быть далее переопределен другими методами.
204
ЛКНВ.11100-01 90 01
Следует понимать разницу между различными конфигурациями и различными
результатами применения одной конфигурации. Например, если в двух разных сетях
используется DHCP, то смысла в разных профилях конфигурации нет.
Для загрузчика grub2 необходимо добавить новый пункт меню (пример пункта
меню можно найти в конце файла /boot/grub/grub.cfg) в файл
/etc/grub.d/40_custom и для обновления конфигурации grub запустить команду:
grub-mkconfig -o /boot/grub/grub.cfg
Использование этого метода удобно, если смена сетевого окружения
происходит синхронно с загрузкой системы.
Выбор профиля по умолчанию
Если требуется, чтобы определенный профиль конфигурации использовался по
умолчанию, то необходимо записать его название в файл /etc/net/profile. Этот
метод имеет приоритет над параметром ядра netprofile. Использование такого
способа выбора профиля целесообразно, когда переключение между
конфигурациями происходит реже, чем перезагрузка системы.
Смена профиля во время работы
Если требуется переконфигурировать сеть без перезагрузки или
редактирования файла /etc/net/profile, то следует использовать параметры
сервиса network. Этот метод имеет приоритет над профилем по умолчанию и
профилем, выбранным при загрузке. Целесообразно его использовать, если смена
сетевого окружения происходит чаще, чем перезагрузка системы.
Определение профиля во время конфигурации интерфейса
Если в каталоге конфигурации интерфейса существует исполняемый файл
ненулевого размера с именем selectprofile, то этот файл будет выполнен и первое
слово первой строки его стандартного вывода использовано как имя профиля, которое
должно быть использовано для конфигурации данного интерфейса. Этот метод имеет
приоритет над всеми остальными методами. Исходной задачей, требующей такого
решения, являлось конфигурирование беспроводного интерфейса в зависимости от
доступных точек доступа.
205
ЛКНВ.11100-01 90 01
Следует учитывать, что число вызовов файла selectprofile может меняться
в зависимости от контекста и время его выполнения может быть различным, поэтому
при написании такого файла следует учитывать, что первым параметром будет
являться имя текущего сценария. В настоящее время это могут быть ifup*, 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;
206
ЛКНВ.11100-01 90 01
5) IPTABLES_FORWARD_POLICY действие по умолчанию для пакетов,
попадающих в системную цепочку FORWARD таблицы filter. Значение: одно из
ACCEPT, DROP, QUEUE или RETURN;
6) IPTABLES_OUTPUT_POLICY действие по умолчанию для пакетов,
попадающих в системную цепочку OUTPUT таблицы filter. Значение: одно из
ACCEPT, DROP, QUEUE или RETURN;
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.
207
ЛКНВ.11100-01 90 01
Алгоритм работы сетевого экрана
Алгоритм работы сетевого экрана:
1) при запуске службы network, виртуальный интерфейс default:
- если опция CONFIG_FW файле /etc/net/ifaces/default/options) не
установлена в yes, то ничего не делает и происходит выход из
процедуры запуска сетевого экрана, иначе переходим к следующему
пункту;
- считывается файл настроек
/etc/net/ifaces/default/fw/iptables/options;
- до настройки любого интерфейса и обработки значений 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 в
каждой обрабатываемой таблице, и происходит обработка и загрузка
правил для каждой цепочки в порядке, указанном в файле. При
отсутствии файла обработка опять же происходит в соответствии с
сортировкой по имени;
208
ЛКНВ.11100-01 90 01
- если опция IPTABLES_HUMAN_SYNTAX установлена в yes, то считывается
и обрабатывается файл с «синтаксисом»
/etc/net/ifaces/default/fw/iptables/syntax;
- файл с правилами обрабатывает построчно (одно правило на строку);
если указана опция IPTABLES_HUMAN_SYNTAX, то правило
обрабатывается интерпретатором в соответствии с синтаксисом и
превращается в реальные опции для команды iptables, после чего
запускается iptables с этими параметрами; иначе правило без обработки
передается iptables;
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, там также
описано некоторое количество вспомогательных слов, так что правила можно писать
практически на английском литературном. Синтаксис правила можно
209
ЛКНВ.11100-01 90 01
совмещать (то есть использовать и заданный в «etcnet» синтаксис, и реальные опции
команды iptables (см. подробнее п. 7.5)).
Во всех правилах нельзя использовать названия цепочки и (или) таблицы. Они
будут добавляться автоматически.
В правилах можно использовать любые переменные окружения, выполнять
любые команды shell (они должны быть указаны в одну строку). Переменная $NAME
содержит имя текущего интерфейса. Переменные $IPV4ADDRESS и $IPV6ADDRESS
содержат массив IPV4/IPV6 адресов текущего интерфейса
(это обычные «bash arrays», можно обращаться к ним по индексу:
${IPV4ADDRESS[2]} или просто $IPV4ADDRESS для первого значения). Для удобства
можно использовать файлы options, в которых прописывать какие-либо
переменные, к примеру, адреса gateway, ISP, сетей и т. д.
Во всех файлах можно использовать комментарии (строка должна начинаться с
символа #).
Нет необходимости копировать все файлы настроек в каталог каждого
интерфейса. Сначала будут считаны настройки виртуального интерфейса default, а
уже потом у текущего интерфейса, соответственно, можно переопределять только
требуемые для настройки параметры.
Описания всех правил в настройках виртуального интерфейса default
достаточно для поднятия простого сетевого экрана. При наличии же большого
количества правил и интерфейсов есть смысл разделить логически все правила по
каждому интерфейсу (опять же, не будет нагружаться процессор без необходимости,
если интерфейс, к которому относится много правил, сейчас не «поднят»).
В начале каждого правила можно указать, что с этим правилом делать. Может
быть одно из трех значений:
1) -A добавление в конец списка правил (при включенном удобочитаемом
таксисе соответствует команде append);
2) -I [num] добавление в начало списка правил; если указан необязательный
параметр num, то правило будет вставлено в строку правил с таким номером
(iptables считает несуществующий номер строки ошибкой
210
ЛКНВ.11100-01 90 01
и добавляет правило). При включенном удобочитаемом синтаксисе
соответствует команде insert [num]);
3) -D удаление правила из списка правил (соответственно, при «остановке»
интерфейса правило наоборот будет добавлено). При включенном
удобочитаемом синтаксисе соответствует команде delete;
Если никакое действие не указано, то правила добавляются в цепочку в
соответствии со значением переменной IPTABLES_RULE_EMBEDDING.
Если изменяется какое-то правило в конфигурационных файлах при уже
загруженных правилах iptables, то для того, чтобы в памяти не остались старые
правила, необходимо или выгрузить все правила для текущего интерфейса (если
настраивается для конкретного интерфейса, а не для 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
211
ЛКНВ.11100-01 90 01
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
Утилиты
В 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' для всех таблиц;
212
ЛКНВ.11100-01 90 01
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 обработать все таблицы и цепочки для заданного интерфейса (даже
если задано конкретное имя цепочки либо таблицы);
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 переименовать цепочку.
213
ЛКНВ.11100-01 90 01
Опции для действий 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
Выгрузить (путем удаления каждого правила в обратном порядке) все правила
из цепочки 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
(она полностью удалит все правила, однако, пользовательские цепочки
других интерфейсов не будут затронуты), и далее загрузить заново правила
для требуемого или всех интерфейсов.
214
ЛКНВ.11100-01 90 01
Таким образом, наиболее используемой командой при изменении
конфигурации сетевого экрана является:
/etc/net/scripts/contrib/efw default stop;
/etc/net/scripts/contrib/efw all start
Сетевая установка ОС на рабочие места
Одной из удобных возможностей ОС Альт 8 СП при разворачивании
инфраструктуры является сетевая установка. При помощи нее можно производить
установку ОС Альт 8 СП не с компакт-диска дистрибутива, а загрузив инсталлятор
по сети.
8.8.1. Подготовка сервера
Перед началом установки рабочих станций следует произвести
предварительную настройку сервера: задать имя сервера (модуль
«Ethernet-интерфейсы» в ЦУС п. 8.5.1), включить DHCP-сервер (модуль
«DHCP-сервер» (см. п. 8.5.3)), задать имя домена (модуль «Домен» (см. п. 9.1.1.2.3)).
П р и м е ч а н и е . При сетевой установке с сервера будут переняты настройки
домена, и будет включена централизованная аутентификация. Если устанавливается
ОС Альт 8 СП с компакт-диска, то настройку домена и аутентификации надо будет
производить отдельно на каждом компьютере.
Перед активацией сетевой установки потребуется импортировать
установочный компакт-диска дистрибутива ОС Альт 8 СП, предварительно вставив
его в DVD-привод сервера, либо используя образ диска, расположенный на файловой
системе на сервере. В разделе «Сервер сетевых установок» (пакет alterator-netinst),
укажите откуда импортировать новый образ и нажмите кнопку «Добавить» (рис. 115).
Рис. 115
Процесс добавления занимает какое-то время. Пожалуйста, дождитесь
окончания этого процесса (рис. 116).
215
ЛКНВ.11100-01 90 01
Рис. 116
После добавления образа он появится в списке «Доступные образы дисков».
Выберите из этого списка один из образов и нажмите кнопку «Выбрать» (рис. 117).
На этом подготовка сервера к сетевой установке рабочих станций завершена.
Рис. 117
Далее необходимо выбрать направление соединения. Удаленный доступ к
компьютеру может быть двух видов (рис. 118):
- со стороны клиента во время установки администратор может с помощью
VNC-клиента подключиться к компьютеру, на которой производится
установка, зная его IP-адрес и заданный пароль;
- со стороны сервера во время установки с каждого компьютера
инициируется подключение к запущенному на заданном компьютере
VNC-клиенту. Компьютер-приемник соединений задается IP-адресом или
именем.
216
ЛКНВ.11100-01 90 01
Рис. 118
В случае, когда работа с аппаратной подсистемой ввода-вывода невозможна
(например, если клавиатура, мышь или монитор отсутствуют), можно использовать
вариант «Только по VNC».
Если необходимо управлять установкой удаленно, отметьте пункт «Включить
установку по VNC» и пункт «Подключение со стороны VNC сервера» раздела
«Направление соединения», и там укажите адрес компьютера, с которого будет
происходить управление. Для приема подключения можно запустить, например,
vncviewer -listen.
ПРЕДУПРЕЖДЕНИЕ
Не забудьте отключить сетевую установку по окончании процесса установки
ОС на рабочих станциях. Это можно сделать, выбрав в списке «Доступные образы
дисков» пункт «Нет образа» и подтвердив действие нажатием кнопки «Выбрать».
За дополнительной информацией по настройке обращайтесь к встроенной
справке соответствующих модулей ЦУС (п. 7.1.5).
8.8.2. Подготовка рабочих станций
Для сетевой установки следует обеспечить возможность загрузки по сети
рабочих станций, на которых будет производиться установка ОС.
Большинство современных материнских плат имеют возможность загрузки по
сети, однако она по умолчанию может быть отключена в BIOS (БСВВ). Различные
производители материнских плат дают разные названия данной возможности,
например: «Boot Option ROM» или «Boot From Onboard LAN».
217
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Некоторые материнские платы позволяют выбрать источник
загрузки во время включения компьютера. Эта возможность может называться,
например, «Select boot device» или «Boot menu».
Последовательность установки при установке с компакт-диска и при сетевой
установке не отличаются друг от друга. Подробный о процессе см. в разделе 5
«Установка ОС Альт 8 СП».
Сервер электронной почты (SMTP, POP3/IMAP)
8.9.1. Сервер электронной почты
ОС Альт 8 СП Сервер может служить как почтовым сервером,
обслуживающим определенный домен, так и посредником (шлюзом) для пересылки
почты. Почтовый сервер отвечает, как за отправку писем (SMTP-сервер см. п. 8.10.3)
исходящих от почтовых клиентов рабочих станций, так и за предоставление им
входящей почты (Сервер POP3/IMAP см. п. 8.9.3).
Для настройки параметров работы сервера предусмотрен модуль ЦУС
«Почтовый сервер» (пакет alterator-postfix-dovecot) из раздела «Серверы» (рис. 119).
Рис. 119
218
ЛКНВ.11100-01 90 01
8.9.2. Сервер SMTP
Сервер SMTP отвечает за отправку сообщений и может работать в двух
режимах:
1) посредник в этом режиме исходящая почта пересылается для дальнейшей
отправки на указанный сервер;
2) сервер – в этом режиме сервер доставляет почту самостоятельно.
8.9.3. Сервер POP3/IMAP
Сервер POP3/IMAP используется для доступа пользователей к электронной
почте на сервере.
Для доступа к службам POP3 и IMAP пользователь должен включить в своем
почтовом клиенте аутентификацию и указать свое имя и пароль.
Выбор конкретного используемого протокола для получения почты зависит от
предпочтений пользователя.
1) POP при проверке почты почтовым клиентом почта передается на
клиентскую машину, где и сохраняется. Возможность просмотра
принятой/отправленной почты при этом существует даже если клиент не
имеет соединения с сервером.
2) IMAP все сообщения хранятся на сервере. Почтовый клиент может
просматривать их только при наличии соединения с сервером.
Помимо включения/отключения служб, модуль ЦУС «Почтовый сервер»
позволяет произвести дополнительные настройки: фильтрацию спама, настройку
параметров аутентификации и т. д.
Cервер электронной почты postfix
Postfix представляет собой агент передачи электронной почты и позволяет
организовать обмен почтой внутри локальной сети, а также с внешней сетью.
Для расширения возможностей postfix используется ряд дополнений,
выделенных в отдельные пакеты, полный список которых можно получить с
помощью следующей команды:
$ apt-cache search ^postfix-
219
ЛКНВ.11100-01 90 01
Настройка сервера электронной почты postfix осуществляется с помощью
конфигурационных файлов, хранящихся в каталоге /etc/postfix. Основные
параметры определяются в файле конфигурации main.cf. В файле main.cf
указываются только параметры, выставленные администратором, и некоторые из
значений по умолчанию, которые администратору с большой вероятностью нужно
будет изменить. Значения по умолчанию для всех остальных параметров
перечислены в файле main.cf.default (этот файл не следует редактировать, он
служит только для справок).
Если конфигурация была изменена при запущенной службе 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
220
ЛКНВ.11100-01 90 01
После получения идентификатора очереди необходимо указать его в качестве
параметра команды postcat для просмотра содержимого файла следующим образом:
# postcat -q <идентификатор очереди>
Основная задача команды postmap заключается в построении индексированных
карт на основе обычных текстовых файлов.
Для того чтобы создать карту /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
221
ЛКНВ.11100-01 90 01
Команда postqueue с параметром -s domain пытается доставить всю стоящую
в очереди почту для домена domain:
# postqueue -s example.com
Команда postsuper обслуживает задания внутри очередей postfix отличие
от postqueue, эта команда доступна только пользователю с идентификатором root, и
она может быть выполнена, когда сервер не запущен).
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
222
ЛКНВ.11100-01 90 01
Домены, для которых сервер получает почту, отличные от значения mydomain
и не сконфигурированные как виртуальные домены postfix, необходимо перечислить
с помощью параметра mydestination, либо в дополнительном файле, на который
ссылается этот параметр.
Адресаты указываются через запятую следующим образом:
mydestination =
$mydomain,
$myhostname
Аналогичным образом параметр 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]
223
ЛКНВ.11100-01 90 01
8.10.4. SMTP-аутентификация
SMTP-аутентификация обеспечивает идентификацию клиентов независимо от
их IP-адресов и позволяет серверу пересылать сообщения от почтовых клиентов, чьи
IP-адреса не входят в список доверенных. Postfix реализует SMTP-аутентификацию
при помощи протокола SASL (Simple Authentication and Security Layer) и использует
библиотеки Cyrus-SASL.
Для защиты соединений используется протокол SSL/TLS (для включения
поддержки необходимо установить пакет postfix-tls).
Для проверки поддержки 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
224
ЛКНВ.11100-01 90 01
Настройка механизмов SASL
Управление предоставляемыми механизмами осуществляется с помощью
параметра smtpd_sasl_security_options, в котором через запятые следует указать
список из одного или более значений:
1) noanonymous значение параметра, позволяющее включить проверку
сервером верительных данных клиента (список значений параметра
smtpd_sasl_security_options всегда должен включать в себя значение
noanonymous);
2) noplaintext значение параметра, позволяющее исключить использование
всех механизмов открытого текста, таких как PLAIN и LOGIN (значение,
рекомендуемое для использования, так как отправляемые открытым текстом
верительные данные могут быть легко перехвачены в сети);
3) noactive значение параметра, исключающее использование механизмов
SASL, которые восприимчивы к активным атакам);
4) nodictionary значение параметра, исключающее все механизмы, не
устойчивые к атакам по словарю (атаки, осуществляемые методом полного
перебора паролей);
5) mutual_auth значение параметра, позволяющее включить поддержку
только механизмов, обеспечивающих взаимную аутентификацию (сервер
аутентифицирует себя для клиента).
Настройка SMTP-аутентификации для нестандартных почтовых
клиентов
Для настройки альтернативной нотации для устаревших клиентов, не
распознающих SMTP-аутентификацию по стандарту RFC 2222, но распознающих
более раннюю нотацию, использованную в черновом варианте этого стандарта (где
между командой AUTH и названиями механизмов стоял не пробел, а знак равенства),
необходимо в конфигурационном файле main.cf установить параметр
broken_sasl_auth_clients:
broken_sasl_auth_clients = yes
225
ЛКНВ.11100-01 90 01
Настройка области SASL
Для аутентификации клиента сервер postfix отправляет службе паролей Cyrus
SASL область аутентификации (realm) вместе с верительными данными клиента.
Такая необходимость определяется версией Cyrus SASL и выбором службы. Для
указания области аутентификации в файле main.cf используется параметр
smtpd_sasl_local_domain. По умолчанию этот параметр пуст и должен оставаться
пустым, если только не используется вспомогательный плагин, которому
действительно требуется область аутентификации.
Настройка разрешений на пересылку
Для разрешения пересылки для клиентов, прошедших аутентификацию SASL,
необходимо добавить параметр permit_sasl_authenticated в список ограничений
smtpd_recipient_restrictions своей конфигурации следующим образом:
smtpd_recipient_restrictions =
[...]
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
[...]
Необходимо поместить ключевое слово permit_sasl_authenticated
достаточно близко к началу списка ограничений, чтобы аутентифицированный
клиент не был случайно отвергнут из-за несоответствия какому-то другому правилу
(например, reject_unauth_destination).
Настройка SMTP-аутентификации на стороне клиента
Для настройки SMTP-аутентификации для клиента необходимо выполнить
следующее:
1) запросить у удаленного сервера список поддерживаемых механизмов
аутентификации;
2) включить SMTP-аутентификацию на клиентской части;
3) предоставить файл для хранения верительных данных;
4) настроить postfix на работу с файлом верительных данных;
5) отключить ненадежные механизмы аутентификации.
226
ЛКНВ.11100-01 90 01
Клиентская ПЭВМ должна поддерживать механизмы аутентификации,
поддерживаемые сервером. Для получения списка механизмов аутентификации
необходимо подключиться к почтовому серверу и отправить приветствие EHLO с
помощью следующих команд:
$ telnet mail.remoteexample.com 25
EHLO mail.example.com
По умолчанию SMTP-аутентификация на стороне клиента выключена.
Для того чтобы включить SMTP-аутентификацию необходимо в конфигурационный
файл main.cf добавить следующую запись:
smtp_sasl_auth_enable = yes
После включения аутентификации на клиентской ПЭВМ необходимо сообщить
серверу postfix, где следует искать данные, необходимые для аутентификации, и
какой из механизмов (из предлагаемых удаленным сервером) postfix может
использовать.
Хранение верительных данных
Необходимо подготовить данные, которые клиент 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
227
ЛКНВ.11100-01 90 01
После редактирования файла 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
Отключение некоторых механизмов аутентификации
Для отключения использования ненадежных механизмов следует указать в
параметре smtp_sasl_security_options список (через запятую) типов механизмов,
которые клиент не может использовать. По умолчанию параметр
smtp_sasl_security_options установлен в значение «noanonymous», но по
возможности (если сервер поддерживает механизм с шифрованием, такой как
DIGEST-MD5 или CRAM-MD5) следует также отключить использование механизмов
открытого текста. Для этого необходимо добавить в файл main.cf следующую
строку:
smtp_sasl_security_options = noanonymous, noplaintext
228
ЛКНВ.11100-01 90 01
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 допускает любых получателей
для клиентов, которые определены в параметре конфигурации mynet-works,
для остальных же разрешены получатели в доменах из relay_domains и
mydomains);
5) smtpd_data_restrictions триггер выявляет клиенты, которые
отправляют содержимое письма прежде, чем postfix ответит на команду DATA
(Postfix выполняет это посредством трассировки DATA, когда клиент
отправляет команду на сервер, по умолчанию ограничения нет);
6) smtpd_etrn_restrictions специальный триггер может ограничить
клиенты, которые могут запрашивать у postfix очистку очереди сообщений
(по умолчанию всем клиентам разрешено выдавать команду ETRN).
229
ЛКНВ.11100-01 90 01
В 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 для
ускорения доставки).
Переключаемые ограничения работают как переключатели, при активации
которых они проверяют выполнение некоторого условия. К переключаемым
ограничениям относятся следующие:
1) smtpd_helo_required ограничение, требующее от клиентов отправки
команды HELO (или EHLO) в начале сеанса SMTP (наличия команды
HELO/EHLO требуют RFC 821 и RFC 2821);
2) strict_rfc821_envelopes ограничение, регулирующее степень
терпимости postfix к ошибкам в адресах, указанных в команде MAIL FROM
(отправитель конверта) или RCPT TO;
230
ЛКНВ.11100-01 90 01
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;
5) ETRN!команды ограничение, накладываемое на клиенты, которые могут
выдавать команды ETRN;
6) проверка заголовка – ограничение, регулирующее заголовки сообщений;
7) проверка тела ограничения, накладываемые на текст, который может
появляться в строках тела сообщения;
8) черные списки DNSBL – черные списки, ограничивающие соединения от IP-
адресов (клиентов), которые включены в черные списки DNSBL;
9) черные списки RHSBL черные списки, запрещающие те домены
отправителей (конверта), которые присутствуют в черных списках RHSBL.
231
ЛКНВ.11100-01 90 01
Дополнительные параметры контроля спама поддерживают другие
ограничения или возможности, не входящие в функциональность 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
Для включения режима фильтрации почты в postfix в зависимости от наличия в
них нежелательной информации (спам) необходимо выполнить следующую команду:
control postfix filter
8.10.6. Алиасы и преобразование адресов
В postfix для передачи сообщений электронной почты используются алиасы,
которые позволяют создавать псевдонимы для длинных или плохо запоминаемых
адресов электронной почты. Настройка алиасов в postfix осуществляется с помощью
таблиц aliases.
232
ЛКНВ.11100-01 90 01
При установке 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.
Например, снять ограничение можно установив этот параметр в 0:
mailbox_size_limit = 0
Также можно установить требуемый размер, указав в значении параметра
необходимую величину:
mailbox_size_limit = <размер почтового ящика в байтах>
Для настройки размера отправляемого сообщения используется параметр
message_size_limit:
message_size_limit = <размер сообщения в байтах>
233
ЛКНВ.11100-01 90 01
Для настройки виртуальных аккаунтов используется параметр
virtual_mailbox_limit:
virtual_mailbox_limit= <размер почтового ящика виртуального
аккаунта в байтах>
Соединение удаленных офисов (OpenVPN)
ОС Альт 8 СП предоставляет возможность безопасного соединения удаленных
офисов используя технологию VPN (англ. Virtual Private Network – виртуальная
частная сеть), которая позволяет организовать безопасные шифрованные соединения
через публичные сети (например, Интернет) между удаленными офисами или
локальной сетью и удаленными пользователями. Таким образом, можно связать
различные офисы организации, что, делает работу с документами, расположенными
в сети удаленного офиса, более удобной.
Помимо соединения целых офисов, также существует возможность
организовать доступ в офисную сеть для работы в ней извне. Это означает, например,
что сотрудник может работать в своем привычном окружении, даже находясь в
командировке или просто из дома.
8.11.1. Общие сведения об OpenVPN
OpenVPN свободная реализация технологии виртуальной частной сети (VPN)
с открытым исходным кодом для создания зашифрованных каналов типа точка-точка
или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения
между компьютерами, находящимися за NAT-firewall, без необходимости изменения
их настроек.
Для обеспечения безопасности управляющего канала и потока данных
OpenVPN использует библиотеку OpenSSL. Это позволяет задействовать весь набор
алгоритмов шифрования, доступных в данной библиотеке. Также может
использоваться пакетная авторизация HMAC, для обеспечения большей
безопасности, и аппаратное ускорение для улучшения производительности
шифрования. Эта библиотека использует OpenSSL, а точнее протоколы
SSLv3/TLSv1.2.
234
ЛКНВ.11100-01 90 01
Аутентификация в 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/ каталог для хранения ключей (информации
ограниченного доступа).
8.11.2. Настройка OpenVPN-сервера в ЦУС
Для организации VPN соединения на стороне сервера предусмотрен модуль
ЦУС «OpenVPN-сервер» (пакет alterator-openvpn-server) из раздела «Серверы»
(рис. 120).
Используя модуль «OpenVPN-сервер» можно:
- включить/отключить OpenVPN-сервер;
- настроить параметры сервера: тип, сети сервера, использование сжатия и т.д.;
- управлять сертификатами сервера;
- настроить сети клиентов.
235
ЛКНВ.11100-01 90 01
Особое внимание при планировании и настройке подключений следует
обратить на используемые сети. Они не должны пересекаться.
Рис. 120
Для создания соединения необходимо установить флаг «Включить службу
OpenVPN», выбрать тип подключения: маршрутизируемое (используется TUN) или
через мост (используется TAP), и проверить открываемую по соединению сеть
(обычно это локальная сеть в виде IP-адреса и маски подсети).
Для настройки сертификата и ключа ssl необходимо нажать на кнопку
«Сертификат и ключ ssl..». Откроется окно модуля «Управление ключами SSL»
(пакет alterator-sslkey) (рис. 121).
Здесь нужно заполнить поле «Общее имя (CN)» и поле «Страна (С)»
(прописными буквами), отметить пункт «(Пере)создать ключ и запрос на подпись» и
нажать на кнопку «Подтвердить». После чего станет активной кнопка «Забрать запрос
на подпись» (рис. 122).
236
ЛКНВ.11100-01 90 01
Рис. 121
Рис. 122
Если нажать на кнопку «Забрать запрос на подпись» (рис. 122), появится
диалоговое окно с предложением сохранить файл openvpn-server.csr. Необходимо
сохранить этот файл на диске.
В модуле «Управление ключами SSL» появился новый ключ «openvpn-server
(Нет сертификата)» (рис. 123).
Чтобы подписать сертификат, необходимо перейти в модуль «Удостоверяющий
Центр» «Управление сертификатами», нажать на кнопку «Обзор», указать путь до
полученного файла openvpn-server.csr и загрузить запрос (рис. 124).
237
ЛКНВ.11100-01 90 01
Рис. 123
Рис. 124
В результате на экране появится две группы цифр и кнопка «Подписать».
Необходимо нажать на кнопку «Подписать» и сохранить файл output.pem
(подписанный сертификат) (рис. 125).
Рис. 125
238
ЛКНВ.11100-01 90 01
Далее в разделе «Управление ключами SSL», необходимо выделить ключ
«openvpn-server (Нет сертификата)» и нажать на кнопку «Изменить».
В появившемся окне, в пункте «Положить сертификат, подписанный УЦ» нужно
нажать на кнопку «Обзор», указать путь до файла output.pem и нажать на кнопку
«Положить» (рис. 126).
Рис. 126
В модуле «Управление ключами SSL», видно, что изменился ключ
«openvpn-server (истекает_и_дата)». Ключ создан и подписан.
Для того чтобы положить сертификат удостоверяющего центра (УЦ),
необходимо найти его в модуле «Удостоверяющий Центр» ЦУС, нажать на ссылку
«Управление УЦ» и забрать сертификат, нажав на ссылку «Сертификат:
ca-root.pem» (рис. 127).
Рис. 127
В модуле «OpenVPN-сервер», в графе «Положить сертификат УЦ:» при
помощи кнопки «Обзор» указать путь к файлу ca-root.pem и нажать на кнопку
«Положить» (рис. 128).
Рис. 128
Появится сообщение: «Сертификат УЦ успешно загружен».
239
ЛКНВ.11100-01 90 01
Для включения OpenVPN необходимо отметить пункт «Включить службу
OpenVPN» и нажать на кнопку «Применить».
Если необходимо организовать защищенное соединение между двумя
локальными сетями, воспользуйтесь модулем «OpenVPN-соединения» (раздел
«Сеть») (п. 8.11.3).
8.11.3. Настройка клиентов в ЦУС
Со стороны клиента соединение настраивается в модуле ЦУС
«OpenVPN-соединения» (пакет alterator-net-openvpn) из раздела «Сеть». Доступ к
настроенной приватной сети могут получить пользователи, подписавшие свои ключи
и получившие сертификат в удостоверяющем центре на том же сервере.
Для создания нового соединения необходимо отметить пункт «Сетевой туннель
(TUN)» или «Виртуальное Ethernet устройство (TAP)» и нажать на кнопку «Создать
соединение» (рис. 129). Должен быть выбран тот же тип, что и на стороне сервера.
Рис. 129
Обратите внимание, что на стороне клиента, должен быть выбран тот же тип
виртуального устройства, что и на стороне сервера. Для большинства случаев
подходит маршрутизируемое подключение.
Помимо этого, нужно подписать ключ openvpn в модуле «Удостоверяющий
Центр» (пакет alterator-ca) из раздела «Система».
В результате станут доступны настройки соединения. На клиенте в модуле
«OpenVPN-соединение» необходимо указать:
- состояние – «запустить»;
- сервер – IP-адрес сервера или домен;
- порт – 1194;
- ключ – выбрать подписанный на сервере ключ.
240
ЛКНВ.11100-01 90 01
Для применения настроек, нажать на кнопку «Применить». Состояние с
«Выключено» должно поменяться на «Включено» (рис. 130).
Рис. 130
Проверить, появилось ли соединение с сервером можно командой
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
241
ЛКНВ.11100-01 90 01
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
При запуске сервиса, демон 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/*
242
ЛКНВ.11100-01 90 01
В файле конфигурации должны быть указаны:
- 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
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
243
ЛКНВ.11100-01 90 01
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 текстовый файл, база с действующими и
отозванными сертификатами;
- 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) ввести пароль для закрытого ключа и ответить на запросы о владельце
ключа;
244
ЛКНВ.11100-01 90 01
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
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
245
ЛКНВ.11100-01 90 01
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
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 действующий (валидный) ключ.
246
ЛКНВ.11100-01 90 01
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.
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).
247
ЛКНВ.11100-01 90 01
Однако некоторые записи из раздела 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
В текущей директории будет создан каталог pki c вложенными каталогами для
ключей и запросов.
Дальнейшие действия также необходимо выполнять в текущей директории,
иначе утилита будет выводить ошибки из-за отсутствия pki каталога в текущей
директории при запуске easyrsa команды.
Создание ключей центра сертификации с помощью Easy-Rsa скриптов
Для создания ключей центра сертификации необходимо создать корневой
сертификат. Для этого необходимо запустить easyrsa с помощью следующей
команды:
# easyrsa build-ca
Далее будет выведен процесс генерации, в ходе которого нужно указать
сложный пароль и Common Name сервера, например, CA-ORG:
Generating a 2048 bit RSA private key
......................................................+++
248
ЛКНВ.11100-01 90 01
......................................................+++
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
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 секретный ключ центра сертификации.
249
ЛКНВ.11100-01 90 01
Создание ключей сервера с помощью 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
Создание запроса без парольного ключа для клиента выполняется с помощью
следующей команды: 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
250
ЛКНВ.11100-01 90 01
Для создания пары ключ/сертификат минуя создание запросов и подписи
необходимо выполнить команду:
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
Одноименный файл ключа не может быть создан, пока не отозван старый. Для
исключения возможности mitm атаки служит параметр remote-cert-tls server.
Список валидных и отозванных сертификатов можно посмотреть в файле
./pki/index.txt. Начало строки описания каждого сертификата начинается с букв
V или R, что значит Valid и Revoked (действующий и отозванный).
Настройка удаленного подключения
Для получения удаленного доступа к другим ПЭВМ и предоставления такого
доступа в ОС Альт 8 СП используется протокол SSH (Secure Shell).
SSH реализует соединение с удаленным компьютером, защищающее от
следующих угроз:
- прослушивание данных, передаваемых по этому соединению;
- манипулирование данными на пути от клиента к серверу;
251
ЛКНВ.11100-01 90 01
- подмена клиента либо сервера путем манипулирования 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.
8.12.1. OpenSSH, сервер протокола SSH (sshd)
OpenSSH Daemon (sshd) программа-сервер, обслуживающая запросы
программы-клиента ssh. Вместе эти программы заменяют rlogin и rsh и обеспечивают
защищенную и кодированную связь между двумя непроверенными компьютерами
через незащищенную сеть.
sshd это служба, принимающая запросы на соединения от клиентов. Для
каждого нового соединения создается помощью вызова «fork») новый экземпляр
службы. Ответвленный экземпляр обрабатывает обмен ключами, кодирование,
аутентификацию, выполнение команд и обмен данными.
Параметры определяются при помощи ключей командной строки или файла
конфигурации (по умолчанию sshd_config). Ключи командной строки имеют
больший приоритет, чем значения, указанные в файле конфигурации. При получении
сигнала отбоя SIGHUP перечитывает свой файл конфигурации путем запуска
252
ЛКНВ.11100-01 90 01
собственной копии с тем же самым именем, с которым был запущен, например,
/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
Режим отладки. Сервер посылает расширенную
отладочную информацию в файл журнала событий
системы и не переходит в фоновый режим работы.
Сервер не создает дочерних процессов и
обрабатывает только одно соединение. Параметр
предназначен только для отладки работы сервера.
Несколько параметров -d указанных один за
другим, повышают уровень отладки. Максимум
это 3.
-e
Направлять вывод в консоль (stderr) вместо
механизма журналирования событий системы.
-f файл_конфигурации
Определяет имя файла конфигурации (по
умолчанию /etc/openssh/sshd_config). Не
работает, если нет файла конфигурации.
-g
время_задержки_регистрации
Определяет период, в течение которого клиент
должен себя идентифицировать (по умолчанию
120 секунд). Если клиент не смог идентифицировать
себя в течение этого времени, экземпляр сервера
прекращает свою работу. Значение равное нулю
отменяет ограничение на время ожидания.
253
ЛКНВ.11100-01 90 01
Продолжение таблицы 6
Ключ
Описание
-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 может быть оправдано.
-k
частота_генерации_ключа
Определяет, как часто будет регенерироваться ключ
сервера протокола версии 1 (по умолчанию 3600
секунд один раз в час). Значение ноль означает, что
ключ никогда не будет регенерирован.
-o директива
Позволяет указывать директивы в формате файла
конфигурации, например, такие, для которых нет
соответствующего ключа командной строки.
Директивы файла конфигурации описаны в
sshd_config.
-p порт
Порт, на котором сервер будет ожидать соединения
(по умолчанию 22). Возможно указание
нескольких ключей с разными портами. Если
данный ключ указан, параметр Port файла
конфигурации игнорируется, однако порты,
указанные в ListenAddress имеют больший
приоритет, чем указанные в командной строке.
254
ЛКНВ.11100-01 90 01
Окончание таблицы 6
Ключ
Описание
-q
Не заносить в системный журнал регистрации событий
никакой информации. В обычном режиме в нем
фиксируется подключение, аутентификация и разрыв
каждого соединения.
-t
Режим тестирования. Выполняется только проверка
соответствия файла конфигурации и готовность
ключей. Полезно для проверки состояния службы
после обновления, при котором были изменены файлы
конфигурации.
-u длина
Размер поля в структуре utmp хранящей имя
удаленного хоста. Если разрешенное имя хоста
превышает указанное значение, то взамен будет
использован десятичное представление IP-адреса
через точку. Это позволяет уникально
идентифицировать машины со слишком длинными
именами.
Указание -u0 включает использование в файле utmp
IP-адресов во всех случаях. При этом будет
производить DNS-запросы только если это явно
требуется конфигурацией
(from=”pattern-list”) или механизмом
аутентификации (либо RhostsRSAAuthentication
либо HostbasedAuthentication). Использование
DNS также обязательно в случае задания параметрам
AllowUsers и DenyUsers значения в формате
USER@HOST.
Аутентификация
Служба OpenSSH SSH поддерживает версии протокола SSH 1 и 2. При этом
использование протокола версии 1 крайне не рекомендуется. Запретить
использование одного протокола версии 1 можно, указав в параметре Protocol файла
sshd_config:
Protocol 2
Протокол 2 поддерживает ключи DSA, ECDSA и RSA; протокол 1
поддерживает только ключи RSA. Независимо от протокола, каждый
подключающийся хост имеет собственный, обычно 2048-битный
идентифицирующий его ключ.
255
ЛКНВ.11100-01 90 01
Для протокола версии 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).
Далее, сервер и клиент переходят в режим аутентификации. Клиент пытается
аутентифицировать себя по своему хосту, открытому ключу, паролю или с помощью
беспарольного механизма («вызов-ответ»).
Независимо от типа аутентификации служба проверяет доступность
соответствующей учетной записи в системе. Так, она может быть заблокирована
посредством добавления ее в параметр DenyUsers или ее группы в DenyGroups. Для
запрета только аутентификации по паролю укажите в файле passwd 'NP' или '*NP*'.
После успешной аутентификации себя клиентом связь переходит в режим
подготовки сеанса. В этот момент клиент может запросить такие вещи, как выделение
псевдо-терминала, перенаправление соединения Х11, перенаправление соединения
TCP/IP или перенаправление соединения агента аутентификации через защищенный
канал.
256
ЛКНВ.11100-01 90 01
Наконец, клиент запрашивает оболочку или выполнение команды, после чего
стороны входят в режим сеанса. В этом режиме, каждая из сторон в любой момент
может пересылать данные и эти данные будут переданы оболочке или команде на
стороне сервера и на пользовательский терминал соответственно.
По завершении работы пользовательской программы и закрытии всех
перенаправленных Х11 и других соединений сервер посылает клиенту команду со
статусом выхода и сеанс завершается.
Вход в систему
После успешной аутентификации пользователя выполняются следующие
действия:
- если регистрация в системе произведена на терминале (tty) и не указана
никакая команда, то отображается время последнего входа в систему и
содержимое файла /etc/motd (если только это не отключено в файле
конфигурации или ~/.hushlogin);
- если регистрация в системе произведена на терминале, записывается время
регистрации;
- проверяется /etc/nologin если он присутствует, выводится его содержимое
и завершается работа (исключение – root);
- осуществляется переход к выполнению с правами обычного пользователя;
- устанавливаются значения основных переменных среды;
- интерпретируется файл ~/.ssh/environment, если таковой имеется, и
пользователям разрешено изменять среду;
- происходит переход в домашний каталог пользователя;
- если имеется файл ~/.ssh/rc, то производится его выполнение, а если нет и
имеется /etc/openssh/sshrc, то выполняется он, в противном случае
выполняется xauth. Файлам rc на стандартный ввод передается протокол
аутентификации Х11 и cookie;
- запускается оболочка пользователя или выполняется указанная команда.
257
ЛКНВ.11100-01 90 01
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
Если этот файл отсутствует, то выполняется /etc/openssh/sshrc, а если
отсутствует и он, то для добавления cookie используется xauth.
Формат файла authorized_keys
Параметр AuthorizedKeysFile файла конфигурации определяет путь к файлу
с открытыми ключами. Значение по умолчанию ~/.ssh/authorized_keys и
~/.ssh/authorized_keys2. Каждая строка файла содержит один ключ (пустые
строки или строки, начинающиеся с символа «#» считаются комментариями и
игнорируются). Открытые ключи протокола 1 (RSA) состоят из следующих полей,
разделенных пробелами: параметры, битность, порядок, модуль, комментарий.
Открытые ключи протокола версии 2 состоят из полей: параметр, тип ключа, ключ в
виде base64, комментарий. Поля параметров необязательны; их отсутствие
определяется наличием в начале строки цифры (поле параметра никогда не
начинается с цифры). Поля битности, порядка, модуля и комментарии определяют
258
ЛКНВ.11100-01 90 01
ключ 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=”команда” выполнять команду при каждом использовании
данного ключа для аутентификации. Команда, передаваемая пользователем,
будет игнорироваться. Команда выполняется на псевдо-терминале, если
последний запрашивается клиентом; в противном случае она выполняется
без терминала. Если требуется «чистый» 8-битный канал, запрашивать
псевдо-терминал или указывать no-pty нельзя. В команду может быть
включена кавычка, предваренная обратной косой чертой. Данный параметр
полезен для ограничения использования определенных RSA-ключей.
Примером может служить ключ, по которому можно выполнять удаленные
операции резервного копирования и ничего более. Учтите, что клиент по-
прежнему может запросить перенаправление TCP и (или) X11, если только
это не запрещено явно. Команда, запрашиваемая клиентом, заносится в
переменную SSH_ORIGINAL_COMMAND. Заметьте, что данный параметр
относится к выполнению оболочки, команды или подсистемы;
259
ЛКНВ.11100-01 90 01
- environment=”ПЕРЕМЕННАЯ=значение” добавить переменную в среду (или
переопределить ее значение) при регистрации в системе с использованием
данного ключа. Допускается указание нескольких таких директив. По
умолчанию изменение переменных среды таким образом отключено. За его
включение отвечает параметр PermitUserEnvironment. Этот параметр
отключается автоматически при включении UseLogin;
- From=”список-шаблонов” если параметр определен, то в дополнение к
прохождению аутентификации по открытому ключу каноническое имя
удаленного хоста должно соответствовать одному из шаблонов в списке
(шаблоны указываются через запятую). Цель этого параметра увеличение
степени защиты: если частный ключ хоста каким-либо образом удастся
похитить, то он позволит злоумышленнику войти в систему из любой точки
мира. Этот дополнительный параметр делает использование ворованных
ключей более затруднительным (кроме перехвата ключа, требуется взлом
серверов имен и (или) маршрутизаторов). Смотрите секцию ШАБЛОНЫ в
ssh_config;
- no-agent-forwarding запретить перенаправление агента аутентификации
при аутентификации данным ключом;
- no-port-forwarding запретить перенаправление TCP/IP при
аутентификации данным ключом. Любой запрос на перенаправление порта
приведет к получению клиентом сообщения об ошибке. Это может быть
использовано, например, вместе с параметром command;
- no-pty запретить назначение терминала (запросы на назначение псевдо-
терминала не будут удовлетворены);
- no-X11-forwarding запретить перенаправление Х11 при аутентификации
данным ключом. Любой запрос на перенаправление порта возвратит клиенту
сообщение об ошибке;
- permitopen=”хост:порт” для функции перенаправления данных с
локального клиентского порта на порт удаленной системы (выполняемого
при указании ssh L) ограничить набор возможных целей для
260
ЛКНВ.11100-01 90 01
перенаправления указанной машиной и портом. Для указания адресов 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
Формат файла ssh_known_hosts
В файлах /etc/openssh/ssh_known_hosts и ~/.ssh/known_hosts хранятся
открытые ключи всех машин, с которыми когда-либо устанавливалась связь.
Глобальный файл должен быть подготовлен администратором (это необязательно),
пользовательский файл поддерживается автоматически: каждый раз, когда поступает
запрос на соединение от неизвестной машины, ее ключ автоматически заносится в
пользовательский файл.
Каждая строка в этом файле содержит следующие поля: имена хостов,
битность, порядок, модуль, комментарий. Поля разделены пробелами.
Имена хостов это разделенный запятыми список шаблонов (символы
подстановки ('*' и '?'); каждый шаблон сопоставляется с каноническим именем
машины (при аутентификации клиента) или с именем, которое указано пользователем
(при аутентификации сервера). Этот шаблон может также быть предварен знаком '!'
для обозначения отрицания: если имя машины соответствует отрицаемому шаблону,
261
ЛКНВ.11100-01 90 01
оно будет отвергнуто (этой строкой) даже если оно соответствует другому шаблону в
этой же строке. Также можно, заключив имя хоста или IP-адрес в квадратные скобки
'[' и '],' – через ':' указать нестандартный порт.
Вместо имен хостов можно записывать их хеши. Это позволит скрыть их от
злоумышленника в случае попадания файла в его руки. Для различия хешей от имен
хостов первые предваряются символом '|'. На одной строке может быть не больше
одного хеша, операция отрицания в этом случае не доступна.
Разрядность, порядок и модуль копируются из ключа хоста RSA, например,
/etc/openssh/ssh_host_key.pub Необязательное поле комментария занимает всю
оставшуюся часть строки и игнорируется.
Комментариями также считаются пустые и строки, начинающиеся с «#».
Идентификация машины принимается, если любая совпавшая строка содержит
правильный ключ. Таким образом, можно (хотя это не рекомендуется) иметь
несколько строк или различных ключей для одного и того же хоста. Это неизбежно
случается при помещении в файл кратких форм имен хостов из различных доменов.
В файлах может содержаться противоречивая информация. Идентификация
принимается, если адекватная информация имеется в любом из них.
Заметьте, что строки в этих файлах, обычно имеют длину в несколько сотен
символов и, очевидно, не стоит вводить имена хостов вручную. Вместо этого их
можно сгенерировать при помощи сценария оболочки или взять из файла
/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.....=
262
ЛКНВ.11100-01 90 01
Файлы
~/.hushlogin позволяет отключить вывод времени последнего входа в
систему и содержимого файла /etc/motd, если в файле конфигурации включены
соответственно PrintLastLog и PrintMotd. Файл не влияет на вывод содержимого
Banner.
~/.rhosts используется для аутентификации по хосту. На некоторых
машинах, если каталог пользователя находится на разделе NFS, для того чтобы он
был доступен пользователю root, он должен быть доступен для чтения всем. Файл
должен принадлежать пользователю и не должен быть доступен для записи другим.
Рекомендуемый набор прав доступа в общем случае чтение/запись для пользователя
и недоступность для других.
~/.shosts аналогичен файлу .rhosts, но позволяет проводить
аутентификацию на основе хоста, не разрешая вход в систему с помощью
rlogin/rsh.
~/.ssh/authorized_keys содержит список открытых ключей
(DSA/ECDSA/RSA), которые могут быть использованы для регистрации данного
пользователя. Формат файла описан выше. Этот файл не очень важен для
злоумышленника, но мы рекомендуем сделать его доступным только пользователю
(чтение/запись).
Если этот файл, каталог ~/.ssh или домашний каталог пользователя доступны
для записи другим пользователям, этот файл может быть изменен или заменен любым
пользователем системы, имеющим сколько угодно мало прав. В этом случае sshd не
будет использовать этот файл, если только параметр StrictModes не имеет значение
«no». Установить рекомендуемый набор прав доступа можно командой chmodgo-w ~/
~/.ssh ~/.ssh/authorized_keys.
~/.ssh/environment этот файл (при его наличии) считывается в среду при
регистрации в системе. Он может содержать только пустые строки, строки
комментария (начинающиеся с «#»), и определения значений переменных в виде:
переменная=значение. Правом на запись этого файла должен обладать только
263
ЛКНВ.11100-01 90 01
пользователь; он не должен быть доступен остальным. Задание переменных среды
отключено по умолчанию, за что отвечает параметр PermitUserEnvironment.
~/.ssh/known_hosts список адресов, к которым когда-либо подключался
пользователь, и которые отсутствуют в общесистемном файле, и соответствующих
им открытых ключей. Формат файла описан выше. Файл должен быть доступен для
записи только владельцу и администратору. Он может также быть доступен для
чтения всем остальным, но это не обязательно.
~/.ssh/rc сценарий инициализации, запускаемый перед запуском оболочки
пользователя или команды. Этот файл должен быть доступен для записи только
пользователю и не должен быть вообще доступен другим.
/etc/hosts.allow и /etc/hosts.deny данные о разрешении и запрете
соединений с хостами для надстроек TCP.
/etc/hosts.equiv используется для аутентификации на основе хоста.
Должен быть доступен для записи только root.
/etc/openssh/moduli модули для схемы Диффи-Хеллмана.
/etc/motd содержимое файла отображается программой login после того как
осуществлен успешный вход в систему, перед запуском команды интерпретатора.
/etc/nologin если существует, подключение будет разрешено только
пользователю с идентификатором root. Любому, кто пытается войти в систему, будет
показано содержимое этого файла, и запросы на регистрацию в качестве не
пользователя с идентификатором root будут отвергнуты. Этот файл должен быть
доступен для чтения всем.
/etc/shosts.equiv аналогичен hosts.equiv, но позволяет проводить
аутентификацию на основе хоста, не разрешая вход в систему с помощью
rlogin/rsh.
/etc/openssh/ssh_known_hosts общесистемный список известных хостов и
их ключей. Этот файл должен составляться администратором. В него следует
включать открытые ключи всех компьютеров организации. Формат файла описан
выше. Файл должен быть доступен всем для чтения и владельцу/администратору для
записи.
264
ЛКНВ.11100-01 90 01
/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 для записи.
/var/empty каталог chroot используемый при отделении полномочий на
предаутентификационном этапе. В папке не должно быть никаких файлов, она
должна принадлежать только root и не должна быть доступна другим для записи.
/var/run/sshd.pid идентификатор процесса, ожидающего запросов на
подключение (если одновременно работает несколько экземпляров служб для
нескольких портов, в него записывается идентификатор экземпляра, запущенного
последним). Содержимое этого файла может не быть защищено и может быть
доступно всем.
265
ЛКНВ.11100-01 90 01
8.12.2. SSHD_CONFIG
Описание файла конфигурации
Служба sshd считывает данные о конфигурации из файла
/etc/openssh/sshd_config (или из файла, указанного в командной строке при
помощи параметра -f). Файл содержит пары «параметр-значение», по одной на
строку. Пустые строки и строки, начинающиеся с «#» интерпретируются как
комментарии. В случае, если аргументы содержат пробелы, они должны быть
заключены в двойные кавычки (”).
Файл /etc/openssh/sshd_config должен быть доступен для записи только
пользователю root, и рекомендуется делать его доступным для чтения всем.
В таблице 7 приведены описания возможных параметров (регистр имен
аргументов учитывается, регистр имен параметров – нет).
Т а б л и ц а 7 Описание параметров
Параметр
Описание
AcceptEnv
Список переменных среды, которые, будучи заданы клиентом,
будут копироваться в environ сеанса. Соответствующая
настройка на стороне клиента выполняется параметром
SendEnv и описана в ssh_config. Переменные указываются по
имени, допускаются символы подстановки «*» и «?» Несколько
переменных среды можно указывать через пробелы или в
нескольких параметрах AcceptEnv. Данный параметр введен
для предотвращения обхода ограничений среды пользователя
посредством изменения значений переменных среды. По
умолчанию не принимаются никакие переменные среды.
AddressFamily
Семейство адресов, которое должна использовать служба sshd.
Допустимые значения: «any» «inet» (только IPv4) и «inet6»
(только IPv6). Значение по умолчанию – «any».
AllowGroups
Список шаблонов имен групп через пробел. Если параметр
определен, регистрация в системе разрешается только тем
пользователям, чья главная или вспомогательная группы
соответствуют какому-либо из шаблонов. Допустимы только
имена групп. По умолчанию разрешена регистрация в системе
для членов всех групп. Разрешающие/запрещающие
(allow/deny) директивы обрабатываются в следующем
порядке: DenyUsers AllowUsers DenyGroups AllowGroups.
266
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
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.
Banner
Содержимое указанного файла будет отправлено
удаленному пользователю прежде, чем будет разрешена
аутентификация. Этот параметр доступен только с
протоколом версии 2. По умолчанию не выводится
никакой информации.
ChallengeResponseA
uthentication
Определяет, разрешается ли беспарольная аутентификация
«вызов-ответ». Поддерживаются все схемы
аутентификации login.conf. Значение по умолчанию –
«no».
267
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
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».
DenyGroups
Список шаблонов имен групп через пробел. Если параметр
определен, регистрация в системе пользователям, чья
главная или вспомогательная группа соответствуют
содержащимся в списке шаблонам, не разрешается.
Допустимы только имена групп. По умолчанию
регистрация в системе разрешена для всех групп.
268
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
Разрешающие/запрещающие (allow/deny) директивы
обрабатываются в следующем порядке: DenyUsers
AllowUsers DenyGroups AllowGroups.
DenyUsers
Список имен пользователей через пробел. Если параметр
определен, регистрация в системе пользователей, чьи
имена соответствуют одному из шаблонов, будет
запрещена. Допустимы только имена пользователей;
числовой идентификатор пользователя не распознается.
По умолчанию разрешена регистрация в системе для всех
пользователей. Если шаблон указывается в форме
ПОЛЬЗОВАТЕЛЬ@ХОСТ, его две части проверяются отдельно,
таким образом, запрещается доступ только пользователям
с указанными именами, подключающимся с указанных
хостов. Разрешающие/запрещающие (allow/deny)
директивы обрабатываются в следующем порядке:
DenyUsers AllowUsers DenyGroups AllowGroups.
ForceCommand
Выполнять указанную команду после регистрации
пользователя в системе, игнорируя команду,
запрашиваемую им. Команда запускается оболочкой
пользователя с ключом -c. Это относится к выполнению
оболочки, команды или подсистемы, обычно применяется
внутри блока Match. Команда, запрошенная
пользователем, помещается в переменную среды
SSH_ORIGINAL_COMMAND.
GatewayPorts
Определяет, разрешено ли удаленным машинам
подключение к портам, выделенным для туннелирования
трафика клиентов. По умолчанию sshd делает доступными
порты, используемые для туннелирования инициируемого
сервером, только для кольцевого (loopback) адреса, то есть
удаленные машины подключаться к перенаправляемым
портам не могут.
С помощью данного параметра можно исправить такое
положение дел. Значение «no» разрешает туннелирование
только в рамках данной системы, «yes» разрешает
туннелирование для хостов, соответствующих шаблону, а
«clientspecified» позволяет клиенту самостоятельно
выбирать адрес для туннелирования. Значение по
умолчанию – «no».
GSSAPIAuthentication
Допускать аутентификацию по GSSAPI. Значение по
умолчанию «no» Данный параметр относится только к
протоколу версии 2.
269
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
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».
IgnoreUserKnownHosts
Не учитывать содержимое файла ~/.ssh/known_hosts
при RhostsRSAAuthentication или
HostbasedAuthentication. Значение по умолчанию
«no».
270
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
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]:порт
Если порт не указан, sshd будет ожидать соединения
на указанном адресе и на всех указанных ранее (но не
после) в параметре Port портах. По умолчанию
ожидается соединение на всех локальных адресах.
271
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
Допустимо указание нескольких параметров.
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,
GatewayPorts, GSSAPIAuthentication,
HostbasedAuthentication,
HostbasedUsesNameFromPacketOnly,
KbdInteractiveAuthentication,
272
ЛКНВ.11100-01 90 01
Продолжение таблицы 7
Параметр
Описание
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».
273
ЛКНВ.11100-01 90 01
Продолжение таблицы 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».
Продолжение таблицы 7
Параметр
Описание
274
ЛКНВ.11100-01 90 01
Посредством изменения переменных среды
пользователи могут обойти ограничения своих
полномочий. Например, с помощью механизма
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
Проверять наборы прав доступа и принадлежность
конфигурационных файлов и домашнего каталога
пользователя перед разрешением регистрации в
системе.
Продолжение таблицы 7
Параметр
Описание
275
ЛКНВ.11100-01 90 01
Это рекомендуется выполнять потому, что новички
иногда оставляют свои каталоги или файлы доступными
для записи всем. Значение по умолчанию – «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) данный параметр будет
отключен после прохождения аутентификации.
Продолжение таблицы 7
Параметр
Описание
UsePAM
Включить интерфейс модулей аутентификации
Pluggable Authentication Module. При значении «yes»
276
ЛКНВ.11100-01 90 01
аутентификация 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
туннелирования.
Окончание таблицы 7
Параметр
Описание
Для большей защиты пользователей администратор
может запретить туннелирование, установив значение
«no».
Туннелирование X11 отключается автоматически при
277
ЛКНВ.11100-01 90 01
включении 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 недели.
278
ЛКНВ.11100-01 90 01
Итоговое время получается в результате сложения всех выражений. Примеры:
- 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
279
ЛКНВ.11100-01 90 01
Настройка 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
280
ЛКНВ.11100-01 90 01
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
281
ЛКНВ.11100-01 90 01
П р и м е ч а н и я :
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).
282
ЛКНВ.11100-01 90 01
8.13.7. Кеширование DNS-запросов
Squid содержит встроенный минисервер запросов DNS. Он выступает как
посредник между Squid и внешними DNS-серверами. При запуске Squid производит
начальное тестирование доступности DNS (можно отключить, используя опцию
D). Время кеширования удачного DNS-запроса по умолчанию составляет шесть
часов.
Доступ к службам из сети Интернет
8.14.1. Внешние сети
Сервер предоставляет возможность организовать доступ к своим службам
извне. Например, можно предоставить доступ к корпоративному веб-сайту из сети
Интернет. Для обеспечения такой возможности необходимо разрешить входящие
соединения на внешних интерфейсах. По умолчанию такие соединения блокируются.
Для разрешения внешних и внутренних входящих соединений предусмотрен
раздел ЦУС «Брандмауэр». В списке «Разрешить входящие соединения на внешних
интерфейсах» модуля «Внешние сети» (пакет alterator-net-iptables) перечислены
наиболее часто используемые службы, отметив которые, можно сделать их
доступными для соединений на внешних сетевых интерфейсах (рис. 131). Если
необходимо предоставить доступ к службе, отсутствующей в списке, то нужно задать
используемые этой службой порты в соответствующих полях.
Можно выбрать один из двух режимов работы:
- роутер перенаправление пакетов между сетевыми интерфейсами
происходит без трансляции сетевых адресов;
- шлюз (NAT) в этом режиме будет настроена трансляция сетевых адресов
(NAT) при перенаправлении пакетов на внешние интерфейсы.
Использование этого режима имеет смысл, если на компьютере настроен, по
крайней мере, один внешний и один внутренний интерфейс.
283
ЛКНВ.11100-01 90 01
Рис. 131 Модуль «Внешние сети»
П р и м е ч а н и я :
1. В любом режиме включено только перенаправление пакетов с внутренних
интерфейсов. Перенаправление пакетов с внешних интерфейсов всегда выключено.
2. Все внутренние интерфейсы открыты для любых входящих соединений.
8.14.2. Список блокируемых хостов
Модуль ЦУС «Список блокируемых хостов» (пакет alterator-net-bl) позволяет
настроить блокировку любого сетевого трафика с указанных в списке узлов
(входящий, исходящий и пересылаемый).
Блокирование трафика с указанных в списке узлов начинается после установки
флага «Использовать черный список» (рис. 132).
Для добавления блокируемого узла необходимо ввести IP-адрес в поле
«Добавить IP-адрес сети или хоста:» и нажать на кнопку «Добавить».
Для удаления узла необходимо выбрать его из списка и нажать на кнопку
«Удалить».
284
ЛКНВ.11100-01 90 01
Рис. 132 Модуль «Список блокируемых хостов»
Статистика
Сетевой трафик
Все входящие и исходящие с сервера сетевые пакеты могут подсчитываться, и
выводится по запросу для анализа.
Модуль ЦУС «Сетевой трафик» (пакет alterator-ulogd) из раздела «Статистика»
предназначен для просмотра статистики входящих и исходящих с сервера сетевых
пакетов. Данный модуль позволяет оценить итоговый объем полученных и
переданных данных за все время работы сервера, за определенный период времени и
по каждой службе отдельно.
Для включения сбора данных необходимо установить флаг «Включить сбор
данных», и нажать на кнопку «Применить» (рис. 133).
Для просмотра статистики указывается период виде начальной и конечной
дат). Дата указывается в формате YYYY-MM-DD (год-месяц-день) или выбирается
из календаря справа от поля ввода даты. Из списка доступных сетевых интерфейсов
необходимо выбрать интересующий и нажать на кнопку «Показать» (рис. 133).
Трафик на указанном интерфейсе за заданный период показывается в виде:
- служба (название протокола);
- входящий трафик в Кбайтах;
- исходящий трафик в Кбайтах.
285
ЛКНВ.11100-01 90 01
Рис. 133 Просмотр статистики входящих и исходящих пакетов
Прокси-сервер
Пересылка каждого запроса во внешнюю сеть фиксируется прокси-сервером в
специальном журнале. На основании этих данных автоматически формируются
отчеты о статистике использования ресурсов сети, в том числе потраченного времени
и количества переданных данных (трафика).
Статистика не собирается по умолчанию. Включить ее сбор следует в модуле
ЦУС «Прокси-сервер» (пакет alterator-squidmill) из раздела «Статистика».
Для включения сбора статистики прокси-сервера необходимо установить флаг
«Включить сбор данных прокси-сервера» (рис. 134).
Рис. 134 Настройка сбора статистики прокси-сервера
286
ЛКНВ.11100-01 90 01
В том случае, если на прокси-сервере производилась аутентификация
пользователей, отчеты будут содержать данные об обращениях каждого
пользователя. Иначе отчеты будут формироваться только на основании адресов
локальной сети.
Для показа отчета необходимо задать условия фильтра и нажать на кнопку
«Показать».
Данные в таблице отсортированы по объему трафика в порядке убывания.
Для учета пользователей в статистике необходимо добавить хотя бы одно
правило. Самое очевидное правило – запрет неаутентифицированных пользователей.
Только после этого в статистике начнут показываться пользователи.
Обслуживание системы
Для безотказной работы системы очень важно следить за корректной работой.
Регулярный мониторинг состояния системы, своевременное резервное копирование,
обновление установленного ПО, являются важной частью комплекса работ по
обслуживанию.
8.16.1. Мониторинг состояния системы
Для обеспечения бесперебойной работы системы крайне важно производить
постоянный мониторинг ее состояния. Все события, происходящие с системой,
записываются в журналы, анализ которых помогает избежать сбоев в работе системы
и предоставляет возможность разобраться в причинах некорректной работы.
Для просмотра журналов предназначен модуль ЦУС «Системные журналы»
(пакет alterator-logs) из раздела «Система». Интерфейс позволяет просмотреть
различные типы журналов с возможностью перехода к более старым или более новым
записям.
Различные журналы могут быть выбраны из списка «Журналы» (рис. 135).
287
ЛКНВ.11100-01 90 01
Рис. 135 Модуль «Системные журналы»
Доступны следующие виды журналов:
- брандмауэр отображаются события безопасности, связанные с работой
межсетевого экрана ОС;
- системные сообщения сообщения от системных служб (сообщения с типом
DAEMON).
Каждый журнал может содержать довольно большое количество сообщений.
Уменьшить либо увеличить количество выводимых строк можно, выбрав нужное
значение в списке «Показывать».
8.16.2. Системные службы
Для изменения состояния служб можно использовать модуль ЦУС «Системные
службы» (пакет alterator-services) из раздела «Система». Интерфейс позволяет
изменять текущее состояние службы и, если необходимо, применить опцию запуска
службы при загрузке системы (рис. 136).
После выбора названия службы из списка отображается описание данной
службы, а также текущее состояние: Работает/Остановлена/Неизвестно.
288
ЛКНВ.11100-01 90 01
Рис. 136 Модуль «Системные службы»
8.16.3. Поддержка дополнительных рабочих мест
Модуль ЦУС раздел «Система» «Настройка нескольких рабочих мест»
(пакет alterator-multiseat) графическое средство настройки мультитерминального
режима, позволяющего обеспечить одновременную работу нескольких пользователей
на одном компьютере.
П р и м е ч а н и е . В системе должен использоваться systemd. Также
дисплейный менеджер должен поддерживать концепцию множественных рабочих
мест (seat).
Необходимым условием для организации нескольких рабочих мест является
наличие нескольких видеокарт, одна из которых может быть встроенной. Если вам
нужно три места, потребуется три видеокарты.
Для реальной одновременной работы на нескольких рабочих местах кроме
видеокарты понадобятся мониторы и комплекты клавиатуры/мыши на каждое
рабочее место. Клавиатура и мышь могут быть подключены по USB, возможно через
хаб (при задействовании хаба в мониторе стоит убедиться, что он адекватно работает
при отключении/подключении устройств).
По умолчанию в системе есть единственное рабочее место с именем seat0, к
которому подключены все доступные устройства, они перечислены в списке
«Устройства seat0». Это рабочее место нельзя удалить или изменить.
В списке «Рабочие места» перечислены дополнительные рабочие места (если
они есть), в скобках приводится количество подключенных к данному месту
устройств. Чтобы просмотреть устройства, подключенные к дополнительному
289
ЛКНВ.11100-01 90 01
рабочему месту, необходимо выделить его в списке «Рабочие места», устройства
будут показаны в списке «Устройства рабочего места» (рис. 137).
Активные рабочие места отмечены знаком [+].
Рис. 137
Назначение кнопок:
- «Применить» – сохраняет текущую конфигурацию, активирует ее
(подключает устройства к рабочим местам) и перезагружает компьютер;
- «Отменить» – освобождает все подключенные устройства (возвращает все
устройства на seat0);
- «Очистить все» – удаляет все дополнительные места;
- «Сброс» – восстанавливает последнюю сохраненную конфигурацию.
Для создания дополнительного рабочего места ввести желаемое имя в поле
ввода, расположенное под списком рабочих мест, и нажать на кнопку «Добавить» (см.
рис. 137). Новое рабочее место будет добавлено в список «Рабочие места».
П р и м е ч а н и е . Имя рабочего места может содержать только символы a-z, A-
Z, 0-9, «-» и «_» и должно начинаться с префикса seat. По умолчанию будут
сгенерированы имена: seat1, seat2 и т.д.
Выделить нужное рабочее место в списке «Рабочие места», а в списке
«Устройства seat0» выбрать устройство, которое необходимо назначить выбранному
рабочему месту. Нажать на кнопку «Добавить». Устройство появится в списке
290
ЛКНВ.11100-01 90 01
устройств выбранного рабочего места. К дополнительному рабочему месту
необходимо добавить видеокарту, клавиатуру и мышь.
ВНИМАНИЕ!
Основную видеокарту нельзя переключать на другие рабочие места.
П р и м е ч а н и е . Если в USB-порт вставлен хаб, можно подключить к
рабочему месту хаб целиком. Все устройства, которые уже вставлены в него, или
будут вставлены потом, автоматически унаследуют подключение к нужному
рабочему месту.
Для удаления устройства выделите нужное устройство из списка «Устройства
рабочего места» и нажать на кнопку «Удалить».
Аналогичным образом настраиваются все рабочие места.
Для подключения назначенных устройств к дополнительным рабочим местам
нажать на кнопку «Применить» и подтвердить активацию (рис. 138). Чтобы
настройки вступили в силу необходимо перезагрузить компьютер.
Рис. 138
После перезагрузки на мониторах рабочих мест должны появиться
приглашения к логину в графическую сессию. Пользователи могут одновременно
входить в свои сессии и работать независимо.
ВНИМАНИЕ!
Если после перезагрузки на мониторы не выводится никакая информация, это
означает, что «закрепленная» за seat0 видеокарта была передана на другое рабочее
место.
Чтобы исправить данную проблему необходимо сбросить настройки.
Для этого необходимо залогинится во второй текстовой консоли (Alt+Ctrl+F2) и
удалить дополнительные рабочие места, выполнив команду (от root):
# loginctl flush-devices
Перезагрузить компьютер.
291
ЛКНВ.11100-01 90 01
8.16.4. Обновление системы
После установки системы крайне важно следить за обновлениями ПО.
Обновления для ОС Альт 8 СП могут содержать как исправления, связанные с
безопасностью, так и новый функционал или просто улучшение и ускорение
алгоритмов. В любом случае настоятельно рекомендуется регулярно обновлять
систему для повышения надежности работы системы.
Для автоматизации процесса установки обновлений предусмотрен модуль ЦУС
«Обновление системы» (пакет alterator-updates) из раздела «Система». Здесь можно
включить автоматическое обновление через Интернет с одного из предлагаемых
серверов или задать собственные настройки (рис. 140).
Источник обновлений указывается явно (при выбранном режиме «Обновлять
систему автоматически из сети Интернет») или вычисляется автоматически
(при выбранном режиме «Обновление системы, управляемое сервером» и наличии в
локальной сети настроенного сервера обновлений (см. в п. 11.15)).
Процесс обновления системы будет запускаться автоматически согласно
заданному расписанию. 139,
Рис. 140 Модуль «Обновление системы»
292
ЛКНВ.11100-01 90 01
8.16.5. Локальные учетные записи
Модуль «Локальные учетные записи» (пакет alterator-users) из раздела
«Пользователи» предназначен для администрирования системных пользователей.
Для создания новой учетной записи необходимо ввести имя новой учетной
записи и нажать на кнопку «Создать», после чего имя отобразится в списке слева
(рис. 141).
Для дополнительных настроек необходимо выделить добавленное имя, либо,
если необходимо изменить существующую учетную запись, выбрать ее из списка.
П р и м е ч а н и е . При создании пользователя через ЦУС необходимо снимать
отметку с пункта «Входит в группу администраторов».
Рис. 141 Управление локальными пользователями в веб-интерфейсе ЦУС
В модуле ЦУС «Локальные учетные записи» (только GUI) можно задать
профиль киоска для пользователя. Режим «киоск» служит для ограничения прав
пользователей в системе (рис. 142).
292
ЛКНВ.11100-01 90 01
Рис. 142
Профиль киоска – файл .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
293
ЛКНВ.11100-01 90 01
- сделать файл /usr/local/bin/webkiosk исполняемым:
# chmod +x /usr/local/bin/webkiosk
- в модуле «Локальные учетные записи», выбрать учетную запись
пользователя, затем в выпадающем списке «Режим киоска» выбрать пункт
«WEB-kiosk» (webkiosk.desktop) и нажать на кнопку «Применить»;
- завершить сеанс текущего пользователя и войти в систему используя
учетную запись пользователя, для которого настроен режим «киоск».
Пользователю будет доступен только веб-браузер Mozilla Firefox, по
умолчанию будет загружена страница, адрес которой указан в файле
/usr/local/bin/webkiosk.
8.16.6. Администратор системы
В модуле «Администратор системы» (пакет alterator-root) из раздела
«Пользователи» можно изменить пароль суперпользователя (root), заданный при
начальной настройке системы (рис. 143).
В данном модуле (только в веб-интерфейсе) можно добавить публичную часть
ключа RSA или DSA для доступа к серверу по протоколу SSH.
Рис. 143 Модуль «Администратор системы»
294
ЛКНВ.11100-01 90 01
8.16.7. Дата и время
В модуле «Дата и время» (пакет alterator-datetime) из раздела «Система» можно
изменить дату и время на сервере, сменить часовой пояс, а также настроить
автоматическую синхронизацию часов на самом сервере по протоколу NTP и
предоставление точного времени по этому протоколу для рабочих станций локальной
сети (рис. 144).
Системное время зависит от следующих факторов:
- часы в BIOS часы, встроенные в компьютер; они работают, даже если он
выключен;
- системное время часы в ядре ОС. Во время работы системы все процессы
пользуются именно этими часами;
- часовые пояса регионы Земли, в каждом из которых принято единое
местное время.
Рис. 144 Модуль «Дата и время»
295
ЛКНВ.11100-01 90 01
При запуске системы происходит активация системных часов и их
синхронизация с аппаратными, кроме того, в определенных случаях учитывается
значение часового пояса. При завершении работы системы происходит обратный
процесс.
Если настроена синхронизация времени с NTP-сервером, то сервер сможет сам
работать как сервер точного времени. Для этого достаточно отметить
соответствующий пункт «Работать как NTP-сервер» и нажать на кнопку «Применить»
(см. рис. 144).
8.16.8. Ограничение использования диска
Модуль «Использование диска» (пакет alterator-quota) в разделе
«Пользователи» позволяет ограничить использование дискового пространства
пользователями, заведенными в системе в модуле «Пользователи».
Для управления квотами файловая система должна быть подключена с
параметрами usrquota, grpquota. Для этого следует выбрать нужный раздел в
списке «Файловая система» и установить отметку в поле «Включено» (рис. 145).
Модуль позволяет задать ограничения (квоты) для пользователя при
использовании определенного раздела диска. Ограничить можно как суммарное
количество Кбайт, занятых файлами пользователя, так и количество этих файлов (рис.
145). Выберите пользователя в списке «Пользователь», установите ограничения и
нажмите на кнопку «Применить».
Рис. 145 Модуль «Использование диска»
296
ЛКНВ.11100-01 90 01
При задании ограничений различают жесткие и мягкие ограничения:
- мягкое ограничение: нижняя граница ограничения, которая может быть
временно превышена. Временное ограничение – одна неделя;
- жесткое ограничение: использование диска, которое не может быть
превышено ни при каких условиях.
Значение 0 при задании ограничений означает отсутствие ограничений.
8.16.9. Резервное копирование
Резервное копирование является важной частью работ по поддержанию
работоспособности сервера и всего домена. Так как сервер является критичной
частью сети, производите регулярное резервное копирование. При возникновении
нештатных ситуаций, например, выхода из строя оборудования, восстановить
работоспособное состояние сервера можно из резервной копии.
Bacula кроссплатформенное клиент-серверное ПО, позволяющее управлять
резервным копированием, восстановлением, и проверкой данных по сети для
компьютеров и ОС различных типов. Также о Bacula смотрите в документе
«Руководство по комплексу средств защиты. ЛКНВ.11100-01 99 01».
299
ЛКНВ.11100-01 90 01
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 с паролями.
300
ЛКНВ.11100-01 90 01
Соответствие пользователей 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 перечитывать файлы конфигурации без перезапуска и сброса
соединений. При этом старые соединения продолжают существовать по
старым правилам, а ко всем новым соединениям будут применены уже новые
правила на основании файлов конфигурации.
301
ЛКНВ.11100-01 90 01
Основные клиентские компоненты:
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).
302
ЛКНВ.11100-01 90 01
ПРЕДУПРЕЖДЕНИЕ
Samba AD (Doman Controller, DC) несовместим с OpenLDAP и MIT Kerberos,
поскольку эти приложения запускают одни и те же службы на одних тех же, по
умолчанию, портах для протоколов LDAP и 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
Создание нового домена
Восстановление к начальному состоянию Samba
Если домен уже создавался, необходимо очистить базу и конфигурацию Samba:
rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
rm -rf /var/cache/samba
mkdir -p /var/lib/samba/sysvol
ПРЕДУПРЕЖДЕНИЕ
Перед созданием домена нужно обязательно удалить /etc/samba/smb.conf:
rm -f /etc/samba/smb.conf
Выбор имени домена
Имя домена для разворачиваемого DC должно состоять минимум из двух
компонентов, разделенных точкой.
303
ЛКНВ.11100-01 90 01
При этом должно быть установлено правильное имя узла и домена для сервера
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 (рис. 146);
2) в модуле «Домен» указать имя домена, отметить пункт «Active Directory»,
указать IP-адреса внешних DNS-серверов, задать пароль администратора
домена и нажать на кнопку «Применить» (рис. 147);
Рис. 146
304
ЛКНВ.11100-01 90 01
Рис. 147
П р и м е ч а н и е . Пароль администратора должен быть не менее 7 символов и
содержать символы как минимум трех групп из четырех возможных: латинских букв
в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.
Пароль не полностью соответствующий требованиям это одна из причин завершения
развертывания домена ошибкой.
3) после успешного создания домена, будет выведена информация о домене
(рис. 148);
4) перегрузить сервер.
Рис. 148
305
ЛКНВ.11100-01 90 01
Создание домена одной командой
Создание контроллера домена 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 тип серверной роли.
П р и м е ч а н и е . Параметры --use-rfc2307 --use-xattrs=yes позволяют
поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на
файловой системе Linux.
Интерактивное создание домена
Для интерактивного развертывания нужно выполнить команду
samba-tool domain provision, это запустит утилиту развертывания, которая будет
задавать различные вопросы о требованиях к установке.
В примере показано создание домена 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
306
ЛКНВ.11100-01 90 01
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
При запросе ввода следует нажимать клавишу <Enter>, за исключением запроса
пароля администратора (Administrator password: и Retype password:).
П р и м е ч а н и е . Пароль администратора должен быть не менее 7 символов и
содержать символы как минимум трех групп из четырех возможных: латинских букв
в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.
Пароль не полностью соответствующий требованиям это одна из причин завершения
развертывания домена ошибкой.
Запуск службы
Установите службу по умолчанию и запустите ее:
# chkconfig samba on
# service samba start
Настройка Kerberos
Внести изменения в файл /etc/krb5.conf: раскомментировать строку
default_realm и содержимое разделов realms и domain_realm, указать название
домена (обратите внимание на регистр символов):
includedir /etc/krb5.conf.d/
[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log
[libdefaults]
307
ЛКНВ.11100-01 90 01
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_realm = TEST.ALT
default_ccache_name = KEYRING:persistent:%{uid}
[realms]
TEST.ALT = {
default_domain = test.alt
}
[domain_realm]
dc = TEST.ALT
П р и м е ч а н и е . В момент создания домена Samba конфигурирует шаблон
файла krb5.conf для домена в каталоге /var/lib/samba/private/. Можно просто
заменить этим файлом файл, находящийся в каталоге /etc/:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
Проверка работоспособности
Просмотр общей информации о домене:
# 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
Общие ресурсы 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
308
ЛКНВ.11100-01 90 01
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 <имя пользователя>
Отключить пользователя:
# 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
309
ЛКНВ.11100-01 90 01
ПРЕДУПРЕЖДЕНИЕ
Не допускайте одинаковых имен для пользователя и компьютера, это может
привести к коллизиям (например, такого пользователя нельзя добавить в группу).
Если компьютер с таким именем заведен, удалить его можно командой:
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
ПРЕДУПРЕЖДЕНИЕ
Указание аутентифицирующей информации (имени пользователя и пароля)
обязательно!
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:
ПРЕДУПРЕЖДЕНИЕ
Имя домена должно быть указано в верхнем регистре.
310
ЛКНВ.11100-01 90 01
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
Репликация
ПРЕДУПРЕЖДЕНИЕ
Без успешной двунаправленной репликации в течение 14 дней DC исключается
из Active Directory
ПРЕДУПРЕЖДЕНИЕ
Указание аутентифицирующей информации (имени пользователя и пароля)
обязательно!
Для выполнения двунаправленной репликации необходимо выполнить
следующие действия:
1) реплицировать на вторичном DC (с первичного):
# samba-tool drs replicate dc2.test.alt dc.test.alt
dc=test,dc=alt -Uadministrator
311
ЛКНВ.11100-01 90 01
Сначала указывается приемник, затем источник, после этого реплицируемая
ветка в 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.
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);
312
ЛКНВ.11100-01 90 01
- interfaces позволяет указать сетевой интерфейс, используемый Samba
(если машина имеет несколько сетевых интерфейсов);
- security выбор режима безопасности, при security=user каждый
пользователь должен иметь учетную запись (account) на GNU/Linux сервере;
для того, чтобы Samba-сервер управлял доступом и пользователями,
используйте security=share;
- workgroup рабочая группа;
- server string описание компьютера;
- socket options параметры сокета, которые будут использоваться для
обслуживания клиентов;
- encrypt passwords включить/выключить шифрование паролей между
сервером и клиентом;
- wins support включить/выключить роль WINS-сервера;
- os level приоритет данного сервера среди других компьютеров рабочей
группы: определяет, кто именно будет главной машиной, отвечающей за
отображение ресурсов сети;
- 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 позволяет указать будут ли имена файлов, создаваемых
клиентом оставаться такими как они есть или же они будут
преобразовываться к значению по умолчанию;
313
ЛКНВ.11100-01 90 01
- short preserve case позволяет указать регистр имени файла для
сохранения;
- unix password sync позволяет выполнить синхронизацию пароля UNIX с
паролем SMB при изменении зашифрованного пароля SMB в файле
smbpasswd;
- passwd program позволяет указать программу, которая будет использована
для смены паролей UNIX;
- passwd chat позволяет указать chat-протокол для смены пароля;
- max log size позволяет указать максимальный размер файла журнала;
- [NaMe123] позволяет указать название новой секции, где NaMe123 имя,
видимое клиентам;
- comment комментарий, видимый в сети как комментарий к ресурсу;
- path позволяет указать путь к каталогу бщему ресурсу), доступ к
которому будет разрешен пользователю;
- public позволяет включить/выключить возможность доступа
авторизованных пользователей к общему ресурсу без ввода пароля;
- writable включить/выключить запрет на запись всем пользователям;
- write list разрешение работы на запись пользователям, входящим в
группу;
- browseable включить/выключить отображение общего ресурса в списке
доступных общих ресурсов в сетевом окружении и в списке просмотра;
- force user, force group привязка к определенному имени пользователя
или группе, имена через пробел:
force user = user1 user2
force group = group1 group2
Параметры конфигурационного файла поддерживают переменные:
- %U имя пользователя сессии;
- %G первичная группа %U;
- %h DNS имя;
- %m NETBIOS имя клиента;
314
ЛКНВ.11100-01 90 01
- %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
После сохранения любого вида изменений, внесенных в конфигурационный
файл, рекомендуется выполнить его проверку на наличие синтаксических ошибок,
для этого необходимо выполнить следующую команду:
testparm <полный путь к файлу конфигурации>
Например, опция path = /tmp/%u может быть интерпретирована как path =
/tmp/John, если пользователь связан с именем пользователя John.
В случае отсутствия синтаксических ошибок файловый сервер smbd выполнит
корректную загрузку конфигурационного файла.
Особенности локализации клиента и сервера
Для того чтобы все компоненты Samba правильно работали с русскими
именами файловых объектов и ресурсов, в /etc/samba/smb.conf необходимо
добавить следующие директивы:
[global]
client code page =
character set =
315
ЛКНВ.11100-01 90 01
Далее приводятся наборы значений этих директив и системных кодировок,
наиболее часто используемых в России, Белоруссии и на Украине:
$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
$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
316
ЛКНВ.11100-01 90 01
Добавить пользователя в файл 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
Перезапустить службу:
# 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
317
ЛКНВ.11100-01 90 01
Далее следует завершить сеанс и войти в него вновь должна появиться
возможность настраивать общий доступ samba через графический интерфейс.
Для того чтобы предоставить общий доступ на папку в контекстном меню
папки выбрать пункт «Опции публикации», настроить параметры публикации и
нажать на кнопку «Создать публикацию» (рис. 149).
Рис. 149
Пример настройки в режиме файлового сервера
Пример настройки /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
318
ЛКНВ.11100-01 90 01
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
Подключение по протоколу SMB в графической среде
Для создания подключения по протоколу SMB в графической среде MATE
можно, запустить файловый менеджер, указать в адресной строке протокол и адрес
сервера (рис. 150).
Рис. 150
Нажать клавишу «Enter». Будут показаны ресурсы с общим доступом
(рис. 151).
319
ЛКНВ.11100-01 90 01
Рис. 151
Для доступа к папке, необходимо указать имя пользователя, пароль и нажать на
кнопку «Подключиться» (рис. 152).
Рис. 152
320
ЛКНВ.11100-01 90 01
Монтирование ресурса 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
Создать файл /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
321
ЛКНВ.11100-01 90 01
Например:
//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] его создание и назначение
директив подробно описано в подпункте «Обычный сервер» в части «Особые
ресурсы».
9.1.4. Некоторые вопросы безопасности
Данный раздел относится в основном к серверной части Samba.
Прежде всего, необходимо определить, какие интерфейсы должны
прослушиваться Samba в ожидании запроса на соединение (по умолчанию
прослушиваются все имеющиеся в системе).
Например, для того, чтобы ограничить прослушивание локальным хостом и
первой сетевой картой, необходимо написать в /etc/samba/smb.conf:
[global]
interfaces = 127.0.0.1 eth0
bind interfaces only = Yes
322
ЛКНВ.11100-01 90 01
Далее можно ограничить диапазоны адресов, с которых позволительно
обращаться к данному серверу. Действие данных директив аналогично воздействию
/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
Файл переопределений имен пользователей является весьма мощным
средством управления пользовательскими акаунтами, однако при неразумном
использовании это средство опасно и поэтому по умолчанию отключено.
Внимательно ознакомьтесь с содержимым файла /etc/samba/smbusers, прежде чем
использовать его.
[global]
; username map = /etc/samba/smbusers
Ввод рабочей станции в домен Active Directory
Инструкция по вводу компьютера под управлением ОС Альт 8 СП в домен
Active Directory (работающий под Windows или под Samba AD в режиме DC).
Параметры домена, например:
- TEST.ALT – имя домена;
- TEST – рабочая группа;
323
ЛКНВ.11100-01 90 01
- 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-сервер домена и в поле «Домены
поиска» – домен для поиска (рис. 153).
Рис. 153
324
ЛКНВ.11100-01 90 01
В консоли:
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 – домен;
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).
325
ЛКНВ.11100-01 90 01
В открывшемся окне следует выбрать пункт «Домен Active Directory»,
заполнить поля и нажать на кнопку «Применить» (рис. 154).
Рис. 154
В открывшемся окне необходимо ввести имя пользователя, имеющего право
вводить машины в домен, и его пароль и нажать на кнопку «ОК» (рис. 155).
Рис. 155
При успешном подключении к домену, отобразится соответствующая
информация (рис. 156).
326
ЛКНВ.11100-01 90 01
Рис. 156
Перезагрузить рабочую станцию.
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
П р и м е ч а н и е . Для того, чтобы сократить нагрузку на серверы, по
умолчанию на клиентской машине отключен просмотр пользователей из AD с
помощью команды # getent passwd. Поэтому для проверки необходимо точно
указать имя пользователя:
# getent passwd <имя_пользователя>
Список пользователей можно посмотреть на сервере командой:
# samba-tool user list
9.2.4. Вход пользователя
В окне входа в систему необходимо сначала ввести логин учетной записи
пользователя домена и нажать на кнопку «Войти».
В открывшемся окне ввести пароль, соответствующий этой учетной записи и
нажать на кнопку «Войти», произойдет вход в систему.
327
ЛКНВ.11100-01 90 01
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
Настроить отображение локальных привилегий, назначенных локальным
ролям, на глобальные группы безопасности:
# roleadd 'Domain Users' users
# roleadd 'Domain Admins' localadmins
Для просмотра списка назначенных ролей и привилегий выполнить команду:
# rolelst
id ivan
Данная настройка назначает заданный список локальных групп (привилегий)
всем пользователям, входящим в заданные локальные группы (роли). А также
назначает локальные роли для глобальных групп в домене.
328
ЛКНВ.11100-01 90 01
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/
П р и м е ч а н и е . Если необходимо открывать что-то с ресурса в WINE, в
winecfg добавьте диск с путем /var/run/uid_пользователя/gvfs.
Подключение с использованием pam_mount
В этом случае заданный ресурс подключается с заданного сервера
автоматически при каждом входе доменным пользователем.
Установить pam_mount:
# apt-get install pam_mount
329
ЛКНВ.11100-01 90 01
Прописать 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, а не имя
домена.
ПРЕДУПРЕЖДЕНИЕ
По умолчанию для монтирования используется 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
330
ЛКНВ.11100-01 90 01
Групповые политики
Групповая политика (GPO) это набор правил, в соответствии с которыми
производится настройка рабочей среды относительно локальных политик, по
умолчанию. Групповые политики в реализации Active Directory это часть
интегрированного решения. Альтернативной реализацией Active Directory под
Linux/Unix является проект Samba. Поддержка применения групповых политик в
конкретных дистрибутивных решениях, в целом, не является частью проекта Samba.
В данном подразделе представлен общий обзор данного инструмента в контексте
интеграции применения групповых политик в решениях ALT.
П р и м е ч а н и е . Инструменты управления групповыми политиками будут
установлены в систему, если при установке дистрибутива отметить пункт
«Инструменты управления групповыми политиками» (см. рис. 17).
Интеграция в инфраструктуру LDAP-объектов Active Directory позволяет
осуществлять привязку настроек управляемых конфигураций объектам в дереве
каталогов. Кроме глобальных настроек в рамках домена, возможна привязка к
следующим группам объектов:
- подразделения (OU)  пользователи и компьютеры, хранящиеся в
соответствующей части дерева объектов;
- сайты – группы компьютеров в заданной подсети в рамках одного и того же
домена;
- конкретные пользователи и компьютеры.
Кроме того, в самих объектах групповых политик могут быть заданы
дополнительные условия, фильтры и ограничения, на основании которых
принимается решение о том, как применять данную групповую политику.
Политики подразделяются на политики для компьютеров (Machine) и политики
для пользователей (User). Политики для компьютеров применяются на хосте в момент
загрузки, а также в момент явного или регулярного запроса планировщиком (раз в
час). Пользовательские политики применяются в момент входа в систему.
331
ЛКНВ.11100-01 90 01
Для применения групповых политик в ОС Альт 8 СП предлагается
использовать инструмент gpupdate. Инструмент рассчитан на работу на машине,
введенной в домен Samba.
Групповые политики можно использовать для разных целей, например:
- установка домашней страницы веб-браузера Mozilla Firefox/Chromium.
Возможно установить при использовании ADMX-файлов Mozilla Firefox
(пакет admx-firefox) и Google Chrome (пакет admx-chromium) соответственно;
- запрет на подключение внешних носителей;
- управления политиками control (реализован широкий набор настроек).
Возможно установить при использовании ADMX-файлов;
- включение или выключение различных служб (сервисов systemd). Возможно
установить при использовании ADMX файлов ALT;
- подключение сетевых дисков (экспериментальная политика);
- генерация (удаление/замена) ярлыков запуска программ;
- создание директорий.
П р и м е ч а н и я :
1. Подробнее о настройках и дополнительных возможностях gpupdate для
инфраструктуры на базе Active Directory см.:
https://www.altlinux.org/Групповые_политики.
2. Модули (настройки), помеченные как экспериментальные, необходимо
включать вручную через ADMX файлы ALT в модуле ЦУС «Групповые
политики» (пакет alterator-gpupdate).
9.3.1. Развертывание групповых политик на клиентах Active Directory с
ОС Альт 8 СП
1) Развернуть сервер Samba AD DC (см. п. 9.1.1).
2) Установить административные шаблоны. Для этого: установить пакеты
политик admx-basealt, admx-samba, admx-chromium, admx-firefox и утилиту
admx-msi-setup:
# apt-get install admx-basealt admx-samba admx-chromium
admx-firefox admx-msi-setup
332
ЛКНВ.11100-01 90 01
скачать и установить ADMX-файлы от Microsoft:# admx-msi-setup
П р и м е ч а н и е . По умолчанию, admx-msi-setup устанавливает последнюю
версию ADMX от Microsoft (сейчас это Microsoft Group Policy – Windows 10 October
2020 Update (20H2)). С помощью параметров, можно указать другой источник:
# admx-msi-setup -h
admx-msi-setup - download msi files and extract them in
<destination-directory> default value is /usr/share/PolicyDefinitions/.
Usage: admx-msi-setup [-d <destination-directory>] [-s <admx-msi-
source>]
Removing admx-msi-setup temporary files...
после установки, политики будут находиться в каталоге
/usr/share/PolicyDefinitions. Скопировать локальные ADMX-файлы в сетевой
каталог sysvol (/var/lib/samba/sysvol/<DOMAIN>/Policies/):
# samba-tool gpo admxload
3) Ввести рабочие станции с ОС Альт 8 СП в домен Active Directory
(см. п. 9.2).
Для автоматического включения групповых политик, при вводе в домен, в окне
ввода имени и пароля пользователя, имеющего право вводить машины в домен,
отметить пункт «Включить групповые политики» (см. рис. 155).
П р и м е ч а н и е . Если компьютер клиента с ОС Альт 8 СП уже находится в
домене, включить групповые политики можно в модуле ЦУС «Групповые политики»
(пакет alterator-gpupdate) (см. п. 9.3.3) (рис. 157) следует выбрать шаблон локальной
политики (Сервер, Рабочая станция или Контроллер домена) и установить отметку в
пункте «Управление групповыми политиками».
Рис. 157
333
ЛКНВ.11100-01 90 01
4) Ввести машину с ОС Windows в домен.
П р и м е ч а н и е . Управление сервером Samba с помощью RSAT
поддерживается из среды до Windows 2012R2 включительно.
5) Включить компоненты удаленного администрирования.
П р и м е ч а н и е . Этот шаг можно пропустить, если административные
шаблоны были установлены на контроллере домена.
Для задания конфигурации с помощью RSAT необходимо установить
административные шаблоны (файлы ADMX) и зависящие от языка файлы ADML
(admx-basealt) из репозитория и разместить их в каталоге
\\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\PolicyDefinitions.
6) Корректно установленные административные шаблоны будут отображены
на машине Windows в оснастке «Редактор управления групповыми политиками»
(«Group Policy Management Editor») в разделе «Конфигурация компьютера»
«Политики» «Административные шаблоны» «Система ALT» «Службы»
(«Computer Configuratio «Policies» «Administrative Templates» «ALT
System» → «Services» (рис. 158)).
Рис. 158
334
ЛКНВ.11100-01 90 01
Политики редактируются на ОС Windows, применяются на рабочих станциях
(клиентах).
7) В ADMC на рабочей станции, введенной в домен или в оснастке Active
Directory – пользователи и компьютеры, создать подразделение (OU) и переместить в
него компьютеры и пользователей домена (см. п. 9.3.2).
9.3.2. Инструмент ADMC
ADMC – инструмент для работы с доменом Active Directory и групповыми
политиками.
П р и м е ч а н и е . Должен быть установлен пакет admc. Доступен в
дистрибутивах ОС Рабочая станция х86/х86-64, AArch64 (ARMv8).
1) Для использования программы следует сначала получить ключ Kerberos для
администратора домена. Например, так:
$ kinit administrator
2) Запустить ADMC (рис. 159) из меню (меню MATE: «Приложения»
«Системные» «ADMC») или командой admc:
$ admc
Рис. 159
335
ЛКНВ.11100-01 90 01
Добавление доменных устройств в группу членства GPO
Создать новое подразделение:
- в контекстном меню домена выбрать пункт «Создать» «Организация»
(рис. 160);
Рис. 160
- в открывшемся окне ввести название подразделения (например, OU) и нажать
кнопку «Создать».
Переместить компьютеры и пользователей домена в созданное подразделение
(OU):
- в контекстном меню пользователя/компьютера выбрать пункт
«Переместить…»;
- в открывшемся диалоговом окне «Выберите контейнер» «ADMC» выбрать
контейнер, в который следует переместить учетную запись пользователя.
Cоздание политики для подразделения
1) В контекстном меню папки «Объекты групповых политик»
выбрать «Создать» «Политика» (рис. 161).
2) В открывшемся окне ввести название политики и нажать
кнопку «Создать»: «Создать» «Политика» (рис. 162).
3) В контекстном меню политики выбрать пункт «Добавить линк...»;.
4) Выбрать объекты, которые необходимо связать с
политикой: «Создать» «Политика» (рис. 163).
336
ЛКНВ.11100-01 90 01
Рис. 161
Рис. 162
Рис. 163
337
ЛКНВ.11100-01 90 01
9.3.3. Конфигурирование с помощью ЦУС
Для конфигурирования групповых политик предназначен модуль
alterator-gpupdate.
Этот модуль включает поддержку управления групповыми политиками
пользователей и компьютера. Дополнительные настройки применяются во время
загрузки компьютера и после входа пользователя в систему при аутентификации в
Active Directory.
Функционал в настоящее время ограничен включением/выключением
политики и выбором шаблона локальной политики «Сервер», «Рабочая станция»
или «Контроллер домена» (Active Directory).
Модуль alterator-gpupdate доступен в ЦУС раздел «Система» «Групповые
политики», а также в веб-интерфейсе ЦУС (https://ip-address:8080).
9.3.4. Пример создания групповой политики
В качестве примера, создадим политику, разрешающую запускать команду
ping только суперпользователю (root). Для создания новой политики, необходимо
выполнить следующие действия:
1) на машине с установленным RSAT открыть оснастку «Управление
групповыми политиками (gpmc.msc);
2) создать новый объект групповой политики (GPO) и связать его с
подразделением (OU), в который входят машины или учетные записи
пользователей;
3) в контекстном меню GPO, выбрать пункт «Редактировать». Откроется
редактор GPO;
4) перейти в «Конфигурация компьютера» «Политики»
«Административные шаблоны» «Система ALT». Здесь есть несколько
разделов, соответствующих категориям control. Выбрать раздел «Сетевые
приложения», в правом окне редактора отобразится список политик
(рис. 164);
5) дважды щелкнуть левой кнопкой мыши на политике «Разрешения для
/usr/bin/ping». Откроется диалоговое окно настройки политики. Выбрать
параметр «Включить», в выпадающем списке «Кому разрешено выполнять»
выбрать пункт «Только root» и нажать кнопку «Применить» (рис. 165);
338
ЛКНВ.11100-01 90 01
Рис. 164
Рис. 165
339
ЛКНВ.11100-01 90 01
6) после обновления политики на клиенте, выполнять команду ping сможет
только администратор:
$ ping localhost
bash: ping: команда не найдена
$ /usr/bin/ping localhost
bash: /usr/bin/ping: Отказано в доступе
# control ping
Restricted
ПРЕДУПРЕЖДЕНИЕ
Для диагностики механизмов применения групповых политик на клиенте
можно выполнить команду:
# gpoa --loglevel 0
В выводе команды будут фигурировать полученные групповые объекты.
В частности, соответствующий уникальный код (GUID) объекта.
SOGo
SOGo – сервер групповой работы, аналогичный Microsoft Exchange, с
веб-интерфейсом и доступом по MAPI для Microsoft Outlook.
SOGo обеспечивает веб-интерфейс на основе AJAX и поддерживает различные
нативные клиенты с помощью стандартных протоколов.
Возможности SOGo:
- общие почтовые папки, календари и адресные книги;
- веб-интерфейс, аналогичный Outlook Web Access;
- поддержка протоколов CalDAV, CardDAV, GroupDAV, Microsoft ActiveSync,
IMAP и SMTP;
- доступ по MAPI для Microsoft Outlook, не требующий внешних модулей;
- делегирование, уведомления, резервирование, поддержка категорий и
почтовых фильтров;
- поддержка нескольких почтовых ящиков в веб-интерфейсе;
- Single sign-on с помощью CAS, WebAuth или Kerberos.
ПРЕДУПРЕЖДЕНИЕ
MAPI over HTTPS не поддерживается.
9.4.1. Установка
Для установки SOGo на ОС Альт 8 СП Сервер (64 бит, AArch64 (ARMv8),
ppc64le (POWER)) необходимо выполнить команду (драйвер к PostgreSQL будет
установлен автоматически): # apt-get install task-sogo
340
ЛКНВ.11100-01 90 01
9.4.2. Подготовка среды
Подготовить к запуску и настроить службы PostgreSQL:
- создать системные базы данных: # /etc/init.d/postgresql initdb
- запустить службу: # service postgresql start
- создать пользователя sogo и базу данных sogo (под правами root):
# su - postgres -s /bin/sh -c 'createuser --no-superuser --no-
createdb --no-createrole sogo'
# su - postgres -s /bin/sh -c 'createdb -O sogo sogo'
# service postgresql restart
Настройка Samba DC:
1) пользователи расположены в домене Active Directory, расположенном на
контроллере с Samba DC. Необходимо предварительно развернуть сервер
Samba AD DC (см. п. 9.1.1);
2) создать в домене пользователя sogo с паролем Pa$$word (при запросе
дважды ввести пароль):
# samba-tool user create sogo
# samba-tool user setexpiry --noexpiry sogo
Настройка SOGo (настраивается на домен test.alt):
1) заполнить файл конфигурации /etc/sogo/sogo.conf:
{
SOGoProfileURL = "postgresql://sogo@/sogo/sogo_user_profile";
OCSFolderInfoURL = "postgresql://sogo@/sogo/sogo_folder_info";
OCSSessionsFolderURL =
"postgresql://sogo@/sogo/sogo_sessions_folder";
OCSEMailAlarmsFolderURL =
"postgresql://sogo@/sogo/sogo_alarms_folder";
SOGoEnableEMailAlarms = YES;
SOGoDraftsFolderName = Drafts;
SOGoSentFolderName = Sent;
SOGoTrashFolderName = Trash;
SOGoIMAPServer =
"imaps://localhost:993/?tlsVerifyMode=allowInsecureLocalhost";
SOGoMailingMechanism = sendmail;
SOGoForceExternalLoginWithEmail = NO;
NGImap4ConnectionStringSeparator = "/";
SOGoUserSources = (
{
id = sambaLogin;
displayName = "SambaLogin";
canAuthenticate = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = cn;
UIDFieldName = sAMAccountName;
hostname = "ldaps://127.0.0.1";
baseDN = "CN=Users,DC=test,DC=alt";
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
bindPassword = "Pa$$word";
bindFields = (sAMAccountName);
},
{
id = sambaShared;
displayName = "Shared Addressbook";
341
ЛКНВ.11100-01 90 01
canAuthenticate = NO;
isAddressBook = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = mail;
UIDFieldName = mail;
hostname = "ldaps://127.0.0.1";
baseDN = "CN=Users,DC=test,DC=alt";
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
bindPassword = "Pa$$word";
filter = "((NOT isCriticalSystemObject='TRUE') AND (mail='*')
AND (NOT objectClass=contact))";
},
{
id = sambaContacts;
displayName = "Shared Contacts";
canAuthenticate = NO;
isAddressBook = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = mail;
UIDFieldName = mail;
hostname = "ldaps://127.0.0.1";
baseDN = "CN=Users,DC=test,DC=alt";
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
bindPassword = "Pa$$word";
filter = "((((objectClass=person) AND (objectClass=contact)
AND ((uidNumber>=2000) OR (mail='*')))
AND (NOT isCriticalSystemObject='TRUE') AND (NOT
showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest))
OR (((objectClass=group) AND (gidNumber>=2000)) AND
(NOT isCriticalSystemObject='TRUE') AND (NOT
showInAdvancedViewOnly='TRUE')))";
mapping = {
displayname = ("cn");
};
}
);
SOGoSieveScriptsEnabled = YES;
SOGoLanguage = Russian;
SOGoTimeZone = Europe/Moscow;
SOGoFirstDayOfWeek = 1;
}
2) включить службы по умолчанию и перезапустить их:
# for s in samba postgresql memcached sogo httpd2;do chkconfig
$s on;service $s restart;done
Возможные ошибки будут записаны в файл журнала
/var/log/sogo/sogo.log.
9.4.3. Включение веб-интерфейса
Для включения веб-интерфейса необходимо выполнить команды:
# a2enmod proxy
# a2enmod proxy_http
# a2enmod authn_core
# a2enmod authn_file
# a2enmod auth_basic
# a2enmod authz_user
# a2enmod env
# a2enmod dav
# a2enmod headers
342
ЛКНВ.11100-01 90 01
# a2enmod rewrite
# a2enmod version
# a2enmod setenvif
# a2ensite SOGo
# service httpd2 restart
# service sogo restart
Веб-интерфейс доступен по адресу: https://<адрес_сервера>/SOGo/.
П р и м е ч а н и е . Если при входе в веб-интерфейс возникает ошибка
«Неправильный логин или пароль» и в логах /var/log/sogo/sogo.log есть ошибки
вида:
Jul 06 16:14:51 sogod [12257]: [ERROR] <0x0x5578db070b40[LDAPSource]>
Could not bind to the LDAP server ldaps://127.0.0.1 (389) using the
bind DN: CN=sogo,CN=Users,DC=test,DC=alt
Следует в файл /etc/openldap/ldap.conf добавить опцию
TLS_REQCERT allow и перезапустить службы samba и sogo:
# service samba restart
# service sogo restart
9.4.4. Настройка электронной почты
ПРЕДУПРЕЖДЕНИЕ
Предварительно должен быть настроен DNS (см. п. 9.6).
Для использования электронной почты в SOGo необходимо настроить
аутентификацию в Active Directory для Postfix и Dovecot.
В примере используется следующая конфигурация (рис. 166):
- имя домена: test.alt;
- размещение почты: /var/mail/<имя_домена>/<имя_пользователя>
(формат maildir);
- доступ на чтение почты: IMAP (порт 993), SSL;
- доступ на отправку почты: SMTP (порт 465), SSL/STARTTLS;
- данные аутентификации: email с доменом апример, petrov@test.alt) или имя
пользователя.
ПРЕДУПРЕЖДЕНИЕ
Доступ к серверу LDAP осуществляется по протоколу ldap без шифрования.
Для SambaDC необходимо отключить ldaps в /etc/samba/smb.conf в секции
[global]:
ldap server require strong auth = no
и перезапустить samba:
# service samba restart
Предварительно необходимо создать пользователя vmail (пароль Pa$$word) с
не истекающей учетной записью:
# samba-tool user create -W Users vmail
# samba-tool user setexpiry vmail noexpiry
343
ЛКНВ.11100-01 90 01
Рис. 166
Настройка Postfix
Установить пакет postfix-ldap: # apt-get install postfix-ldap
В каталоге /etc/postfix изменить файлы для домена test.alt:
- изменить содержимое файла main.cf:
# Global Postfix configuration file. This file lists only a small subset
# of all parameters. For the syntax, and for a complete parameter list,
# see the postconf(5) manual page. For a commented and more complete
# version of this file see /etc/postfix/main.cf.dist
mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a
"$RECIPIENT"
inet_protocols = ipv4
# Mappings
virtual_mailbox_base = /var/mail
virtual_mailbox_domains = test.alt
virtual_mailbox_maps = ldap:/etc/postfix/ad_local_recipients.cf
virtual_alias_maps = ldap:/etc/postfix/ad_mail_groups.cf
virtual_transport = dovecot
local_transport = virtual
local_recipient_maps = $virtual_mailbox_maps
# SSL/TLS
smtpd_use_tls = yes
smtpd_tls_security_level = encrypt
#smtpd_tls_security_level = may
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = test.alt
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_sender_login_maps = ldap:/etc/postfix/ad_sender_login.cf
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /var/lib/ssl/certs/dovecot.cert
smtpd_tls_key_file = /var/lib/ssl/private/dovecot.key
smtpd_tls_CAfile = /var/lib/ssl/certs/dovecot.pem
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination, per-mit_sasl_authenticated, reject
344
ЛКНВ.11100-01 90 01
smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
- файл /etc/postfix/mydestination должен быть пустым;
- в файл master.cf необходимо добавить строки:
dovecot unix - n n - - pipe
flags=DRhu user=mail:mail argv=/usr/libexec/dovecot/deliver -d ${recipient}
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
- создать файл ad_local_recipients.cf:
version = 3
server_host = test.alt:389
search_base = dc=test,dc=alt
scope = sub
query_filter =
(&(|(mail=%s)(otherMailbox=%u@%d))(sAMAccountType=805306368))
result_filter = %s
result_attribute = mail
special_result_attribute = member
bind = yes
bind_dn = cn=vmail,cn=users,dc=test,dc=alt
bind_pw = Pa$$word
- создать файл ad_mail_groups.cf:
version = 3
server_host = test.alt:389
search_base = dc=test,dc=alt
timeout = 3
scope = sub
query_filter = (&(mail=%s)(sAMAccountType=268435456))
result_filter = %s
result_attribute = mail
special_result_attribute = member
bind = yes
bind_dn = cn=vmail,cn=users,dc=test,dc=alt
bind_pw = Pa$$word
- создать файл ad_sender_login.cf:
version = 3
server_host = test.alt:389
search_base = dc=test,dc=alt
scope = sub
query_filter = (&(objectClass=user)(|(sAMAccountName=%s)(mail=%s)))
result_attribute = mail
bind = yes
bind_dn = cn=vmail,cn=users,dc=test,dc=alt
bind_pw = Pa$$word
- перезапустить службу postfix: # service postfix restart
Проверка конфигурации Postfix выводе не должно быть никаких сообщений):
# postconf >/dev/null
Проверка пользователя почты petrov:
# postmap -q petrov@test.alt ldap:/etc/postfix/ad_local_recipients.cf
petrov@test.alt
Проверка входа:
# postmap -q petrov@test.alt ldap:/etc/postfix/ad_sender_login.cf
petrov@test.alt
345
ЛКНВ.11100-01 90 01
Проверка общего адреса e-mail:
# samba-tool group add --mail-address=sales@test.alt Sales
Added group Sales
# samba-tool group addmembers Sales ivanov,petrov
Added members to group Sales
# postmap -q sales@test.alt ldap:/etc/postfix/ad_mail_groups.cf
sales@test.alt,ivanov@test.alt,petrov@test.alt
Настройка Dovecot
Установить Dovecot: # apt-get install dovecot
Изменить файлы для домена test.alt:
- создать файл /etc/dovecot/dovecot-ldap.conf.ext:
hosts = test.alt:3268
ldap_version = 3
auth_bind = yes
dn = cn=vmail,cn=Users,dc=test,dc=alt
dnpass = Pa$$word
base = cn=Users,dc=test,dc=alt
scope = subtree
deref = never
user_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
user_attrs = =uid=8,gid=12,mail=user
pass_filter = (&(objectClass=user)(|(mail=%Lu)(sAMAccountName=%Lu)))
pass_attrs = mail=user
- изменить файл /etc/dovecot/conf.d/10-auth.conf:
#auth_username_format = %Lu
#auth_gssapi_hostname = "$ALL"
#auth_krb5_keytab = /etc/dovecot/dovecot.keytab
#auth_use_winbind = no
#auth_winbind_helper_path = /usr/bin/ntlm_auth
#auth_failure_delay = 2 secs
auth_mechanisms = plain
!include auth-ldap.conf.ext
- изменить файл /etc/dovecot/conf.d/10-mail.conf:
mail_location = maildir:/var/mail/%d/%n:UTF-8:INBOX=/var/mail/%d/%n/Inbox
mail_uid = mail
mail_gid = mail
first_valid_uid = 5
first_valid_gid = 5
- изменить файл /etc/dovecot/conf.d/10-master.conf:
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
port = 0
}
inet_listener pop3s {
port = 0
}
}
346
ЛКНВ.11100-01 90 01
service lmtp {
unix_listener lmtp {
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
}
unix_listener /var/spool/postfix/private/auth {
mode = 0600
user = postfix
group = postfix
}
}
service auth-worker {
}
service dict {
unix_listener dict {
}
}
- изменить файл /etc/dovecot/conf.d/15-lda.conf:
protocol lda {
hostname = test.alt
postmaster_address = administrator@test.alt
}
- изменить файл /etc/dovecot/conf.d/15-mailboxes.conf:
namespace inbox {
inbox = yes
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
}
- перезапустить службу dovecot: # service dovecot restart
Проверка конфигурации Dovecot выводе не должно быть никаких
сообщений): # doveconf >/dev/null
347
ЛКНВ.11100-01 90 01
Безопасность
Так как конфигурационные файлы содержат пароль пользователя LDAP, их
необходимо сделать недоступным для чтения прочим пользователям:
# chown dovecot:root /etc/dovecot/dovecot-ldap.conf.ext
# chmod 0640 /etc/dovecot/dovecot-ldap.conf.ext
# chown root:postfix /etc/postfix/ad_local_recipients.cf
/etc/postfix/ad_mail_groups.cf /etc/postfix/ad_sender_login.cf
# chmod 0640 /etc/postfix/ad_local_recipients.cf
/etc/postfix/ad_mail_groups.cf /etc/postfix/ad_sender_login.cf
Перезапустить службы:
# service dovecot restart
# service postfix restart
Проверка конфигурации
Проверка SMTP:
# date | mail -s test petrov@test.alt
# mailq
Mail queue is empty
Проверка IMAP (выход по «Ctrl+D»):
# openssl s_client -crlf -connect test.alt:993
...
tag login petrov@test.alt Pa$$word
tag OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS
THREAD=ORDEREDSUBJECT
MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES
WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE] Logged in
Настройка FreeIPA
FreeIPA это комплексное решение по управлению безопасностью
Linux-систем, 389 Directory Server, MIT Kerberos, NTP, DNS, Dogtag, состоит из
веб-интерфейса и интерфейса командной строки.
FreeIPA является интегрированной системой проверки подлинности и
авторизации в сетевой среде Linux, FreeIPA-сервер обеспечивает централизованную
проверку подлинности, авторизацию и контроль за аккаунтами пользователей
сохраняя сведения о пользователе, группах, узлах и других объектах необходимых
для обеспечения сетевой безопасности.
348
ЛКНВ.11100-01 90 01
9.5.1. Установка сервера FreeIPA
Для установки сервера FreeIPA (Сервер 64 бит, AArch64 (ARMv8), ppc64le
(POWER)) со встроенным DNS сервером и доменом EXAMPLE.TEST в локальной сети
192.168.135.0/24 выполнить следующие действия:
1) отключить ahttpd, работающий на порту 8080, во избежание конфликтов с
разворачиваемым tomcat и отключить HTTPS в Apache2:
# service ahttpd stop
# a2dissite 000-default_https
# a2disport https
# service httpd2 condreload
2) установить необходимые пакеты:
# apt-get install freeipa-server freeipa-server-dns
3) задать имя сервера:
# hostnamectl set-hostname ipa.example.test
4) для ускорения установки можно установить демон энтропии haveged:
# apt-get install haveged
# systemctl enable haveged
# systemctl start haveged
5) запустить скрипт настройки сервера:
- в пакетном режиме:
# ipa-server-install -U --hostname=$(hostname) -r
EXAMPLE.TEST -n example.test -p 12345678 -a 12345678 --
setup-dns --no-forwarders --no-reverse
- или интерактивно:
# ipa-server-install
ВНИМАНИЕ!
Пароли должны быть не менее 8 символов.
Обратите внимание на ответы на вопрос, не совпадающий с предложенными:
Do you want to configure integrated DNS (BIND)? [no]: yes
Остальные вопросы необходимо выбрать по умолчанию (можно просто нажать
<Enter>). Так же при установке нужно ввести пароль администратора системы и
пароль администратора каталогов.
Для возможности управлять FreeIPA-сервером из командной строки
необходимо получить билет Kerberos: # kinit admin
Добавить в DNS запись о сервере времени, чтобы компьютеры в локальной сети
могли к нему подключаться:
# ipa dnsrecord-add example.test _ntp._udp --srv-priority=0 --
srv-weight=100 --srv-port=123 --srv-target=ipa.example.test.
349
ЛКНВ.11100-01 90 01
Проверить работу ntp сервера можно командой:
# ntpdate -q localhost
server 127.0.0.1, stratum 3, offset 0.000018, delay 0.02568
27 Apr 10:27:00 ntpdate[3491]: adjust time server 127.0.0.1
offset 0.000018 sec
П р и м е ч а н и е . Если в выводе присутствуют ошибки следующего вида:
[error] CalledProcessError: Command '/sbin/systemctl restart
httpd2.service' returned non-zero exit status 1
Выполнить команду: # systemctl restart httpd2
Отменить установку: # ipa-server-install -U -uninstall
и повторить снова.
Веб-интерфейс FreeIPA доступен по адресу:
https://ipa.example.test/ipa/ui/
9.5.2. Установка сервера FreeIPA в режиме CA-less
Для установки сервера FreeIPA (Сервер 64 бит, AArch64 (ARMv8), ppc64le
(POWER)) со встроенным DNS сервером и доменом EXAMPLE.TEST в режиме
CA-less выполнить следующие действия:
1) установить необходимые пакеты:
# apt-get install freeipa-server freeipa-server-dns
2) задать имя сервера:
# hostnamectl set-hostname ipa.example.test
3) требуется перезагрузка;
4) подготовить сертификаты для сервера FreeIPA: # mkdir ~/test_ca
5) создать файл pwdfiles.txt с паролем, например, 12345678:
# echo 12345678 > ~/test_ca/pwdfile.txt
ВНИМАНИЕ!
Пароли должны быть не менее 8 символов.
6) создать базу данных NSS:
/usr/bin/certutil -d ~/test_ca -N -f ~/test_ca/pwdfile.txt
7) создать noise файл, заполненный случайными числами:
# head -c20 /dev/random > ~/test_ca/noise.txt
8) выполнить экспорт переменной CERT_SERIAL:
# export CERT_SERIAL=1
9) создать CA сертификат:
# SKID="0x`openssl rand -hex 20`"
# echo $SKID
# /usr/bin/certutil -d ~/test_ca -S -n "CA" -s "CN=Certificate
Authority" -x -t CT,,C -1 -2 -5 -m $CERT_SERIAL -v 120 -z
~/test_ca/noise.txt -f ~/test_ca/pwdfile.txt --extSKID
350
ЛКНВ.11100-01 90 01
В ответ на запросы команды дать следующие ответы:
Generating key. This may take a few moments...
0 - Digital Signature
1 - Non-repudiation
2 - Key encipherment
3 - Data encipherment
4 - Key agreement
5 - Cert signing key
6 - CRL signing key
Other to finish
> 0 0 - Digital Signature
1 - Non-repudiation
2 - Key encipherment
3 - Data encipherment
4 - Key agreement
5 - Cert signing key
6 - CRL signing key
Other to finish
> 1 0 - Digital Signature
1 - Non-repudiation
2 - Key encipherment
3 - Data encipherment
4 - Key agreement
5 - Cert signing key
6 - CRL signing key
Other to finish
> 5 0 - Digital Signature
1 - Non-repudiation
2 - Key encipherment
3 - Data encipherment
4 - Key agreement
5 - Cert signing key
6 - CRL signing key
Other to finish
> 9
Is this a critical extension [y/N]?
y
Is this a CA certificate [y/N]?
y
Enter the path length constraint, enter to skip [<0 for unlimited
path]: > 0
Is this a critical extension [y/N]?
y
Adding Subject Key ID extension.
Enter value for the key identifier fields,enter to omit:
0xdd2b9e67d1c2e85fd67884dee68e5375fd294e92 ($SKID)
Is this a critical extension [y/N]?
n
Is this a critical extension [y/N]?
n
0 - SSL Client
1 - SSL Server
2 - S/MIME
3 - Object Signing
4 - Reserved for future use
5 - SSL CA
6 - S/MIME CA
7 - Object Signing CA
Other to finish
> 5
351
ЛКНВ.11100-01 90 01
0 - SSL Client
1 - SSL Server
2 - S/MIME
3 - Object Signing
4 - Reserved for future use
5 - SSL CA
6 - S/MIME CA
7 - Object Signing CA
Other to finish
> 6
0 - SSL Client
1 - SSL Server
2 - S/MIME
3 - Object Signing
4 - Reserved for future use
5 - SSL CA
6 - S/MIME CA
7 - Object Signing CA
Other to finish
> 7
0 - SSL Client
1 - SSL Server
2 - S/MIME
3 - Object Signing
4 - Reserved for future use
5 - SSL CA
6 - S/MIME CA
7 - Object Signing CA
Other to finish
> 9
Is this a critical extension [y/N]?
n
10) создать noise файл, заполненный случайными числами:
# head -c20 /dev/random > ~/test_ca/noise.txt
11) создать запрос сертификата:
# SKID="0x`openssl rand -hex 20`"
# echo $SKID
# /usr/bin/certutil -d ~/test_ca -R -s CN=$HOSTNAME,O=IPA -o
/tmp/servercert.req -k rsa -g 2048 -z ~/test_ca/noise.txt -f
~/test_ca/pwdfile.txt -a --extSKID
Generating key. This may take a few moments...
Adding Subject Key ID extension. Enter value for the key identifier
fields,enter to omit:
0x748098604e1b028 3d3eb413f7843193fa09668db ($SKID)
Is this a critical extension [y/N]?
n
12) подписать запрос о выдаче сертификата сервера:
# export CERT_SERIAL=$(($CERT_SERIAL + 1))
# /usr/bin/certutil -d ~/test_ca -C -c "CA" -i
/tmp/servercert.req -o /tmp/servercert.pem -m $CERT_SERIAL -v
120 -f ~/test_ca/pwdfile.txt -1 -5 a
В ответ на запросы команды дать следующие ответы:
0 - Digital Signature
1 - Non-repudiation
2 - Key encipherment
3 - Data encipherment
4 - Key agreement
352
ЛКНВ.11100-01 90 01
5 - Cert signing key
6 - CRL signing key
Other to finish
> 2 0 - Digital Signature
1 - Non-repudiation
2 - Key encipherment
3 - Data encipherment
4 - Key agreement
5 - Cert signing key
6 - CRL signing key
Other to finish
> 9 Is this a critical extension [y/N]?
n 0 - SSL Client
1 - SSL Server
2 - S/MIME
3 - Object Signin g
4 - Reserved for future use
5 - SSL CA
6 - S/MIME CA
7 - Object Signing CA
Other to finish
> 1 0 - SSL Client
1 - SSL Server
2 - S/MIME
3 - Object Signing
4 - Reserved for future use
5 - SSL CA
6 - S/MIME CA
7 - Object Signing CA
Other to finish
> 9 Is this a critical extension [y/N]?
n
П р и м е ч а н и е . Можно создавать отдельные сертификаты для серверов
HTTP и Directory.
Экспорт сертификатов в правильные форматы
Далее необходимо произвести экспорт сертификатов в правильные форматы.
1) Импортировать полученный сертификат:
# /usr/bin/certutil -d ~/test_ca -A -i /tmp/servercert.pem -n
Server-Cert -a -t ,,
2) Экспортировать сертификат в PKCS#12:
# /usr/bin/pk12util -o ~/test_ca/servercert.p12 -n Server-Cert
-d ~/test_ca -k ~/test_ca/pwdfile.txt -w ~/test_ca/pwdfile.txt
3) Экспортировать сертификат CA в формате PEM:
# /usr/bin/certutil -d ~/test_ca -L -n "CA" -a >
~/test_ca/cacert.pem
4) Установить CA-less IPA:
# export PWD=$(cat ~/test_ca/pwdfile.txt)
#проверка правильности создания сертификата
353
ЛКНВ.11100-01 90 01
# openssl verify -CAfile ~/test_ca/cacert.pem
/tmp/servercert.pem
# ipa-server-install --http-cert-file ~/test_ca/servercert.p12
--dirsrv-cert-file ~/test_ca/servercert.p12 --http-pin $PWD --
dirsrv-pin $PWD --ca-cert-file ~/test_ca/cacert.pem --no-
pkinit
П р и м е ч а н и е . Можно указать при установке опции
--pkinit-cert-file=Файл файл, содержащий сертификат SSL Kerberos KDC и
закрытый ключ и --pkinit-pin=Пароль пароль от закрытого ключа Kerberos KDC.
Для возможности управлять FreeIPA-сервером из командной строки
необходимо получить билет Kerberos: # kinit admin
Веб-интерфейс FreeIPA доступен по адресу:
https://ipa.example.test/ipa/ui/
9.5.3. Добавление новых пользователей домена
Для добавления новых пользователей можно воспользоваться
веб-интерфейсом FreeIPA. Для этого необходимо открыть в веб-браузере адрес
https://ipa.example.test/ipa/ui и ввести данные администратора для входа в
систему (рис. 170). Для входа в веб-интерфейс следует использовать имя admin, и
пароль, введенный при установке сервера FreeIPA.
167 168 169 Т а б л 8 Т а б л 9
Рис. 170 Веб-интерфейс FreeIPA
354
ЛКНВ.11100-01 90 01
После успешной авторизации можно создать нового пользователя домена. Для
этого в окне «Пользователи домена» необходимо нажать на кнопку «Добавить»
(рис. 171).
Рис. 171 Окно «Пользователи домена»
В открывшемся окне необходимо ввести данные пользователя и нажать на
кнопку «Добавить» (рис. 172).
Рис. 172 Окно добавления нового пользователя домена
Созданный пользователь появится в списке пользователей (рис. 173).
355
ЛКНВ.11100-01 90 01
Рис. 173 Список пользователей домена
9.5.4. Ввод рабочей станции в домен FreeIPA установка клиента и
подключение к серверу
Инструкция по вводу рабочей станции под управлением
ОС Альт 8 СП Рабочая станция в домен FreeIPA.
Установка FreeIPA клиента
Установить необходимые пакеты:
# apt-get install freeipa-client libsss_sudo krb5-kinit bind-
utils libbind zip
П р и м е ч а н и е . Установить также пакет task-auth-freeipa на рабочей станции
64/32 бит.
П р и м е ч а н и е . Очистить конфигурацию freeipa-client невозможно.
В случае если это необходимо (например, для удаления, переустановки
freeipa-client) следует переустановить систему.
Настройка сети
Клиентские компьютеры должны быть настроены на использование
DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его
установки. В сетевых настройках необходимо указать использовать сервер FreeIPA
для разрешения имен. Эти настройки можно выполнить как в графическом
интерфейсе, так и в консоли:
1) в ЦУС в разделе «Сеть» «Ethernet-интерфейсы» (см. п. 8.5.1) задать имя
компьютера, указать в поле DNS-серверы IP-адрес FreeIPA-сервера и в поле
«Домены поиска» – домен для поиска (рис. 174);
356
ЛКНВ.11100-01 90 01
Рис. 174
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
357
ЛКНВ.11100-01 90 01
Подключение к серверу в ЦУС
Для ввода рабочей станции в домен FreeIPA, необходимо в ЦУС перейти в
раздел «Пользователи» → «Аутентификация» (см. п. 8.4.5).
В открывшемся окне следует выбрать пункт «Домен FreeIPA», заполнить поля
«Домен» и «Имя компьютера», затем нажать на кнопку «Применить» (рис. 175).
Рис. 175
В открывшемся окне необходимо ввести имя пользователя, имеющего право
вводить машины в домен, и его пароль и нажать на кнопку «ОК» (рис. 176).
Рис. 176
В случае успешного подключения, будет выведено соответствующее
сообщение (рис. 177).
358
ЛКНВ.11100-01 90 01
Рис. 177
Перезагрузить рабочую станцию.
Подключение к серверу в консоли
Запустить скрипт настройки клиента в пакетном режиме:
# 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
Для работы sudo-политик для доменных пользователей на клиентской машине
необходимо разрешить доступ к sudo: # control sudo public
Вход пользователя
В окне входа в систему необходимо ввести логин учетной записи пользователя
FreeIPA и нажать на кнопку «Войти» (рис. 178).
359
ЛКНВ.11100-01 90 01
Рис. 178
В открывшемся окне ввести пароль, соответствующий этой учетной записи и
нажать на кнопку «Войти».
При первом входе пользователя будет запрошен текущий (установленный
администратором) пароль, затем у пользователя запрашивается новый пароль и его
подтверждение.
ПРЕДУПРЕЖДЕНИЕ
Если машина до этого была в других доменах или есть проблемы со входом
пользователей рекомендуется очистить кэш sssd:
# systemctl stop sssd
# rm -f /var/lib/sss/db/*
# rm -f /var/lib/sss/mc/*
# systemctl start sssd
9.5.5. Настройка репликации
На втором контроллере домена необходимо установить пакеты:
# apt-get install freeipa-client freeipa-server-dns
Задать имя сервера:
# hostnamectl set-hostname ipabackup.example.test
Развернуть и настроить клиента:
# ipa-client-install -d --domain=example.test --
server=ipa.example.test --realm=EXAMPLE.TEST --principal=admin --
password=12345678 --enable-dns-updates -U
После выполнения этой операции хост ipabackup.example.test должен появиться
в веб-интерфейсе FreeIPA.
Далее необходимо настроить репликацию LDAP-каталога:
# ipa-replica-install
Добавить в DNS второй NTP-сервер:
# kinit admin
# ipa dnsrecord-add example.test _ntp._udp --srv-priority=0 --srv-
weight=100 --srv-port=123 --srv-target=ipabackup.example.test
360
ЛКНВ.11100-01 90 01
Настроить репликацию DNS-зон: # ipa-dns-install
Настроить репликацию CA: # ipa-ca-install
После настройки и репликации контроллеров посмотреть топологию можно в
веб-интерфейсе FreeIPA.
9.5.6. Настройка доверительных отношений с Active Directory
FreeIPA использует Samba для интеграции в AD. Для работы Samba необходим
работающий стек IPv6.
Начальные данные:
- IP-адрес IPA-сервера: 192.168.135.130;
- Имя IPA-сервера: dcf;
- Имя IPA домена: domf.testf;
- NetBIOS имя IPA домена: DOMF;
- IP-адрес AD DC: 192.168.135.150;
- Имя AD DC: dcc;
- Имя AD домена: domc.testc;
- NetBIOS имя AD домена: DOMC.
Установить необходимые пакеты:
# apt-get install freeipa-server-trust-ad python3-module-sss-murmur
samba-winbind
Предварительная настройка IPA-сервера
Выполнить предварительную настройку IPA-сервера для работы с доверием:
# ipa-adtrust-install
Скрипт спросит необходимо ли конфигурировать slapi-nis плагин для
поддержки работы старых клиентов (SSSD < 1.9) с пользователем из доверенного
домена: Enable trusted domains support in slapi-nis? [no]:
На IPA-сервере существует по крайней мере один пользователь (администратор
сервера), поэтому скрипт предложит сгенерировать SID для всех существующих
пользователей и групп:
Do you want to run the ipa-sidgen task? [no]:
Дата и время на серверах должны совпадать.
IPA-сервер в своей работе использует следующие порты:
- TCP ports: 80, 88, 443, 389, 636, 88, 464, 53, 135, 138, 139, 445, 1024 1300;
- UDP ports: 88, 464, 53, 123, 138, 139, 389, 445.
361
ЛКНВ.11100-01 90 01
Они должны быть открыты и доступны.
Настроить Samba:
# net conf setparm global 'dedicated keytab file' /etc/samba/samba.keytab
# systemctl restart ipa
Проверить проходит ли Samba аутентификацию Kerberos со стороны
IPA-сервера:
# kinit admin
# smbclient -L dcf.domf.testf -k
lp_load_ex: changing to config backend registry
Domain=[DOMF] OS=[Windows 6.1] Server=[Samba 4.5.5]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba 4.5.5)
Domain=[DOMF] OS=[Windows 6.1] Server=[Samba 4.5.5]
Server Comment
--------- -------
Workgroup Master
--------- -------
Настроить DNS на обоих серверах, чтобы они знали друг о друге:
1) на AD сервере создать сервер условной пересылки для зоны IPA домена:
C:\> dnscmd 127.0.0.1 /ZoneAdd domf.testf /Forwarder 192.168.135.130
2) на IPA-сервере так же добавить зону AD домена:
# ipa dnsforwardzone-add domc.testc --forwarder=192.168.135.150
--forward-policy=only
Проверка конфигурации DNS
На AD сервере
Проверить наличие записей для работы сервисов IPA на DNS-сервере AD.
1) Запись, отвечающая за работу сервисов Kerberos через UDP и LDAP через
TCP:
C:\>nslookup.exe
> set type=SRV
> _kerberos._udp.domf.testf.
_kerberos._udp.domf.testf. SRV service location:
priority = 0
weight = 100
port = 88
svr hostname = dcf.domf.testf.
> _ldap._tcp.domf.testf.
_ldap._tcp.ipa.example.com SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = dcf.domf.testf.
2) Запись, отвечающая за имя Kerberos realm IPA домена:
C:\>nslookup.exe
362
ЛКНВ.11100-01 90 01
> set type=TXT
> _kerberos.domf.testf.
_kerberos.domf.testf. text =
"DOMF.TESTF"
3) В результате выполнения команды ipa-adtrust-install должны
появиться записи, отвечающие за работу сервисов MS DC Kerberos через
UDP и LDAP через TCP:
C:\>nslookup.exe
> set type=SRV
> _kerberos._udp.dc._msdcs.domf.testf.
_kerberos._udp.dc._msdcs.domf.testf. SRV service
location:
priority = 0
weight = 100
port = 88
svr hostname = dcf.domf.testf.
> _ldap._tcp.dc._msdcs.domf.testf.
_ldap._tcp.dc._msdcs.domf.testf. SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = dcf.domf.testf.
4) Далее проверить наличие записей для работы сервисов AD на DNS-сервере
AD.
Запись, отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:
C:\>nslookup.exe
> set type=SRV
> _kerberos._udp.dc._msdcs.domc.testc.
_kerberos._udp.dc._msdcs.domc.testc. SRV service location:
priority = 0
weight = 100
port = 88
svr hostname = dcc.domc.testc.
> _ldap._tcp.dc._msdcs.domc.testc.
_ldap._tcp.dc._msdcs.domc.testc. SRV service location:
priority = 0
weight = 100
port = 389
svr hostname = dcc.domc.testc.
На IPA-сервере
Проверить наличие записей для работы сервисов IPA на DNS-сервере IPA.
1) Запись, отвечающая за работу сервисов Kerberos через UDP и LDAP через
TCP:
# dig +short -t SRV _kerberos._udp.domf.testf.
0 100 88 dcf.domf.testf.
363
ЛКНВ.11100-01 90 01
# dig +short -t SRV _ldap._tcp.domf.testf.
0 100 389 dcf.domf.testf.
2) Запись, отвечающая за имя Kerberos realm IPA домена:
dig +short -t TXT _kerberos.domf.testf.
"DOMF.TESTF"
3) После выполнения команды ipa-adtrust-install должны появиться
записи, отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через
TCP:
# dig +short -t SRV _kerberos._udp.dc._msdcs.domf.testf.
0 100 88 dcf.domf.testf.
# dig +short -t SRV _ldap._tcp.dc._msdcs.domf.testf.
0 100 389 dcf.domf.testf.
4) Далее проверить наличие записей для работы сервисов AD на DNS-сервере
IPA.
Запись, отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:
# dig +short -t SRV _kerberos._udp.dc._msdcs.domc.testc.
0 100 88 dcc.domc.testc.
# dig +short -t SRV _ldap._tcp.dc._msdcs.domc.testc.
0 100 389 dcc.domc.testc.
ВНИМАНИЕ!
Если запись _kerberos._udp.dc._msdcs.domc.testc. не доступна проверьте
_kerberos._tcp.dc._msdcs.domc.testc.
Настройка доверия
Добавление двунаправленных доверительных отношений леса (Forest Trust) с
AD (необходимо ввести пароль Administrator AD, имя доменного администратора
Windows должно быть на латинице):
# kinit admin
# ipa trust-add --type=ad domc.testc --admin Administrator --
password --two-way=true
Далее необходимо запросить сервер AD о его доверенных доменах:
# ipa trust-fetch-domains domc.testc
При этом IPA создаст нужные id-диапазоны для доверенных доменов.
Если нужно добавить еще один домен DOME.TESTE, то необходимо настроить
DNS на обоих серверах, чтобы они видели друг друга, и выполнить команду еще раз,
чтобы IPA-сервер узнал о нем: # ipa trust-fetch-domains domc.testc
Найти все доверенные домены можно и с помощью веб-интерфейса. Для это
перейти в раздел «IPA Server» → «Trusts» и выбрать нужный домен (рис. 179).
364
ЛКНВ.11100-01 90 01
Нажать на кнопку «Fetch domains», это обновит список доверенных доменов
(рис. 180).
Для того чтобы увидеть список всех доверенных доменов используйте
следующую команду: # ipa trustdomain-find domc.testc
Рис. 179
Рис. 180
Проверка конфигурации Kerberos
1) Запросить ticket для IPA пользователя: # kinit admin
2) Запросить service ticket для сервиса из IPA домена:
# kvno -S host dcf.domf.testf
host/dcf.domf.testf@DOMF.TESTF: kvno = 2
3) Запросить service ticket сервиса из AD домена:
# kvno -S cifs dcc.domc.testc
cifs/dcc.domc.testc@: kvno = 3
365
ЛКНВ.11100-01 90 01
Если запрос service ticket для сервиса из AD домена прошел успешно, то
должен появиться междоменный ticket-granting ticket, его имя
krbtgt/DOMC.TESTC@DOMF.TESTF:
# klist
Проверка пользователей доверенного домена
Для проверки доступа к пользователям из доверенного домена на рабочей
станции IPA выполнить команду:
# getent passwd u01domc@domc
u01domc@domc.testc:*:328601108:328601108:u01domc:/home/domc.testc
/u01domc:
где u01domc это пользователь из AD домена. Обратите внимание, что не указана
оболочка входа. Назначить оболочку входа для пользователей из доверенного домена
можно добавив на сервере IPA в файл /etc/sssd/sssd.conf следующую строчку:
[domain/domf.testf]
...
default_shell = /bin/bash
...
Вывод команды должен стать таким:
# getent passwd u01domc@domc
u01domc@domc.testc:*:328601108:328601108:u01domc:/home/domc.testc
/u01domc:/bin/bash
ВНИМАНИЕ!
1) Для корректной работы сервера IPA с пользователями доверенного домена
AD необходимо обеспечить доступ сервиса sssd к /etc/krb5.keytab.
2) Для входа AD пользователя в ALT рабочую станцию из IPA имя пользователя
вводится в формате DOMC\username или DOMC.TESTC\username или username@domc
username@domc.testc.
3) Для входа IPA пользователя в Windows рабочую станцию из AD имя
пользователя вводится в формате DOMF.TESTF\username.
Настройка служб DNS (Bind)
9.6.1. Общие сведения
Службы DNS (Bind) в ОС Альт 8 СП отвечают за преобразование доменного
имени в IP-адрес и за обратную операцию.
Если локальная сеть не подключена к сети Интернет, вполне возможно, что
внутренний DNS-сервер в ней не нужен. За преобразование доменного имени в IP-
адрес и обратно в различные механизмы, лишь один из которых базируется на службе
доменных имен. В самом простом случае имена всех компьютеров вместе с их
адресами можно записать в файл /etc/hosts. Порядок просмотра различных
пространств имен указывается в файле /etc/nsswitch.conf. Строка
366
ЛКНВ.11100-01 90 01
hosts: files dns этого файла предписывает приложениям, пользующимся
стандартной функцией gethostbyname() сначала обратиться в /etc/hosts, а затем
отправить запрос к DNS-серверу.
Если задачу преобразования имен в адреса взял на себя провайдер, собственный
DNS-сервер также не требуется. В этом случае на всех компьютерах в качестве
сервера имен указывается сервер провайдера (поле «nameserver» в файле
/etc/resolv.conf), к которому и идут все запросы. Даже если внутренняя сеть
организована согласно RFC1918 (т. н. интранет) и адреса компьютеров в ней
недоступны из внешней сети, DNS-запросы во внешнюю сеть будут выполняться.
Между собой компьютерам предлагается общаться с помощью /etc/hosts или
IP-адресов.
Некоторые службы и системные утилиты, работающие с доменными именами,
запускаются в ОС Альт 8 СП с использованием chroot каталоге /var/resolv),
поэтому после изменения упомянутых файлов рекомендуется выполнить команду:
update_chrootedconf
Собственную службу доменных имен рекомендуется настраивать для решения
задач, описанных ниже.
9.6.2. Уменьшение времени ответа на DNS-запрос абонентов внутренней сети
Если канал подключения к сети Интернет обладает большим временем
задержки, то работа с данными, включающими в себя много доменных имен
(например, с www-страницами) может замедлиться. Общий объем трафика при этом
не вырастет, поскольку система доменных имен распределенная база данных,
поддерживающая механизм кеширования запросов. Первое обращение к
кеширующему DNS-серверу приводит к выполнению рекурсивного запроса:
опрашивается сервер более высокого уровня, который, если не знает ответа, передаст
запрос дальше. Результат запроса сохраняется в кэше, и таким образом все
последующие обращения именно к этой записи дальше кеширующего сервера не
уйдут. Время жизни (Time To Live, TTL) записи в кэше определяется хозяином
запрошенного доменного имени. По истечении TTL запись из кэша удаляется.
9.6.3. Именование компьютеров в интранет-сети
Решение этой задачи может потребоваться, если среди компьютеров
внутренней сети есть свои серверы (например, корпоративный www-сервер), к
которым другие компьютеры обращаются по доменному имени.
Поскольку адреса такой сети не пойдут дальше межсетевого экрана,
допускается использовать имя какого угодно в том числе несуществующего
домена и сделать соответствующие записи /etc/hosts. Поддержание в актуальном
состоянии файла /etc/hosts на всех компьютерах нелегкая задача, и лучше
все-таки воспользоваться DNS-сервером.
367
ЛКНВ.11100-01 90 01
9.6.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.
В связи с возможными ограничениями на право обращаться к серверу с
обычными и рекурсивными запросами (настройки 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.
368
ЛКНВ.11100-01 90 01
Кроме записи типа 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
)
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, где @ означает имя домена, указанное в
конфигурационном файле.
369
ЛКНВ.11100-01 90 01
Как видно из примера, всю работу в сети делает компьютер с адресом
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», необходимо запросить информацию о
доменном имени 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, входящих в
370
ЛКНВ.11100-01 90 01
пакет bind. Они же используются при запуске службы командой
service bind start.
Стоит иметь ввиду, что, в отличие от прямых зон, обратные описывают
административную принадлежность компьютеров, но сами принадлежат хозяину
сети (как правило, провайдеру).
Существует особого рода затруднение, связанное с работой DNS-сервера уже
не во внутренней сети, а в сети Интернет. Связано это с тем, что подсети класса C
(сети /24, в которых сетевая маска занимает 24 бита, а адрес компьютера 8)
выдаются только организациям, способным такую подсеть освоить сети класса C
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; };
};
Вторичный сервер рекомендуется размещать в сети, отличной от той, в которой
помещается первичный, – так повышается надежность обработки запроса (если один
сервер недоступен, возможно, ответит второй) и возрастает скорость
распространения записей по кэшам промежуточных серверов.
371
ЛКНВ.11100-01 90 01
Проверку работоспособности, доступности и вообще самочувствия
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).
Система мониторинга Zabbix
Zabbix система мониторинга и отслеживания статусов разнообразных
сервисов компьютерной сети, серверов и сетевого оборудования.
Для управления системой мониторинга и чтения данных используется
веб-интерфейс.
9.7.1. Установка сервера PostgreSQL
Перед установкой Zabbix должен быть установлен и запущен сервер
PostgreSQL, с созданным пользователем zabbix и созданной базой zabbix.
Установить необходимые пакеты:
# apt-get install postgresql9.6-server zabbix-server-pgsql
где 9.6 актуальная версия пакета.
Подготовить к запуску и настроить службы PostgreSQL, для этого необходимо
выполнить следующие действия:
- создать системные базы данных:
# /etc/init.d/postgresql initdb
- включить по умолчанию и запустить службу:
372
ЛКНВ.11100-01 90 01
# 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'
# su - postgres -s /bin/sh -c 'psql -U zabbix -f
/usr/share/doc/zabbix-common-database-pgsql-*/data.sql zabbix'
9.7.2. Установка Apache2
Установить необходимые пакеты:
# apt-get install apache2 apache2-mod_php7
Добавить в автозапуск и запустить apache2:
# chkconfig httpd2 on
# service httpd2 start
9.7.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.7.4. Установка и настройка Zabbix-сервера
Установить, если еще не установлены, пакеты:
# apt-get install zabbix-server-pgsql fping
Внести изменения в конфигурационный файл
/etc/zabbix/zabbix_server.conf:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Пароль от базы
373
ЛКНВ.11100-01 90 01
Добавить Zabbix-сервер в автозапуск и запустить его:
# chkconfig zabbix_pgsql on
# service zabbix_pgsql start
9.7.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 Ste (рис. 181), что
осуществит переход на страницу проверки предварительных условий.
Рис. 181
Необходимо доустановить то, что требуется и перейти на следующую
страницу.
Здесь необходимо ввести параметры подключения к базе данных (параметры
подключения нужно указывать такие же, как у Zabbix-сервера). По умолчанию в
качестве «Database schema» необходимо указать «public» (рис. 182).
374
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Если выбрана опция Шифрование TLS базы данных
(Database TLS encryption), то в форме появятся дополнительные поля для настройки
TLS-соединения с базой данных.
Далее необходимо задать имя сервера и завершить установку (рис. 183).
Рис. 182
Рис. 183
После окончания установки на экране будет отображаться форма входа в
веб-интерфейс управления системой мониторинга (рис. 184)
http://IP-сервера/zabbix. Параметры доступа по умолчанию:
Логин: Admin
Пароль: zabbix
375
ЛКНВ.11100-01 90 01
Рис. 184 Вход в веб-интерфейс управления системой мониторинга
Войдя в систему, нужно сменить пароль администратора, завести других
пользователей и затем можно переходить к настройкам Zabbix.
П р и м е ч а н и е . В профиле пользователя можно настроить некоторые
функции веб-интерфейса Zabbix, такие как язык интерфейса, цветовая тема,
количество отображаемых строк в списках и т. п. Сделанные в профиле изменения
будут применены только к пользователю, в профиле которого были сделаны эти
изменения.
Чтобы собирать информацию с узлов, Zabbix-сервер использует информацию,
получаемую от агентов. Чтобы добавить новый узел, следует установить на узел,
который необходимо мониторить Zabbix-агент (п. 9.7.6) и добавить новый хост на
Zabbix-сервере (п. 9.7.7, п. 9.7.8).
9.7.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 будет пустой или закомментирован,
то узел добавится под системным именем.
376
ЛКНВ.11100-01 90 01
Добавить Zabbix-агент в автозапуск и запустить его:
# systemctl enable --now zabbix_agentd.service
9.7.7. Добавление нового хоста на Zabbix-сервере
Каждый хост необходимо зарегистрировать на Zabbix-сервере, сделать это
можно, используя веб-интерфейс.
Информация о настроенных узлах сети в Zabbix доступна в разделе меню
«Настройка» «Узлы сети». Для добавления нового узла сети следует нажать на
кнопку «Создать узел сети» (рис. 185).
Рис. 185
В открывшемся окне необходимо заполнить поля «Имя узла сети» и
«IP адрес» согласно данным добавляемого хоста. Затем следует добавить хост в
определенную группу, выбрав одну из них из списка, либо создав новую группу (рис.
186). П р и м е ч а н и е . В поле «Имя узла сети» ставится значение, которое указано
в настройках агента (/etc/zabbix/zabbix_agentd.conf) в поле Hostname.
П р и м е ч а н и е . Все права доступа назначаются на группы узлов сети, а не
индивидуально узлам сети. Поэтому узел сети должен принадлежать хотя бы одной
группе.
Перейти на вкладку «Шаблоны», выбрать шаблон «Template OS Linux by Zabbix
agent» и нажать на кнопку «Добавить» (рис. 187).
377
ЛКНВ.11100-01 90 01
Рис. 186
Рис. 187
Получение первых данных может занять до 60 секунд. Для того чтобы
просмотреть собранные данные необходимо перейти в раздел «Мониторинг»
«Последние данные», выбрать в фильтре нужный узел сети и нажать на кнопку
«Применить» (рис. 188).
Рис. 188
378
ЛКНВ.11100-01 90 01
9.7.8. Авторегистрация узлов
В Zabbix существует механизм, который позволяет Zabbix-серверу начинать
мониторинг нового оборудования автоматически, если на этом оборудовании имеется
установленный Zabbix-агент. Такой подход позволяет добавлять новые узлы сети на
мониторинг без какой-либо настройки Zabbix-сервера вручную по каждому
отдельному узлу сети.
Для настройки авторегистрации, перейти в раздел «Настройка» → «Действия».
В выпадающем списке действий выбрать значение «Действия авторегистрации»» и
нажать на кнопку «Создать действие» (рис. 189).
На открывшейся странице на вкладке «Действия» заполнить поле «Имя» и в
поле «Условия» следует задать правила, по которым будут идентифицироваться
регистрируемые хосты (рис. 190).
На вкладке «Операции» в поле «Операции» следует добавить правила, которые
необходимо применить при регистрации хоста. Например, для добавления узла,
добавления его к группе «Discovered hosts» с присоединением к шаблону «Template
OS Linux by Zabbix agent» (рис. 191).
Рис. 189
Рис. 190
379
ЛКНВ.11100-01 90 01
Рис. 191
В конфигурационном файле агента указать следующие значения:
- в параметре Hostname – уникальное имя;
- в параметре ServerActive – IP-адрес сервера;
- в параметре HostMetadata – значение, которое было указано в настройках
сервера (HostMetadata=alt.autoreg).
Перезапустить агент.
Отказоустойчивый кластер (High Availability) на основе Pacemaker
Pacemaker – менеджер ресурсов кластера (Cluster Resource Manager), задачей
которого является достижение максимальной доступности управляемых им ресурсов
и защита их от сбоев как на уровне самих ресурсов, так и на уровне целых узлов
кластера. Ключевые особенности Pacemaker:
- обнаружение и восстановление сбоев на уровне узлов и сервисов;
- возможность гарантировать целостность данных путем ограждения
неисправных узлов;
- поддержка одного или нескольких узлов на кластер;
- поддержка нескольких стандартов интерфейса ресурсов (все, что может быть
написано сценарием, может быть кластеризовано);
- независимость от подсистемы хранения – общий диск не требуется;
- поддержка и кворумных и ресурсозависимых кластеров;
- автоматически реплицируемая конфигурация, которую можно обновлять с
любого узла;
- возможность задания порядка запуска ресурсов, а также их совместимости на
одном узле;
- поддерживает расширенные типы ресурсов: клоны (когда ресурс запущен на
множестве узлов) и дополнительные состояния (master/slave и подобное);
- единые инструменты управления кластером с поддержкой сценариев.
380
ЛКНВ.11100-01 90 01
Архитектура Pacemaker представляет собой три уровня:
- кластеронезависимый уровень – на этом уровне располагаются ресурсы и их
скрипты, которыми они управляются и локальный демон, который скрывает
от других уровней различия в стандартах, использованных в скриптах;
- менеджер ресурсов (Pacemaker) – реагирует на события, происходящие в
кластере: отказ или присоединение узлов, ресурсов, переход узлов в
сервисный режим и другие административные действия. Pacemaker исходя из
сложившейся ситуации делает расчет наиболее оптимального состояния
кластера и дает команды на выполнения действий для достижения этого
состояния (остановка/перенос ресурсов или узлов);
- информационный уровень (Corosync) – на этом уровне осуществляется
сетевое взаимодействие узлов, т.е. передача сервисных команд
(запуск/остановка ресурсов, узлов и т.д.), обмен информацией о полноте
состава кластера (quorum) и т. д.
Узел (node) кластера представляет собой физический сервер или виртуальную
машину с установленным Pacemaker. Узлы, предназначенные для предоставления
одинаковых сервисов, должны иметь одинаковую конфигурацию.
Ресурсы, с точки зрения кластера, это все используемые сущности – сервисы,
службы, точки монтирования, тома и разделы. При создании ресурса потребуется
задать его класс, тип, провайдера и собственно имя с дополнительными параметрами.
Ресурсы поддерживают множество дополнительных параметров: привязку к узлу
(resource-stickiness), роли по умолчанию (started, stoped, master) и т. д. Есть
возможности по созданию групп ресурсов, клонов (работающих на нескольких узлах)
и т. п.
Связи определяют привязку ресурсов к узлу (location), порядок запуска
ресурсов (ordering) и совместное их проживание на узле (colocation).
Ниже приведена инструкция по установке и настройке кластера в
ОС Альт 8 СП Сервер (64 бит, AArch64 (ARMv8), ppc64le (POWER)).
9.8.1. Настройка узлов кластера
Рекомендации:
- дата и время между узлами в кластере должны быть синхронизированы;
- должно быть обеспечено разрешение имен узлов в кластере;
- сетевые подключения должны быть стабильными;
- у узлов кластера для организации изоляции (fencing) узла должны
присутствовать функции управления питанием/перезагрузкой с помощью
IPMI(ILO);
- следующие порты могут использоваться различными компонентами
кластеризации: TCP-порты 2224, 3121 и 21064 и UDP-порт 5405 и должны
быть открыты/доступны.
381
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . В примере используется следующая конфигурация:
- ipa2 – первый узел кластера (IP 192.168.0.145/24);
- ipa2 – второй узел кластера (IP 192.168.0.113/24);
- 192.168.0.251 – виртуальный IP по которому будет отвечать один из узлов.
Дальнейшие действия следует выполнить на всех узлах кластера.
П р и м е ч а н и е . Для изменения имени хоста без перезагрузки, можно
воспользоваться утилитой hostnamctl: # hostnamectl set-hostname ipa
Следует обеспечить взаимно однозначное прямое и обратное преобразование
имен для всех узлов кластера. Желательно использовать DNS, в крайнем случае,
можно обойтись соответствующими записями в локальных файлах /etc/hosts на
каждом узле:
# echo "192.168.0.145 ipa" >> /etc/hosts
# echo "192.168.0.113 ipa2" >> /etc/hosts
П р и м е ч а н и е . Перезагрузить ОС после изменения конфигурации.
Проверка правильности разрешения имен:
# ping ipa
PING ipa (192.168.0.145) 56(84) bytes of data.
64 bytes from ipa (192.168.0.145): icmp_seq=1 ttl=64 time=0.635 ms
# ping ipa2
PING ipa2 (192.168.0.113) 56(84) bytes of data.
64 bytes from ipa2 (192.168.0.113): icmp_seq=1 ttl=64 time=0.352 ms
При настройке ssh-подключения для root по ключу необходимо убрать
комментарии в файле /etc/openssh/sshd_config для строк:
PermitRootLogin without-password
PubkeyAuthentication yes
AuthorizedKeysFile /etc/openssh/authorized_keys/%u
/etc/openssh/authorized_keys2/%u .ssh/authorized_keys .ssh/authorized_keys2
PasswordAuthentication yes
Кроме того, полезно добавить в /etc/openssh/sshd_config директиву:
AllowGroups sshusers
создать группу sshusers: # groupadd sshusers
и добавить туда пользователей, которым разрешено подключаться по ssh:
# gpasswd -a <username> sshusers
Создать и активировать новый ключ SSH без пароля:
# ssh-keygen -t ecdsa -f ~/.ssh/id_ecdsa -N ""
# cp ~/.ssh/id_ecdsa.pub ~/.ssh/authorized_keys
ВАЖНО
Незащищенные ключи SSH (без пароля) не рекомендуются для серверов,
открытых для внешнего мира.
Установить ключ на другой узел:
# ssh-copy-id -i ~/.ssh/id_ecdsa.pub user@ipa2
user@ipa2 $ su -
ipa2 # cat /home/user/.ssh/authorized_keys >> /root/.ssh/authorized_keys
ipa2 # exit
382
ЛКНВ.11100-01 90 01
user@ipa2 $ exit
Убедиться, что теперь можно запускать команды удаленно, без пароля:
# ssh ipa2 -- uname -n
ipa2
9.8.2. Установка кластерного ПО и создание кластера
Для управления кластером Pacemaker можно использовать утилиты pcs или crm
(пакет crmsh).
Установить на всех узлах необходимые пакеты:
# apt-get install corosync resource-agents pacemaker pcs
П р и м е ч а н и е . Пакет resource-agent – содержит агенты ресурсов (набор
скриптов) кластера, соответствующие спецификации Open Cluster Framework (OCF),
используемые для взаимодействия с различными службами в среде высокой
доступности, управляемой менеджером ресурсов Pacemaker. Если есть
необходимость управлять дополнительными ресурсами, следует установить
недостающий пакет resource-agents-*:
apt-cache search resource-agents*
Пакет pcs (pacemaker/corosync configuration system) – утилита для управления,
настройки и мониторинга кластера. Управляется как через командную строку, так и
через веб-интерфейс.
При установке Pacemaker автоматически будет создан пользователь hacluster.
Для использования pcs, а также для доступа в веб-интерфейс нужно задать пароль
пользователю hacluster (одинаковый на всех узлах): # passwd hacluster
Запустить и добавить в автозагрузку службу pcsd:
# systemctl enable --now pcsd
Настроить аутентификацию (на одном узле):
# pcs host auth ipa ipa2 -u hacluster
Password:
ipa: Authorized
ipa2: Authorized
После этого кластером можно управлять с одного узла.
Создать кластер:
# pcs cluster setup newcluster ipa ipa2
No addresses specified for host 'ipa', using 'ipa'
No addresses specified for host 'ipa2', using 'ipa2'
Destroying cluster on hosts: 'ipa', 'ipa2'...
ipa2: Successfully destroyed cluster
ipa: Successfully destroyed cluster
Requesting remove 'pcsd settings' from 'ipa', 'ipa2'
ipa: successful removal of the file 'pcsd settings'
ipa2: successful removal of the file 'pcsd settings'
Sending 'corosync authkey', 'pacemaker authkey' to 'ipa', 'ipa2'
ipa: successful distribution of the file 'corosync authkey'
ipa: successful distribution of the file 'pacemaker authkey'
ipa2: successful distribution of the file 'corosync authkey'
ipa2: successful distribution of the file 'pacemaker authkey'
383
ЛКНВ.11100-01 90 01
Sending 'corosync.conf' to 'ipa', 'ipa2'
ipa: successful distribution of the file 'corosync.conf'
ipa2: successful distribution of the file 'corosync.conf'
Cluster has been successfully set up.
Запустить кластер:
# pcs cluster start --all
ipa: Starting Cluster...
ipa2: Starting Cluster...
Настройка автоматического включения кластера при загрузке:
# pcs cluster enable --all
ipa: Cluster Enabled
ipa2: Cluster Enabled
Проверка состояния кластера:
# pcs status cluster
Cluster Status:
Cluster Summary:
* Stack: corosync
* Current DC: ipa (version 2.0.3-alt2-4b1f869f0) - partition with quorum
* Last updated: Mon Jan 25 15:52:33 2021
* Last change: Mon Jan 25 12:24:18 2021 by root via cibadmin on ipa2
* 2 nodes configured
* 0 resource instances configured
Node List:
* Online: [ ipa ipa2 ]
PCSD Status:
ipa: Online
ipa2: Online
Проверка синхронизации узлов кластера:
# corosync-cmapctl | grep members
runtime.members.1.config_version (u64) = 0
runtime.members.1.ip (str) = r(0) ip(192.168.0.145)
runtime.members.1.join_count (u32) = 1
runtime.members.1.status (str) = joined
runtime.members.2.config_version (u64) = 0
runtime.members.2.ip (str) = r(0) ip(192.168.0.113)
runtime.members.2.join_count (u32) = 2
Веб-интерфейс управления кластером расположен по адресу
https://<имя-компьютера>:2224 качестве имени компьютера можно
использовать имя или IP-адрес одного из узлов в кластере). Потребуется пройти
аутентификацию (логин и пароль учетной записи hacluster) (рис. 192).
384
ЛКНВ.11100-01 90 01
Рис. 192 Аутентификация
После входа в систему на главной странице отображается страница
«Управление кластерами». На этой странице перечислены кластеры, которые в
настоящее время находятся под управлением веб-интерфейса. Чтобы добавить
существующий кластер в веб-интерфейс, необходимо нажать на кнопку
«Add Existing» и ввести имя или IP-адрес любого узла в кластере. При выборе
кластера отображается информация о кластере (рис. 193).
Рис. 193 Информация о кластере
9.8.3. Настройка основных параметров кластера
Настройки кластера можно просмотреть, выполнив команду:
# pcs property
Cluster Properties:
cluster-infrastructure: corosync
cluster-name: newcluster
dc-version: 2.0.3-alt2-4b1f869f0
enable-acl: true
have-watchdog: false
385
ЛКНВ.11100-01 90 01
Кворум
Кворум определяет минимальное число работающих узлов в кластере, при
котором кластер считается работоспособным. По умолчанию, кворум считается
неработоспособным, если число работающих узлов меньше половины от общего
числа узлов. Так как в данной инструкции узла всего два, то кворума не будет,
поэтому следует отключить эту политику:
# pcs property set no-quorum-policy=ignore
Настройка STONITH
Для корректной работы узлов с общим хранилищем, необходимо настроить
механизм STONITH. Этот механизм позволяет кластеру физически отключить не
отвечающий на запросы узел, чтобы не повредить данные на общем хранилище.
Отключить STONITH, пока он не настроен можно, выполнив команду:
# pcs property set stonith-enabled=false
ВАЖНО
В реальной системе нельзя использовать конфигурацию с отключенным
STONITH. Отключенный параметр на самом деле не отключает функцию, а только
лишь эмулирует ее срабатывание при определенных обстоятельствах.
Настройка IPaddr2
Настроим ресурс, который будет управлять виртуальным IP-адресом. Этот
адрес будет мигрировать между узлами предоставляя одну точку входа к ресурсам,
заставляя работать несколько узлов как одно целое устройство для сервисов.
Команда создания ресурса виртуального IP-адреса с именем ClusterIP с
использованием алгоритма ресурсов ocf (каждые 20 минут производить мониторинг
работы, в случае выхода из строя узла необходимо виртуальный IP переключить на
другой узел):
# pcs resource create ClusterIP ocf:heartbeat:IPaddr2
ip=192.168.0.251 cidr_netmask=24 op monitor interval=20s
Список доступных стандартов ресурсов:
# pcs resource standards
lsb
ocf
service
systemd
Список доступных поставщиков сценариев ресурсов OCF:
# pcs resource providers
heartbeat
pacemaker
redhat
Получить список всех агентов ресурсов, доступных для определенного
поставщика OCF:
# pcs resource agents ocf:heartbeat
aliyun-vpc-move-ip
anything
AoEtarget
386
ЛКНВ.11100-01 90 01
apache
asterisk
Xinetd
zabbixserver
ZFS
Статус кластера, с добавленным ресурсом:
# pcs status
Cluster name: newcluster
Cluster Summary:
* Stack: corosync
* Current DC: ipa2 (version 2.0.3-alt2-4b1f869f0) - partition with
quorum
* Last updated: Mon Jan 25 20:46:20 2021
* Last change: Mon Jan 25 20:46:11 2021 by root via cibadmin on ipa
* 2 nodes configured
* 2 resource instances configured
Node List:
* Online: [ ipa ipa2 ]
Full List of Resources:
* ClusterIP (ocf::heartbeat:IPaddr2): Started ipa
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Если остановить кластер на узле ipa:
# pcs cluster stop ipa
ipa: Stopping Cluster (pacemaker)...
ipa: Stopping Cluster (corosync)...
ClusterIP начнет работать на ipa2 (переключение произойдет автоматически).
Проверка статуса на втором узле:
# pcs status
Cluster name: newcluster
Cluster Summary:
* Stack: corosync
* Current DC: ipa (version 2.0.3-alt2-4b1f869f0) - partition with quorum
* Last updated: Mon Jan 25 20:56:00 2021
* Last change: Mon Jan 25 20:46:11 2021 by root via cibadmin on ipa
* 2 nodes configured
* 2 resource instances configured
Node List:
* Online: [ ipa2 ]
* OFFLINE: [ ipa ]
Full List of Resources:
* ClusterIP (ocf::heartbeat:IPaddr2): Started ipa2
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabaled
387
ЛКНВ.11100-01 90 01
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
388
ЛКНВ.11100-01 90 01
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 вывод содержимого системного буфера сообщений;
389
ЛКНВ.11100-01 90 01
- 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 постраничный вывод содержимого файла;
390
ЛКНВ.11100-01 90 01
- 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).
391
ЛКНВ.11100-01 90 01
Узнать об опциях команд можно с помощью команды 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
Позволяет вывести время и дату последней загрузки системы.
392
ЛКНВ.11100-01 90 01
Окончание таблицы 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 имя терминальной линии;
393
ЛКНВ.11100-01 90 01
- 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).
394
ЛКНВ.11100-01 90 01
Команда 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
Список_идентификаторов_процессов – позволяет вывести
информацию только об указанных процессах.
395
ЛКНВ.11100-01 90 01
Окончание таблицы 11
Опция
Описание
-u
Список_идентификаторов_пользователей – позволяет
вывести информацию только о процессах с заданными
идентификаторами или входными именами пользователей
(идентификатор пользователя выводится в числовом виде,
а при наличии опции -f в символьном).
-g
Список_идентификаторов_лидеров_групп – позволяет
вывести информацию только о процессах, для которых
указаны идентификаторы лидеров групп (лидер группы
это процесс, номер которого идентичен его
идентификатору группы).
ps выводит четыре основных поля информации для каждого процесса:
- PID идентификатор процесса;
- TTY терминал, с которого был запущен процесс;
- TIME время работы процесса;
- COMMAND имя выполненной команды.
При указании опции -f команда ps пытается определить имя команды и
аргументы, с которыми был создан процесс, исследуя пользовательский блок
процесса. В случае если это не удается, имя процесса выводится так же, как и при
отсутствии опции f, только заключается в квадратные скобки.
В таблице 12 приводятся заголовки колонок листинга, и поясняется смысл их
содержимого. Буквы «l» или «f» в скобках означают, что эта колонка появляется
соответственно при длинном или полном формате листинга, отсутствие букв
означает, что данная колонка выводится всегда. При этом опции -l и -f влияют
только на формат выдачи, но не на список процессов, информация о которых будет
предоставлена.
396
ЛКНВ.11100-01 90 01
Т а б л и ц а 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)
Доля выделенного планировщиком времени
центрального процессора.
397
ЛКНВ.11100-01 90 01
Окончание таблицы 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 заставляет ОС игнорировать выход из нее и
продолжать выполнение до тех пор, пока процесс не закончится сам по себе. Будет
запущен процесс, который продолжит свое выполнение, не требуя контроля
администратора.
398
ЛКНВ.11100-01 90 01
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 &
Наличие символа «&» в примере достаточно условно, можно изменять
приоритеты, как фоновых процессов, так и процессов переднего плана.
399
ЛКНВ.11100-01 90 01
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 может повысить приоритет
процесса.
400
ЛКНВ.11100-01 90 01
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
При успешном завершении процесса никакое сообщение не выводится.
Сообщение появится при попытке завершения процесса без наличия
соответствующих прав доступа или при попытке завершить несуществующий
процесс.
401
ЛКНВ.11100-01 90 01
Завершение родительского процесса иногда приводит к завершению дочерних,
однако для полной уверенности в завершении всех процессов, связанных с данным,
следует указывать их в команде kill.
В случае, если терминал оказался заблокированным, можно войти в систему с
другого терминала:
ps -ef: grep $LOGNAME
и завершить работу оболочки на блокированном терминале.
При выполнении команда kill посылает процессу соответствующий сигнал.
Программы ОС могут посылать и принимать более 20 сигналов, каждый из которых
имеет свой номер. Например, при выходе администратора ОС посылает всем его
процессам сигнал 1, который заставляет все процессы (кроме запущенных с помощью
nohup) прекратить работу. Программы могут быть написаны и таким образом, что
будут игнорировать посылаемые им сигналы, включая сигнал 15, который возникает
при запуске команды kill без указания конкретного сигнала.
Однако сигнал 9 не может быть проигнорирован процесс все равно будет
завершен. Таким образом, если команда kill PID не смогла завершить процесс (он
виден при использовании команды ps), необходимо воспользоваться следующей
командой: kill -9 PID
Команда kill -9 прекращает процесс, не давая возможности, например,
корректно закрыть файлы, что может привести к потере данных. Использовать эту
возможность следует только в случае крайней необходимости.
Для завершения всех фоновых процессов необходимо ввести следующую
команду:
kill 0
Команда killall завершает все процессы с данным именем, обладает
следующим синтаксисом:
killall [имя процесса]
Пример использования killall:
killall httpd
402
ЛКНВ.11100-01 90 01
Преимущественное право контроля над процессом принадлежит владельцу.
Права владельца могут отменяться только пользователем с идентификатором root.
Ядро назначает каждому процессу четыре идентификатора: реальный и
эффективный UID, реальный и эффективный GID. Реальные ID используются для
учета использования системных ресурсов, а эффективные для определения прав
доступа. Как правило, реальные и эффективные ID совпадают. Владелец процесса
может посылать в процесс сигналы, а также понижать приоритет процесса.
Процесс, приступающий к выполнению другого программного файла,
осуществляет один из системных вызовов семейства ехес. Когда такое случается,
эффективные UID и GID процесса могут быть установлены равными UID и GID
файла, содержащего образ новой программы, если у этого файла установлены биты
смены идентификатора пользователя и идентификатора группы.
Системный вызов ехес это механизм, с помощью которого такие команды,
как passwd, временно получают права пользователя с идентификатором root (команде
passwd они нужны для того, чтобы изменить /etc/passwd).
Основные утилиты для операций с файлами и каталогами
10.3.1. Команда ls
Команда ls предназначена для вывода информации о файлах или каталогах.
Команда ls для каждого имени каталога распечатывает список входящих в этот
каталог файлов; для файлов повторяется имя файла и выводится дополнительная
информация в соответствии с указанными флагами. По умолчанию имена файлов
выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое
текущего каталога.
Синтаксис:
ls [параметры]... [файл]...
Параметры:
1) -a, --all вывести список всех файлов (обычно не выводятся файлы, имена
которых начинаются с точки);
2) -A, --almos-all не показывать подразумеваемые «.» и «..»;
403
ЛКНВ.11100-01 90 01
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 рекурсивно обойти встретившиеся подкаталоги;
17) -s, --size выдавать размер файлов в блоках;
404
ЛКНВ.11100-01 90 01
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 право на запись;
3) x право на выполнение (поиск в каталоге);
405
ЛКНВ.11100-01 90 01
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); номера описателей файлов будут выведены в левой
колонке (i); размеры файлов блоках) выводятся во второй колонке (s); наконец,
будут выданы числовые идентификаторы владельцев и групп (n):
ls aisn
406
ЛКНВ.11100-01 90 01
Возможные сообщения об ошибках, при использовании команды 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 выводить имя каждого файла перед копированием.
По умолчанию суффикс для резервных копий «~». Его можно переопределить
при помощи опции --suffix или переменной окружения SIMPLE_BACKUP_SUFFIX.
407
ЛКНВ.11100-01 90 01
Способ контроля версий может быть задан через опцию --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
2) Копирование локальных данных на удаленный хост:
rsync avzh /tmp/firstdir user@10.110.2.1:/tmp/seconddir
408
ЛКНВ.11100-01 90 01
Возможные сообщения об ошибках, при использовании команды 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 предназначена для копирования файла (по умолчанию из
стандартного ввода на стандартный вывод), используя заданные размеры блоков для
ввода и вывода, и в тоже время выполняя его преобразование.
Синтаксис:
dd [параметр]
Основные опции:
409
ЛКНВ.11100-01 90 01
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:
Ошибка: файл <файл>: Отказано в доступе
Ошибка: файл <файл>: Нет такого файла или каталога
П р и м е ч а н и е . Для работы команды s_rm и s_fill должен быть установлен
пакет altsp-test-scripts.
10.3.7. Команда s_fill
Команда s_fill выполняет безопасную перезапись свободного пространства
на разделе, в котором находится указанная директория и всех свободных индексных
дескриптеров указанного каталога.
Синтаксис:
S_fill каталог...
Возможные сообщения об ошибках, при использовании команды s_fill:
Ошибка: не достаточно прав для <каталог>: Отказано в доступе
10.3.8. Команда cd
Команда cd предназначена для смены каталога. Команда работает как с
абсолютными, так и с относительными путями. Если каталог не указан, используется
410
ЛКНВ.11100-01 90 01
значение переменной окружения 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=РЕЖИМ установить права доступа для создаваемых каталогов;
2) -p, --parents перед созданием нового каталога предварительно создаются
все несуществующие вышележащие каталоги. В случае существования
каталога не будет выведена ошибка;
3) -v, --verbose выводить сообщение для каждого созданного каталога;
411
ЛКНВ.11100-01 90 01
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>
Опции:
1) -t определение типа файловой системы раздела, предполагаемого для
размещения;
2) -o указание параметров монтирования.
Примеры:
1) Просмотр примонтированных устройств:
412
ЛКНВ.11100-01 90 01
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 (перевод строки и табуляция) и
табуляции.
Если ФАЙЛ не задан или задан как «-», то читать из стандартного ввода.
Примеры:
1) Вывести содержимое файла f, затем со стандартного ввода, затем
содержимое файла g:
cat f - g
2) Скопировать стандартный ввод на стандартный вывод:
cat
Возможные сообщения об ошибках, при использовании команды cat:
cat: <файл>: Отказано в доступе
413
ЛКНВ.11100-01 90 01
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 отключить интерпретацию управляющих символов;
Возможные сообщения об ошибках, при использовании команды echo:
<файл>: Отказано в доступе
<файл>: Нет такого файла или каталога
10.4.4. Команда grep
Команда grep предназначена для поиска текста, соответствующего
регулярному выражению в файлах или потоке вывода.
Cинтаксис:
grep [ опции ] шаблон_поиска [файл]
414
ЛКНВ.11100-01 90 01
Опции:
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 время использовать заданное время в качестве нового значения для
изменяемого временного штампа.
Следующий пример использования команды touch создает файл myfile.txt:
touch myfile.txt
Возможные сообщения об ошибках, при использовании команды touch:
touch: невозможно выполнить touch для <файл>: Отказано в доступе
touch: невозможно выполнить touch для <путь>/<файл>: Нет такого
файла или каталога
415
ЛКНВ.11100-01 90 01
10.4.6. Команда mknod
Утилита mknod создает специальные блочные или символьные файлы.
Специальный файл записывается в файловой системе с помощью тройки параметров:
один логический и два целых. Логический параметр говорит о том, является ли
специальный файл символьным или блочным. Два целых параметра задают старший
и младший номера устройства. Специальный файл практически не занимает места на
диске и используется только для общения с операционной системой, а не для
хранения данных.
Синтаксис:
mknod [опции] имя {bc} старший_номер младший_номер
mknod [опции] имя p
Основные опции:
1) -m, --mode=РЕЖИМ установить РЕЖИМ доступа;
2) -Z установить контекст безопасности равным типу по умолчанию.
Тип устройства может принимать следующие значения:
1) b создать файл блочного устройства (буферизированный);
2) c создать файл символьного устройства (небуферизированный);
3) p создать именованный канал.
Возможные сообщения об ошибках, при использовании команды mknod:
mknod: <файл>: Файл существует
Поиск файлов
10.5.1. Команда find
Утилита find используется для поиска файлов.
Синтаксис:
find [-H] [-L] [-P] [-0уровень] [-D help | tree | search | stat |
rates | opt | exec] [путь…] [выражение]
find [путь] [опции] [критерии поиска] [действия над файлами]
В качестве пути для поиска можно использовать как абсолютные, так и
относительные пути, а также список путей, разделенных пробелом. Путем по
умолчанию является текущий подкаталог. Выражение по умолчанию -print.
416
ЛКНВ.11100-01 90 01
Основные опции:
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 дней назад;
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 (сокет);
417
ЛКНВ.11100-01 90 01
8) [-perm] [-]восьмеричное_число режим доступа к текущему файлу в
точности равен восьмеричному_числу. Если перед восьмеричным_числом
указан знак -, то для сравнения из режима файла берутся только биты,
соответствующие битам восьмеричного_числа, равным единице;
9) -links n на файл имеется n ссылок;
10) -user имя_пользователя файл принадлежит пользователю с данным
именем. Разрешены цифровые идентификаторы пользователя;
11) -group имя_группы файл принадлежит группе с данным именем.
Разрешены цифровые идентификаторы группы.
Критерии можно объединять, используя операторы. Ниже приведены
операторы в порядке убывания их приоритета:
- унарная операция отрицания, обозначается ! (! критерий);
- логическое И, обозначается пробелом (критерий1 критерий2);
- логическое ИЛИ, обозначается -o (критерий1-o критерий2).
Когда выполняется команда find, можно выполнять различные действия над
найденными файлами.
Основные действия:
1) -exec команда \; выполнить команду. Запись команды должна
заканчиваться экранированной точкой с запятой. Строка «{}» заменяется
текущим маршрутным именем файла;
2) execdir команда \; то же самое что и exec, но команда вызывается из
подкаталога, содержащего текущий файл;
3) -ok команда эквивалентно -exec за исключением того, что перед
выполнением команды запрашивается подтверждение виде
сгенерированной командной строки со знаком вопроса в конце) и она
выполняется только при ответе: y;
4) -print вывод имени файла на экран.
Примеры:
1) Найти в текущем каталоге обычные файлы (не каталоги), имя которых
начинается с символа «:
418
ЛКНВ.11100-01 90 01
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 вывод информации только об исходных файлах.
Средства архивирования файлов
Команды tar, cpio, gzip представляют собой инструменты создания
резервных копий и архивирования ФС.
При создании архива командами tar (п. 10.6.1) и gzip передается список
файлов и каталогов, указываемых как параметры командной строки. Любой
указанный каталог просматривается рекурсивно.
При создании архива с помощью команды cpio (п. 10.6.2) ей предоставляется
список объектов (имена файлов и каталогов, символические имена любых устройств,
гнезда доменов UNIX, именованные каналы).
419
ЛКНВ.11100-01 90 01
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 [имя создаваемого файла архива] [упаковываемые файлы
и (или) директории]
Пример использования команды упаковки архива:
$ tar -cf moi_dokumenti.tar Docs project.tex
Распаковка содержимого архива в текущий каталог выполняется следующей
командой:
tar -xf [имя файла архива]
Далее приводится пример использования команды распаковки архива:
$ tar -xf moi_dokumenti.tar
Для сжатия файлов используются специальные программы сжатия: gzip, bzip2
и 7z.
420
ЛКНВ.11100-01 90 01
10.6.2. Команда cpio
Команда cpio предназначена для копирования файлов. Ее можно использовать
с опцией -о для создания резервных архивов и с опцией -i для восстановления
файлов. Команда получает информацию от стандартного устройства ввода и
посылает выводимую информацию на стандартное устройство вывода.
Команда cpio может архивировать любой набор файлов и специальные файлы,
хранит информацию более эффективно, чем tar, пропускает сбойные сектора или
блоки при восстановлении данных, и ее архивы могут быть восстановлены в ОС.
Недостатком команды cpio является то, что для обновления архива следует
использовать язык программирования оболочки, чтобы создать соответствующий
сценарий.
Синтаксис:
cpio [Опции] < список-имен [> архив]
Опции:
1) -o создание архива в стандартное устройство вывода;
2) -l восстановление файлов из архива, передаваемого на стандартное
устройство ввода;
3) -t создание списка содержимого стандартного устройства ввода.
Ниже приводятся примеры использования команды cpio для решения
различных задач.
Копирование файлов из каталога /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
выполняется следующим образом:
421
ЛКНВ.11100-01 90 01
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 системный редактор, назначаемый ОС по умолчанию
для работы с текстовыми файлами.
Текстовый редактор Vi имеет модальный интерфейс одни и те же клавиши в
разных режимах работы выполняют разные действия.
В редакторе Vi есть несколько режимов работы:
1) командный режим перемещение по файлу, удаление текста и другие
редактирующие функции. По умолчанию, работа начинается в командном
режиме. Перейти в него из любого другого режима <ESC>, иногда два раза;
2) режим ввода ввод текста (удаление и ввод текста происходит в двух разных
режимах). Переход в режим ввода из командного режима осуществляется
командой <i>;
3) режим строчного редактора ED это специальный режим, в котором
редактору даются сложные команды. При вводе этих команд они
отображаются в последней строке экрана. Например, команда <wq>
позволяет записать файл и покинуть редактор Vi, а команда <q!> выйти из
422
ЛКНВ.11100-01 90 01
редактора Vi без сохранения изменений. В этом режиме обычно вводятся
команды, название которых состоит из нескольких символов. Переход в него
из командного режима осуществляется командой <:>.
Далее описаны операции, которые можно произвести с файлом в командном
режиме.
Открыть (создать) файл
Управляющая команда открытия файла выглядит следующим образом:
vi <имя_файла>
Создание файла происходит при помощи той же команды, поскольку создание
файла происходит в момент сохранения.
Для открытия или создания нового файла в командном режиме необходимо
набрать:
:e filename
Перед этим нужно сохранить предыдущий файл с помощью следующих
команд:
- <:w> сохраняет файл с существующим именем;
- <:sav filename> или «Сохранить как».
Навигация по файлу
Навигация по файлу происходит с помощью управляющих клавиш на
клавиатуре. Также допускается использовать клавиши быстрого перемещения:
- <^> или <0> в начало текущей строки;
- <$> в конец текущей строки;
- <w> на слово вправо;
- <b> на слово влево.
Редактирование файла
Для редактирования текста необходимо перейти в режим ввода (нажать <i>).
Основные команды редактирования:
- <R>, <i> переход в режим ввода, замена текста под курсором;
- <I> переход в режим ввода с начала текущей строки;
423
ЛКНВ.11100-01 90 01
- <o> переход в режим ввода с новой строки под курсором;
- <O> переход в режим ввода с новой строки над курсором;
- <a> переход в режим ввода после курсора;
- <x> стирание символа под курсором;
- <X> стирание символа перед курсором;
- <dd> стирание текущей строки;
- <d<число>d> стирание выбранного числа строк, начиная с текущей;
- <yy> копирование текущей строки в неименованный буфер;
- <y<число>y> копирование выбранного числа строк, начиная с текущей в
неименованный буфер;
- <p> вставка строки из неименованного буфера под курсор;
- <P> вставка строки из неименованного буфера над курсором;
- <J> слияние текущей строки со следующей;
- <u> отмена последней команды;
- <.> повтор последней команды.
Для перехода в режим строчного редактора ED необходимо нажать <Shift>+<:>.
Запись в файл и выход из редактора
Запись в файл выполняется следующей командой:
<Esc>:w<Enter>
В случае, если файл заблокирован другим пользователем либо отсутствуют
права на запись, необходимо использовать следующую команду:
<Esc>:w!<Enter>
При попытке записи без «!» будет выдано соответствующее предупреждение.
Создать новый файл <имя_файла> и записать в него текущее содержимое:
<Esc>:w имя_файла <Enter>
В случае, если файл с таким именем уже существует, редактор выдаст
предупреждение. После успешного создания файла и осуществления записи
информации в него работа продолжится со старым файлом.
Для выхода из редактора необходимо использовать следующую команду:
<Esc>:q<Enter>
424
ЛКНВ.11100-01 90 01
В случае, если в файл были внесены изменения, необходимо добавлять после
команды «!».
Выйти из редактора не сохраняя изменения:
<Esc>:q!<Enter>
Сохранить изменения в файле и выйти:
<Esc>:wq<Enter> или <Esc>ZZ<Enter>.
Дополнительные возможности
Текстовый редактор Vi обладает рядом дополнительных возможностей,
которые вызываются следующими командами:
- ^G показать информацию о файле;
- G перейти в конец файла;
- <number>G перейти на конкретную строку <number>;
- :<number> перейти на <number> строк вперед;
- :setnu[mber] отобразить слева нумерацию строк (:setnonu[mber]
спрятать нумерацию);
- :setwrap переносить длинные строки (:setnowrap не переносить);
- :colorscheme<name> задать цветовую тему (где <name> имя темы, TAB
работает как авто-дополнение);
- /мама поиск текста «мама» в файле;
- n повторить поиск;
- :h или :help список возможной помощи (:viusage, :exusage).
Привести концы строк в файле к виду dos или unix соответственно:
:set fileformat=dos
:setfileformat=unix
Задать размер табуляции в четыре пробела:
:setts=4
10.7.2. Редактор Vim
Vim свободный режимный текстовый редактор, созданный на основе Vi.
425
ЛКНВ.11100-01 90 01
Основной режим работы
Основной режим работы Vim предназначен для просмотра файлов, ввода
команд и перехода из него в другие режимы. В командный режим можно попасть по
нажатию клавиши <Esc>.
При нажатии клавиши «:» становится доступна командная строка Vim, в
которой вводятся следующие команды:
- команда выхода – quit либо q;
- команда сохранения write либо w, параметром которой может быть имя
файла;
- вызов справки – help либо h.
Для остальных клавиш их последовательностей) допускается задавать любые
команды либо использовать значения по умолчанию.
Перечисленные ниже команды вводятся в основном режиме (если нет
специального уточнения). Все они имеют команднострочные аналоги и могут быть
легко переопределены.
Визуальный режим работы
Визуальный режим работы предназначен, в первую очередь, для выделения
блоков текста. Переход в визуальный режим выполняется с помощью следующих
сочетаний клавиш:
- <v> для посимвольного выбора;
- <Shift>+<v> для построчного выбора;
- <Ctrl>+<v> для блочного выбора.
В режиме посимвольного выделения (при переходе по клавише «v»)
допускается оперировать следующими сущностями:
- слово («w»);
- предложение («s»);
- параграф («p»);
- блок («b»).
426
ЛКНВ.11100-01 90 01
Выделение при этом необходимо начинать с позиции курсора («a»), или же с
начала блока («i»). Например, выделение текущего блока (участка, ограниченного
парными элементами) можно произвести следующим образом:
<Esc>vib
Копирование в буфер выделенного текста осуществляется по «y», вырезание по
«d» а вставка, соответственно, «p».
Режим редактирования
Режим редактирования предназначен для ввода текста. Переключение на режим
редактирования осуществляется нажатием клавиши <Insert>.
Переходы
Для перехода на строку с номером n используется команда G. Так для перехода
к началу текста нужно набрать 1G, для сотой строки 100G, а для перехода в конец
текста – $G.
Для перехода на n символов в нужную сторону используются клавиши
навигации на клавиатуре. То есть для перехода на 1000 символов вниз нужно набрать
«1000» и нажать клавишу «↓».
Для перемещения по тексту допускается использовать следующие команды:
- «(», «)» для перемещения по предложениям;
- «{», «}» – для параграфов;
- «[[«, «]]» для функций;
- «%» переход к парной скобке;
- «”» – к предыдущему положению;
- <Ctrl>+<O>, <Ctrl>+<I> соответственно, назад и вперед по истории
переходов.
Метки
Используются для отметки позиции (<буква>-метка, где меткой является любая
буква) и быстрого к ней перехода (<`>-метка). Метки нижнего регистра
действительны в пределах данного файла, метки верхнего регистра действуют во всех
открытых файлах.
427
ЛКНВ.11100-01 90 01
Список всех меток можно получить командой marks.
Регистры
Регистр отмечается видом <"буква>. К нему применимы все стандартные
действия: копирование в него ("<метка>y), вырезание ("<метка>d), и вставка из него
("<метка>p), можете вместо p использовать [p,]p для вставки соответственно перед,
или после курсора).
В режиме редактирования вставка из регистра осуществляется по
<Ctrl>+R<метка>. Для добавления данных в регистр используйте заглавную метку.
Также допускается писать в регистр, воспользовавшись командой «q<метка>»
и завершив запись по q. Таким образом сохраняется макрос, выполнить который
можно по «@<метка>».
Регистры с метками «*» и «+» совпадают с X-Window clipboards, «%»
соответствует редактируемому файлу. Для просмотра содержимого всех регистров
нужно воспользоваться командой :registers, либо :reg метка1метка2... для
просмотра только выбранных регистров.
Фолды
Фолды предназначены для сокрытия строк, ненужных в данный момент.
По умолчанию фолды активированы в режиме ручной расстановки. Все
команды для работы с фолдами начинаются с z:
- создание фолд выполняется командой zf;
- открытие фолд производится командой zo либо нажатием навигационной
стрелки «→»;
- закрытие кода в существующий фолд – по zc.
Для автоматического подключения фолд по отношению к табуляции
необходимо добавить в файл настроек следующую строку:
set foldmethod=indent
428
ЛКНВ.11100-01 90 01
Сессии
Сессии предназначены для сохранения текущего состояния и настройки
редактора таким образом, что при следующем запуске работа продолжится с того же
места.
Сессии создаются следующей командой:
:mksession /path/to/Session.vim
Чтение сессий выполняется командой:
:so /path/to/Session.vim
Для сохранения текущего контекста (текст, положение курсора в коде, текущая
расстановка фолдов) нужно использовать команду :mkview, а для чтения
:loadview.
Автоматическое сохранение и чтение контекста при начале и окончании
редактирования файла может быть реализовано следующим кодом (применяется для
всех файлов, имеющих точку в имени):
au BufWinLeave *.* mkview
au BufWinEnter *.* silent loadview
Поиск и замена
Поиск по тексту осуществляется следующими командами:
- / поиск по регулярному выражению вперед;
- ? поиск по регулярному выражению в обратном направлении;
- n продолжение поиска далее по тексту;
- N повторение предыдущего запроса;
- # либо * поиск слова под установленным курсором.
Для поиска с заменой рекомендуется использовать следующую команду:
%s/что/на что/gic
где % означает работу со всем текстом (а не с текущей строкой), g глобальная
замена не первое совпадение), i игнорирование регистра, а c подтверждение
каждого действия.
429
ЛКНВ.11100-01 90 01
Автодополнение, Отмена, Смена регистра, Повтор
Автодополнение производится по содержимому данного файла, а также
указанных в переменной 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")
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>
430
ЛКНВ.11100-01 90 01
В 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>
Средства настройки отложенного исполнения команд
10.8.1. Служба crond
Для регулярного запуска команд в ОС Альт 8 СП используется служба crond.
Служба crond запускается при загрузке системы и проверяет очередь заданий at
и заданий пользователей в файлах crontab. При запуске, служба crond сначала
проверяет каталог /var/spool/cron на наличие файлов crontab, файлы crontab имеют
имена пользователей, соответствующие именам пользователей из /etc/passwd.
Каждый пользователь может иметь только один файл crontab, записей в файле может
быть несколько.
В случае, если задание не было обнаружено, crond переходит в режим ожидания
на одну минуту и затем вновь приступает к поискам команды, которую следует
запустить в этот момент. Большую часть времени служба crond проводит в режиме
ожидания, и для ее работы используется минимум системных ресурсов.
Чтобы определить список задач для cron, используется команда crontab.
431
ЛКНВ.11100-01 90 01
Crontab
Утилита crontab управляет доступом пользователя к службе crond путем
копирования, создания, выдачи содержимого и удаления файлов crontab, таблиц
заданий. При вызове без опций, crontab копирует указанный файл или стандартный
входной поток (если файл не указан) в каталог, в котором хранятся пользовательские
таблицы заданий cron. Каждый пользователь может иметь свои собственные файлы
crontab, и, хотя эти файлы доступны в /var/spool/cron, они не предназначены для
редактирования напрямую.
Синтаксис:
crontab [имя_файла]
crontab [ -elr ] имя_пользователя
Опции:
1) -e редактирует копию файла crontab текущего пользователя или создает
пустой файл для редактирования, если соответствующего файла crontab не
существует. Когда редактирование завершается, файл устанавливается в
качестве пользовательского файла 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.
432
ЛКНВ.11100-01 90 01
Правила разрешения и запрещения выполнения заданий применимы к
пользователю root, только если существуют файлы allow/deny.
В файлах allow/deny надо задавать по одному имени пользователя в строке.
Формат записи файла crontab
Редактировать crontab пользователя можно используя команду:
crontab -e
Файл crontab состоит из строк, содержащие шесть полей. Поля разделяются
пробелами или символами табуляции. Первые пять полей – целочисленные шаблоны,
задающие:
- минуту (0 – 59);
- час (0 – 23);
- день месяца (1 31);
- месяц года (1 – 12);
- день недели (0 – 6, причем 0=воскресенье).
Каждый из этих шаблонов может представлять собой звездочку (которая
обозначает все допустимые значения) или список элементов через запятые. Элемент
число или два числа через дефис (что обозначает закрытый интервал). Обратите
внимание, что дни можно указывать в двух полях (день месяца и день недели). Оба
поля учитываются, если заданы в виде списка элементов (запись: 30 4 1,15 * 5
приведет к выполнению команды в 4:30 пополуночи первого и пятнадцатого числа
каждого месяца, плюс в каждую пятницу). При указании диапазона можно
пропускать некоторые его значения, указав шаг в форме «/число». Например:
«0-23/2» для поля час означает запуск команды через два часа. Шаг можно указывать
также после звездочки: «каждые два часа» соответствует значению «*/2». Для задания
полей месяц и день_недели можно использовать имена. Указывайте первые три буквы
нужного дня или месяца на английском, регистр букв не имеет значения. Диапазоны
или списки имен не разрешены.
Служба crond запускает команды, когда значения полей минута, час, месяц и
хотя бы одно из полей число и день_недели, совпадают с текущим временем. Служба
crond сверяет директивы с текущим временем раз в минуту.
433
ЛКНВ.11100-01 90 01
Вместо первых пяти полей допустимо указание одного из восьми специальных
триггеров:
- @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 строка, выполняемая командным
интерпретатором в указанные моменты времени. Символ % (процент) в этом поле,
если он не замаскирован «\» (обратной косой), преобразуется в символ новой строки.
Только первая строка (до символа % или до конца строки) поля команды
выполняется командным интерпретатором. Другие строки передаются команде как
стандартный входной поток. Пустые строки, ведущие пробелы и символы табуляции
игнорируются. Строки, начинающиеся с символа («#») считаются комментариями и
игнорируются. Комментарии не допускаются в тех же строках, где расположены
команды cron, так как они будут распознаны как части команды. По этой же причине
комментарии не разрешены в строках, задающих переменные среды.
Строка-директива представляет собой либо задание переменной среды, либо
команду cron.
Демон crond предоставляет каждому командному интерпретатору стандартную
среду, задавая переменные HOME, LOGNAME, SHELL(=/bin/sh), TZ и PATH. Стандартное
значение переменной PATH для пользовательских заданий cron /usr/bin, а для
заданий cron пользователя root /usr/sbin:/usr/bin.
Если стандартный выходной поток и стандартный поток ошибок команд не
перенаправлены, любые сгенерированные результаты или сообщения об ошибках
будут отправлены пользователю по электронной почте.
434
ЛКНВ.11100-01 90 01
Примеры
Далее приведены примеры использования таблиц 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
# Выполнять задание по воскресеньям в 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 каждое воскресенье"
435
ЛКНВ.11100-01 90 01
Дополнительные возможности таблиц
Таблицы crontab обладают следующими дополнительными возможностями:
- при задании дня недели 0 и 7 соответствуют воскресенью;
- допускается указывать одновременно и списки, и диапазоны в одном и том
же поле;
- допускается указывать диапазоны с пропусками например, «1-9/2»
соответствует «1,3,5,7,9»;
- допустимо указание месяцев или дней недели по имени;
- в crontab разрешено задавать переменные среды вручную;
- вывод команд отсылается почтой владельцу файла crontab, а также может
отправляться кому-либо другому, либо отправка может быть отключена
(функция не поддерживается в SysV);
- любая из команд с префиксом «@» может заменять первые пять полей файла.
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
436
ЛКНВ.11100-01 90 01
Это означает, что указанные команды будут запущены, как и было задано, в
1:23. В сообщении также приведен идентификатор задания (756603300.а), который
понадобится, если необходимо отменить задание:
at -d 756603300.а
В случае, если список команд находится в файле, например, getdone, и
необходимо запустить все перечисленные в нем команды в 10:00, следует
воспользоваться одной из двух форм команды at:
at 10:00 < getdone либо at 10:00 -f getdone
437
ЛКНВ.11100-01 90 01
Обе приведенные команды эквивалентны. Разница заключается в том, что в
первой команде используется механизм перенаправления потоков ввода-вывода, во
второй команде – дисковый файл.
Кроме времени, в команде 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
438
ЛКНВ.11100-01 90 01
Удалить задание с идентификатором 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>.
Служба передачи файлов FTP
В ОС Альт 8 СП передача файлов обеспечивается с помощью программы lftp.
Данная команда реализует протокол передачи файлов FTP. Для копирования файлов
439
ЛКНВ.11100-01 90 01
необходимо знать имя и пароль пользователя, которому принадлежат файлы на
сервере службы FTP.
Для запуска lftp необходимо в консоли ввести команду:
lftp
После появления приглашения lftp :~> становятся доступными для
использования внутренние команды lftp.
Основные внутренние команды lftp:
- open подключение к серверу;
- user идентификация при удаленном подключении;
- close отключение от сервера;
- ls просмотр списка файлов;
- lcd смена локального каталога;
- mkdir создание нового каталога;
- lpwd просмотр имени каталога на локальном компьютере;
- get копирование файла с сервера;
- put копирование файла на сервер;
- help просмотр списка доступных команд и справки по ним;
- exit выход из lftp.
Защищенный интерпретатор команд SSH
Защищенный интерпретатор команд SSH клиент-серверная система для
организации защищенных туннелей для удаленного доступа к другим компьютерам.
SSH реализует соединение с удаленным компьютером, которое позволяет
защититься от следующих угроз:
- прослушивание данных, передаваемых по этому соединению;
- манипулирование данными на пути от клиента к серверу;
- подмена клиента либо сервера путем манипулирования IP-адресами, DNS
либо маршрутизацией.
Для создания защищенного туннеля используется программа ssh.
Инициировать соединение с сервером можно командой:
440
ЛКНВ.11100-01 90 01
ssh <имя_клиента>@IP_addr
где IP_addr IP-адрес компьютера с запущенной службой sshd.
При использовании идентификации по паролю на сервере должна существовать
учетная запись с указанным именем клиента.
Параметры, относящиеся к способу аутентификации, а также все прочие
настройки ssh указываются в конфигурационном файле /etc/ssh/ssh_config.
Конфигурационные файлы разбиты на разделы, установки которых относятся к
отдельному компьютеру, группе компьютеров или ко всем компьютерам, при этом
установки разных разделов могут конфликтовать друг с другом. Предпочтение в
данном случае будет отдаваться тому параметру, который указан раньше.
Средство управления процессами xinetd
Средство управления процессами xinetd (далее сервер xinetd) выполняет
функции управления процессами, которые обеспечивают работу сервисов
подключения к локальным и глобальным сетям.
Сервер xinetd представляет собой единственный процесс, который выполняет
прослушивание всех портов на наличие запросов от других сервисов, перечисленных
в файле конфигурации xinetd.conf (расположен в директории /etc): когда на порт
поступает запрос, сервер xinetd запускает соответствующий сервер.
Сервисы, перечисленные в конфигурационном файле сервера xinetd, можно
разделить на две группы.
Сервисы из первой группы («multi-threaded») на каждый новый запрос
запускают новый серверный процесс. Для таких сервисов сервер xinetd продолжает
прослушивать сеть на соответствующем порту, ожидая новых запросов на
порождение нового процесса.
В другую группу («single-threaded») включаются сервисы службы, которые в
состоянии обрабатывать новые соединения. В ходе работы с ними сервер xinetd
прекращает обработку новых запросов до тех пор, пока серверный процесс не
завершит свою работу. Сервисы в этой группе также обычно относят к группе
«datagram-based», работающих с дейтаграммными протоколами передачи данных
формата UDP.
441
ЛКНВ.11100-01 90 01
Сервер 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;
- -pidfile pid_файл в этот файл записывается идентификатор процесса.
Данная опция неэффективна в режиме отладки;
- -stayalive xinetd будет оставаться запущенным, даже если не задано
никаких служб;
- -loop rate устанавливает верхнюю величину цикла, по которой
определяется, что служба работает с ошибками и по которой она
442
ЛКНВ.11100-01 90 01
отключается. Величина цикла задается в терминах количества серверов в
секунду, которое может быть запущено в обработку (fork). Для этой опции,
корректное значение определяется скоростью вашей машины. По умолчанию
равно 10;
- -reuse xinetd будет устанавливать опцию сокета SO_REUSEADDR перед
привязкой сокета службы к какому-либо интернет адресу. Это позволяет
привязать адрес, даже если есть программа, которая уже использует его,
например, в том случае, если некоторые серверы были запущены во время
предыдущего запуска xinetd и еще не завершили свою работу. Данная опция
не оказывает влияния на службу RPC;
- -limit proc_limit устанавливает ограничение на количество
одновременно запущенных процессов, которые может запустить xinetd. Ее
назначение предотвращать переполнение таблицы процессов;
- -logprocs limit устанавливает ограничение на количество одновременно
запущенных серверов на один идентификатор удаленного пользователя;
- -shutdownprocs limit устанавливает ограничение на количество
одновременно запущенных серверов для завершения работы службы;
- -version вывести информацию о версии xinetd;
- -cc interval xinetd будет выполнять периодические проверки своего
внутреннего состояния каждые interval секунд.
443
ЛКНВ.11100-01 90 01
Опции syslog и filelog являются взаимно исключающими. Если ни одна из
них не задана, то по умолчанию используется syslog с daemonfacility. Не путайте
сообщения xinetd с сообщениями, которые создаются службами. Последние
протоколируются только если это задано в файле с настройками.
Сервер xinetd выполняет определенные действия при получении определенных
сигналов. Действия, ассоциированные с соответствующими сигналами, могут быть
переопределены путем редактирования config.h и последующей компиляции.
Сигналы:
- SIGHUP заставляет выполнить жесткую перенастройку, означающую, что
xinetd перечитает файл с настройками и завершит работу серверов для тех
служб, которые больше не доступны. Управление доступом выполняется
снова на уже запущенных серверах через проверку удаленных подключений,
времени доступа и копий серверов. Если количество копий серверов
уменьшается, то некоторые произвольно выбранные сервера будут убиты,
чтобы соблюсти ограничение; это случится после завершения работы тех
серверов, которые попадают под ограничение доступа с удаленных адресов
или ограничение времени доступа. Также, если флаг INTERCEPT был
сброшен и происходит его установка, то будет завершена работа любых
запущенных серверов для служб с этим флагом. Цель такого поведения
убедиться, что после жесткой перенастройки не будет запущено серверов,
которые могут принимать пакеты с тех адресов, которые не соответствуют
критериями управления доступом;
- SIGQUIT приводит к завершению работы;
- SIGTERM завершает работу всех запущенных серверов перед завершением
работы xinetd;
- SIGUSR1 приводит к снятию дампа внутреннего состояния (по умолчанию
файл дампа это /var/run/xinetd.dump; чтобы изменить данное имя файла
нужна правка config.h и перекомпиляция);
- SIGIOT производит внутреннюю проверку того, что структуры данных,
используемые программой не повреждены. Когда проверка завершится,
444
ЛКНВ.11100-01 90 01
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, необходимо выполнить следующие действия (путь
зависит от архитектуры, в примере для x86-64):
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
445
ЛКНВ.11100-01 90 01
OpenSSL> req -engine pkcs11 -new -key 45 -keyform engine -x509 -
out CA.pem -text
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
446
ЛКНВ.11100-01 90 01
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:
4) создать раздел объемом менее 4 Гбайт на flash-накопителе (например,
/dev/vdс1).
5) для создания iso файла установить пакет genisoimage:
# apt-get install genisoimage
6) создать директорию /mnt/filesystem, в которую будет монтироваться
раздел:
# mkdir /mnt/filesystem
7) отформатировать раздел в проверяемую файловую систему:
- для 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
- для ntfs:
447
ЛКНВ.11100-01 90 01
# mkfs.ntfs /dev/vdc1
- для iso9660 – создать iso-файл из каталога /etc:
# mkisofs -r -jcharset koi8-r -o /root/cd.iso /etc
8) для проверки поддержки файловых систем 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
9) для проверки поддержки файловой системы 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
448
ЛКНВ.11100-01 90 01
Запустить 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 – локальный каталог куда монтируется удаленный каталог;
449
ЛКНВ.11100-01 90 01
- проверить наличие файлов в /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.
Группой-владельцем каталога является специальная группа ftpadmin,
предназначенная для администраторов FTP-сервера.
450
ЛКНВ.11100-01 90 01
Если требуется создать в области для анонимного доступа дерево каталогов,
следует в каталоге /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), и пользователь будет иметь доступ только к своему домашнему
каталогу и его подкаталогам. Чтобы ограничить таким образом доступ к каталогам
451
ЛКНВ.11100-01 90 01
для отдельных пользователей, необходимо удалить знаки комментариев у следующих
строк в конфигурационном файле:
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. Этого достаточно для того, чтобы пользователи,
зарегистрированные локально, получили возможность загружать файлы в те
каталоги, для которых они располагают правами на запись.
Чтобы разрешить запись файлов анонимным пользователям, необходимо,
кроме этого, удалить знак комментария у строки anon_upload_enable=YES.
452
ЛКНВ.11100-01 90 01
Специальный непривилегированный пользователь, используемый для работы с
анонимными клиентами, должен иметь права на запись в один или несколько
каталогов, доступных таким клиентам.
Параметры использования 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
Измените настройку прав доступа в файле /etc/vsftpd/conf:
local_enable=YES
Убедитесь в нормальной работе FTP-сервера:
# netstat -ant | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
453
ЛКНВ.11100-01 90 01
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
можно запустить файловый менеджер, указать в адресной строке протокол и адрес
сервера (рис. 194).
Рис. 194
Нажать клавишу «Enter».
В появившемся окне указать имя пользователя, пароль и нажать на кнопку
«Подключиться» (рис. 195).
454
ЛКНВ.11100-01 90 01
Рис. 195
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-клиенту доступ из локальной сети
pool pool.ntp.org iburst #параметр iburst используется для ускорения
начальной синхронизации
и перезапустить сервис командой:
# systemctl restart chronyd
Убедиться в нормальной работе NTP-сервера, выполнив команду:
# systemctl status chronyd.service
455
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Для архитектуры armh (ARMv7) в качестве сервера времени
используется openntpd.
Выполнить настройку NTP-сервера можно следующими способами:
1) в ЦУС настроить модуль «Дата и время» на получение точного времени с
NTP-сервера (см. п. 8.16.7).
2) раскомментировать директиву listen и указать серверы NTP в директиве
servers в файле конфигурации NTP /etc/ntpd.conf:
listen on *
servers pool.ntp.org
и перезапустить сервис командой:
# systemctl restart ntpd
3) убедиться в нормальной работе NTP-сервера, выполнив команду:
# systemctl status ntpd.service
П р и м е ч а н и е . С сервера времени openntpd можно будет обновляться,
только после того, как он синхронизируется с другими серверами. Это может занять
достаточно продолжительное время.
Настройка рабочей станции
Настроить в ЦУС модуль «Дата и время» на получение точного времени с
NTP-сервера качестве NTP-сервера указать IP-адрес сервера NTP) и нажать на
кнопку «Применить» (рис. 196).
Рис. 196
456
ЛКНВ.11100-01 90 01
Проверить текущие источники времени:
$ 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
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address
Для архитектуры armh (ARMv7) настроить синхронизацию можно также в
ЦУС. Проверка синхронизации времени:
ntpdate 192.168.88.218
10 Mar 12:11:10 ntpdate[4936]: step time server 192.168.88.218
offset -0.001236 sec
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-сервера>:> (рис. 197).
Рис. 197
457
ЛКНВ.11100-01 90 01
Также можно выполнить команду:
$ curl http://192.168.88.218
Hello, World
Происходит обращение к серверу и получение данных по протоколу http.
Виртуальная (экранная) клавиатура
Onboard – гибкая в настройках виртуальная (экранная) клавиатура.
Виртуальная клавиатура полезна тогда, когда по каким-либо причинам, нет
возможности использовать обычную клавиатуру. Так же виртуальная клавиатура
может оказаться удобной пользователям сенсорных экранов (touchscreen).
П р и м е ч а н и е . На рабочей станции должен быть установлен пакет onboard:
# apt-get install onboard
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"
458
ЛКНВ.11100-01 90 01
Для того чтобы выставить настройки 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
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».
459
ЛКНВ.11100-01 90 01
Окно настроек Onboard можно открыть, нажав правой клавишей мыши по
значку Onboard в системном трее и выбрав пункт «Параметры».
В настройках можно:
- подобрать стилевое оформление экранной клавиатуры;
- закрепить к верхнему или нижнему краю экрана рабочего стола;
- включить или отключить звук нажатых клавиш, а также показывать нажатые
клавиши;
- изменить раскладку клавиатуры (например, выбрать эргономичную
клавиатуру или клавиатуру для небольших экранов).
Управление печатью
В ОС Альт 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).
460
ЛКНВ.11100-01 90 01
Файл конфигурации сервера CUPS
Конфигурационный файл сервера очень похож на файлы конфигурации
веб-сервера и определяет все свойства управления доступом. Настраивать CUPS
можно либо непосредственно редактируя файл конфигурации
/etc/cups/cupsd.conf, либо в веб-интерфейсе CUPS (рис. 198). Веб-интерфейс
CUPS можно запустить следующими способами:
- в графической среде MATE: «Приложения» «Системные» «Настройка
печати»;
- в браузере: http://localhost:631.
Рис. 198 Веб-интерфейс CUPS
Если файл cupsd.conf редактируется в консоли для применения изменения,
необходимо перезапустить службу cups, выполнив команду:
# systemctl restart cups
Если файл cupsd.conf редактируется в веб-интерфейсе, то служба cups
автоматически перезапускается после нажатия на кнопку «Сохранить изменения».
461
ЛКНВ.11100-01 90 01
Файл конфигурации cupsd.conf начинается с ряда глобальных директив,
которые оформлены в виде пар имя – значение.
LogLevel указывает подробность журналирования. Доступные значения: none
(не записывать логи), emerg, alert, crit, error, warn (по умолчанию), notice, info,
debug, debug2 (подробный вывод).
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}"
MaxLogSize задает максимальный размер журналов до их ротации. Значение 0
отключает ротацию.
Listen позволяет указать на каком IP-адресе будет доступен веб-интерфейс (по
умолчанию localhost:631), а также прослушиваемый сокет.
Параметры Browsing задают настройки возможности CUPS обнаруживать
принтеры в сети. Данная возможность поддерживается на уровне протокола IPP.
Обнаружение происходит посредством широковещательных рассылок, что при
большом количестве серверов CUPS или при частом отключении/подключении
принтеров может порождать дополнительную нагрузку на сеть. Browsing указывает
CUPS предоставлять свои серверы в общий доступ, либо нет. Значения может
принимать On или Off соответственно.
462
ЛКНВ.11100-01 90 01
Директива 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> доступ к конфигурационным файлам;
- <Location /jobs> доступ к заданиям;
- <Location /printer> доступ к принтерам.
Управление политиками операций
Политики операций это правила, используемые для каждой операции IPP в
CUPS. Правила могут включать такие опции, как «пользователь должен предоставить
пароль», «пользователь должен находиться в системной группе», «разрешать только
из локальной системы» и т. д.
CUPS позволяет полностью переопределить правила для каждой операции
и (или) принтера. Каждая политика имеет название и определяет правила контроля
доступа для каждой операции IPP.
463
ЛКНВ.11100-01 90 01
Политики операций используются для всех запросов IPP, отправленных в
планировщик заданий, и оцениваются после правил управления доступом на основе
местоположения. Таким образом политики операций могут только добавлять
дополнительные ограничения безопасности к запросу, а не ослаблять их. Для
ограничений на уровне сервера необходимо использовать правила управления
доступом на основе местоположения, а для ограничений на отдельные принтеры,
задачи или службы – политики операций.
Политики хранятся в файле cupsd.conf в разделах Policy. Каждая политика
имеет название, которое используется для ее выбора. Внутри раздела политики
находятся один или несколько подразделов Limit, в которых перечислены операции,
на которые влияют правила внутри него.
Каждая политика имеет название. В названии политики можно использовать те
же символы, что и в названии принтера, в частности все печатные символы, кроме
пробела, слэша (/) и решетки (#).
В разделах < Limit …> определяется, какие ограничения должна содержать
политика. Директивы внутри подраздела Limit могут использовать любую из
директив ограничения: Allow, AuthType, Deny, Encryption, Require и Satisfy.
В таблице 13 перечислены основные примеры для разных правил контроля доступа.
Т а б л и ц а 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
464
ЛКНВ.11100-01 90 01
Окончание таблицы 13
Уровень доступа
Директива
Только администратор
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
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>
После создания политики ее можно использовать двумя способами.
465
ЛКНВ.11100-01 90 01
Первый способ назначить ее в качестве политики по умолчанию для всей
системы, используя директиву 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
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>
466
ЛКНВ.11100-01 90 01
Очередь печати
Очередь печати механизм, который позволяет буферизовать и организовать
задания, посылаемые на принтер. Необходимость организации такого механизма
обуславливается тем, что принтер является медленно действующим устройством, и
задания не могут быть распечатаны мгновенно.
Очевидно, что в многопользовательской среде возникает конкуренция со
стороны пользователей при доступе к принтерам, поэтому задания необходимо
располагать в очереди. Для этого используется буферный каталог /var/spool/cups/.
Файлы типов MIME перечисляют поддерживаемые MIME-типы (text/plain,
application/postscript) и правила для автоматического обнаружения формата файла.
Они используются сервером для определения поля Content-Type для GET- и HEAD-
запросов и обработчиком запросов протоколов сетевой печати IPP (Internet Printing
Protocol), чтобы определить тип файла.
Правила преобразования MIME перечисляют доступные фильтры. Фильтры
используются, когда задание направляется на печать, таким образом, приложение
может послать файл удобного (для него) формата системе печати, которая затем
преобразует документ в требуемый печатный формат. Каждый фильтр имеет
относительную «стоимость», связанную с ним, и алгоритм фильтрования выбирает
набор фильтров, который преобразует файл в требуемый формат с наименьшей
общей «стоимостью».
Файлы PPD описывают возможности всех типов принтеров. Для каждого
принтера имеется один PPD-файл. Файлы PPD для не-PostScript-принтеров
определяют дополнительные фильтры посредством атрибута cupsFilter для
поддержки драйверов принтеров.
В ОС стандартным языком описания страниц является язык PostScript.
Большинство прикладных программ (редакторы, браузеры) генерируют программы
печати на этом языке. Когда необходимо напечатать ASCII-текст, программа печати
может быть ASCII-текстом. Имеется возможность управления размером шрифтов при
печати ASCII-текста.
467
ЛКНВ.11100-01 90 01
Управляющая информация используется для контроля доступа пользователя к
принтеру и аудита печати. Также имеется возможность печати изображений в
форматах GIF, JPEG, PNG, TIFF и документов в формате PDF.
Фильтр программа, которая читает из стандартного входного потока или из
файла, если указано его имя. Все фильтры поддерживают общий набор опций,
включающий имя принтера, идентификатор задания, имя пользователя, имя задания,
число копий и опции задания. Весь вывод направляется в стандартный выходной
поток.
Фильтры предоставлены для многих форматов файлов и включают, в
частности, фильтры файлов изображения и растровые фильтры PostScript, которые
поддерживают принтеры, не относящиеся к типу PostScript. Иногда несколько
фильтров запускаются параллельно для получения требуемого формата на выходе.
Программа backend это специальный фильтр, который отправляет печатаемые
данные устройству или через сетевое соединение. В состав системы печати включены
фильтры для поддержки устройств, подключаемых с помощью параллельного и
последовательного интерфейсов, а также шины USB.
Клиентские программы используются для управления заданиями и сервером
печати.
Управление заданиями включает выполнение следующих действий:
- формирование;
- передачу серверу печати;
- мониторинг и управление заданиями в очереди на печать.
Управление сервером включает выполнение следующих действий:
- запуск/остановку сервера печати;
- запрещение/разрешение постановки заданий в очередь;
- запрещение/разрешение вывода заданий на принтер.
Основные пользовательские настройки содержатся в файлах конфигурации
client.conf и ~/.cups/lpoptions.
468
ЛКНВ.11100-01 90 01
Для удаленного использования сервера печати необходимо от имени
пользователя с идентификатором 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.
10.16.2. Установка принтера
Перед началом установки необходимо убедиться в том, что в случае локального
подключения принтер присоединен к соответствующему порту компьютера и
включен, а в случае сетевого подключения принтер корректно сконфигурирован для
работы в сети.
469
ЛКНВ.11100-01 90 01
Окно «Настройки принтера» можно запустить следующими способами:
- в графической среде: панель инструментов MATE «Система»
«Администрирование» → «Параметры печати»;
- из командной строки: командой system-config-printer.
Для добавления принтера в диалоговом окне «Настройки принтера»
необходимо нажать на кнопку «Добавить».
П р и м е ч а н и е . Если возникает ошибка «Служба печати недоступна»,
необходимо запустить терминал, и от имени системного администратора root
выполнить команду systemctl restart cups. После этого следует вернуться к окну
«Настройки принтера» и нажать на кнопку «Обновить».
В диалоговом окне «Аутентификация» следует ввести имя, и пароль
пользователя, имеющего право изменять настройки принтера, после чего нажать на
кнопку «OK» (рис. 199).
Рис. 199 Диалоговое окно «Аутентификация»
Далее в открывшемся окне необходимо нажать на кнопку «Добавить» и
выбрать принтер, который необходимо подключить и нажать на кнопку «Далее»
(рис. 200).
470
ЛКНВ.11100-01 90 01
Рис. 200 Выбор принтера
На следующих шагах настройки принтера необходимо выбрать драйвер для
принтера. Драйвер можно выбрать из базы данных, содержащей различные файлы
описания принтеров (PPD-файлы) от производителей или предоставить файл
описания PostScript-принтера (рис. 201).
После выбора драйвера в окне «Новый принтер» можно изменить название и
описание принтера (рис. 202).
После нажатия кнопки «Применить» установка принтера завершена, принтер
станет доступным для печати (рис. 203).
471
ЛКНВ.11100-01 90 01
Рис. 201 Выбор источника драйвера принтера
Рис. 202 Название и описание принтера
472
ЛКНВ.11100-01 90 01
Рис. 203 Выбор принтера
Изменить настройки принтера (разрешение, размер используемой по
умолчанию бумаги, принтер по умолчанию и т. д.) можно в любой момент, выбрав в
контекстном меню принтера пункт «Свойства».
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
BrowseAllow 192.168.1.* #локальная сеть
BrowseAddress 192.168.1.*:631#локальная сеть
473
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Включить отображение (обнаружение) общего принтера
можно также отметив пункт «Разрешить совместный доступ к принтерам,
подключенным к этой системе» в веб-интерфейсе на вкладке «Администрирование».
После внесения изменений необходимо перезапустить службу 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.
П р и м е ч а н и е . Далее термин «принтер» в этом разделе используется для
обозначения принтера, соответствующего одной записи в файле
/etc/cups/printers.conf. Под термином «физический принтер» подразумевается
устройство, с помощью которого производится печать на бумаге. В файле
/etc/cups/printers.conf может быть несколько записей, описывающих один
физический принтер различными способами.
474
ЛКНВ.11100-01 90 01
В системе печати 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
Настройка принтера
Настроить принтер в ОС можно также с помощью команды lpadmin. Ее запуск
с опцией -p выполняется для добавления или модификации принтера:
/usr/sbin/lpadmin -p printer [опции]
Для lpadmin существуют также опции по регулированию политики лимитов и
ограничений по использованию принтеров и политики доступа к принтерам.
475
ЛКНВ.11100-01 90 01
Для удаления принтера необходимо выполнить 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 содержит протокол работы принтера, в этом
файле могут находиться сообщения об ошибках сервера печати или других
программ системы печати;
- /var/log/cups/access_log содержит все запросы к серверу печати;
- /var/log/cups/page_log содержит сообщения, подтверждающие
успешную обработку страниц задания фильтрами и принтером.
Настройка сетевого принтера из консоли
Для настройки принтера из консоли необходимо выполнить следующие
действия:
1) получить права администратора;
476
ЛКНВ.11100-01 90 01
2) просмотреть содержимое каталога model на наличие необходимых
драйверов:
ls /usr/share/cups/model
П р и м е ч а н и е . Для работы с дополнительными драйверами доступных
устройств установите пакет printer-driver-splix.
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
Пример вывода:
usb://Samsung/M262x%20282x%20Series?serial=ZD1UBJCD5000LVW
Список установленных принтеров: lpstat p -d
Пример настройки сетевого принтера Kyocera Ecosys P2235dn:
1) получить права администратора;
2) просмотреть содержимое каталога /usr/share/cups/model на наличие
необходимых драйверов:
477
ЛКНВ.11100-01 90 01
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 предназначена для создания и управления реляционными БД
и предоставляет многопользовательский доступ к расположенным в них данным.
Данные в реляционной БД хранятся в отношениях (таблицах), состоящих из строк и
столбцов. При этом единицей хранения и доступа к данным является строка,
состоящая из полей, идентифицируемых именами столбцов. Кроме таблиц,
существуют другие объекты БД (виды, процедуры), которые предоставляют доступ к
данным, хранящимся в таблицах.
Для работы СУБД на НЖМД выделяется область для хранения БД, называемая
«кластером БД». Кластер БД является набором БД, управляемых одним экземпляром
сервера СУБД. Настройка работы отдельного экземпляра сервера СУБД так же
определяется в рамках кластера соответствующими конфигурационными файлами.
10.17.1. Состав
СУБД PostgreSQL состоит из нескольких компонентов:
- postgresql сервисная служба, реализующая непосредственно сервер БД;
- libpq клиентская библиотека, предоставляющая доступ к серверу СУБД;
478
ЛКНВ.11100-01 90 01
- набор серверных утилит для управления работой сервера и создания
кластеров БД;
- набор клиентских утилит для создания и управления БД.
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);
- external_pid_file определяет имя дополнительного файла с
идентификатором процесса, который сервер создает для использования
программами администрирования сервера.
479
ЛКНВ.11100-01 90 01
Организация терминального доступа XRDP
Для организации и реализации терминального доступа для обработки
информации в ОС Альт 8 СП возможно использование XRDP (Remote Desktop
Protocol). Программа предоставляет рабочий стол X, обеспечивает графический вход
с использованием протокола удаленного рабочего стола RDP. XRDP поддерживает
удаленное управление графикой, двустороннюю передачу буфера обмена,
перенаправление звука, диска. Передача RDP шифруется с использованием TLS по
умолчанию.
10.18.1. Базовая настройка сервера терминалов
П р и м е ч а н и е . В настройках сети сервера должен быть указан способ
получения IP-адреса: «Вручную», указаны статические настройки сети: IP-адрес,
маска, шлюз.
Для настройки сервера терминалов необходимо установить пакет xrdp:
# apt-get update
# apt-get install xrdp
Включить и добавить в автозагрузку сервисы:
# systemctl enable --now xrdp xrdp-sesman
При использовании в качестве сервера терминалов ОС Альт 8 СП (исполнение
Сервер) в профиле установки будет отсутствовать графическая оболочка.
Для установки графической оболочки, и переключения в графический режим работы
следует выполнить следующие команды:
# apt-get update
# apt-get install mate-default lightdm-gtk-greeter fonts-ttf-dejavu
# systemctl enable lightdm
# systemctl set-default graphical.target
# reboot
После выполнения установки будет выведено сообщение о нарушении
целостности. Для восстановления целостности системы, если система контроля
целостности IMA/EVM не инициализирована, выполнить команду:
# integalert fix
480
ЛКНВ.11100-01 90 01
10.18.2. Настройка сервера
Параметры настройки сервера хранятся в файле /etc/xrdp/sesman.ini, файл
конфигурации содержит разделы:
- «Globals» определяет некоторые глобальные параметры конфигурации;
- «Security» определяет параметры безопасности;
- «Session» определяет параметры подключения, управление сеансами;
- «Session» definitions определяет поддерживаемые типы сеансов.
Конфигурация каждого типа сеанса определяется как отдельный раздел по
имени типа сеанса Xorg, Xvnc;
- «Logging» определяет параметры подсистемы логирования;
- «Chansrv» определяет параметры подключения диска, которые
поддерживает RDP.
Фрагмент конфигурационного файла /etc/xrdp/sesman.ini:
;; MaxSessions - maximum number of connections to an xrdp server
; Type: integer
; Default: 0
MaxSessions=50
;; KillDisconnected - kill disconnected sessions
; Type: boolean
; Default: false
; if 1, true, or yes, kill session after 60 seconds
KillDisconnected=false
;; DisconnectedTimeLimit - when to kill idle sessions
; Type: integer
; Default: 0
; if not zero, the seconds before a disconnected session is killed
; min 60 seconds
DisconnectedTimeLimit=0
;; IdleTimeLimit (specify in second) - wait before disconnect idle
481
ЛКНВ.11100-01 90 01
sessions
; Type: integer
; Default: 0
; Set to 0 to disable idle disconnection.
IdleTimeLimit=0
;; Policy - session allocation policy
; Type: enum [ "Default" | "UBD" | "UBI" | "UBC" | "UBDI" | "UBDC" ]
; "Default" session per <User,BitPerPixel>
; "UBD" session per <User,BitPerPixel,DisplaySize>
; "UBI" session per <User,BitPerPixel,IPAddr>
; "UBC" session per <User,BitPerPixel,Connection>
; "UBDI" session per <User,BitPerPixel,DisplaySize,IPAddr>
; "UBDC" session per <User,BitPerPixel,DisplaySize,Connection>
Policy=Default
[Logging]
LogFile=xrdp-sesman.log
LogLevel=DEBUG
EnableSyslog=1
SyslogLevel=DEBUG
Некоторые настройки параметров безопасности сервера, установленные по
умолчанию:
- ListenPort=3350 порт, который прослушивает xrdp-sesman
сли настроен межсетевой экран необходимо включить этот порт в
разрешенные);
- TerminalServerUsers=tsusers группа, в которую необходимо добавить
пользователей для организации доступа к серверу. Данная группа создается
локально при установке сервера, если рассматривать доменную авторизацию,
то необходимо внести изменения в файл конфигурации
/etc/sssd/sssd.conf и в настройках sesman.ini вместо локальной группы
указать доменную;
482
ЛКНВ.11100-01 90 01
- TerminalServerAdmins=tsadmins группа, в которую необходимо добавить
пользователей для организации административного доступа к серверу;
- MaxLoginRetry=4 максимальное количество попыток подключения;
- MaxSessions=50 максимальное количество подключений к серверу;
- KillDisconnected=false разрыв сеанса при отключении пользователя;
- AllowRootLogin=false (true/false) управление авторизацией под
учетной записью root;
- FuseMountName=thinclient_drivers название монтируемой папки.
Конфигурацию сервера возможно настроить в соответствии с необходимыми
требованиями безопасности.
10.18.3. Настройки доступа пользователей
Для доступа к терминальному сеансу пользователь должен быть включен в
группу tsusers:
# gpasswd -a <пользователь> tsusers
Для разрешения монтирования папки пользователь должен быть включен в
группу fuse:
# gpasswd -a <пользователь> fuse
10.18.4. Подключение звука
Для возможности прослушивания звука из терминального сеанса локально
необходимо установить на терминальный сервер пакет
pulseaudio-module-xrdp:
# apt-get install pulseaudio-module-xrdp
10.18.5. Подключение USB-устройств
Для организации инфраструктуры перенаправления USB-устройств на сеанс
сервера XRDP необходимо установить пакет xrdp-usb, который состоит из двух
пакетов:
- терминальный сервер xrdp-usb-session;
- терминальный клиент xrdp-usb-terminal.
483
ЛКНВ.11100-01 90 01
Пакет xrdp-usb-session позволяет добавлять подключение разрешенных
администратором USB-устройств с клиента.
Установкапакета xrdp-usb-session на сервер:
# apt-get install xrdp-usb-session
Перезапустить службу xrdp-sesman:
# systemctl restart xrdp-sesman.service
Выполнить настройку клиента:
1) установить пакет xrdp-usb-terminal:
# apt-get install xrdp-usb-terminal
2) добавить пользователя клиентского компьютера в группу disk:
# gpasswd -a <пользователь> disk
3) перезагрузить систему;
4) убедиться, что служба usbipd запущена:
# systemctl status usbipd
Далее необходимо подключить USB-устройства и настроить разрешения для
передачи.
Осуществим просмотр идентификатора подключенного USB-устройства:
#lsusb
Bus 002 Device 002: ID 0951:1643 Kingston Technology DataTraveler G3
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Из полученного вывода следует выбрать ID устройства, которое необходимо
передать при подключении к терминальной сессии, скопировать нужный
идентификатор и прописать его в файле /etc/xrdp-usb:
# Config file for xrdp-usb-terminal
# Add redirected usb ids one per line
# Example
#072f:90cc # Advanced Card Systems, Ltd : ACR38 SmartCard Reader
(072f:90cc)
#072f:* # All devices from specified vendor
0951:1643 # ID устройства
484
ЛКНВ.11100-01 90 01
10.18.6. Настройка клиента для подключения к серверу терминалов
П р и м е ч а н и е . Следует избегать одновременных сеансов RDP и обычных
для одного и того же пользователя. Systemd не позволит полноценно работать в сеансе
RDP.
Для подключения к серверу терминалов, на клиентском компьютере должен
быть установлен клиент удаленного доступа. Для подключения к серверу терминалов
можно использовать программы удаленного доступа FreeRDP, Remmina, Connector и
т. д.
Перед подключением необходимо на клиенте выполнить команду usbip-export:
$ usbip-export
Для подключения с использованием xfreerdp (должен быть установлен пакет
xfreerdp) необходимо выполнить команду:
$ xfreerdp /v:192.168.0.148 /u:user /p:password
Описание некоторых параметров:
- /v:<server>[:port] ip-адрес или имя сервера;
- /u:<user> пользователь;
- /p:<password> пароль;
- /w:<width> ширина окна;
- /h:<height> высота окна;
- /f полноэкранный режим.
П р и м е ч а н и е . Если не указывать пользователя или пароль, появится окно
входа.
На рис. 204 показано подключение к терминальной сессии с использованием
xfreerdp.
В качестве клиента удаленного доступа также можно использовать программу
Remmina.
Для этого необходимо установить пакеты remmina и remmina-plugins-rdp:
# apt-get install remmina remmina-plugins-rdp
485
ЛКНВ.11100-01 90 01
Для запускаRemmina выбрать в меню «Приложения» «Интернет» «Клиент
удалённого доступа к рабочему столу».
Рис. 204 FreeRDP. Подключение к удаленному рабочему столу
Для подключения к терминальной сессии в окне Remmina (Рис. 207) нажмите
кнопку создания нового подключения (Рис. 205) и в открывшемся окне (рис. 206)
укажите настройки RDP-подключения (IP-адрес терминального сервера, имя
пользователя, пароль и т. д.), нажамите кнопку «Сохранить и подключиться».
Рис. 205 Кнопка создания нового подключения
486
ЛКНВ.11100-01 90 01
Рис. 206 Настройки RDP-подключения
Рис. 207 Remmina. Подключение к удаленному рабочему столу
487
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Если автоматического монтирования не происходит, следует
выполнить команду:
$ udisksctl mount -b /dev/sdb1
где /dev/sdb1 USB-устройство, можно посмотреть в выводе команды lslbk.
В качестве клиента удаленного доступа можно использовать программу
Connector. Connector позволяет осуществлять удаленный доступ к компьютерам с
различными ОС с использованием распространенных типов подключений, таких как
RDP, VNC, NX, XDMCP, SSH, SFTP. Connector реализует интерфейс для пользователя
к предустановленным программам для запуска их с введенными параметрами.
Установите пакет connector на клиентский компьютер:
# apt-get install connector
Для подключения к терминальной сесссии запустите Connector выбрать в
меню «Приложения» «Интернет» «Connector». В окне подключения (Рис. 208)
указать IP-адрес терминального сервера. Нажать кнопку «Дополнительные
параметры» и в открывшемся окне (Рис. 209) указать настройки RDP-подключения.
Нажать кнопку «Подключиться».
Рис. 208 Connector. Окно подключения
488
ЛКНВ.11100-01 90 01
Для просмотра содержимого проброшенного USB-устройства перейти в
«Домашний каталог» «thinclient_drives» «MEDIA» «kingston» (Рис. 210). Где:
- thinclient_drives каталог, указанный в конфигурационном файле
/etc/xrdp/sesman.ini;
- kingston наименование USB-устройства.
Рис. 209 Настройки RDP-подключения
489
ЛКНВ.11100-01 90 01
Рис. 210
10.18.7. Управление XRDP
Просмотр информации об активных пользователях:
# ps aux |grep xrdp |grep xorg
user1 5689 0.6 2.5 943524 100112 ? Sl 17:48 0:09
Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp
-logfile .xorgxrdp.%s.log
В выводе команды видно, что подключен пользователь user1 и его
PID 5689.
Следующая команда отключит пользователя user1 и завершит все его процессы:
# pkill -9 -u user1
490
ЛКНВ.11100-01 90 01
11. УПРАВЛЕНИЕ ПРОГРАММНЫМИ ПАКЕТАМИ
После установки ОС Альт 8 СП при первом запуске доступен тот или иной
набор ПО. Количество предустановленных программ зависит от набора программ
конкретного дистрибутива или от выбора, сделанного при установке системы. Если
интересующие программы не были обнаружены в системе, то имеется возможность
доустановить их из разных источников.
Дополнительное ПО может находиться на установочном диске и (или) в
специальных банках программ (репозиториях), расположенных в сети Интернет
и (или) в локальной сети. Программы, размещенные в указанных источниках, имеют
вид подготовленных для установки пакетов.
Для установки, удаления и обновления программ и поддержания целостности
системы в ОС семейства Linux используются менеджеры пакетов типа «rpm».
Для автоматизации этого процесса и применяется усовершенствованная система
управления программными пакетами APT (Advanced Packaging Tool).
ПРЕДУПРЕЖДЕНИЕ
Перед установкой программ внимательно ознакомьтесь с п. 11.4 «Управление
установкой (инсталляцией) компонентов программного обеспечения».
Автоматизация достигается созданием одного или нескольких внешних
репозиториев, в которых хранятся пакеты программ и относительно которых
производится сверка пакетов, установленных в системе. Репозитории могут
содержать как официальную версию дистрибутива, обновляемую его разработчиками
по мере выхода новых версий программ, так и локальные наработки, например,
пакеты, разработанные внутри компании.
Таким образом, в распоряжении APT находятся две базы данных: одна
описывает установленные в системе пакеты, вторая внешний репозиторий. APT
отслеживает целостность установленной системы и, в случае обнаружения
противоречий в зависимостях пакетов, руководствуется сведениями о внешнем
репозитории для разрешения конфликтов и поиска корректного пути их устранения.
491
ЛКНВ.11100-01 90 01
Система APT состоит из нескольких утилит. Чаще всего используется утилита
управления пакетами apt-get, которая автоматически определяет зависимости между
пакетами и строго следит за их соблюдением при выполнении любой из следующих
операций: установка, удаление или обновление пакетов.
Источники программ (репозитории)
11.1.1. Репозитории для APT
Репозитории, с которыми работает APT, отличаются от обычного набора
пакетов наличием мета информации индексов пакетов, содержащихся в
репозитории, и сведений о них. Поэтому, чтобы получить всю информацию о
репозитории, APT достаточно получить его индексы.
APT может работать с любым количеством репозиториев одновременно,
формируя единую информационную базу обо всех содержащихся в них пакетах. При
установке пакетов APT обращает внимание только на название пакета, его версию и
зависимости, а расположение в том или ином репозитории не имеет значения. Если
потребуется, APT в рамках одной операции установки группы пакетов может
пользоваться несколькими репозиториями.
Подключая одновременно несколько репозиториев, нужно следить за тем,
чтобы они были совместимы друг с другом по пакетной базе отражали один
определенный этап разработки. Совместимыми являются основной репозиторий
дистрибутива и репозиторий обновлений по безопасности к данному дистрибутиву.
В то же время смешение среди источников APT репозиториев, относящихся к разным
дистрибутивам, или смешение стабильного репозитория с нестабильной веткой
разработки (Sisyphus) чревато различными неожиданными трудностями при
обновлении пакетов.
APT позволяет взаимодействовать с репозиторием с помощью различных
протоколов доступа. Наиболее популярные HTTP и FTP, однако существуют и
некоторые дополнительные методы.
Для того чтобы APT мог использовать тот или иной репозиторий, информацию
о нем необходимо поместить в файл.
492
ЛКНВ.11100-01 90 01
Файлы описания источников находятся в директории
/etc/apt/source.list.d/ и имеют расширение .list, например:
altsp.list
sources.list
Так же, есть файл с предопределенным именем: /etc/apt/source.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)
# 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
Если первым символом идет символ комментария строка считается простым
текстом, а не описанием источника. У активной записи, в начале строки этот символ
отсутствует.
493
ЛКНВ.11100-01 90 01
Описание источника состоит из ключевых элементов:
- тип репозитория применяется пакетная система rpm (все источники
описывают rpm-репозитории);
- ключ подписи пакеты в репозитории подписаны и могут быть проверены,
если указать ключ. Списки доступных ключей хранятся в каталоге
/etc/apt/vendors.list.d в файлах с расширением .list. Так же, есть
файл /etc/apt/vendors.list. В примере использован ключ [cert8];
- адрес адрес расположения репозитория. Репозитории доступы несколькими
способами (ftp://, http:// и rsync://). После описания способа доступа,
прописан адрес;
- тип данных репозиторий может содержать как исполняемые пакеты, так и
пакеты для разработчиков или пакеты с данными общего характера. Тип
x86_64-i586 показывает, в данном репозитории находятся исполняемые
программы и библиотеки, собранные для 32-х разрядных систем (32bit). При
использовании дистрибутива для 64-х разрядных процессоров, тип
содержимого будет x86_64. В общем случае, запись источника с
выполняемыми программами и библиотеками дополняет источник с типом
noarch. Этот источник предоставляет пакеты, идентичные для обеих
платформ x86. Как правило, это данные, небинарные библиотеки к Perl,
Python и т. п.;
- название – название репозитория.
Для добавления в 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
Создать директорию для монтирования:
494
ЛКНВ.11100-01 90 01
# mkdir /media/ALTLinux
Затем использовать команду добавления носителя:
# apt-cdrom add
После этого в sources.list появится запись о подключенном диске примерно
такого вида:
rpm cdrom:[ ALT 8 SP Workstation]/ ALTLinux main
После того как список репозиториев в sources.list будет отредактирован,
необходимо обновить локальную базу данных APT о доступных пакетах, выполнив
команду:
# apt-get update
В случае, если в sources.list присутствует репозиторий, содержимое
которого может изменяться, то прежде чем работать с APT, необходимо
синхронизировать локальную базу данных с удаленным сервером:
# apt-get update
Так происходит с любым постоянно разрабатываемым репозиторием,
например, появляются обновления по безопасности (updates).
Локальная база данных создается заново каждый раз, когда в репозитории
происходит изменение: добавление, удаление или переименование пакета. Для
репозиториев, находящихся на извлекаемых носителях информации и подключенных
командой apt-cdrom add, синхронизация производится единожды в момент
подключения.
При установке определенного пакета APT производит поиск самой новой
версии этого пакета во всех известных ему репозиториях вне зависимости от способа
доступа к ним. Так, если в репозитории, доступном в сети Интернет, обнаружена
более новая в сравнении с компакт-диском версия программы, то APT начнет
загружать соответствующий пакет из сети Интернет. Поэтому, если подключение к
сети Интернет отсутствует или ограничено низкой пропускной способностью канала
или высокой стоимостью, то следует закомментировать строчки (добавить в начало
строки символ #) в /etc/apt/sources.list, относящиеся к ресурсам в сети
Интернет.
495
ЛКНВ.11100-01 90 01
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
Добавление репозиториев вручную
Отредактируйте в любом текстовом редакторе файлы из папки
/etc/apt/sources.list.d/. Необходимы права администратора для изменения этих
файлов.
В файле alt.list может содержаться примерно такая информация:
# update.altsp.su (IVK, Moscow)
# ftp.altlinux.org (ALT Linux, Moscow)
# ALT Certified 9
#rpm [cert9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/cert9f1/branch
x86_64 classic
#rpm [cert9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/cert9f1/branch
x86_64-i586 classic
#rpm [cert9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/cert9f1/branch
noarch classic
rpm [cert9] http://ftp.altlinux.org/pub/distributions/ALTLinux/cert9f1/branch
x86_64 classic
rpm [cert9] http://ftp.altlinux.org/pub/distributions/ALTLinux/cert9f1/branch
x86_64-i586 classic
496
ЛКНВ.11100-01 90 01
rpm [cert9] http://ftp.altlinux.org/pub/distributions/ALTLinux/c9f1/branch
noarch classic
По сути, каждая строчка соответствует некому репозиторию. Не активные
репозитории – строки, начинающиеся с #rpm.
После добавления репозиториев обновите информацию о них: запустите
терминал и выполните команду apt-get update или apt-repo update.
Для выполнения этих команд необходимы права администратора.
11.1.3. Центр управления системой
Для выбора репозитория в ЦУС меню «Программное обеспечение»
«Источники для установки ПО» в выпадающем списке необходимо отметить один из
предлагаемых вариантов и нажать на кнопку «Изменить».
К предложенному списку можно самостоятельно добавить репозитории, нажав на
кнопку «Дополнительно…».
После добавления репозиториев необходимо обновить информацию о них в
разделе ЦУС «Программное обеспечение» «Установка программ» кнопка
«Обновить».
Информация по установки ПО в ЦУС см. в п. 11.7.1.
11.1.4. Программа управления пакетами Synaptic
Программа Synaptic также может использоваться для выбора репозитория.
Для указания конкретного репозитория в меню «Параметры» «Репозитории»
необходимо отметить один из предлагаемых вариантов и нажать на кнопку «OK».
К предложенному списку можно самостоятельно добавить репозитории, нажав на
кнопку «Создать» и введя необходимые данные.
После добавления репозиториев необходимо обновить информацию о них в
программе управления пакетами Synaptic: «Правка» «Получить сведения о
пакетах».
П р и м е ч а н и е . После выбора и добавления репозиториев необходимо
получить сведения о находящихся в них пакетах. В противном случае список
доступных для установки программ будет не актуален.
497
ЛКНВ.11100-01 90 01
Обновление информации о репозиториях в APT
Практически любое действие с системой APT начинается с обновления данных
от активированных источников. Список источников необходимо обновлять при
поиске новой версии пакета, установке пакетов или обновлении установленных
пакетов новыми версиями.
Обновление данных осуществляется командой:
# apt-get update
Программа загрузит данные с активированных источников в свой кеш. Пример:
# apt-get update
Get:1 http://ftp.altlinux.org x86_64 release [896B]
Get:2 http://ftp.altlinux.org x86_64-i586 release [555B]
Get:3 http://ftp.altlinux.org noarch release [690B]
Fetched 2141B in 0s (2476B/s)
Get:1 http://ftp.altlinux.org x86_64/classic pkglist [15.7MB]
Get:2 http://ftp.altlinux.org x86_64/classic release [135B]
Get:3 http://ftp.altlinux.org x86_64-i586/classic pkglist [11.7MB]
Get:4 http://ftp.altlinux.org x86_64-i586/classic release [140B]
Get:5 http://ftp.altlinux.org noarch/classic pkglist [3493kB]
Get:6 http://ftp.altlinux.org noarch/classic release [135B]
Fetched 30.9MB in 33s (910kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
После выполнения этой команды, 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
498
ЛКНВ.11100-01 90 01
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
[...]
Символ «^» в поисковом выражении, указывает на то, что необходимо найти
совпадения только в начале строки (в данном случае – в начале имени пакета).
Для того чтобы подробнее узнать о каждом из найденных пакетов и прочитать
его описание, можно воспользоваться командой 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 позволяет осуществлять поиск по русскому слову, однако в
этом случае будут найдены только те пакеты, у которых есть описание на русском
языке.
Управление установкой (инсталляцией) компонентов программного
обеспечения
Установку пакетов может производить только администратор.
499
ЛКНВ.11100-01 90 01
ВНИМАНИЕ!
Обновление пакетов выполняется при отсутствии нарушений целостности
системы. Проверка целостности системы выполняется:
1) с помощью команды:
# integalert
При отсутствии изменений вывод команды: integrity check OK
2) или просмотр записей osec в системном журнале с помощью команды:
# journalctl | grep osec
При отсутствии изменений в записях журнала присутствует:
No changes[osec]
ВНИМАНИЕ!
Если в системе инициализирована система контроля целостности ima-evm
(должна быть инициализирована), то установка/обновление пакетов должно
происходить посредством команды updater-start (см. п. 11.4.1) или штатным
методом с использованием команды integrity-applier (см. п. 11.4.2).
Подробнее информацию о контроле целостности см. в документе «Руководство
по комплексу средств защиты. ЛКНВ.11100-01 99 01».
Если система контроля целостности не используется, то обновление пакетов
необходимо производить в следующем порядке:
1) если используется control++ (черные/белые списки), необходимо
выключить черные/белые списки, выполнив сброс текущего режима
(просмотреть установленный режим можно, выполнив команду
control++ list, активный режим будет дополнительно отмечен *):
# control++ reset
2) установить пакеты/обновить систему при помощи apt-get;
3) включить установленный ранее режим черного/белого списка, выполнив
команду (в зависимости от вывода в пункте 1):
# control++ blacklist
или
# control++ wl
4) выполнить команду:
# integalert fix
500
ЛКНВ.11100-01 90 01
11.4.1. Команда updater-start
Для того чтобы система сохранила все настройки безопасности для
установки/обновления пакетов может использоваться команда updater-start
(из пакета updater).
В результате запуска данной команды будет обновлена система и ядро системы,
а также включена система контроля целостности ima-evm. Необходимо дождаться
завершения работы команды (система будет несколько раз перезагружена).
П р и м е ч а н и е . Выполнение команды может занять довольно
продолжительное время (время зависит от количества установленных в системе
файлов).
П р и м е ч а н и е . Если после отработки команды 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) запустить обновление:
501
ЛКНВ.11100-01 90 01
# updater-start
4) переименовать файл записи аудита /var/log/audit/audit.log:
# mv /var/log/audit/audit.log /var/log/audit/audit_old.log
5) выполнить запуск аудита:
# service auditd start
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
Если пакет уже установлен и в подключенном репозитории нет обновлений для
данного пакета, система сообщит об уже установленном пакете последней версии.
Если в репозитории присутствует более новая версия или новое обновление
программа начнет процесс установки.
502
ЛКНВ.11100-01 90 01
apt-get позволяет устанавливать в систему другие, пока еще не установленные
пакеты, требуемые для работы. Он определяет, какие пакеты необходимо установить,
и устанавливает их, пользуясь всеми доступными репозиториями.
Установка пакета gimp командой apt-get install gimp приведет к
следующему диалогу с APT:
# apt-get install gimp
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
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 дополнительно
проверяет, не обновилась ли версия пакета в репозитории по сравнению с
установленным в системе.
503
ЛКНВ.11100-01 90 01
При помощи APT можно установить и отдельный бинарный rpm-пакет, не
входящий ни в один из репозиториев. Для этого достаточно выполнить команду
apt-get install путь_к_файлу.rpm. При этом APT проведет стандартную
процедуру проверки зависимостей и конфликтов с уже установленными пакетами.
В результате операций с пакетами без использования APT может нарушиться
целостность ОС Альт 8 СП, и apt-get в таком случае откажется выполнять операции
установки, удаления или обновления.
Для восстановления целостности ОС Альт 8 СП необходимо повторить
операцию, задав опцию -f, заставляющую apt-get исправить нарушенные
зависимости, удалить или заменить конфликтующие пакеты. Любые действия в этом
режиме обязательно требуют подтверждения со стороны пользователя.
При установке пакетов происходит запись в системный журнал вида:
apt-get: имя-пакета installed
Удаление установленного пакета командой apt
Для удаления пакета используется команда apt-get remove <имя_пакета>.
Удаление пакета с сохранением его файлов настройки производится при помощи
следующей команды:
# apt-get remove <значимая_часть_имени_пакета>
В случае, если при этом необходимо полностью очистить систему от всех
компонент удаляемого пакета, то применяется команда:
# apt-get remove --purge <значимая_часть_имени_пакета>
Для того чтобы не нарушать целостность системы, будут удалены и все пакеты,
зависящие от удаляемого.
В случае удаления с помощью apt-get базового компонента системы появится
запрос на подтверждение операции:
# apt-get remove filesystem
Обработка файловых зависимостей... Завершено
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
basesystem filesystem ppp sudo
504
ЛКНВ.11100-01 90 01
Внимание: следующие базовые пакеты будут удалены:
В обычных условиях этого не должно было произойти, надеемся, вы
точно
представляете, чего требуете!
basesystem filesystem (по причине basesystem)
0 пакетов будет обновлено, 0 будет добавлено новых, 4 будет
удалено(заменено) и 0 не будет обновлено.
Необходимо получить 0B архивов. После распаковки 588kБ будет
освобождено.
Вы делаете нечто потенциально опасное!
Введите фразу 'Yes, do as I say!' чтобы продолжить.
Каждую ситуацию, в которой APT выдает такое сообщение, необходимо
рассматривать отдельно. Однако, вероятность того, что после выполнения этой
команды система окажется неработоспособной, очень велика.
При удалении пакетов происходит запись в системный журнал вида:
apt-get: имя-пакета removed
Альтернативная установка дополнительного ПО
Для установки дополнительного ПО также можно использовать ЦУС либо
программу управления пакетами Synaptic.
ПРЕДУПРЕЖДЕНИЕ
Нельзя использовать одновременно два менеджера пакетов, так как это может
привести к их некорректной работе.
11.7.1. Установка дополнительного ПО в ЦУС
ЦУС содержит модуль установки пакетов: «Программное обеспечение»
«Установка программ». Для облегчения поиска доступные для установки программы
(рис. 211) разделены на группы, выводимые в левой части окна программы. Справа
расположен список самих программ с указанием их текущего состояния:
- зеленая метка – пакет уже установлен;
- белая – пакет не установлен.
505
ЛКНВ.11100-01 90 01
Рис. 211 ЦУС Программное обеспечение
Объяснение всех обозначений можно увидеть, отметив пункт «Показать
статистику».
Для начала установки двойным щелчком мыши необходимо отметить
неустановленный пакет в правой половине окна и нажать на кнопку «Применить».
При необходимости менеджер пакетов попросит вставить установочный диск.
11.7.2. Программа управления пакетами Synaptic
Программа управления пакетами Synaptic находится на панели инструментов
меню MATE → «Система» → «Параметры» → «Прочие» «Менеджер пакетов».
Для облегчения поиска доступные для установки программы (рис. 212)
разделены на группы, выводимые в левой части окна программы. Справа расположен
список самих программ с указанием их текущего состояния:
- зеленая метка – пакет уже установлен;
- белая – пакет не установлен.
506
ЛКНВ.11100-01 90 01
Рис. 212 Программа управления пакетами Synaptic
При выборе пакета из списка в нижней части отображаются сведения о нем и
его описание.
Перед тем как устанавливать или обновлять пакет, необходимо нажать на
кнопку «Получить сведения» (или комбинацию клавиш <Ctrl>+<R>), для того чтобы
скачать список самых последних версий ПО.
Для начала установки двойным щелчком мыши необходимо отметить
неустановленный пакет в правой половине окна и нажать на кнопку «Применить».
Обновление всех установленных пакетов apt-get
Полное обновление всех установленных в системе пакетов производится при
помощи команды:
# apt-get dist-upgrade
П р и м е ч а н и е . Команда apt-get dist-upgrade обновит систему, но ядро
ОС не будет обновлено (см. п. 11.10).
507
ЛКНВ.11100-01 90 01
В случае обновления всего дистрибутива APT проведет сравнение системы с
репозиторием и удалит устаревшие пакеты, установит новые версии присутствующих
в системе пакетов, отследит ситуации с переименованиями пакетов или изменения
зависимостей между старыми и новыми версиями программ. Все, что потребуется
поставить (или удалить) дополнительно к уже имеющемуся в системе, будет указано
в отчете apt-get, которым APT предварит само обновление.
Обновление всех установленных пакетов Synaptic
Synaptic поддерживает два варианта обновления системы:
1) Умное обновление (рекомендуется)
Умное обновление попытается разрешить конфликты пакетов перед
обновлением системы. Действие умного обновления аналогично действию команды
apt-get dist-upgrade.
2) Стандартное обновление
Стандартное обновление обновит только те пакеты, которые не требуют
установки дополнительных зависимостей.
По умолчанию Synaptic использует умное обновление. Для того чтобы
изменить метод обновления системы, необходимо открыть диалоговое окно
«Параметры» (Параметры Параметры) и на вкладке «Основные» в списке
«Обновить систему» выбрать требуемый способ.
Для обновления системы необходимо:
1) нажать на кнопку «Получить сведения» (или комбинацию клавиш
<Ctrl>+<R>), для того чтобы скачать список самых последних версий ПО;
2) нажать на кнопку «Отметить для обновления» (или комбинацию клавиш
<Ctrl>+<G>), для того чтобы Synaptic отметил для обновления все пакеты;
3) нажать на кнопку «Применить».
Обновление ядра и модулей ядра
Для обновления ядра ОС необходимо выполнить команду:
# update-kernel
508
ЛКНВ.11100-01 90 01
П р и м е ч а н и е . Если индексы сегодня еще не обновлялись перед
выполнением команды 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
Удаление старых версий ядра
После успешной загрузки на обновленном ядре можно удалить старое,
выполнив команду:
# remove-old-kernels
Обновление изолированного окружения (chrooted environment)
Команда update_chrooted --list выводит список всех типов модулей для
update_chrooted, которые установлены в системе:
# update_chrooted --list
List of registered types: all conf lib
С помощью команды update_chrooted <имя_типа> можно выполнить все
модули указанного типа.
509
ЛКНВ.11100-01 90 01
После изменения общесистемных конфигурационных файлов типа
/etc/resolv.conf, для того чтобы синхронизировать эти изменения во всех
многочисленных chrooted environments следует выполнить команду:
# update_chrooted conf
После изменения системных библиотек следует выполнить команду:
# update_chrooted lib
Для синхронизации изменений конфигурационных файлов и системных
библиотек следует выполнить команду:
# update_chrooted all
Проверка подлинности пакетов
Подлинность пакетов при обновлении обеспечивается средствами
кодирования, подтверждающих как целостность самих пакетов, так и целостность
индексов, описывающих репозитории.
Ключевая информация для проверки подлинности распространяется вместе с
дистрибутивом на сертифицированном носителе и защищена от потенциальной
подмены при передаче по каналам связи.
Проверить подлинность и целостность пакета можно командой:
# rpm vK имя_пакета
Получение уведомлений о выходе обновлений
Информирование потребителей о мерах, направленных на нейтрализацию
выявленных уязвимостей ПИ ОС Альт 8 СП, и выпускаемых обновлениях
выполняется путем публикации информации на официальном сайте предприятия-
разработчика (https://altsp.su) или по электронной почте.
Обновление систем, не имеющих выхода в Интернет
Для систем, не имеющих прямого выхода в Интернет, рекомендуется установка
отдельного сервера обновлений на базе ОС Альт 8 СП, находящегося вне
защищенного контура и организация ограниченного доступа к этому серверу.
510
ЛКНВ.11100-01 90 01
Сервер обновлений технология, позволяющая настроить автоматическое
обновление ПО, установленного на клиентских машинах (рабочих местах),
работающих под управлением ОС Альт 8 СП Рабочая станция.
Модуль ЦУС «Сервер обновлений» (пакет alterator-mirror) из раздела
«Серверы» предназначен для зеркалирования репозиториев и публикации их для
обновлений рабочих станций и серверов. Репозиторий выбирается в соответствии с
выбранной веткой для соответствующего дистрибутива (актуальную информацию
см. в документе «Формуляр. ЛКНВ.11100-01 30 01» в разделе сведений об
изменениях).
Для добавления диска в качестве источника установки следует воспользоваться
командой apt-cdrom add.
По умолчанию локальное зеркало репозитория находится в
/srv/public/mirror. Для того чтобы зеркалирование происходило в другую папку
необходимо эту папку примонтировать в папку /srv/public/mirror. Для этого в
файл /etc/fstab следует вписать следующую строку:
/media/disk/localrepo /srv/public/mirror none rw,bind,auto 0 0
где /media/disk/localrepo папка-хранилище локального репозитория.
На странице настройки сервера обновлений ЦУС (рис. 213) можно выбрать, как
часто выполнять закачку пакетов, можно выставить время, когда начинать
зеркалирование ис. 214).
Так же можно выбрать репозитории, локальные срезы которых необходимы.
Далее при нажатии на название репозитория, появляются настройки этого
репозитория (рис. 215). Необходимо выбрать источник (сайт, откуда будет
скачиваться репозиторий), архитектуру процессора (если их несколько, то стоит
выбрать соответствующие).
Настройка локального репозитория заканчивается нажатием на кнопку
«Применить».
511
ЛКНВ.11100-01 90 01
Рис. 213 Меню «Сервер обновлений»
Рис. 214 Настройка расписания
Рис. 215 Настройки репозитория
512
ЛКНВ.11100-01 90 01
Сервер обновлений предоставляет возможность автоматически настроить
обновление клиентских машин в нужном режиме:
- локальное зеркало репозитория в этом режиме на сервере создается копия
удаленного репозитория, доступная клиентским машинам по протоколу FTP.
Загрузка ПО клиентскими машинами производится с локального сервера.
Наличие на локальном сервере зеркала репозитория при большом количестве
машин в сети позволяет существенно сэкономить на трафике;
- публикация репозитория в этом случае реального зеркалирования (загрузки
пакетов) не происходит. Публикуется URL внешнего сервера, содержащего
репозиторий. Такая публикация позволяет клиентским машинам
автоматически настроить свои менеджеры пакетов на использование
внешнего сервера. Загрузка ПО клиентским машинам производится с
внешнего сервера.
Здесь также можно указать имена каталогов и файлов, которые будут
исключены из синхронизации, что позволит уменьшить размер скачиваемых файлов
и занимаемое репозиторием место на диске. Например, не скачивать пакеты с
исходным кодом и пакеты с отладочной информацией:
SRPMS
*-debuginfo-*
Шаблоны указываются по одному в отдельной строке. Символ «*»
используется для подстановки любого количества символов.
Настройка локального репозитория заканчивается нажатием на кнопку
«Применить».
Далее необходимо отредактировать файл
/etc/httpd2/conf/include/Directory_html_default.conf, изменив следующие
строки:
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
513
ЛКНВ.11100-01 90 01
Эти настройки разрешают серверу apache обрабатывать символические ссылки.
Перезапустите apache:
# service httpd2 restart
Осуществите переход в папку веб-сервера:
cd /var/www/html
Создайте здесь символическую ссылку на репозиторий:
ln -s /srv/public/mirror mirror
На клиентских машинах необходимо настроить репозитории. Для этого
необходимо запустить 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.
514
ЛКНВ.11100-01 90 01
Список команд, 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" выполняет поиск именно такого сочетания.
515
ЛКНВ.11100-01 90 01
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, а такие
файлы нельзя удалять.
516
ЛКНВ.11100-01 90 01
Команда 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.
П р и м е ч а н и е . Должен быть установлен пакет altsp-test-scripts.
Пользователи для удаления данных должны использовать команды s_rm и
s_fill.
Модуль AltHa
AltHa – это модуль безопасности Linux, может использоваться для настройки
блокировки возможности удаления открытого файла.
Модуль в настоящее время имеет три варианта защиты пользовательского
пространства:
- игнорировать биты SUID в двоичных файлах (возможны исключения);
517
ЛКНВ.11100-01 90 01
- запретить запуск выбранных интерпретаторов в интерактивном режиме;
- отключить возможность удаления открытых файлов в выбранных каталогах.
Для включения модуля AltHa необходимо передать ядру параметр altha=1: для
этого в файле /etc/sysconfig/grub2 в строке GRUB_CMDLINE_LINUX_DEFAULT
следует добавить опцию: altha=1. Например:
# vim /etc/sysconfig/grub2
...
GRUB_CMDLINE_LINUX_DEFAULT='vga=0x314 quiet resume=/dev/disk/by-
uuid/187504b7-7f78-486d-b383-1b638370d3eb panic=30 splash altha=1'
Обновить загрузчик, выполнив команду:
# update-grub
Для архитектуры armh (ARMv7): для передачи ядру параметра altha=1
в файле /boot/extlinux/extlinux.conf в строке
append root=LABEL=ROOT... добавить 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
518
ЛКНВ.11100-01 90 01
Результат выполнения команды:
- 1 – режим включен;
- 0 – режим выключен.
12.2.2. Блокировка интерпретаторов (запрет запуска скриптов)
При включении блокировки интерпретаторов блокируется
несанкционированное использование интерпретатора для выполнения кода
напрямую из командной строки.
Блокировка интерпретаторов в консоли
Для включения режима блокировки интерпретаторов следует установить
значение переменной 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
519
ЛКНВ.11100-01 90 01
12.2.3. Отключение возможности удаления открытых файлов
Отключение возможности удаления открытых файлов в консоли
Для отключения возможности удаления открытых файлов следует установить
значение переменной kernel.altha.olock.enabled равным 1:
# sysctl -w kernel.altha.olock.enabled=1
Переменная kernel.altha.olock.dirs должна содержать разделенный
двоеточиями список каталогов, например: /var/lib/something:/tmp/something.
Для изменения значения переменной 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
520
ЛКНВ.11100-01 90 01
13. КОНТРОЛЬНЫЕ ХАРАКТЕРИСТИКИ РАЗВЕРНУТОЙ ОС АЛЬТ 8 СП
После установки необходимо проверить корректность развертывания
ОС Альт 8 СП путем подсчета и сличения контрольных характеристик
установленных файлов. Подробнее см. в документе «Руководство по комплексу
средств защиты. ЛКНВ.11100-01 99 01».
В качестве контрольной характеристики файла выступает контрольная сумма.
Подробнее об интегральных контрольных суммах ПИ, расположении
пофайловых отчетов подсчета, алгоритме подсчета контрольных сумм приведено в
документе «Формуляр. ЛКНВ.11100-01 30 01».
В случае изменения контрольных сумм после применения критических
обновлений ОС Альт 8 СП перечень измененных файлов и новые контрольные
суммы необходимо внести в раздел «Особые отметки» документа «Формуляр.
ЛКНВ.11100-01 30 01».
521
ЛКНВ.11100-01 90 01
14. ОСНОВЫ АДМИНИСТРИРОВАНИЯ LINUX
Общие принципы работы ОС
14.1.1. Процессы и файлы
ОС Альт 8 СП является многопользовательской интегрированной системой.
Это значит, что она разработана в расчете на одновременную работу нескольких
пользователей.
Пользователь может либо сам работать в системе, выполняя некоторую
последовательность команд, либо от его имени могут выполняться прикладные
процессы.
Пользователь взаимодействует с системой через командный интерпретатор.
Командный интерпретатор представляет собой прикладную программу, которая
принимает от пользователя команды или набор команд и транслирует их в системные
вызовы к ядру системы. Интерпретатор позволяет пользователю просматривать
файлы, передвигаться по дереву файловой системы, запускать прикладные процессы.
Все командные интерпретаторы UNIX имеют развитый командный язык и позволяют
писать достаточно сложные программы, упрощающие процесс администрирования
системы и работы с ней.
Процессы функционирования ОС
Все программы, которые выполняются в текущий момент времени, называются
процессами. Процессы можно разделить на два основных класса: системные
процессы и пользовательские процессы.
Системные процессы – программы, решающие внутренние задачи ОС,
например, организацию виртуальной памяти на диске или предоставляющие
пользователям те или иные сервисы (процессы-службы).
Пользовательские процессы – процессы, запускаемые пользователем из
командного интерпретатора для решения задач пользователя или управления
системными процессами. Linux изначально разрабатывался как многозадачная
522
ЛКНВ.11100-01 90 01
система. Он использует технологии, опробованные и отработанные другими
реализациями 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 – каталоги, где
расположены командные файлы, выполняемые при запуске системы или при
смене ее режима работы;
523
ЛКНВ.11100-01 90 01
- /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 – временные файлы;
524
ЛКНВ.11100-01 90 01
- /usr – пользовательские двоичные файлы и данные, используемые только
для чтения (программы и библиотеки);
- /var – файлы для хранения изменяющихся данных (рабочие файлы
программ, очереди, журналы).
Каталог /usr:
- /usr/bin – дополнительные программы для всех учетных записей;
- /usr/sbin – команды, используемые при администрировании системы и не
предназначенные для размещения в файловой системе root;
- /usr/local – место, где рекомендуется размещать файлы, установленные
без использования пакетных менеджеров, внутренняя организация каталогов
практически такая же, как и корневого каталога;
- /usr/man – каталог, где хранятся файлы справочного руководства man;
- /usr/share – каталог для размещения общедоступных файлов большей
части приложений.
Каталог /var:
- /var/log –  каталог для регистрации сообщений, системный журнал;
- /var/spool – каталог для хранения файлов, находящихся в очереди на
обработку для того или иного процесса (очереди печати, непрочитанные или
не отправленные письма, задачи cron т.д.).
Организация файловой структуры
Система домашних каталогов пользователей помогает организовывать
безопасную работу пользователей в многопользовательской системе. Вне своего
домашнего каталога пользователь обладает минимальными правами (обычно чтение
и выполнение файлов) и не может нанести ущерб системе, например, удалив или
изменив файл.
Кроме файлов, созданных пользователем, в его домашнем каталоге обычно
содержатся персональные конфигурационные файлы некоторых программ.
525
ЛКНВ.11100-01 90 01
Маршрут (путь) – это последовательность имен каталогов, представляющая
собой путь в файловой системе к данному файлу, где каждое следующее имя
отделяется от предыдущего наклонной чертой (слешем). Если название маршрута
начинается со слеша, то путь в искомый файл начинается от корневого каталога всего
дерева системы. В обратном случае, если название маршрута начинается
непосредственно с имени файла, то путь к искомому файлу должен начаться от
текущего каталога (рабочего каталога).
Имя файла может содержать любые символы за исключением косой черты (/).
Однако следует избегать применения в именах файлов большинства знаков
препинания и непечатаемых символов. При выборе имен файлов рекомендуется
ограничиться следующими символами:
- строчные и ПРОПИСНЫЕ буквы. Следует обратить внимание на то, что
регистр всегда имеет значение;
- символ подчеркивания (_);
- точка (.).
Для удобства работы точку можно использовать для отделения имени файла от
расширения файла. Данная возможность может быть необходима пользователям или
некоторым программам, но не имеет значение для shell.
Имена дисков и разделов
Все физические устройства компьютера отображаются в каталог /dev
файловой системы дистрибутива. Диски том числе IDE/SATA/SCSI/SAS жесткие
диски, USB-диски) имеют имена:
- /dev/sda – первый диск;
- /dev/sdb – второй диск;
- и т.д.
Диски обозначаются /dev/sdX, где X– a, b, c, d, e, в зависимости от
порядкового номера диска на шине.
Раздел диска обозначается числом после его имени. Например, /dev/sdb4 –
 четвертый раздел второго диска.
526
ЛКНВ.11100-01 90 01
Разделы, необходимые для работы ОС
Для работы ОС на жестком диске (дисках) должны быть созданы, по крайней
мере, два раздела: корневой (то есть тот, который будет содержать каталог /) и раздел
подкачки (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> – перейти на начало строки;
527
ЛКНВ.11100-01 90 01
- <Ctrl>+<U> – удалить текущую строку;
- <Ctrl>+<C> – остановить текущую задачу.
Для ввода нескольких команд одной строкой можно использовать разделитель
«;». По истории команд можно перемещаться с помощью клавиш («вверх») и
(«вниз»).
Чтобы найти конкретную команду в списке набранных, не пролистывая всю
историю, можно нажать <Ctrl>+<R> и начать вводить символы ранее введенной
команды.
Для просмотра истории команд можно воспользоваться командой history.
Команды, присутствующие в истории, отображаются в списке пронумерованными.
Чтобы запустить конкретную команду необходимо набрать:
!номер команды
Если ввести:
!!
запустится последняя из набранных команд.
В Bash имеется возможность самостоятельного завершения имен команд из
общего списка команд, что облегчает работу при вводе команд, в случае, если имена
программ и команд слишком длинны. При нажатии клавиши <Tab> Bash завершает
имя команды, программы или каталога, если не существует нескольких
альтернативных вариантов. Например, чтобы использовать программу декомпрессии
gunzip, можно набрать следующую команду:
gu
Затем нажать клавишу <Tab>. Так как в данном случае существует несколько
возможных вариантов завершения команды, то необходимо повторно нажать
клавишу <Tab>, чтобы получить список имен, начинающихся с gu.
В предложенном примере можно получить следующий список:
$ gu
guile gunzip gupnp-binding-tool
Если набрать: n (gunzip – это единственное имя, третьей буквой которого
является «n»), а затем нажать клавишу <Tab>, то оболочка самостоятельно дополнит
имя. Чтобы запустить команду нужно нажать <Enter>.
528
ЛКНВ.11100-01 90 01
Программы, вызываемые из командной строки, 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 немедленно
возвращает на экран. При вводе информации со стандартного ввода конец текста
529
ЛКНВ.11100-01 90 01
сигнализируется вводом специальной комбинации клавиш, как правило, <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), отсортированных
в обратном алфавитном порядке.
530
ЛКНВ.11100-01 90 01
Недеструктивное перенаправление вывода
Эффект от использования символа > для перенаправления вывода файла
является деструктивным; т.е., команда ls > file-list уничтожит содержимое файла
file-list, если этот файл ранее существовал, и создаст на его месте новый файл.
Если вместо этого перенаправление будет сделано с помощью символов >>, то вывод
будет приписан в конец указанного файла, при этом исходное содержимое файла не
будет уничтожено.
П р и м е ч а н и е . Перенаправление ввода и вывода и стыкование команд
осуществляется командными оболочками, которые поддерживают использование
символов >, >> и |. Сами команды не способны воспринимать и интерпретировать эти
символы.
Режим суперпользователя
14.2.1. Пользователи ОС
Linux – система многопользовательская, а потому пользователь – ключевое
понятие для организации всей системы доступа в Linux. Файлы всех пользователей в
Linux хранятся раздельно, у каждого пользователя есть собственный домашний
каталог, в котором он может хранить свои данные. Доступ других пользователей к
домашнему каталогу пользователя может быть ограничен.
Суперпользователь в Linux – это выделенный пользователь системы, на
которого не распространяются ограничения прав доступа. Именно суперпользователь
имеет возможность произвольно изменять владельца и группу файла. Ему открыт
доступ на чтение и запись к любому файлу или каталогу системы.
Среди учетных записей Linux всегда есть учетная запись суперпользователя
root. Поэтому вместо «суперпользователь» часто говорят «root». Множество
системных файлов принадлежат root, множество файлов только ему доступны для
чтения или записи. Пароль этой учетной записи – одна из самых больших
драгоценностей системы. Именно с ее помощью системные администраторы
выполняют самую ответственную работу.
531
ЛКНВ.11100-01 90 01
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
532
ЛКНВ.11100-01 90 01
Запустив 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 01».
533
ЛКНВ.11100-01 90 01
Система инициализации systemd и sysvinit
14.4.1. Запуск операционной системы
Запуск системы
Алгоритм запуска компьютера приблизительно такой:
1) BIOS (БСВВ) компьютера;
2) загрузчик системы (например, LILO, GRUB или другой). В загрузчике
можно задать параметры запуска системы (см. п. 6.1);
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.
534
ЛКНВ.11100-01 90 01
Т а б л и ц а 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
Выключает службу
во время следующей
перезагрузки, или
любой другой
триггер.
535
ЛКНВ.11100-01 90 01
Окончание таблицы 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.
536
ЛКНВ.11100-01 90 01
Окончание таблицы 15
Команда
Описание
journalctl _PID=1
Просмотр сообщения определенного процесса,
покажет сообщения первого процесса (init).
journalctl -u netcfg
Все сообщения конкретного приложения или
службы.
journalctl _UID=33
Все сообщения процессов, запущенных от
имени конкретного пользователя.
Для ознакомления с прочими возможностями, читайте руководство по
journalctl. Для этого используйте команду man journalctl.
537
ЛКНВ.11100-01 90 01
15. СООБЩЕНИЯ АДМИНИСТРАТОРУ
При возникновении проблем в процессе функционирования ОС Альт 8 СП
появляются диагностические сообщения трех типов: информационные,
предупреждающие и сообщения об ошибках.
Администратор должен проанализировать диагностические сообщения и
принять меры по устранению появившихся проблем.
538
ЛКНВ.11100-01 90 01
ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
БД
база данных;
БСВВ
базовая система ввода-вывода;
ЕПП
единое пользовательское пространство;
КСЗ
комплекс средств защиты;
НЖМД
накопитель на жестких магнитных дисках;
ОС
операционная система;
ПИ
программное изделие;
ПО
программное обеспечение;
ПЭВМ
персональная электронная вычислительная машина;
СВТ
средство вычислительной техники;
СУБД
система управления базами данных;
УЦ
удостоверяющий центр;
ФС
файловая система;
ЦУС
центр управления системой;
AD
Active Directory;
DC
Domain Controller;
PDC
Primary Domain Controller.
539
ЛКНВ.11100-01 90 01
Лист регистрации изменений
Номера листов (страниц)
Всего
листов
(страниц)
в докум.
докумен-
та
Входящий
№ сопро-
водитель-
ного докум.
и дата
Подп.
Да-
та
Изм.
изменен-
ных
заменен-
ных
новых
аннули-
рован-
ных