Más notícias, pessoal! Parece que há um bug não corrigido no Fedora 21: A conexão com fio com o 802.1x PEAP / MSCHAPv2 não está funcionando . Portanto, embora a resposta abaixo possa funcionar para outras distros, atualmente os usuários do Fedora 21 estão sem sorte.
Nunca tentei isso sozinho, mas este post parece conter uma explicação bastante detalhada para configurar o 802.1x entre o cliente Linux e o domínio do Windows. Observe a parte da solicitação de certificado: deve resolver seu problema de certificado não exportável. As versões do software são bastante antigas (o Ubuntu é 8.04 e o Power Broker da Beyond Trust ainda é o mesmo ), mas a ideia básica parece sólida para mim.
Formatei a postagem acima para facilitar a leitura. A citação faz com que as caixas de código fiquem cinza sobre cinza, então eu o soltei, desculpe:
Isenção de responsabilidade: Este guia foi escrito da perspectiva da distribuição Linux Ubuntu 8.04. Para fazer isso funcionar com outras distribuições Linux ou Unix, algumas mudanças podem precisar ser feitas.
As duas principais coisas necessárias para a sua máquina Linux se autenticar em 802.1x são um certificado de cliente e uma conta no domínio do Windows. Durante o processo de autenticação, o cliente Linux apresenta seu certificado de computador ao comutador, que por sua vez o apresenta ao servidor RADIUS que verifica o certificado e verifica a conta de computador à qual o certificado está atribuído no Active Directory. Se o certificado e a conta do computador forem válidos, o servidor RADIUS aprovará a solicitação de autenticação enviando-a de volta ao switch, que por sua vez autentica a porta à qual a caixa do Linux está conectada.
A primeira coisa que precisa ser feita é associar o computador Linux ao domínio do Windows. Como o Linux não pode ingressar nativamente em um domínio do Windows, precisamos fazer o download do software necessário para permitir isso. Da mesma forma, cria um software que nos permite fazer exatamente isso. Para instalar isso no Ubuntu, é muito simples, basta seguir estas etapas:
- sudo apt-get update
- O sudo apt-get install também abre
- sudo domainjoin-cli juntar-se
enter the FQDN of your domain here
enter your admin account here
, você pode usar o formato user@domain.com
. Você também deve poder usar a versão da GUI acessandoSystem → Administration → Likewise.
- sudo update-rc.d padrões igualmente abertos
- sudo /etc/init.d/likewise-open start
Se você não estiver executando o Ubuntu, faça o download do software aqui http://www.likewisesoftware.com/products/likewise_open . Agora você pode sair e fazer login novamente usando sua conta de domínio. Acredito que tanto o formato user@domain.com
quanto o domínio \ usuário funcionem. Vou testar isso mais tarde.
Existem três arquivos localizados na máquina Linux que devem ser configurados corretamente para que essa autenticação ocorra. Esses três arquivos são:
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/openssl/openssl.cnf
Primeiro, configuraremos o software para permitir que nossa máquina Linux use um certificado de cliente para autenticar em uma rede habilitada para 802.1x; wpa_supplicant
será usado para isso.
Siga estas etapas para configurar seu arquivo wpa_supplicant.conf:
- sudo gedit /etc/wpa_supplicant.conf
Cole o seguinte no arquivo e salve-o:
# Where is the control interface located? This is the default path:
ctrl_interface=/var/run/wpa_supplicant
# Who can use the WPA frontend? Replace "0" with a group name if you
# want other users besides root to control it.
# There should be no need to chance this value for a basic configuration:
ctrl_interface_group=0
# IEEE 802.1X works with EAPOL version 2, but the version is defaults
# to 1 because of compatibility problems with a number of wireless
# access points. So we explicitly set it to version 2:
eapol_version=1
# When configuring WPA-Supplicant for use on a wired network, we don't need to
# scan for wireless access points. See the wpa-supplicant documentation if you
# are authenticating through 802.1x on a wireless network:
ap_scan=0
network={
ssid="<enter any name here, it doesn't matter>"
key_mgmt=IEEE8021X
eap=TLS
identity="<FQDN>/computers/<Linux computer name>"
client_cert="/etc/ssl/certs/<your authentication certificate name>.pem"
private_key="/etc/ssl/private/<your private key name>.pem"
}
Agora devemos editar seu arquivo de interfaces. Siga estas etapas para configurar seu arquivo de interfaces:
- sudo gedit / etc / network / interfaces
Cole o seguinte no arquivo sob a eth0
interface e salve-o:
# Configure the system to authenticate with WPA-Supplicant on interface eth0
wpa-iface eth0
# In this case we have a wired network:
wpa-driver wired
# Tell the system we want to use WPA-Supplicant with our configuration file:
wpa-conf /etc/wpa_supplicant.conf
O próximo passo é gerar e instalar seus certificados. Teremos que gerar um certificado autoassinado, depois gerar uma solicitação de certificado com base no certificado autoassinado que criamos e depois instalar os certificados.
Nota: Ao criar seus certificados, sempre que solicitar seu nome, você deve fornecer o nome do computador que será autenticado. Para garantir a segurança, recomendo que o nome corresponda à maneira como é atribuído ao computador, incluindo a distinção entre maiúsculas e minúsculas. Se você não souber como está atribuído ao seu computador, abra um terminal e digite o nome do host.
Siga esses passos:
sudo openssl req -x509 -nodes -days enter in days how long you want the cert valid for
-newkey rsa: 1024 -keyout enter a name for your private key/certificate here
.pem -out enter a name for your private key/certificate here
.pem
Exemplo: sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.pem
openssl req -new -newkey rsa: 1024 -nodes -keyout enter a name for your private key here
.pem - saída enter a name for your certificate request here
.pem
Exemplo: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
Todos os certificados criados são colocados no seu diretório pessoal ( /home/<username>
). A próxima parte é solicitar um certificado da sua CA usando a solicitação de certificado criada na etapa anterior. Isso precisará ser feito em uma máquina Windows, pois, por algum motivo, o Linux e o Windows não se dão muito bem ao solicitar e baixar certificados; Achei mais fácil enviar a solicitação de certificado por e-mail para mim mesma e executá-la em uma máquina Windows.
Siga estas etapas para concluir a solicitação de certificado:
- Vá para o diretório inicial na máquina Linux e localize seu arquivo de solicitação de certificado
- Envie o arquivo por email para si mesmo ou abra-o com um editor de texto (como o gedit), copie e cole a solicitação em um email e envie-a para si mesmo.
- Em um cliente Windows, abra uma página da Web usando o IE no site da sua CA (como
http://caname/certsrv
).
- Selecione Solicitar um certificado
- Solicitação avançada de certificado
- Agora abra seu email e obtenha a solicitação de certificado que você enviou por email.
- Se você enviou o arquivo por e-mail, abra-o com o bloco de notas e copie e cole o conteúdo na caixa de solicitação de certificado codificado na Base-64. Se você enviou por e-mail o conteúdo do arquivo de solicitação de certificado em vez do arquivo em si, copie e cole a solicitação de lá na caixa de solicitação de certificado codificado em Base-64.
- Clique em Enviar e faça o download do certificado no formulário Base-64, não no DER.
- Salve o certificado na área de trabalho e
your Linux machine name
denomine .pem. O sistema anexará automaticamente .cer
ao final dele, então exclua isso. O Linux usa .pem para extensões de certificado.
- Pegue esse arquivo e envie-o novamente por e-mail.
- Agora, na sua máquina Linux, obtenha seu certificado e salve-o em algum lugar (de preferência na sua pasta pessoal para manter as coisas organizadas e juntas).
- Agora, precisamos copiar seu certificado que você acabou de receber para sua
/etc/ssl/certs
pasta e precisamos copiar sua chave / certificado e chave privada criados anteriormente na sua /etc/ssl/private
pasta. Agora, somente o root tem permissão para fazer isso; portanto, você pode fazer isso pela linha de comando, digitando sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
ou /etc/ssl/certs
. Isso também pode ser feito a partir da GUI, copiando e colando, usando o comando gksudo e digitando nautilus. O Nautilus é o navegador de arquivos da GUI que o Ubuntu usa e o executará como root, permitindo copiar e colar em diretórios aos quais somente o root tem acesso.
Agora que nossos certificados estão em vigor, precisamos informar ao openssl como queremos usar os certificados. Para fazer isso, precisamos editar o arquivo openssl.cnf e solicitar que ele autentique nossa máquina Linux como cliente e não como usuário.
Para fazer isso, siga estas etapas:
- sudo gedit /etc/ssl/openssl.cnf
- Role até a metade e você verá uma seção chamada
[usr_cert]
. Nesta seção, precisamos de onde o nsCertType
é definido como "Para uso normal do cliente, isso é típico" , e deve ter nsCertType = client, email
e será comentado. Remova o comentário desta linha e exclua o email para que ele seja exibido nsCertType = client
. Agora salve o arquivo.
Agora você deve ter tudo o que precisa configurado corretamente para ter uma máquina Linux executando em um ambiente de domínio do Windows e autenticando usando 802.1x.
Tudo o que resta agora é reiniciar o serviço de rede para que o Linux use o wpa_supplicant.conf
arquivo que está vinculado à sua eth0
interface e se autentique. Então apenas corra sudo service networking restart
. Se você não obtiver um endereço IP após o retorno da interface, poderá solicitar um IP manualmente do servidor DHCP digitando sudo dhclient
.