유지 관리 작업을 수행하려면 소수의 컴퓨터에 원격으로 로그인해야 하지만 때로는 해당 컴퓨터가 방화벽이나 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/cat
sftp
특정 사용 사례의 경우 클라이언트에 SSH 액세스를 제공하는 대신 터널이나 VPN을 사용하는 것이 좋습니다.