아마존 리눅스 AMI에 FTP 서버 설정하기

23 Nov 2015

AWS EC2에 무료로 제공되는 아마존 리눅스 AMI(Amazon Machine Image)에 FTP 서버를 설정하는 방법을 간결하게 설명하고, 스택오버플로우에서도 많은 호응을 얻은 이 있어 번역한다.

원문 : Setting up an FTP server on your Amazon Linux AMI

1단계: vsftpd 설치

EC2 서버에 SSH 접속한 후 vsftpd를 설치한다.

sudo yum install vsftpd

2단계: EC2 인스턴스의 FTP 포트를 연다.

EC2 서버의 FTP 포트를 연다. AWS EC2 관리 콘솔에 로그인하고 왼쪽의 내비게이션 메뉴에서 보안 그룹(Security Groups)을 선택한다. EC2 인스턴스에 할당된 보안 그룹을 선택하고 Inbound 탭에서 20-21 범위의 포트를 추가한다.

1024-1048 포트 범위도 추가한다:

3단계: vsftpd.conf 파일 업데이트

vsftpd 환경 설정 파일을 편집한다.

sudo nano /etc/vsftpd/vsftpd.conf

익명으로 FTP를 접속하는 것을 막는다:

anonymous_enable=YES

anonymous_enable=NO

로 고친다.

vsftpd.conf 파일의 마지막에 다음을 추가한다:

pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=자신의 인스턴스 공인 IP

vsftpd.conf 파일이 다음과 비슷해 보여야 한다. - 단, pasv_address 값은 자신의 공인(Public) IP 주소여야 한다.

4단계: vsftpd 재시작

sudo /etc/init.d/vsftpd restart

다음과 같은 메시지가 보여야 한다.

5단계: FTP 사용자 만들기

/etc/vsftpd/user_list를 보면 다음과 같을 것이다:

# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

이건 기본적으로 “이 사용자들은 FTP 접근을 허락하지 않는다”라고 말하는 것이다. vsftpd는 이 목록에 없는 사용자가 FTP에 접근할 수 있게 한다.

그러므로 새 FTP 계정을 만들기 위해서, 서버에 사용자를 새로 만들어야 한다.(만약 /etc/vsftpd/user_list에 열거되지 않은 사용자 계정(예를 들어 ec2-user: 역자주)을 이미 가지고 있다면 다음 단계로 넘어간다.)

EC2 인스턴스에 사용자를 새로 만드는 것은 매우 간단하다. 예를 들어 사용자 bret을 만들려면:

sudo adduser bret
sudo passwd bret

다음과 같이 보일 것이다.

6단계: 사용자의 홈 디렉토리를 제한한다.

이 시점에서의 FTP 사용자는 홈 디렉토리에 제한이 없다. 이것은 보안상 좋지 않으나, 매우 쉽게 고칠 수 있다.

vsftpd.conf 파일을 편집한다:

sudo nano /etc/vsftpd/vsftpd.conf

다음 라인을 주석해제한다:

chroot_local_user=YES

다음과 같이 보일 것이다:

vsftpd 서버를 재시작한다:

sudo /etc/init.d/vsftpd restart

이제 다 했다!

부록 A: 리부트에서 살아남기

vsftpd는 서버가 부트할 때 자동으로 시작되지 않는다. 다음과 같이 한다:

sudo chkconfig --level 345 vsftpd on

부록 A: vsftpd 제거하기(역자)

sudo yum remove vsftpd

우분투와 달리 위의 명령어로 환경설정까지 제거되고, 서비스도 정지된다.

Share this:

comments powered by Disqus