저는 Ansible을 처음 사용합니다. 지금까지 본 대부분의 VPS 프로비저닝 가이드는 다음과 같습니다.
- 로그인에서 루트 비활성화
ssh
(비밀번호가 아닌) 로그인 만 할 수있는 새로운 사용자 생성- 암호가없는 sudo 권한으로 새 사용자를
wheel
그룹에 추가
나는 (1)과 (2)를 이해하지만 (3)은 이해하지 못한다.
분명히 암호 sudo
가없는 것은 root
? 로 로그인하는 것과 같습니다 . 나는 이점 (편의성)을 이해하지만 이것이 매우 안전하지 않습니까?
나는 관리자가 다양한 방식으로 네트워크를 운영한다는 것을 알고 있으며 이것은 “주관적”이라고 할 수 있지만, 이것은 매우 일반적인 관행이며, 다양한 공식 문서와 호스팅 회사가 게시 한 가이드에도 나와 있습니다. 상식에 어긋납니다. 그 뒤에 논리는 무엇입니까?
답변
서비스 계정이 암호없는 sudo를 수행 할 수 있으면 해당 계정에 대한 액세스를 보호해야합니다.
계정 에 비밀번호가 없고 ssh 키만 사용하여 로그인하면 ssh 개인 키를 안전하게 유지할 수있는 경우이를 수행합니다.
답변
(2)에서 생성 된 새 사용자는 비밀번호없이 SSH 키로 만 로그인 할 수 있습니다. SSH 키는 간접 루트 액세스를 제공합니다. 따라서 이것은 키로 루트 로그인을 허용하는 것과 같습니다.
계정에 비밀번호가 없으므로 sudo
비밀번호를 요청할 수 없습니다 . 또한 Ansible은 명령을 실행할 수 있어야합니다. 키와 동일한 위치에 추가 암호를 제공해도 보안이 향상되지는 않습니다.
답변
문제는 관리자와 자동화가 가능하기 때문에 스크립트를 실행하기 위해 비밀번호를 입력해야하는 경우 실제로 가장 좋은 방법은 아닙니다. 또한 sudo의 비밀번호를 파일이나 데이터베이스에 저장하는 것은 안전하지 않으며 플레이 북을 실행할 때마다 비밀번호를 확보 할 수 있습니다. 따라서 암호없는 sudo와 ssh 키를 사용한 인증의 조합은 플레이 북을 실행하여 보안을 유지하고 올바른 문제를 방지하는 가장 좋은 방법입니다. 또한 관리자이며 플레이 북에서 프로그래밍 한 내용을 알고 있습니다. 따라서 플레이 북은 서버를 파괴 할 수 없습니다.