- Настройка Kali Linux – настройка сети, управление Unix пользователями и группами
- Pirnazar
- Управляем сетевыми подключениями в Linux с помощью консольной утилиты nmcli
- Синтаксис команд nmcli
- Простые примеры
- Управление подключениями
- Добавление сетевых соединений
- Настройка подключений
- Работа с устройствами
- Проверка статуса устройств
- Запрос информации об устройстве
- Интерактивный редактор nmcli
- И это далеко не всё
- На правах рекламы
Настройка Kali Linux – настройка сети, управление Unix пользователями и группами
Pirnazar
Настройки сети по умолчанию используют DHCP для получения IP-адреса, DNS-сервера и шлюза, но вы можете использовать значок шестеренки в правом нижнем углу, чтобы изменить конфигурацию разными способами (например, установить MAC-адрес, переключиться на статические настройки, включить или отключить IPv6 и добавить дополнительные маршруты). Вы можете создать профили для сохранения нескольких проводных сетевых конфигураций и легко переключаться между ними. Для беспроводных сетей эти настройки автоматически привязываются к их публичному идентификатору (SSID).
NetworkManager также обрабатывает соединения с помощью мобильного широкополосного канала (Wireless Wide Area Network WWAN), а также модемов использующих протокол передачи от точки к точке через Ethernet (point-to-point protocol over ethernet (PPPoE)). И последнее, но не менее важное: он обеспечивает интеграцию со многими типами виртуальных частных сетей (virtual private networks (VPN)) с помощью выделенных модулей: SSH, OpenVPN, Cisco’s VPNC, PPTP, Strongswan. Проверьте пакеты network-manager- *; большинство из них не установлены по умолчанию. Обратите внимание, что вам нужны пакеты с суффиксом -gnome, чтобы настроить их через графический интерфейс пользователя.
1.2 Через командную строку с помощью Ifupdown
В качестве альтернативы, в тех случаях, когда вы предпочитаете не использовать (или у вас просто нет доступа) графический интерфейс, вы можете настроить сеть с помощью уже установленного пакета ifupdown, который включает в себя инструменты ifup и ifdown. Эти инструменты считывают определения из файла конфигурации /etc/network/interfaces и лежат в основе сценария инициализации /etc/init.d/networking , который настраивает сеть во время загрузки.
Каждое сетевое устройство, управляемое ifupdown, может быть деконфигурировано в любое время с помощью сетевого устройства ifdown. Затем вы можете изменить /etc/network/interfaces и вернуть сеть (с новой конфигурацией) с помощью сетевого устройства ifup.
Давайте поближе познакомимся с тем, что мы можем вложить в файл конфигурации ifupdown. Существуют две основные директивы: автоматическое сетевое устройство, которое говорит ifupdown автоматически настроить сетевой интерфейс, как только он становится доступным, и iface сетевой интерфейс типа inet/inet6 для того, чтобы настраивать данный интерфейс. Например, простая конфигурация DHCP выглядит следующим образом:
Обратите внимание, что специальные конфигурации для устройства шлейфа, всегда должны присутствовать в этом файле. Для конфигурации фиксированного IP-адреса вам необходимо предоставить более подробную информацию, такую как IP-адрес, сеть и IP-адрес шлюза:
Для беспроводного интерфейса, у вас должен быть пакет wpasupplicant (включенный в Kali по умолчанию), который предоставляет множество wpa-* опций, которые в свою очередь могут быть использованы в /etc/network/interfaces. Для получения примеров и дополнительных разъяснений ознакомьтесь с /usr/share/doc/wpasupplicant/README.Debian.gz. Самыми часто используемыми опциями являются wpa-ssid (которая определяет имя беспроводной сети для присоединения) и wpa-psk (которая определяет идентификационную фразу или ключ, защищающий сеть).
1.3 Через командную строку с помощью systemd-networkd
Несмотря на то, что ifupdown является давно используемым инструментом в Debian, и то, что он до сих пор является стандартом для серверов или других минимальных установок, существует более новый инструмент, который заслуживает нашего внимания: systemd-networkd. Его интеграция с systemd инициализирующей системой делает его очень привлекательным. Он не является целевым для дистрибутивов на основе Debian (в отличие от ifupdown) и был разработан как очень маленький, эффективный и относительно простой в настройке, в том случае если вы хорошо понимаете синтаксис файлов systemd. Для вас это будет особенно привлекательным выбором, если вы считаете, что NetworkManager является чересчур раздутым и сложно настраиваемым.
Вы настраиваете systemd-networkd путем помещения сетевых файлов (.network files) в директорию /etc/systemd/network/. В качестве альтернативы вы можете использовать /lib/systemd/network/ для пакетированных файлов или /run/systemd/ network/ для файлов, сгенерированных во время выполнения программы. Формат этих файлов документируется в systemd. network(5). Раздел Match указывает сетевые интерфейсы, к которым применяется конфигурация. Вы можете указать интерфейс различными способами, например, по адресу управления доступом к среде (media access control (MAC)) или по типу устройства. Раздел Network определяет конфигурацию сети.
Конфигурация на базе DHCP в /etc/systemd/network/80-dhcp.network
Статическая конфигурация в /etc/systemd/network/50-static.network
Обратите внимание, что system-networkd отключен по умолчанию, поэтому, если вы хотите его использовать, его необходимо включить. Это также зависит от systemd-resolved для правильной интеграции DNS разрешения, что в свою очередь требует от вас замены /etc/resolv.conf символической ссылкой на /run/system/resolve/resolv.conf, которая управляется systemd-resolved.
Хотя systemd-networkd страдает от определенных ограничений, вроде недостатка интегрированной поддержки беспроводных сетей, вы все равно можете полагаться на ранее существовавшую внешнюю конфигурацию wpa_supplicant для поддержки беспроводной сети. Однако, она особенно полезна в контейнерах и виртуальных машинах и была первоначально разработана для сред, в которых конфигурация сети контейнера зависела от конфигурации сети хоста. В этом сценарии systemd-networkd упрощает управление обеими сторонами последовательно, поддерживая всевозможные виртуальные сетевые устройства, которые могут потребоваться в этом типе сценариев (смотри systemd.netdev(5)).
2. Управление Unix пользователями и Unix группами
База данных пользователей и групп Unix состоит из текстовых файлов /etc/passwd (список пользователей), /etc/shadow (зашифрованные пароли пользователей), /etc/group (список групп) и /etc/gshadow (зашифрованные пароли групп). Их форматы документируются в passwd(5), shadow(5), group(5), и gshadow(5) соответственно. Хотя эти файлы могут быть отредактированы вручную с помощью таких инструментов, как vipw и vigr, для выполнения наиболее распространенных операций существуют инструменты более высокого уровня.
2.1 Создание пользовательского аккаунта
Несмотря на то, что Kali чаще всего запускается, проводя аутентификации в качестве пользователя root, вам часто может понадобиться создавать непривилегированные учетные записи пользователей по разным причинам, особенно если вы используете Kali в качестве основной операционной системы. Самый простой способ добавить пользователя – это использовать команду adduser, которая требует определенный аргумент: имя пользователя (username) для нового пользователя, которого вы бы хотели создать.
Команда adduser задает несколько вопросов перед созданием учетной записи, но ее использование довольно простое. Его конфигурационный файл /etc/adduser.conf содержит множество интересных настроек. Вы можете, например, определить диапазон идентификаторов пользователей (user identifiers (UID)), который может быть использован для того, чтобы обозначить используют ли пользователи общую группу или нет, определить оболочку по умолчанию и многое другое.
Создание аккаунта запускает популяцию домашних директорий пользователей с содержимым шаблона /etc/skel/ . Это предоставляет пользователю набор стандартных директорий и файлов конфигурации.
В некоторых случаях будет очень полезно добавлять пользователя в группу (отличную от основной группы по умолчанию), чтобы предоставить дополнительные разрешения. Например, пользователь, включенный в группу sudo, имеет полные административные права через sudo команду. Подобного результата можно достичь с помощью использования следующей команды adduser группа пользователя.
Использование getent для обращения к базе данных пользователя:
Команда getent (получение записей (get entries)) проверяет системные базы данных (включая базы данных пользователей и групп) используя соответствующие функции библиотек, которые в свою очередь вызывают модули системы идентификации имен (name service switch (NSS)), настроенные в файле /etc/nsswitch.conf. Данная команда использует один или два аргумента: имя базы данных, которую необходимо проверить, и возможный ключ поиска. Таким образом, команда getent passwd kaliuserl выдаст информацию из пользовательской базы данных о пользователе kaliuserl.
2.2 Изменение существующей учетной записи или пароля
Следующие команды разрешают изменения информации, хранящейся в конкретных областях пользовательской базы данных:
- passwd — позволяет обычным пользователям изменять свой пароль, который в свою очередь, обновляет файл /etc/ shadow файл;
- chfn — (Сменить полное имя (CHange Full Name)), зарезервированное для суперпользователя (root), изменяет GECOS, или область ”общая информация”;
- chsh —(Сменить оболочку (CHange SHell)) изменяет оболочку входа пользователя. Однако доступные варианты будут ограничены теми, которые перечислены в /etc/shells ; администратор, с другой стороны, не связан этим ограничением и может установить оболочку в любую выбранную программу;
- chage—(CHange AGE) позволяет администратору изменять настройки срока действия пароля, указывая имя пользователя в качестве аргумента или отображая текущие настройки с помощью параметра -I пользователь. Кроме того, вы также можете принудительно завершить использование пароля с помощью команды passwd -e пользователь, которая заставляет пользователя менять свой пароль при следующем входе в систему.
2.3 Блокирование аккаунта
Вам может потребоваться отключить учетную запись (заблокировать пользователя) в качестве дисциплинарной меры в целях расследования или просто в случае длительного или окончательного отсутствия пользователя. Заблокированная учетная запись означает, что пользователь не может войти в систему или получить доступ к машине. Учетная запись остается неповрежденной на машине, и никакие файлы или данные не удаляются; она просто недоступна. Это достигается с помощью команды passwd -l пользователь (lock). Повторное включение учетной записи выполняется аналогичным образом с опцией -u (разблокировка).
2.4 Управление Unix группами
Команды addgroup и delgroup добавляют или удаляют группу, соответственно. Команда groupmod изменяет информацию о группе (ее gid или идентификатор). Команда gpasswdgroup изменяет пароль для группы, а команда gpasswd -r группа удаляет его.
Работа с несколькими группами:
Каждый пользователь может быть членом многих групп. Основная группа пользователей по умолчанию создается во время начальной настройки пользователя. По умолчанию каждый файл, созданный пользователем, принадлежит пользователю, а также основной группе пользователя. Это не всегда желательно; например, когда пользователь должен работать в директории, разделяемой группой, отличной от их основной группы. В этом случае пользователю необходимо изменить группы, используя одну из следующих команд: newgrp, которая запускает новую оболочку или sg, которая просто выполняет команду, используя предоставленную альтернативную группу. Эти команды также позволяют присоединиться к группе, к которой они в настоящее время не принадлежат. Если группа защищена паролем, им необходимо будет предоставить соответствующий пароль перед выполнением команды.
В качестве альтернативы, пользователь может установить setgid bit на директорию, что позволяет файлам, созданным в директории, автоматически принадлежать верной группе. Для получения большей информации, смотри заметку «директория setgid и sticky bit».
Команда id отображает текущее состояние пользователя, его личный идентификатор (переменную uid), текущую основную группу (переменную gid) и список групп, к которым они принадлежат (переменная groups).
Источник
Управляем сетевыми подключениями в Linux с помощью консольной утилиты nmcli
Используйте все возможности инструмента управления сетевыми подключениями NetworkManager в командной строке Linux c помощью утилиты nmcli.
Утилита nmcli напрямую обращается к API для доступа к функциям NetworkManager.
Она появилась в 2010 году и для многих стала альтернативным способом настройки сетевых интерфейсов и соединений. Хотя кто-то до сих пор использует ifconfig. Так как nmcli — это инструмент интерфейса командной строки (CLI), предназначенный для использования в окнах терминалов и скриптах, он идеально подходит для системных администраторов, работающих без GUI.
Синтаксис команд nmcli
В общем виде синтаксис выглядит так:
- options — это параметры, которые определяют тонкости работы nmcli,
- section (секция) — определяет, какими возможностями утилиты пользоваться,
- action (действие) — позволяет указать, что, собственно, нужно сделать.
Всего существует 8 секций, каждая из которых связана с каким-то набором команд (действий):
- Help выдаёт справку о командах ncmcli и их использовании.
- General возвращает статус NetworkManager и глобальную конфигурацию.
- Networking включает команды для запроса состояния сетевого подключения и включения / отключения подключений.
- Radio включает команды для запроса состояния подключения к сети WiFi и включения / отключения подключений.
- Monitor включает команды для мониторинга активности NetworkManager и наблюдения за изменениями состояния сетевых подключений.
- Connection включает команды для управления сетевыми интерфейсами, для добавления новых соединений и удаления существующих.
- Device в основном используется для изменения параметров, связанных с устройствами (например, имени интерфейса) или для подключения устройств с использованием существующего соединения.
- Secret регистрирует nmcli в качестве «секретного агента» NetworkManager, который прослушивает тайные сообщения. Эта секция используется редко, потому что nmcli при подключении к сетям по дефолту работает именно так.
Простые примеры
Перед началом работы убедитесь, что NetworkManager запущен и nmcli может общаться с ним:
Часто работу начинают с просмотра всех профилей сетевых подключений:
Это команда использует действие show для секции Connection.
На тестовой машине крутится Ubuntu 20.04. В данном случае мы нашли три проводных подключения: enp0s3, enp0s8, and enp0s9.
Управление подключениями
Важно понимать, что в nmcli под термином Connection мы подразумеваем сущность, которая содержит всю информацию о соединении. Другими словами, это конфигурация сети. Connection инкапсулирует всю информацию, связанную с соединениями, включая канальный уровень и информацию об IP-адресации. Это уровень 2 и уровень 3 в сетевой модели OSI.
Когда вы настраиваете сеть в Linux, вы обычно настраиваете соединения, которые в конечном итоге будут привязаны к сетевым устройствам, которые в свою очередь являются сетевыми интерфейсами, установленными на компьютере. Когда устройство использует соединение, оно считается активным или поднятым. Если соединение не используется, то оно неактивно или сброшено.
Добавление сетевых соединений
Утилита nmcli позволяет быстро добавлять и сразу же настраивать соединения. Например, чтобы добавить Wired connection 2 (с enp0s8), нужно от имени суперпользователя запустить следующую команду:
В опции type мы указываем, что это будет Ethernet-соединение, а в опции ifname (interface name) указываем сетевой интерфейс, который хотим использовать.
Вот что будет после запуска команды:
Создано новое соединение, ethernet-enp0s8. Ему был назначен UUID, тип подключения — Ethernet. Поднимем его с помощью команды up:
Ещё раз проверяем список активных соединений:
Добавлено новое соединение ethernet-enp0s8, оно активно и использует сетевой интерфейс enp0s8.
Настройка подключений
Утилита nmcli позволяет легко менять параметры уже существующих подключений. Например, вам нужно сменить динамический (DHCP) на статический IP-адрес.
Пусть нам нужно установить IP-адрес равным 192.168.4.26. Для этого используем две команды. Первая непосредственно установит IP-адрес, а вторая переключит метод установки IP-адреса на значение «вручную» (manual):
Не забудьте также задать маску подсети. Для нашего тестового подключения это 255.255.255.0, или с /24 для бесклассовой маршрутизации (CIDR).
Чтобы изменения вступили в силу, нужно деактивировать и затем активировать соединение вновь:
Если вам наоборот нужно установить DHCP, вместо manual используйте auto:
Работа с устройствами
Для этого мы используем секцию Device.
Проверка статуса устройств
Запрос информации об устройстве
Для этого используем действие show из секции Device (нужно обязательно указать имя устройства). Утилита показывает достаточно много информации, часто на нескольких страницах.
Давайте посмотрим на интерфейс enp0s8, который использует наше новое соединение. Убедимся, что оно использует ровно тот IP-адрес, который мы установили ранее:
Информации достаточно много. Выделим главное:
- Имя сетевого интерфейса: enp0s8.
- Тип соединения: проводное Ethernet-соединение.
- Мы видим MAC-адрес устройства.
- Указан Maximum transmission unit (MTU) — максимальный размер полезного блока данных одного пакета, который может быть передан протоколом без фрагментации.
- Устройство в данный момент подключено.
- Имя соединения, которое использует устройство: ethernet-enp0s8.
- Устройство использует тот IP-адрес, который мы установили ранее: 192.168.4.26/24.
Другая информация относится к дефолтным параметрам маршрутизации и шлюза соединения. Они зависят от конкретной сети.
Интерактивный редактор nmcli
У nmcli также имеется простенький интерактивный редактор, в котором кому-то работать может быть комфортнее. Чтобы запустить его, например, для соединения ethernet-enp0s8, используйте действие edit:
У него также есть небольшая справка, которая, правда, уступает по размеру консольной версии:
Если вы введёте команду print и нажмёте Enter, nmcli отобразит все свойства соединения:
Например, чтобы задать для подключения свойство DHCP, введите goto ipv4 и нажмите Enter:
Затем пропишите set method auto и нажмите Enter:
Если вы хотите очистить статический IP-адрес, нажмите Enter. В противном случае введите no и нажмите Enter. Вы можете сохранить его, если думаете, что он понадобится вам в будущем. Но даже с сохраненным статическим IP-адресом будет использован DHCP, если method установлен в значение auto.
Используйте команду save, чтобы сохранить изменения:
Введите quit, чтобы выйти из Интерактивного редактора nmcli. Если передумали выходить — используйте команду back.
И это далеко не всё
Откройте Интерактивный редактор nmcli и посмотрите, сколько существует настроек и сколько свойств имеет каждая настройка. Интерактивный редактор — отличный инструмент, но, если вы хотите использовать nmcli в однострочниках или скриптах, вам понадобится обычная версия для командной строки.
Теперь, когда у вас есть основы, ознакомьтесь со справочной страницей nmcli, чтобы узнать, чем ещё она может вам помочь.
На правах рекламы
Эпичные серверы — это виртуальные серверы на Windows или Linux с мощными процессорами семейства AMD EPYC и очень быстрыми NVMe дисками Intel. Спешите заказать!
Источник