728x90

 

FTP 상위디렉토리 접근금지(FTP chroot) 설정

 

리눅스에서 사용하는 FTP서버용 솔루션으로는 proftpd vsftpd가 주로 사용된다.

 

vsftpd proftpd에 비해서 속도와 보안, 성능이 뛰어나며 무엇보다 안정성을 보장할수 있는 훌륭한 ftp서버용 소프트웨어라고 할수 있다. 그리고 vsftpd Linux뿐아니라 Solaris, FreeBSD, HP-UX, IRIX등 거의 모든 유닉스계열의 운영체제에서 사용이 가능하다.

 

FTP 는 기본적으로 root 접속을 못하게 막혀있다.

FTP 로 접속하는 경우에는 네트워크 상에서 ID, Password 정보가 plian text 보여서 네트워크 캡쳐툴에서 감지될 수 있다.

 

FTP 가 설치되어 있는지 여부를 확인하는 방법, 프로세스 기동상태 확인을 한다.

# rpm -qa | grep vsftpd  '// 패키지 설치 확인

# ps -ef | grep vsftpd    '// 프로세스 확인

# netstat -ntlp   '// 포트확인

 

 

FTP 접속시 홈디렉토리 경로 확인 방법은

# cat /etc/passwd

 

# FTP 접속 사용자 등록 및 기본 홈 디렉토리 지정
adduser -d /usr/local/apache/htdocs/abc user계정명

# FTP 접속 사용자의 기본홈 디렉토리 위치 변경
usermod -d /usr/local/apache/htdocs/abc user계정명

chroot 를 설정하고 ON 하면

useradd  명령어로 사용자를 추가하고

/etc/passwd 에 등록된 사용자의 접속경로만 변경해주면 사용자의 최상위 root 폴더는 자동으로 설정된다.

즉, 재부팅 이런거 안해도 된다.

 

환경설정 변경 및 확인

# vi /etc/vsftpd/vsftpd.conf

 

앞에 전부 # 처리가 되어 있다면 상위디렉토리 접근금지 상태 설정이 안된 것임

 

chroot_local_user=YES    '// Yes이면 chroot_list에 적힌계정은 deny가 됨

chroot_list_enable=YES
chroo_list_file=/etc/vsftpd/chroot_list

설명

특정 사용자들에 대해 자신의 홈 디렉터리를 루트 디렉터리로 인식하도록 하는 기능
chroot_list_enable=YES로 설정하고 
chroot_list_file=/etc/vsftpd/chroot_list 파일에 등록된 사용자들에 한해서 
chroot() 기능이 적용되어 자기 자신의 홈디렉터리 상위디렉터리 이동이 제한

 

 

chroot_local_user=YES  '// 전체 사용자를 대상으로 자기 자신 홈 디렉터리 상위 디렉터리로 이동하지 못하도록 하는 설정
chroot_local_user=YES와
chroot_list_enable=YES가 둘다 YES 이면, 
/etc/vsftpd/chroot_list 파일에 등록된 사용자는 상위 디렉토리 이동 제한 없고, 등록 리스트에 없는 사용자는 상위디렉터리 이동 제한됨

 



위 그림처럼 설정되어 있다면 접근을 막을 ID를 등록해준다.

 

# vi /etc/vsftpd/chroot_list

접근을 막을 ID를 써준다. (한줄에 하나씩)
chroot_list 파일이 없다면 새로 생성하면 된다.
 
# /etc/init.d/vsftpd restart    '// vsftp 데몬을 재시작
 

 


 

설정이 잘 되었는지 반드시 테스트를 해봐야 한다.
상위 디렉토리로 접근 불가능하게 설정한 ID 가 FTP를 통해서 접속할 경우 상위 디렉토리로 더이상 이동이 안되는가? SFTP 접속 프로그램으로는 접속이 가능한가?
상위 디렉토리로 접근을 못하게 막겠다고 했는데 22번 포트를 사용하는 SFTP, SCP 로 접속이 가능하다면 설정한 의미가 하나도 없게 된다.
이런 부분까지 감안해서 보안설정을 해줘야 한다.

 

# chkconfig vsftpd on    '// 부팅시 자동 실행
# chkconfig vsftpd off   '// 부팅시 자동 실행 중지

 

ftp chroot 접속 경로를 변경하려면 vi /etc/passwd 로 접속해서 해당 user id 의 기본 경로명을 변경하기만 하면 된다.

SSH 로도 root 접속을 못하게 하고 싶다면 http://link2me.tistory.com/449 게시물을 보고 설정을 하면 된다.

SSH 22번 포트 상위 디렉토리 이동 제한 설정방법은 https://link2me.tistory.com/1039 를 참조하거나 구글에서 SSH chroot 를 검색하면 해결할 수 있다.

'리눅스' 카테고리의 다른 글

VI 에디터 사용법 ★★  (0) 2014.11.06
리눅스 기본과 기본명령어  (0) 2014.11.05
리눅스 shell 접속프로그램 허용 불가  (0) 2014.10.22
phpMyAdmin 설치 방법  (0) 2014.10.21
Virtual Host 설정  (0) 2014.10.11
블로그 이미지

Link2Me

,