Astra Linux.Справка.ALD read only

Материал из ТХАБ.РФ
Версия от 16:01, 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