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 / 설치 USB 만드는 방법

ODD가 없는 컴퓨터에 OS를 설치하는 방법은 두가지입니다. 첫번째는 휴대용 ODD를 이용하는 것이고, 두번째는 USB에 설치 파일을 넣어서 이용하는 것입니다. 두번째 방법이 간편하기는 하지만 설치용 USB를 만드는 게 좀 번거롭습니다. 하지만, 우분투(Ubuntu) 설치용 USB는 몇 번의 클릭으로 쉽게 만들 수 있습니다. 우분투 다운로드 원하는 우분투 버전을 다운로드 받습니다. Universal USB Installer 다운로드 다음의 링크에서 Universal USB Installer를 다운로드 ...

Ubuntu 24.04 Server / 고정 IP 설정하는 방법

네트워크 설정 파일은 /etc/netplan 디렉토리 안에 있는 yaml 파일입니다. 파일 이름은 시스템마다 다를 수 있습니다. # ll /etc/netplan total 12 drwxr-xr-x 2 root root 4096 Apr 27 23:00 ./ drwxr-xr-x 108 root root 4096 Apr 27 23:06 ../ -rw------- 1 root root 389 Apr 27 23:00 50-cloud-init.yaml DHCP라면 설정 파일이 다음과 ...

Ubuntu 16.04 Server / 고정 IP 설정하는 방법

네트워크 설정 파일은 /etc/network/interfaces이다. 우분투를 DHCP로 설치했다면 설정 파일의 내용은 다음과 비슷하게 되어 있다. # The primary network interface auto enp0s3 iface enp0s3 inet dhcp 이를 다음처럼 변경하고 저장한다. xxx.xxx.xxx.xxx는 네트워크 환경에 맞게 수정한다. # The primary network interface auto enp0s3 iface enp0s3 inet static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx dns-nameservers xxx.xxx.xxx.xxx 다음과 같이 명령하여 네트워크를 재시작한다. systemctl restart networking.service 만약 위와 같이 해도 ...

Ubuntu 20.04 / 글꼴 설치하는 방법

Ubuntu 20.04 / 글꼴 설치하는 방법

Ubuntu 20.04 Desktop 설치하려는 글꼴을 더블 클릭하거나, 글꼴 선택 후 엔터키를 누르거나, 마우스 우클릭 후 를 클릭합니다. 상단에 있는 를 클릭합니다. 설치가 완료되면 으로 바뀝니다. 글꼴이 잘 설치되었는지 확인합니다.

Ubuntu Server / 메모

MariaDB / 포트 변경 MariaDB의 기본 접속 포트는 3306입니다. 이를 다른 포트로 변경하고 싶다면 /etc/mysql/mariadb.conf.d/50-server.cnf를 수정합니다. port = 3306 을 찾아서 원하는 포트로 변경한 후 저장합니다. 그리고 MariaDB를 재시작합니다. service mysql restart MariaDB / Can't connect to MySQL server on ... (10061) 다음과 같은 에러를 만났다면... Can't connect to MySQL server on ... (10061) /etc/mysql/mariadb.conf.d/50-server.cnf에 있는 bind-address = 127.0.0.1 를 ...

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 ...

Ubuntu 18.04 / 메모

SSH 설정 설정 파일 /etc/ssh/sshd_config 포트 변경하기 다음 코드를 #Port 22 다음처럼 바꾼다. Port 1234 포트 번호는 자신이 원하는 것으로... root 계정 로그인 가능하게 만들기 다음 코드를 #PermitRootLogin prohibit-password 다음처럼 만든다. PermitRootLogin yes 설정 변경 적용하기 service ssh restart

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 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 18.04 Server / 언어 변경하는 방법

현재 언어 확인하기 locale 명령어로 현재 언어가 무엇인지 확인할 수 있습니다. # locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 언어 변경하기 사용할 언어를 먼저 설치합니다. 한국어를 사용하고 싶다면 다음과 같이 명령합니다. # apt-get install language-pack-ko /etc/default/locale을 열고 다음과 같이 만듭니다. LANG=ko_KR.UTF-8 테스트하기 새로 로그인하거나 재부팅하면 변경한 언어가 적용됩니다. 의미 없는 문자열을 입력해보거나... # 123 123: 명령을 찾을 수 없습니다 locale 명령어로 확인할 수 있습니다. # locale LANG=ko_KR.UTF-8 LANGUAGE= LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUREMENT="ko_KR.UTF-8" LC_IDENTIFICATION="ko_KR.UTF-8" LC_ALL=