1. vsftpd 패키지 설치:

터미널을 열고 다음 명령어를 실행하여 vsftpd 패키지를 설치합니다.

sudo apt update
sudo apt install vsftpd

 

2. vsftpd 서비스 시작 및 상태 확인:

sudo systemctl status vsftpd

"active (running)"이라고 표시되면 정상적으로 실행 중인 것입니다.

 

3. vsftpd 설정 파일 편집:

vsftpd의 주요 설정 파일은 /etc/vsftpd.conf 입니다. 텍스트 편집기 (예: nano)를 사용하여 이 파일을 편집합니다.

sudo nano /etc/vsftpd.conf

다음 항목들을 점검하세요:

listen=YES
listen_ipv6=NO
anonymous_enable=NO         # 익명 로그인 비활성화
local_enable=YES            # 로컬 사용자 로그인 허용
write_enable=YES            # 파일 업로드/수정 허용
chroot_local_user=YES       # 사용자를 홈 디렉토리로 제한
user_sub_token=$USER
local_root=/home/$USER/ftp  # 사용자의 FTP 디렉토리 지정

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

$USER는 리터럴 문자열이 아니라, 접속하는 실제 사용자 계정 이름으로 자동 치환됩니다.

즉, 설정 파일에 그대로 $USER라고 작성해야 합니다.

예를 들어:

FTP로 devpc라는 사용자가 접속하면, local_root=/home/devpc/ftp로 인식됩니다.

user1이라는 계정이 접속하면, local_root=/home/user1/ftp로 자동 인식됩니다.

 

userlist_enable=YES인 경우, 아래 경로의 파일도 확인:

cat /etc/vsftpd.user_list

 

이 파일에 "사용자계정"이 없거나, 허용된 사용자 목록으로 등록되어 있는지 확인하세요.

userlist_deny=NO인 경우에만 이 목록에 있어야 합니다.

 

4. 계정의 쉘 및 홈 디렉토리 확인 :

계정이 FTP 접속을 위한 최소한의 권한과 쉘을 가지고 있어야 합니다.

cat /etc/passwd | grep 사용자계정

 

 

출력 예시:

사용자계정:x:1001:1001::/home/사용자계정:/bin/bash

/bin/false나 /usr/sbin/nologin 등으로 되어 있다면 FTP 접속이 제한됩니다.

 

사용자 디렉토리 준비

mkdir -p /home/사용자명/ftp/files
chmod 550 /home/사용자명/ftp
chmod 750 /home/사용자명/ftp/files
chown -R 사용자명:사용자명 /home/사용자명/ftp

 

5. 방화벽 허용

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload

 

 

5. FTP 재시작 및 로그 확인  :

설정을 수정한 뒤에는 반드시 FTP 서버를 재시작하세요.

sudo systemctl restart vsftpd

 

로그 확인:

sudo tail -f /var/log/vsftpd.log

 

vsftpd.log 파일이 없는 이유와 대처 방법

vsftpd.conf 파일을 열어 다음 항목을 확인하세요:

sudo nano /etc/vsftpd.conf

 

아래 항목들이 포함되어 있어야 합니다:

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES

 

  • xferlog_enable=YES → 전송 로그 기록
  • log_ftp_protocol=YES → 명령 로그도 자세히 기록
  • xferlog_file → 로그 파일 경로 지정

vsftpd를 재시작하세요

sudo systemctl restart vsftpd

 

 

ftp localhost 명령으로 접속 시 다음 오류 발생:

530 Login incorrect.
ftp: Login failed

오류 메시지 530 Login incorrect는 FTP 서버에서 인증(로그인)에 실패했을 때 발생합니다. 주로 다음 이유 때문입니다.

 

1. 아이디 또는 비밀번호 오류

 

  • 입력한 사용자 계정명이 틀렸거나, 비밀번호 오타일 수 있습니다.
  • 비밀번호 입력 시 화면에 아무것도 표시되지 않으므로 주의해서 입력하세요!
ftp localhost
Name (localhost:yourname): [정확한 계정명]
Password: [정확한 비밀번호]

 

 

2. 계정이 vsftpd에서 허용되지 않음

vsftpd.conf 파일을 확인해서 다음 설정들이 제대로 되어 있는지 보세요:

local_enable=YES        # 로컬 사용자 로그인 허용
userlist_enable=YES     # 사용자 제한 설정 사용 (있는 경우 주의)
userlist_deny=NO        # 목록에 있는 사용자만 허용 (YES일 경우: 차단 목록이 됨)
userlist_file=/etc/vsftpd.user_list

 

  • userlist_enable=YES라면, /etc/vsftpd.user_list 파일에 해당 계정이 있어야 합니다 (deny=NO일 경우).
  • 반대로 userlist_deny=YES일 경우, 리스트에 있으면 차단되는 구조입니다.

점검 체크리스트

사용자명, 비밀번호 정확한지 로그인 시 입력 재확인
vsftpd 설정 확인 sudo nano /etc/vsftpd.conf
쉘 권한 확인 cat /etc/passwd
홈 디렉토리 존재 여부 ls -ld /home/사용자명
로그 확인 sudo journalctl -u vsftpd 또는 /var/log/vsftpd.log

 

 

pam_service_name 확인

vsftpd는 PAM(인증 모듈)을 통해 로그인 처리를 합니다.

/etc/vsftpd.conf에 아래 줄이 있다면 주의:

pam_service_name=vsftpd

 

그리고 /etc/pam.d/vsftpd 파일이 존재해야 하고, 아래 줄이 있어야 합니다:

auth    required    pam_unix.so
account required    pam_unix.so

'나만 중요한 Tip' 카테고리의 다른 글

영상 콘텐츠 활용 방법  (0) 2025.04.21
Ubuntu 24.04 Nginx 설치(1)  (0) 2025.04.11

+ Recent posts