iwd (Português) - ArchWiki

Jump to content

# iwd (Português)

From ArchWiki

Artigos relacionados

- Configuração de rede
- Configuração de rede sem fio
- WPA supplicant

Status de tradução: Esse artigo é uma tradução de iwd. Data da última tradução: 2021-02-13. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglê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.

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

## Instalação

Instale o pacote iwd.

## Uso

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

Inicie/habilite `iwd.service` para que possa ser controlado usando o comando `iwctl`.

### iwctl

Para obter um prompt interativo, faça:

    $ iwctl

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

Dica:

- No prompt `iwctl` você pode concluir automaticamente os comandos e nomes de dispositivos pressionando `Tab`.
- Para sair do prompt interativo, envie EOF pressionando `Ctrl+d`.
- Você pode usar todos os comandos como argumentos de linha de comando sem inserir um prompt interativo. Por exemplo: `iwctl device wlp3s0 show`.

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 procurar redes:

    [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

Dica: A interface do usuário suporta preenchimento automático, ao digitar `station` e `Tab` `Tab`, os dispositivos disponíveis são mostrados, digite a primeiras letras do dispositivo e `Tab` para completar. Do mesmo modo, digite `connect` e `Tab` `Tab` para ver a lista de redes disponíveis. Então, digite as primeiras letras da rede desejada seguida de `Tab` para completar o comando.

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

Nota:

- O `iwd` armazena automaticamente as senhas da rede no diretório `/var/lib/iwd` e os usa para se conectar automaticamente no futuro. Veja #Configuração de rede.
- Para conectar-se a uma rede com espaços no SSID, o nome da rede deve estar entre aspas duplas.
- O iwd suporta apenas senhas PSK de 8 a 63 caracteres codificados em ASCII. A seguinte mensagem de erro será fornecida se os requisitos não forem atendidos: `PMK generation failed. Ensure Crypto Engine is properly configured`.

#### 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 `help` saída para ver como fornecer as opções corretas para o comando `wsc`.

#### 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

## Configuração de rede

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

### 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":

    /var/lib/iwd/spaceship.psk

    [Security]
    PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295

a `PreSharedKey` pode ser calculada do SSID e a senha do WiFi usando o wpa_passphrase (do wpa_supplicant) ou wpa-pskAUR:

    $ wpa_passphrase spaceship test1234

    network={
            ssid="spaceship"
            #psk="test1234"
            psk=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295
    }

Nota:

- Se o SSID contém espaços ou outros caracteres especiais, ele deve estar entre aspas para ser lido corretamente pelo wpa_passphrase executado pelo shell.
- O SSID da rede é usado como nome do arquivo quando somente contém caracteres alfanuméricos ou `- _`. Se tem quaisquer outros caracteres, o nome vai ser um `=`-caractere seguido por uma versão do SSID codificada em hexadecimal.

### WPA Empresarial

#### EAP-PWD

Para conectar-se a um ponto de acesso corporativo protegido por EAP-PWD, é necessário criar um arquivo chamado: `essid.8021x` na pasta `/var/lib/iwd` com o seguinte conteúdo:

    /var/lib/iwd/essid.8021x

    [Security]
    EAP-Method=PWD
    EAP-Identity=seu_e-mail_empresarial
    EAP-Password=sua_senha

    [Settings]
    AutoConnect=True

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 `essid.8021x` na pasta 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. Para MSCHAPv2 funcionar você também precisa instalar ppp. Veja MS-CHAPv2 para mais informação. Este é um arquivo de configuração de exemplo que usa autenticação de senha MSCHAPv2:

    /var/lib/iwd/essid.8021x

    [Security]
    EAP-Method=PEAP
    EAP-Identity=anonymous@realm.edu
    EAP-PEAP-CACert=/path/to/root.crt
    EAP-PEAP-ServerDomainMask=radius.realm.edu
    EAP-PEAP-Phase2-Method=MSCHAPV2
    EAP-PEAP-Phase2-Identity=johndoe@realm.edu
    EAP-PEAP-Phase2-Password=hunter2

    [Settings]
    AutoConnect=true

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

#### TTLS-PAP

Como o EAP-PWD, você também precisa criar um `essid.8021x` na pasta 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 Iwd | Variável de Script CAT
--- | ---
nome do arquivo | um de `Config.ssids`
`EAP-Method` | `Config.eap_outer`
`EAP-Identity` | `Config.anonymous_identity`
`EAP-PEAP-CACert` | `Config.CA`
`EAP-PEAP-ServerDomainMask` | um de `Config.servers`
`EAP-PEAP-Phase2-Method` | `Config.eap_inner`
`EAP-PEAP-Phase2-Identity` | username@`Config.user_realm`

Nota:

- `EAP-Identity` pode não ser necessário pelo seu provedor Eduroam; nesse caso, você pode usar `anonymous` nesta área.
- Se sua `EAP-PEAP-ServerDomainMask` começa com `DNS:`, somente use a parte depois do `DNS:`.

### Outros casos

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

## Configuração opcional

O arquivo `/etc/iwd/main.conf` pode ser usado para a configuração principal. Veja iwd.config(5).

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

Criar/editar o arquivo `/var/lib/iwd/rede.tipo`. Adicione a seguinte seção a ele:

    /var/lib/iwd/spaceship.psk (por exemplo)

    [Settings]
    AutoConnect=false

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

Por padrão, quando `iwd` estiver desconectado, ele verifica periodicamente as redes disponíveis. Para desativar a verificação periódica (para sempre verificar manualmente), criar/editar o arquivo `/etc/iwd/main.conf` 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 `/etc/iwd/main.conf` e adicione a seguinte seção a ele:

    /etc/iwd/main.conf

    [General]
    EnableNetworkConfiguration=true

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

    /etc/iwd/main.conf

    [Network]
    RoutePriorityOffset=300

#### 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:

    /etc/iwd/main.conf

    [Network]
    EnableIPv6=true

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 `/var/lib/iwd/rede.tipo`. Por exemplo:

    /var/lib/iwd/spaceship.psk

    [IPv4]
    Address=192.168.1.10
    Netmask=255.255.255.0
    Gateway=192.168.1.1
    Broadcast=192.168.1.255
    DNS=192.168.1.1

#### Selecione o gerenciador de DNS

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

Adicione a seguinte seção ao `/etc/iwd/main.conf` para `systemd-resolved`:

    /etc/iwd/main.conf

    [Network]
    NameResolvingService=systemd

Para `resolvconf`:

    /etc/iwd/main.conf

    [Network]
    NameResolvingService=resolvconf

### Negar que o usuário do console (local) modifique as configurações

Por padrão o `iwd` A interface D-Bus permite qualquer usuário do console ao qual se conectar `iwd` daemon e modifique as configurações, mesmo que esse usuário não seja um usuário root.

Se você não quiser permitir que o usuário do console modifique as configurações, mas permita a leitura das informações de status, crie um arquivo de configuração do D-Bus da seguinte maneira.

    /etc/dbus-1/system.d/iwd-strict.conf

    <!-- prevent local users from changing iwd settings, but allow
         reading status information. overrides some part of
         /usr/share/dbus-1/system.d/iwd-dbus.conf. -->

    <!-- This configuration file specifies the required security policies
         for iNet Wireless Daemon to work. -->

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

      <policy at_console="true">
        <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>

Dica: Remova linhas <allow> acima para negar a leitura das informações de status também.

## 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:

    /etc/systemd/system/iwd.service.d/tls-debug.conf

    [Service]
    Environment=IWD_TLS_DEBUG=TRUE

Verifique os logs do iwd posteriormente via `journalctl -u iwd.service`

### 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. Vejo Random number generation for suggestions to increase the entropy pool.

### O dispositivo sem fio não é renomeado pelo udev

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

    /usr/lib/systemd/network/80-iwd.link

    [Match]
    Type=wlan

    [Link]
    NamePolicy=keep kernel

Como resultado, o nome do link sem fio `wlan#` é mantido após a inicialização. Isto resolve uma condição de corrida entre iwd e udev no renomeamento 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

## Veja também

- Getting Started with iwd
- Network Configuration Settings
- Mais exemplos para WPA empresarial
- O tópico do IWD nos fóruns do Arch Linux
- 2017 Update on new WiFi daemon for Linux by Marcel Holtmann - YouTube
- The New Wi-Fi Experience for Linux - Marcel Holtmann, Intel - YouTube

Categories:

- Wireless networking (Português)
- Network configuration (Português)