Złe wieści, wszyscy! Wygląda na to, że w Fedorze 21 występuje nierozwiązany błąd: Połączenie przewodowe z PEAP / MSCHAPv2 802.1x nie działa . Więc chociaż poniższa odpowiedź może działać w przypadku innych dystrybucji, użytkownicy Fedory 21 nie mają obecnie szczęścia.
Nigdy tego nie próbowałem, ale wydaje się, że ten post zawiera dość szczegółowy opis konfiguracji 802.1x między klientem Linux a domeną Windows. Zwróć uwagę na część żądania certyfikatu: powinna rozwiązać problem z certyfikatem niewymagalnym. Wersje oprogramowania są dość stare ( Ubuntu to 8.04, a Power Broker Beyond Trust nadal jest podobny ), ale podstawowy pomysł wydaje mi się solidny.
Sformatowałem wyżej wymieniony post, aby ułatwić czytanie. Cytowanie powoduje, że pola kodu stają się szare na szaro, więc zrezygnowałem z tego, przepraszam:
Oświadczenie: Ten przewodnik został napisany z perspektywy dystrybucji systemu Linux Ubuntu 8.04. Aby działało to z innymi dystrybucjami Linuksa lub Uniksa, konieczne może być wprowadzenie pewnych zmian.
Dwie główne rzeczy, które są niezbędne do uwierzytelnienia komputera z systemem Linux w standardzie 802.1x, to certyfikat klienta i konto w domenie Windows. Podczas procesu uwierzytelniania klient Linux przedstawia przełącznikowi swój certyfikat komputerowy, który z kolei przedstawia go serwerowi RADIUS, który weryfikuje certyfikat, i weryfikuje konto komputera, do którego certyfikat jest przypisany w usłudze Active Directory. Jeśli certyfikat i konto komputera są prawidłowe, serwer RADIUS zatwierdza żądanie uwierzytelnienia, wysyłając je z powrotem do przełącznika, który z kolei uwierzytelnia port, do którego podłączony jest moduł Linux.
Pierwszą rzeczą, którą należy zrobić, jest dołączenie komputera z systemem Linux do domeny Windows. Ponieważ Linux nie może natywnie dołączyć do domeny Windows, musimy pobrać niezbędne oprogramowanie, aby nam to umożliwić. Podobnie tworzy oprogramowanie, które pozwala nam to zrobić. Aby zainstalować to na Ubuntu, jest to bardzo proste, wystarczy wykonać następujące kroki:
- sudo apt-get update
- sudo apt-get install podobnie otwarte
- dołącz do sudo domainjoin-cli
enter the FQDN of your domain here
enter your admin account here
, możesz użyć tego formatu user@domain.com
. Powinieneś także móc korzystać z wersji GUI, przechodząc doSystem → Administration → Likewise.
- sudo update-rc.d podobnie domyślnie otwarte
- sudo /etc/init.d/likewise-open start
Jeśli nie używasz Ubuntu, możesz pobrać oprogramowanie tutaj http://www.likewisesoftware.com/products/likewise_open . Możesz się teraz wylogować i zalogować ponownie przy użyciu konta domeny. Uważam, że user@domain.com
działa zarówno format, jak i domena \ użytkownik. Przetestuję to później.
Istnieją trzy pliki znajdujące się na komputerze z systemem Linux, które muszą być poprawnie skonfigurowane, aby to uwierzytelnienie miało miejsce. Te trzy pliki to:
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/openssl/openssl.cnf
Najpierw skonfigurujemy oprogramowanie, aby umożliwić naszemu komputerowi z systemem Linux używanie certyfikatu klienta do uwierzytelniania w sieci obsługującej standard 802.1x; wpa_supplicant
zostaną wykorzystane do tego.
Wykonaj następujące kroki, aby skonfigurować plik wpa_supplicant.conf:
- sudo gedit /etc/wpa_supplicant.conf
Wklej następujące elementy do pliku i zapisz:
# 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"
}
Teraz musimy edytować plik interfejsów. Wykonaj następujące kroki, aby skonfigurować plik interfejsów:
- sudo gedit / etc / network / interfaces
Wklej następujące elementy do pliku w eth0
interfejsie i zapisz go:
# 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
Następnym krokiem jest wygenerowanie i zainstalowanie certyfikatów. Będziemy musieli wygenerować certyfikat z podpisem własnym, następnie wygenerować żądanie certyfikatu na podstawie utworzonego przez nas certyfikatu z podpisem własnym, a następnie zainstalować certyfikaty.
Uwaga: Tworząc certyfikaty, ilekroć prosi o twoje imię, musisz podać nazwę komputera, który będzie uwierzytelniany. Dla bezpieczeństwa zalecam dopasowanie nazwy do sposobu przypisania do komputera, w tym rozróżnianie wielkości liter. Jeśli nie masz pewności, w jaki sposób jest on przypisany do twojego komputera, otwórz terminal i wpisz nazwę hosta.
Wykonaj następujące kroki:
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
Przykład: 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 - out enter a name for your certificate request here
.pem
Przykład: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
Wszystkie utworzone certyfikaty są umieszczone w katalogu domowym ( /home/<username>
). Następną częścią jest zażądanie certyfikatu od urzędu certyfikacji przy użyciu żądania certyfikatu utworzonego w poprzednim kroku. Trzeba będzie to zrobić na komputerze z systemem Windows, ponieważ z jakiegoś powodu Linux i Windows nie radzą sobie zbyt dobrze podczas żądania i pobierania certyfikatów; Po prostu łatwiej mi przesłać e-mailem żądanie certyfikatu i wykonać je na komputerze z systemem Windows.
Wykonaj następujące kroki, aby ukończyć żądanie certyfikatu:
- Przejdź do katalogu domowego na komputerze z systemem Linux i znajdź plik żądania certyfikatu
- Prześlij plik do siebie e-mailem lub otwórz go za pomocą edytora tekstu (takiego jak gedit), a następnie skopiuj i wklej żądanie do wiadomości e-mail i wyślij je do siebie.
- Na kliencie z systemem Windows otwórz stronę internetową przy użyciu IE na stronie internetowej swojego urzędu certyfikacji (np.
http://caname/certsrv
).
- Wybierz Poproś o certyfikat
- Zaawansowane żądanie certyfikatu
- Teraz otwórz swój e-mail i otrzymaj prośbę o certyfikat, który sam wysłałeś e-mailem.
- Jeśli plik został wysłany e-mailem, otwórz go za pomocą notatnika i skopiuj i wklej zawartość do pola żądania certyfikatu zakodowanego w standardzie Base-64. Jeśli sam wysłałeś e-mailem zawartość pliku żądania certyfikatu, a nie sam plik, po prostu skopiuj i wklej stamtąd żądanie do pola żądania certyfikatu zakodowanego w standardzie Base-64.
- Kliknij Prześlij i pobierz certyfikat w formacie Base-64, a nie DER.
- Zapisz certyfikat na pulpicie i nazwij go
your Linux machine name
.pem. System automatycznie dołączy go .cer
do końca, więc po prostu go usuń. Linux używa .pem do rozszerzeń certyfikatów.
- Weź ten plik i wyślij go z powrotem do siebie.
- Teraz na komputerze z systemem Linux zdobądź certyfikat i zapisz go gdzieś (najlepiej w folderze domowym, aby wszystko było uporządkowane i razem).
- Teraz musimy skopiować otrzymany właśnie certyfikat do
/etc/ssl/certs
folderu i musimy skopiować Twój klucz prywatny / certyfikat i klucz prywatny utworzony wcześniej w tym /etc/ssl/private
folderze. Teraz tylko root ma na to pozwolenie, więc możesz to zrobić albo z linii poleceń, wpisując sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
lub /etc/ssl/certs
. Można to również zrobić z GUI, kopiując i wklejając, używając polecenia gksudo i wpisując nautilus. Nautilus jest przeglądarką plików GUI używaną przez Ubuntu i będzie działać jako root, umożliwiając kopiowanie i wklejanie do katalogów, do których dostęp ma tylko root.
Teraz, gdy nasze certyfikaty są na miejscu, musimy powiedzieć openssl, w jaki sposób chcemy korzystać z certyfikatów. Aby to zrobić, musimy edytować plik openssl.cnf i nakazać mu uwierzytelnienie naszego komputera z systemem Linux jako klienta, a nie użytkownika.
Aby to zrobić, wykonaj następujące kroki:
- sudo gedit /etc/ssl/openssl.cnf
- Przewiń w dół około połowy, a powinieneś zobaczyć sekcję o nazwie
[usr_cert]
. W tej sekcji potrzebujemy miejsca, w którym nsCertType
jest ono zdefiniowane jako „Do normalnego użytku przez klienta jest to typowe” , i powinno to mieć nsCertType = client, email
i zostanie skomentowane. Usuń komentarz z tego wiersza i usuń wiadomość e-mail, aby się pojawiła nsCertType = client
. Teraz zapisz plik.
Teraz powinieneś mieć wszystko, czego potrzebujesz poprawnie skonfigurowane, aby komputer z systemem Linux działał w środowisku domeny Windows i uwierzytelniał się przy użyciu 802.1x.
Teraz wystarczy zrestartować usługę sieciową, aby Linux użył wpa_supplicant.conf
pliku powiązanego z eth0
interfejsem i uwierzytelnił się. Więc po prostu biegnij sudo service networking restart
. Jeśli nie otrzymasz adresu IP po ponownym uruchomieniu interfejsu, możesz ręcznie zażądać adresu IP z serwera DHCP, wpisując sudo dhclient
.