Linux

vsftp 설치 / passive-Mode 및 방화벽 설정 (linux 리눅스)

CHOMAN 2015. 6. 4. 14:00

vsftp (Very Secure File Transfer Protocol) 설치



vsftp 특징


FTP 보안설정을 할수 있어서 좀 더 안정적으로 FTP 서버 운용이 가능하다.

config 파일 수정과 의미가 명확하여 초보자들도 사용하기 쉽다.

기본적으로 Redhat, Suse, Open-BSD 계열 리눅스에서 기본 탑재하고 있어서 따로 설치할 필요없이 바로 사용이 가능하다.




vsftp 설치 여부 확인


[root@localhost ~]# rpm -qa | grep vsftpd

vsftpd-2.2.2-14.el6.x86_64




vsftp 설치


yum install vsftpd -y




vsftp 데몬 실행 스크립트

 

/etc/init.d/vsftpd stop | start | restart




vsftp 설정 파일


/etc/vsftpd/vsftpd.conf


anonymous_enable=NO

익명사용자 접근을 허용하지 않음 (누구나 ID/PW 없이 FTP에 접근하여 자료를 업로드 및 다운로드 할수 있게하는 옵션입니다)

편리해보이는 기능이긴 하지만 보안상 좋지 않으므로 NO 로 설정합니다.


anon_upload_enable=YES

익명 사용자가 파일업로드를 가능하게 하겠다는 의미 계정 생성하지 않고 파일을 받을수 있어 편리하긴 하지만 보안상 좋지는 않다.


anon_mkdir_write_enable=YES

익명 사용자가 디렉토리를 생성 가능하게 하겠다는 옵션


계정 JAIL 설정

chroot_local_user=YES

FTP 접속한 계정이 자신의 홈디렉토리 (공간) 이외에는 접근할수 없게 하는 옵션입니다. 

NO 로 설정하거나 주석처리가 되어 있는경우에는 모든 계정이 다른 디렉토리로 접근이 가능합니다. (JAIL 설정이라고도 하는듯 하다)


allow_writeable_chroot=YES

위 옵션만으로 로그인성공하나 파일목록이 access 되지 않는 경우 있음


특정 계정만 JAIL 적용하기

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

/etc/vsftpd/chroot_list 파일에 JAIL 할 계정 등록해주면 됨


특정계정만 제외하고 JAIL 하기

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

/etc/vsftpd/chroot_list 파일에 JAIL 제외할 계정 등록해주면 됨


계정의 홈디렉토리는 /etc/passwd 파일에서 확인가능하다

ex) ddongho:x:502:502::/home/ddongho:/bin/bash

ddongho 라는 계정의 홈디렉토리는 /home:ddongho 라는것을 확인할수 있다


idle_session_timeout=600

사용자가 로그인후 아무런 작업이 없을시 600초후에는 강제로 접속을 끊겠다는 의미입니다. 

사용자가 잠시 PC 앞에서 떠난후 다른 누군가가 내 자료를 불법적으로 다운로드 혹은 업로드 등의 작업을 할 수 있으므로 꼭 설정하는것이 좋습니다.


data_connection_timeout=120

다운로드 시작시간부터 지정된 초동안 완료되지 않으면 접속을 강제로 끊는다.


write_enable=YES

사용자의 쓰기 권한입니다. YES를 주면 권한이 있는 사용자는 누구든지 파일 업로드 및 파일 수정 삭제 등을 할 수 있다.

NO라고 하면 누구든지 파일 수정, 삭제, 업로드는 할수 없습니다.


local_enable=YES

리눅스 로컬 사용자 일반 계정이 FTP에 접근할수 있게 한다는 의미


local_umask=022

FTP 로 접근한 로컬 사용자들이 파일을 생성할때 기본으로 권한을 644 로 가지게 하겠다는 의미


dirmessage_enable=YES

사용자가 어떤 디렉토리로 이동할때 디렉토리에 지정된 메세지를 보여주는 기능을 사용하겠다는 옵션


xferlog_enable=YES

사용자들의 파일 업로드/다운로드 등의 기록을 LOG 로 남기겠다는 의미 (xferlog_std_format parameter 에 따라 형식이 정해지는듯 하다)


ftpd_banner=Welcome to kensei FTP

FTP 접속시 보여줄 메세지, 활성화되지 않을시 FTP의 버젼 정보가 나타남







브라우저에서 URL창에도 "FTP://ID:비밀번호@IP주소:포트번호" 이런식으로 입력하면 브라우저에서도 FTP 접근이 가능하다.




Linux

vi /etc/vsftpd/vsftpd.conf

- pasv_enable=YES
- pasv_min_port=50000, pasv_max_port=50001

- vi /etc/proftpd\proftpd.conf
- PassivePort 50000 50001

Passive Port 지정

500 OOPS: cannot change directory:/home/chat
- /etc/vsftpd/vsftpd.conf 파일 맨 하단
- pasv_enable=YES
- pasv_min_port=5001
- pasv_max_port=5001
/etc/init.d/vsftpd restart 로 재시작

setsebool -P ftp_home_dir=1

vim /etc/rc.d/rc.local
modprobe ip_conntrack_ftp ; FTP 패시브 모드를 허용하도록 모듈 올리기라는데 상태추적을 하겠다는 의미같음



참고 및 내용 출처 사이트

http://theeye.pe.kr/archives/731