env 변수를 ssh 셸에 전달하기 위해 PermitUserEnvironment
파일 사용 및 파일과 관련하여 꽤 많은 게시물을 읽었습니다 ~/.ssh/environment
. 공식 sshd 문서 및 기타 리소스는이 작업을 수행하는 데있어 일부 보안 위험을 암시합니다.
환경 처리를 활성화하면 LD_PRELOAD와 같은 메커니즘을 사용하여 일부 구성에서 액세스 제한을 무시할 수 있습니다.
활성화 할 가능성이있는 보안 문제는 무엇입니까 PermitUserEnvironment
? 이 환경 변수에 DB 연결 세부 정보를 보유하려고했습니다.이 것이 좋습니다?
답변
우선, 사용자 액세스 제한으로 멋진 작업을 시도하지 않으면 (즉, 대화식 셸 액세스를 제공하는 경우) 파일 사용을 허용 할 때 추가적인 보안 위험 이 없을 수 있습니다 .ssh/environment
. 사용자는 해당 파일을 사용하여 셸에서 대화식으로 수행 할 수도 있습니다.
환경 처리를 활성화하면 LD_PRELOAD와 같은 메커니즘을 사용하여 일부 구성에서 액세스 제한을 무시할 수 있습니다.
SSH 강제 명령을 사용하여 사람들이 ssh를 통해 수행 할 수있는 작업을 제한하는 경우 (예를 들어, 사람 만 sftp
또는 로만 사용하도록 제한하는 경우 scp
) 누군가와 같은 환경 변수를 설정하면 LD_PRELOAD
(또는 가능할 수도 있음 PATH
) 기본 라이브러리 호출을 자체 코드로 대체하여 제한 사항. 반면에 .ssh/environment
사용자를 대신하여 생성하고 관리 할 수없는 경우 위험은 상대적으로 작습니다.
특정 유스 케이스에 대해 더 많이 알지 못하면 명확한 대답을 제공하기가 어렵습니다.