Jaminto는이 질문에 대답하는 데 큰 도움이되었지만 최근에이 과정을 직접 진행하여 Jaminto의 답변을 넓히고 싶었습니다.
EC2 인스턴스가 이미 생성되어 있고 탄력적 IP 주소가 연결되어 있다고 가정합니다.
1 단계 : vsftpd 설치
EC2 서버에 대한 SSH. 유형:
> sudo yum install vsftpd
vsftpd를 설치해야합니다.
2 단계 : EC2 인스턴스에서 FTP 포트를 엽니 다
다음으로 EC2 서버에서 FTP 포트를 열어야합니다. AWS EC2 관리 콘솔에 로그인하고 왼쪽의 탐색 트리에서 보안 그룹을 선택하십시오. EC2 인스턴스에 할당 된 보안 그룹을 선택하십시오. 그런 다음 인바운드 탭을 선택한 다음 편집을 클릭하십시오.
포트 범위가 20-21 및 1024-1048 인 두 개의 사용자 지정 TCP 규칙을 추가하십시오. 소스의 경우 'Anywhere'를 선택할 수 있습니다. 소스를 고유 한 IP 주소로 설정하기로 결정한 경우 DHCP를 통해 할당 된 경우 IP 주소가 변경 될 수 있습니다.
3 단계 : vsftpd.conf 파일을 업데이트합니다
다음을 입력하여 vsftpd conf 파일을 편집하십시오.
> sudo vi /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=<Public IP of your instance>
vsftpd.conf 파일은 다음과 같아야합니다. pasv_address를 공개 IP 주소로 바꿔야합니다.
변경 사항을 저장하려면 escape를 누른 다음을 입력하고 Enter 키를 누르십시오 :wq
.
4 단계 : vsftpd 재시작
다음을 입력하여 vsftpd를 다시 시작하십시오.
> sudo /etc/init.d/vsftpd restart
다음과 같은 메시지가 나타납니다.
그래도 문제가 해결되지 않으면 다음을 시도하십시오.
> sudo /sbin/service 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 인스턴스에서 새 사용자를 만드는 것은 매우 간단합니다. 예를 들어, 사용자 'bret'을 작성하려면 다음을 입력하십시오.
> sudo adduser bret
> sudo passwd bret
그 모습은 다음과 같습니다.
6 단계 : 사용자를 홈 디렉토리로 제한
이 시점에서 FTP 사용자는 홈 디렉토리로 제한되지 않습니다. 그다지 안전하지는 않지만 쉽게 해결할 수 있습니다.
다음을 입력하여 vsftpd conf 파일을 다시 편집하십시오.
> sudo vi /etc/vsftpd/vsftpd.conf
주석 처리를 제거하십시오.
chroot_local_user=YES
완료되면 다음과 같이 표시됩니다.
다음과 같이 vsftpd 서버를 다시 시작하십시오.
> sudo /etc/init.d/vsftpd restart
다 했어요!
부록 A : 재부팅 생존
서버가 부팅 될 때 vsftpd가 자동으로 시작되지 않습니다. 나와 같다면 EC2 인스턴스를 재부팅 한 후 FTP가 고장난 것처럼 보이는 순간을 두려워하게되지만 실제로는 작동하지 않습니다!. 이를 해결하는 편리한 방법은 다음과 같습니다.
> sudo chkconfig --level 345 vsftpd on
또는 redhat을 사용하는 경우 서비스를 관리하는 또 다른 방법은이 멋진 그래픽 사용자 인터페이스를 사용하여 자동으로 시작할 서비스를 제어하는 것입니다.
> sudo ntsysv
이제 서버가 부팅 될 때 vsftpd가 자동으로 시작됩니다.
부록 B : 사용자의 FTP 홈 디렉토리 변경
* 참고 : Iman Sedighi는 특정 디렉토리에 대한 사용자 액세스를 제한하기위한보다 세련된 솔루션을 게시했습니다. 답변으로 게시 된 그의 훌륭한 솔루션을 참조하십시오 *
사용자를 만들고 FTP 액세스를 / var / www와 같은 특정 폴더로 제한 할 수 있습니다. 이렇게하려면 사용자의 기본 홈 디렉토리를 변경해야합니다.
> sudo usermod -d /var/www/ username
이 특정 예에서는 일반적으로 / var / www 폴더와 관련된 'www'그룹에 사용자 권한을 부여하는 것이 일반적입니다.
> sudo usermod -a -G www username