Estou procurando usar minha estação de trabalho Linux na rede da empresa, mas estou enfrentando alguns problemas, especificamente 802.1xi, acredito.
Sou root em minha máquina e administrador de domínio do Windows, então devo poder acessar tudo o que preciso para que isso funcione. Atualmente, minha máquina linux tem conectividade restrita, o que me leva a acreditar que foi colocada em uma vlan padrão para clientes não 802.1x.
Acho que minha pergunta geral é: como posso fazer minha máquina Linux usar 802.1x na rede com fio do Windows? A rede é um domínio típico do Windows e usa contas de máquina, bem como contas de usuário.
Isso é o que eu sei e tentei até agora:
Acredito que vou precisar obter um certificado de máquina cliente válido para a máquina, o certificado CA para o domínio e a chave privada para o cliente
Idéia 1, pegue uma chave válida de uma máquina Windows / máquina ca de domínio. Executei uma VM Windows na máquina Linux e juntei-a ao domínio, pensando que isso produziria um certificado de cliente válido que eu poderia nab para a máquina Linux. - para esse fim, exportei o certificado do cliente e o certificado do servidor windows ca e os converti para o formato PEM, pronto para o gerenciador de rede no linux (supondo que precise de PEM e não de DER). - Em seguida, tentei exportar a chave privada na própria VM do Windows usando certmgr, mas foi marcada como não exportável :-(
A ideia 2 era o powerbroker... - Usei o powerbroker open (formalmente da mesma forma) para ingressar a máquina linux no domínio, o getent passwd agora mostra todos os usuários do domínio. - Meu pensamento era que isso colocaria um certificado de cliente e uma chave privada no sistema em algum lugar (/etc/ssl/certs?) Mas não consigo encontrar nada
Idéia 3, pergunte a alguém que sabe o que está fazendo.
Devo salientar que originalmente esta máquina linux tinha janelas nela (que eu p2v'd na instalação do linux), então eu sei que o switch de rede está configurado corretamente e o MAC etc é aceito na rede; tenho certeza que é apenas um problema 802.1x
Editar: esqueci totalmente de mencionar seu giro fedora 21 xfce, 64 bits.
Más notícias, pessoal! Parece que há um bug não corrigido no Fedora 21: Conexão com fio com 802.1x PEAP/MSCHAPv2 não está funcionando . Portanto, embora a resposta abaixo possa funcionar para outras distros, os usuários do Fedora 21 estão sem sorte.
Nunca tentei isso sozinho, mas esta postagem parece conter um passo a passo bastante detalhado para configurar o 802.1x entre o cliente Linux e o domínio do Windows. Observe a parte da solicitação de certificado: ela deve resolver seu problema de certificado não exportável. As versões do software são bem 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 torna as caixas de código cinza sobre cinza, então desisti, desculpe:
Isenção de responsabilidade: este guia foi escrito a partir da perspectiva da distribuição Linux Ubuntu 8.04. Para que isso funcione com outras distribuições Linux ou Unix, algumas alterações podem ser necessárias.
As duas principais coisas necessárias para que sua máquina Linux seja autenticada 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 switch, 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 aprova 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 é ingressar seu computador Linux no domínio do Windows. Como o Linux não pode ingressar nativamente em um domínio do Windows, devemos baixar o software necessário para nos permitir fazer isso. Da mesma forma, faz software para nos permitir fazer exatamente isso. Para instalar isso no Ubuntu é muito simples, basta seguir estes passos:
enter the FQDN of your domain here
enter your admin account here
, você pode usar o formato[email protected]
. Você também deve ser capaz de usar a versão GUI acessandoSystem → Administration → Likewise.
Se você não estiver executando o Ubuntu, você pode baixar o software aqui http://www.likewisesoftware.com/products/likewise_open . Agora você pode sair e entrar novamente usando sua conta de domínio. Acredito que o formato
[email protected]
e 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:
Primeiro vamos configurar 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:
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:A próxima etapa é gerar e instalar seus certificados. Teremos que gerar um certificado autoassinado, gerar uma solicitação de certificado com base no certificado autoassinado que criamos e instalar os certificados.
Observação: Ao criar seus certificados, sempre que for solicitado seu nome, você deverá fornecer o nome do computador que estará autenticando. Por segurança, recomendo fazer com que o nome corresponda à forma como é atribuído ao computador, inclusive diferenciando maiúsculas de minúsculas. Se você não tiver certeza de como ele é atribuído ao seu computador, abra um terminal e digite hostname.
Siga esses passos:
sudo openssl req -x509 -nodes -days
enter in days how long you want the cert valid for
-newkey rsa:1024 -keyoutenter a name for your private key/certificate here
.pem -outenter a name for your private key/certificate here
.pemExemplo: sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout privcert.pem -out privcert.pem
openssl req -new -newkey rsa:1024 -nodes -keyout .pem
enter a name for your private key here
-outenter a name for your certificate request here
.pemExemplo: sudo openssl req -new -newkey rsa:1024 -nodes -keyout privkey.pem -out certreq.pem
Todos os certificados criados são colocados em seu diretório inicial (
/home/<username>
). A próxima parte é solicitar um certificado de sua CA usando a solicitação de certificado que foi criada na etapa anterior. Isso precisará ser feito em uma máquina Windows, pois por algum motivo Linux e Windows não se dão muito bem ao solicitar e baixar certificados; Acabei de achar mais fácil enviar por e-mail a solicitação de certificado para mim mesmo e executá-la em uma máquina Windows.Siga estas etapas para concluir a solicitação de certificado:
http://caname/certsrv
).your Linux machine name
.pem. O sistema adicionará automaticamente o.cer
ao final dele, portanto, exclua-o. O Linux usa .pem para extensões de certificado./etc/ssl/certs
pasta e precisamos copiar sua chave privada/certificado e chave privada criada anteriormente em sua/etc/ssl/private
pasta. Agora, apenas o root tem permissão para fazer isso, então você pode fazer isso pela linha de comando digitandosudo 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 que você copie e cole em diretórios aos quais apenas o root tem acesso.Agora que nossos certificados estão em vigor, precisamos informar ao openssl como queremos usar os certificados. Para fazer isso, devemos editar o arquivo openssl.cnf e dizer a ele para autenticar nossa máquina Linux como um cliente em vez de um usuário.
Para fazer isso, siga estas etapas:
[usr_cert]
. Nesta seção, precisamos de onde onsCertType
é definido como "Para uso normal do cliente, isso é típico" , e deve ternsCertType = client, email
e será comentado. Descomente esta linha e exclua o e-mail para que ele apareçansCertType = client
. Agora salve o arquivo.Agora você deve ter tudo o que precisa configurado corretamente para ter uma máquina Linux rodando em um ambiente de domínio Windows e autenticando usando 802.1x.
Tudo o que resta agora é reiniciar seu serviço de rede para que o Linux use o
wpa_supplicant.conf
arquivo que agora está vinculado à suaeth0
interface e autentique. Então é só corrersudo service networking restart
. Se você não obtiver um endereço IP depois que sua interface voltar, você pode solicitar manualmente um IP de seu servidor DHCP digitandosudo dhclient
.