Windows kablolu ağ üzerinde Linux 802.1x


11

Linux iş istasyonumu şirket ağımızda kullanmak istiyorum, ancak birkaç sorunla karşılaşıyorum, özellikle 802.1xi'ye inanıyorum.

Ben bu benim çalışması için ne gerekiyorsa erişebilmeniz gerekir bu yüzden benim makine ve bir windows etki alanı yönetici kök. Şu anda linux makinem, 802.1x olmayan istemciler için varsayılan bir vlana yerleştirildiğine inanmamı sağlayan bağlantıyı kısıtladı.

Genel sorum şu: Linux makinemin kablolu windows ağında 802.1x kullanımını nasıl sağlayabilirim? Ağ tipik bir windows etki alanıdır ve kullanıcı hesaplarının yanı sıra makine hesaplarını da kullanır.

Bildiğim ve şimdiye kadar denedim budur:

Ben inanıyorum ben makine için geçerli bir istemci makine sertifikası, etki alanı için CA sertifikasını ve müşteri için özel anahtarı elde etmek için ihtiyacım olacak

Fikir 1, bir windows makine / etki alanı ca makinesinden geçerli bir anahtar kapmak Linux makine üzerinde bir windows VM koştu ve bu etki alanına katıldı, bu linux makine için nab olabilir geçerli bir istemci sertifikası üreteceğini düşünerek. - bu amaçla daha sonra istemci sertifikası ve Windows C sunucusundan ca sertifikasını ihraç ettikten sonra bunları linux üzerindeki ağ yöneticisi için hazır olan PEM formatına dönüştürdüm (DEM değil PEM gerektirdiği varsayılarak). - Daha sonra certmgr kullanarak windows VM'sinde özel anahtarı vermeye çalıştım, ancak dışa aktarılamaz olarak işaretlendi :-(

Fikir 2 powerbroker oldu ... - Ben linux makine etki alanına katılmak için powerbroker açık (resmi olarak benzer) kullanılır, getent passwd şimdi tüm etki alanı kullanıcılarını gösterir. - Benim düşüncem bu sistem üzerinde bir yere (/ etc / ssl / certs?) Bir istemci sertifikası ve özel anahtar koymak olurdu ama hiçbir şey bulamazsınız

Fikir 3, ne yaptığını bilen birine sor.

Başlangıçta bu linux makine üzerinde windows vardı (ki ben linux kurulum üzerine p2v'd) bu yüzden ağ anahtarı doğru kurulum ve MAC vb ağda kabul biliyorum; onun sadece 802.1x sorunu olduğundan eminim

Düzenleme: tamamen onun fedora 21 xfce spin, 64bit bahsetmeyi unuttum.


Hangi supplicant'ı kullanıyorsunuz? Xsupplicant, wpa_supplicant veya kendi haddeleme?
Brian

fedora 21 kutudan çıktı, sadece wpa_supplicant kurulu gibi görünüyor. Yine de bağlanmayı denemek için ağ yöneticisini kullanıyorum (xfce masaüstü ile).
Sirex


Evet, az ya da çok zaten var olduğumuzu özetliyor. Windows makinelerine baktığımızda MSCHAP v2 ile PEAP kullanıyorlar, bu yüzden linux makinelerinde denedim. Çoğunlukla geçerli sertifikaları nereden / nasıl edinebileceğimi ve kullanıcı adımın nasıl görünmesi gerektiğini ('bob' 'bob@domain.com' 'domain \ bob' 'olduğunu bilmek için uğraşıyorum? çalışıyor ama şimdiye kadar hiçbir başarı, sadece tekrar benim şifreyi ister
Sirex

CA sertifikasını ('fikir 1') ihraç etmeyi denedim ama hala şifre için reropmpted, ve ben bile PEM formatında doğru yolda gidiyor emin değilim. Orada bir 'hayır CA sertifika gereklidir' onay kutusunu da vardır, ancak AD o istiyorsanız bilmiyorum (i sağ, nasıl olsa olsa CA çeki hendek Bu sadece bir istemci tarafı kararını varsayıyorum?)
Sirex

Yanıtlar:


10

Kötü haber, millet! Görünüşe göre Fedora 21: 802.1x PEAP / MSCHAPv2 ile kablolu bağlantı çalışmıyor sabit bir hata var . Yani aşağıda cevap ise Mayıs diğer dağıtımlar için işin, Fedora 21 kullanıcıları şans dışında şu anda.


Bunu kendim hiç denemedim, ancak bu yazı Linux istemcisi ve Windows etki alanı arasında 802.1x kurmak için oldukça ayrıntılı bir izlenim içeriyor gibi görünüyor. Sertifika isteği bölümünü not edin: dışa aktarılamayan sertifika sorununuzu çözmelidir. Yazılım sürümleri oldukça eski ( Ubuntu 8.04 ve Beyond Trust'ın Power Broker'ı da aynı şekilde ), ancak temel fikir benim için sağlam görünüyor.

Okumayı kolaylaştırmak için yukarıda belirtilen yayını biçimlendirdim. Alıntı kod kutuları gri gri olmasını sağlar, bu yüzden bıraktım üzgünüm:


Feragatname: Bu kılavuz Linux Ubuntu 8.04 dağıtımı açısından yazılmıştır. Bunun diğer Linux veya Unix dağıtımlarıyla çalışmasını sağlamak için bazı değişikliklerin yapılması gerekebilir.

Linux makinenizin 802.1x üzerinde kimlik doğrulaması için gerekli olan iki ana şey, bir istemci sertifikası ve Windows etki alanındaki bir hesaptır. Kimlik doğrulama işlemi sırasında Linux istemcisi bilgisayar sertifikasını anahtara sunar, bu da sertifikayı doğrulayan ve sertifikanın Active Directory'de atandığı bilgisayar hesabını doğrulayan RADIUS sunucusuna sunar. Sertifika ve bilgisayar hesabı geçerliyse, RADIUS sunucusu anahtarı anahtara geri gönderen kimlik doğrulama isteğini onaylar ve bu da Linux kutusunun bağlı olduğu bağlantı noktasını doğrular.

Yapılması gereken ilk şey Linux bilgisayarınızı Windows etki alanına katmaktır. Linux yerel olarak bir Windows etki alanına katılamadığından, bunu yapmamıza izin vermek için gerekli yazılımı indirmeliyiz. Aynı şekilde, sadece bunu yapmamıza izin veren yazılımlar yapar. Bunu Ubuntu'ya yüklemek çok basit, sadece şu adımları izleyin:

  1. sudo uygun-güncelleme
  2. sudo apt-get install aynı şekilde açık
  3. sudo domainjoin-cli join enter the FQDN of your domain here enter your admin account here, biçimi kullanabilirsiniz user@domain.com. Ayrıca, GUI sürümünüSystem → Administration → Likewise.
  4. sudo update-rc.d aynı şekilde açık varsayılanlar
  5. sudo /etc/init.d/likewise-open başlat

Ubuntu kullanmıyorsanız, yazılımı http://www.likewisesoftware.com/products/likewise_open buradan indirebilirsiniz . Artık alan adı hesabınızı kullanarak çıkış yapıp tekrar giriş yapabilirsiniz. Ben hem biçim user@domain.comhem de domain \ user'ın çalıştığına inanıyorum . Bunu daha sonra test edeceğim.

Linux makinesinde, bu kimlik doğrulamasının gerçekleşmesi için doğru yapılandırılması gereken üç dosya vardır. Bu üç dosya:

  1. /etc/wpa_supplicant.conf
  2. / Etc / network / interfaces
  3. /etc/openssl/openssl.cnf

İlk önce yazılımı, Linux makinemizin 802.1x özellikli bir ağda kimlik doğrulaması için bir istemci sertifikası kullanmasına izin verecek şekilde yapılandıracağız; wpa_supplicantbunun için kullanılacaktır.

Wpa_supplicant.conf dosyanızı yapılandırmak için şu adımları izleyin:

  1. sudo gedit /etc/wpa_supplicant.conf
  2. Aşağıdakileri dosyaya yapıştırın ve kaydedin:

    # 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" 
    }
    

Şimdi arayüzler dosyanızı düzenlemeliyiz. Arayüz dosyanızı yapılandırmak için şu adımları izleyin:

  1. sudo gedit / etc / network / arayüzleri
  2. Aşağıdakileri eth0arayüzün altındaki dosyaya yapıştırın ve kaydedin:

    # 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
    

Bir sonraki adım sertifikalarınızı oluşturmak ve kurmaktır. Kendinden imzalı bir sertifika oluşturmanız, ardından oluşturduğumuz kendinden imzalı sertifikayı temel alan bir sertifika isteği oluşturmamız ve ardından sertifikaları yüklememiz gerekecek.

Not: Sertifikalarınızı oluştururken, adınızı her istediğinde, kimlik doğrulaması yapılacak bilgisayarın adını sağlamanız gerekir. Güvende olmak için, adın büyük / küçük harfe duyarlı olması da dahil olmak üzere bilgisayara atandığı şekilde eşleştirilmesini öneririm. Bilgisayarınıza nasıl atandığından emin değilseniz, bir terminal açın ve hostname yazın.

Bu adımları takip et:

  1. 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

    Örnek: sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.pem

  2. openssl req -new -newkey rsa: 1024 -nodes -keyout enter a name for your private key here.pem - dışarı enter a name for your certificate request here.pem

    Örnek: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem

Oluşturulan tüm sertifikalar ana dizininize ( /home/<username>) yerleştirilir. Sonraki bölüm, önceki adımda oluşturulan sertifika isteğini kullanarak CA'nızdan bir sertifika istemektir. Bunun bir Windows makinesinde yapılması gerekecek, çünkü Linux ve Windows sertifika isterken ve indirirken çok iyi anlaşamıyorlar; Sertifika isteğini kendime e-postayla göndermeyi ve bir Windows makinesinde gerçekleştirmeyi daha kolay buldum.

Sertifika isteğini tamamlamak için şu adımları izleyin:

  1. Linux makinesindeki ana dizininize gidin ve sertifika istek dosyanızı bulun
  2. Dosyayı kendinize e-postayla gönderin veya dosyayı bir metin düzenleyicisiyle (gedit gibi) açın ve isteği kopyalayıp bir e-postaya yapıştırın ve kendinize gönderin.
  3. Windows istemcisinde, CA'nızın web sitesine (örneğin http://caname/certsrv) IE kullanarak bir web sayfası açın .
  4. Sertifika İste'yi seçin
  5. Gelişmiş Sertifika İsteği
  6. Şimdi e-postanızı açın ve kendinize e-posta gönderdiğiniz sertifika isteğini alın.
  7. Kendinize dosyayı e-postayla gönderdiyseniz, not defteri ile açın ve içeriği kopyalayıp Base-64 kodlu sertifika istek kutusuna yapıştırın. Kendinize dosyanın kendisi yerine sertifika isteği dosyasının içeriğini e-postayla gönderdiyseniz, isteği kopyalayıp Base-64 kodlu sertifika isteği kutusuna yapıştırmanız yeterlidir.
  8. Gönder'i tıklayın ve sertifikayı DER yerine Base-64 biçiminde indirin.
  9. Sertifikayı masaüstünüze kaydedin ve your Linux machine name.pem olarak adlandırın. Sistem otomatik olarak sonuna eklenir .cer, bu yüzden bunu silin. Linux, sertifika uzantıları için .pem kullanır.
  10. Bu dosyayı alın ve kendinize e-posta ile gönderin.
  11. Şimdi, Linux makinenizde sertifikanızı alın ve bir yere kaydedin (tercihen işleri düzenli ve bir arada tutmak için ana klasörünüz).
  12. Şimdi, yeni aldığınız sertifikanızı /etc/ssl/certsklasörünüze kopyalamamız ve özel anahtarınızı / sertifikanızı ve daha önce /etc/ssl/privateklasörünüzde oluşturulan özel anahtarınızı kopyalamamız gerekiyor . Şimdi, yalnızca root'un bunu yapma izni vardır, bu yüzden bunu komut satırından sudo cp /home/<username>/<certificate>.pem /etc/ssl/privateveya yazarak yapabilirsiniz /etc/ssl/certs. Bu, GUI'den gksudo komutu kullanılarak ve nautilus'a yazarak kopyalayıp yapıştırarak da yapılabilir. Nautilus, Ubuntu'nun kullandığı GUI dosya tarayıcısıdır ve bunu root olarak çalıştırabilir ve yalnızca kökün erişebildiği dizinlere kopyalayıp yapıştırabilirsiniz.

Artık sertifikalarımız yerinde olduğuna göre, openssl'e sertifikaları nasıl kullanmak istediğimizi söylememiz gerekiyor. Bunu yapmak için openssl.cnf dosyasını düzenlemeli ve Linux makinemizi kullanıcı yerine istemci olarak doğrulamasını söylemeliyiz.

Bunu yapmak için şu adımları izleyin:

  1. sudo gedit /etc/ssl/openssl.cnf
  2. Yaklaşık yarım aşağı kaydırın ve adlı bir bölüm görmelisiniz [usr_cert]. Bu bölümde nsCertType, "Normal müşteri kullanımı için bu tipiktir" olarak tanımlanan yere ihtiyacımız vardır nsCertType = client, emailve olması gerekir ve yorumlanır. Bu satırı kaldırın ve e-postayı görünmesi için silin nsCertType = client. Şimdi dosyayı kaydedin.

Artık Windows etki alanı ortamında çalışan ve 802.1x kullanarak kimlik doğrulaması yapan bir Linux makinesine sahip olmak için gereken her şeyi doğru şekilde yapılandırmalısınız.

Artık geriye kalan şey, Linux'un wpa_supplicant.confşimdi eth0arayüzünüze bağlı olan dosyayı kullanması ve kimlik doğrulaması yapması için ağ hizmetinizi yeniden başlatmaktır . Sadece koş sudo service networking restart. Arayüzünüz geri geldikten sonra bir IP adresi almazsanız, yazarak DHCP sunucunuzdan manuel olarak bir IP isteyebilirsiniz sudo dhclient.



Ben sadece denedim, ve ben bu makaleyi ilk bulduğumda denedim. Her ihtimale karşı kelime kelimesi olsa tekrar deneyeceğim.
Sirex

hayır, bu işi alamıyorum. Gelişmiş imzalama isteğinin 'iş istasyonu' olacağını düşündüm ama sadece 'kullanıcı' ve 'web sunucusu' mevcuttu.
Sirex

Tamam, belki başka bir yoldan gidebiliriz. İhraç edilemez olarak işaretlenen sertifikaları dışa aktarmanın bir yolu var, habit hacky: github.com/iSECPartners/jailbreak veya blog.gentilkiwi.com/mimikatz ( stackoverflow.com/questions/3914882/… ). P2v'd Windows'unuzdan bir sertifika almaya ve kimlik doğrulaması için kullanmaya çalışabilir misiniz?
beatcracker

Jailbreak uygulaması bana özel anahtar tutun izin. TLS modunda benim için işe yaramadı. PEAP modu sadece CA sertifikası istiyor - ki ben ca sunucusu / certsrv / url alabilirsiniz, ama o dosent çalışma ya da. Belki de 'anonim kimliğimi', kullanıcı adı türünü ve şifremi beğenmiyor, ya 'kullanıcı adı' ya da 'kullanıcıadı@etkialanı.com' olduğunu varsayıyorum, ancak ikisi de benim için çalışmıyor. Mesaj günlüklerini yapıştıracağım.
Sirex

1
Kötü haber, millet! Görünüşe göre Fedora 21: 802.1x PEAP / MSCHAPv2 ile kablolu bağlantı çalışmıyor .
beatcracker
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.