본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Anonymous FTP
서버에 계정이 없는 사람도 anonymous(또는 ftp)라는 공용 계정으로 접속해 공개된 파일을 내려받을 수 있게 한 FTP 서비스 방식

FTP 는 원래 서버에 계정이 있는 사용자가 아이디와 비밀번호로 로그인해 쓰는 서비스다. 그런데 공개 소프트웨어 배포 서버나 자료실처럼 누구에게나 파일을 나눠 주는 곳에서 사용자마다 계정을 만들어 줄 수는 없다. 그래서 로그인 이름에 anonymous 를 넣으면 계정 없이 접속되도록 한 것이 익명 FTP 다. 비밀번호는 확인하지 않으며, 관례로 자신의 전자우편 주소를 넣는다. 리눅스 배포판 미러, GNU 소프트웨어 배포 서버처럼 공개 소프트웨어를 내려받는 FTP 서버가 대표적인 예다.

익명 사용자는 서버 쪽에서 ftp 라는 시스템 계정의 권한으로 동작하고, 그 계정의 홈 디렉터리(보통 /var/ftp)를 최상위 디렉터리로 보도록 갇힌다(chroot). 그래서 서버의 다른 파일에는 접근하지 못한다.

$ ftp ftp.example.org
Name: anonymous
331 Please specify the password.
Password: (전자우편 주소나 빈 값)
230 Login successful.
ftp> cd pub
ftp> get README
  • 로그인 이름은 anonymous 와 ftp 를 같은 뜻으로 받아 주는 서버가 많다

헷갈리는 계정

편집 원본 편집
계정 무엇인가 공개 FTP 로그인에
anonymous 익명 FTP 접속용 로그인 이름 쓴다
root 시스템 최고 관리자 쓰지 않는다. 보안상 FTP 로그인을 막아 두는 계정이다(vsftpd 의 ftpusers·user_list) → 리눅스 vsftpd.conf
nobody 아무 권한이 없는 시스템 계정. 데몬을 낮은 권한으로 돌리거나 NFS 에서 원격 root 를 맵핑할 때 쓴다(root_squash) → 리눅스 NFS 로그인용이 아니다
rpc RPC 포트매퍼(rpcbind) 데몬이 쓰는 시스템 계정 로그인용이 아니다

vsftpd 는 /etc/vsftpd/vsftpd.conf 에서 익명 접속을 정한다.

항목 뜻
anonymous_enable=YES/NO 익명 접속 허용 여부. 공개 배포 서버가 아니면 NO 로 둔다
anon_root=/var/ftp 익명 사용자의 최상위 디렉터리
anon_upload_enable=YES 익명 사용자의 업로드 허용(write_enable=YES 도 필요)
anon_mkdir_write_enable=YES 익명 사용자의 디렉터리 생성 허용
no_anon_password=YES 익명 로그인 때 비밀번호를 묻지 않는다
  • 익명 업로드를 허용하면 불법 자료 유포나 악성코드 배포 창고로 쓰일 수 있다. 업로드 디렉터리는 쓰기만 되고 목록 보기는 안 되게 나눈다
  • 익명 디렉터리에 시스템 파일(/etc/passwd 사본 등)이 남아 있지 않게 한다
  • 내려받기 전용 서버가 아니면 익명 접속을 끈다. 주요정보통신기반시설 취약점 점검 항목에도 'Anonymous FTP 비활성화' 가 들어 있다
  • FTP 는 아이디·비밀번호와 데이터를 평문으로 보낸다. 계정 로그인이 필요한 전송은 SFTP·FTPS 로 바꾼다