iwd (Português) - ArchWiki

# iwd (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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)