Linux логи подключения wifi

Обновлено: 05.07.2024

В этой статье я расскажу, как можно настроить WiFi с помощью wpa_supplicant, без всяких Xorg/X11 утилит. Это необходимо для того, чтобы базовые службы ОС исправно работали с минимальным набором технических средств удаленного доступа. Программа будет исполняться как служба, настройки сделаны правкой конфиг файлов.

По-быстрому, установить соединение с открытой точкой доступа можно таким образом.

Если же надо всерьез и надолго, то прошу внутрь.

Общие сведения о wpa_supplicant

Что из себя представляет wpa_supplicant?

  • Кросс-платформенная открытая реализация стандарта IEEE 802.11 для Linux, *BSD, Windows, Mac OS X и прочих систем.
  • Полная поддержка WPA2, WPA и более старых протоколов безопасности беспроводной LAN сети.
  • Приложение пользовательского пространства, выполняющее функции саппликанта и SME оператора, исполняющего MLME инструкции.
  • WPA и полностью IEEE 802.11i/RSN/WPA2.
  • WPA-PSK и WPA2-PSK (pre-shared key) ("WPA-Personal").
  • WPA вместе с EAP (т.е., сервером аутентификации RADIUS) ("WPA-Enterprise") управление ключами CCMP, TKIP, WEP (104/128 и 40/64 бит).
  • Кэширование RSN, PMKSA: предварительную аутентификацию.

Как wpa_supplicant устанавливает связь с точкой доступа?

  • Cетевой интерфейс должен исправно функционировать с установленным драйвером, прежде чем wpa_supplicant запустится.
  • Wpa_supplicant запрашивает драйвер ядра сканировать доступные Basic Service Set (BSS).
  • Wpa_supplicant производит выбор BSS в соответствии с настройками.
  • Wpa_supplicant запрашивает драйвер ядра установить соединение с выбранной BSS.
  • Для WPA-EAP: аутентификацию EAP производит встроенный IEEE 802.1X Supplicant, либо же внешний Xsupplicant с сервером аутентификации.
  • Для WPA-EAP: получен мастер-ключ от IEEE 802.1X Supplicant.
  • Для WPA-PSK wpa_supplicant использует пароль PSK в качестве мастер-ключа сессии.
  • Wpa_supplicant производит с аутентификатором точки доступа 4-х этапное согласование [1] и групповое согласование ключей.
  • Wpa_supplicant производит шифрование однонаправленных и широковещательных пакетов [2] , после чего начинается обычный обмен данными.

Главный и большой плюс wpa_supplicant — его юниксвейность, то есть соответствие принципу Unix Way, когда программа делает что-то одно, но делает это хорошо. В каком-то смысле wpa_supplicant также Gentoo Way. Она требует некоторого внимания и терпения вначале, но затем о ней можно напрочь забыть. После того как программа настроена и пущена в дело, она полностью выпадает из потока событий, превращаясь в пару строк из ps -ef . Она не сверкает и не мигает в системном трее, не оповещает о разведанных, подключенных и отключенных беспроводных сетях. Ее просто нет, пока вы сами ее не поищите.

Из минусов — сложность настройки и конфигурации. Много возни по сравнению с тырк-тырк-тырк в окне Network Manager , не говоря уже о WiFi подключении с любого Андроид устройства. Если вы собираетесь в поездку с Linux ноутбуком, то наверняка предпочтете более дружественный фронтенд настройки беспроводной сети, чтобы быстро подключаться к бесплатным точкам доступа WiFi в аэропорту, гостинице или в рабочей обстановке. Для домашнего же беспроводного интернета — самое то.

Установка

Если не выбирать графический фронтенд, то программа почти не тянет за собой никаких зависимостей. Для Gentoo Linux сгодится установка с выставленными флагами как показано.

Подключение без конфиг файла

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

Пример для открытой сети был показан в самом начале. Для закрытой WPA сети быстрое подключение выгладит так:

В начале надо запустить саму программу wpa_supplicant и сопутствующую wpa_cli .

Затем настройка из интерактивного интерфейса wpa_cli .

Для закрытой WPA2 сети:

В конце необходимо вручную запустить демон DHCP.

Подключение к Ad-Hoc сети

Никогда с такой не сталкивался, но готовым нужно быть ко всему. Подключение к открытой ad-hoc.

То же самое с помощью iw .

Настройка для домашней сети

Теперь самое интересное — настройка. Этот процесс задокументирован для Arch Wiki, Debian Wiki и Gentoo Wiki, но всех деталей там естественно нет.

Программа обычно ставится в директорию /etc/wpa_supplicant/ , и наша задача — правильно настроить конфигурационный файл wpa_supplicant.conf , и привязать его к автозапуску беспроводного сетевого интерфейса.

Начнем с wpa_supplicant.conf . Если вы подключаетесь из дома к WPA/WPA2, то скорее всего используете пароль для WiFi соединения, что соответствует режиму WPA-PSK ("WPA-Personal") . Мы не будет рассматривать варианты с WEP шифрованием, так как оно ненамного лучше открытой сети.

Возьмем типовой конфиг из документации. Например такой.

Первая строка необходима, без ctrl_interface программа даже не запустится. GROUP=wheel нужно для того, чтобы запускать из под обычного пользователя в графическом интерфейсе wpa_gui, но это не наш путь. Поэтому меняем на рутовый GROUP=0 .

Каждой сети в файле настроек должен соответствовать блок network <> . Покопавшись в исходниках, обнаружил нашел годное писание переменной ap_scan в файле config.h , а в мануале и руководстве пользователя ее описание очень скудное.

ap_scan — AP scanning/selection

By default, wpa_supplicant requests driver to perform AP scanning and then uses the scan results to select a suitable AP. Another alternative is to allow the driver to take care of AP scanning and selection and use wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association information from the driver.

1: wpa_supplicant initiates scanning and AP selection (default).
0: Driver takes care of scanning, AP selection, and IEEE 802.11 association parameters (e.g., WPA IE generation); this mode can also be used with non-WPA drivers when using IEEE 802.1X mode;
do not try to associate with APs (i.e., external program needs to control association). This mode must also be used when using wired Ethernet drivers.

2: like 0, but associate with APs using security policy and SSID (but not BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to enable operation with hidden SSIDs and optimized roaming;
in this mode, the network blocks in the configuration are tried one by one until the driver reports successful association; each network block should have explicit security policy (i.e., only one
option in the lists) for key_mgmt, pairwise, group, proto variables.

Note: ap_scan=2 should not be used with the nl80211 driver interface (the current Linux interface). ap_scan=1 is optimized work working with nl80211. For finding networks using hidden SSID, scan_ssid=1 in the network block can be used with nl80211.

  • bssid — The Basic Service Set Identifier (BSSID), физический адрес точки доступа.
  • key_mgmt — Протоколы аутентификации.
  • pairwise — Для WPA2 укажите CCMP, а для WPA — TKIP.
  • proto — WPA/WPA2.
  • psk — Хэш пароля PreShared Key.

group: list of accepted group (broadcast/multicast) ciphers for WPA
CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11]
If not set, this defaults to: CCMP TKIP WEP104 WEP40

pairwise: list of accepted pairwise (unicast) ciphers for WPA
CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
NONE = Use only Group Keys (deprecated, should not be included if APs support pairwise keys)

proto: list of accepted protocols
WPA = WPA/IEEE 802.11i/D3.0
RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
If not set, this defaults to: WPA RSN

key_mgmt: list of accepted authenticated key management protocols
WPA-PSK = WPA pre-shared key (this requires 'psk' field)
WPA-EAP = WPA using EAP authentication (this can use an external program, e.g., Xsupplicant, for IEEE 802.1X EAP Authentication
IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically generated WEP keys
NONE = WPA is not used; plaintext or static WEP could be used
If not set, this defaults to: WPA-PSK WPA-EAP

Создаем хэш пароля для psk :

Все готово, чтобы создать конфиг сети. Итоговый файл должен выглядеть как-то так.

Верные значения для bssid , group , proto и pairwise можно определить, сканируя беспроводную сеть.

Команда iwlist из набора Wireless Tools устарела, вместо нее сейчас iw .

Настройка 802.1X для офиса

Стандарт IEEE 802.1X определяет более строгую модель подключения к WiFi сети. Вместо psk пароля необходимо предъявить серверный сертификат.

  • ca_cert — Абсолютный путь к CA-сертификату в формате PEM или DER, необходим для возможности подтверждения сертификата сервера.
  • ca_path — Абсолютный путь к директории, где хранятся файлы CA-сертификатов (в формате PEM), которые вы хотите добавить в список доверенных.
  • client_cert — Абсолютный путь к клиентскому сертификату в формате PEM или DER.
  • eap — Разделенный пробелами список поддерживаемых методов EAP: MD5, MSCHAPV2, OTP, GTC, TLS, PEAP, или TTLS.
  • identity — Идентификации EAP, например имя пользователя.
  • password — Пароль EAP.

Так может выглядеть блок, настроенный для подключения к сети в режиме WPA-Enterprise с аутентификацией 802.1X PEAP, в котором требуется ввод данных учетной записи пользователя:

А это пример блока, настроенного для подключения к сети в режиме WPA-Enterprise с аутентификацией 802.1X EAP-TLS, в котором требуются серверный и клиентский сертификаты:

Привязка wpa_supplicant к сетевой карте

Для Gentoo Linux надо добавить 2 строки в /etc/conf.d/net .

Список поддерживаемых -D<driver> драйверов. Для современных чипов и версий ядра подойдет nl80211 . На старом железе может взлететь wext .

  • nl80211 — New driver.
  • wext — Linux wireless extensions (generic).
  • wired — wpa_supplicant wired Ethernet driver.
  • roboswitch — wpa_supplicant Broadcom switch driver.
  • bsd — BSD 802.11 support (Atheros, etc.).
  • ndis — Windows NDIS driver.

Сетевая карта wlan0 должна быть залинкована с lo0 .

Следует также добавить wpa_supplicant в автозапуск.

Пользователи Debian добавляют запись в файл /etc/network/interfaces .

Пользователи RedHat добавляют в /etc/sysconfig/wpa_supplicant

а в файл /etc/sysconfig/network-scripts/ifcfg-wlan0

Отладка

После того как wpa_supplicant успешно подключилась к точке доступа, в dmesg можно увидеть протокол установки соединения.

Если же вместо этого вы увидите ошибку:

то скорее всего, надо использовать драйвер wext вместо nl80211 . А с ошибкой:

наоборот, вместо wext надо подставить nl80211 .
В ситуации, когда вы не можете определить ошибку, запустите wpa_supllicant напрямую с ключем -dd .

Блог про Linux, Bash и другие информационные технологии

Установка необходимых пакетов

В первую очередь необходимо проверить, установлены ли пакет wpasupplicant и wireless-tools. Эти пакеты позволят вам подключаться к беспроводным сетям с WPA и WPA2 аутентификацией. В Debian и Ubuntu это делается командами

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

Кроме того, может понадобиться поставить микрокод (firmware) для устройства, установив соответствующий производителю пакет. Микрокод также называют прошивкой, но это не совсем правильно. Микрокод загружается в устройство перед началом работы с ним, а прошивка в устройстве находится постоянно. Для Intel это может быть, например, пакет firmware-iwlwifi из репозитория non-free. Микрокод часто лежит именно в этой ветке репозиториев. Либо это может быть пакет firmware-realtek, либо firmware-linux-free.

Проверка беспроводного контроллера

Перед тем, как пытаться подключаться, нужно убедиться, что система видит WiFi-контроллер и правильно его распознает, для просмотра списка устройств можно использовать команду lspci, в ее выводе должна быть строчка наподобие этой:

А в списке интерфейсов должен присутствовать соответствующий сетевой интерфейс, обычно это wlan0. Просмотреть список можно командой

Настройка WiFi из командной строки

Если устройство в системе найдено, можно переходить к настройке сети. Для начала просмотрим список доступных локальных сетей:

На экран будет выведен список доступных сетей в виде записей такого вида:

Создаем файл /etc/wpa_supplicant/wpa_supplicant.conf:

И затем даем команду

После этого, если адрес не получен автоматически, вызываем DHCP-клиент:

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

Если адрес указан верно, то вы сможете получить доступ к Интернету. Но обычно DHCP-клиент получает шлюз по умолчанию автоматически

Изменение конфигурационных файлов

Основными компонентами используемыми для установки беспроводного соединения являются:

  • nm-applet (для GNOME) или KNetworkManager (для KDE)
  • NetworkManager и/или YaST
  • wpa_supplicant
  • драйвер беспроводного адаптера (часто в сочетании с подсистемой ядра mac80211)

Наиболее распространённые проблемы

Фильтр MAC адреса

Убедитесь, что параметр Фильтр MAC адреса (MAC address filter) отключен в настройках точки доступа (WAP, AP) или добавьте MAC адрес вашей беспроводной карты в список разрешённых.

Аппаратный выключатель


Большинство встроенных в ноутбуки беспроводных карт могут быть включены/выключены при помощи аппаратного переключателя - небольшого тумблера на торце ноутбука или одной из функциональных клавиш на клавиатуре. Убедитесь что беспроводной адаптер включен физически. Если аппаратный переключатель выключен, то драйвер не сможет управлять сетевой картой.

Прошивка

Для многих беспроводных карт (таких как iwl3945, iwlagn, b43, rtl8192, . ) требуется так называемая прошивка (Firmware) - микропрограмма, которая загружается в устройство операционной системой. Многие прошивки существуют в пакетной базе дистрибутива (например iwl3945-ucode или ralink-firmware), в репозиториях Службы сборки, но некоторые не могут быть включены в openSUSE по причине лицензионных ограничений. Такие прошивки могут быть установлены вручную. Часть из них могут быть загружены с помощью скриптов, расположенных в /usr/sbin (таких как install_acx100_firmware и install_intersil_firmware). Прошивку для карт Broadcom можно найти в репозитории Packman

Чтобы определить, нужна ли прошивка выполните команду:

и проверьте вывод на предмет ошибок. Например такие записи говорят об отсутствии прошивки для карты Realtek:

Каналы 12,13 и 14 отключены (wrong regulatory domain)

Это исправлено после перехода к использованию CRDA (Central Regulatory Domain Agent) начиная с версии 11.3

В разных странах набор доступных WiFi каналов разный – это зависит от местного законодательства и регламентируется FCC. Начиная с openSUSE 11.0 большинство драйверов беспроводных карт взаимодействует с подсистемой ядра mac80211, которая отвечает за обработку регуляторных областей (regulatory domain) и активна начиная с ядра 2.6.27. Для совместимости с FCC беспроводной стек включает только минимальный набор доступных каналов (1-11 в BG-диапазоне). Например в Германии каналы 12 и 13 разрешены, но по умолчанию отключены. Для того, чтобы включить эти каналы, нужно изменить регуляторную область (доступные параметры US, EU и JP):

После этого нужно перезапустить все беспроводные модули (mac80211, cfg80211, iwl3945, etc.) или просто перезагрузиться, чтобы изменения применились.

NetworkManager

NetworkManager регистрирует конфигурацию, которую он передаёт wpa_supplicant в своём журнале, что позволяет проверить параметры которые wpa_supplicant будет использовать для подключения к Wi-Fi сети. Для дальнейшей отладки потребуются логи самого wpa_supplicant, с их помощью можно отследить низкоуровневые проблемы, такие как невозможность подключения или разрывы соединения.

Необходимые логи

Для диагностики проблем беспроводного соединения с помощью NetworkManager необходимы следующие логи после неудачной попытки соединения:

  • /var/log/NetworkManager
  • /var/log/wpa_supplicant.log (если возможно с отладочным выводом)
  • вывод команды dmesg

Включение отладочного логирования wpa_supplicant

На постоянной основе

Для включения максимального уровня логирования wpa_supplicant нужно отредактировать файл /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service. Достаточно изменить одну строчку:

и выполнить следующие команды:

Теперь wpa_supplicant будет выводить очень подробный лог в /var/log/wpa_supplicant.log

На короткое время

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

В лог wpa_supplicant (/var/log/wpa_supplicant.log) будет записана строка подтверждающая новый уровень логирования:

Этот способ специфичен для openSUSE, обработчик сигналов не реализован в оригинальной версии wpa_supplicant.

Как вручную установить соединение

Остановка NetworkManager и wpa_supplicant

Прежде чем установить соединение вручную, убедитесь, что экземпляры NetworkManager или wpa_supplicant остановлены.

Если ваша точка доступа не использует безопасное соединение или использует WEP, для установки соединения достаточно использовать iwconfig. Для всех других типов соединения (WPA-PSK, WPA-EAP, 802.1x с динамическим WEP) необходим wpa_supplicant.

Базовые команды

Прежде всего запустите iwconfig чтобы выяснить, какой сетевой интерфейс вы будете использовать.

В этом примере беспроводным интерфейсом является eth0.

Если название (ESSID) беспроводной сети неизвестно, нужно запустить сканирование.

Эта команда выведет все точки доступа в зоне действия. Если ваша точка доступа не отобразилась в списке, то, возможно, в её настройках отключена передача ESSID. Повторите сканирование с указанием EESID.

iwconfig

Небезопасное соединение

Если используется драйвер, зависимый от mac80211 (например iwl3934, iwl4965, ath5k, b43, rtl8187, rt2x00, . ), прежде чем устанавливать соединение необходимо активировать интерфейс:

Установить небезопасное беспроводное сетевое соединение с помощью iwconfig очень просто.

Подождите несколько секунд и запустите iwconfig ещё раз - вы увидите, что соединение установлено.

  • Access Point: XX:XX:XX:XX:XX:XX - содержит MAC адрес точки доступа
  • Link Quality=58/100 - качество сигнала, должен быть отличен от 0
  • Signal level=-68 dBm - уровень сигнала, должен быть отличен от 0
  • Noise level=-90 dBm - уровень помех, должен быть отличен от 0

Но перед тем как это соединение можно использовать, нужно получить IP адрес (описано ниже).

Защищённое соединение WEP

В настоящее время технология WEP (Wired Equivalent Privacy) является устаревшей и не рекомендуется к использованию, так как ее взлом может быть осуществлен всего за несколько минут.

В этом случае команда подключения будет выглядеть так:

Дальнейшие шаги ничем не отличаются от аналогичных для незащищённого соединения.

wpa_supplicant

Установка соединения с помощью wpa_supplicant немного сложнее, чем подключение к небезопасной беспроводной сети. Сначала нужно создать файл конфигурации, который должен содержать все необходимые данные - /etc/wpa_supplicant/wpa_supplicant.conf. Конфигурационный файл изначально содержит немного базовой информации, которая одинакова для всех сетей, к которым вы подключаетесь.

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

Open System WEP

WPA-PSK/WPA2-PSK (с общими ключами)

Примечание: также известен как WPA-Personal Для безопасной сети WPA-PSK, просто скопируйте нижеприведённый код и измените параметры ssid,psk на свои и в параметре proto впишите версию WPA или WPA2 .

WPA-EAP

Запуск соединения

Для того, чтобы запустить настроенное соединение используя wpa_supplicant, выполните следующую команду:

-Dwext указывает wpa_supplicant использовать wext-драйвер соединения с низкоуровневым драйвером, большинство современных драйверов должны хорошо работать с этой опцией (по крайней мере драйверы на основе mac80211).
-ieth0 описывает интерфейс, который должно использовать беспроводное соединение
-c/etc/your_config_file сообщает wpa_supplicant какой нужно использовать конфигурационный файл
-dddt включает максимальный отладочный вывод

Если всё сделано правильно, спустя несколько секунд wpa_supplicant покажет что-то подобно этому:

то беспроводное соединение установлено, и это можно проверить с помощью iwconfig в другой консоли как описывалось ранее.

wpa_gui

Чтобы упростить жизнь, для wpa_supplicant создано два интерфейса wpa_cli и wpa_gui. Wpa_cli является частью пакета wpa_supplicant, а wpa_gui нужно устанавливать отдельно.

Для того чтобы wpa_gui имел возможность взаимодействовать с wpa_supplicant, нужно отредактировать файл /etc/wpa_supplicant/wpa_supplicant.conf любым текстовым редактором:

Просто добавляем строчку "update_config=1" в конец файла и сохраняем его. Подробнее о конфигурации wpa_supplicant можно прочитать в /usr/share/doc/packages/wpa_supplicant/wpa_supplicant.conf

Теперь запускаем wpa_supplicant:

Откроется диалог wpa_gui, нажимаем Сканировать и получаем окно со списком всех доступных точек доступа. Двойной щелчок на любой из них откроет другой диалог, который позволит ввести пароль. Нажатие кнопки Добавить добавляет соединение в wpa_gui и выполняет попытку его запустить. При этом wpa_gui также записывает рабочие параметры в wpa_supplicant.conf, так что если интересно, то можно посмотреть эти параметры:

Это работает для незащищённых, WEP и защищённых WPA сетей.

Примечание: wpa_gui не будет работать с экземпляром wpa_supplicant, запущенным wpa_supplicant, поскольку он использует для управление интерфейс D-Bus. wpa_gui прекрасно работает с экземпляром wpa_supplicant запущенным ifup, не требуется даже файл конфигурации.

Получение IP адреса

Если в сети для получения ip адреса используется dhcp, то сначала необходимо проверить наличие запущенных экземпляров dhcpcd или dhclient и остановить их, если таковые имеются.

Теперь можно использовать либо dhcpcd wlan0 или dhclient wlan0 для получения IP-адреса.

Если dhcpcd вернёт управление в командную строку, значит интерфейсу успешно был назначен IP адрес. Это можно проверить используя команду ip.

Получен адрес 192.168.0.173.

Ручная установка IP адреса

Просто установите нужный IP адрес используя iproute2

Проверка соединения

Лучший способ определить, что соединение запущено и работает - это выполнить ping до какого-нибудь гарантированно работающего сайта в Интернет.

Если ответ выглядит примерно как в примере выше — значит сетевое соединение работает! Если ответ не получен, нужно проверить доступна хотя бы точка доступа. В нашем примере это 192.168.0.1:

Если точка доступа доступна, а адреса в Интернете нет, то причиной этого иногда могут быть проблемы с получением адресов - например активны две сетевые карты (проводная и беспроводная), и для каждой из них запущен dhcpcd.

Попробуйте отключить оба интерфейса, потом включить только один беспроводной и снова проверьте пингом работу сети.

Кроме того стоит проверить настройки точки доступа и попробовать выполнить ping в Интернет из интерфейса AP.

Захват пакетов в режиме монитора

Необходимое ПО

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

Включение режима монитора

Если есть вторая беспроводная карта, которая может быть использована для мониторинга беспроводного трафика, следующая последовательность команд запустит захват трафика:

Откроется wireshark и станет захватывать и выводить все пакеты, полученные wlan0 на канале X

Кроме того наблюдать за пакетами можно при помощи программы tcpdump.

Q: Соединение обрывается каждые несколько минут
A: Некоторые точки доступа сбрасывают соединение, если клиент неактивен в течении определённого промежутка времени. Иногда это можно настроить через интерфейс управления точки доступа.

Основные log файлы Ubuntu

Лог загрузки

Начнем с самого начала. В момент загрузки системы записывается вся основная информация, имеющая к ней отношение. Если у вас будут какие-то ошибки во время старта сервера, вы сможете их увидеть в этом логе. Посмотреть лог загрузки Ubuntu можно следующим образом.


У вас получится очень длинный вывод всего того, что происходило с системой на старте. Если ищите что-то конкретное, то можете сделать фильтрацию вывода с помощью grep. Допустим, вам надо узнать информацию только о диске.


Вы увидите лог загрузки системы ubuntu, содержащий информацию только о диске sda. Аналогичным образом можно фильтровать вывод по другим темам. Например, посмотреть все ошибки, которые были во время загрузки.

И так далее. Информация, которую выводит команда dmesg, хранится в log файле /var/log/dmesg .

Логи авторизации, в том числе ssh

Для того, чтобы узнать, кто и когда проходил авторизацию на сервере ubuntu, можно воспользоваться логами из файла /var/log/auth.log . Авторизация по ssh там будет выглядеть следующим образом.


Не забудьте перезапустить службу sshd для принятия изменений:

После этого логирование подключений по ssh будет более подробное.

Лог локального входа в ubuntu тоже хранится в файле auth.log . Информация о подключении через консоль выглядит следующим образом.


Устройство /dev/tty1 говорит о том, что вход локальный.

Вы можете быстро посмотреть информацию о последних входах в систему с помощью команды last. Эта информация хранится в бинарном логе /var/log/lastlog .


Примерно то же самое можно увидеть с помощью utmpdump.

Логи ошибок в Ubuntu

Рассмотрим теперь вопрос с расположением лога ошибок в Ubuntu. Как такового отдельного error log в традиционных linux системах нет. И Убунта тут не исключение. Ошибки придется искать по системным и программным логам выборкой ключевых слов. Обычно используют следующие фразы:

  • error или err
  • critical или crit
  • debug
  • warn


А теперь проверим ошибки в системном логе.


Видим некоторые ошибки в службе systemd-resolved.

Cron logs

Часто хочется проверить лог запуска периодических заданий cron. В Ubuntu, как мне кажется, сделали не удобно. По умолчанию, cron logs не выделены в отдельный файл. Искать их стоит в общем системном логе syslog. Например, в Centos существует отдельный лог-файл /var/log/cron, где собрана вся информация о запущенных заданиях. Предлагаю сделать так же в Ubuntu.

Для этого открываем конфигурационный файл /etc/rsyslog.d/50-default.conf и добавляем туда следующую информацию.

Я добавил в нее cron.none, чтобы логи cron не писались больше в системный лог syslog. После этого перезапустите службы rsyslog и cron и проверяйте изменения.


Теперь у нас все логи Cron в Ubuntu будут в отдельном файле.

Лог действий пользователя

Мне часто задают вопросы, как посмотреть лог действий пользователя в системе или как узнать, какие программы он запускал. По умолчанию, такие действия не логируются в ubuntu. Для этого нужно устанавливать какое-то дополнительное программное обеспечение. Я даже не знаю, кто умеет это делать. Обычно если надо фиксировать действия пользователя, включается лог работы sudo.

Для того, чтобы включить логирование действий пользователя через sudo, редактируем файл /etc/sudoers . Добавляем туда строку.

Теперь выполните какую-нибудь команду через sudo.

Выполненная команда пользователя сохранена в логе sudo.log. Теперь никто не сможет выполнить незаметно административные действия на сервере. Конечно, человек с полными правами сможет изменить любой лог файл, удалив свои действия при желании. Для этого важные логи нужно отправлять куда-то в другое место, но это уже тема отдельной статьи.

На сегодня по логам в Ubuntu у меня все. Желаю вам логов без ошибок и вечного аптайма (шутка, надо ставить обновы и перезагружаться).

Читайте также: