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 Server / do-release-upgrade / 버전 업그레이드 명령어

Ubuntu Server / do-release-upgrade / 버전 업그레이드 명령어

Ubuntu 새 버전이 나오면 어떻게 업그레이드를 할까? 새로 설치하고 다시 설정하는 게 제일 좋지만, 설정할 게 많다면 바로 업그레이드를 할 수도 있다. 업그레이드는 do-release-upgrade 명령어로 한다. do-release-upgrade -h Usage: do-release-upgrade Options: -h, --help show this help message and exit -V, ...

리눅스 / 절전 모드 진입 끄는 방법, 노트북 덮개 닫아도 켜져 있게 하는 방법

리눅스 / 절전 모드 진입 끄는 방법, 노트북 덮개 닫아도 켜져 있게 하는 방법

노트북에 리눅스를 설치했다. 노트북에 설치했지만 용도는 서버용. 그래서 항상 켜져 있어야 한다. 그런데 노트북의 특성인지 일정 시간이 지나면 절전 모드로 들어가고, 노트북 덮개를 닫으면 잠금(?) 상태가 된다. 그래서 서비스가 중지되거나 원격 연결이 되지 않는데... 항상 켜져 있게 하는 방법은 다음과 같다. 절전 모드 진입하기 않게 하는 방법 다음과 같이 명령하면 절전 모드가 해제된다. # ...

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

워드프레스 / 플러그인 / WP Mail SMTP / 메일 발신 서버 변경 플러그인

워드프레스 / 플러그인 / WP Mail SMTP / 메일 발신 서버 변경 플러그인

워드프레스는 여러 가지 메일을 관리자 또는 사용자에게 보낸다. 메일 발송은 기본적으로 워드프레스가 설치된 시스템을 이용하는데, 시스템 설정에 따라 메일이 나가지 않거나, 메일이 발송되더라도 스팸으로 빠지는 경우가 생길 수 있다. 그런 경우 다른 SMTP 서버로 메일을 발송하여 문제를 해결할 수 있다. WP Mail SMTP는 워드프레스가 다른 SMTP로 메일을 발송하게 해주는 플러그인이다. 사용자가 ...

페이팔 / 카카오뱅크 연결하는 방법

페이팔 / 카카오뱅크 연결하는 방법

최근 환율이 많이 올랐다. 그래서 페이팔에 있는 달러를 원화로 이체하기로 했다. 예전에 우리은행과 국민은행을 연결해두었는데, 최근에는 카카오뱅크를 주로 사용해서 카카오뱅크를 추가하고 이체하기로 정했다. 일단 할 것은 카카오뱅크를 페이팔 지갑에 추가하는 것인데... 많이 편해졌다. 은행계좌 연결에서 ka라고 치면... KAKAOBANK가 바로 나온다. KAKAOBANK를 선택하고... 계좌 유형을 예금으로 선택한 후, 계좌번호는 숫자만 넣는다. 동의 후 연결을 클릭하면 연결 ...

레이저 프린터 / 특징, 장점, 단점

레이저 프린터 / 특징, 장점, 단점

레이저 프린터의 인쇄 원리와 토너·드럼의 역할을 설명하고, 문서 출력의 장점과 소모품·사진·용지·설치 공간의 제약을 살펴봅니다. 잉크젯과 비교할 기준과 사용 용도에 맞는 선택 방법도 정리했습니다.

한화손해보험 / 실비보험 / 보험금 앱으로 청구하여 받는 방법

한화손해보험 / 실비보험 / 보험금 앱으로 청구하여 받는 방법

한화손해보험에 실비보험을 들어둔 게 있습니다. 병원에 잘 가지 않아서 실비보험의 드는 게 의미가 있나 고민을 했었는데, 나이가 들고 병원을 다니게 되니 잘 가입했다는 생각이 듭니다. 물론 계속 건강해서 보험금을 아까워하는 게 더 좋은 거지만요. 실비보험은 실제로 지출한 병원비를 보장 받는 건데, 보험금을 받으려면 보험회사에 청구를 해야 합니다. 병원에서 보험사로 자동으로 청구를 ...

리눅스 / 그룹 / 그룹 조회, 그룹 추가, 그룹 삭제, 그룹 수정

리눅스 / 그룹 / 그룹 조회, 그룹 추가, 그룹 삭제, 그룹 수정

그룹 조회 그룹 목록은 /et/group 파일에 있습니다. cat 명령어로 전체를 조회하거나... cat /etc/group tail 명령어로 마지막 부분을 조회할 수 있습니다. # tail -n 5 /etc/group avahi:x:70: slocate:x:21: rngd:x:974: tcpdump:x:72: vboxsf:x:973: X:Y:Z 형식으로 나오는데, X는 그룹 이름, Y는 그룹 비밀번호, Z는 그룹 ID입니다. 그룹 추가 groupadd 명령으로 그룹을 추가합니다. # groupadd group-1 # tail -n 5 /etc/group slocate:x:21: rngd:x:974: tcpdump:x:72: vboxsf:x:973: group-1:x:1000: 그룹 삭제 groupdel 명령으로 그룹을 삭제합니다. # ...

버추얼박스 / 호스트에서 게스트로, 게스트에서 호스트로 파일 전송하는 방법

버추얼박스 / 호스트에서 게스트로, 게스트에서 호스트로 파일 전송하는 방법

사용하는 PC에 영향을 주지 않고 이런 저런 테스트를 하기 위해 가상 머신을 만듭니다. 호스트와 게스트가 독립적으로 작동하는 것이죠. 하지만 독립적이라는 게 항상 편한 것은 아닙니다. 별개의 머신이라는 것이 불편할 때도 있습니다. 대표적인 예가 파일 전송입니다. 호스트에 있는 파일을 게스트로, 게스트에 있는 파일을 호스트로 옮기는 게 쉽지만은 않습니다. 하지만 방법이 없는 것은 ...