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
같은 카테고리의 다른 글
워드프레스 / 미디어 업로드 폴더 변경하는 방법

워드프레스 / 미디어 업로드 폴더 변경하는 방법

워드프레스에서 이미지나 파일 등을 업로드하면 /wp-content/uploads 폴더에 저장된다. 사이트를 방문했을 때 글에 있는 이미지의 경로만 조사해도 워드프레스로 만든 것이라는 것을 알 수 있다. 특별한 이유로 인해 미디어 업로드 폴더를 변경해야 한다면 다음과 같이 한다. /wp-admin/options.php에 접속한다. 관리자 메뉴를 통해서는 접속할 수 없는, 다양한 설정을 할 수 있는 페이지가 나온다. upload_path 설정에 원하는 폴더 ...

원노트 / 메뉴에서 할 일 태그 위치 변경

원노트 / 메뉴에서 할 일 태그 위치 변경

할 일 태그는 순서 없는 목록이나 순서 있는 목록을 만드는 버튼 옆에서 만들 수 있었는데, 업데이트가 되면서 위치가 바뀌었습니다. 오른쪽 끝의 하위 메뉴로 들어갔습니다.

안드로이드 / 앱 / 카카오뱅크 / 외국에서 송금 받을 때 필요한 SWIFT 코드 알아내는 방법

안드로이드 / 앱 / 카카오뱅크 / 외국에서 송금 받을 때 필요한 SWIFT 코드 알아내는 방법

해외에서 송금을 받기 위해서는 계좌번호 말고도 다른 정보가 필요하다. 그 중 하나가 SWIFT 코드. 카카오뱅크의 SWIFT 코드를 알아내기 위해서는... 카카오뱅크 앱을 실행하고 를 누른다. 밑으로 내려가서 을 누른다. 를 누르면, SWIFT 코드를 확인할 수 있다. CITIKRSXKAK 해외에서 송금이 오면 사유를 확인하는 전화를 할 수도 있다고 한다. 소액이어도 전화가 올라나? ...

당구 / 길 / 뒤돌려 치기

당구 / 길 / 뒤돌려 치기

뒤돌려 치기 아래와 같이 1적구를 맞추고 장단장으로 돌아서 2적구를 맞추는 것을 뒤돌려 치기(우라)라고 한다. 2적구에게 가기 전에 3개의 쿠션을 맞기 때문에 3쿠션을 칠 때 많이 사용한다. 수구의 방향은 보통 파이브 앤 하프 시스템으로 정한다. 공의 배치에 따라서 로드리게스 시스템을 이용하기도 한다. 뒤돌려 치기의 단점은 키스가 잘 난다는 것이다. 키스를 피하는 방법은 여러 가지가 ...

리눅스 / 명령어 / rmdir / 빈 디렉토리 삭제하는 명령어

rmdir rmdir은 빈 디렉토리를 삭제하는 명령어이다. Remove the DIRECTORY(ies), if they are empty. 사용법 rmdir directory a 디렉토리를 삭제한다. # rmdir a  비어있다면 삭제를 하고, 그렇지 않다면 다음을 출력한다. rmdir: failed to remove ‘a’: Directory not empty rmdir --ignore-fail-on-non-empty directory 디렉토리가 비어있지 않아도 메시지를 출력하지 않는다. rmdir -v directory 현재 디렉토리 안에 있는 모든 비어있는 디렉토리를 삭제한다. v 옵션을 넣으면 작업 결과를 ...

USB Type C To HDMI 연결 케이블로 노트북와 모니터 연결하기

USB Type C To HDMI 연결 케이블로 노트북와 모니터 연결하기

노트북을 사용합니다. 집이나 회사에서는 모니터와 연결해서 사용합니다. 노트북과 모니터, 두 개의 화면에서 작업하는데, 어떤 작업을 할 때는 그걸로도 부족할 때가 있습니다. 그래서 모니터를 하나 더 연결하기로 했습니다. 그런데 문제가 있습니다. 노트북에 HDMI 단자가 하나만 있습니다. DP도 없습니다. 대신 USB Type C 포트가 있습니다. 검색을 해보았습니다. USB C HDMI... 잔뜩 상품이 나오더군요. ...

Google Ads / 공유 예산 설정하는 방법

Google Ads / 공유 예산 설정하는 방법

구글 애드(Google Ads)는 캠페인별로 하루 예산을 정할 수 있습니다. 하루 지출 가능한 금액을 정하는 것인데, 정확히 지키지는 않습니다. 월 평균으로 계산을 해서 예산보다 더 지출되는 경우도 있습니다. 예를 들어 하루 10,000원으로 정했다면, 월 300,000 한도로 지출을 하기에, 10,000보다 더 나가기도 합니다. 캠페인은 검색 캠페인과 디스플레이 캠페인으로 구분되는데, 한 가지 주제의 광고라 ...

안드로이드 / 앱 / 카카오뱅크 / 장기 미사용 계좌 거래 중지 해제하기

안드로이드 / 앱 / 카카오뱅크 / 장기 미사용 계좌 거래 중지 해제하기

카카오뱅크에 계좌를 만들었다. 그런데 사용하지 않았다. 1년 쯤 지났을까? 거래중지가 되었다고 메시지가 왔다. 거래중지를 시키기 전에 미리 연락이 왔을 텐데 못보고 지나친 듯... 계좌가 하나 필요해서 카카오뱅크의 계좌를 다시 살리기로 했다. 방법은... 카카오뱅크 앱을 열고, 거래중지된 계좌 상세 정보로 들어간다. 그리고 를 누른다. 거래중지 옆에 있는 를 누르면, 해제할 수 있는 방법이 나온다. ...

디아블로 2 / 16자리 시디키 26자리로 변환하는 방법

디아블로 2 / 16자리 시디키 26자리로 변환하는 방법

방을 정리하다가 디아블로 2 시디들을 발견했습니다. 추억의 게임이네요. 1999년에 구입한... 찾은 김에 PC에 설치를 해보려고 했는데, PC에 시디롬이 없습니다. 요즘은 시디롬이 있는 PC나 노트북을 찾기 힘들죠. 다른 방법이 있나 찾아보니 블리자드 홈페이지에서 설치 파일을 다운로드할 수 있다고 합니다. 그런데, 그걸로 설치하려면 26자리 시디키가 필요합니다. 갖고 있는 건 16자리 시디키인데... 역시나 방법이 있습니다. ...

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