FTP 서비스 제한 (chroot 실습)

chroot 설정

** chroot : 사용자 계정의 home 디렉토리를 root로 변경
#chroot_local_user=YES (d:No)
#chroot_list_enable=YES
- chroot_local_user가 NO일 때 chroot_list_file에 지정된 사용자만 chroot를 적용한다.
- chroot_local_user가 YES일 때 chroot_list_file에 지정된 사용자만 chroot를 적용하지 않는다.


#chroot_list_file=/etc/vsftpd/chroot_list
- Default 값 : /etc/vsftpd/chroot_list


#allow_writeable_chroot=YES
- chroot 적용 사용자의 경우 이 설정이 반드시 필요하다.


• chroot 설정은 외부 디렉토리로 연결된 link 디렉토리에 접근도 금지된다. 

 mount 명령을 이용하여 외부 링크파일 디렉토리로 접근 가능
mount --bind [원본 디렉토리] [연결할 디렉토리]

 


 

test case

case 1. chroot_local_user = YES / chroot_list_enable = YES

case 2. chroot_local_user = NO / chroot_list_enable = YES

case 3. chroot_local_user = YES / chroot_list_enable = NO

case 4. chroot_local_user = NO / chroot_list_enable = NO

 

접속계정 : st(chroot_list설정), te

case 1. chroot_local_user = YES / chroot_list_enable = YES

1) vi /etc/vsftpd/vsftpd.conf

 

2) /etc/vsftpd/chroot_list  파일에 일반사용자 st를 넣어준다.

 

3) ftp 서비스를 재시작한다.

systemctl restart vsftpd

 

4) 192.168.10.130 클라이언트에서 ftp 접속

chroot_list에 등록한 사용자 st로 로그인하면 디렉토리 이동이 가능하다.

 

chroot_list에 등록하지 않은 사용자 te로 로그인하면 자신의 home 디렉토리를 루트로 인식한다.

 

▶ chroot_local_user 가 YES, chroot_list_enable 가 YES 이면 chroot_list 파일에 있는 사용자는 chroot를 적용하지 않는다.

 

case 2. chroot_local_user = NO / chroot_list_enable = YES

1) vi /etc/vsftpd/vsftpd.conf

2) /etc/vsftpd/chroot_list  파일에 일반사용자 st를 넣어준다.

 

3) ftp 서비스를 재시작한다.

systemctl restart vsftpd

 

4) 192.168.10.130 클라이언트에서 ftp 접속

chroot_list에 등록한 사용자 st로 로그인하면 자신의 홈 디렉토리를 루트로 인식한다.

 

chroot_list에 등록하지 않은 사용자 te로 로그인하면 상위 디렉토리로 이동이 가능하다.

 

▶ chroot_local_user 가 NO, chroot_list_enable 가 YES 면 chroot_list 파일에 있는 사용자는 chroot를 적용한다.

 

case 3. chroot_local_user = YES / chroot_list_enable = NO

1) vi /etc/vsftpd/vsftpd.conf

cat /etc/vsftpd/vsftpd.conf | grep chroot

 

2) /etc/vsftpd/chroot_list  파일에 일반사용자 st를 넣어준다.

 

3) ftp 서비스를 재시작한다.

systemctl restart vsftpd

 

4) 192.168.10.130 클라이언트에서 ftp 접속

chroot_list에 등록한 사용자 st로 로그인하면 자신의 홈 디렉토리를 루트로 인식한다.

 

chroot_list에 등록하지 않은 사용자 te로 로그인하면 자신의 home 디렉토리를 루트로 인식한다.

 

▶ chroot_local_user 가 YES, chroot_list_enable 가 NO 이면 chroot_list 파일에 상관없이 사용자 모두 chroot를 적용한다.

 

case 4. chroot_local_user = NO / chroot_list_enable = NO

1) vi /etc/vsftpd/vsftpd.conf

cat /etc/vsftpd/vsftpd.conf | grep chroot

 

2) /etc/vsftpd/chroot_list  파일에 일반사용자 st를 넣어준다.

 

3) ftp 서비스를 재시작한다.

systemctl restart vsftpd

 

4) 192.168.10.130 클라이언트에서 ftp 접속

chroot_list에 등록한 사용자 st로 로그인하면 디렉토리 이동이 가능하다.

 

chroot_list에 등록하지 않은 사용자 te로 로그인하면 상위 디렉토리로 이동이 가능하다.

 

▶ chroot_local_user 가 NO, chroot_list_enable 가 NO 이면 chroot_list 파일에 상관없이 사용자 모두 chroot를 적용하지 않는다.

 


 

chroot 로 지정된 사용자 계정 마운트 실습

chroot를 지정해준 st 사용자는 자신의 홈 디렉토리가 / 라 /외부에 있는 곳은 접근 불가능

 

ftp를 통해 192.168.10.133 서버에 접속하여 st로 로그인하면 자신의 홈 디렉토리를 / 로 인식한다.

 

/home 디렉토리와 /home/st 디렉토리 하위에 mkdir 명령으로 abc라는 디렉토리 생성

st 사용자 계정 밑에도 마운트할 abc 디렉토리를 생성해준다.

 

192.168.10.130 컴퓨터에서 ftp접속해서 st 계정에서 잘 마운트 되었는지 확인한다.

 

+ Recent posts