회사 네트워크에서 Linux 워크 스테이션을 사용하려고하는데 특히 802.1xi가 믿는 몇 가지 문제가 발생했습니다.
내 컴퓨터와 Windows 도메인 관리자의 루트 이므로이 작업을 수행하는 데 필요한 모든 것에 액세스 할 수 있어야합니다. 현재 내 리눅스 시스템은 연결이 제한되어있어 802.1x가 아닌 클라이언트의 기본 VLAN에 배치되었다고 생각합니다.
내 전반적인 질문은 다음과 같습니다. 내 유선 컴퓨터가 유선 Windows 네트워크에서 802.1x를 사용하도록하려면 어떻게해야합니까? 네트워크는 일반적인 Windows 도메인이며 컴퓨터 계정과 사용자 계정을 사용합니다.
이것은 내가 알고 & 지금까지 시도한 것입니다.
나는 생각 나는 기계에 대한 유효한 클라이언트 시스템 인증서, 도메인에 대한 CA의 인증서 및 클라이언트에 대한 개인 키를 얻기 위해 필요 해요
아이디어 1, Windows 시스템 / 도메인 ca 시스템에서 유효한 키를 가져옵니다. 리눅스 시스템에서 Windows VM을 실행하고 도메인에 합류하여 Linux 시스템에서 사용할 수있는 유효한 클라이언트 인증서를 생성 할 것이라고 생각했습니다. -그런 다음 Windows CA 서버에서 클라이언트 인증서와 ca 인증서를 내 보낸 다음 PEM 형식으로 변환하여 Linux의 네트워크 관리자를 위해 준비했습니다 (PEM이 필요하지 않다고 가정). -그런 다음 certmgr을 사용하여 Windows VM 자체에서 개인 키를 내보내려고 시도했지만 내보낼 수 없음으로 표시되었습니다.
Idea 2는 powerbroker였습니다 …-powerbroker open (공식적으로 마찬가지로)을 사용하여 리눅스 머신을 도메인에 가입 시켰습니다. getent passwd는 이제 모든 도메인 사용자를 보여줍니다. -내 생각에 이것은 클라이언트 인증서와 개인 키를 시스템 어딘가에 (/ etc / ssl / certs?) 넣을 것이라고 생각했지만 아무것도 찾을 수 없습니다.
아이디어 3, 실제로 무엇을하고 있는지 아는 사람에게 물어보십시오.
원래이 리눅스 머신에는 윈도우가 있고 (리눅스 설치시 p2v’d) 네트워크 스위치가 제대로 설정되어 있고 MAC 등이 네트워크에서 허용된다는 것을 알고 있습니다. 나는 그것의 802.1x 문제를 확신합니다
편집 : 완전히 페도라 21 xfce 스핀, 64 비트를 언급하는 것을 잊었습니다.
답변
나쁜 소식, 여러분! Fedora 21 : 802.1x PEAP / MSCHAPv2와의 유선 연결이 작동하지 않는 버그가 수정 된 것 같습니다 . 따라서 아래 답변 이 다른 배포판에서도 작동 할 수 있지만 Fedora 21 사용자는 현재 운이 없습니다.
직접 시도하지는 않았지만 이 게시물 에는 Linux 클라이언트와 Windows 도메인간에 802.1x를 설정하기위한 자세한 연습이 포함되어 있습니다. 인증서 요청 부분을 참고하십시오. 내보낼 수없는 인증서 문제를 해결해야합니다. 소프트웨어 버전은 꽤 오래 되었지만 ( Ubuntu 는 8.04이고 Beyond Trust의 Power Broker 는 여전히 그렇습니다 ) 기본 아이디어는 나에게 견고합니다.
쉽게 읽을 수 있도록 위에서 언급 한 게시물을 형식화했습니다. 인용하면 코드 상자가 회색에서 회색으로 표시되므로 삭제했습니다. 죄송합니다.
면책 조항 : 이 안내서는 Linux Ubuntu 8.04 배포의 관점에서 작성되었습니다. 다른 Linux 또는 Unix 배포에서이 작업을 수행하려면 일부 변경이 필요할 수 있습니다.
Linux 시스템이 802.1x를 통해 인증하는 데 필요한 두 가지 주요 사항은 클라이언트 인증서와 Windows 도메인의 계정입니다. 인증 과정에서 Linux 클라이언트는 컴퓨터 인증서를 스위치에 제공하고, 인증서는 인증서를 확인한 RADIUS 서버에이를 제공하고 Active Directory에서 인증서가 할당 된 컴퓨터 계정을 확인합니다. 인증서와 컴퓨터 계정이 유효한 경우 RADIUS 서버는 인증 요청을 스위치로 다시 전송하여 승인하고 Linux 상자가 연결된 포트를 인증합니다.
가장 먼저해야 할 일은 Linux 컴퓨터를 Windows 도메인에 가입시키는 것입니다. Linux는 기본적으로 Windows 도메인에 가입 할 수 없으므로 필요한 소프트웨어를 다운로드해야합니다. 마찬가지로 우리가 이것을 할 수 있도록 소프트웨어를 만듭니다. 우분투에 이것을 설치하려면 매우 간단합니다. 다음 단계를 따르십시오.
- sudo apt-get 업데이트
- sudo apt-get은 마찬가지로 오픈 설치
- sudo domainjoin-cli join
enter the FQDN of your domain here
enter your admin account here
형식을 사용할 수 있습니다user@domain.com
. 또한 다음으로 이동하여 GUI 버전을 사용할 수 있어야합니다System → Administration → Likewise.
- sudo update-rc.d 마찬가지로 열린 기본값
- sudo /etc/init.d/like-open 시작
Ubuntu를 실행하지 않는 경우 http://www.likewisesoftware.com/products/likewise_open 에서 소프트웨어를 다운로드 할 수 있습니다 . 이제 도메인 계정을 사용하여 로그 아웃했다가 다시 로그인 할 수 있습니다. 형식 user@domain.com
과 도메인 \ 사용자 모두 작동 한다고 생각합니다 . 나중에 테스트하겠습니다.
이 인증을 수행하려면 Linux 시스템에 세 개의 파일이 있으며 올바르게 구성해야합니다. 이 세 파일은 다음과 같습니다.
- /etc/wpa_supplicant.conf
- / etc / network / 인터페이스
- /etc/openssl/openssl.cnf
먼저 Linux 시스템이 클라이언트 인증서를 사용하여 802.1x 지원 네트워크에 인증 할 수 있도록 소프트웨어를 구성합니다. wpa_supplicant
이를 위해 사용됩니다.
다음 단계에 따라 wpa_supplicant.conf 파일을 구성하십시오.
- sudo gedit /etc/wpa_supplicant.conf
-
다음을 파일에 붙여 넣고 저장하십시오.
# 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" }
이제 인터페이스 파일을 편집해야합니다. 인터페이스 파일을 구성하려면 다음 단계를 수행하십시오.
- sudo gedit / etc / network / 인터페이스
-
eth0
인터페이스 아래의 파일에 다음을 붙여넣고 저장하십시오.# 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
다음 단계는 인증서를 생성하고 설치하는 것입니다. 자체 서명 된 인증서를 생성 한 다음 생성 한 자체 서명 된 인증서를 기반으로 인증서 요청을 생성 한 다음 인증서를 설치해야합니다.
참고 : 인증서를 만들 때 이름을 요청할 때마다 인증 할 컴퓨터 이름을 제공해야합니다. 안전을 위해 대소 문자 구분을 포함하여 이름이 컴퓨터에 할당 된 방식과 일치하도록하는 것이 좋습니다. 컴퓨터에 어떻게 할당되어 있는지 잘 모를 경우 터미널을 열고 호스트 이름을 입력하십시오.
이 단계를 따르세요:
-
sudo openssl req -x509
enter in days how long you want the cert valid for
-nodes -days -newkey rsa : 1024 -keyoutenter a name for your private key/certificate here
.pem -outenter a name for your private key/certificate here
.pem예 : 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-outenter a name for your certificate request here
.pem예 : sudo openssl req -new -newkey rsa : 1024 -nodes -keyout privkey.pem -out certreq.pem
작성된 모든 인증서는 홈 디렉토리 ( /home/<username>
)에 있습니다. 다음 단계는 이전 단계에서 생성 된 인증서 요청을 사용하여 CA에 인증서를 요청하는 것입니다. 어떤 이유로 든 인증서를 요청하고 다운로드 할 때 Linux와 Windows가 제대로 작동하지 않기 때문에 Windows 시스템에서이 작업을 수행해야합니다. 방금 인증서 요청을 자신에게 이메일로 보내고 Windows 시스템에서 수행하는 것이 더 쉽다는 것을 알았습니다.
인증서 요청을 완료하려면 다음 단계를 수행하십시오.
- Linux 시스템의 홈 디렉토리로 이동하여 인증서 요청 파일을 찾으십시오.
- 파일을 자신에게 이메일로 보내거나 텍스트 편집기 (예 : gedit)를 사용하여 파일을 열고 요청을 이메일에 복사하여 붙여넣고 직접 보내십시오.
- Windows 클라이언트에서 IE를 사용하여 CA 웹 사이트 (예 :)에 웹 페이지를 엽니 다
http://caname/certsrv
. - 인증서 요청을 선택하십시오.
- 고급 인증서 요청
- 이제 이메일을 열고 이메일로 보낸 인증서 요청을 받으십시오.
- 파일을 전자 메일로 전자 메일로 보낸 경우 메모장에서 파일을 열고 내용을 복사하여 Base-64로 인코딩 된 인증서 요청 상자에 붙여 넣습니다. 파일 자체가 아닌 인증서 요청 파일의 내용을 전자 메일로 보낸 경우 해당 요청을 복사하여 Base-64로 인코딩 된 인증서 요청 상자에 붙여 넣기 만하면됩니다.
- 제출을 클릭하고 DER이 아닌 Base-64 형식으로 인증서를 다운로드하십시오.
- 인증서를 데스크탑에 저장하고 이름을
your Linux machine name
.pem으로 지정하십시오 . 시스템이 자동으로.cer
끝에를 추가 하므로 삭제하십시오. Linux는 인증서 확장에 .pem을 사용합니다. - 이 파일을 가지고 자신에게 다시 이메일을 보내십시오.
- 이제 Linux 시스템에서 인증서를 가져 와서 어딘가에 저장하십시오 (바람직하게 정리하고 정리하기위한 홈 폴더).
- 이제 방금받은 인증서를
/etc/ssl/certs
폴더에 복사해야하며/etc/ssl/private
폴더 에서 이전에 만든 개인 키 / 인증서 및 개인 키를 복사해야 합니다. 이제는 루트 만이 작업을 수행 할 수있는 권한을 가지므로sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
또는 을 입력하여 명령 줄에서이 작업을 수행 할 수 있습니다/etc/ssl/certs
. gksudo 명령을 사용하고 노틸러스를 입력하여 복사하여 붙여 넣기하여 GUI에서 수행 할 수도 있습니다. 노틸러스는 우분투에서 사용하는 GUI 파일 브라우저이며 루트로만 액세스 할 수있는 디렉토리에 복사하여 붙여 넣을 수 있도록 루트로 실행합니다.
인증서가 준비되었으므로 openssl에 인증서 사용 방법을 알려야합니다. 이렇게하려면 openssl.cnf 파일을 편집하여 Linux 컴퓨터를 사용자가 아닌 클라이언트로 인증하도록 지시해야합니다.
이렇게하려면 다음 단계를 수행하십시오.
- sudo gedit /etc/ssl/openssl.cnf
- 절반 정도 아래로 스크롤하면이라는 섹션이 표시
[usr_cert]
됩니다. 이 섹션에서 우리nsCertType
는 “정상적인 클라이언트 사용을 위해 일반적”이라고 정의 된 곳이 필요하며 , 그것이 있어야nsCertType = client, email
하며 주석 처리 될 것입니다. 이 행의 주석을 해제하고을 표시하도록 이메일을 삭제하십시오nsCertType = client
. 이제 파일을 저장하십시오.
이제 Linux 도메인을 Windows 도메인 환경에서 실행하고 802.1x를 사용하여 인증하도록 올바르게 구성해야합니다.
이제 남은 것은 네트워킹 서비스를 다시 시작하여 Linux wpa_supplicant.conf
가 이제 eth0
인터페이스에 연결된 파일을 사용 하고 인증하는 것입니다. 그냥 실행하십시오 sudo service networking restart
. 인터페이스가 다시 시작된 후 IP 주소를 얻지 못하면을 입력하여 DHCP 서버에서 IP를 수동으로 요청할 수 있습니다 sudo dhclient
.