본문 바로가기
Cloud

[CentOS 7] FTP 서버 구축 과정

by 옹알이옹 2023. 8. 25.
목차

1. 네이버 클라우드 플랫폼을 통한 서버,공인IP 대여

2. vsftpd를 통한 FTP 서버 구성

3. vsftpd.conf 파일 설정

4. FileZilla를 통한 FTP 서버 접근


 1. 네이버 클라우드 플랫폼을 통한 서버, 공인 IP 대여

필자는 현재 내 PC가 아닌 외부의 PC를  FTP 서버로 사용하기 위해 컴퓨터와 그 컴퓨터에 연결된 네트워크가 필요하므로 네이버 클라우드 플랫폼을 사용하여 생성했다.

네이버 클라우드 서버 생성 화면

  • 서버 타입을 Micro로 설정해야 체험판 계정에서 무료로 사용할 수 있음.
  • 외부 네트워크에서의 통신을 위해 공인 IP 대여 후 서버에 연동해 준다.
  • ACG 탭에 들어가서 22번과 21번 포트를 열어준다.
  • 참고로 공인 IP는 유료로 한 달에 4050원 정도 한다.

추가로 서버 구축 시 생성한 인증키를 통해 root 계정 비밀번호를 조회할 수 있다.

네이버 클라우드 서버 비밀 번호


 2. vsftpd를 통한 FTP 서버 구성

 

지금 만들려는 서버는 FTP 서버 즉, File Transfer Protocol을 통해 파일을 주고받을 수 있는 서버를 생성하여 
파일 업로드, 다운로드용으로 사용하기 위함이다.

 

하지만 현재 서버는 OS만 설치되어 있기 때문에 vsftpd라는 프로그램을 설치하여 FTP 서버로 구성한다.

 

CentOs 기준 vsftpd 설치과 관련 명령어는 아래와 같다.

  • yum install vsftpd : vsftpd 설치
  • systemctl start vsftpd: vsftpd 시작 (기본적으로 설치되면 실행됨)
  • systemctl status vsftpd : vsftpd 상태 확인
  • vim /etc/vsftpd/vsftpd.conf : vsftpd.conf 파일 편집기로 열기

vsftpd를 성공적으로 설치 한 뒤 먼저 상태를 확인한다. 아래와 같으면 성공적으로 실행되고 있는 것.

ftps가 잘 돌아갈 때

이후 vsftpd의 설정을 변경하기 위해 vsftpd.conf 파일을 연 뒤 수정한다.

 


 3. vsftpd.conf 파일 설정

 

이미 존재하는 옵션들은 주석(#)을 제거하여 활성화시키고 존재하지 않는 명령어는 추가하여 사용한다. 

 

* vim 편집기에서 :?검색어 를 입력하면 해당 내용을 빠르게 찾을 수 있음

옵션 용도
anonymous_enable=NO 익명으로 들어오는 액세스를 차단한다.
write_enable=YES 사용자가 파일 업로드를 할 수 있도록 허용
local_umask=022  사용자가 파일을 업로드할 때 생성되는 파일의 기본 권한 지정
xferlog_enable=YES 전송 로그를 사용하도록 설정
chroot_list_enable=NO 사용자를 새로 생성하면 home/사용자명으로 폴더가 생성되는데 그 디렉토리 안에서만 행위를 제한 하는 설정
pasv_enable=YES 패시브 모드로 FTP 연결을 하겠다는 설정
pasv_min_port=50001
pasv_max_port=50005
패시브 모드를 위한 포트 범위를 설정한다. 이 범위 내에서 데이터 연결 포트를 동적으로 할당하여 사용하게 된다.
max_clients=10 동시에 접속할 수 있는 최대 클라이언트 연결 갯수로, linux 기반 OS는 다중 사용자를 지원하기 때문에 이러한 설정을 추가해주었다.
listen=YES FTP 서버가 새 연결을 수신할 수 있도록 하는 설정
pam_service_name=vsftpd 인증시 사용되는 서비스 이름을 설정
userlist_enable=YES userlist_file을 생성하여 해당 리스트에 있는 유저들만 접근하거나 차단하는 기능을 허용하는 설정

 4. FileZilla를 통한 FTP 서버 접근

이제 클라우드에 올라가 있는 PC를 FTP서버로 구성을 마쳤으니 내 PC에서 FTP 서버를 연결해 보겠다.

 

연결을 하기 위한 FTP Client 도구로는 FileZilla를 사용할 건데, 그 이유는 FTP 프로토콜(21 Port)을 통해서도 접근할 수 있지만 FTP 프로토콜은 보안성이 떨어져 기본적으로 클라이언트 방화벽에서 연결을 허용하지 않아 따로 방화벽 설정을 수정해야 한다.

하지만 그 과정이 귀찮고 굳이 보안성이 떨어지는 연결도 하기 싫으니 보안성이 더 뛰어난 SFTP(22번 Port)를 사용해 연결할 것이고 위에서 ACG 설정을 할 때 22번 포트를 열어둔 것도 이런 이유에서다.

 

아래는 22번 Port를 통해 SFTP 연결을 하는 FileZilla를 사용한 모습이다.

fileZilla를 통한 접속

 

fileZilla 접속화면

  • 성공적으로 SFTP를 통해 연결을 하였고 해당 root 폴더에 upload라는 폴더를 생성한다.
  • 해당 폴더에 내 PC에 있는 파일을 드래그 드랍하면 업로드가 완료된다.

이렇게 클라우드에 FTP 서버를 구축하여 업로드 다운로드용으로 사용할 수 있게 해 보았다.

반응형