iwd (Português)

O iwd (iNet wireless daemon) é um daemon sem fio para Linux escrito pela Intel. O objetivo principal do projeto é otimizar a utilização de recursos, não dependendo de nenhuma biblioteca externa e, em vez disso, utilizando os recursos fornecidos pelo Kernel Linux na máxima extensão possível.

Status de tradução: Esse artigo é uma tradução de iwd. Data da última tradução: 2022-08-09. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

O iwd pode funcionar no modo autônomo ou em combinação com gerentes de rede abrangentes, como ConnMan, systemd-networkd e NetworkManager.

Nota: Não siga as instruções desta página quando estiver usando o iwd por meio de um gerenciador de rede, a menos que seja explicitamente orientado do contrário no artigo daquele gerenciador de rede.

Instalação

Instale o pacote iwd.

Uso

O pacote iwd fornece o programa cliente iwctl, o daemon e a ferramenta de monitoramento Wi-Fi .

fornece um front-end GUI para o iwd e um ícone (de bandeja) indicador.

Inicie/habilite para que possa ser controlado por meio do comando iwctl ou do .

Nota: A partir da versão 1.23, apenas o root e os membros do grupo de usuários netdev ou wheel podem interagir com iwd. Para usar iwctl ou iwgtk, você precisa adicionar seu usuário a um desses grupos.

iwctl

Para obter um prompt interativo, faça:

$ iwctl

O prompt interativo é exibido com um prefixo de [iwd]#.

Para listar todos os comandos disponíveis:

[iwd]# help

Conectar a uma rede

Primeiro, se você não souber o nome do seu dispositivo sem fio, liste todos os dispositivos Wi-Fi:

[iwd]# device list

Em seguida, para iniciar a procura por redes (observe que esse comando vai emitir nenhuma saída):

[iwd]# station dispositivo scan

Você pode listar todas as redes disponíveis:

[iwd]# station dispositivo get-networks

Por fim, para conectar-se a uma rede:

[iwd]# station dispositivo connect SSID

Se uma senha for necessária, você será solicitado a digitá-la. Como alternativa, você pode fornece-la como argumento da linha de comando:

$ iwctl --passphrase senha station dispositivo connect SSID

Conecte-se a uma rede usando WPS/WSC

Se sua rede estiver configurada de forma que você possa conectar-se a ela pressionando um botão (Wikipedia:Wi-Fi Protected Setup), verifique primeiro se o seu dispositivo de rede também é capaz de usar este procedimento de configuração.

[iwd]# wsc list

Então, desde que seu dispositivo apareça na lista acima,

[iwd]# wsc dispositivo push-button

e pressione o botão no seu roteador. O procedimento também funciona se o botão foi pressionado antes, menos de 2 minutos antes.

Se sua rede precisar validar um número PIN para conectar-se dessa maneira, verifique o comando saída para ver como fornecer as opções corretas para o comando .

Desconectar de uma rede

Para desconectar-se de uma rede:

[iwd]# station dispositivo disconnect

Mostrar informações do dispositivo e da conexão

Para exibir os detalhes de um dispositivo Wi-Fi, como endereço MAC:

[iwd]# device dispositivo show

Para exibir o estado da conexão, incluindo a rede conectada de um dispositivo Wi-Fi:

[iwd]# station dispositivo show

Gerenciar redes conhecidas

Para listar as redes às quais você se conectou anteriormente:

[iwd]# known-networks list

Para esquecer uma rede conhecida:

[iwd]# known-networks SSID forget

iwgtk

Alternativamente, fornece um front-end GUI por meio do qual o iwd pode ser controlado.

A execução de sem nenhum argumento inicia a janela do aplicativo, que pode ser usada para ativar/desativar seus adaptadores e dispositivos, alterar seus modos de operação, visualizar redes disponíveis, conectar-se a redes disponíveis e gerenciar redes conhecidas.

Ícone indicador

Para iniciar o daemon de ícone indicador (na bandeja do sistema) do iwgtk, execute:

$ iwgtk -i

Se o ícone indicador não aparecer, sua bandeja do sistema provavelmente não tem suporte para a API StatusNotifierItem, caso em que você precisa executar uma camada de compatibilidade como .

As seguintes bandejas do sistema têm suporte a StatusNotifierItem e, portanto, funcionam por padrão:

  • KDE Plasma
  • swaybar
  • xfce4-panel

As bandejas a seguir têm suporte apenas a XEmbed e, portanto, exigem :

  • AwesomeWM
  • i3bar

Inicialização automática

O caso de uso mais comum para o iwgtk é iniciar o daemon do indicador toda vez que você efetuar login em sua área de trabalho. Se o seu ambiente de desktop for compatível com o padrão XDG Autostart, isso deve acontecer automaticamente devido ao arquivo que é colocado em pelo pacote AUR.

Alternativamente, um arquivo unit do systemd para iniciar o daemon do indicador é fornecido pelo pacote do AUR. Se o seu ambiente de desktop tiver suporte à unit graphical-session.target do systemd, então o iwgtk pode ser iniciado automaticamente via systemd habilitando a unit de usuário iwgtk.service.

Configuração de rede

Por padrão, iwd guarda a configuração de rede no diretório . O arquivo de configuração é nomeado como onde rede é o SSID da rede e tipo é o tipo da rede, dentre .open, .psk ou .8021x. O arquivo é usado para guardar o criptografado e opcionalmente a e também pode ser criada pelo usuário sem invocar o iwctl. O arquivo também pode ser usado para outras configurações referentes àquele SSID. Para mais configurações, veja .

WPA-PSK

Um exemplo pequeno de arquivo para se conectar a uma rede protegida por WPA-PSK ou WPA2-PSK com o SSID "spaceship" e senha "test1234":

Para calcular a chave pré-compartilhada da senha, um destes dois métodos pode ser usado:

  • Inserir a senha em texto simples no arquivo de configuração:
/var/lib/iwd/spaceship.psk
[Security]
Passphrase=test1234
A chave pré-compartilhada será anexada ao arquivo na primeira conexão:
/var/lib/iwd/spaceship.psk
[Security]
Passphrase=test1234
PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295

EAP-PWD

Para conectar-se a um ponto de acesso corporativo protegido por EAP-PWD, é necessário criar um arquivo chamado: no diretório com o seguinte conteúdo:

Se você não deseja se conectar automaticamente ao ponto de acesso, defina a opção como False e conecte manualmente ao ponto de acesso via iwctl. O mesmo se aplica à senha, se você não quiser armazená-la em texto sem formatação, deixe a opção fora do arquivo e apenas conecte-se ao AP da empresa.

EAP-PEAP

Como o EAP-PWD, você também precisa criar um arquivo no diretório. Antes de prosseguir com a gravação do arquivo de configuração, este também é um bom momento para descobrir qual certificado CA sua organização usa. Este é um arquivo de configuração de exemplo que usa autenticação de senha MSCHAPv2:

As senhas MsCHAPv2 também podem ser armazenadas como um hash criptografado. O hash md4 correto pode ser calculado com:

$ iconv -t utf16le | openssl md4

Insira um fim de arquivo (EOF) após sua senha pressionando , não pressione . O hash resultante precisa ser armazenado dentro da chave .

Dica: Se você planeja usar eduroam, veja também #eduroam.

TTLS-PAP

Como o EAP-PWD, você também precisa criar um arquivo no diretório. Antes de prosseguir com a gravação do arquivo de configuração, este também é um bom momento para descobrir qual certificado CA sua organização usa. Este é um exemplo de arquivo de configuração que usa autenticação de senha PAP:

/var/lib/iwd/''essid''.8021x
[Security]
EAP-Method=TTLS
EAP-Identity=anonymous@uni-test.de
EAP-TTLS-CACert=cert.pem
EAP-TTLS-ServerDomainMask=*.uni-test.de
EAP-TTLS-Phase2-Method=Tunneled-PAP
EAP-TTLS-Phase2-Identity=user
EAP-TTLS-Phase2-Password=password

[Settings]
AutoConnect=true

eduroam

eduroam oferece uma configuration assistant tool (CAT), que infelizmente não suporta iwd. No entanto, o instalador, que você pode baixar clicando no botão de download e selecionando sua universidade, é apenas um script Python. É fácil extrair as opções de configuração necessárias, incluindo o certificado e a máscara de domínio do servidor.

A tabela a seguir contém um mapeamento das opções de configuração do iwd para variáveis de script de instalação do CAT eduroam.

Opção de configuração de IwdVariável de Script CAT
nome do arquivoum de
um de Config.servers
EAP-PEAP-Phase2-Identityusername@

Outros casos

Mais exemplos de testes podem ser encontrados nos casos de teste do repositório upstream.

Configuração opcional

O arquivo pode ser usado para a configuração principal. Veja .

Desativar a conexão automática para uma rede específica

Criar/editar o arquivo . Adicione a seguinte seção a ele:

Desativar verificação periódica para redes disponíveis

Por padrão, quando estiver desconectado, ele verifica periodicamente as redes disponíveis. Para desativar a verificação periódica (para sempre verificar manualmente), criar/editar o arquivo e adicione a seguinte seção a ele:

/etc/iwd/main.conf
[Scan]
DisablePeriodicScan=true

Ativar configuração de rede embutida

Desde a versão 0.19, o iwd pode atribuir endereços IP e configurar rotas usando um cliente DHCP embutido ou com configuração estática. É uma boa alternativa para clientes DHCP independentes.

Para ativar o recurso de configuração de rede do iwd, crie/edite o arquivo e adicione a seguinte seção a ele:

Também é possível definir métricas de rota com :

IPv6 support

Desde a versão 1.10, iwd suporta IPv6, mas isso é desabilitado por padrão. Para habilitar, adicione a seguinte linha no arquivo de configuração:

Esta configuração é necessária caso queira usar o DHCPv6 ou IPv6 estático. Pode também ser configurado para redes em específico.

Definindo o endereço IP estático na configuração de rede

Adicione a seguinte seção ao arquivo . Por exemplo:

Selecione o gerenciador de DNS

No momento, o iwd suporta dois gerenciadores de DNS -systemd-resolved e resolvconf.

Adicione a seguinte seção ao para :

Para resolvconf:

Permitir que qualquer usuário leia informações de status

Se você quiser permitir que qualquer usuário leia as informações de status, mas sem poder modificar, você pode criar o seguinte arquivo de configuração do D-Bus:

/etc/dbus-1/system.d/iwd-allow-read.conf
<!-- Allow any user to read iwd status information. Overrides some part
     of /usr/share/dbus-1/system.d/iwd-dbus.conf. -->

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <policy context="default">
    <deny send_destination="net.connman.iwd"/>
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" />
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="Get" />
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.ObjectManager" send_member="GetManagedObjects" />
    <allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="RegisterSignalLevelAgent" />
    <allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="UnregisterSignalLevelAgent" />
  </policy>

</busconfig>

Solução de problemas

Depuração detalhada do TLS

Isso pode ser útil se você tiver problemas para configurar o MSCHAPv2 ou TTLS. Você pode definir o seguinte variável de ambiente via trecho drop-in:

Verifique os logs do iwd posteriormente executando como root.

Reiniciando iwd.service após a inicialização do sistema

Em algumas máquinas, é relatado que o precisa ser reiniciado para funcionar após a inicialização. Veja e o tópico 251432. Isso provavelmente ocorre porque o kernel e os serviços do Linux iniciam muito cedo e o iwd é iniciado antes que a placa de rede sem fio seja ligada. Como solução alternativa, estenda a unit para adicionar um atraso:

[Service]
ExecStartPre=/usr/bin/sleep 2

Então recarregue a configuração do gerenciador do systemd.

Problemas de conexão após a reinicialização

Um pool de baixa entropia pode causar problemas de conexão, particularmente perceptíveis após a reinicialização. Veja Random number generation para sugestões para incrementar o pool de entropia.

O dispositivo sem fio não é renomeado pelo udev

Desde a versão 1.0, iwd desabilita a renomeação do dispositivo sem fio. Ele instala o seguinte arquivo de configuração de rede do systemd que previne udev de renomear a interface para :

Como resultado, o nome do link sem fio é mantido após a inicialização. Isto resolve uma condição de corrida entre iwd e udev na renomeação da interface como explicado em iwd udev interface renaming.

Se isso resultar em problemas, tente mascará-lo com:

# ln -s /dev/null /etc/systemd/network/80-iwd.link

Sem DHCP no modo AP

Os clientes podem não receber um endereço IP via DHCP ao conectar-se a iwd no modo de ponto de acesso (AP). Portanto, é necessário habilitar a configuração de rede por iwd nas interfaces gerenciadas:

/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=True

O arquivo mencionado deve ser criado se ainda não existir.

Wifi fica desconectando por causa de travamentos no iwd

Alguns usuários experimentam desconexões com WiFi, reconectando-se continuamente, mas se estabilizando eventualmente e conseguindo se conectar.

Os usuários relatam falhas () de em seu journal.

O principal problema é ter vários serviços conflitantes para gerenciar suas conexões de rede. Para corrigir esse problema, verifique eles foram habilitados ao mesmo tempo por você.

Erro ao carregar a chave privada do cliente

Para carregar arquivos de chave, o iwd requer o módulo de kernel . Durante a inicialização, ele é carregado por systemd-modules-load.service(8) usando , e esse não será o caso se o iwd acabou de ser instalado.

Se mensagens como aparecerem no journal ao tentar se conectar a redes WPA Empresariais, carregue manualmente o módulo:

# modprobe pkcs8_key_parser

Veja também

gollark: Just hack the "bot" by transducing the binary tree over PNG Ethernet.
gollark: There's also a masterhacker discord server, I'm amazed how many people join it seriously asking for advice.
gollark: r/masterhacker
gollark: There's a great subreddit for that.
gollark: *pokes the abstract concept of poking*
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.