- 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를 적용하지 않는다.
'IT > ㄴ Linux' 카테고리의 다른 글
[CentOS] Linux FTP Server 보안 / 사용자 접속 제한 [vsftpd / ftpusers / user_list] (0) | 2023.07.26 |
---|---|
[CentOS] Linux FTP Server 동일 디렉터리 공유 방법 [chmod / vsftpd] (0) | 2023.07.26 |
[CentOS] Linux FTP Server 보안 / 익명사용자 접근 설정 [Anonymous / vsftpd] (0) | 2023.07.26 |
[CentOS] Linux FTP Server 구축 및 정리 [Active 모드 / Passive 모드 / vsftpd] (0) | 2023.07.26 |
[CentOS] Linux GUI 원격 접속 정리 [VNC / XRDP] (0) | 2023.07.25 |