SSH, The Secure Shell: The Definitive Guide, 2nd Edition
by Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes
원격 홈 디렉터리(NFS, AFS)
SSH 설치의 잠재적인 보안 위험으로 NFS를 여러 번 언급했습니다. 이제 이 주제에 대해 좀 더 자세히 살펴보겠습니다.
오늘날과 같은 유비쿼터스 네트워킹 환경에서는 Windows 시스템의 경우 SMB, 유닉스 시스템의 경우 NFS 및 AFS와 같은 네트워크 파일 공유 프로토콜을 통해 홈 디렉토리를 여러 컴퓨터에서 공유하는 것이 일반적입니다. 이는 편리하지만 기술 및 보안과 관련된 몇 가지 SSH 문제를 야기합니다.
SSH는 인증 및 권한 부여에 관한 중요한 결정을 내리기 위해 대상 계정의 홈 디렉터리에 있는 파일을 검사합니다. 비밀번호를 제외한 모든 인증 방식에 대해 홈 디렉터리에 있는 다양한 제어 파일(authorized_keys, .shosts, .k5login 등)을 통해 계정에 대한 SSH 액세스를 허용합니다. 따라서 두 가지가 중요합니다:
홈 디렉토리는 변조로부터 안전해야 합니다.
SSH는 홈 디렉터리에 대한 액세스 권한이 있어야 합니다.
10.7.1 NFS 보안 위험
공유 홈 디렉터리의 보안은 그다지 높지 않은 경우가 많습니다. NFS 프로토콜에는 보안을 강화한 버전과 구현이 있지만, 대부분의 설치 환경에서는 매우 안전하지 않습니다. 신뢰할 수 있는 인증 방식을 전혀 사용하지 않는 경우가 많으며, 오히려 소스 IP 주소와 DNS가 클라이언트를 식별하고 권한 있는 소스 포트가 신뢰성을 증명하는 rsh와 같은 방식을 사용하는 경우가 많습니다. 그런 다음 NFS 요청에 인코딩된 UID 번호를 믿고 해당 사용자로 액세스 권한을 부여합니다. 홈 디렉터리에 침입하는 방법은 간단합니다:
유아이디를 찾아서 유닉스를 실행하는 노트북에서 해당 유아이디로 계정을 만듭니다.
신뢰할 수 있는 호스트의 IP 주소를 빌려 해당 머신을 네트워크에 연결합니다.
uid가 있는 계정에 마운트 명령( su )을 실행하고 파일 검색을 시작합니다.
이 시점에서 침입자는 authorized_keys에 다른 공개 키를 쉽게 추가할 수 있으며 계정은 활짝 열려 있습니다. 교훈은 시스템을 설계할 때 SSH의 보안이 홈 디렉터리의 보안보다 더 강력하지 않다는 점을 명심해야 한다는 것입니다. 최소한 보안과 편의성 사이의 절충점을 인식하고 있어야 합니다. 안전하지 않은 NFS를 사용 중이고 이 약점을 피하고 싶은 경우라면 가능합니다:
UserConfigDirectory옵션이 있는 Tectia를 사용하여 사용자별 SSH 구성 파일을 일반적으로 ~/.ssh2에, 다른 곳(예: /var/ssh/<사용자 이름>)에 배치합니다. 여전히 소유자가 권한을 제어할 수 있도록 권한을 설정할 수 있지만 NFS를 통해 공유되지 않으므로 보안에 취약하지 않습니다. OpenSSH에서도 동일한 작업을 수행할 수 있지만 이러한 구성 옵션이 없으므로 소스 코드를 편집해야 합니다..shosts 제어 파일은 취약하며 위치를 변경할 수 없으므로 호스트 기반 인증을 해제하세요. 또는 호스트 기반 인증을 사용하려면
IgnoreRhosts옵션을 설정하세요. 이렇게 하면 sshd가 ~/.shosts를 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access