Tag Archives: chroot

vsftpd 사용자 계정 chroot 설정하기

사용자 계정의 Jail 설정을 위해서는 다양한 방법이 존재합니다. 한번 알아볼까요?

다음의 설정들은 모두 /etc/vsftpd/vsftpd.conf 파일에 추가하면 됩니다.

1. 단순히 사용자 계정에 가둘(?) 경우

chroot_local_user=YES

위와 같은 설정을 할 경우 사용자들은 자신의 계정에서 상위 디렉토리로 이동할수 없게 됩니다.

2. 특정 사용자만을 Jail 설정할 경우

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_list에 등록되어있는 계정에만 chroot가 적용됩니다.

3. 특정 사용자를 제외한 나머지 사용자만을 Jail 설정할 경우

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

2와는 반대로 chroot_list에 등록된 계정을 제외한 나머지가 자신의 계정에 chroot가 걸립니다.

4. 계정마다 동적으로 설정할 경우

chroot_local_user=YES
passwd_chroot_enable=YES

위와 같이 설정을 하게 되면 /etc/passwd 파일을 참고하여 jail 설정을 할 수 있게 됩니다.

theeye:x:600:100::/home/./theeye:/bin/bash

/etc/passwd 파일을 수정하여 경로에 .을 찍게 되면 그 지점이 chroot지점이 됩니다.

OpenSSH 5.x chroot 설정하기

지금까지 chroot 환경의 SSH를 구동하기 위해서는 session.c파일을 조금 수정할 필요가 있었습니다. 지금까진 http://chrootssh.sourceforge.net/ 에서 제공하는 패치를 이용해 왔습니다. 하지만 5.x 대 부터는 기본적으로 chroot를 제공하게 변경되었습니다.

1. 우선 opensshd를 최신버젼으로 업데이트.

2. Jail구성을 할 디렉토리에 필요한 파일 복사 [참고]

/chroot 디렉토리에 Jail 구성을 할 경우
/chroot밑에 bin, dev, etc, lib, usr 가 존재해야 한다.

3. chroot를 적용할 사용자를 하나의 그룹으로 통일

4. sshd_config 파일에 다음의 설정 내용 추가 (적용할 그룹이 chrootgroup 일 경우)

Match group chrootgroup
    ChrootDirectory /chroot

5-1. passwd의 유저 홈 디렉토리 변경

$ vipw

user:x:500:501::/chroot/home/user:/bin/bash → user:x:500:501::/home/user:/bin/bash

5-2. 혹은 가짜 home디렉토리를 생성 (이게 더 간단함)

$ cd /home
$ ln -s . home

6. 작동 테스트

참고 : http://www.djatlantic.net/?p=334