본문 바로가기
서버구축 (WEB,DB)

SSH 인증 보안 강화를 위한 단기 SSH 인증서를 이용한 접근 관리

by 날으는물고기 2024. 4. 18.

SSH 인증 보안 강화를 위한 단기 SSH 인증서를 이용한 접근 관리

Short-lived SSH certificates는 보안성을 강화하기 위해 임시로 발급되는 인증서를 사용하여 SSH 접속을 제어하는 방법입니다. 이러한 인증서를 통해 사용자는 정해진 시간 동안만 서버에 접속할 수 있으며, 인증서의 유효 기간이 만료되면 자동으로 접속이 불가능해집니다. 이 방식은 공격자가 인증 정보를 탈취하더라도 인증서의 짧은 수명으로 인해 무력화시킬 수 있는 효과적인 보안 조치입니다. 여기 소개된 오픈소스 도구들은 이러한 Short-lived SSH 인증서를 쉽게 발급하고 관리할 수 있게 해주며, 각각의 도구가 제공하는 주요 기능과 사용법에 대해 알아보겠습니다.

Smallstep SSH

  • 소개: Smallstep은 인증서 기반의 보안 솔루션을 쉽게 구현할 수 있도록 돕는 도구로, SSH 접속을 위한 Short-lived 인증서 발급 및 관리 기능을 포함합니다.
  • 주요 특징: 자동 인증서 갱신, 쉬운 구성, 사용자 및 호스트 인증서의 고급 관리 기능을 제공합니다.
  • 사용법: Smallstep을 사용하여 SSH 인증서를 발급받으려면, 먼저 Smallstep CLI를 설치하고, step-ca 인증 기관을 설정해야 합니다. 이후 사용자 및 서버에 대한 인증서를 발급하여 SSH 접속에 사용합니다.

HashiCorp Vault SSH

  • 소개: HashiCorp Vault는 시크릿과 데이터 보호를 위한 종합적인 도구입니다. Vault의 SSH Secret Engine은 SSH 인증서를 쉽게 생성하고 관리할 수 있는 기능을 제공합니다.
  • 주요 특징: 중앙 집중식 시크릿 관리, 다양한 인증 방식 지원, 정책 기반 접근 제어를 제공합니다.
  • 사용법: Vault에서 SSH 인증서를 사용하려면, 먼저 Vault 서버에 SSH Secret Engine을 활성화하고, SSH 인증서 발급 정책을 설정합니다. 사용자는 Vault를 통해 인증서를 발급받아 SSH 접속 시 사용할 수 있습니다.

Keycloak

  • 소개: Keycloak은 웹 애플리케이션의 인증 및 권한 부여를 위한 아이덴티티 및 액세스 관리 솔루션입니다. 직접적인 SSH 접근 제어 기능은 없지만, 중앙 집중식 사용자 관리 및 인증을 통해 SSH 인증에 활용할 수 있습니다.
  • 주요 특징: 사용자 인증, Single Sign-On(SSO), 사용자 세션 관리 기능을 제공합니다.
  • 사용법: Keycloak을 이용한 SSH 인증을 구현하려면, Keycloak과 통합할 수 있는 SSH 인증 방식을 사용해야 합니다. 예를 들어, Keycloak과 연동하는 OAuth2나 OpenID Connect 프록시를 통해 SSH 접속을 인증할 수 있습니다.

OpenSSH

  • 소개: OpenSSH는 원격 컴퓨터 접속 및 파일 전송을 위한 가장 널리 사용되는 도구 중 하나입니다. 최신 버전에서는 SSH 인증서를 지원하며, 직접적으로 Short-lived 인증서를 구현할 수 있습니다.
  • 주요 특징: 높은 보안성, 다양한 인증 방식 지원, 오픈소스로 널리 사용됩니다.
  • 사용법: OpenSSH를 이용해 Short-lived SSH 인증서를 구현하려면, SSH 인증서를 발급할 수 있는 CA(인증 기관)를 설정하고, 발급된 인증서를 사용자와 서버에 배포해야 합니다. 사용자는 유효 기간이 설정된 인증서를 이용해 SSH 접속을 시도할 수 있습니다.

 

각 도구의 선택은 조직의 보안 요구, 기술 스택, 그리고 관리 편의성을 고려하여 결정해야 합니다. 이 도구들은 강력한 보안과 효율적인 관리를 제공하며, 비용 효율적인 방식으로 Short-lived SSH 인증서를 구현하는 데 도움을 줍니다.

BastionXP

Tightening SSH access using short-lived SSH certificates - BastionXP

SSH 공개 키 기반 인증은 여러 보안 문제를 가지고 있으며, 이를 해결하기 위해 SSH 인증서 기반 인증 방식이 제안되었습니다. BastionXP SSH 인증서 관리자는 SSH 인증서의 배포를 자동화하고 단기 인증서 발급, 세션 기록, 모니터링 및 로깅 기능을 통해 보안을 강화합니다.

 

기존의 SSH 공개 키 인증 방식은 관리가 복잡하고 시간이 많이 소요되며, 공개 키와 개인 키를 각 호스트 및 사용자 장치에 복사해야 합니다. 또한, 공개 키는 만료되지 않아 주기적인 교체가 필요 없으므로 보안 리스크가 계속 유지됩니다.

 

SSH 인증서 기반 인증은 각 사용자와 호스트에 대해 별도의 인증서를 발급하고, 인증서에는 만료일이 명시되어 있어 일정 기간 후 자동으로 만료됩니다. 이로 인해 보안 정책에 따라 주기적인 인증서 갱신이 필요합니다. 이 방식은 호스트 인증 기관(Host CA)과 사용자 인증 기관(User CA)을 통해 구현됩니다.

 

BastionXP는 중앙 집중식 SSH 인증서 관리 시스템을 제공하며, SSO와 MFA를 통해 인증을 자동화합니다. 단기 사용자 인증서는 기본적으로 8시간 후에 만료되며, 이는 조직의 보안 정책에 따라 조정될 수 있습니다.

 

BastionXP는 또한 호스트 서버, 점프 호스트, 인증 유틸리티 등을 포함하여 완전한 SSH 보안 솔루션을 제공합니다. 이는 기존의 OpenSSH 서버 및 클라이언트와 함께 사용할 수 있으며, 보안 강화를 위한 다양한 기능을 지원합니다.

 

결론적으로, SSH 인증서 기반 인증은 기존의 공개 키 기반 인증의 여러 단점을 해결하며, 보다 안전하고 관리가 용이한 방법을 제공합니다. 이를 통해 조직은 보다 효율적으로 SSH 액세스를 관리하고 보안을 강화할 수 있습니다.

 

BastionXP는 SSH 인증서 관리를 자동화하고, 단기 인증서 발급, 세션 기록, 모니터링 및 로깅 등의 보안 서비스를 제공하여 인증 관리를 간소화합니다.

 

전통적인 SSH 공개 키 방식의 문제점

  1. 키 관리의 복잡성: 각 사용자와 호스트에 대한 공개 키와 개인 키를 생성, 복사, 설정하는 과정이 번거롭습니다.
  2. 키의 영구성: SSH 키는 만료일이 없어 영구적으로 사용될 수 있으며, 이는 주기적인 키 교체를 간과하게 만듭니다.
  3. 보안 취약점: 동일한 키를 여러 호스트에 사용할 경우 공격 범위가 넓어질 수 있습니다.

SSH 인증서 기반 인증의 장점

  1. 자동화된 인증서 관리: BastionXP를 통한 중앙 집중식 인증서 관리로 인증서 배포 및 갱신이 자동화됩니다.
  2. 단기 인증서의 도입: 사용자 인증서는 기본적으로 8시간 후에 만료되어 보안 위험을 최소화합니다.
  3. 롤 기반 접근 제어(RBAC): 인증서는 특정 사용자 또는 호스트에 할당되어 사용자 또는 호스트의 식별이 가능합니다.
  4. 첫 접속 시 신뢰성 검증: 사용자가 서버에 처음 접속할 때, Host CA 인증서를 통해 호스트의 신뢰성을 자동으로 검증합니다.

BastionXP 구성 요소

  1. SSH CA + OIDC SSO 로그인 매니저: 사용자 인증과 인증서 발급을 관리합니다.
  2. 점프 호스트 또는 Bastion 호스트: 인터넷으로부터 보호된 호스트에 안전하게 연결하는 기능을 합니다.
  3. SSHd 서버: 각 호스트 서버에서 실행되며, 인증 서버로부터 호스트 인증서를 다운로드합니다.

인증서 기반 SSH 구성 명령어 예시

  • SSH 클라이언트 설정
    ssh -i /path/to/user/certificate -o CertificateFile=/path/to/user/ca [username]@[hostname]
  • 인증서 갱신 및 관리
    ssh-keygen -s ca_key -I certificate_identity -n username -V +8h /path/to/user/key.pub

SSH 인증서 기반 인증은 공개 키 기반의 많은 보안 문제들을 해결하며, 특히 단기 인증서의 도입으로 인해 보안이 대폭 강화되었습니다. 이러한 방식은 조직의 SSH 인프라 관리를 효율적이고 안전하게 만들어 줍니다.

728x90

댓글