암호가없는 sudo를 가진 익명 사용자를 갖는 것이 안전하지 않습니까?


10

저는 Ansible을 처음 사용합니다. 지금까지 본 대부분의 VPS 프로비저닝 가이드는 다음과 같습니다.

  1. 로그인에서 루트 비활성화
  2. ssh(비밀번호가 아닌) 로그인 만 할 수있는 새로운 사용자 생성
  3. 암호가없는 sudo 권한으로 새 사용자를 wheel그룹에 추가

나는 (1)과 (2)를 이해하지만 (3)은 이해하지 못한다.

분명히 암호 sudo가없는 것은 root? 로 로그인하는 것과 같습니다 . 나는 이점 (편의성)을 이해하지만 이것이 매우 안전하지 않습니까?

나는 관리자가 다양한 방식으로 네트워크를 운영한다는 것을 알고 있으며 이것은 "주관적"이라고 할 수 있지만, 이것은 매우 일반적인 관행이며, 다양한 공식 문서와 호스팅 회사가 게시 한 가이드에도 나와 있습니다. 상식에 어긋납니다. 그 뒤에 논리는 무엇입니까?


1
Ansible은 관리 작업을 자동화하기위한 것이기 때문에 일반적으로 최상위 (루트) 레벨 액세스가 필요하므로 "암호없는 sudo"가 필요합니다. 그러나 시스템에서 사용 가능한 명령의 서브 세트 만 실행해야하는 경우보다 자세한 sudo 구성을 사용하여 해당 명령으로 만 잠글 수 있습니다. 암호가없는 sudo는 루트가 할 수있는 모든 것에 대한 액세스를 반드시 의미하지는 않습니다 (그러나 사용자가 sudo를 통해 sudo 구성을 수정하여 잠재적으로 더 큰 제어권을 부여 할 수 있음을 깨닫게되면이를 시행하기가 어렵습니다 ...).
David Spillett 19.

@DavidSpillett 나는 sudoers 파일에서 허용 할 sudo 명령을 정의하는 것에 대해 궁금해했지만 복잡한 파이썬 명령을 통해 해석하여 모든 것이 가능한 곳을 읽었습니다.
lonix

답변:


18

서비스 계정이 암호없는 sudo를 수행 할 수 있으면 해당 계정에 대한 액세스를 보호해야합니다.

계정 에 비밀번호가 없고 ssh 키만 사용하여 로그인하면 ssh 개인 키를 안전하게 유지할 수있는 경우이를 수행합니다.


그래서 나는이 협약에 의해 혼란스러워하는 느낌에있어 "정렬 한"상태입니다. 그러나 이것은 필요 / 실용주의에 의한, 불가사의 한 협약입니다.
lonix

따라서 핵심 보안을 VPS에서 로컬 시스템으로 "이동"할 수 있으며, 여기에는 사용 가능한 계정의 ssh 키가 포함되어 있습니까? 이 경우 약점은 VPS 자체가 아니라 오히려 나입니다! 그리고 자동화가 제공하는 편의성을 위해 ssh 키를 보호하는 데 더욱주의를 기울여야합니다.
lonix

6
ssh-agent로 보호되는 암호문 인 ssh 키는 상당히 좋은 자격 증명입니다.
존 마호 발트

@lonix 모든 보안 시스템에는 자격 증명이 필요합니다. 보안 시스템은 이러한 자격 증명을 확보하는 데 필요한 수단만큼 안전합니다. 이러한 자격 증명을 사용하면 100 % 액세스 할 수 있기 때문입니다. 따라서 SSH 키 (또는 루트 암호 등)를 올바르게 보호하지 않으면 VPS를 보호 할 수 없습니다. 비밀번호없는 sudo를 구성한다는 사실은이 관점에서 아무 것도 의미하지 않으므로 비밀번호로 sudo를 활성화해도 SSH 키를 보호해야한다는 사실은 변경되지 않습니다.
Giacomo Alzetta

@GiacomoAlzetta 나는 위의 의미는 책임이 원격에서 로컬 시스템으로 옮겨지고 있다는 것을 알고 있습니다. sudo 에스컬레이션은 비밀번호없이 수행되므로 취약점이 로컬입니다.
lonix

4

(2)에서 생성 된 새 사용자는 비밀번호없이 SSH 키로 만 로그인 할 수 있습니다. SSH 키는 간접 루트 액세스를 제공합니다. 따라서 이것은 키로 루트 로그인을 허용하는 것과 같습니다.

계정에 비밀번호가 없으므로 sudo비밀번호를 요청할 수 없습니다 . 또한 Ansible은 명령을 실행할 수 있어야합니다. 키와 동일한 위치에 추가 암호를 제공해도 보안이 향상되지는 않습니다.


2

문제는 관리자와 자동화가 가능하기 때문에 스크립트를 실행하기 위해 비밀번호를 입력해야하는 경우 실제로 가장 좋은 방법은 아닙니다. 또한 sudo의 비밀번호를 파일이나 데이터베이스에 저장하는 것은 안전하지 않으며 플레이 북을 실행할 때마다 비밀번호를 확보 할 수 있습니다. 따라서 암호없는 sudo와 ssh 키를 사용한 인증의 조합은 플레이 북을 실행하여 보안을 유지하고 올바른 문제를 방지하는 가장 좋은 방법입니다. 또한 관리자이며 플레이 북에서 프로그래밍 한 내용을 알고 있습니다. 따라서 플레이 북은 서버를 파괴 할 수 없습니다.


플레이 북 시스템을 손상 시킬 수 있지만 별도의 테스트 환경 만 키를 사용하더라도 프로덕션 호스트는 손상되지 않습니다.
John Mahowald 19.

정확하게, 이것은 생산적인 시스템에서 작업 할 때 희망 사항입니다.
NicoKlaus

1
Ansible에는 bitesen, hashicorp vault, keepass 등과 같은 많은 타사 비밀 저장 시스템에 비밀을 저장할 수있는 '소형 볼트'와 플러그인 / 모듈 / 라이브러리가 있습니다.
Zoredache
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.