본문 바로가기
공부/Linux

[레드햇 계열] FTP 사용하기(vsftpd 설정)

by 리빈아빠 2016. 3. 29.
반응형

서론

처음 리눅스르 설치 한 뒤 파일들을 업로드 하기 위해선 FTP서비스가 가능하여야 한다. 기본적으로 이 부분은 설정이 안되어 있기에 포스팅 한다. 필자도 처음 리눅스를 접했을때 이 부분 부터 시작하였는데 엄청 막혔었다.


본론

vsftpd 설치

레드햇 에서는 yum을 통하여 간단하게 설치가 가능하다. 다음과 같이 명령어를 해줘서 설치 해주자.

#yum -y install vsftpd

yum이 되질 않을때는 repository가 잡혀있지 않아서 인데 아래 글을 참조 하여 구성하자.

local repository 잡기

vsftpd 설정

vsftpd 설정파일은 총 3가지이다. 경로는 /etc/vsftpd 디렉토리 안에 있으며 설정 파일들은 아래 그림과 같다.


설정 파일들..

vsftpd.conf

파일 설정 내용은 아래와 같다. CCL이 없는 곳에서 퍼왔다. 사실 적기 귀찮았다..


anonymous_enable=NO 익명 접속 허용 여부


local_enable=YES 로컬 사용자 계정 허용 여부


write_enable=NO 쓰기 권한 허용 여부


local_umask=022 파일 및 디렉토리 생성 시 퍼미션 부여 값


anon_upload_enable=YES 익명 업로드 허용 여부


anon_mkdir_write_enable=YES 익명 디렉토리 생성 허용 여부


dirmessage_enable=YES 접속 시 메세지 표시 여부

[홈디렉토리 .message 파일 사용]


connect_from_port_20=YES 20번 포트를 FTP에 사용 여부


chown_uploads=YES 관리자 계정으로 업로드한 파일의 소유주를 변경 허용 여부

[chown_username=whoever과 같이 사용]


chown_username=whoever 위의 설정과 같이 사용


xferlog_file=/var/log/xferlog 업로드 및 다운로드 log 기록 경로


xferlog_std_format=YES log파일 표준 포맷 사용 여부


idle_session_timeout=600 시간 제한 옵션


data_connection_timeout=120 데이터 전송 시간 제한 옵션


nopriv_user=ftpsecure 관리자 계정 접속 시 해당 계정으로 접속


async_abor_enable=YES ABOR 명령어 사용 가능 여부


ascii_upload_enable=YES ascii 파일 업로드 가능 여부


ascii_download_enable=YES ascii 파일 다운로드 가능 여부


ftpd_banner=Welcome~ 접속자에게 보여질 문구


deny_email_enable=YES 접속 거부 email 주소 사용 여부


banned_email_file=/etc/vsftpd/banned_emails 위 옵션의 연동 파일


chroot_local_user=YES 사용자가 접속 시 상위 폴더 접근 거부 여부


chroot_list_enable=YES 사용자가 접속 시 상위 폴더로 이동 가능 여부


chroot_list_file=/etc/vsftpd/chroot_list 위 설정에서 제외 될 사용자 계정 리스트


ls_recurse_enable=YES ls -r 명령어 사용 가능 여부

[큰 FTP서버일 경우 서버 부하 있음]


listen=NO standalone mode로 서비스 할 경우 설정하는 옵션


listen_ipv6=YES 위와 동일


pam_service_name=vsftpd 사용자 계정에 대한 접속을 허용할 때 PAM인증 사용 시 사용 파일 이름 지정


userlist_enable=YES

아래 참조

user_list, ftpusers

바로 위 userlist_enable 부분에 대한 설정 파일인데, 간단하게 설명 해서 

userlist_enable 이 YES일 경우 두 파일에 명시된 계정들은 접근이 안되며

NO일 경우 에는 ftpusers에만 명시되어 있는 계정들이 접근이 안된다.


기본적으로 root는 접속이 모두 차단되어있는데 가능하게 하려면 이 두 파일에 있는 root를 지우거나 주석처리 해주어야 한다. 필자는 root로 접속 하기 위하여 두 파일에 있는 root를 모두 주석처리하였다.


두 파일 모두 root 앞에 주석처리

방화벽 해제 및 FTP 접속 확인

FTP는 기본적을 20, 21포트를 사용하는데 기본적으론 막혀있다. 사용하기 위해선 반드시 방화벽을 해제 해주어야 한다.


iptables 를 이용하여 열어 줄 것이다.

#vi /etc/sysconfig/iptables
(아래 그림과 같이 두줄을 추가 해준 뒤)
#service iptables restart
#service iptables save
#service restart vsftpd


빨간 점 2개를 추가해 주자.


테스트 해보면 안된다. 이상하다... 서버를 내렸다가 올리고 vsfptd를 다시 켜 보면 잘된다. 방법 아시는 분 댓글 부탁드려요...


사실 이 방법 말고 x윈도가 깔려 있으면 이 걸로 하는 것이 훨씬 편하다.


System->Administration->Firewall


FTP 체크 후 Apply 하면 바로 된다


접속이 잘 된다.

selinux 설정

위와 같은 방법을 했는데도 불구 접속이 안되는 경우에는 selinux를 의심해 봐야 되는데, 보통은 다 끄고 작업하므로 disabled로 되어있는 경우가 많을 것이다. 그래도 혹시나 모르니 설정 하려면..

#vi /etc/selinux/config


빨간 부분을 disabled 로 설정


저기에 들어갈 설정들은 아래와 같다고 한다.

enforcing -> 보안에 어긋나는 무언가가 발생되면 시스템에서 막아버림(로그도 남기겠지..)

permissive -> 허용은 하는데 로그를 남김

disabled -> 이 기능을 사용안함

자동 실행 하기

#chkconfig vsftpd on (켜기)
#chkconfig vsfptd off (끄기)

결론

처음에는 어렵고 복잡한데 계속 반복하다보니 명령어도 외워진다. 껄껄껄.. 하지만 이 수준은 한글 배울때 가나다라 수준..ㅠㅠ