Versão avaliada: Fedora 42, 44
O protocolo EAP é utilizado para realizar autenticação no padrão 802.1X para dispositivos móveis.
Para FreeRADIUS em Wi‑Fi corporativo, EAP‑TTLS + PAP é mais recomendado e mais seguro do que PEAP/MSCHAPv2, pois evita vulnerabilidades conhecidas do MSCHAPv2 e utiliza proteção baseada exclusivamente em TLS.
O PAP não é inseguro, porque está dentro do túnel TLS.
A configuração que segue abaixo é a mínima para o funcionamento.
Configure
# vi /etc/raddb/mods-enabled/eap
....
eap {
....
default_eap_type = ttls
....
ttls {
default_eap_type = pap
copy_request_to_tunnel = yes
use_tunneled_reply = yes
}
Configure
# vi /etc/raddb/sites-enabled/inner-tunnel
authorize {
...
filter_username
...
ldap
...
pap
...
if (!&control:Auth-Type && &User-Password) {
update control {
&Auth-Type := LDAP
}
}
...
authenticate {
....
Auth-Type PAP {
pap
}
....
Auth-Type LDAP {
ldap
}
....
post-auth {
...
#ldap
...
Configure
# vi /etc/raddb/mods-enabled/ldap
....
user {
base_dn = "cn=users,cn=accounts,dc=ipa,dc=domain,dc=internal"
....
options {
chpw = no
}
Reinicie o serviço.
# systemctl restart radiusd.service
Com um dispositivo móvel, configure a interface de rede.
Segurança Wi-FI: WPA & WPA2 Enterprise
Autenticação: Tunneled TLS ou TLS encapsulado
Habilite No CA certificate is required
Inner authentication: PAP
Username: Insira o usuário
Password: Insira a senha
No log do radiusd -X, localize a linha que mostra o SSID de sua rede quando realiza a tentativa de conexão:
(XX) Called-Station-Id = "AA-BB-CC-DD-EE-FF:WIFIMOBI"
Configure
# vi /etc/raddb/sites-enabled/inner-tunnel
....
authorize {
...
ldap
# Filtro para o SSID MOBI
if (Called-Station-Id =~ /:WIFIMOBI$/) {
if (!(Ldap-Group == "g_wifimobi")) {
update request {
Module-Failure-Message := "Acesso negado: Usuario nao pertence ao grupo Wifi_MOBI"
}
reject
}
}
# Filtro para o SSID CORP
elsif (Called-Station-Id =~ /:WIFICORP$/) {
if (!(Ldap-Group == "g_wificorp")) {
update request {
Module-Failure-Message := "Acesso negado: Usuario nao pertence ao grupo Wifi_CORP"
}
reject
}
}
...
}
Configure
# vi /etc/raddb/mods-enabled/ldap
....
ldap {
...
group {
base_dn = "cn=groups,cn=accounts,dc=ipa,dc=domain,dc=internal"
name_attribute = "cn"
membership_attribute = "memberOf"
cacheable_name = yes
}
}
Reinicie o serviço.
# systemctl restart radiusd.service