익명 FTP
IT위키
더 많은 작업
- 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 로 바꾼다