리눅스 서버를 직접 구축하려는 경우 FTP 접근 환경은 필수적입니다. 따라서 서버 운영체제를 설치한 직후 가장 먼저 해야 할 작업 중 하나가 바로 리눅스에 FTP 서버를 설치하는 일입니다.
많은 리눅스 서버가 우분투(Ubuntu)로 운영되고 있는데요. 이 글에서는 우분투 서버에 FTP 서버를 구축하는 방법을 단계별로 자세히 살펴보겠습니다.
FTP 서버란 무엇인가?
FTP(파일 전송 프로토콜, File Transfer Protocol)는 서버에 파일을 업로드(put)하거나 다운로드(get)할 때 사용하는 통신 규약입니다. 웹에서 파일을 내려받거나 이미지를 업로드해 본 경험이 있다면, 본인도 모르게 FTP를 사용해 본 적이 있을 것입니다. 또는 FTP 클라이언트 프로그램으로 FTP 파일 서버에 직접 연결해 본 적도 있을 수 있습니다.
이러한 파일 전송이 가능하려면 파일을 호스팅하는 원격 서버에 FTP 서버 소프트웨어가 설치되어 있어야 합니다.
홈 서버든 웹 서버, 게임 서버 등 어떤 용도의 리눅스 서버를 만들더라도, FTP는 한 시스템에서 다른 시스템으로 데이터를 전송하는 가장 간편한 방법입니다.
우분투에 FTP 서버 설치하기
우분투에 FTP 서버를 설치하는 과정은 생각보다 간단합니다. 가장 널리 사용되는 검증된 솔루션은 단연 vsftpd입니다. 아래 단계를 순서대로 따라 vsftpd로 우분투에 FTP 서버를 설치하고 설정해 보세요.
1. vsftpd 설치
이미 vsftpd가 설치되어 있을 수도 있습니다. 확인하려면 터미널 창을 열고 다음 명령어를 입력합니다:
sudo apt list --installed
목록 하단 부근에서 vsftpd를 찾을 수 있습니다. 설치되어 있지 않다면 다음 명령어로 간단히 설치하세요:
sudo apt install vsftpd
설치가 완료되면 vsftpd를 설정할 차례입니다. 먼저 원본 설정 파일의 사본을 만들어 두는 것이 좋습니다. 이렇게 해두면 설정 과정에서 문제가 생겨도 기본 설정으로 손쉽게 되돌릴 수 있습니다.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
준비가 끝났으면 다음 명령어로 서비스를 시작합니다:
sudo systemctl start vsftpd
부팅 시 자동으로 실행되도록 다음 명령어로 서비스를 활성화합니다:
sudo systemctl enable vsftpd
vsftpd 설치가 완료되었으니 이제 본격적인 설정에 들어갈 수 있습니다.
2. FTP 사용자 계정 생성
가장 먼저 필요한 것은 FTP 사용자 계정입니다. 이 계정을 통해 어떤 FTP 클라이언트로든 vsftpd가 호스팅하는 서버의 파일에 접속할 수 있습니다. 터미널에 다음을 입력하세요:
sudo useradd -m username
("username" 부분은 사용하고자 하는 계정명으로 변경합니다.)
sudo passwd username
사용자명과 비밀번호 설정을 마쳤다면, 계정의 홈 폴더에 테스트 파일을 하나 만들어 정상 작동 여부를 확인합니다:
cd /home/username
sudo nano testfile.txt
나중에 우분투 FTP 서버에 처음 접속했을 때 testfile.txt가 보이면 정상적으로 구성된 것입니다.
3. 우분투 FTP 서버 보안 설정
연결을 구성하기 전에, 우분투에서 FTP 포트가 열려 있는지 먼저 확인해야 합니다. 기본적으로 ufw(Uncomplicated Firewall)에서는 보안상의 이유로 관련 포트가 닫혀 있습니다.
20번 포트를 통한 접근을 허용하려면 다음 명령어를 사용합니다:
sudo ufw allow 20/tcp
만약 배포판이 다른 방화벽을 사용하거나 별도의 방화벽을 설치했다면, 해당 프로그램의 문서를 참고해 포트를 열어 주세요.
또한 사용자가 파일을 업로드할 수 있도록 허용해야 합니다. 이는 설정 파일에서 지정할 수 있습니다. 편집을 위해 파일을 엽니다:
sudo nano /etc/vsftpd.conf
write_enable 항목을 찾아 주석을 해제하고 "YES"로 설정되어 있는지 확인합니다:
write_enable=YES
Ctrl+X로 종료하고 Y를 눌러 저장합니다.
외부에 공개되는 FTP 서버라면 사용자별 접근 권한을 제한하는 것이 좋습니다. chroot를 활용하면 각 사용자를 자신의 홈 디렉터리 범위 안에만 머물도록 제한할 수 있습니다. vsftpd.conf에서 다음 줄을 찾아 주석(#)을 제거합니다:
chroot_local_user=YES
마찬가지로 Ctrl+X로 종료하고 Y를 눌러 저장합니다.
여러 명의 사용자를 관리해야 한다면 개별 설정 대신 목록 방식이 더 효율적입니다.
먼저 텍스트 편집기로 vsftpd.chroot_list 파일을 엽니다.
sudo nano /etc/vsftpd.chroot_list
이 파일에 자신의 폴더로 접근을 제한할 사용자 이름을 나열합니다. 저장 후 종료하고, 다시 vsftpd.conf로 돌아가 chroot_local_user=YES가 주석 처리되어 있는지 확인합니다:
#chroot_local_user=YES
그리고 대신 다음 항목들의 주석을 해제합니다:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
설정이 완료되면 아래 화면과 같은 모습일 것입니다:
다시 저장하고 종료합니다. 마지막으로 FTP 서비스를 재시작합니다:
sudo systemctl restart vsftpd.service
마지막으로 hostname 명령어를 사용해 우분투 서버의 이름을 확인합니다. 이 이름으로 FTP 서버에 접속할 수 있습니다. IP 주소를 사용하고 싶다면 ip address 명령어를 입력해 주소를 기록해 두세요.
4. 암호화 연결: FTP + SSL = FTPS
SSL/TLS를 적용해 우분투 FTP 서버와 주고받는 트래픽을 강제로 암호화할 수도 있습니다.
vsftpd.conf 파일에서 "SSL encrypted connections" 관련 항목을 찾아 다음 내용을 추가합니다:
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
파일을 저장하고 종료합니다. 이제 FTP 클라이언트에서 연결 프로토콜로 FTPS를 지정할 수 있습니다.
5. 우분투에 FTP 클라이언트 설치
다른 시스템에서는 명령줄 도구나 데스크톱 앱을 통해 우분투 FTP 서버에 접속할 수 있습니다.
리눅스 환경에서는 터미널에서 다음 명령어로 서버에 접속합니다:
sudo ftp hostname
"hostname"은 반드시 실제 서버의 호스트명으로 바꿔야 합니다. IP 주소를 사용할 수도 있습니다:
sudo ftp ipaddress
인증 요청이 표시되면 앞서 설정한 사용자 이름과 비밀번호를 입력합니다. 이후 get 및 put 명령어로 데이터를 전송할 수 있습니다.
좀 더 직관적인 도구를 원하거나 다른 운영체제에서 FTP 서버에 접속해야 한다면 전용 FTP 클라이언트가 필요합니다. 가장 많이 추천되는 프로그램은 FileZilla입니다. 오픈소스 솔루션으로 Windows(서버 버전 포함), macOS용으로 제공되며, 리눅스용 32비트 및 64비트 버전도 지원합니다. 다만 안타깝게도 우분투나 다른 리눅스 배포판용 FileZilla FTP 서버 버전은 존재하지 않습니다.
다운로드: FileZilla (무료)
FileZilla 클라이언트로 우분투 FTP 서버에 접속하려면 앱을 설치하고 실행한 뒤 다음 단계를 따르세요:
- File > Site Manager(사이트 관리자) 클릭
- New site(새 사이트) 클릭
- 오른쪽 패널에서 FTP 선택
- FTPS를 사용하는 경우 Encryption(암호화) 항목에서 TLS 선택
- Host(호스트)에 호스트명 또는 IP 주소를 입력하고 Port(포트) 번호 추가
- Logon type(로그온 유형)에서 계정 정보를 User와 Password에 입력
- Connect(연결) 클릭
연결이 완료되면 우분투 FTP 서버에서 자유롭게 데이터를 업로드하고 다운로드(put과 get)할 수 있습니다. 옮기려는 파일을 드래그 앤 드롭하기만 하면 됩니다.
다른 FTP 클라이언트를 사용하시나요? 대체로 절차는 비슷하지만, 정확한 방법은 해당 앱의 공식 문서를 참고하시기 바랍니다.
우분투 FTP 서버 구축 완료!
데스크톱 버전이든 서버 버전이든, 이제 여러분의 우분투 운영체제는 FTP 서버로 작동합니다. 웹페이지 업로드부터 중요한 데이터에 대한 편리한 접근 제공까지 다양한 용도로 활용할 수 있습니다. FTP를 사용하면 서버 장비 앞에 물리적으로 있지 않아도, 필요할 때 언제 어디서든 데이터를 손쉽게 가져올 수 있습니다.