많은 서버에 대한 SSH 액세스 게이트웨이

많은 서버에 대한 SSH 액세스 게이트웨이

Ansible을 통해 현재 3개의 DevOps로 90개가 넘는 여러 서버를 관리하고 있습니다. 모든 것이 잘 작동하고 있지만 현재는 큰 보안 문제가 있습니다. 각 devop은 자체 로컬 SSH 키를 사용하여 서버에 직접 액세스합니다. 각 devop은 랩톱을 사용하며 각 랩톱은 잠재적으로 손상되어 프로덕션 서버의 전체 네트워크가 공격에 노출될 수 있습니다.

저는 액세스를 중앙에서 관리하여 특정 키에 대한 액세스를 차단하는 솔루션을 찾고 있습니다. bitbucket이나 github에 키를 추가하는 방법과 다르지 않습니다.

내 머리 꼭대기에서 솔루션은 하나의 시스템, 게이트웨이에서 원하는 프로덕션 서버까지의 터널일 것이라고 가정합니다. 게이트웨이를 전달하는 동안 요청은 새 키를 선택하여 프로덕션에 액세스하는 데 사용합니다. 섬기는 사람. 결과적으로 게이트웨이에 대한 액세스를 거부함으로써 몇 초 내에 모든 개발에 대한 액세스를 빠르고 효율적으로 종료할 수 있습니다.

여기에 이미지 설명을 입력하세요

이게 좋은 논리인가요? 이 문제를 해결하기 위한 해결책을 이미 본 사람이 있습니까?

답변1

너무 복잡합니다(키가 특정 prod 서버에 액세스할 수 있는지 확인). 게이트웨이 서버를 모든 유효한 키를 허용하는 점프 호스트로 사용한 다음(모든 서버에 대한 액세스를 차례로 제거하는 특정 키에 대한 액세스를 쉽게 제거할 수 있음) 허용된 키만 각 해당 서버에 추가합니다. 그런 다음 점프 호스트를 통해서만 모든 서버의 SSH 포트에 연결할 수 있는지 확인하십시오.

이것이 표준 접근 방식입니다.

답변2

엔지니어는 개발/테스트 환경이 아닌 이상 노트북에서 직접 Ansible을 실행해서는 안 됩니다.

대신 git에서 Runbook을 가져오는 중앙 서버를 보유하세요. 이를 통해 추가 제어(4개 눈, 코드 검토)가 가능합니다.

이를 요새 또는 점프 호스트와 결합하여 액세스를 더욱 제한합니다.

답변3

Netflix는 이러한 상황에 도움이 되는 설정을 구현하고 일부 무료 소프트웨어를 출시했습니다.

이 비디오 보기https://www.oreilly.com/learning/how-netflix-gives-all-its-engineers-ssh-access또는 이 프리젠테이션은https://speakerdeck.com/rlewis/how-netflix-gives-all-its-engineers-ssh-access-to-instances-running-in-production핵심 포인트:

핵심적으로 SSO를 사용하여 엔지니어를 인증한 다음 인스턴스에 대한 요새의 SSH 인증을 위해 단기 인증서와 함께 사용자별 자격 증명을 발급하는 SSH 요새 아키텍처를 검토하겠습니다. 이러한 단기 자격 증명은 분실과 관련된 위험을 줄여줍니다. 이 접근 방식을 통해 액세스 권한을 부여하기 전에 엔지니어의 속도를 늦추는 대신 사실을 감사하고 자동으로 경고할 수 있는 방법을 살펴보겠습니다.

해당 소프트웨어는 여기에서 사용할 수 있습니다.https://github.com/Netflix/bless

전체 솔루션을 구현하지 않더라도 몇 가지 흥미로운 점을 알 수 있습니다.

  • 키 대신 SSH 인증서를 사용합니다. 인증서에 훨씬 더 많은 메타데이터를 넣을 수 있으므로 요구 사항에 따라 많은 제약이 가능하고 감사가 더 간단해집니다.
  • 매우 짧은 기간(예: 5분) 인증서 유효성 사용(인증서가 만료된 후에도 SSH 세션은 열려 있음)
  • 2FA를 사용하여 스크립팅을 어렵게 만들고 개발자가 다른 솔루션을 찾도록 강요
  • 인프라 외부에 있고 실행되는 클라우드에서 제공하는 보안 메커니즘을 통해 적절하게 보호되는 특정 하위 모듈은 각 개발자가 모든 호스트에 액세스할 수 있도록 인증서 생성을 동적으로 처리합니다.

답변4

OneIdentity(전 Balabit) SPS이 시나리오에 꼭 필요한 것입니다. 이 어플라이언스를 사용하면 기본적으로 모든 컴퓨터에서 사용자 ID를 관리하고, 사용자 행동을 추적하고, 모니터링 및 경고하고, 나중에 검토하기 위해 사용자가 수행하는 모든 작업을 색인화할 수 있습니다.

관련 정보