내 리눅스 컴퓨터를 파일 서버로 쓸 수 있을까?
할 수 있다! FTP를 이용하면 된다.

FTP(File Transfer Protocol)는 파일 전송 프로토콜로
파일을 전송하기 위한 표준 네트워크 프로토콜이다.
쉽게 말해서, 내 컴퓨터를 파일 서버로 만들어 다른 사람에게 파일을 쉽게 공유할 수 있게 만들어 준다.

FTP를 리눅스 서버에서 허용하려면,
FTP 서버 소프트웨어를 설치하고 방화벽 규칙을 설정하면 된다.
여기서는 일반적으로 사용되는 vsftpd(Very Secure FTP Daemon)를 기준으로 설명하겠다.

VSFTPD란?

vsftpd를 간단히 말하자면 FTP 서버 솔루션이다.
전반적으로 안정적이고 보안성이 뛰어나며 가볍다.
무엇보다도 쉽게 다룰 수 있어서 많은 서버에서 널리 사용된다.

FTP 서버 소프트웨어, vsftpd 설치하기

vsftpd를 설치해보자.
터미널에서 다음 명령어를 입력하자.

# Ubuntu/Debian
sudo apt update
sudo apt install vsftpd

# CentOS/Fedora
sudo yum update
sudo yum install vsftpd
ShellScript

vsftpd 설정하기

설치가 완료되면, 기본 설정 파일을 수정하여 FTP 서버의 동작을 설정할 수 있다.
기본 설정 파일은 /etc/vsftpd.conf 에 있다.

sudo nano /etc/vsftpd.conf
ShellScript

기본 설정에서 고려해야 할 몇 가지 중요한 옵션은 다음과 같다.

  • 익명 사용자 비활성화: 익명 사용자가 접근하지 못하도록 설정한다.
    • anonymous_enable=NO
  • 로컬 사용자 로그인 활성화: 시스템의 로컬 사용자 계정으로 FTP에 접근할 수 있도록 설정한다.
    • local_enable=YES
  • 업로드 허용: 로컬 사용자가 파일을 업로드할 수 있도록 설정한다.
    • write_enable=YES
  • 사용자 홈 디렉토리 접근 제한: 사용자를 자신의 홈 디렉토리로 제한한다.
    • chroot_local_user=YES or NO 선택

설정을 마쳤으면 파일을 저장하고 닫자. (Ctrl + X, Y, Enter 차례로 입력)

vsftpd 서비스 시작 및 자동 시작 설정

이번엔 vsftpd 서비스를 시작하고, 서버 재부팅 시 자동으로 시작되도록 설정해보자.
터미널에 아래와 같이 명령어를 입력한다.

sudo systemctl start vsftpd
sudo systemctl enable vsftpd
ShellScript

방화벽 FTP 허용 설정하기

FTP가 사용하는 포트는 기본적으로 21번 포트를 사용한다.
또한, 패시브 모드를 사용할 경우에는 사용하는 포트 범위를 방화벽에서 허용해야 한다.
이 글에서는 액티브 모드로만 설정했으며, 패시브 모드에 대한 설정은 따로 하지 않았다.
방화벽은 우분투의 기본 방화벽인 UFW를 사용하여 FTP 포트를 허용하였다.

sudo ufw allow 21/tcp
ShellScript

리눅스에서의 FTP 기본 설정 완료!

이제 FTP 서버가 설정되었으며, 로컬 사용자 계정을 사용하여 FTP에 접속할 수 있다.
접속 시 사용하려는 FTP 클라이언트에서 서버의 IP 주소로컬 사용자 계정 정보를 입력하면 연결된다.

주의: FTP는 기본적으로 보안되지 않은 프로토콜이다. 전송 중인 데이터가 암호화되지 않기 때문에 보안을 위해 FTPS(FTP Secure) 또는 SFTP(SSH File Transfer Protocol)를 사용하는 것이 좋다. SFTP는 SSH를 사용하므로 더 안전한 대안이긴 하지만 개인 파일 서버 용도로 사용할 목적이면 그렇게 보안 설정을 철저히 할 필요는 없고 FTP만으로도 충분하다.

FTP 사용을 위한 사용자 추가하기

이제 파일 공유 서버를 이용할 새로운 사용자 계정을 만들어보자.
FTP 사용자는 리눅스 시스템 사용자로 추가할 수 있다.
예시로 ‘eunbyeol’이라는 사용자를 추가해보겠다.

sudo adduser eunbyeol
ShellScript

사용자를 추가하면 해당 사용자의 홈 디렉토리 설정과 암호를 설정할 수 있다.
비밀번호와 비밀번호 재확인을 위해 비밀번호를 두 번 입력한 후,
사용자 정보를 추가하게 되는데 이는 선택사항이다.
그냥 엔터를 눌러 정보를 굳이 입력하지 않아도 무방하다.

FTP 사용을 위한 사용자 추가 예시 이미지

FTP 사용자의 파일 시스 권한 설정하기

FTP 서버에 사용될 사용자를 추가하였다면,
해당 사용자가 서버에서 어떤 작업을 수행할 수 있는지 접근 권한을 설정해야 한다.

  • 읽기 권한: 파일 및 폴더 목록 보기, 파일 다운로드 가능
  • 쓰기 권한: 파일 및 폴더 업로드, 삭제, 이름 변경 가능

사용자의 역할에 따라 적절한 권한을 부여하는 것이 중요하다.
예를 들어, 특정 폴더에만 접근하여 파일을 업로드하도록 허용하려면 해당 폴더에 대한 쓰기 권한만 부여하면 된다.
물론 권한이 없는 사용자가 FTP에 접근할 경우, 아무런 작업을 수행할 수 없다.

파일 시스템 수준에서 사용자의 접근 권한을 제어하는 설정을 해보자.
이는 chmodchown 명령어를 사용하여 수행할 수 있다.
보편적으로 권한 부여는 chmod 755 를 사용한다.
‘chmod 755’의 권한 부여의 세부 사항은 다음과 같다.

  • 소유자 : 읽기, 쓰기, 실행 권한 부여
  • 그룹과 기타 사용자 : 읽기 및 실행 권한 부여
sudo chown user:user /home/user/ftp_directory
sudo chmod 755 /home/user/ftp_directory

##### 예시 : 사용자 [eunbyeol] #####
### 공유할 디렉토리가 존재하지 않을 경우 폴더 생성: /home/eunbyeol/eunbyeol.co.kr
# sudo mkdir /home/eunbyeol/eunbyeol.co.kr
### 디렉토리 소유자와 그룹 설정: 경로(/home/eunbyeol/eunbyeol.co.kr)에 대한 소유자와 그룹 지정
# sudo chown eunbyeol:eunbyeol /home/eunbyeol/eunbyeol.co.kr
### 소유자, 그룹, 기타 사용자에게 권한 부여 설정: 경로에 대한 권한 부여
# sudo chmod 755 /home/eunbyeol/eunbyeol.co.kr
ShellScript

FTP 파일 서버 접속하기 (FileZilla 클라이언트 사용)

vsftpd 설치 및 설정이 완료되었다!
이제 FTP 클라이언트 프로그램을 사용하여 FTP 서버에 접속해보자.
이 글에서는 FTP 클라이언트 프로그램으로 ‘파일질라’를 사용하나,
이는 자신이 편한 FTP 프로그램을 사용하여 접속하면 된다.

> 파일질라 클라이언트 다운로드 사이트로 가기 (윈도우 64비트용)

파일질라를 실행하면 왼쪽 상단의 메뉴 중 ‘파일 – 사이트 관리자(S)’를 누른다.

파일질라을 활용하여 FTP 접속 설정을 위한 사이트 관리자 메뉴 접근 경로 예시 이미지
  • 호스트: FTP 서버의 IP 주소 입력
  • 사용자 : FTP 서버에 생성한 사용자 계정 입력
  • 비밀번호 : 해당 사용자 계정의 비밀번호 입력
파일질라 사이트 관리자에서 FTP 서버 접속을 위한 일반 옵션에 서버 및 사용자 정보를 입력하는 예시 이미지

vsftpd 에서 별다른 설정을 하지 않았으므로 액티브 모드(능동형) 모드로 접속해야 한다.
전송 설정 탭에서 전송 모드를 능동형으로 바꿔주자.

파일질라에서 서버의 전송 모드를 능동형으로 바꾸는 예시 이미지

그리고 아래의 ‘연결’ 버튼을 눌러 FTP 서버에 접속해보자.
접속 후에는 파일을 자유롭게 업로드하고 다운로드할 수 있다.
아래의 이미지는 내가 예시로 만든 ‘eunbyeol.co.kr’ 디렉토리를 FTP 서버에 접속해서 확인한 이미지이다.

FTP 클라이언트 프로그램 파일질라를 이용해 내가 구축한 FTP 서버에 접속한 예시 이미지

🎉 축하한다! 나만의 파일 서버를 구축했다.
이제 FTP 서버를 통해 다른 사람들과 안전하고 효율적으로 파일을 공유할 수 있게 되었다.
FTP는 웹 개발, 데이터 백업, 대용량 파일 공유 등 다양한 분야에서 유용하게 활용될 수 있다.
이번 기회에 FTP 사용법을 익혀 파일 관리의 효율성을 높여보는 것은 어떨까?

✅ 더 알아보기

Similar Posts

댓글 남기기