[CentOS] Linux FTP Server 보안 / 가상 루트 디렉터리 생성 [chroot / xferlog]
Nowhere 와 Now here 의 차이

IT/ㄴ Linux

[CentOS] Linux FTP Server 보안 / 가상 루트 디렉터리 생성 [chroot / xferlog]

TIENE 2023. 7. 26. 17:23
반응형

- FTP에 접속하면 자신의 홈 디렉토리 이외의 디렉토리까지, Server의 디렉토리 구조가 훤히 보인다.

- 보안 관점에서 굉장한 취약점이기 때문에 보안 조치를 통하여, 사용자 접속 후 디렉터리 구조가 보이는 것을 막아야한다.

- 설정 방법은 익명사용자 접근 금지 설정에서 열었던 파일과 동일한 /etc/vsftpd/vsftpd.conf에서 설정한다.

- 설정할 것이 꽤 많아서 복잡할 수 있지만, 하나씩 설정하면서 보안을 한층 강화해보자.

 

 

 

[Linux FTP Server 보안 / 가상 루트 디렉터리 생성]


1. chroot 설정하기

vi /etc/vsftpd/vsftpd.conf

- vsftpd의 주요 설정 파일에서 수정해야한다.

 

xferlog_enable=YES

- ftp Server에 대한 로그인 접속, 업로드 다운로드 기록

 

xferlog_file=/var/log/xferlog

- xferlog 파일 저장 위치 설정

 

chroot_local_user=YES

- /etc/vsftpd/chroot_list 내부의 사용자가 없어도 전체 적용된다.

- NO로 변경하면, 파일 안에 설정된 사용자만 chroot가 적용된다.

- chroot_local_user가 NO일 때 chroot_list_file에 지정된 사용자만 chroot를 적용한다.

 

chroot_list_enable=YES

- chroot 기능을 켠다.

 

chroot_list_file=/etc/vsftpd/chroot_list

- 주석 제거하고 /etc/vsftpd/chroot_list 파일을 생성해야한다.

- 이 파일 안에 사용자가 있으면, chroot가 적용되는데 관련 내용은 후술한다.

- Default  : /etc/vsftpd/chroot_list

 

allow_writeable_chroot=YES

- chroot이 적용된 사용자가 접속 후, 쓰기 권한 부여 권한 설정이다.

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

 

 

2. chroot 설정 확인

- restart 후에 FTP Client 프로그램으로 접속했다.

- / 이라는 최상위 디렉토리에 있는 것 같지만 가상의 루트 디렉토리에 있는 것이며, 여기에서 파일을 생성하면 자신의 홈 디렉토리에서 생성된다.

 

다른 디렉토리가 보이지 않도록 설정 완료

 

- 생성된 파일과 디렉토리가 tiene라는 일반 사용자의 홈 디렉토리에 위치하고 있다.

 

- /var/log/xferlog 에서 관련 Log를 찾아볼 수 있다.

- i (input) = 업로드

- o (output) =  다운로드

 

 

 


- chroot_local_user 설정에 대해 더 살펴보자.

- 테스트는 다음과 같다.

- 사용자 tiene chroot를 적용하지 않고 test188 적용하여 test188 디렉토리를 가상의 root 변경한다.

 

- chroot_local_user가 NO일 때 chroot_list_file에 지정된 사용자만 chroot를 적용한다.

 

 

- chroot_local_user YES일 때 chroot_list_file에 지정된 사용자만 chroot를 적용하지 않는다.


반응형