제한된 사용자를 위한 쉘로 /bin/cat을 사용하는 것이 안전합니까?

제한된 사용자를 위한 쉘로 /bin/cat을 사용하는 것이 안전합니까?

유지 관리 작업을 수행하려면 소수의 컴퓨터에 원격으로 로그인해야 하지만 때로는 해당 컴퓨터가 방화벽이나 NAT 뒤에 있을 수도 있습니다.

제가 항상 해왔던 방식은 "명령을 사용하고 비밀번호로 로그인"과 같이 역터널링이 활성화되도록 SSH를 사용하여 내 시스템에 로그인하는 방법에 대해 사용자에게 조언을 제공하는 것입니다.ssh -R 12345:localhost:22 [email protected]xyzzy

uremonte이제 이것은 잘 작동하지만 보안상의 이유로 작업이 끝나면 사용자의 SSH 로그인을 비활성화하고 다시 필요할 때 다시 활성화 해야 합니다. 그렇지 않으면 누군가가 내 관리 프런트엔드 시스템에 로그인하지 않을 수도 있습니다. 그럴 필요도 없고, 내가 터널을 사용하는 동안 합법적인 사용자가 장난을 칠 수도 있다고 말할 수도 없습니다.

나는 로그인한 사람이 셸에서 아무 것도 할 수 없도록 사용자 셸을 설정하는 것을 고려했으며 /etc/passwd연결 은 역방향 터널에서 계속 활성 상태로 유지되었습니다. /bin/cat괜찮은 것 같지만 이로 인해 내 시스템에 구멍이 생기지 않는지 확인하고 싶습니다.

그래서 질문은 이것이 절대적으로 안전한가 하는 것입니다. 이 계정에 로그인한 사람이 고양이 함정에서 벗어날 수 있는 방법이 있나요?

답변1

이것이 케이스를 교체하는 꽤 표준적인 이유입니다. 일반적으로 사용되거나 /bin/false기타 유사한 쉘입니다./bin/cat

일반적으로 탈출할 수 없으며 보안 버그가 있을 /bin/cat가능성도 없습니다 . 그러나 생성과 같은 다른 방법은 여전히 ​​작동할 수 있습니다.cat서비스 거부아니면 방화벽 규칙을 우회하세요.

또 다른, 아마도 더 심각한 문제는 이 internal-sftp모듈 을 sftp./bin/catsftp

특정 사용 사례의 경우 클라이언트에 SSH 액세스를 제공하는 대신 터널이나 VPN을 사용하는 것이 좋습니다.

관련 정보