SSH에서 PermitUserEnvironment의 보안 위험


11

env 변수를 ssh 셸에 전달하기 위해 PermitUserEnvironment파일 사용 및 파일과 관련하여 꽤 많은 게시물을 읽었습니다 ~/.ssh/environment. 공식 sshd 문서 및 기타 리소스는이 작업을 수행하는 데있어 일부 보안 위험을 암시합니다.

환경 처리를 활성화하면 LD_PRELOAD와 같은 메커니즘을 사용하여 일부 구성에서 액세스 제한을 무시할 수 있습니다.

활성화 할 가능성이있는 보안 문제는 무엇입니까 PermitUserEnvironment? 이 환경 변수에 DB 연결 세부 정보를 보유하려고했습니다.이 것이 좋습니다?


나는 sshd_config를 맨 페이지를 몇 단어를 추가하도록 요청이 문제를 명확히, OpenSSH의 프로젝트와 버그 리포트를 제출 : bugzilla.mindrot.org/show_bug.cgi?id=2317
플로린 안드레이

답변:


16

우선, 사용자 액세스 제한으로 멋진 작업을 시도하지 않으면 (즉, 대화식 셸 액세스를 제공하는 경우) 파일 사용을 허용 할 때 추가적인 보안 위험 이 없을 수 있습니다 .ssh/environment. 사용자는 해당 파일을 사용하여 셸에서 대화식으로 수행 할 수도 있습니다.

환경 처리를 활성화하면 LD_PRELOAD와 같은 메커니즘을 사용하여 일부 구성에서 액세스 제한을 무시할 수 있습니다.

SSH 강제 명령을 사용하여 사람들이 ssh를 통해 수행 할 수있는 작업을 제한하는 경우 (예를 들어, 사람 만 sftp또는 로만 사용하도록 제한하는 경우 scp) 누군가와 같은 환경 변수를 설정하면 LD_PRELOAD(또는 가능할 수도 있음 PATH) 기본 라이브러리 호출을 자체 코드로 대체하여 제한 사항. 반면에 .ssh/environment사용자를 대신하여 생성하고 관리 할 수없는 경우 위험은 상대적으로 작습니다.

특정 유스 케이스에 대해 더 많이 알지 못하면 명확한 대답을 제공하기가 어렵습니다.


rsa 키를 통해서만 2 ~ 3 명의 신뢰할 수있는 당사자 (자체 조직 내 개발자)의 서버에 액세스 할 수 있습니다. 그래서 당신이 좋아 소리가 무슨 말을하는지에서
롭 종복

귀하의 답변에 따르면, 모든 ssh 계정이 전체 bash 액세스를 제공하는 경우 (sudo 없음)이 옵션을 활성화하면 보안에 미치는 영향에 대해 잠을 잃지 않아야합니다. 옳은?
Florin Andrei 1

맞습니다. 전체 bash 액세스를 제공하는 경우 사람들은 원하는 환경 변수를 이미 설정할 수 있습니다.
Larsks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.