1.6. NetworkManager
Глава 30. Настройка сети
30.3.2. Настройка сетевого моста
30.3.3. Настройка объединения интерфейсов
30.1. NetworkManager
Для управления настройками сети в Альт Сервер может использоваться программа NetworkManager.
NetworkManager позволяет подключаться к различным типам сетей: проводные, беспроводные, мобильные, VPN и DSL, а также сохранять эти подключения для быстрого доступа к сети. Например, если вы подключались к сети в каком-либо интернет-кафе, то можно сохранить настройки этого подключения и в следующее посещение этого кафе подключиться автоматически.
В системном меню есть две кнопки Проводное и Wi-Fi, которые отображают состояние (включено/отключено) соответственно проводного и беспроводного соединения.

Нажатие на кнопку меняет состояние соответствующего соединения.
Для подключения к беспроводной сети, необходимо нажать на стрелку рядом с кнопкой Wi-Fi. Будет раскрыт раздел Wi-Fi, в котором можно выбрать нужную Wi-Fi сеть:

Примечание
При подключении к беспроводной сети в первый раз может понадобиться указать некоторые сведения о защите сети (например, указать аутентификационные данные).
При нажатии на стрелку рядом с кнопкой Проводное открывается окно с выбором доступных проводных подключений. Для того чтобы просмотреть информацию о сетевом соединении или изменить его настройки, следует нажать кнопку Настройки подключения:

Будет открыт модуль Сеть приложения Настройки GNOME:

Для просмотра/изменения настроек необходимо нажать кнопку Параметры сети
. В открывшемся окне можно просмотреть настройки сетевого интерфейса:

Примечание
Для соединения Wi-Fi кнопка
будет расположена рядом с активной сетью.
Окно настроек Wi-Fi соединения:

Примечание
NetworkManager под именем System enp0s3 показывает системное Ethernet-соединение, создаваемое Etcnet. Изменить его в диалоге Сетевые соединения невозможно. Это соединение можно изменить в ЦУС, там же можно выбрать, какой именно интерфейс какой подсистемой обслуживается (подробнее о выборе сетевой подсистемы рассказано в разделе Конфигурирование сетевых интерфейсов).
hostnamectl set-hostname srv1-cod.cod.ssa2026.region; exec bash
vim /etc/sysconfig/network
HOSTNAME=srv1-cod.cod.ssa2026.region
mkdir /etc/net/ifaces/ens18
echo TYPE=eth > /etc/net/ifaces/ens18/options
echo BOOTPROTO=static > /etc/net/ifaces/ens18/options
echo "192.168.10.1/24" > /etc/net/ifaces/ens18/ipv4address
echo "default via 192.168.10.254" > /etc/net/ifaces/ens18/ipv4route
mkdir /etc/net/ifaces/ens19
echo TYPE=eth > /etc/net/ifaces/ens19/options
echo BOOTPROTO=static >> /etc/net/ifaces/ens19/options
echo "192.168.20.1/24" > /etc/net/ifaces/ens19/ipv4address
systemctl restart network
echo "nameserver 77.88.8.8" > /etc/resolv.conf
apt-get update && apt-get install -y freeradius freeradius-utils
systemctl enable --now radiusd
systemctl start radiusd
vim /etc/raddb/clients.conf
client ALL {
ipaddr = 0.0.0.0
netmask = 0
secret = P@ssw0rd
}
vim /etc/raddb/users
netuser Cleartext-Password := "P@ssw0rd"
Service-Type = Administrative-User,
Cisco-AVPair = "shell:roles=admin"
systemctl restart radiusd
timedatectl set-timezone Europe/Moscow
vim /etc/chrony.conf
pool 100.100.100.100 iburst
systemctl restart chronyd
apt-get install -y bind bind-utils
vim /etc/bind/options.conf
listen-on { any; };
listen-on-v6 { none; };
forward first:
forwarders { 100.100.100.100; };
allow-query { any; };
allow-query-cache { any; };
allow-recursion { any; };
dnssec-validation no;
vim /etc/bind/rfc1912.local
zone "cod.ssa2026.region" {
type master;
file "cod.ssa2026.region";
allow-transfer { 172.20.10.10; };
};
zone "168.192.in-addr.arpa" {
type master;
file "168.192.in-addr.arpa";
allow-transfer { 172.20.10.10; };
};
zone "office.ssa2026.region" {
type forward;
forward only;
forwarders { 172.20.10.10; };
};
zone "20.172.in-addr.arpa" {
type forward;
forward only;
forwarders { 172.20.10.10; };
};
cp /etc/bind/zone/localhost /etc/bind/zone/cod.ssa2026.region
chown root:named /etc/bind/zone/cod.ssa2026.region
vim /etc/bind/zone/cod.ssa2026.region
$TTL ID
@ IN SOA cod.ssa2026.region. root.cod.ssa2026.region. (
2025110580 ; serial
12H ; refresh
1H ; retry
1W ; expire
1H ; ncache
)
IN NS cod.ssa2026.region.
IN A 192.168.10.1
rtr-cod IN A 172.16.1.1
fw-cod IN A 192.168.10.254
sw1-cod IN A 192.168.30.1
sw2-cod IN A 192.168.30.2
cli-cod IN A 192.168.40.40
srv1-cod IN A 192.168.10.1
srv2-cod IN A 192.168.10.2
sip-cod IN A 192.168.50.50
admin-cod IN A 192.168.30.30
monitoring IN CNAME srv1-cod.cod.ssa2026.region.
cp /etc/bind/zone/localhost /etc/bind/zone/168.192.in-addr.arpa
chown root:named /etc/bind/zone/168.192.in-addr.arpa
vim /etc/bind/zone/168.192.in-addr.arpa
$TTL ID
@ IN SOA cod.ssa2026.region. root.cod.ssa2026.region. (
2025110500 ; serial
12H ; refresh
1H ; retry
1W ; expire
1H ; ncache
)
IN NS cod.ssa2026.region.
254.10 IN PTR fw-cod.cod.ssa2026.region.
1.30 IN PTR sw1-cod.cod.ssa2026.region.
2.30 IN PTR sw2-cod.cod.ssa2026.region.
40.40 IN PTR cli-cod.cod.ssa2026.region.
1.10 IN PTR srv1-cod.cod.ssa2026.region.
2.10 IN PTR srv2-cod.cod.ssa2026.region.
50.50 IN PTR sip-cod.cod.ssa2026.region.
30.30 IN PTR admin-cod.cod.ssa2026.region.
systemctl enable --now bind
systemctl start bind
vim /etc/net/ifaces/ens19/resolv.conf
search cod.ssa2026.region
nameserver 127.0.0.1
reboot
mkdir /var/ca
vim /etc/openssl/openssl.cnf
[ CA_default ]
dir = /var/ca
policy = policy_anything
cd /var/ca
mkdir certs
mkdir crl
mkdir newcerts
mkdir private
touch index.txt
touch serial
touch crlnumber
echo 01 > serial
echo 01 > crlnumber
openssl genrsa -out private/cakey.pem
openssl req -new -key private/cakey.pem -out cacert.csr
OrgName: IRPO
ComName: ssa2026
openssl x509 -req -days 1825 -in cacert.csr -signkey private/cakey.pem -out cacert.pem
---
переходим на cli-cod, admin-cod, cli1-a и cli2-a:
scp root@srv1-cod.cod.ssa2026.region:/var/ca/cacert.pem /etc/pki/ca-trust/source/anchors/ca.crt
update-ca-trust
---
cd /var/ca
openssl genrsa -out newcerts/monitoring.key
openssl req -new -key newcerts/monitoring.key -out newcerts/monitoring.csr
OrgName: IRPO
ComName: srv1-cod.cod.ssa2026.region
vim monitoring.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
subjectAltName=@alt_names
[alt_names]
DNS.1=srv1-cod.cod.ssa2026.region
DNS.2=monitoring.cod.ssa2026.region
IP.1=192.168.10.1
openssl x509 -req -CA cacert.pem -CAkey private/cakey.pem -in newcerts/monitoring.csr -out newcerts/monitoring.crt -days 365 -CAcreateserial -extfile monitoring.ext
#После srv2-cod
apt-get update && apt-get install -y open-iscsi
systemctl enable --now iscsid
iscsiadm -m discovery -t sendtargets -p 192.168.20.2
iscsiadm -m node --login
vim /etc/iscsi/iscsid.conf
#node.startup = manual
node.startup = automatic
vim /var/lib/iscsi/send_targets/<TargetServer>,<Port>/st_config
vim /var/lib/iscsi/send_targets/192.168.20.2,3260/st_config
discovery.sendtargets.use_discoveryd = Yes
reboot
lsblk (должно быть ещё один диск)
pvcreate /dev/sdb
vgcreate VG /dev/sdb
lvcreate -l 100%FREE -n DATA VG
lvdisplay
mkfs.xfs /dev/VG/DATA
mkdir /opt/data
vim /etc/fstab
/dev/VG/DATA /opt/data xfs defaults,_netdev 0 0
mount -av
lsblk
apt-get install -y nfs-server nfs-utils
chmod 777 /opt/data
vim /etc/exports
/opt/data 192.168.30.0/24(rw,no_root_squash)
exportfs -arv
systemctl enable --now nfs-server
#После admin-cod и srv2-cod
apt-get install -y apache2 apache2-mod_{php8.2,ssl}
systemctl enable --now httpd2
apt-get install -y php8.2 php8.2-{mbstring,sockets,gd,xmlreader,pgsql,ldap,openssl}
vim /etc/php/8.2/apache2-mod_php/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1
systemctl restart httpd2
apt-get install -y zabbix-server-pgsql
vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.10.2
DBName=zabbix
DBUser=zabbix_user
DBPassword=P@ssw0rdZabbix
systemctl enable --now zabbix_pgsql
apt-get install zabbix-phpfrontend-{apache2,php8.2} -y
vim /etc/httpd2/conf/sites-available/zabbix.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/webapps/zabbix/ui
ServerName srv1-cod.cod.ssa2026.region
ServerAlias monitoring.cod.ssa2026.region 192.168.10.1
<Directory /var/www/webapps/zabbix/ui/>
Options Indexes FollowSymlinks
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /var/lib/ssl/certs/monitoring.crt
SSLCertificateKeyFile /var/lib/ssl/private/monitoring.key
</VirtualHost>
<VirtualHost *:80>
ServerName srv1-cod.cod.ssa2026.region
ServerAlias monitoring.cod.ssa2026.region 192.168.10.1
Redirect permanent / https://srv1-cod.cod.ssa2026.region/
</VirtualHost>
</IfModule>
cp /var/ca/newcerts/monitoring.crt /var/lib/ssl/certs/
cp /var/ca/newcerts/monitoring.key /var/lib/ssl/private/
ln -s /etc/httpd2/conf/sites-available/zabbix.conf /etc/httpd2/conf/sites-enabled/
a2enmod ssl; a2enmod rewrite; a2enport https
apachectl -t
chown -R apache2:apache2 /var/www/webapps/zabbix
systemctl restart httpd2
Дальше на #admin-cod
Глава 21. Автоматическая установка системы (autoinstall)
21.1.1. Формат файла vm-profile.scm
21.1.2. Формат файла pkg-groups.tar
21.1.3. Формат файла autoinstall.scm
21.1.4. Формат файла install-scripts.tar
21.2. Запуск автоматической установки
ОС Альт Сервер можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети (по протоколам HTTP или FTP) каталог с несколькими файлами.
Примечание
Настроить FTP-сервер можно, например, в ЦУС (подробнее см. FTP-сервер).
21.1. Файлы автоустановки
Файлы автоустановки:
pkg-groups.tar— архив, содержащий дополнительные к базовой системе группы пакетов;autoinstall.scm— сценарий автоматической установки на языке Scheme;vm-profile.scm— различные варианты автоматической разбивки жёсткого диска на языке Scheme;install-scripts.tar— архив, содержащий дополнительные скрипты для preinstall.d и postinstall.d в одноимённых каталогах. Скрипты должны быть исполняемыми. Скрипты из архива заменяют одноимённые скрипты инсталлятора.
Файлы, описывающие процесс установки, необходимо поместить в каталог (например, metadata), доступный по сети по протоколам HTTP или FTP.
21.1.1. Формат файла vm-profile.scm
Файл vm-profile.scm содержит сценарий на языке Scheme, описывающий формат автоматической разбивки жёсткого диска.
Пример файла vm-profile.scm с одним профилем (server) разбивки жёсткого диска:
((server (title . "Setup for server") (action . trivial) (actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain)) ("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods plain)) ("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods plain)))) )
В примере указана разбивка:
подкачка (swap) — 1024 МБ;
корневой раздел (/) — 8 ГБ;
/var — всё остальное, но не меньше 2 ГБ.
Примечание
Все числа в файле vm-profile.scm указываются в виде 512-байтных блоков, поэтому чтобы получить размер в байтах, нужно умножить значения на 512.
Примечание
Добавление записи для /boot/efi не требуется — установщик добавит её сам.
Пример файла vm-profile.scm с тремя профилями разбивки жёсткого диска:
((server (title . "Setup for server") (action . trivial) (actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain)) ("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods plain)) ("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods plain)))) (server_lvm (title . "Setup for server LVM") (action . trivial) (actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods lvm)) ("/" (size 16384000 . 16384000 ) (fsim . "Ext4") (methods lvm)) ("/var" (size 4096000 . #t ) (fsim . "Ext4") (methods lvm)))) (timeshift (title . "Timeshift-compatible setup") (action . trivial) (actiondata ("swap" (size 2048000 . 2048000) (fsim . "SWAPFS") (methods plain)) ("" (size 40632320 . #t) (fsim . "BtrFS") (methods plain) (subvols ("@" . "/") ("@home" . "/home"))))) )
В примере указаны профили:
server — подкачка (swap), корневой раздел и раздел
/var;server_lvm — подкачка (swap), корневой раздел и раздел
/varв томе LVM;timeshift — подкачка (swap) и раздел BtrFS с разбивкой на подразделы @ и @home.
Имя профиля указывается в файле autoinstall.scm:
("/evms/profiles/server_lvm" action apply commit #f clearall #t exclude ())
21.1.2. Формат файла pkg-groups.tar
Файл pkg-groups.tar представляет собой tar-архив с двумя подкаталогами:
groups— содержит описание групп программного обеспечения в файлах*.directory;lists— содержит файлы со списками пакетов для каждой группы и скрытый файл.base, содержащий список пакетов «базовой системы» (то есть те пакеты, которые устанавливаются в любом случае).
Файл pkg-groups.tar проще всего взять из установочного ISO-образа из каталога /Metadata/ и доработать, если необходимо.
Для изменения списка пакетов:
Распаковать архив, например, выполнив команду:
$
tar xf pkg-groups.tarПерейти в подкаталог
listsи добавить или изменить файл группы. Имена пакетов указываются по одному в каждой строке, например, содержимое файлаadmc:admc alterator-gpupdate gpupdate local-policy admx-basealt samba-dc-common admx-firefox admx-chromium gpui
Упаковать архив, например, выполнив команду:
$
tar cf pkg-groups.tar groups lists
Имя файла используемой группы затем указывается через пробел в autoinstall.scm:
(("pkg-install") action "write" lists "group-1 group-2" auto #t)
где group-1 и group-2 — имена файлов со списками пакетов из подкаталога lists.
Важно
В качестве источника пакетов при установке выступает сам диск, поэтому указание пакетов, которых нет на диске, приведёт к сбою установки.
21.1.3. Формат файла autoinstall.scm
Файл autoinstall.scm представляет собой командный скрипт для программы установки, написанный с использованием языка программирования Scheme. Каждая строка скрипта — команда для модуля программы установки.
Примечание
Ниже приведён пример файла autoinstall.scm для частного случая установки. Если требуются особые настройки, рекомендуется сначала выполнить установку вручную, изучить лог в /root/.install-log/wizard.log, и на его основе составить собственный скрипт autoinstall.scm.
Пример файла autoinstall.scm:
; установка языка операционной системы (ru_RU)
("/sysconfig-base/language" action "write" lang ("ru_RU"))
; установка переключателя раскладки клавиатуры на Ctrl+Shift
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "ctrl_shift_toggle")
; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
("/datetime-installer" action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)
; автоматическая разбивка жёсткого диска в профиле server
("/evms/control" action "write" control open installer #t)
("/evms/control" action "write" control update)
("/evms/profiles/server" action apply commit #f clearall #t exclude ())
("/evms/control" action "write" control commit)
("/evms/control" action "write" control close)
; установка пакетов операционной системы
("pkg-install-init" action "write")
; установка только базовой системы
("/pkg-install" action "write" lists "" auto #t)
("/preinstall" action "write")
; установка загрузчика GRUB в efi
("/grub" action "write" device "efi" passwd #f passwd_1 "*" passwd_2 "*")
; настройка сетевого интерфейса на получение адреса по DHCP
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "enp0s3" ipv "4" configuration "dhcp" default "" search "" dns "" computer_name "newhost" ipv_enabled #t)
("/net-eth" action "write" commit #t)
; установка пароля суперпользователя root '123'
("/root/change_password" passwd_2 "123" passwd_1 "123")
; задание первого пользователя 'user' с паролем '123'
("/users/create_account" new_name "user" real_name "Пользователь" allow_su #t auto #f passwd_1 "123" passwd_2 "123" autologin #f)
;("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")
Примечание
Для переключения раскладки по ALT+Shift используйте:
("/sysconfig-base/kbd" language ("ru_RU") action "write" layout "alt_sh_toggle")
В данном примере будет выполнена установка системы в минимальном профиле (дополнительное ПО в состав устанавливаемых пакетов включаться не будет). Если, например, необходимо установить графический интерфейс GNOME, то в список устанавливаемых пакетов нужно добавить группу centaurus/graph:
("/pkg-install" action "write" lists "centaurus/graph" auto #t)
При установке системы в режиме EFI загрузчик устанавливается в специальный раздел efi. Пример установки пароля на загрузчик в режиме EFI (пароль '123'):
("/grub" action "write" device "efi" passwd #t passwd_1 "123" passwd_2 "123")
Если установка происходит в режиме Legacy, то загрузчик GRUB необходимо установить на первый жёсткий диск, например:
("/grub" action "write" device "/dev/sda" passwd #f passwd_1 "" passwd_2 "")
Пример настройки сетевого интерфейса на статический IP-адрес:
("/net-eth" action "write" reset #t) ("/net-eth" action "write" name "enp0s3" ipv "4" configuration "static" default "192.168.0.1" search "" dns "8.8.8.8" computer_name "newhost" ipv_enabled #t) ("/net-eth" action "add_iface_address" name "enp0s3" addip "192.168.0.25" addmask "24" ipv "4") ("/net-eth" action "write" commit #t)
где:
addip "192.168.0.25"— IP-адрес;default "192.168.0.1"— шлюз по умолчанию;dns "8.8.8.8"— DNS-сервер;computer_name "newhost"— имя хоста.
В конец файла autoinstall.scm можно добавить шаг /postinstall, который позволяет в конце установки или при первом запуске ОС выполнить команду или скрипт. Например:
("/postinstall/firsttime" script "ftp://192.168.0.123/metadata/update.sh")
Шаг /postinstall поддерживает два уровня запуска:
laststate— выполняется перед перезагрузкой после установки ОС;firsttime— выполняется при первом запуске установленной системы.
Для указания выполняемого кода доступны два метода (method):
script— скачивает и выполняет скрипт с удалённого сервера (поддерживаются протоколы http и ftp). Скрипт скачивается во время установки, а запускается в зависимости от уровня запуска;run— выполняет указанную команду или набор команд напрямую (возможно указание перенаправления).Важно
Для каждого уровня (
laststateилиfirsttime) методrunдолжен быть указан не более одного раза. Если их несколько, будет выполнен только последний.
Примеры:
("/postinstall/firsttime" script "http://server/script.sh") ("/postinstall/firsttime" run "curl --silent --insecure http://server/finish")
("/postinstall/laststate" script "http://server/script.sh") ("/postinstall/laststate" run "curl --silent --insecure http://server/gotoreboot")
Примечание
На уровне laststate система ещё не запущена, и корневая файловая система смонтирована в каталоге, указанном через переменную $destdir. Поэтому для работы с файлами установленной системы необходимо:
использовать
$destdirв путях;выполнять команды через утилиту
run_chroot.
Пример скрипта:
#!/bin/sh
a= . install2-init-functions
run_chroot sh -c "date > /root/STAMP_1" date > $destdir/root/STAMP_2
21.1.4. Формат файла install-scripts.tar
Файл install-scripts.tar представляет собой tar-архив, содержащий дополнительные скрипты:
preinstall.d— скрипты, выполняемые после установки базовой системы. Как правило, это скрипты для дополнительной настройки базовой системы (перед установкой дополнительного набора ПО) и для переноса настроек из среды инсталлятора. Добавлять сюда свои собственные скрипты стоит только тогда, когда вы чётко представляете свои цели;postinstall.d— скрипты, выполняемые после завершения всей установки, перед перезагрузкой. Как правило, это скрипты, удаляющие служебные пакеты инсталлятора из базовой системы. Подходят для финальной настройки, очистки временных файлов и т.д.
Важно
Данные скрипты выполняются в среде установщика, а не в среде установленной системы. Поэтому для доступа к файлам целевой системы необходимо использовать $destdir или run_chroot (см. пример выше).
Скрипты preinstall.d необходимо поместить в каталог preinstall.d, скрипты postinstall.d — в каталог postinstall.d. Упаковать архив можно, выполнив команду:
$ tar cf install-scripts.tar preinstall.d postinstall.d