Introdução ao WPA Supplicant
"WPA Supplicant" é um cliente
"Wi-Fi Protected Access" ("WPA") e suplicante "IEEE 802.1X". Ele
implementa a negociação de chave "WPA" com um Autenticador "WPA" e
a autenticação "Extensible Authentication Protocol" ("EAP") com um
Servidor de Autenticação. Além disso, ele controla o deslocamento e
a autenticação/associação "IEEE 802.11" do controlador de "LAN" sem
fio. Isso é útil para conectar-se a um ponto de acesso sem fio
protegido por senha.
Esse pacote é conhecido por construir e funcionar adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
-
Transferência (HTTP): https://w1.fi/releases/wpa_supplicant-2.10.tar.gz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
d26797fcb002898d4ee989179346e1cc
-
Tamanho da transferência: 3,4 MB
-
Espaço em disco estimado exigido: 37 MB
-
Tempo de construção estimado: 0,5 UPC (com a GUI opcional)
Dependências do "WPA Supplicant"
Recomendadas
desktop-file-utils-0.26 (para
executar update-desktop-database) e
libnl-3.7.0
Opcionais
dbus-1.14.6, libxml2-2.10.3
e Qt-5.15.8
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/wpa_supplicant
Configuração do Núcleo
Habilite as seguintes opções na configuração do núcleo, bem como
controladores específicos de dispositivos para o teu hardware e
recompile o núcleo, se necessário:
[*] Networking support ---> [CONFIG_NET]
[*] Wireless ---> [CONFIG_WIRELESS]
<*/M> cfg80211 - wireless configuration API [CONFIG_CFG80211]
[*] cfg80211 wireless extensions compatibility [CONFIG_CFG80211_WEXT]
<*/M> Generic IEEE 802.11 Networking Stack (mac80211) [CONFIG_MAC80211]
Device Drivers --->
[*] Network device support ---> [CONFIG_NETDEVICES]
[*] Wireless LAN ---> [CONFIG_WLAN]
Abra o submenu e selecione as opções que suportam o teu hardware:
"lspci" oriundo de
"pciutils-3.9.0" pode ser usado para visualizar
a configuração do teu hardware.
Instalação do WPA Supplicant
Primeiro você precisará criar um arquivo de configuração inicial
para o processo de construção. Você pode ler "wpa_supplicant/README
" e "wpa_supplicant/defconfig
" para a explicação das
opções a seguir, bem como outras opções que podem ser usadas. Crie
um arquivo de configuração de construção que deveria funcionar para
configurações "WiFi" padrão executando o seguinte comando:
cat > wpa_supplicant/.config << "EOF"
CONFIG_BACKEND=file
CONFIG_CTRL_IFACE=y
CONFIG_DEBUG_FILE=y
CONFIG_DEBUG_SYSLOG=y
CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
CONFIG_DRIVER_NL80211=y
CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_WIRED=y
CONFIG_EAP_GTC=y
CONFIG_EAP_LEAP=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_OTP=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TLS=y
CONFIG_EAP_TTLS=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_IPV6=y
CONFIG_LIBNL32=y
CONFIG_PEERKEY=y
CONFIG_PKCS12=y
CONFIG_READLINE=y
CONFIG_SMARTCARD=y
CONFIG_WPS=y
CFLAGS += -I/usr/include/libnl3
EOF
Se você deseja usar o "WPA
Supplicant" com o "NetworkManager-1.42.0", [então]
certifique-se de ter instalado o "dbus-1.14.6" e o
"libxml2-2.10.3" então adicione as seguintes
opções ao arquivo de configuração da construção do "WPA Supplicant" executando o seguinte comando:
cat >> wpa_supplicant/.config << "EOF"
CONFIG_CTRL_IFACE_DBUS=y
CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y
EOF
cd wpa_supplicant &&
make BINDIR=/usr/sbin LIBDIR=/usr/lib
Se você tiver instalado o "Qt-5.15.8" e desejar construir o aplicativo
"GUI" do "WPA Supplicant", [então]
execute os seguintes comandos:
Nota
O seguinte nome de diretório é rotulado como "qt4", mas é
compatível com o "Qt-5.15.8".
pushd wpa_gui-qt4 &&
qmake wpa_gui.pro &&
make &&
popd
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
install -v -m755 wpa_{cli,passphrase,supplicant} /usr/sbin/ &&
install -v -m644 doc/docbook/wpa_supplicant.conf.5 /usr/share/man/man5/ &&
install -v -m644 doc/docbook/wpa_{cli,passphrase,supplicant}.8 /usr/share/man/man8/
Se você tiver construído o "WPA
Supplicant" com suporte ao "D-Bus", [então] você precisará instalar os
arquivos de configuração do "D-Bus". Instale-os executando os seguintes
comandos como o(a) usuário(a) "root
":
install -v -m644 dbus/fi.w1.wpa_supplicant1.service \
/usr/share/dbus-1/system-services/ &&
install -v -d -m755 /etc/dbus-1/system.d &&
install -v -m644 dbus/dbus-wpa_supplicant.conf \
/etc/dbus-1/system.d/wpa_supplicant.conf
Se você tiver construído o aplicativo "GUI" do "WPA Supplicant", [então] instale-o executando
os seguintes comandos como o(a) usuário(a) "root
":
install -v -m755 wpa_gui-qt4/wpa_gui /usr/bin/ &&
install -v -m644 doc/docbook/wpa_gui.8 /usr/share/man/man8/ &&
install -v -m644 wpa_gui-qt4/wpa_gui.desktop /usr/share/applications/ &&
install -v -m644 wpa_gui-qt4/icons/wpa_gui.svg /usr/share/pixmaps/
Nota
Você precisará reiniciar o processo de segundo plano
"D-Bus" do sistema antes que
possa usar a interface "WPA
Supplicant" do "D-Bus".
Nota
Esse pacote instala arquivos de área de trabalho na hierarquia
/usr/share/applications
e você pode
melhorar o desempenho do sistema e o uso de memória atualizando
/usr/share/applications/mimeinfo.cache
. Para
realizar a atualização, você precisa ter o desktop-file-utils-0.26 instalado e
emitir o seguinte comando como o(a) usuário(a) root
:
update-desktop-database -q
Configurando o wpa_supplicant
Arquivo de Configuração
/etc/sysconfig/wpa_supplicant-*.conf
Informação de Configuração
Para se conectar a um ponto de acesso que usa uma senha, você
precisa colocar a chave pré compartilhada em "/etc/sysconfig/wpa_supplicant-wifi0
.conf
". "SSID"
é a sequência de caracteres que o ponto de acesso/roteador
transmite para se identificar. Execute o seguinte comando como
o(a) usuário(a) "root
":
wpa_passphrase SSID
SENHA_SECRETA
> /etc/sysconfig/wpa_supplicant-wifi0
.conf
"/etc/sysconfig/wpa_supplicant-wifi0
.conf
" pode
conter os detalhes de vários pontos de acesso. Quando o
"wpa_supplicant"
for iniciado, ele escaneará os "SSIDs" que conseguir ver e
escolherá a senha apropriada para se conectar.
Se você deseja se conectar a um ponto de acesso que não seja
protegido por senha, [então] coloque uma entrada como esta em
"/etc/sysconfig/wpa_supplicant-wifi0
.conf
".
Substitua "Algum-SSID" pelo "SSID" do ponto de acesso/roteador.
network={
ssid="Algum-SSID
"
key_mgmt=NONE
}
Conetar-se a um novo ponto de acesso que não esteja no arquivo de
configuração pode ser realizada manualmente por meio da linha de
comando ou da "GUI", mas precisa ser feito por meio de um(a)
usuário(a) privilegiado(a). Para fazer isso, adicione o seguinte
ao arquivo de configuração:
ctrl_interface=DIR=/run/wpa_supplicant GROUP=<grupo privilegiado>
update_config=1
Substitua o <grupo privilegiado> acima por um grupo do
sistema onde os(as) membros(as) tem a capacidade de se conectarem
a um ponto de acesso sem fio.
Existem muitas opções que você poderia usar para ajustar como se
conecta a cada ponto de acesso. Elas estão descritas com alguns
detalhes no arquivo "wpa_supplicant/wpa_supplicant.conf
" na árvore
do fonte.
Conectando-se a um Ponto de Acesso
Se você quiser
configurar interfaces de rede de intercomunicação na
inicialização usando o "wpa_supplicant", [então] você
precisa instalar o conjunto de comandos sequenciais "/lib/services/wpa
" incluído no pacote
"blfs-bootscripts-20230101":
make install-service-wpa
Se o teu roteador/ponto de acesso usar "DHCP" para alocar
endereços "IP", [então] você pode instalar o cliente "DHCP-4.4.3-P1"
e usá-lo para automaticamente obter endereços de rede de
intercomunicação. Crie o "/etc/sysconfig/ifconfig-wifi0
" executando o
seguinte comando como o(a) usuário(a) "root
":
cat > /etc/sysconfig/ifconfig.wifi0
<< "EOF"
ONBOOT="yes"
IFACE="wlan0
"
SERVICE="wpa"
# Argumentos adicionais para o "wpa_supplicant"
WPA_ARGS=""
WPA_SERVICE="dhclient"
DHCP_START=""
DHCP_STOP=""
# Configure PRINTIP="yes" para que o conjunto de comandos sequenciais imprima
# o endereço IP atribuído pelo DHCP
PRINTIP="no"
# Configure PRINTALL="yes" para imprimir os valores atribuídos pelo DHCP para
# IP, SM, DG e 1° NS. Isso exige PRINTIP="yes".
PRINTALL="no"
EOF
Se você preferir "dhcpcd-9.4.1" em vez do cliente "DHCP-4.4.3-P1",
[então] crie o "/etc/sysconfig/ifconfig-wifi0
" executando o
seguinte comando como o(a) usuário(a) "root
":
cat > /etc/sysconfig/ifconfig.wifi0
<< "EOF"
ONBOOT="yes"
IFACE="wlan0
"
SERVICE="wpa"
# Argumentos adicionais para o "wpa_supplicant"
WPA_ARGS=""
WPA_SERVICE="dhcpcd"
DHCP_START="-b -q <insira opções de início apropriadas aqui>
"
DHCP_STOP="-k <insira opções de parada adicionais aqui>
"
EOF
Alternativamente, se você usar endereços estáticos em tua rede de
intercomunicação local, então crie o "/etc/sysconfig/ifconfig-wifi0
" executando o
seguinte comando como o(a) usuário(a) "root
":
cat > /etc/sysconfig/ifconfig.wifi0
<< "EOF"
ONBOOT="yes"
IFACE="wlan0
"
SERVICE="wpa"
# Argumentos adicionais para o "wpa_supplicant"
WPA_ARGS=""
WPA_SERVICE="ipv4-static"
IP="192.168.1.1"
GATEWAY="192.168.1.2"
PREFIX="24"
BROADCAST="192.168.1.255"
EOF
Você consegue se conectar ao ponto de acesso sem fio executando o
seguinte comando como o(a) usuário(a) "root
":
ifup wifi0
Substitua "wlan0
" pela
interface sem fio correta e "wifi0
" pelo nome desejado para o
arquivo de configuração. Por favor, observe que os arquivos de
configuração "wpa_supplicant-*.conf
" e "ifconfig.*
" precisam ter nomes idênticos, ou
seja, ambos conter "wifi0
" nos nomes deles.