SSH 사용자가 /home/%u의 내용만 탐색하도록 제한하는 방법

SSH 사용자가 /home/%u의 내용만 탐색하도록 제한하는 방법

OpenSSH 구성만 사용하여 사용자를 /home/%u 디렉터리로 제한할 수 있습니까? 인터넷에서 찾은 지침에 따라 SSH 서버를 중지하고 다음을 파일에 추가했습니다 sshd_config.

Match group sftpusers
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no

그런 다음 SSH 서버를 다시 시작했습니다.

sftpusers참고로 사용자를 그룹 에 추가했습니다

내 사용자는 여전히 IE를 탐색할 수 있으며 cat 명령을 사용하여 내 시스템의 전체 파일 구조에 있는 파일 내용을 cd /나열할 수 있습니다 ( ).cat /usr/bin/test.sh

저는 Ubuntu Server 12.04 LTS를 실행하고 있습니다.

답변1

첫째, 가 아니더라도 사용자의 집에 대한 확장 으로 ChrootDirectory %h대신 사용하는 것이 좋습니다 ./home/%u%h/home/$USER

이제 실제 문제를 살펴보겠습니다. internal-sftp명령을 강제로 실행해야 합니다. 다음 구성은 나에게 적합하며 귀하에게도 적합합니다.

Match group sftp
    ForceCommand internal-sftp
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no

사용자의 집은 root소유되어야 하며 위에서 언급한 755 권한을 가지고 있어야 합니다.

drwxr-xr-x 22 root root 4.0K Nov 24  2011 /home/testuser

답변2

사용fakechroot

  1. SSH에 사용할 사용자 및 디렉터리를 준비합니다. 예를 들어 /bin특정 명령을 디렉터리에서 사용자 디렉터리로 복사 할 수 있습니다 bin. 사용자 이름은 test이고 사용자 디렉터리는 이라고 가정합니다 /home/test.

  2. 설치 fakechroot패키지.

    # Debian-based distros
    sudo apt install fakechroot
    
  3. 편집할 OpenSSH 서버 구성 파일(예 /etc/ssh/sshd_config: )을 엽니다.

  4. 구성 파일에 다음 줄을 추가합니다(또는 기존 줄이 있는 경우 교체).

    # Replace test with your user of choice
    Match User test
        ForceCommand fakechroot chroot /home/test
        # Other options
    
  5. 문서를 저장합니다. 원하는 특정 포트에서 OpenSSH 서버를 시작합니다. 이제 SSH를 통해 로그인을 시도해 보세요. 모든 것이 예상대로 작동해야 합니다.

도움이 되었기를 바랍니다!

답변3

나는 이 질문이 오래되었다는 것을 알고 있지만 이것은 나에게 도움이 되었습니다.

chmod o-x /home/*

sudo에서 위 명령을 실행하면 사용자가 자신의 홈 디렉터리로 제한됩니다.

관련 정보