OpenSSH 4.9p1 릴리스에서는 더 이상 타사 해킹이나 복잡한 chroot 설정에 의존하여 사용자를 홈 디렉토리로 제한하거나 SFTP 서비스에 액세스 할 수 있습니다.
/ etc / ssh / sshd_config (일부 배포판에서는 / etc / sshd_config)를 편집하고 다음 옵션을 설정하십시오.
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
“일치”지시문이 파일의 끝에 있는지 확인하십시오. 이것은 OpenSSH에게 sftp 그룹의 모든 사용자가 자신의 홈 디렉토리 (ChrootDirectory 명령에서 % h가 나타내는)에 chroot되어야 함을 알려줍니다.
chroot하려는 사용자의 경우 다음을 사용하여 sftp 그룹에 추가하십시오.
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
위의 usermod 명령은 사용자 joe를 sftp 그룹에 추가하고 쉘을 / bin / false로 설정하여 절대로 쉘 액세스를 얻을 수 없게합니다. chown 및 chmod 명령은 디렉토리에 필요한 권한을 설정합니다. 이러한 권한이 설정되면 사용자는 파일을 업로드 및 다운로드 할 수 있지만 루트 디렉토리에 디렉토리 또는 파일을 작성할 수 없습니다
Chrooting 쉘 계정은 사용자의 홈 디렉토리에서 특정 장치 파일과 쉘을 사용할 수 있어야하기 때문에 조금 더 복잡합니다. 다음 명령은 Mandriva Linux에서 매우 기본적인 chroot 시스템을 설정합니다.
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
위와 같이 사용자 joe는 ssh를 입력 할 수 있으며 chroot로 제한됩니다. 불행히도, 이것은별로하지 않지만 설정 방법에 대한 아이디어를 제공합니다. 제공하려는 내용에 따라 추가 라이브러리 및 바이너리를 설치해야합니다.
chroot 만들기
dchroot 및 debootstrap 패키지를 설치하십시오.
관리자 (예 : sudo 사용)로서 chroot에 대한 새 디렉토리를 작성하십시오. 이 절차에서는 디렉토리 /var/chroot
가 사용됩니다. 이렇게하려면 sudo mkdir /var/chroot
명령 줄에 입력하십시오.
관리자 /etc/schroot/schroot.conf
는 텍스트 편집기에서 엽니 다
. 을 입력 한 cd /etc/schroot
다음을 입력하십시오 gksu gedit schroot.conf
. 파일을 편집 할 수 있습니다.
다음 줄을 추가 한 다음 schroot.conf
파일을 저장하고 닫습니다. 대체
your_username
사용자 이름과 함께.
[lucid] description = 우분투 루시드 위치 = / var / chroot 우선 순위 = 3 사용자 = your_username 그룹 = sbuild root-groups = root
터미널을 열고 다음을 입력하십시오.
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
chroot에 Ubuntu 10.04 (Lucid Lynx)의 기본 '설치'가 생성됩니다. 패키지를 다운로드하는 데 시간이 걸릴 수 있습니다. 참고 : lucid를 선택한 Ubuntu 버전으로 바꿀 수 있습니다. 참고 : mirror.url.com
유효한 로컬 아카이브 미러의 URL로 위의 내용 을 변경해야 합니다. 기본 chroot가 생성되었습니다. sudo chroot /var/chroot
chroot 내의 루트 쉘로 변경하려면 입력 하십시오.
chroot 설정
chroot를 설정하기 위해 수행 할 수있는 몇 가지 기본 단계가 있으며 DNS 확인 및에 대한 액세스와 같은 기능을 제공합니다 /proc
.
참고 : chroot 외부의 쉘에이 명령을 입력하십시오.
/proc
chroot에 파일 시스템 을 마운트하려면 다음을 입력하십시오 (프로세스 관리에 필요함).
sudo mount -o bind /proc /var/chroot/proc
chroot 내에서 DNS 확인을 허용하려면 다음을 입력하십시오 (인터넷 액세스에 필요).
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
chroot에 기본적으로 설치되는 패키지는 거의 없습니다 (sudo가 설치되어 있지 않더라도). 사용하여 apt-get install package_name
패키지를 설치합니다.