Astra Linux.Справка.ALD read only — различия между версиями
Админ (обсуждение | вклад) (Новая страница: « = Общая информация = Режим работы <big>ОС Astra Linux SE (ОС)</big>, о котором идет речь, предполагает…») |
(нет различий)
|
Версия 13:48, 7 февраля 2016
Общая информация
Режим работы ОС Astra Linux SE (ОС), о котором идет речь, предполагает размещение корневой файловой системы на карте памяти microSD, установленной в АПМДЗ "Максим"(АПМДЗ). Т.к. АПМДЗ защищает карту памяти от записи, корневая файловая система должна монтироваться в режиме read only. Для корректной работы ОС некоторые области файловой системы должны быть доступны для записи. Такие области монтируются в оперативную память ПЭВМ, и очищаются при выключении/перезагрузке компьютера. Чтобы обеспечить сохранение пользовательской информации между сеансами, ОС работает в качестве клиента ALD. Таким образом, пользовательская информация, под которой подразумеваются документы, мультимедия, настройки прикладных программ (почтовый клиент и т.п.) хранится централизованно на сервере, а пользователи получают к ней доступ посредством сетевой файловой системы - CIFS.
Ниже будет приведен пример рабочей конфигурации. В данном примере при установке ОС не выбирались сетевые сервисы и СУБД, т.к. предполагалось использование машины исключительно как клиента домена ALD. В другом случае может понадобиться дополнительная настройка. Например, если машина будет ипользоваться как сервер печати, помимо ниже описанных настроек должен быть запущень сервис CUPS, а также директории /var/spool/cups и /var/cache/cups должны быть доступны для записи.
1.2
1. Установка ОС в карту памяти АПМДЗ.
2. Настройка ОС для работы в качестве клиента ALD.
3. Настройка ОС для работы в режиме read only.
3.1. Настройка уровней запуска.
3.2. Редактирование fstab.
3.3. Создание архива дерева каталогов /var/private. Редактирование rc.local.
3.4. Создание архива содержимого /etc. Модификация образа initramfs.
4. Ограничения.
4.1 Внесение изменений.
4.2. Доступ пользователей root.
1. Установка ОС в карту памяти АПМДЗ производится согласно пункту 8.5 руководства администратора АПМДЗ.
2. Чтобы настроить ОС для работы в качестве клиента ALD нужно загрузиться в режиме чтения-записи. Для этого нужно аутентифицироваться как администратор АПМДЗ и из меню администратора разрешить запись в энергонезависимую память (ЭНП) устройства . Подробнее см. п. 7.6.7 руководства администратора АПМДЗ.
Действия по настройке ОС требуют привилегий суперпользователя root. Чтобы функционировать в качестве клиента ALD, ОС необходимы пакеты ald-client и ald-client-parsec. Проверить их наличие в системе можно командой:
dpkg -l | grep ald-client
Строка начинающаяся с "ii" и именем пакета говорит о том, что пакет установлен. Например:
ii ald-client 1.4.12 Astra Linux Directory client
Если пакеты не установлены, установите их командой:
aptitude install ald-client-parsec
Для работы ALD необходимо корректно настроить разрешение имен в сети. Имя машины должно в первую очередь разрешаться полным доменным именем. Т.е. файл /etc/hosts должен выглядеть примерно так:
127.0.0.1 localhost
192.168.1.1 myhost.mydomain.ru
Утилита hostname должна возвращать короткое доменное имя машины. Применительно к примеру выше это - myhost. Чтобы изменить имя машины нужно отредактировать файл /etc/hostname.
Cистемное время настраиваемой клиентской машины не должно отличаться от времени на сервере ALD более чем на 5 минут. Посмотреть или изменить системное время можно с помощью команды:
date
Подробнее см. man date.
Если в сети настроен сервис NTP, имеет смысл настроить синхронизацию времени. Это можно сделать создав файл /etc/cron.d/ntpdate c содержимым:
*/10 * * * * root /usr/sbin/ntpdate <ntp-сервер>
где вместо <ntp-сервер> нужно указать доменное имя или ip-адрес машины, на которой настроен сервер NTP.
После выплнения описанных выше приготовлений можно ввести машину в домен. Для этого отредактируйте следующие строки в файле /etc/ald/ald.conf:
DOMAIN=<имя домена с точкой>
где вместо <имя домена с точкой> нужно указать домен. Для примера выше - .mydomain.ru
SERVER=<имя сервера>
где <имя сервера> - полное доменное имя ALD-сервера. Например: myserver.mydomain.ru
CLIENT ON=1
Включение клиента ALD.
Чтобы применить данные настройки выполните команду:
ald-client commit-config
Подробнее о настройке ALD см. man ald, man ald-client, а также п.6 руководства администратора ОС.
3. Действия по настройке ОС для работы в режиме read only требуют привелегий суперпользователя root.
3.1. Т.к. корневая файловая система ОС будет недоступна для записи, это может привести к некорректной работе некоторых сервисов. Во избежание ошибок нужно настроить ОС таким образом, чтобы эти сервисы не стартовали. Посмотреть какие сервисы будут запускаться при каждой загрузке можно командой
ls -l /etc/rc2.d
Пример рабочей конфигурации:
K50cups
K60dhcp3-server
K80exim4
K80vsftpd
README
S01ald-nscd-cleaner
S05vbesave
S10rsyslog
S12acpid
S20gpm
S20nfs-common
S20nscd
S20nslcd
S20ulogd
S21dbus
S22avahi-daemon
S24hal
S29ald-mount-helper
S89atd
S89cron
S98usplash
S99acpi-support
S99console-setup
S99fly-dm
S99rc.local
S99rmnologin
S99stop-bootlogd
Имена сервисов начинающиеся с S будут стартовать, а те что начинаются с K - нет. Редактировать уровни запуска можно с помощью утилиты update-rc.d. В примере выше SMTP-сервер exim4 выключен из автозапуска. Это можно сделать, выполнив команды:
update-rc.d -f exim4 remove
update-rc.d exim4 80 stop 6 5 4 3 2 1 0 .
Аналогично для cups, dhcp3-server и vsftpd. Подробнее см. man update-rc.d
3.2. Основная настройка ОС для работы в режиме read only осуществляется редактированием конфигурационного файла /etc/fstab. Здесь указывается, что корневая файловая система должна быть доступна только для чтения, какие области должны монтироваться в оперативную память ПЭВМ, а также выключается проверка файловой системы на наличие ошибок.
Каждая запись в /etc/fstab имеет формат:
файловая_система точка_монтирования тип_файловой_системы опции_файловой_системы необходимость_проверки очередность_проверки
Запись для корневой файловой системы должна выглядеть примерно так:
/dev/mksm_sd1 / ext2 ro 0 0
где /dev/mksm_sd1 обозначает первый раздел на карте памяти АПМДЗ,
/ - точку монтирования корневой файловой системы,
ext2 - тип корневой файловой системы (ext2 выбрана не случайно, см. п. 8.5. руководства администратора АПМДЗ),
ro - файловая система будет доступна только для чтения,
нули в последних двух полях выключают проверку файловой системы на наличие ошибок утилитой fsck.
Такая проверка невозможна, т.к. файловая система недоступна для записи.
Записи для областей, которые должны монтироваться в оперативную память, должны выглядеть примерно так:
tmpfs /tmp tmpfs defaults 0 0
Для записи обязательно должны быть доступны /tmp, /var/tmp, /var/lock, /var/run, /var/log, /var/lock, /var/private, /var/cache/nscd, /var/cache/samba, /var/spool/samba, /ald_home.
Рабочий вариант файла fstab для нашего примера:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/mksm_sd1 / ext2 ro 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
tmpfs /ald_home tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/private tmpfs defaults 0 0
tmpfs /var/cache/nscd tmpfs defaults 0 0
tmpfs /var/cache/samba tmpfs defaults 0 0
tmpfs /var/spool/samba tmpfs defaults 0 0
3.3. Для корректной поддержки мандатного разграничения доступа необходима дополнительная настройка в /var/private. Помимо того, что данная область должна быть доступна для записи (см. п.3.2. данной инструкции), в ней должна существовать определенная структура каталогов. Т.к. /var/private монтируется в оперативную память и очищается при выключении компьютера, эту структуру придется помещать туда динамически при каждой загрузке ОС. Для этого создайте архив с нужными директориями и поместите его в /root, выполнив следующие команды:
mkdir /tmp/tmpdir
cd /tmp/tmpdir
mkdir mac tmp varcache vartmp
tar -cvzf /root/private.tar.gz *
cd
rm -r /tmp/tmpdir
Чтобы содержимое данного архива при загрузке ОС помещалось в /var/private, отредактируйте файл /etc/rc.local добавив в него строчку:
tar -C /var/private -xzf /root/private.tar.gz
до строки
exit 0
3.4. Область /etc также должна быть доступна для записи, но содержимое этого каталога требуется на более ранней стадии загрузки, чем /var/private (см. п.3.3 данной инструкции). Поэтому после всех описанных выше настроек необходимо создать архив содержимого директории /etc, выполнив команды:
cd /etc
tar -cvzf /root/etc.tar.gz *
Чтобы содержимое данного архива динамически помещалось в /etc при загрузке ОС требуется модифицировать образ initramfs. Сделайте резервную копию образа и распакуйте его выполнив следующие команды:
cp /boot/initrd.img-2.6.34-3-generic /boot/initrd.img-2.6.34-3-generic.backup
mkdir /tmp/ramdisk
gunzip -S "" /boot/initrd.img-2.6.34-3-generic -c > /tmp/ramdisk/image
cd /tmp/ramdisk
cpio -id < image
rm image
После указанных действий в директории /tmp/ramdisk окажется содержимое образа initramfs. Отредактируйте файл init, добавив перед строчкой "#Chain to real filesystem" строки:
mount -t tmpfs -o size=$tmpfs_size,mode=0755 /dev/ram0 ${rootmnt}/etc
tar -C ${rootmnt}/etc -xzf ${rootmnt}/root/etc.tar.gz
Запакуйте образ initramfs и поместите в /boot, выполнив команды:
cd /tmp/ramdisk
find . | cpio -o -H newc | gzip -9 > /boot/initrd.img-2.6.34-3-generic
Выполните команду sync. Теперь после перезагрузки ОС будет работать. в режиме read only.
4. При работе с ОС в указанном режиме имеется ряд ограничений.
4.1 Изменять что-либо в /etc обычным образом будет невозможно. Если всеже необходимо внести изменения требуется сделать следующее:
- Разрешить запись в карту памяти. Подробнее см. руководство администратора АПМДЗ.
- В загруженной ОС перемонтировать корневую файловую систему командой:
mount -o rw,remount /
- Внести необходимые изменения и сохранить их в архиве командами:
cd /etc
tar -czvf /root/etc.tar.gz *
4.2. ОС будет работать в режиме ALD, поэтому доступ к ней будут иметь только доменные пользователи и пользователь root. Причем, пользователь root сможет логиниться только в текстовом режиме, т.к. его домашний каталог /root будет недоступен для записи.
1.4
Инструкция по настройке Astra Linux SE (1.4) как клиента ALD в режиме read only.
Инструкция во многих пунктах повторяет аналогичную для версии 1.2. Поэтому далее
по тексту повторяющиеся пункты будут обозначены: --//--
Общая информация.
--//--
Шаги по настройке:
1. Установка ОС в карту памяти АПМДЗ.
2. Настройка ОС для работы в качестве клиента ALD.
3. Настройка ОС для работы в режиме read only.
3.1. Настройка уровней запуска.
3.2. Редактирование fstab.
3.3. Создание архива дерева каталогов /var/private.
3.4. Создание архива содержимого /etc.
3.5. Модификация образа initramfs.
1. --//--
2. Чтобы настроить ОС для работы в качестве клиента ALD нужно загрузиться в режиме
чтения-записи. Для этого нужно аутентифицироваться как администратор АПМДЗ и из меню
администратора разрешить запись в энергонезависимую память (ЭНП) устройства .
Подробнее см. п. 7.6.7 руководства администратора АПМДЗ.
Действия по настройке ОС требуют привилегий администратора и должны выполняться
от пользователя из группы astra-admins.
Установить клиент можно командой:
sudo apt-get install ald-client-common
Для работы ALD необходимо корректно настроить разрешение имен в сети. Имя машины должно
в первую очередь разрешаться полным доменным именем. Т.е. файл /etc/hosts должен выглядеть примерно так:
127.0.0.1 localhost
192.168.1.1 myhost.mydomain.ru myhost
Утилита hostname должна возвращать короткое доменное имя машины. Применительно к примеру
выше это - myhost. Чтобы изменить имя машины нужно отредактировать файл /etc/hostname.
Cистемное время настраиваемой клиентской машины не должно отличаться от времени на сервере
ALD более чем на 5 минут. Посмотреть или изменить (изменение требует прав администратора)
системное время можно с помощью команды:
date
Подробнее см. man date.
Если в сети настроен сервис NTP, имеет смысл настроить синхронизацию времени.
Это можно сделать создав файл /etc/cron.d/ntpdate c содержимым:
- /10 * * * * root /usr/sbin/ntpdate <ntp-сервер>
где вместо <ntp-сервер> нужно указать доменное имя или ip-адрес машины, на которой настроен сервер NTP.
После выплнения описанных выше приготовлений можно ввести машину в домен. Для этого выполните команду:
sudo ald-client join <имя котроллера домена>
где <имя котроллера домена> - полное или короткое доменное имя сервера ALD.
Подробнее о настройке ALD см. man ald, man ald-client, а также п.6 руководства администратора ОС.
3. Действия по настройке ОС в режиме read only требуют привилегий администратора и должны выполнятся
пользователем из группы astra-admins с использованием утилиты sudo
3.1. --//--
3.2. Основная часть настройки ОС для работы в режиме read only осуществляется редактированием
конфигурационного файла /etc/fstab. Здесь указывается, что корневая файловая система должна быть
доступна только для чтения, какие области должны монтироваться в оперативную память ПЭВМ,
а также выключается проверка файловой системы на наличие ошибок.
Каждая запись в /etc/fstab имеет формат:
файловая_система точка_монтирования тип_файловой_системы опции_файловой_системы необходимость_проверки очередность_проверки
Запись для корневой файловой системы должна выглядеть примерно так:
/dev/mksm_sd1 / ext2 ro 0 0
где /dev/mksm_sd1 обозначает первый раздел на карте памяти АПМДЗ,
/ - точку монтирования корневой файловой системы,
ext2 - тип корневой файловой системы (ext2 выбрана не случайно, см. п. 8.5. руководства администратора АПМДЗ),
ro - файловая система будет доступна только для чтения,
нули в последних двух полях выключают проверку файловой системы на наличие ошибок утилитой fsck.
Такая проверка невозможна, т.к. файловая система недоступна для записи.
Записи для областей, которые должны монтироваться в оперативную память, должны выглядеть примерно так:
tmpfs /tmp tmpfs defaults 0 0
Для записи обязательно должны быть доступны:
/tmp
/run
/var/tmp
/var/lock
/var/log
/var/lock
/var/cache/nscd
/var/cache/samba
/var/spool/samba
/ald_home
/var/lib/ald
Так же для записи должны быть доступны /etc и /var/private. Однако настройка этих областей имеет свои
особенности и будет описана отдельно.
Пример файла fstab:
...
/dev/mksm_sd1 / ext2 ro 0 0
tmpfs /ald_home tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /run tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/cache/nscd tmpfs defaults 0 0
tmpfs /var/cache/samba tmpfs defaults 0 0
tmpfs /var/spool/samba tmpfs defaults 0 0
tmpfs /root tmpfs defaults 0 0
tmpfs /var/lib/ald tmpfs defaults 0 0
...
Обратите внимание, что это лишь пример рабочей конфигурации. В каждом конкретном случае может
понадобиться дополнительная настройка. Например, если машина будет функционировать как
станция печати, в tmpfs придется монтировать дополнительно /var/spool/cups и /var/cache/cups.
3.3. Для работы мандатного разграничения доступа необходима дополнительная настройка в /var/private.
Помимо того, что данная область должна быть доступна для записи (см. п.3.2. данной инструкции),
в ней должна существовать определенная структура каталогов.
Т.к. /var/private монтируется в оперативную память и очищается при выключении компьютера,
эту структуру придется помещать туда динамически при каждой загрузке ОС. Для этого создайте
архив с нужными директориями и поместите его в /opt, выполнив следующие команды:
mkdir /tmp/tmpdir
cd /tmp/tmpdir
mkdir mac tmp varcache vartmp
sudo tar -cvzf /opt/private.tar.gz *
cd
rm -r /tmp/tmpdir
3.4. Область /etc также должна быть доступна для записи, но содержимое этого каталога необходимо
во время загрузки. Поэтому необходимо создать архив содержимого директории /etc и также
поместить его в /opt, выполнив команды:
cd /etc
sudo tar -cvzf /opt/etc.tar.gz *
3.5. Чтобы содержимое архивов etc.tar.gz и private.tar.gz при загрузке ОС динамически помещалось в /etc и /var/private
соответственно требуется модифицировать образы initramfs. Для этого нужно отредактировать
файл /usr/share/initramfs-tools/init, добавив перед строчкой "#Chain to real filesystem" строки:
mount -t tmpfs -o size=$tmpfs_size,mode=0755 /dev/ram0 ${rootmnt}/etc
mount -t tmpfs -o size=$tmpfs_size,mode=0755 /dev/ram1 ${rootmnt}/var/private
tar -C ${rootmnt}/etc -xzf ${rootmnt}/opt/etc.tar.gz
tar -C ${rootmnt}/var/private -xzf ${rootmnt}/opt/private.tar.gz
После чего выполнить команду:
sudo update-initramfs -k all -ut