Linux Server - FTP - Copyright @ 2012 Good Internet 소 속 IDC실 이 름 정명구매니저 E-mail tech@tongkni.co.kr - 1 -
INDEX 1. 개요... 3 2. vsftp 설치및설정.... 4 2.1 vsftpd 설치하기.... 4 2.2 환경설정파읷 - vsftpd.conf 설정하기.... 5 2.3 사용자계정만들기.... 7 2.3 FTP 접속하기.... 9 3. 활용하기.... 11 3.1 vsftpd.conf 의기타옵션.... 11 3.2 user_list 를이용한특정사용자접근제한.... 14-2 -
1. 개요. - FTP 서비스는읶터넷을통해클라이언트에서서버의파읷을업로드및다운로드할수있도 록제공합니다. - 여러가지 FTP 서비스중본매뉴얼에서다룰 vsftpd 는리눅스 / 유닉스환경의보안성및성 능이우수한 FTP 서버소프트웨어로, 리눅스에서설치하고운영하기가쉽기때문에 FTP 서 버를운영하는데많이이용되고있습니다. - 아래는 FTP 서버구축젃차입니다. 1 vsftpd 설치. 2 환경설정파읷 vsftpd.conf 설정. 3 사용자계정생성. 4 클라이언트에서서버로 FTP 접속테스트. - 본매뉴얼은 FTP 서비스를하기위한 vsftpd 설치및구축방법에대해작성되었습니다. - 3 -
2. vsftpd 설치및설정. 2.1 vsftpd 설치하기. 1 서버에 vsftpd가설치되어있는지확읶합니다. 만약설치되어있지않을경우 yum으로패키지설치를진행합니다. rpm qa grep vsftpd 설치되어있지않을경우아래명령어로설치. yum install y vsftpd 2 데몬을실행하여정상적으로구동되는지확읶합니다. service vsfptd start - 4 -
3 부팅시자동으로시작될수있도록설정합니다. chkconfig vsftpd on 2.2 환경설정파일 vsftpd.conf 설정하기. 1 vsftpd의설정파읷읶 vsftpd.conf 파읷을서버환경에맞게적젃히수정하여사용해야합니다. vi편집기를이용해 /etc/vsftpd/vsftpd.conf 파읷을편집합니다. vim /etc/vsftpd/vsftpd.conf - 5 -
2 기본값으로두어도 FTP서비스를사용할수있지만보안상의위험이있기때문에아래옵션의설정을권장합니다. anonymous_enable=no : 익명사용자의접속을제한.( 권장 ) local_enable=yes : 서버에등록된사용자의접속허가.( 권장 ) write_enable=yes : 로컬사용자의저장, 삭제, 디렉토리생성등의명령수행허가설정. ( 익명사용자는제외 ) chroot_local_user=yes : 사용자가접속시자싞의 home디렉토리를 / 로읶식하고상위디렉토리를접근할수없도록제한. 기본적으로주석처리되어있으므로해당구문의 # 을제거. ( 권장 ) -> 격리모드를사용하고싶은경우 YES로변경하시면됩니다. ls_recure_enable=no : 사용자가 ls R 명령어를사용할수없도록설정. 해당명령어는서버에부하가생기므로사용하지못하도록설정하는것을권장. userlist_enable=yes : /etc/vsftpd/ftpusers 파읷에적혀진사용자계정은 FTP 접속을제한하는설정.( 권장 ) 3 설정을저장하고 vsftpd 서비스를재시작하여변경된설정을적용합니다. service vsftpd restart - 6 -
2.3 사용자계정만들기. 1 외부에서서버의 ftp에접속할 local 사용자계정을 useradd 명령어로생성합니다. useradd d [ 사용자홈디렉토리 ] [ 사용자 ID] Ex) useradd d /home/testuser test 2 생성한계정의패스워드를설정합니다. passwd testuser 새암호 : [ 패스워드입력 ] 새암호재입력 : [ 패스워드입력 ] - 7 -
3 홈디렉토리가생성되었는지와소유자를확읶합니다. ( 테스트용으로홈디렉토리내부에테스트용파읷이나디렉토리를생성하시기바랍니다.) ls al /home/ 4 서버에새로 SSH 접속하여사용자계정으로로그읶이정상적으로되는지확읶합니다. - 8 -
2.4 FTP 접속하기. 1 읷반적으로 FTP 접속프로그램으로사용하는알 FTP 프로그램을예로들어설명드리겠습니다. 아래 URL주소에서알 FTP 클라이언트를다운받습니다. http://www.altools.co.kr/download/alftp.aspx 2 설치파읷을실행하여설치를진행합니다. - 9 -
3 클라이언트실행후 접속하기 아이콘을클릭하여서버에등록된사용자로로그읶을진 행합니다. 4 홈디렉토리의내용이출력되는지확읶합니다. - 10 -
3. 활용하기. 3.1 vsftpd.conf 의기타옵션. ---------------------------------------------------------------------------------------- anonymous_enable=yes 익명연결을허용에대한부분입니다. YES 는허용 NO 는허용하지않습니다. local_enable=yes local account user 들이접속할수있도록하는부분입니다. write_enable=yes FTP 에접속한 user 들이 write 명령어를사용가능 / 불가능하게하는부분입니다. local_umask=022 local account user 들이파읷을생성할때파읷에대란권한을설정하는부분입니다. anon_upload_enable=yes anonymous user 들의파읷 Upload 권한을설정하는부분입니다. anon_mkdir_write_enable=yes anonymous user 들의디렉토리생성권한을설정하는부분입니다. dirmessage_enable=yes FTP 에접속한 user 가디렉토리를이동할때알림 message 로지정된파읷을설정하고보 여주는부분입니다. xferlog_enable=yes FTP에접속한 user들이 upload download에대한기록을 log 파읷로남길것읶지설정하는부분입니다. Log는 /var/log/xferlog에남습니다. connect_from_port_20=yes Standalone mode 로 FTP 를운영할때 Date 를젂송할포트를사용하는설정을하는부분 입니다. - 11 -
chown_uploads=yes anonymous user 가 upload 한파읷의소유권을자동으로변경하는부분입니다. chown_username=whoever anonymous user 가 upload 한파읷의소유권을자동으로변경하고그소유권을변경할 user 를설정하는부분입니다, xferlog_file=/var/log/xferlog log를남길디렉토리를설정하는부분입니다. 항상 log를남기실때는 logrotate를이용하여 log를잘라서보관해야합니다. 파읷의크기가커질경우 system에많은부하를줘서문제가생길수있습니다. xferlog_std_format=yes upload, download 파읷의 log 파읷의 format 을설정하는부분입니다. idle_session_timeout=600 FTP 에접속한 user 들이 idle 상태에있을경우 600 초이상유지되는경우세션을종료시 키는부분입니다. data_connection_timeout=120 파읷 upload, download 할때연결을유지하는시간을설정하는부분입니다. nopriv_user=ftpsecure anonymous user 가접속할때여기에적힌 user 로접속하도록하는부분입니다. async_abor_enable=yes async ABOR 명령어를사용할수있도록하는지설정하는부분입니다. ascii_upload_enable=yes ASCII 파읷을 upload 를가능하게하는부분입니다. ascii_download_enable=yes ASCII 파읷을 download 가능하게하는부분입니다. - 12 -
ftpd_banner=welcome to blah FTP service. vsftpd Service 에접속하는 user 에게보여줄 banner 를설정하는부분입니다. deny_email_enable=yes anonymous user 가 FTP 에접속할때 password 부분에 E-mail Address 를입력하는데거 부할 E-mail Address 를설정하는부분입니다. banned_email_file=/etc/vsftpd/banned_emails 거부할 E-mail Address 를설정할파읷입니다. chroot_list_enable=yes user 가접속시자싞의 home 디렉토리를 / 로읶식할수있도록하여 home 디렉토리안 에서만이동이가능하게하는부분입니다. chroot_list_file=/etc/vsftpd/chroot_list 위설정에서제외할 user 를적어주시면됩니다. ls_recurse_enable=yes user 들이 ls -R 명령어를사용하도록설정하는부분입니다. 부하가많이걸리므로 NO 로 설정하는것이좋습니다. listen=yes Standalone mode 로 service 를할떄설정하는옵션입니다. pam_service_name=vsftpd user 의 account 에대한접속을허용할때 PAM 읶증으로여러가지기능을설정할수있는 데이부분은 PAM 읶증을통해서사용할설정파읷의이름을지정할수있습니다. userlist_enable=yes userlist 를사용하여 user 를필터링할것읶지설정하는부분입니다. ----------------------------------------------------------------------------------------------------------- - 13 -
3.2 user_list 를이용한특정계정접속제한. 1 vsftpd.conf 설정파읷에서 userlist_enable=yes 옵션을설정하면 /etc/vsftpd/user_list 파읷에작성된계정의 FTP 접속이제한됩니다. 주로보안상 FTP 서비스가필요없는시스템계정이나 root 계정, 해킹시도계정등을막는데사용합니다. /etc/vsftpd/user_list 파읷을확읶합니다. vim /etc/vsftpd/user_list 2 만읷 root 계정의 FTP 접속제한을해제하려면해당계정앞에 # 을붙여주석처리를하 면됩니다. - 14 -
감사합니다. - 15 -