1. vsftpd 설치 및 설정.
[vsftpd 설치하기]
: 서버에 vsftp가 설치되어 있는지를 확인 한다. 만약 설치되지 않은 경우 yum을 통해 설치한다.
설치 여부 확인 : rpm -qa | grep vsftpd
설치 되지 않은 경우 아래 명령어로 설치 : yum install -y vsftpd
2. 부팅시 자동으로 시작될 수 있도록 설정.
chkconfig vsftpd on
chkconfig --list vsfptd
3. vsftpd 환경 설정
[기본필수 설정]
- anonymouse_enable=NO : 익명 사용자의 접속을 제한
- local_enable=YES : 서버에 등록된 사용자의 접속을 허가
- write_enable=YES : 로컬 사용자의 저장, 삭제, 디렉토리 생성 등의 명령 수행 허가 설정. (익명사용자는 제외)
- chroot_local_user=YES : 사용자가 접속 시 자신의 home디렉토리를 "/"로 인식하고 상위 디렉토리를 접근할 수 없도록 제한.
- ls_recure_enable=NO : 사용자가 ls -R 명령어를 사용할 수 없도록 설정. 해당 명령어는 서버에 부하가 생기므로 사용하지 못하도록 설정 할것.
- userlist_enable=YES : /etc/vsftpd/ftpusers 파일에 적혀진 사용자 계정은 FTP 접속을 제한한다.
[Passive Mode 설정]
- pasv_enable=YES
- pasv_min_port=5000
- pasv_max_port=5100
- pasv_promiscuous=YES
를 vsftpd.conf 파일에 추가한다
[ipTables 방화벽 해제]
- 5000 ~ 5100 번 까지의 포트를 개방해 준다. ipTables 의 INPUT 영역에 아래와 같이 추가해 주면 된다.
EX) -A INPUT -p tcp -m state NEW -m tcp --dport 5000:5100 -j ACCEPT
4. 모든 설정을 저장하고, service vsftpd restart를 통해 서비스 시작
5. 사용자 계정 추가
: useradd -d [사용자 홈 디렉토리] [사용자 ID]
EX) useradd -d /home/testerhome testerhome
[TIP] vsftp.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를 젂송할 포트를 사용하는 설정을 하는 부분입니다.
- 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가능하게 하는 부분입니다.
- 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를 필터링할 것인지 설정하는 부분입니다.
[TIP] user_list를 이용한 특정 계정 접속 제한.
vsftpd.conf 설정 파일에서 “userlist_enable=YES” 옵션을 설정하면 /etc/vsftpd/ftpusers 파일에 작성 된 계정의 FTP 접속이 제한됩니다.
주로 보안상 FTP 서비스가 필요 없는 시스템 계정이나 root 계정, 해킹 시도 계정 등을 막는데 사용합니다.
/etc/vsftpd/ftpusers 파일을 확인합니다.
만약 root 계정의 FTP 접속 제한을 해제하려면 해당 계정 앞에 #을 붙여 주석처리를 하면 됩니다.
'Developement > Server' 카테고리의 다른 글
CentOS 5.x 64비트 ModSecurity 설치 (0) | 2014.10.28 |
---|---|
리눅스의 계정 목록을 확인 하기 (0) | 2014.10.25 |
SSHD ROOT 로그인, IP별로 접속허용 (0) | 2014.08.19 |
리눅스 서버의 언어설정 바꾸기 (0) | 2014.08.06 |
httpd.conf 파일 완벽 가이드(1.3X) (0) | 2014.08.05 |