Ubuntu Server 22.04 / vsftpd로 FTP 서버 구축하기

vsftpd

vsftpd(Very Secure FTP Daemon)는 유닉스와 리눅스에서 사용할 수 있는 가벼운 FTP 서버입니다. 주요 특징은 다음과 같습니다.

  • Virtual IP configurations
  • Virtual users
  • Standalone or inetd operation
  • Powerful per-user configurability
  • Bandwidth throttling
  • Per-source-IP configurability
  • Per-source-IP limits
  • IPv6
  • Encryption support through SSL integration

설치

vsftpd는 우분투 패키지에 포함되어 있으므로 다음과 같이 명령하여 설치할 수 있습니다.

# apt install vsftpd

방화벽을 사용 중이라면 다음과 같이 명령하여 포트를 열어줍니다.

# ufw allow ftp

서버 부팅 시 자동으로 시작하게 하려면 다음과 같이 명령합니다.

# systemctl enable vsftpd

설정 변경 후 적용시키려면 서비스를 다시 시작하거나

# systemctl restart vsftpd

다시 로드합니다.

# systemctl reload vsftpd

주요 설정

설정 파일은 /etc/vsftpd.conf입니다.

주요 기본 설정은 다음과 같습니다.

  • 익명 사용자 접속 불가
  • 사용자는 읽기 전용으로 접속
  • 다른 폴더 보기 가능

사용자 쓰기 가능하게 하기

사용자는 읽기 전용으로 접속하므로 파일을 업로드하거나 삭제하는 것이 불가능합니다. 쓰기 가능하게 하려면 다음 코드에서 주석(#)을 제거합니다.

#write_enable=YES

사용자 홈 디렉토리를 벗어나지 못하게 하기

사용자는 홈 디렉토리를 벗어나서 다른 디렉토리나 파일 목록을 볼 수 있습니다. 다운로드나 업로드는 불가능하나 목록을 보는 거 자체가 문제가 될 수 있습니다. 접속한 사용자가 홈 디렉토리를 벗어나지 못하게 하려면 다음 코드에서 주석을 제거하고...

#chroot_local_user=YES

다음 코드를 추가합니다.

allow_writeable_chroot=YES

익명 사용자 접속

익명 사용자, 즉 누구나 접속할 수 있게 하려면 다음 설정 코드에서 No를...

anonymous_enable=NO

YES로 변경합니다.

anonymous_enable=YES

읽기 전용으로 /srv/ftp에 접속됩니다.

익명 사용자에게 업로드, 쓰기 권한 부여

익명 사용자가 업로드와 쓰기가 가능하게 하려면 두 가지 작업을 해야 합니다.

설정 파일 수정

설정 파일에서 다음 두 코드에서 주석을 제거합니다.

#anon_upload_enable=YES
#anon_mkdir_write_enable=YES

디렉토리 권한 설정

예를 들어 /srv/ftp/pub 디렉토리에 업로드와 쓰기가 가능하게 하고 싶다면, 디렉토리를 만들고...

# mkdir /srv/ftp/pub

쓰기 가능하게 권한을 부여하거나...

@ chmod 777 /srv/ftp/pub

ftp 사용자에게 소유권을 부여합니다.

# chown ftp:ftp /srv/ftp/pub
같은 카테고리의 다른 글

Ubuntu 22.04 Server / SSH / 포트 변경하는 방법

보안 상의 이유로 SSH 포트는 변경하는 것이 좋다. Ubuntu 22.04 Server에서 SSH 포트 변경하는 방법은 다음과 같다. 1980으로 변경한다고 가정한다. /etc/ssh/sshd_config에서 다음의 코드를... #Port 22 다음으로 변경한다. Port 1980 방화벽이 활성화되어 있다면 1980 포트를 열어준다. ufw allow 1980/tcp SSH 서비스를 다시 시작한다. systemctl restart ssh SSH 서비스를 다시 시작해도 적용되지 않으면, 컴퓨터를 다시 시작한다.

Ubuntu 22.04 Server / root 계정으로 로그인하는 방법, root 계정으로 ssh 접속하는 방법

Ubuntu는 설치할 때 일반 사용자 계정만 만듭니다. 관리자 권한이 필요할 때는 sudo를 이용하죠. 그런데 공부를 위해 혼자만 사용하거나, 여러 가지 이유로 보안에 문제가 없는 경우 root 계정으로 로그인해서 작업하는 게 편합니다. root 계정으로 로그인 하는 방법 일반 사용자 계정으로 로그인합니다. 다음과 같이 명령하여 root 계정의 비밀번호를 만들면 root 계정으로 로그인할 수 있습니다. # sudo ...

Ubuntu 18.04 Server / 설치하기

Ubuntu 18.04 Server / 설치하기

다운로드 Ubuntu Server 다운로드 페이지는 다음과 같다. https://ubuntu.com/download/server 최신 버전에 대한 안내가 주로 있으므로, 구버전을 다운로드하고 싶다면 아래 링크가 편하다. https://mirror.kakao.com/ubuntu-releases/ 가상 머신에 설치한다면 다운로드한 ISO 파일을 그대로 사용하면 되고, 물리 서버에 설치한다면 Rufus 같은 툴을 이용하여 부팅 USB를 만든다. 설치 설치 미디어로 부탕하고 잠시 기다리면 언어를 선택하는 화면이 나온다. 원하는 언어를 선택하고 엔터키를 누른다. 키보드 레이아웃을 정하고 ...

Ubuntu 18.04 Server / 시간대(time zone) 설정하는 방법

Ubuntu 18.04 Server / 시간대(time zone) 설정하는 방법

현재 서버의 시간대 확인 현재 서버에 설정된 시간대는 date 명령어로 확인할 수 있다. # date 시간대 설정 방법 1 - dpkg-reconfigure tzdata 시간대를 설정하고 싶다면 다음과 같이 명령한다. # dpkg-reconfigure tzdata 한국이라면 Asia를 선택하고 Seoul을 선택합니다. 시간대 설정 방법 2 - tzselect tzselect 명령으로 설정할 수 있다. 번호를 입력하여 시간대를 정한다. # tzselect Please identify a location so that time ...

Ubuntu 20.04 Desktop / 설치하기

Ubuntu 20.04 Desktop / 설치하기

다음은 Ubuntu 20.04 Desktop을 설치하는 과정입니다. Windows를 설치하는 것만큼 쉽고, 시간도 오래 걸리지 않습니다. Ubuntu Desktop을 다운로드하고 설치용 CD 또는 USB를 만듭니다. Rufus를 사용하면 편합니다. 컴퓨터에 설치용 미디어를 장착하고 부팅합니다. 잠시 기다리면... GUI로 설치를 시작합니다. 언어를 한국어로 정하고 를 클릭합니다. 키보드 레이아웃을 정하고 를 클릭합니다. 일반 설치와 최소 설치 중 하나를 선택합니다. 최소 설치를 하고 나중에 ...

Ubuntu / 특정 패키지만 업그레이드 하기, 보안 업데이트만 업그레이드 하기

우분투 서버에 접속하면 업데이트가 필요한 패키지가 있는지 알려줍니다. 두 가지 분류로 알려주는데, 하나는 패키지 업데이트, 또 하나는 보안 업데이트입니다. 소프트웨어는 보통 최신 버전을 유지하는 것이 좋지만, 업그레이드했을 때 문제가 없는지 충분히 확인을 해야 합니다. 따라서 특정 패키지만 업그레이드를 하거나, 보안 업데이트만 해야 하는 경우가 발생하는데, 어떻게 그런 작업을 하는지 알아보겠습니다. 특정 ...

Ubuntu 24.04 Server / 설치된 패키지 확인하는 방법

Ubuntu 24.04 Server / 설치된 패키지 확인하는 방법

우분투에서 설치된 패키지 확인은 apt 또는 dpkg 명령어로 할 수 있다. 출력하는 내용에 차이가 있다. apt 명령어로 설치된 패키지 확인 설치된 모든 패키지를 출력한다. # apt list --installed 설치된 패키지 중 이름에 mariadb가 있는 것을 출력한다. # apt list --installed | grep mariadb dpkg 명령어로 설치된 패키지 확인 설치된 모든 패키지를 출력한다. # dpkg -l 설치된 패키지 중 이름에 ...

Ubuntu 20.04 Server / GUI 설치하는 방법

Ubuntu 20.04 Server / GUI 설치하는 방법

Ubuntu Server는 CLI(Command Line Interface) 환경으로 설치된다. 그런데 어떤 작업은 GUI(Graphical Uer Interface) 환경에서 하는 것이 편하다. 만약 GUI 환경이 필요하다면 설치하여 사용할 수 있다. GUI 패키지에는 kubuntu-desktop lubuntu-desktop ubuntu-desktop ubuntu-desktop-minimal xubuntu-desktop 등이 있다. 주로 ubuntu-desktop 또는 ubuntu-desktop-minimal을 사용하는 듯 하다. 예를 들어 ubuntu-desktop-minimal을 설치한다면, 다음과 같이 명령하면 된다. # apt install ubuntu-desktop-minimal Minimal임에도 불구하고 꽤 많은 저장소 공간이 필요하다. After ...

Ubuntu 16.04 / SASS 설치하는 방법

우분투 16.04에 SASS를 설치하는 방법은 두 가지가 있습니다. 방법 1 apt install ruby-sass 방법 2 apt install ruby gem install sass 설치되었는지 확인하는 방법 sass -v SASS 버전이 출력되면 제대로 설치된 것입니다. Sass 3.4.23 (Selective Steve) 참고 최신 버전의 SASS를 사용하고 싶다면 방법 2로 설치합니다.

Ubuntu Server / 22.04 / 네트워크 세팅에 이더넷(Wired) 보이지 않을 때 해결 방법

Ubuntu Server / 22.04 / 네트워크 세팅에 이더넷(Wired) 보이지 않을 때 해결 방법

우분투 설정의 네트워크에 Wired가 보이지 않는다. 그것이 보여야 GUI로 IP 설정이 가능한데 말이다. 이를 보이게 하는 방법이 여러 가지가 있는 거 같은데, 내가 성공한 방법은... /etc/netplan/00-installer-config.yaml의 내용은 다음처럼 생겼을 것이다. # This is the network config written by 'subiquity' network: ethernets: eth0: dhcp4: true ...