티스토리 뷰

[CentOS 6.4] chroot vsftpd 가상 유저 연동

FTP 를 연동 하는데 chrrot을 써서 자신이 할당받은 폴더만 접근 하도록 한다. 하지만 chroot에 system user를 연동시키면 매번 셋팅에 어려움이 있으니 가상유저를 연동해 서비스를 진행한다. 이러면 웹호스팅 업체와 비슷한 형태로 구축이 가능하다. 이 글은 CentOS howto 문서를 번역한 내용이다.


1. vsftpd 설치

간단하게 yum으로 설치 해준다. db4-utils 는 이미 기존에 설치가 되어있다.  새 버전이 나왔다면 업데이트 될 것이다.


# yum -y vsftpd db4-utils


2. vsftpd 설정 쉘스크립트 다운

CentOS 페이지(http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users) 에 접속해서 필요한 shell을 wget으로 다운받는다. TLS는 SSL의 뒤를 잊는 보안 솔루션이라는데 적용 여부에 따라 쉡 스크립트를 실행시켜준다.


User 정보 추가는 마법사 환경을 제공해주니 필요한 값을 입력해주면 자연스럽게 생성된다.

이 역시 쉘스크립트를 다운받아 설정한다.


# cd /etc/vsftpd/users

위 경로에 접속하면 추가된 유저 파일과 my_ftp_virtual_user 를 볼 수 있다.


# vi my_ftp_virtual_user


dirlist_enable=YES

download_enable=YES

local_root=/var/ftp/virtual_users/[user 이름폴더]]/

write_enable=YES


위 내용을 수정 한 후 복사해서 user 파일에 붙여넣는다.


# cd /var/ftp/virtual_users


들어가면 아무것도 존재하지 않는다. 아까 설정해준 [user 이름폴더]를 생성한다.


# mkdir [user 이름폴더]


이제 모든 기본준비는 끝났다.


3. 방화벽 해제

iptables 에 21번 port와 passive 접근을 위해 포트를 64000:65535 번을 개방해준다.


# vi /etc/sysconfig/iptables


-A -INPUT -m state --state NEW -m tcp -p tcp --dport 21 -J ACCEPT

-A -INPUT -m state --state NEW -m tcp -p tcp --dport 64000:65535 -J ACCEPT


이제 FTP 프로그램으로 접속해본다.


4. SELINUX 추가 설정

좋은 보안 모듈을 쓰지 않으면 정말 속상한 일이다. FTP도 예외 사항으로 selinux에 등록한다.


# setsebool -P ftp_home_dir 1


-P는 재시작해도 유지되도록 하는 설정이다.




댓글
댓글쓰기 폼