SSH 연결을 어떻게 chroot할 수 있나요?

SSH 연결을 어떻게 chroot할 수 있나요?

SSH를 통해 로그인하는 대부분의(전부는 아님) 사용자에 대해 chroot 감옥을 설정하고 싶습니다. 최신 버전의 openssh에서 가능하다고 들었지만 어떻게 해야 하는지 알 수 없었습니다. How To에서는 이전 버전을 패치하는 것에 대해 모두 이야기하고 있으며 패치는 더 이상 사용할 수 없습니다.

저는 데비안 에칭을 실행하고 있습니다.

답변1

이 목적으로 rssh를 사용하고 있습니다.

당신 말이 맞습니다. 이를 수행하는 새로운 방법이 있으며 이는 최신 SSH 버전에 내장된 기능입니다.

여기에 관한 기사가 있습니다.언데드.

답변2

저는 ssh와 ssh를 통해 다른 서버(외부 세계에 직접 연결되지 않음)에 로그인할 수 있는 사용자 한 명을 설정해야 했습니다. cstamas와 ericmayo의 링크는 좋은 시작이었습니다.

기본적으로 /etc/ssh/sshd_config에 다음을 추가했습니다.

사용자 일치 myuser
  Chroot디렉토리 /chroot/myuser

이제부터는 /chroot/myuser 아래에 chroot 환경을 만들어야 했습니다. /bin/bash 및 /usr/bin/ssh와 필요한 공유 라이브러리를 복사했습니다(ldd에서 이를 표시합니다). 더 큰 환경의 경우 필요한 실행 파일의 정적으로 링크된 버전을 컴파일하는 것이 합리적일 것입니다.

Bash는 즉시 작동했고 ssh가 작동하려면 .ssh 디렉토리를 생성하고 /etc/passwd, /etc/nsswitch.conf 및 /lib/libnss_*를 복사하고 /dev/null, /dev/tty 및 /dev/urandom mknod를 통해.

답변3

mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

/etc/sshd_config 파일을 편집하고 추가해야 합니다.

ChrootDirectory /chroot/%h

그리고 sshd 데몬을 다시 시작하십시오.

솔직히 말해서 sftp가 더 나은 선택이라고 생각합니다.

또한 도움이 된다면 이 URL을 찾았습니다.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

답변4

내가 아는 한 OpenSSH의 새 버전은 SFTP 연결에만 chroot를 허용합니다. 나는 시도했고 작동합니다. 그러나 SSH의 경우 사용 가능한 솔루션은 chrootssh 패치입니다. SourceForge 사이트를 탐색했는데 파일이 없어서 중단된 것 같습니다.

Debian Etch의 경우 여기에 몇 가지 파일이 있습니다:http://debian.home-dn.net/etch/ssh/

여기에는 다른 솔루션이 있습니다.http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html, chrootssh 포함.

관련 정보