CentOS에서 FTP서버 구축/관리하기 (vsftpd)

반응형

* CentOS : 레드햇 리눅스의 무료 공개판으로 유료로 라이센스 이용료를 지불해야하는 RedHat Enterprise와 달리 일반인들에게 무료로 배포하는 레드햇 계열 리눅스 중의 하나다. 주로 개인용보다 서버용에 갖춰져있으며 GUI는 Gnome 2.x 환경에 최적화되어 있다.


FTP서버에 대한 정의에 대하여 최소한의 지식을 두고 온 것이라 생각하여 자세한 설명은 하지 않겠습니다. 여기서 다룰 내용은 CentOS에서 vsftpd라는 소프트웨어를 설치하여 FTP 서버를 구축하고, 설정하는 방법을 알려드리고자 합니다.


   * vsftpd (very secure FTP daemon) : 유닉스/리눅스 시스템에서 FTP 서버 환경을 구축하기 위한 일종의 프로그램


자 먼저 터미널 혹은 콘솔 모드를 띄우는데, root로 로그인을 하는 것은 필수겠죠?

로그인을 하셨으면 빨강색으로 된 부분을 입력해주세요~


[root@hostname ~]# yum -y install vsftpd


설치가 모두 끝났으면 아래와 같이 콘솔 모드에 설정을 편집해봅시다.


[root@hostname ~]# vim /etc/vsftpd/vsftpd.conf


제가 설정한 것은 이러합니다~

#은 주석, #이 없는 부분이 정상적으로 동작하는 부분입니다. (이 정도는 숙지하셔야합니다.)

일부 설정한 부분에 대해서 한글화 하였습니다.

# Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). --> 익명 로그인 거부 anonymous_enable=NO # Uncomment this to allow local users to log in. --> 로컬 계정 사용 (FTP 서버 내의 별도 계정이 아닌 리눅스 계정 사용) local_enable=YES # # Uncomment this to enable any form of FTP write command. --> 각 사용자 계정에 쓰기 권한 설정 (리눅스 자체 권한 영향있음) write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) --> 특수권한 022 설정 local_umask=022 # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. anon_upload_enable=YES --> 익명 사용자 계정 사용시 업로드 여부 설정 # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. anon_mkdir_write_enable=YES --> 익명 사용자 계정 사용시 디렉터리 생성 여부 설정 # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES --> 디렉터리 접근마다 메시지 여부 설정 # # Activate logging of uploads/downloads. xferlog_enable=YES --> 업로드/다운로드할 때마다 로그 기록 여부 설정 # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES --> 포트 20번을 사용하여 데이터 전송 여부 설정 # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. xferlog_std_format=YES # # You may change the default value for timing out an idle session. idle_session_timeout=0 # # You may change the default value for timing out a data connection. data_connection_timeout=0 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. ascii_upload_enable=NO ascii_download_enable=NO # # You may fully customise the login banner string: #ftpd_banner=Welcome to blah FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=NO # (default follows) #banned_email_file=/etc/vsftpd/banned_emails # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # When "listen" directive is enabled, vsftpd runs in standalone mode and # listens on IPv4 sockets. This directive cannot be used in conjunction # with the listen_ipv6 directive. listen=YES # Access Port settings listen_port=4444 # # This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 # sockets, you must run two copies of vsftpd with two configuration files. # Make sure, that one of the listen options is commented !! #listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES # Host Maximum User max_clients=5 max_per_ip=5 # Permissions file_open_mode=0664 # BANNER Messeages ftpd_banner=Welcome to My FTP Server! # Passive Mode Options # pasv_promiscuous=YES pasv_enable=YES pasv_min_port= pasv_max_port= pasv_address=hostaddress # SSL options 

ssl_enable=NO


제가 사용하는 서버는 여러 사람이 공용으로 사용하는 서버와는 거리가 멀기 때문에 세부적인 보안 부분의 설정은 사용하지 않았습니다.

그리고 위에 설정처럼 기본 포트 21번을 사용하지 않은 유저분들 중 Explorer에서 FTP 서버를 접근하고자 원한다면 pasv_address를 반드시 자기 IP주소나 도메인 주소로 설정하여야 정상적인 로그인이 가능하므로 이 점 참고 바랍니다.


자 설정이 모두 끝나셨으면 이제 FTP 서버를 돌려야겠지요? 


[root@hostname ~]# service vsftpd start 


자 이제 정상적으로 접속이되는지 확인해봅시다.

반응형