웹사이트 검색

privacyIDEA로 SSH 키 관리


이 페이지에서

  1. 전제 조건
  2. SSH 키 업로드
  3. SSH 서버에 SSH 키 할당\n
  4. SSH 서버 설정
  5. 인증!

이 튜토리얼에서는 모든 서버와 다른 사용자 계정에 대한 SSH 키를 관리하는 방법을 보여드리겠습니다. 둘 이상의 SSH 키가 있는 경우 중요하며 다른 SSH 키를 가진 여러 사용자를 담당하는 경우 훨씬 더 중요합니다. 누구의 키가 어느 서버에 있는지 아직도 알고 계십니까? 사용자 키를 취소해야 하는 경우 어떻게 하시겠습니까?

우리는 OpenRheinRuhr를 사용할 것입니다).

전제 조건

귀하가 privacyIDEA 시스템을 설치하고 사용자 데이터베이스에 연결했다고 가정합니다. Ubuntu LTS 기반 시스템과 같은 어플라이언스를 제공하는 이 튜토리얼을 따르면 쉽게 이 작업을 수행할 수 있습니다.

지금 우리가 할 일은,

  1. 사용자용 SSH 키 업로드,
  2. 어떤 SSH 서버에서 어떤 SSH 키를 사용할 수 있는지 구성합니다.\n
  3. 마지막으로 SSH 서버에서 SSH 구성을 조정하여 privacyIDEA에서 관리하는 SSH 키가 SSH 서버에서 인증하는 데 사용되도록 합니다.\n

SSH 키 업로드

먼저 사용자의 SSH 키를 업로드해야 합니다.

참고: SSH 공개 키만 업로드하면 됩니다. 개인 키를 업로드하지 마십시오!

SSH 키를 업로드할 때 SSH 키 유형의 새 토큰 개체가 생성됩니다. 현재 관리자만 사용자의 SSH 키를 업로드할 수 있습니다. 관리자는 로그인하여 해당 사용자를 선택해야 합니다.

그런 다음 등록 버튼을 클릭하고 SSH 토큰 유형을 선택한 다음 SSH 공개 키를 복사하여 붙여넣습니다.

토큰의 설명은 SSH 키의 주석으로 자동으로 채워집니다.

이제 토큰 보기로 변경할 수 있으며 sshkey 유형의 새로 생성된 토큰을 볼 수 있습니다.

SSH 서버에 SSH 키 할당

특정 기계에 대한 토큰 사용 아이디어는 원래 온라인 문서에 설명되어 있습니다.

어떤 토큰이 어떤 시스템의 어떤 애플리케이션에서 인증할 수 있는지 정의해야 합니다. (이렇게 하면 LUKS를 사용한 오프라인 인증도 가능합니다.) 이는 Machines 보기에서 수행할 수 있습니다.

privacyIDEA 1.5에서는 IP 주소로 시스템(SSH 서버)도 정의해야 합니다. 이는 privacyIDEA 2.x에서 변경됩니다.

이 방법으로 ssh 토큰 SSHK00018FD9를 사용하여 서버 172.16.200.1에서 SSH를 통해 로그인할 수 있다는 기계 정의를 만듭니다. 옵션 키를 비워두면 이 SSH 토큰을 사용하여 루트 사용자로 로그인할 수 있습니다. 다른 사용자로 로그인할 수 있는 값으로 사용자 이름과 함께 "user" 옵션을 입력할 수도 있습니다.

SSH 서버 설정

이제 SSH 서버는 privacyIDEA에서 중앙에서 정의된 키가 SSH를 통해 로그인하는 데 사용될 수 있다는 사실을 알아야 합니다. 이를 달성하기 위한 두 가지 대체 방법이 있습니다.

우리는 saltstack을 사용하여 모든 SSH 서버에 SSH 키를 배포할 수 있습니다. 이를 위해 약간의 오버헤드를 제공하는 saltstack을 설정하고 실행해야 합니다. 이것이 이 튜토리얼에서 두 번째 대안을 선택하는 이유입니다.

두 번째 대안은 SSH 구성 키 AuthorizedKeysCommand를 사용합니다. 이것은 누군가가 SSH를 통해 로그인을 시도할 때마다 실행되는 명령을 정의하기 위해 /etc/ssh/sshd_config에서 사용할 수 있습니다. 이러한 명령은 사용자 이름을 매개변수로 가져와 허용된 SSH 키 목록을 반환해야 합니다.

이를 달성하기 위해 privacyidea admin 클라이언트와 함께 제공되는 privacyidea-authorizedkeys 명령을 사용합니다. 따라서 각 SSH 서버에 privacyidea 관리 클라이언트를 설치해야 합니다. Python 패키지 인덱스를 사용하여 이 작업을 수행할 수 있습니다.

privacyidea 관리 클라이언트를 기본 시스템에 설치하려면 다음을 실행합니다.

pip install privacyideaadm

privacyidea-authorizedkeys는 사용자 이름을 제외한 추가 매개변수를 사용할 수 없습니다. 이것이 다음과 같은 구성 파일 /etc/privacyidea/authorizedkeyscommand를 생성해야 하는 이유입니다.

[Default]
url = https://your.privacyidea.server
admin = low_rights_admin
adminrealm = admin_realm
password = secret

이 파일의 접근 권한을 반드시 제한하시기 바랍니다. 생산적인 환경에서는 이 구성 파일에 언급된 토큰 관리자가 토큰 삭제 또는 생성과 같은 추가 작업을 수행할 수 없도록 해야 합니다.

모든 것이 올바르게 설정되면 실행할 수 있어야 합니다.

privacyidea-authorizedkeys root

...privacyIDEA에 업로드한 ssh 공개 키가 표시되어야 합니다.

마지막으로 SSH 대민을 재구성하고 다시 시작해야 합니다. /etc/ssh/sshd_config에는 다음과 같은 섹션이 있어야 합니다.

AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys
# You also should run the command with lower privileges.
# The low_priv_user needs to have read access to /etc/privacyidea/authorizedkeyscommand.
# AuthorizedKeysCommandUser low_priv_user

인증!

SSH 데몬을 다시 시작한 후 업로드된 SSH 키를 사용하여 SSH를 통해 로그인할 수 있어야 합니다. SSH 토큰을 삭제하거나 privacyIDEA에서 SSH 토큰을 비활성화하는 즉시 사용자는 더 이상 이 SSH 키로 로그인할 수 없습니다.

이렇게 하면 모든 사용자의 모든 키를 완전히 제어할 수 있습니다. 하나의 중앙 지점에서 하나의 SSH 키를 비활성화할 수 있으며 사용자는 더 이상 SSH 서버에 로그인할 수 없습니다.