Заглавная Обсуждение
Читать Просмотр кода История

1.6. NetworkManager

ALT Linux

⁠Глава 30. Настройка сети

30.1. NetworkManager

30.2. Настройка в ЦУС

30.3. etcnet

30.3.1. Настройка Ethernet

30.3.2. Настройка сетевого моста

30.3.3. Настройка объединения интерфейсов

⁠30.1. NetworkManager

Для управления настройками сети в Альт Сервер может использоваться программа NetworkManager.

NetworkManager позволяет подключаться к различным типам сетей: проводные, беспроводные, мобильные, VPN и DSL, а также сохранять эти подключения для быстрого доступа к сети. Например, если вы подключались к сети в каком-либо интернет-кафе, то можно сохранить настройки этого подключения и в следующее посещение этого кафе подключиться автоматически.

В системном меню есть две кнопки Проводное и Wi-Fi, которые отображают состояние (включено/отключено) соответственно проводного и беспроводного соединения.

Меню NetworkManger при нажатии левой кнопки мыши

Нажатие на кнопку меняет состояние соответствующего соединения.

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

Раздел Wi-Fi

Примечание

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

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

Раздел Проводные подключения

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

Модуль Сеть

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

Информация о проводном сетевом соединении

Примечание

Для соединения Wi-Fi кнопка Кнопка «Параметры сети» будет расположена рядом с активной сетью.

Окно настроек 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. Файлы автоустановки

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/ и доработать, если необходимо.

Для изменения списка пакетов:

  1. Распаковать архив, например, выполнив команду:

    $ tar xf pkg-groups.tar

  2. Перейти в подкаталог lists и добавить или изменить файл группы. Имена пакетов указываются по одному в каждой строке, например, содержимое файла admc:

    admc alterator-gpupdate gpupdate local-policy admx-basealt samba-dc-common admx-firefox admx-chromium gpui

  3. Упаковать архив, например, выполнив команду:

    $ 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

Категория: ALT Linux