SFTP 기능 "로컬 쉘로 이스케이프" 사용을 제한하는 방법은 무엇입니까?

SFTP 기능 "로컬 쉘로 이스케이프" 사용을 제한하는 방법은 무엇입니까?

파일 서버의 액세스를 제한하기 위해 다음 구성을 설정했습니다.

파일 서버에서(Debian Wheezy)

  • data-reader이름이 지정된 그룹에 집도 없고 쉘도 없는 사용자를 만듭니다 data.
  • 루트가 소유한 디렉터리와 그룹이 액세스할 수 있는 하위 디렉터리를 만듭니다 /somewhere/share/./somewhere/share/data/data
  • 다음 구성을 추가합니다 /etc/sshd_config.
    Match group data
        ChrootDirectory /somewhere/share
        ForcedCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no
    

이렇게 하면 data-readerSFTP를 사용하여 디렉터리의 파일만 읽을 수 있습니다 /somewhere/share/data. 좋아요

클라이언트에서(또 다른 데비안)

sftp data-reader@<server_ip>서버에 접속하는데 사용됩니다 . SFTP 콘솔에서 읽기 전용 액세스를 위해 SFTP 명령에 또는 등을 사용할 수 있지만 /somewhere/share/data다른 경로는 볼 수 없습니다. 좋아요! 이것이 내가 원하는거야.lsget

하지만다음은 좋은 명령 목록입니다 help.

!    Escape to local shell

내가 달리면

!ls / 

/실제로 서버에 있는 모든 파일을 볼 수 있어요! 모든 파일의 내용을 볼 수 있습니다. 하지만 나는 그것을 원하지 않습니다. 사용자가 자신의 디렉토리를 종료할 수 없도록 하고 싶습니다.

이 "escape" 명령에 대한 액세스를 제한하는 방법이 있습니까?

당신의 도움을 주셔서 감사합니다.

답변1

로컬 쉘로 탈출한다는 것은 사용자가 이제 클라이언트에 쉘을 가지고 있다는 것을 의미합니다.아니요서버에서. 두 시스템의 /tmp에 있는 파일(다른 이름!)을 터치하면 차이점을 확인할 수 있습니다.

관련 정보