NetworkManager: различия между версиями
(bonding/teaming) |
|||
(не показано 13 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
В текущих настольных дистрибутивах ОС «Альт» в качестве штатного средства управления сетевыми интерфейсами по умолчанию применяется {{pkg|NetworkManager}}; при этом обеспечено его взаимодействие с [[etcnet]], а средствами [[Alterator-net-eth|{{pkg|alterator-net-eth}}]] при необходимости возможно выбрать, какой именно интерфейс какой подсистемой обслуживается. | |||
В текущих настольных дистрибутивах ОС | |||
Для NetworkManager доступно несколько интерфейсов: | |||
* [[#plasma5-nm|графический интерфейс]]: апплет и редактор Plasma для управления сетевыми подключениями в KDE (пакет {{pkg|plasma5-nm}}); | |||
* [[#NetworkManager-applet-gtk|графический интерфейс]]: апплет и редактор GTK для управления сетевыми подключениями в MATE/Cinnamon/Xfce (пакет {{pkg|NetworkManager-applet-gtk}}); | |||
* [[#Утилита nmcli|командная строка]]: {{cmd|nmcli}} — инструмент командной строки, который позволяет пользователям и сценариям взаимодействовать с NetworkManager; | |||
* [[#Утилита nmtui|текстовый интерфейс]] (TUI): простой текстовый GUI на основе curses (пакет {{pkg|NetworkManager-tui}}). | |||
Для настройки сети в MATE/Cinnamon/Xfce используется | == GUI == | ||
=== NetworkManager-applet-gtk === | |||
Для настройки сети в MATE/Cinnamon/Xfce используется NetworkManager. | |||
Апплет NetworkManager отображается в системном трее: | |||
Если он у вас отсутствует, то необходимо установить | [[Файл:NetworkManager1.png|Апплет NetworkManager в системном трее]] | ||
Если он у вас отсутствует, то необходимо установить пакет {{pkg|NetworkManager-applet-gtk}}: | |||
<syntaxhighlight lang="bash"># apt-get install NetworkManager-applet-gtk</syntaxhighlight> | |||
И перелогиниться. | И перелогиниться. | ||
При щелчке левой кнопкой мыши по значку сети отобразится меню выбора сетевого подключения: | |||
[[Файл:NetworkManager2.png|220px|Меню выбора сетевого подключения]] | |||
В данном примере нам доступны три вида сетевых подключений: | |||
* LAN (Ethernet) | |||
* Wi-Fi | |||
* VPN | |||
При щелчке по значку правой кнопкой мыши можно: | |||
* полностью включить/выключить сеть; | |||
* включить/выключить Wi-Fi; | |||
* включить/выключить уведомления; | |||
* получить сведения о соединении (если есть хотя бы одно активное подключение); | |||
* настроить соединения; | |||
* посмотреть сведения о программе. | |||
[[Файл:NetworkManager3.png|200px|Апплет NetworkManager. Контекстное меню]] | |||
==== Ethernet ==== | |||
Чтобы подключиться по Ethernet, нужно в контекстном меню апплета NetworkManager выбрать Ethernet-соединение: | |||
[[Файл:NetworkManager3-1.png|200px|Апплет NetworkManager. Ethernet-соединение в контекстном меню]] | |||
Система подключится к сети и получит настройки сети по DHCP (если для интерфейса выбран метод «Автоматически (DHCP)»). | |||
===== Статический адрес ===== | |||
{{note|NetworkManager под именем «System enp2s0»/«System eth0» показывает системное Ethernet-соединение, создаваемое [[Etcnet]]. Изменить его в диалоге «Сетевые соединения» невозможно. Это соединение можно изменить в [[Alterator-net-eth|ЦУС]], там же можно выбрать, какой именно интерфейс, какой подсистемой обслуживается.}} | |||
Если нужно указать адрес вручную или в вашей сети нет DHCP-сервера, то нужно проделать следующее: | |||
Щёлкнуть правой кнопкой мыши по значку сети и выбрать пункт «Параметры соединений…»: | |||
[[Файл:NetworkManager3-2.png|200px|Апплет NetworkManager. Пункт «Параметры соединений…»]] | |||
Откроется окно «Сетевые соединения». Выбрать проводное соединение и нажать кнопку «Изменить» (или дважды щёлкнуть по соединению): | |||
[[Файл:NetworkManager4.png|400px|Выбор соединения]] | |||
{{note|Открыть окно «Сетевые соединения» также можно, выполнив команду: | |||
<syntaxhighlight lang="bash">$ nm-connection-editor</syntaxhighlight>}} | |||
В открывшемся окне перейти во вкладку «Параметры IPv4»: | |||
[[Файл: | [[Файл:NetworkManager5.png|500px|NetworkManager. Вкладка Параметры IPv4]] | ||
Нажать на выпадающий список «Метод»: | |||
[[Файл:NetworkManager6.png|500px|NetworkManager. Вкладка Параметры IPv4]] | |||
[[Файл: | |||
Выбрать метод «Вручную»: | |||
[[Файл:NetworkManager7.png|500px|NetworkManager. Вкладка Параметры IPv4]] | |||
[[Файл: | |||
Ввести в указанные поля параметры IP и DNS. Чтобы сохранить изменения, нажать кнопку «Сохранить»: | |||
[[Файл:NetworkManager9.png|500px|NetworkManager. Вкладка Параметры IPv4]] | |||
[[Файл: | |||
Ввести пароль администратора для сохранения изменений: | |||
[[Файл:NetworkManager10.png|500px|NetworkManager. Запрос пароля для сохранения настроек]] | |||
[[Файл:NetworkManager10.png| | |||
===Wi-fi=== | ==== Wi-fi ==== | ||
Чтобы подключиться к Wi-fi сети, первым делом, | Чтобы подключиться к Wi-fi сети, первым делом, щёлкнув ПРАВОЙ кнопкой мыши по значку сети в трее, проверьте, стоит ли отметка напротив пункта «Включить Wi-fi»: | ||
[[File:NetworkManager-wifi1.png|200px| | |||
[[File:NetworkManager-wifi1.png|200px|NetworkManager. Пункт «Включить Wi-fi»]] | |||
Щёлкнув по тому же значку уже ЛЕВОЙ кнопкой мыши, выбрать пункт «Сети Wi-fi»→«Доступные сети» и нужную сеть: | |||
[[File:NetworkManager-wifi2.png|400px|NetworkManager. Доступные сети Wi-fi]] | |||
Если сеть зашифрованная, ввести от неё пароль: | |||
[[File:NetworkManager-wifi3.png|400px|NetworkManager. Подключение к сети Wi-fi]] | |||
Вы успешно подключились! | Вы успешно подключились! | ||
[[File:NetworkManager-wifi4.png|400px| | |||
====Статический адрес==== | [[File:NetworkManager-wifi4.png|400px|NetworkManager. Подключение к сети Wi-fi]] | ||
Чтобы настроить статический адрес | |||
[[File:NetworkManager-wifi5.png|200px| | ===== Статический адрес ===== | ||
Чтобы настроить статический адрес для интерфейса Wi-fi, следует щёлкнуть правой кнопкой мыши по значку сети и выбрать пункт «Параметры соединений…»: | |||
[[File:NetworkManager-wifi6.png|400px| | |||
[[File:NetworkManager-wifi5.png|200px|NetworkManager. Параметры соединений…]] | |||
[[File:NetworkManager-wifi7.png|400px| | |||
В разделе «Метод» | Выбрать нужную сеть и нажать кнопку «Изменить» (или дважды щёлкнуть по соединению): | ||
[[File:NetworkManager-wifi8.png|400px| | |||
[[File:NetworkManager-wifi6.png|400px|NetworkManager. Выбор сети]] | |||
[[File:NetworkManager-wifi9.png|400px| | |||
Перейти во вкладку «Параметры IPv4»: | |||
[[File:NetworkManager-wifi7.png|400px|NetworkManager. Вкладка Параметры IPv4]] | |||
В разделе «Метод» выбрать «Вручную»: | |||
[[File:NetworkManager-wifi8.png|400px|NetworkManager. Вкладка Параметры IPv4]] | |||
Настроить IP-адрес и нажать кнопку «Cохранить»: | |||
[[File:NetworkManager-wifi9.png|400px|NetworkManager. Вкладка Параметры IPv4]] | |||
==== Настройка VLAN ==== | |||
Для создания VLAN-интерфейса необходимо: | |||
# Открыть окно «Сетевые соединения», выбрав в меню аплета NM пункт «Параметры соединений…», или выполнив команду: | |||
#: <syntaxhighlight lang="bash">$ nm-connection-editor</syntaxhighlight> | |||
# Нажать кнопку «Добавить». В открывшемся окне «Выберите тип соединения» выбрать «VLAN» и нажать «Создать»: | |||
#:[[Изображение:NetworkManager-VLAN-02.png|400px|Создать VLAN]] | |||
# В открывшемся окне на вкладке «VLAN» выбрать из раскрывающегося списка родительский интерфейс, который будет использоваться для подключения VLAN, ввести идентификатор VLAN (VLAN ID — число от 1 до 4094), ввести имя интерфейса VLAN (обычно это либо имя родительского интерфейса плюс «.» и идентификатор VLAN, либо «vlan» плюс идентификатор VLAN): | |||
#:[[Изображение:NetworkManager-VLAN-03.png|400px|NetworkManager. Создать VLAN]] | |||
# На вкладке «Параметры IPv4» установите IP-адрес для интерфейса (если интерфейс не получает IP-адрес по DHCP). | |||
# Нажать кнопку «Сохранить». | |||
{{Note|Устройства VLAN поднимаются автоматически только в том случае, если родительский интерфейс настроен на автоматическое подключение.}} | |||
==== Настройка VPN-подключения по протоколу OpenVPN ==== | |||
Для создания нового VPN-подключения необходимо: | |||
# Нажать левой кнопкой мыши на значок NetworkManager, в контекстном меню выбрать «Подключения VPN»→«Настроить VPN…»: | |||
#:[[Изображение:NetworkManager-openvpn-01.png|NetworkManager. Настроить VPN]] | |||
# Выбрать тип подключения VPN и нажать кнопку «Создать»: | |||
#:[[Изображение:NetworkManager-openvpn-02.png|NetworkManager. Выбор типа подключения VPN]] | |||
#: Следует выбрать один из пунктов: | |||
#* «OpenVPN» — нужно будет ввести настройки вручную и указать файлы сертификатов; | |||
#* «Импортировать сохранённую конфигурацию VPN…» — позволяет импортировать настройки из файла. | |||
# Если выбран пункт «Импортировать сохранённую конфигурацию VPN…» выбрать файл с настройками (myopenvpn.ovpn). При этом будут импортированы настройки подключения к серверу OpenVPN, а также сертификаты и ключи (если сертификаты и ключи были встроены в файл с настройками см. описание ниже): | |||
#:[[Изображение:NetworkManager-openvpn-03.png|NetworkManager. Настройки подключения VPN]] | |||
#: Если сертификаты и ключи не были встроены в файл с настройками, их необходимо поместить в соответствующий каталог. | |||
# Если выбран пункт «OpenVPN» следует указать IP-адрес OpenVPN сервера, сертификат УЦ, приватный ключ и сертификат пользователя. Нажать кнопку «Дополнительно» и указать параметры подключения. | |||
# Нажать кнопку «Сохранить». | |||
Для подключения к OpenVPN-серверу нажать левой кнопкой мыши на значок NetworkManager, в контекстном меню выбрать «Подключения VPN»→Созданное VPN подключение: | |||
[[Изображение:NetworkManager-openvpn-04.png|NetworkManager. Подключение к OpenVPN-серверу]] | |||
При успешном подключении напротив имени VPN соединения появится отметка: | |||
[[Изображение:NetworkManager-openvpn-05.png|NetworkManager. Успешное подключение к OpenVPN-серверу]] | |||
При использовании файла настроек сертификаты могут быть как в отдельных файлах, так и могут быть встроены в файл .ovpn. В первом случае для распространения конфигурации среди клиентов OpenVPN-сервера нужно передавать пять файлов (настройки и четыре сертификата), а во втором достаточно передать только один файл настроек, в который уже встроены сертификаты. | |||
Пример файла конфигурации без сертификатов: | |||
<syntaxhighlight lang="ini"> | |||
client | |||
remote '99.212.207.112' 443 | |||
cert '/home/user/.cert/nm-openvpn/myopenvpn-cert.pem' | |||
key '/home/user/.cert/nm-openvpn/myopenvpn-key.pem' | |||
ca '/home/user/.cert/nm-openvpn/myopenvpn-ca.pem' | |||
dev tun | |||
proto udp | |||
sndbuf 0 | |||
rcvbuf 0 | |||
resolv-retry infinite | |||
nobind | |||
persist-key | |||
persist-tun | |||
remote-cert-tls server | |||
auth SHA512 | |||
cipher AES-128-CBC | |||
tls-auth '/home/user/.cert/nm-openvpn/myopenvpn-tls-auth.pem' 1 | |||
setenv opt block-outside-dns | |||
verb 3</syntaxhighlight> | |||
Пример файла конфигурации c сертификатами: | |||
<syntaxhighlight lang="ini"> | |||
client | |||
remote '99.212.207.112' 443 | |||
dev tun | |||
proto udp | |||
sndbuf 0 | |||
rcvbuf 0 | |||
resolv-retry infinite | |||
nobind | |||
persist-key | |||
persist-tun | |||
remote-cert-tls server | |||
auth SHA512 | |||
cipher AES-128-CBC | |||
setenv opt block-outside-dns | |||
key-direction 1 | |||
verb 3 | |||
<ca> | |||
… | |||
</ca> | |||
<cert> | |||
… | |||
</cert> | |||
<key> | |||
… | |||
</key> | |||
<tls-auth> | |||
… | |||
</tls-auth> | |||
</syntaxhighlight> | |||
Вместо многоточий […] должны быть вставлены соответствующие сертификаты/ключи полностью, вместе с комментариями. | |||
При импорте такого файла конфигурации сертификаты будут импортированы в каталог {{path|$HOME/.cert/nm-openvpn/}}. | |||
==== Настройка подключения к WireGuard ==== | |||
Настроить клиент WireGuard можно, создав профиль подключения в NetworkManager. | |||
Необходима следующая информация: | |||
* закрытый ключ клиента; | |||
* статические IP-адреса туннеля с маской подсети клиента (например, 172.30.0.3/32,2a01:4f9:c012:d74d:ac1e::3/128). | |||
* открытый ключ сервера; | |||
* статический IP-адреса туннеля с маской подсети сервера (например, 172.30.0.1/24,2a01:4f9:c012:d74d:ac1e::1/120). | |||
* публичный IP-адрес и порт сервера (например, 99.109.239.22:51820). | |||
Для создания WireGuard-интерфейса необходимо: | |||
# Открыть окно «Сетевые соединения», выбрав в меню аплета NM пункт «Параметры соединений…», или выполнив команду: | |||
#: <syntaxhighlight lang="bash">$ nm-connection-editor</syntaxhighlight> | |||
# Нажать кнопку «Добавить». В открывшемся окне «Выберите тип соединения» в выпадающем списке выбрать пункт «WireGuard» и нажать кнопку «Создать»: | |||
#:[[Изображение:NetworkManager-WireGuard-01.png|400px|Создать WireGuard-интерфейс]] | |||
# В открывшемся окне указать имя подключения. | |||
# На вкладке «WireGuard» ввести имя виртуального интерфейса, который NetworkManager назначит соединению, ввести закрытый ключ клиента: | |||
#:[[Изображение:NetworkManager-WireGuard-02.png|400px|NetworkManager. Настройки WireGuard]] | |||
# Нажать кнопку «Добавить», чтобы добавить пиры (Peers). | |||
# В открывшемся окне ввести открытый ключ сервера, в поле «Разрешенные адреса IP» указать маршрут, разрешенный для клиента (например, 0.0.0.0/0;::/0, для маршрутизации всего трафика через туннель). В поле «Конечная точка» указать публичный IP-адрес (или имя хоста) и порт сервера WireGuard: | |||
#:[[Изображение:NetworkManager-WireGuard-03.png|400px|NetworkManager. Настройки Peers]] | |||
#: Дополнительно можно установить интервал поддержания активности в секундах (поле «Поддержка активности подключения»). В этот интервал клиент отправляет на сервер пакет подтверждения активности. | |||
# Нажать кнопку «Применить». | |||
# На вкладке «Параметры IPv4» в списке «Метод» выбрать пункт «Вручную», нажать кнопку «Добавить» и ввести IPv4-адрес туннеля и маску подсети: | |||
#:[[Изображение:NetworkManager-WireGuard-04.png|400px|NetworkManager. Параметры IPv4»]] | |||
#: Если нужно маршрутизировать весь трафик через туннель, то следует установить IPv4-адрес туннеля сервера в поле «Шлюз» (при этом в поле «Разрешенные адреса IP» на этом клиенте должно быть указано 0.0.0.0/0). В противном случае следует оставить поле «Шлюз» пустым. | |||
# Если необходимо, на вкладке «Параметры IPv6» в списке «Метод» выбрать «Вручную», нажать кнопку «Добавить» и ввести IPv6-адрес туннеля и маску подсети: | |||
#:[[Изображение:NetworkManager-WireGuard-05.png|400px|NetworkManager. Параметры IPv4»]] | |||
#: Если нужно маршрутизировать весь трафик через туннель, то следует установить IPv6-адрес туннеля сервера в поле «Шлюз» (при этом в поле «Разрешенные адреса IP» на этом клиенте должно быть указано ::/0). В противном случае следует оставить поле «Шлюз» пустым. | |||
# Нажать кнопку «Сохранить», чтобы сохранить профиль подключения. | |||
{{Note|Ручного ввода настроек можно избежать, если на шаге 2, в окне «Выберите тип соединения» в выпадающем списке выбрать «Импортировать сохранённую конфигурацию VPN…», нажать кнопку «Создать» и выбрать файл с настройками конфигурации. | |||
Пример содержимого файла конфигурации: | |||
<syntaxhighlight lang="ini"> | |||
[Interface] | |||
Address = 172.30.0.3/32,2a01:4f9:c012:d74d:ac1e::3/128 | |||
PrivateKey = +HO34NeGexQP0qYX1GexQP0xQP0A9Mwm/wd4Dc+vAE= | |||
DNS = 1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001 | |||
MTU = 1300 | |||
[Peer] | |||
PublicKey = UMQuv3vGuJbUWFK5ie+uv3vGuJvu8Cuv3vGuJLOlYkX1M= | |||
AllowedIPs = 0.0.0.0/0,::/0 | |||
Endpoint = 99.109.239.22:51820 | |||
PersistentKeepalive = 15</syntaxhighlight> | |||
}} | |||
Подключение к WireGuard-серверу: | |||
[[Изображение:NetworkManager-WireGuard-06.png|NetworkManager. Подключение к WireGuard-серверу]] | |||
Проверка подключения: | |||
* доступность сервера: | |||
*:<syntaxhighlight lang="bash">$ ping 172.30.0.1 | |||
PING 172.30.0.1 (172.30.0.1) 56(84) bytes of data. | |||
64 bytes from 172.30.0.1: icmp_seq=1 ttl=64 time=41.0 ms</syntaxhighlight> | |||
* вывести конфигурацию интерфейса wireguard (должен быть установлен пакет {{pkgL|wireguard-tools}}): | |||
*: <syntaxhighlight lang="bash"># wg show wireguard | |||
interface: wireguard | |||
public key: BPhIIfWrdseXz5WOw7eFO8M+PqrZRdylbqPqrZRdZWA= | |||
private key: (hidden) | |||
listening port: 60714 | |||
fwmark: 0xcbdf | |||
peer: UMQuv3vGuJbUWFK5ie+uv3vGuJvu8Cuv3vGuJLOlYkX1M= | |||
endpoint: 99.109.239.22:51820 | |||
allowed ips: 0.0.0.0/0, ::/0 | |||
latest handshake: 54 seconds ago | |||
transfer: 25.32 KiB received, 28.98 KiB sent | |||
persistent keepalive: every 15 seconds | |||
</syntaxhighlight> | |||
{{Note|Чтобы отобразить закрытый ключ следует использовать команду: | |||
<syntaxhighlight lang="bash"># WG_HIDE_KEYS=never wg show wireguard</syntaxhighlight>}} | |||
=== plasma5-nm === | |||
Для настройки сети в KDE используется NetworkManager (виджет «Управление сетью»). | |||
При нажатии левой кнопки мыши на значок «Управление сетью», откроется меню, в котором показана информация о текущих соединениях. Здесь также можно выбрать одну из доступных Wi-Fi сетей и подключиться к ней, или отключить активное Wi-Fi соединение: | |||
[[Изображение:Plasma5-nm_02.png|400px|KDE. Апплет NetworkManager]] | |||
Для настройки соединений, следует нажать кнопку «Настроить сетевые соединения…», вызываемую при нажатии правой кнопки мыши на значке «Управление сетью»: | |||
[[Изображение:Plasma5-nm_01.png|400px|KDE. Апплет NetworkManager]] | |||
В открывшемся окне будет показан, сгруппированный по типам, список соединений: | |||
[[Изображение:Kcm_networkmanagement.png|KDE. Окно «Соединения — Параметры системы»]] | |||
Здесь можно добавлять новые и настраивать существующие соединения. | |||
{{note|Открыть окно «Соединения — Параметры системы» также можно, выполнив команду: | |||
<syntaxhighlight lang="bash">$ systemsettings5 kcm_networkmanagement</syntaxhighlight>}} | |||
== Консоль == | == Консоль == | ||
Строка 182: | Строка 413: | ||
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8</syntaxhighlight> | Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8</syntaxhighlight> | ||
Создать bonding интерфейс с именем bond0: | Создать bonding интерфейс с именем bond0 (режим «Active Backup»): | ||
<syntaxhighlight lang="bash"># nmcli connection add type bond ifname bond0 bond.options "mode=active-backup" | <syntaxhighlight lang="bash"># nmcli connection add type bond ifname bond0 bond.options "mode=active-backup" | ||
Подключение «bond-bond0» (38b5a3a1-5395-4f80-9909-96a11aefec8a) успешно добавлено. | Подключение «bond-bond0» (38b5a3a1-5395-4f80-9909-96a11aefec8a) успешно добавлено.</syntaxhighlight> | ||
$ nmcli connection show | Вывести информацию о подключениях: | ||
<syntaxhighlight lang="bash">$ nmcli connection show | |||
NAME UUID TYPE DEVICE | NAME UUID TYPE DEVICE | ||
bond-bond0 38b5a3a1-5395-4f80-9909-96a11aefec8a bond bond0 | bond-bond0 38b5a3a1-5395-4f80-9909-96a11aefec8a bond bond0 | ||
Строка 235: | Строка 467: | ||
"lo" | "lo" | ||
loopback (unknown), 00:00:00:00:00:00, программное обеспечение, MTU 65536</syntaxhighlight> | loopback (unknown), 00:00:00:00:00:00, программное обеспечение, MTU 65536</syntaxhighlight> | ||
Информацию о получившемся агрегированном интерфейсе можно посмотреть в {{path|/proc/net/bonding/bond0}}: | |||
<syntaxhighlight lang="ini">Ethernet Channel Bonding Driver: v6.1.49-un-def-alt1 | |||
Bonding Mode: fault-tolerance (active-backup) | |||
Primary Slave: None | |||
Currently Active Slave: enp0s8 | |||
MII Status: up | |||
MII Polling Interval (ms): 100 | |||
Up Delay (ms): 0 | |||
Down Delay (ms): 0 | |||
Peer Notification Delay (ms): 0 | |||
Slave Interface: enp0s8 | |||
MII Status: up | |||
Speed: 1000 Mbps | |||
Duplex: full | |||
Link Failure Count: 0 | |||
Permanent HW addr: 08:00:27:0c:f5:9b | |||
Slave queue ID: 0 | |||
Slave Interface: enp0s3 | |||
MII Status: up | |||
Speed: 1000 Mbps | |||
Duplex: full | |||
Link Failure Count: 0 | |||
Permanent HW addr: 08:00:27:8b:4f:61 | |||
Slave queue ID: 0</syntaxhighlight> | |||
==== Группирование сетевых интерфейсов (teaming) ==== | ==== Группирование сетевых интерфейсов (teaming) ==== | ||
Строка 301: | Строка 561: | ||
"lo" | "lo" | ||
loopback (unknown), 00:00:00:00:00:00, программное обеспечение, MTU 65536</syntaxhighlight> | loopback (unknown), 00:00:00:00:00:00, программное обеспечение, MTU 65536</syntaxhighlight> | ||
==== Создание VLAN (802.1Q)==== | |||
Вывести существующие сетевые подключения: | |||
<syntaxhighlight lang="bash">$ nmcli connection show | |||
NAME UUID TYPE DEVICE | |||
Native enp0s3 43603ade-65e7-4c56-bbfb-c1385e2b475f ethernet enp0s3 | |||
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8</syntaxhighlight> | |||
Создать VLAN-интерфейс с идентификатором 100 на интерфейсе enp0s3: | |||
<syntaxhighlight lang="bash"># nmcli connection add type vlan con-name enp0s3.100 ifname enp0s3.100 dev enp0s3 id 100 ip4 192.168.10.10/24 gw4 192.168.10.1 | |||
Подключение «enp0s3.100» (acaf0c6b-45d6-4f6e-bc4e-2bcaeb41e4d2) успешно добавлено.</syntaxhighlight> | |||
{{Note|VLAN ID — число от 1 до 4095. Следует обратить внимание, что 4094 является верхней допустимой границей идентификатора VLAN, а 4095 используется технически в процессе отбрасывания трафика по неверным VLAN.}} | |||
Просмотреть сетевые подключения: | |||
<syntaxhighlight lang="bash">$ nmcli connection show | |||
NAME UUID TYPE DEVICE | |||
Native enp0s3 43603ade-65e7-4c56-bbfb-c1385e2b475f ethernet enp0s3 | |||
enp0s3.100 acaf0c6b-45d6-4f6e-bc4e-2bcaeb41e4d2 vlan enp0s3.100 | |||
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8 | |||
$ ip -br a | |||
lo UNKNOWN 127.0.0.1/8 ::1/128 | |||
enp0s3 UP 192.168.0.188/24 fe80::8bf0:386d:78dd:544c/64 | |||
enp0s8 UP | |||
enp0s3.100@enp0s3 UP 192.168.10.10/24 fe80::2a16:4163:8fd1:6609/64</syntaxhighlight> | |||
Проверить соединение можно, настроив на другой машине такой же VLAN и выполнив команду {{cmd|ping}}: | |||
<syntaxhighlight lang="bash">$ ping -I enp0s3.100 192.168.10.10</syntaxhighlight> | |||
По умолчанию соединение VLAN наследует максимальную единицу передачи (MTU) от родительского интерфейса. При желании установите другое значение MTU: | |||
Утилита {{cmd|nmcli}} может использоваться для установки и очистки флагов ioctl, которые изменяют способ функционирования 802.1Q. NetworkManager поддерживает следующие флаги VLAN: | |||
* 0x01 — переупорядочение заголовков выходных пакетов; | |||
* 0x02 — использовать протокол GVRP; | |||
* 0x04 — слабая привязка интерфейса и его мастера (режим «loose binding»). | |||
Состояние VLAN-интерфейса синхронизируется с состоянием родительского интерфейса (интерфейса или устройства, на котором создается VLAN). Если для родительского интерфейса установлено административное состояние «выключено», все связанные VLAN отключаются, а все маршруты удаляются из таблицы маршрутизации. Флаг 0x04 включает режим свободной привязки, в котором от родительского устройства к связанным VLAN передается только рабочее состояние, но состояние устройства VLAN не изменяется. | |||
Установить флаг 0x04 VLAN: | |||
<syntaxhighlight lang="bash">$ nmcli connection mod enp0s3.100 vlan.flags 4</syntaxhighlight> | |||
Результат: | |||
<syntaxhighlight lang="bash">$ nmcli -p connection show enp0s3.100 | grep vlan.flags | |||
vlan.flags: 4 (LOOSE_BINDING)</syntaxhighlight> | |||
Пример настройки Q-in-Q интерфейса, например, enp0s3.100.200 (дважды тегированный трафик: внешняя метка — 100, внутренняя — 200): | |||
<syntaxhighlight lang="bash">$ nmcli connection add type vlan con-name enp0s3.100.200 dev enp0s3.100 id 200 ip4 192.0.2.1/24 gw4 192.0.2.254 | |||
Подключение «vlan100.200» (07d10b3d-1390-4f60-a8a6-4e853143795f) успешно добавлено.</syntaxhighlight> | |||
Проверка конфигурации вложенного интерфейса VLAN: | |||
<syntaxhighlight lang="bash">$ ip -d addr show enp0s3.100.200 | |||
9: enp0s3.100.200@enp0s3.100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 | |||
link/ether 08:00:27:16:7a:dd brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535 | |||
vlan protocol 802.1Q id 200 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 | |||
inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute enp0s3.100.200 | |||
valid_lft forever preferred_lft forever | |||
inet6 fe80::6c0a:6ac:47a8:2286/64 scope link noprefixroute | |||
valid_lft forever preferred_lft forever</syntaxhighlight> | |||
[[Файл:NetworkManager-VLAN-01.png|Проверка конфигурации вложенного интерфейса VLAN]] | |||
==== Настройка VPN-подключения по протоколу OpenVPN ==== | |||
Для подключения клиента к OpenVPN-серверу передайте файл (в примере myopenvpn.ovpn), содержащий настройки подключения к серверу OpenVPN (адрес сервера, порт, другие настройки, а также сертификаты для шифрования соединения и аутентификации), на клиентский ПК. | |||
Импорт настроек OpenVPN с помощью nmcli: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection import type openvpn file myopenvpn.ovpn | |||
Подключение «myopenvpn» (633dae37-4cc3-4944-9a1b-67432b1f4022) успешно добавлено. | |||
</syntaxhighlight> | |||
Список подключений: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection show | |||
NAME UUID TYPE DEVICE | |||
Проводное соединение 1 e9bbfb58-c6d9-3de7-99ac-67da2666bddb ethernet enp0s31f6 | |||
Space3 56e8e42b-4cae-4756-be5b-c4a90b1c5ce6 wifi wlp0s20f3 | |||
lo 792de0d1-23ae-455f-b276-a07f86003e84 loopback lo | |||
myopenvpn 633dae37-4cc3-4944-9a1b-67432b1f4022 vpn -- | |||
</syntaxhighlight> | |||
Выполнить подключение к myopenvpn: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection up myopenvpn | |||
Подключение успешно активировано (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/12) | |||
</syntaxhighlight> | |||
Проверка подключения: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection show | |||
NAME UUID TYPE DEVICE | |||
myopenvpn 633dae37-4cc3-4944-9a1b-67432b1f4022 vpn enp0s31f6 | |||
Space3 56e8e42b-4cae-4756-be5b-c4a90b1c5ce6 wifi wlp0s20f3 | |||
Проводное соединение 1 e9bbfb58-c6d9-3de7-99ac-67da2666bddb ethernet enp0s31f6 | |||
lo d5a4b792-ad42-4fa1-ae79-9a05014c13a7 loopback lo | |||
tun0 1e43a7da-40b9-4a72-b9e3-7dd750c1b8bb tun tun0 | |||
</syntaxhighlight> | |||
==== Настройка подключения к Wireguard ==== | |||
Импорт настроек клиента Wireguard: | |||
<syntaxhighlight lang="bash">$ nmcli connection import type wireguard file wireguard.conf | |||
Подключение «wireguard» (88d86d8d-a5c1-4138-9693-1fa010c11835) успешно добавлено.</syntaxhighlight> | |||
Просмотр списка подключений: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection show | |||
NAME UUID TYPE DEVICE | |||
Native enp0s3 cd7d3120-9d5a-479d-8360-d1bc14572d08 ethernet enp0s3 | |||
wireguard 88d86d8d-a5c1-4138-9693-1fa010c11835 wireguard wireguard | |||
lo 3e72cc4a-08e7-4dde-968b-516a0af0c06e loopback lo | |||
</syntaxhighlight> | |||
Не запускать соединение wireguard автоматически: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection modify wireguard autoconnect no | |||
</syntaxhighlight> | |||
Просмотр параметров подключения: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli connection show wireguard | |||
</syntaxhighlight> | |||
Отключить соединение: | |||
<syntaxhighlight lang="bash"> | |||
$ nmcli con down wireguard | |||
Подключение «wireguard» успешно отключено (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/5) | |||
</syntaxhighlight> | |||
=== Утилита nmtui === | |||
{{cmd|nmtui}} — утилита для настройки сети с простым текстовый пользовательский интерфейс (TUI) на основе curses. | |||
Пакет {{pkg|NetworkManager-tui}} не устанавливается по умолчанию, поэтому его необходимо установить: | |||
<syntaxhighlight lang="bash"># apt-get install NetworkManager-tui</syntaxhighlight> | |||
Запуск утилиты: | |||
<syntaxhighlight lang="bash">$ nmtui</syntaxhighlight> | |||
В результате запуска появится текстовый пользовательский интерфейс: | |||
[[Файл:Nmtui01.png|Начальное меню текстового пользовательского интерфейса NetworkManager]] | |||
Для навигации используются клавиши со стрелками, <Tab> или <Shift>+<Tab>. Для выбора опции следует нажать <Enter>. Пробел переключает состояние флажка. | |||
Для изменения настроек подключения нужно выбрать интерфейс: | |||
[[Файл:Nmtui02.png|Текстовый интерфейс NetworkManager. Выбор сетевого интерфейса]] | |||
Внести изменения и нажать кнопку «ОК»: | |||
[[Файл:Nmtui03.png|Текстовый интерфейс NetworkManager. Изменение настроек подключения]] | |||
Для применения изменений для активного соединения необходимо после внесения изменений деактивировать этот интерфейс (кнопка «Отключить»), а затем снова активировать (кнопка «Отключить»). | |||
Доступны также следующие команды: | |||
<syntaxhighlight lang="bash">$ nmtui edit <имя_соединения></syntaxhighlight> | |||
Если имя соединения не указано, появится меню выбора. Если имя соединения указано и правильно идентифицировано, появится соответствующий экран «Редактировать соединение». | |||
<syntaxhighlight lang="bash">$ nmtui connect <имя_соединения></syntaxhighlight> | |||
Если имя соединения не указано, появится меню выбора. Если имя соединения указано и правильно идентифицировано, соответствующее соединение активируется. | |||
<syntaxhighlight lang="bash">$ nmtui hostname</syntaxhighlight> | |||
Откроется экран изменения имени узла: | |||
[[Файл:Nmtui04.png|Текстовый интерфейс NetworkManager. Экран изменения имени узла]] | |||
{{note|{{cmd|nmtui}} поддерживает не все типы соединений. В частности, данный интерфейс не позволяет редактировать VPN и подключения с использованием 802.1X.}} | |||
== Разрешения NetworkManager == | |||
Разрешениями NetworkManager управляет [[Polkit]]. | |||
По умолчанию всем пользователям в активных локальных сеансах разрешено изменять большинство сетевых настроек без запроса пароля. Для некоторых действий (например, изменения hostname системы) требуется пароль администратора. | |||
{| class="wikitable" | |||
! Правило Polkitd для демона NetworkManager (org.freedesktop.NetworkManager) | |||
! Описание | |||
! style="width: 50%" | Примеры | |||
|-style="vertical-align:top;" | |||
| enable-disable-network | |||
| Разрешение на включение или отключение сетевого взаимодействия системы. Если сетевое взаимодействие отключено, все управляемые интерфейсы отсоединяются и деактивируются. Если сетевое взаимодействие включено, все управляемые интерфейсы доступны для активации. | |||
| Если настроено ограничение «Auth_self», при попытке включения/отключения сети будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-enable-disable-network-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при включении/отключении сети]] | |||
Запрос пароля пользователя при включении/отключении сети в консоли: | |||
[[Файл:NetworkManager-enable-disable-network-auth-self-02.png|150px|frameless|Запрос пароля пользователя при включении/отключении сети в консоли]] | |||
Если настроено ограничение «Auth_admin», при попытке включения/отключения сети будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-enable-disable-network-auth-admin.png|150px|frameless|Запрос пароля администратора при включении/отключении сети]] | |||
Если настроено ограничение «No», пользователю запрещено включать/отключать сеть: | |||
[[Файл:NetworkManager-enable-disable-network-no.png|150px|frameless|Пользователю запрещено включать/отключать сеть]] | |||
|-style="vertical-align:top;" | |||
| enable-disable-statistics | |||
| Разрешение на включение или отключение статистики устройства | |||
| | |||
|-style="vertical-align:top;" | |||
| enable-disable-wifi | |||
| Разрешение на включение или отключение устройств Wi-Fi | |||
| Если настроено ограничение «Auth_self», при попытке включения/отключения сети Wi-Fi будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-enable-disable-wifi-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при включении/отключении сети Wi-Fi]] | |||
Если настроено ограничение «Auth_admin», при попытке включения/отключения сети Wi-Fi будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-enable-disable-wifi-auth-admin.png|150px|frameless|Запрос пароля администратора при включении/отключении сети Wi-Fi]] | |||
Если настроено ограничение «No», пользователю запрещено включать/отключать сеть Wi-Fi: | |||
[[Файл:NetworkManager-enable-disable-wifi-no.png|150px|frameless|Пользователю запрещено включать/отключать сеть Wi-Fi]] | |||
|-style="vertical-align:top;" | |||
| enable-disable-wimax | |||
| Разрешение на включение или отключение мобильных широкополосных устройств WiMAX | |||
| | |||
|-style="vertical-align:top;" | |||
| enable-disable-wwan | |||
| Разрешение на включение или отключение мобильных широкополосных устройств (WWAN-устройств) | |||
| | |||
|-style="vertical-align:top;" | |||
| settings.modify.global-dns | |||
| Разрешение на изменение общих настроек DNS | |||
| | |||
|-style="vertical-align:top;" | |||
| settings.modify.own | |||
| Разрешение на изменение личных сетевых соединений | |||
| Если настроено ограничение «Auth_self», при попытке изменения персональных сетевых настроек (например, при подключении к сети Wi-Fi) будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-settings-modify-own-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при изменении персональных сетевых настроек]] | |||
Если настроено ограничение «Auth_admin», при попытке изменения персональных сетевых настроек будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-settings-modify-own-auth-admin.png|150px|frameless|Запрос пароля администратора при изменении персональных сетевых настроек]] | |||
Запрос пароля администратора при изменении персональных сетевых настроек в консоли: | |||
[[Файл:NetworkManager-settings-modify-own-auth-admin-02.png|150px|frameless|Запрос пароля администратора при изменении персональных сетевых настроек в консоли]] | |||
|-style="vertical-align:top;" | |||
| settings.modify.hostname | |||
| Разрешение на изменение постоянного имени хоста (hostname) системы. | |||
| | |||
Если настроено ограничение «Auth_self», при попытке изменения hostname системы будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-settings-modify-hostname-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при попытке изменения hostname системы]] | |||
|-style="vertical-align:top;" | |||
| settings.modify.system | |||
| Разрешение на создание и модификацию системных сетевых соединений | |||
| Если настроено ограничение «Auth_self», при попытке изменения сетевых настроек для всех пользователей (например, изменении IP-адреса) будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-settings-modify-system-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при изменении сетевых настроек для всех пользователей]] | |||
Если настроено ограничение «Auth_admin», при попытке изменения сетевых настроек для всех пользователей будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-settings-modify-system-auth-admin.png|150px|frameless|Запрос пароля администратора при изменении сетевых настроек для всех пользователей]] | |||
Если настроено ограничение «No», пользователю запрещено изменять сетевые настройки для всех пользователей: | |||
[[Файл:NetworkManager-settings-modify-system-no.png|150px|frameless|Пользователю запрещено изменять сетевые настройки для всех пользователей]] | |||
|-style="vertical-align:top;" | |||
| network-control | |||
| Разрешение на изменение системных настроек для сети | |||
| Если настроено ограничение «Auth_self», при попытке включения/отключения сетевого интерфейса будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-network-control-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при включении/отключении сетевого интерфейса]] | |||
Запрос пароля пользователя при включении/отключении сетевого интерфейса в консоли: | |||
[[Файл:NetworkManager-network-control-auth-self-02.png|150px|frameless|Запрос пароля текущего пользователя при включении/отключении сетевого интерфейса]] | |||
Если настроено ограничение «Auth_admin», при попытке изменения сетевых настроек для всех пользователей будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-network-control-auth-admin.png|150px|frameless|Запрос пароля администратора при включении/отключении сетевого интерфейса]] | |||
Если настроено ограничение «No», пользователю запрещено изменять сетевые настройки для всех пользователей: | |||
[[Файл:NetworkManager-network-control-no.png|150px|frameless|Пользователю запрещено включать/отключать сетевой интерфейс]] | |||
|-style="vertical-align:top;" | |||
| sleep-wake | |||
| Разрешение на перевод NetworkManager в спящий режим или пробуждение из спящего режима (должно использоваться только для управления питанием системы) | |||
| | |||
|-style="vertical-align:top;" | |||
| checkpoint-rollback | |||
| Разрешение на создание контрольной точки сетевых интерфейсов или откату к ней | |||
| Если настроено ограничение «Auth_self», при попытке создания контрольной точки будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-checkpoint-rollback-auth-self.png|150px|frameless|Запрос пароля текущего пользователя при попытке создания контрольной точки]] | |||
Если настроено ограничение «Auth_admin», при попытке создания контрольной точки будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-checkpoint-rollback-auth-admin.png|150px|frameless|Запрос пароля администратора при попытке создания контрольной точки]] | |||
|-style="vertical-align:top;" | |||
| reload | |||
| Разрешение на перезагрузку конфигурации NetworkManager | |||
| Если настроено ограничение «Auth_user», при попытке перезагрузки конфигурации NetworkManager будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-reload-auth-user.png|150px|frameless|Запрос пароля текущего пользователя при попытке перезагрузки конфигурации NetworkManager]] | |||
Если настроено ограничение «Auth_admin», при попытке перезагрузки конфигурации NetworkManager будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-reload-auth-admin.png|150px|frameless|Запрос пароля администратора при попытке перезагрузки конфигурации NetworkManager]] | |||
|-style="vertical-align:top;" | |||
| enable-disable-connectivity-check | |||
| Разрешение на включение или отключение проверки подключения к сети | |||
| | |||
|-style="vertical-align:top;" | |||
| wifi.scan | |||
| Разрешение на сканирование Wi-Fi сетей | |||
| Если настроено ограничение «Auth_admin», при сканировании Wi-Fi сетей будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-wifi-scan-auth-admin.png|150px|frameless|Запрос пароля администратора при сканировании Wi-Fi сетей]] | |||
{{note|Необходимо настраивать эту политику с осторожностью, т.к. апплет NetworkManager автоматически сканирует сети Wi-Fi и пароль будет запрашиваться постоянно.}} | |||
|-style="vertical-align:top;" | |||
| wifi.share.protected | |||
| Разрешение на совместные подключения через защищённую сеть Wi-Fi | |||
| Если настроено ограничение «Auth_user», при создании защищенной точки доступа будет запрошен пароль текущего пользователя: | |||
[[Файл:NetworkManager-wifi-share-protected-auth-user.png|150px|frameless|Запрос пароля текущего пользователя при создании защищенной точки доступа]] | |||
Создание точки доступа в консоли: | |||
[[Файл:NetworkManager-wifi-share-protected-auth-user-02.png|150px|frameless|Запрос пароля текущего пользователя при создании защищенной точки доступа]] | |||
|-style="vertical-align:top;" | |||
| wifi.share.open | |||
| Разрешение на совместные подключения через открытую сеть Wi-Fi | |||
| Если настроено ограничение «Auth_admin», при создании открытой точки доступа будет запрошен пароль администратора: | |||
[[Файл:NetworkManager-wifi-share-open-auth-admin.png|150px|frameless|Запрос пароля администратора при создании открытой точки доступа]] | |||
Создание точки доступа в консоли: | |||
[[Файл:NetworkManager-wifi-share-open-auth-admin-02.png|150px|frameless|Запрос пароля администратора при создании открытой точки доступа]] | |||
|} | |||
Разрешения NetworkManager для текущего пользователя можно просмотреть, выполнив команду: | |||
<syntaxhighlight lang="bash">$ nmcli general permissions | |||
PERMISSION VALUE | |||
org.freedesktop.NetworkManager.checkpoint-rollback auth | |||
org.freedesktop.NetworkManager.enable-disable-connectivity-check да | |||
org.freedesktop.NetworkManager.enable-disable-network да | |||
org.freedesktop.NetworkManager.enable-disable-statistics да | |||
org.freedesktop.NetworkManager.enable-disable-wifi да | |||
org.freedesktop.NetworkManager.enable-disable-wimax да | |||
org.freedesktop.NetworkManager.enable-disable-wwan да | |||
org.freedesktop.NetworkManager.network-control да | |||
org.freedesktop.NetworkManager.reload auth | |||
org.freedesktop.NetworkManager.settings.modify.global-dns auth | |||
org.freedesktop.NetworkManager.settings.modify.hostname auth | |||
org.freedesktop.NetworkManager.settings.modify.own да | |||
org.freedesktop.NetworkManager.settings.modify.system auth | |||
org.freedesktop.NetworkManager.sleep-wake да | |||
org.freedesktop.NetworkManager.wifi.scan да | |||
org.freedesktop.NetworkManager.wifi.share.open да | |||
org.freedesktop.NetworkManager.wifi.share.protected да</syntaxhighlight> | |||
Если необходимо изменить поведение политики для конкретного пользователя, то в правиле следует указать subject.user == "<имя_пользователя>", если необходимо изменить поведение политики для нескольких пользователей, входящих в одну группу, то в правиле следует указать subject.isInGroup("<название_группы>"). | |||
Например, разрешить пользователям группы xgrp изменять системные настройки без запроса пароля, а пользователям группы student запрещающего изменять системные настройки: | |||
# Создать файл {{path|/etc/polkit-1/rules.d/99-networkmanager.rules}} со следующим содержимым: | |||
#: <syntaxhighlight lang="ini"> | |||
polkit.addRule(function(action, subject) { | |||
if (action.id=="org.freedesktop.NetworkManager.settings.modify.system"&& subject.isInGroup("xgrp")) | |||
{ | |||
return polkit.Result.YES; | |||
} | |||
if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" && subject.isInGroup("student")) | |||
{ | |||
return polkit.Result.NO; | |||
}; | |||
});</syntaxhighlight> | |||
# Создать системную группу xgrp (если её ещё нет): | |||
#:<syntaxhighlight lang="bash"># groupadd -r xgrp</syntaxhighlight> | |||
# Добавить пользователя в группу xgrp: | |||
#:<syntaxhighlight lang="bash"># gpasswd -a имя_пользователя xgrp</syntaxhighlight> | |||
# Создать системную группу student (если её ещё нет): | |||
#:<syntaxhighlight lang="bash"># groupadd -r student</syntaxhighlight> | |||
# Добавить пользователя в группу student: | |||
#:<syntaxhighlight lang="bash"># gpasswd -a имя_пользователя student</syntaxhighlight> | |||
# Перелогиниться | |||
Управлять разрешениями NetworkManager можно также через [[Групповые_политики/Polkit#Разрешения_NetworkManager|групповые политики]]. | |||
== Альтернативы == | == Альтернативы == | ||
Строка 310: | Строка 955: | ||
{{Category navigation|title=Wi-Fi|category=WiFi|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Wi-Fi|category=WiFi|sortkey={{SUBPAGENAME}}}} | ||
[[Категория:Настройка сети]] |
Текущая версия от 19:12, 15 мая 2024
В текущих настольных дистрибутивах ОС «Альт» в качестве штатного средства управления сетевыми интерфейсами по умолчанию применяется NetworkManager; при этом обеспечено его взаимодействие с etcnet, а средствами alterator-net-eth при необходимости возможно выбрать, какой именно интерфейс какой подсистемой обслуживается.
Для NetworkManager доступно несколько интерфейсов:
- графический интерфейс: апплет и редактор Plasma для управления сетевыми подключениями в KDE (пакет plasma5-nm);
- графический интерфейс: апплет и редактор GTK для управления сетевыми подключениями в MATE/Cinnamon/Xfce (пакет NetworkManager-applet-gtk);
- командная строка: nmcli — инструмент командной строки, который позволяет пользователям и сценариям взаимодействовать с NetworkManager;
- текстовый интерфейс (TUI): простой текстовый GUI на основе curses (пакет NetworkManager-tui).
GUI
NetworkManager-applet-gtk
Для настройки сети в MATE/Cinnamon/Xfce используется NetworkManager.
Апплет NetworkManager отображается в системном трее:
Если он у вас отсутствует, то необходимо установить пакет NetworkManager-applet-gtk:
# apt-get install NetworkManager-applet-gtk
И перелогиниться.
При щелчке левой кнопкой мыши по значку сети отобразится меню выбора сетевого подключения:
В данном примере нам доступны три вида сетевых подключений:
- LAN (Ethernet)
- Wi-Fi
- VPN
При щелчке по значку правой кнопкой мыши можно:
- полностью включить/выключить сеть;
- включить/выключить Wi-Fi;
- включить/выключить уведомления;
- получить сведения о соединении (если есть хотя бы одно активное подключение);
- настроить соединения;
- посмотреть сведения о программе.
Ethernet
Чтобы подключиться по Ethernet, нужно в контекстном меню апплета NetworkManager выбрать Ethernet-соединение:
Система подключится к сети и получит настройки сети по DHCP (если для интерфейса выбран метод «Автоматически (DHCP)»).
Статический адрес
Если нужно указать адрес вручную или в вашей сети нет DHCP-сервера, то нужно проделать следующее:
Щёлкнуть правой кнопкой мыши по значку сети и выбрать пункт «Параметры соединений…»:
Откроется окно «Сетевые соединения». Выбрать проводное соединение и нажать кнопку «Изменить» (или дважды щёлкнуть по соединению):
$ nm-connection-editor
В открывшемся окне перейти во вкладку «Параметры IPv4»:
Нажать на выпадающий список «Метод»:
Выбрать метод «Вручную»:
Ввести в указанные поля параметры IP и DNS. Чтобы сохранить изменения, нажать кнопку «Сохранить»:
Ввести пароль администратора для сохранения изменений:
Wi-fi
Чтобы подключиться к Wi-fi сети, первым делом, щёлкнув ПРАВОЙ кнопкой мыши по значку сети в трее, проверьте, стоит ли отметка напротив пункта «Включить Wi-fi»:
Щёлкнув по тому же значку уже ЛЕВОЙ кнопкой мыши, выбрать пункт «Сети Wi-fi»→«Доступные сети» и нужную сеть:
Если сеть зашифрованная, ввести от неё пароль:
Вы успешно подключились!
Статический адрес
Чтобы настроить статический адрес для интерфейса Wi-fi, следует щёлкнуть правой кнопкой мыши по значку сети и выбрать пункт «Параметры соединений…»:
Выбрать нужную сеть и нажать кнопку «Изменить» (или дважды щёлкнуть по соединению):
Перейти во вкладку «Параметры IPv4»:
В разделе «Метод» выбрать «Вручную»:
Настроить IP-адрес и нажать кнопку «Cохранить»:
Настройка VLAN
Для создания VLAN-интерфейса необходимо:
- Открыть окно «Сетевые соединения», выбрав в меню аплета NM пункт «Параметры соединений…», или выполнив команду:
$ nm-connection-editor
- Нажать кнопку «Добавить». В открывшемся окне «Выберите тип соединения» выбрать «VLAN» и нажать «Создать»:
- В открывшемся окне на вкладке «VLAN» выбрать из раскрывающегося списка родительский интерфейс, который будет использоваться для подключения VLAN, ввести идентификатор VLAN (VLAN ID — число от 1 до 4094), ввести имя интерфейса VLAN (обычно это либо имя родительского интерфейса плюс «.» и идентификатор VLAN, либо «vlan» плюс идентификатор VLAN):
- На вкладке «Параметры IPv4» установите IP-адрес для интерфейса (если интерфейс не получает IP-адрес по DHCP).
- Нажать кнопку «Сохранить».
Настройка VPN-подключения по протоколу OpenVPN
Для создания нового VPN-подключения необходимо:
- Нажать левой кнопкой мыши на значок NetworkManager, в контекстном меню выбрать «Подключения VPN»→«Настроить VPN…»:
- Выбрать тип подключения VPN и нажать кнопку «Создать»:
- «OpenVPN» — нужно будет ввести настройки вручную и указать файлы сертификатов;
- «Импортировать сохранённую конфигурацию VPN…» — позволяет импортировать настройки из файла.
- Если выбран пункт «Импортировать сохранённую конфигурацию VPN…» выбрать файл с настройками (myopenvpn.ovpn). При этом будут импортированы настройки подключения к серверу OpenVPN, а также сертификаты и ключи (если сертификаты и ключи были встроены в файл с настройками см. описание ниже):
- Если выбран пункт «OpenVPN» следует указать IP-адрес OpenVPN сервера, сертификат УЦ, приватный ключ и сертификат пользователя. Нажать кнопку «Дополнительно» и указать параметры подключения.
- Нажать кнопку «Сохранить».
Для подключения к OpenVPN-серверу нажать левой кнопкой мыши на значок NetworkManager, в контекстном меню выбрать «Подключения VPN»→Созданное VPN подключение:
При успешном подключении напротив имени VPN соединения появится отметка:
При использовании файла настроек сертификаты могут быть как в отдельных файлах, так и могут быть встроены в файл .ovpn. В первом случае для распространения конфигурации среди клиентов OpenVPN-сервера нужно передавать пять файлов (настройки и четыре сертификата), а во втором достаточно передать только один файл настроек, в который уже встроены сертификаты.
Пример файла конфигурации без сертификатов:
client
remote '99.212.207.112' 443
cert '/home/user/.cert/nm-openvpn/myopenvpn-cert.pem'
key '/home/user/.cert/nm-openvpn/myopenvpn-key.pem'
ca '/home/user/.cert/nm-openvpn/myopenvpn-ca.pem'
dev tun
proto udp
sndbuf 0
rcvbuf 0
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-128-CBC
tls-auth '/home/user/.cert/nm-openvpn/myopenvpn-tls-auth.pem' 1
setenv opt block-outside-dns
verb 3
Пример файла конфигурации c сертификатами:
client
remote '99.212.207.112' 443
dev tun
proto udp
sndbuf 0
rcvbuf 0
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-128-CBC
setenv opt block-outside-dns
key-direction 1
verb 3
<ca>
…
</ca>
<cert>
…
</cert>
<key>
…
</key>
<tls-auth>
…
</tls-auth>
Вместо многоточий […] должны быть вставлены соответствующие сертификаты/ключи полностью, вместе с комментариями. При импорте такого файла конфигурации сертификаты будут импортированы в каталог $HOME/.cert/nm-openvpn/.
Настройка подключения к WireGuard
Настроить клиент WireGuard можно, создав профиль подключения в NetworkManager.
Необходима следующая информация:
- закрытый ключ клиента;
- статические IP-адреса туннеля с маской подсети клиента (например, 172.30.0.3/32,2a01:4f9:c012:d74d:ac1e::3/128).
- открытый ключ сервера;
- статический IP-адреса туннеля с маской подсети сервера (например, 172.30.0.1/24,2a01:4f9:c012:d74d:ac1e::1/120).
- публичный IP-адрес и порт сервера (например, 99.109.239.22:51820).
Для создания WireGuard-интерфейса необходимо:
- Открыть окно «Сетевые соединения», выбрав в меню аплета NM пункт «Параметры соединений…», или выполнив команду:
$ nm-connection-editor
- Нажать кнопку «Добавить». В открывшемся окне «Выберите тип соединения» в выпадающем списке выбрать пункт «WireGuard» и нажать кнопку «Создать»:
- В открывшемся окне указать имя подключения.
- На вкладке «WireGuard» ввести имя виртуального интерфейса, который NetworkManager назначит соединению, ввести закрытый ключ клиента:
- Нажать кнопку «Добавить», чтобы добавить пиры (Peers).
- В открывшемся окне ввести открытый ключ сервера, в поле «Разрешенные адреса IP» указать маршрут, разрешенный для клиента (например, 0.0.0.0/0;::/0, для маршрутизации всего трафика через туннель). В поле «Конечная точка» указать публичный IP-адрес (или имя хоста) и порт сервера WireGuard:
- Нажать кнопку «Применить».
- На вкладке «Параметры IPv4» в списке «Метод» выбрать пункт «Вручную», нажать кнопку «Добавить» и ввести IPv4-адрес туннеля и маску подсети:
- Если необходимо, на вкладке «Параметры IPv6» в списке «Метод» выбрать «Вручную», нажать кнопку «Добавить» и ввести IPv6-адрес туннеля и маску подсети:
- Нажать кнопку «Сохранить», чтобы сохранить профиль подключения.
Пример содержимого файла конфигурации:
[Interface]
Address = 172.30.0.3/32,2a01:4f9:c012:d74d:ac1e::3/128
PrivateKey = +HO34NeGexQP0qYX1GexQP0xQP0A9Mwm/wd4Dc+vAE=
DNS = 1.1.1.1,1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001
MTU = 1300
[Peer]
PublicKey = UMQuv3vGuJbUWFK5ie+uv3vGuJvu8Cuv3vGuJLOlYkX1M=
AllowedIPs = 0.0.0.0/0,::/0
Endpoint = 99.109.239.22:51820
PersistentKeepalive = 15
Подключение к WireGuard-серверу:
Проверка подключения:
- доступность сервера:
$ ping 172.30.0.1 PING 172.30.0.1 (172.30.0.1) 56(84) bytes of data. 64 bytes from 172.30.0.1: icmp_seq=1 ttl=64 time=41.0 ms
- вывести конфигурацию интерфейса wireguard (должен быть установлен пакет wireguard-tools):
# wg show wireguard interface: wireguard public key: BPhIIfWrdseXz5WOw7eFO8M+PqrZRdylbqPqrZRdZWA= private key: (hidden) listening port: 60714 fwmark: 0xcbdf peer: UMQuv3vGuJbUWFK5ie+uv3vGuJvu8Cuv3vGuJLOlYkX1M= endpoint: 99.109.239.22:51820 allowed ips: 0.0.0.0/0, ::/0 latest handshake: 54 seconds ago transfer: 25.32 KiB received, 28.98 KiB sent persistent keepalive: every 15 seconds
# WG_HIDE_KEYS=never wg show wireguard
plasma5-nm
Для настройки сети в KDE используется NetworkManager (виджет «Управление сетью»).
При нажатии левой кнопки мыши на значок «Управление сетью», откроется меню, в котором показана информация о текущих соединениях. Здесь также можно выбрать одну из доступных Wi-Fi сетей и подключиться к ней, или отключить активное Wi-Fi соединение:
Для настройки соединений, следует нажать кнопку «Настроить сетевые соединения…», вызываемую при нажатии правой кнопки мыши на значке «Управление сетью»:
В открывшемся окне будет показан, сгруппированный по типам, список соединений:
Здесь можно добавлять новые и настраивать существующие соединения.
$ systemsettings5 kcm_networkmanagement
Консоль
Утилита nmcli
nmcli — это инструмент командной строки для управления NetworkManager и создания отчетов о состоянии сети. nmcli можно использовать для создания, отображения, редактирования, удаления, активации и деактивации сетевых подключений, а также для управления состоянием сетевых устройств.
Синтаксис команды nmcli:
$ nmcli <опции> <объект> <команда>
Объекты над которыми могут выполняется операции с помощью команды nmcli:
- general — возвращает состояние и разрешения NetworkManager, позволяет получить/изменить имя хоста, а также уровень ведения журнала NetworkManager;
- networking — возвращает состояние сетевых подключений, позволяет включить/отключить сеть;
- radio — возвращает состояние подключения к сети Wi-Fi, позволяет включить/отключить сеть Wi-Fi;
- connection — позволяет управлять сетевыми интерфейсами, позволяет добавить/удалить соединение;
- device — возвращает состояние, позволяет управлять настройками сетевых устройств;
- monitor — мониторинг активности NetworkManager, позволяет отслеживать изменения состояний сетевых подключений.
Состояние NetworkManager:
$ nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
подключено полностью включено включено missing включено
Состояние сетевых интерфейсов:
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s31f6 ethernet подключено System enp0s31f6
wlp0s20f3 wifi подключено Space2
p2p-dev-wlp0s20f3 wifi-p2p отключено --
lo loopback без управления --
Проверка состояния подключения к сети:
$ nmcli networking connectivity check
full
Список доступных подключений:
$ nmcli connection show
NAME UUID TYPE DEVICE
System enp0s31f6 0f179fcd-4c89-e0f9-6475-062aa5905ceb ethernet enp0s31f6
Space2 21f113eb-f40c-468f-9727-0f0baec6489e wifi wlp0s20f3
QHotspot 29b1afe5-4812-4457-8ab1-5bfc3f2a536c wifi --
Space3 78806f0d-c3da-4c18-9d73-1ea5e8c94ea7 wifi --
Space5 c8943b43-13e1-4f42-89e6-bdad984ebd0b wifi --
Информация о подключении System enp0s31f6:
$ nmcli connection show "System enp0s31f6"
Деактивировать подключение System enp0s31f6:
$ nmcli conn down "System enp0s31f6"
Изменить подключение System enp0s31f6 с DHCP на Static:
$ nmcli con mod "System enp0s31f6" ipv4.method manual ipv4.address 192.168.0.40/24 ipv4.gateway 192.168.0.1
Указать DNS-сервер:
$ nmcli connection modify "System enp0s31f6" ipv4.dns 192.168.0.122
Добавить DNS-сервер к имеющимся:
$ nmcli connection modify "System enp0s31f6" +ipv4.dns 8.8.8.8
Изменить подключение System enp0s31f6 на DHCP:
$ nmcli con mod "System enp0s31f6" ipv4.method auto
Вывести список доступных сетей Wi-Fi:
$ nmcli device wifi list
Подключиться к сети Wi-Fi:
$ nmcli dev wifi con Space5 password io67%gfds name Space5 private yes
Создать точку доступа Wi-Fi:
$ nmcli -s dev wifi hotspot con-name QHotspot
Пароль точки доступа: bcL9ZEVx
Устройство «wlp0s20f3» успешно активировано с «d22e6d34-6357-4c96-9b3c-2d63099c8681».
Подсказка: "nmcli dev wifi show-password" покажет имя и пароль Wi-Fi.
Данная команда создаст профиль подключения к точке доступа и активирует его на устройстве. Точка доступа защищена WPA, если устройство/драйвер поддерживает WPA, в противном случае используется WEP. Если для точки доступа не задан пароль (опция --password), nmcli сгенерирует пароль.
Удалить подключение:
$ nmcli con del QHotspot
Изменение настроек сети с созданием контрольной точки:
$ nmcli dev checkpoint --timeout 30 ifname enp0s3 -- nmcli dev dis enp0s3
Device 'eth0' successfully disconnected.
Type "Yes" to commit the changes: No
Checkpoint was removed.
Контрольная точка — это снимок активной конфигурации сети с таймером. Контрольная точка позволяет вернуться к рабочей конфигурации сети, если какие-либо изменения делают машину недоступной по сети. Необходимо сначала определить контрольную точку, затем внести потенциально опасные изменения и,если изменения не нарушили подключение, подтвердить их. Если изменения вызывают сбой в сети и таймер истекает до того, как пользователь сможет подтвердить изменения, то изменения отменяются. В данном примере контрольная точка создаётся перед отключением устройства enp0s3, если пользователь не подтвердит изменение за 30 секунд enp0s3 будет возвращено в то состояние, в котором оно находилось на момент захвата контрольной точки.
Объединение сетевых интерфейсов (bonding)
- Запуск управляющего интерфейса не приводит к автоматическому запуску интерфейсов портов.
- Запуск интерфейса порта всегда запускает управляющий интерфейс.
- Остановка управляющего интерфейса останавливает интерфейсы портов.
- Управляющий интерфейс без портов может запускать статические IP-соединения.
- Управляющий интерфейс без портов ожидает порты при запуске DHCP-соединений.
Просмотреть существующие сетевые подключения:
$ nmcli connection show
NAME UUID TYPE DEVICE
Native enp0s3 c3a4c72b-87f5-45ff-94ad-400043e68425 ethernet enp0s3
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8
Создать bonding интерфейс с именем bond0 (режим «Active Backup»):
# nmcli connection add type bond ifname bond0 bond.options "mode=active-backup"
Подключение «bond-bond0» (38b5a3a1-5395-4f80-9909-96a11aefec8a) успешно добавлено.
Вывести информацию о подключениях:
$ nmcli connection show
NAME UUID TYPE DEVICE
bond-bond0 38b5a3a1-5395-4f80-9909-96a11aefec8a bond bond0
Native enp0s3 c3a4c72b-87f5-45ff-94ad-400043e68425 ethernet enp0s3
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8
Отключить (или удалить) действующие соединения интерфейсов enp0s3 и enp0s8:
# nmcli connection down "Native enp0s3"
Подключение «Native enp0s3» успешно отключено (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/1)
# nmcli connection down "Native enp0s8"
Подключение «Native enp0s8» успешно отключено (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/2)
Выполнить команды объединения сетевых интерфейсов enp0s3 и enp0s8 в bond0:
# nmcli connection add type ethernet con-name bond0-port0 ifname enp0s3 master bond0
Подключение «bond0-port0» (3aec53f7-82d2-4432-beaa-eb1975e52507) успешно добавлено.
# nmcli connection add type ethernet con-name bond0-port1 ifname enp0s8 master bond0
Подключение «bond0-port1» (2ef1579e-7816-456c-beaa-e6d1e6a4063e) успешно добавлено.
Вывести информацию о сетевых настройках:
$ nmcli
bond0: подключено к bond-bond0
"bond0"
bond, 02:66:B3:68:52:71, программное обеспечение, MTU 1500
ip4 по умолчанию
inet4 192.168.0.190/24
route4 192.168.0.0/24 metric 300
route4 default via 192.168.0.1 metric 300
inet6 fd47:d11e:43c1:0:8d91:b6ee:a87a:1e6a/64
inet6 fe80::1763:748:6bc8:d953/64
route6 fe80::/64 metric 1024
route6 fd47:d11e:43c1::/64 metric 300
route6 fd47:d11e:43c1::/48 via fe80::6670:2ff:fede:d4c0 metric 300
enp0s3: подключено к bond0-port0
"Intel 82540EM"
ethernet (e1000), 02:66:B3:68:52:71, аппаратное обеспечение, MTU 1500
основное bond0
enp0s8: подключено к bond0-port1
"Intel 82540EM"
ethernet (e1000), 02:66:B3:68:52:71, аппаратное обеспечение, MTU 1500
основное bond0
lo: без управления
"lo"
loopback (unknown), 00:00:00:00:00:00, программное обеспечение, MTU 65536
Информацию о получившемся агрегированном интерфейсе можно посмотреть в /proc/net/bonding/bond0:
Ethernet Channel Bonding Driver: v6.1.49-un-def-alt1
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: enp0s8
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
Slave Interface: enp0s8
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:0c:f5:9b
Slave queue ID: 0
Slave Interface: enp0s3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 08:00:27:8b:4f:61
Slave queue ID: 0
Группирование сетевых интерфейсов (teaming)
Существующие сетевые подключения:
$ nmcli connection show
NAME UUID TYPE DEVICE
Native enp0s3 c3a4c72b-87f5-45ff-94ad-400043e68425 ethernet enp0s3
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8
Создать teaming интерфейс с именем team0:
# nmcli connection add type team ifname team0
Подключение «team-team0» (f30883d8-495e-443b-b6f3-6f0970227f4b) успешно добавлено.
$ nmcli connection show
NAME UUID TYPE DEVICE
team-team0 f30883d8-495e-443b-b6f3-6f0970227f4b team team0
Native enp0s3 c3a4c72b-87f5-45ff-94ad-400043e68425 ethernet enp0s3
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8
Отключить (или удалить) действующие соединения интерфейсов enp0s3 и enp0s8:
# nmcli connection down "Native enp0s3"
Подключение «Native enp0s3» успешно отключено (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/1)
# nmcli connection down "Native enp0s8"
Подключение «Native enp0s8» успешно отключено (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/2)
Выполнить команды группирования сетевых интерфейсов enp0s3 и enp0s8 в team0:
# nmcli connection add type ethernet con-name team0-port0 ifname enp0s3 master team0
Подключение «team0-port0» (dc4acdf1-4a36-4f61-b5d5-eede6f760163) успешно добавлено.
# nmcli connection add type ethernet con-name team0-port1 ifname enp0s8 master team0
Подключение «team0-port1» (da9b892f-8809-4234-a7b0-b2b869a0c23e) успешно добавлено.
Вывести информацию о сетевых настройках:
$ nmcli
team0: подключено к team-team0
"team0"
team, 08:00:27:0C:F5:9B, программное обеспечение, MTU 1500
ip4 по умолчанию
inet4 192.168.0.200/24
route4 192.168.0.0/24 metric 350
route4 default via 192.168.0.1 metric 350
inet6 fd47:d11e:43c1::aef/128
inet6 fd47:d11e:43c1:0:a197:d81f:ba11:647/64
inet6 fe80::628c:c43f:a818:f954/64
route6 fe80::/64 metric 1024
route6 fd47:d11e:43c1::/64 metric 350
route6 fd47:d11e:43c1::/48 via fe80::6670:2ff:fede:d4c0 metric 350
route6 fd47:d11e:43c1::aef/128 metric 350
enp0s3: подключено к team0-port0
"Intel 82540EM"
ethernet (e1000), 08:00:27:0C:F5:9B, аппаратное обеспечение, MTU 1500
основное team0
enp0s8: подключено к team0-port1
"Intel 82540EM"
ethernet (e1000), 08:00:27:0C:F5:9B, аппаратное обеспечение, MTU 1500
основное team0
lo: без управления
"lo"
loopback (unknown), 00:00:00:00:00:00, программное обеспечение, MTU 65536
Создание VLAN (802.1Q)
Вывести существующие сетевые подключения:
$ nmcli connection show
NAME UUID TYPE DEVICE
Native enp0s3 43603ade-65e7-4c56-bbfb-c1385e2b475f ethernet enp0s3
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8
Создать VLAN-интерфейс с идентификатором 100 на интерфейсе enp0s3:
# nmcli connection add type vlan con-name enp0s3.100 ifname enp0s3.100 dev enp0s3 id 100 ip4 192.168.10.10/24 gw4 192.168.10.1
Подключение «enp0s3.100» (acaf0c6b-45d6-4f6e-bc4e-2bcaeb41e4d2) успешно добавлено.
Просмотреть сетевые подключения:
$ nmcli connection show
NAME UUID TYPE DEVICE
Native enp0s3 43603ade-65e7-4c56-bbfb-c1385e2b475f ethernet enp0s3
enp0s3.100 acaf0c6b-45d6-4f6e-bc4e-2bcaeb41e4d2 vlan enp0s3.100
Native enp0s8 e53f52b7-535e-442e-93df-1e88d2992cea ethernet enp0s8
$ ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
enp0s3 UP 192.168.0.188/24 fe80::8bf0:386d:78dd:544c/64
enp0s8 UP
enp0s3.100@enp0s3 UP 192.168.10.10/24 fe80::2a16:4163:8fd1:6609/64
Проверить соединение можно, настроив на другой машине такой же VLAN и выполнив команду ping:
$ ping -I enp0s3.100 192.168.10.10
По умолчанию соединение VLAN наследует максимальную единицу передачи (MTU) от родительского интерфейса. При желании установите другое значение MTU:
Утилита nmcli может использоваться для установки и очистки флагов ioctl, которые изменяют способ функционирования 802.1Q. NetworkManager поддерживает следующие флаги VLAN:
- 0x01 — переупорядочение заголовков выходных пакетов;
- 0x02 — использовать протокол GVRP;
- 0x04 — слабая привязка интерфейса и его мастера (режим «loose binding»).
Состояние VLAN-интерфейса синхронизируется с состоянием родительского интерфейса (интерфейса или устройства, на котором создается VLAN). Если для родительского интерфейса установлено административное состояние «выключено», все связанные VLAN отключаются, а все маршруты удаляются из таблицы маршрутизации. Флаг 0x04 включает режим свободной привязки, в котором от родительского устройства к связанным VLAN передается только рабочее состояние, но состояние устройства VLAN не изменяется.
Установить флаг 0x04 VLAN:
$ nmcli connection mod enp0s3.100 vlan.flags 4
Результат:
$ nmcli -p connection show enp0s3.100 | grep vlan.flags
vlan.flags: 4 (LOOSE_BINDING)
Пример настройки Q-in-Q интерфейса, например, enp0s3.100.200 (дважды тегированный трафик: внешняя метка — 100, внутренняя — 200):
$ nmcli connection add type vlan con-name enp0s3.100.200 dev enp0s3.100 id 200 ip4 192.0.2.1/24 gw4 192.0.2.254
Подключение «vlan100.200» (07d10b3d-1390-4f60-a8a6-4e853143795f) успешно добавлено.
Проверка конфигурации вложенного интерфейса VLAN:
$ ip -d addr show enp0s3.100.200
9: enp0s3.100.200@enp0s3.100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:00:27:16:7a:dd brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 0 maxmtu 65535
vlan protocol 802.1Q id 200 <REORDER_HDR> numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
inet 192.0.2.1/24 brd 192.0.2.255 scope global noprefixroute enp0s3.100.200
valid_lft forever preferred_lft forever
inet6 fe80::6c0a:6ac:47a8:2286/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Настройка VPN-подключения по протоколу OpenVPN
Для подключения клиента к OpenVPN-серверу передайте файл (в примере myopenvpn.ovpn), содержащий настройки подключения к серверу OpenVPN (адрес сервера, порт, другие настройки, а также сертификаты для шифрования соединения и аутентификации), на клиентский ПК.
Импорт настроек OpenVPN с помощью nmcli:
$ nmcli connection import type openvpn file myopenvpn.ovpn
Подключение «myopenvpn» (633dae37-4cc3-4944-9a1b-67432b1f4022) успешно добавлено.
Список подключений:
$ nmcli connection show
NAME UUID TYPE DEVICE
Проводное соединение 1 e9bbfb58-c6d9-3de7-99ac-67da2666bddb ethernet enp0s31f6
Space3 56e8e42b-4cae-4756-be5b-c4a90b1c5ce6 wifi wlp0s20f3
lo 792de0d1-23ae-455f-b276-a07f86003e84 loopback lo
myopenvpn 633dae37-4cc3-4944-9a1b-67432b1f4022 vpn --
Выполнить подключение к myopenvpn:
$ nmcli connection up myopenvpn
Подключение успешно активировано (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/12)
Проверка подключения:
$ nmcli connection show
NAME UUID TYPE DEVICE
myopenvpn 633dae37-4cc3-4944-9a1b-67432b1f4022 vpn enp0s31f6
Space3 56e8e42b-4cae-4756-be5b-c4a90b1c5ce6 wifi wlp0s20f3
Проводное соединение 1 e9bbfb58-c6d9-3de7-99ac-67da2666bddb ethernet enp0s31f6
lo d5a4b792-ad42-4fa1-ae79-9a05014c13a7 loopback lo
tun0 1e43a7da-40b9-4a72-b9e3-7dd750c1b8bb tun tun0
Настройка подключения к Wireguard
Импорт настроек клиента Wireguard:
$ nmcli connection import type wireguard file wireguard.conf
Подключение «wireguard» (88d86d8d-a5c1-4138-9693-1fa010c11835) успешно добавлено.
Просмотр списка подключений:
$ nmcli connection show
NAME UUID TYPE DEVICE
Native enp0s3 cd7d3120-9d5a-479d-8360-d1bc14572d08 ethernet enp0s3
wireguard 88d86d8d-a5c1-4138-9693-1fa010c11835 wireguard wireguard
lo 3e72cc4a-08e7-4dde-968b-516a0af0c06e loopback lo
Не запускать соединение wireguard автоматически:
$ nmcli connection modify wireguard autoconnect no
Просмотр параметров подключения:
$ nmcli connection show wireguard
Отключить соединение:
$ nmcli con down wireguard
Подключение «wireguard» успешно отключено (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/5)
Утилита nmtui
nmtui — утилита для настройки сети с простым текстовый пользовательский интерфейс (TUI) на основе curses.
Пакет NetworkManager-tui не устанавливается по умолчанию, поэтому его необходимо установить:
# apt-get install NetworkManager-tui
Запуск утилиты:
$ nmtui
В результате запуска появится текстовый пользовательский интерфейс:
Для навигации используются клавиши со стрелками, <Tab> или <Shift>+<Tab>. Для выбора опции следует нажать <Enter>. Пробел переключает состояние флажка.
Для изменения настроек подключения нужно выбрать интерфейс:
Внести изменения и нажать кнопку «ОК»:
Для применения изменений для активного соединения необходимо после внесения изменений деактивировать этот интерфейс (кнопка «Отключить»), а затем снова активировать (кнопка «Отключить»).
Доступны также следующие команды:
$ nmtui edit <имя_соединения>
Если имя соединения не указано, появится меню выбора. Если имя соединения указано и правильно идентифицировано, появится соответствующий экран «Редактировать соединение».
$ nmtui connect <имя_соединения>
Если имя соединения не указано, появится меню выбора. Если имя соединения указано и правильно идентифицировано, соответствующее соединение активируется.
$ nmtui hostname
Откроется экран изменения имени узла:
Разрешения NetworkManager
Разрешениями NetworkManager управляет Polkit.
По умолчанию всем пользователям в активных локальных сеансах разрешено изменять большинство сетевых настроек без запроса пароля. Для некоторых действий (например, изменения hostname системы) требуется пароль администратора.
Правило Polkitd для демона NetworkManager (org.freedesktop.NetworkManager) | Описание | Примеры |
---|---|---|
enable-disable-network | Разрешение на включение или отключение сетевого взаимодействия системы. Если сетевое взаимодействие отключено, все управляемые интерфейсы отсоединяются и деактивируются. Если сетевое взаимодействие включено, все управляемые интерфейсы доступны для активации. | Если настроено ограничение «Auth_self», при попытке включения/отключения сети будет запрошен пароль текущего пользователя:
Запрос пароля пользователя при включении/отключении сети в консоли: Если настроено ограничение «Auth_admin», при попытке включения/отключения сети будет запрошен пароль администратора: Если настроено ограничение «No», пользователю запрещено включать/отключать сеть: |
enable-disable-statistics | Разрешение на включение или отключение статистики устройства | |
enable-disable-wifi | Разрешение на включение или отключение устройств Wi-Fi | Если настроено ограничение «Auth_self», при попытке включения/отключения сети Wi-Fi будет запрошен пароль текущего пользователя:
Если настроено ограничение «Auth_admin», при попытке включения/отключения сети Wi-Fi будет запрошен пароль администратора: Если настроено ограничение «No», пользователю запрещено включать/отключать сеть Wi-Fi: |
enable-disable-wimax | Разрешение на включение или отключение мобильных широкополосных устройств WiMAX | |
enable-disable-wwan | Разрешение на включение или отключение мобильных широкополосных устройств (WWAN-устройств) | |
settings.modify.global-dns | Разрешение на изменение общих настроек DNS | |
settings.modify.own | Разрешение на изменение личных сетевых соединений | Если настроено ограничение «Auth_self», при попытке изменения персональных сетевых настроек (например, при подключении к сети Wi-Fi) будет запрошен пароль текущего пользователя:
Если настроено ограничение «Auth_admin», при попытке изменения персональных сетевых настроек будет запрошен пароль администратора: Запрос пароля администратора при изменении персональных сетевых настроек в консоли: |
settings.modify.hostname | Разрешение на изменение постоянного имени хоста (hostname) системы. |
Если настроено ограничение «Auth_self», при попытке изменения hostname системы будет запрошен пароль текущего пользователя: |
settings.modify.system | Разрешение на создание и модификацию системных сетевых соединений | Если настроено ограничение «Auth_self», при попытке изменения сетевых настроек для всех пользователей (например, изменении IP-адреса) будет запрошен пароль текущего пользователя:
Если настроено ограничение «Auth_admin», при попытке изменения сетевых настроек для всех пользователей будет запрошен пароль администратора: Если настроено ограничение «No», пользователю запрещено изменять сетевые настройки для всех пользователей: |
network-control | Разрешение на изменение системных настроек для сети | Если настроено ограничение «Auth_self», при попытке включения/отключения сетевого интерфейса будет запрошен пароль текущего пользователя:
Запрос пароля пользователя при включении/отключении сетевого интерфейса в консоли: Если настроено ограничение «Auth_admin», при попытке изменения сетевых настроек для всех пользователей будет запрошен пароль администратора: Если настроено ограничение «No», пользователю запрещено изменять сетевые настройки для всех пользователей: |
sleep-wake | Разрешение на перевод NetworkManager в спящий режим или пробуждение из спящего режима (должно использоваться только для управления питанием системы) | |
checkpoint-rollback | Разрешение на создание контрольной точки сетевых интерфейсов или откату к ней | Если настроено ограничение «Auth_self», при попытке создания контрольной точки будет запрошен пароль текущего пользователя:
Если настроено ограничение «Auth_admin», при попытке создания контрольной точки будет запрошен пароль администратора: |
reload | Разрешение на перезагрузку конфигурации NetworkManager | Если настроено ограничение «Auth_user», при попытке перезагрузки конфигурации NetworkManager будет запрошен пароль текущего пользователя:
Если настроено ограничение «Auth_admin», при попытке перезагрузки конфигурации NetworkManager будет запрошен пароль администратора: |
enable-disable-connectivity-check | Разрешение на включение или отключение проверки подключения к сети | |
wifi.scan | Разрешение на сканирование Wi-Fi сетей | Если настроено ограничение «Auth_admin», при сканировании Wi-Fi сетей будет запрошен пароль администратора:
Примечание: Необходимо настраивать эту политику с осторожностью, т.к. апплет NetworkManager автоматически сканирует сети Wi-Fi и пароль будет запрашиваться постоянно.
|
wifi.share.protected | Разрешение на совместные подключения через защищённую сеть Wi-Fi | Если настроено ограничение «Auth_user», при создании защищенной точки доступа будет запрошен пароль текущего пользователя:
Создание точки доступа в консоли: |
wifi.share.open | Разрешение на совместные подключения через открытую сеть Wi-Fi | Если настроено ограничение «Auth_admin», при создании открытой точки доступа будет запрошен пароль администратора:
Создание точки доступа в консоли: |
Разрешения NetworkManager для текущего пользователя можно просмотреть, выполнив команду:
$ nmcli general permissions
PERMISSION VALUE
org.freedesktop.NetworkManager.checkpoint-rollback auth
org.freedesktop.NetworkManager.enable-disable-connectivity-check да
org.freedesktop.NetworkManager.enable-disable-network да
org.freedesktop.NetworkManager.enable-disable-statistics да
org.freedesktop.NetworkManager.enable-disable-wifi да
org.freedesktop.NetworkManager.enable-disable-wimax да
org.freedesktop.NetworkManager.enable-disable-wwan да
org.freedesktop.NetworkManager.network-control да
org.freedesktop.NetworkManager.reload auth
org.freedesktop.NetworkManager.settings.modify.global-dns auth
org.freedesktop.NetworkManager.settings.modify.hostname auth
org.freedesktop.NetworkManager.settings.modify.own да
org.freedesktop.NetworkManager.settings.modify.system auth
org.freedesktop.NetworkManager.sleep-wake да
org.freedesktop.NetworkManager.wifi.scan да
org.freedesktop.NetworkManager.wifi.share.open да
org.freedesktop.NetworkManager.wifi.share.protected да
Если необходимо изменить поведение политики для конкретного пользователя, то в правиле следует указать subject.user == "<имя_пользователя>", если необходимо изменить поведение политики для нескольких пользователей, входящих в одну группу, то в правиле следует указать subject.isInGroup("<название_группы>"). Например, разрешить пользователям группы xgrp изменять системные настройки без запроса пароля, а пользователям группы student запрещающего изменять системные настройки:
- Создать файл /etc/polkit-1/rules.d/99-networkmanager.rules со следующим содержимым:
polkit.addRule(function(action, subject) { if (action.id=="org.freedesktop.NetworkManager.settings.modify.system"&& subject.isInGroup("xgrp")) { return polkit.Result.YES; } if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" && subject.isInGroup("student")) { return polkit.Result.NO; }; });
- Создать системную группу xgrp (если её ещё нет):
# groupadd -r xgrp
- Добавить пользователя в группу xgrp:
# gpasswd -a имя_пользователя xgrp
- Создать системную группу student (если её ещё нет):
# groupadd -r student
- Добавить пользователя в группу student:
# gpasswd -a имя_пользователя student
- Перелогиниться
Управлять разрешениями NetworkManager можно также через групповые политики.
Альтернативы
- etcnet (по умолчанию в серверных выпусках и ряде стартеркитов)
- connman (по умолчанию в стартерките/регулярке enlightenment)