FTP - 인터넷상의 컴퓨터들간에 파일을 교환하기 위한 표준 프로토콜
Real FTP : ID / PASS 인증하는 사용자들 EX) user01 .....
Anonymous FTP : 인증 없는 사용자 EX) Anonymous .....
FTP 종류
wu-ftpd : 예전 RedHat Linux에서 사용하던 기본 FTP 프로그램
vsftpd : 현재 많이 사용되고 있는 기본 FTP 프로그램
proftpd : 현재 많이 사용되고 있는 기본 FTP 프로그램
기타(gssftp, tftp, sftp...)
vsFTP (Very Secure FTP)
■ 프로그램: vsftpd
■ 데몬 & 포트 & 프로토콜: /usr/sbin/vsftpd, 20/21, TCP
■ 주 설정 파일: /etc/vsftpd/vsftpd.conf
■ 하위 설정 파일: /etc/vsftpd/{user_list, ftpusers}
■ 스크립트: /etc/init.d/vsftpd
파일종류
/etc/vsftpd/vsftpd.conf
- vsftpd 프로그램의 주 설정 파일
/etc/vsftpd/ftpusers
- vsftpd 서버에 접속할 수 없는 사용자 정의
/etc/vsftpd/user_list
- vsftpd 서버에 접속할 수 없는 사용자 정의
/var/ftp
- Anonymous FTP 사용자를 위한 디렉토리
■서버를 확인 할 때 사용하는 클라이언트 명령어
(DNS) nslookup, dif, host 명령어
(WEB) firefox, lynx(curl)
(FTP) gftp, ftp
■ FTP 서버에 접속하는 클라이언트 프로그램
- (GUI) # gftp &
- (TUI) # ftp <IP> <PORT>
ftp 서버 접속
# ftp XXX.XXX.XXX.XXX
업로드/다운로드 포인터 맞추기
ftp> help
ftp> help lcd
ftp> cd /tmp /* cd : change directory */
ftp> lcd /root /* lcd: local change directory */
편리한 기능 설정
ftp> bin /* 전송모드: binary, ascii */
ftp> hash /* 파일전송: Hash(#) 표시 */
ftp> prompt /* 대화형모드 ON/OFF */
■ 전송 모드(Transmission Mode)
File(ASCII) ----- ASCII ----->
File(BINARY)----- BINARY ---->
■ 해쉬 표시(Hash)
File(500M) --------4K(#)---->
■ 대화형 모드 on/off
File1, File2 ----------------> (y/n)?
File3, File4
업로드/다운로드
ftp> put linuxXXX.txt
ftp> get linuxXXX.txt
ftp> mput linux* (mput: Multiful put)
ftp> mget linux* (mget: Multiful get)
⑥ 확인/해제
ftp> ls (ls or dir)
ftp> !ls (>!CMD)
■ 서비스가 안되는 경우의 메세지 비교 ( 원인 : 데몬이 떠 있지 않아서 생기는 문제)
(ftp ) # ftp localhost 21
ftp: connect: Connection refused
(ssh ) # ssh -p 22 localhost
ssh : connect to host localhost port 22: Connection refused
(telnet ) #telnet localhost 23
telnet : connect to address 127.0.0.1 : Connection refused
telnet : Unable to connect to remote host : Connection refused
■ root 사용자가 서비스 접근할 수 있도록 설정
(telnet) /etc/securetty (pts/1 ~ pts/11)
(ssh ) /etc/ssh/sshd_config (PermitRootLogin yes)
(ftp ) /etc/vsftpd/{ftpusers, user_list} (root 라인 삭제)
■ ftp 서버에 접근 사용자 제한
접근 제어 (ACL (Access Control List))
- 호스트 or 네트워크 접근 제어(EX : 192.168.10.0/24, 192.168.10.100/32)
- 사용자 접근 제어 (EX : user01 .....)
(userlist_deny=YES) 두개의 파일 중 한개의 파일에라도 사용자가 정의되어 있으면 FTP 로그인 할 수 없다.
- /etc/vsftpd/ftpusers
- /etc/vsftpd/user_list
(userlist_deny=NO) user_list 파일에 존재하는 사용자만 FTP 로그인을 할 수 있다.
- /etc/vsftpd/ftpusers
- /etc/vsftpd/user_list
※[참고] /etc/vsftpd/vsftpd.conf 설정 몇가지
chroot_local_user=YES
- FTP 사용자가 서버에 로그인 한 경우에 자신의 홈디렉토리를 /(root) 디렉토리 인것 처럼 인식이 되어 자신의 홈 디렉토리 아래에 있는 디렉토리만 이동이 가능한 것이다.
userlist_deny=NO
- FTP 사용자 접근 제한
listen_port=2121
- FTP 포트 변경
max_clients=3
- vsFTP 서버 접속할 수 있는 사용자 수 제한
max_per_ip=3
FTP 프로그램 패치/업데이트
vsftpd 프로그램 다운로드
vsftpd 프로그램에 대한 안전한(신뢰할 수 있는) 프로그램을 제공하는 사이트이다.
ftp.redhat.com
ftp.suse.com
ftp.debian.org
ftp.openbsd.org
ftp.freebsd.org
ftp.gnu.org
ftp.gnome.org
ftp.kde.org
ftp.kernel.org
rpmfind.net
ftp.linux.org.uk
ftp.gimp.org
ftp-stud.fht-esslingen.de
gd.tuwien.ac.at
ftp.sunet.se
ftp.ximian.com
ftp.engardelinux.org
ftp.sunsite.org.uk
ftp.isc.org
파일 업로드/다운로드 기록 확인
# tail -f /var/log/xferlog
Mon Apr 14 03:40:45 2014 1 127.0.0.1 2084 /test/file1 b _ o r root ftp 0 * c
Mon Apr 14 03:41:54 2014 1 127.0.0.1 2084 /root/file1 b _ i r root ftp 0 * c
[참고] /var/log/xferlog 파일에 대한 분석
Mon Apr 14 03:40:45 2014 1 127.0.0.1 2084 /test/file1 b _ o r root ftp 0 * c | |
Mon Apr 14 03:40:45 2014 | 전송 날짜 및 시간(2014년 4월14일 월요일 03시40분 45초) |
1 | 전송 소요 시간(1초) |
127.0.0.1 | 원격호스트 주소(127.0.0.1) |
2084 | 전송 파일 크기(2084 bytes) |
/test/file1 | 전송 파일명(/test/file1) |
b |
전송 파일 종류(Transfer mode) : binary mode a : ascii b : binary |
_ |
액션 플래그/FTP 서비스내 적용 내용: 액션 없음 _ : 아무 액션 없음 C : 압축 파일 U : 압축되지 않은 파일 T : tar로 묶여 있는 파일 |
o | 전송 방향(Direction) i : incoming(파일을 업로드) o : outgoing(파일을 다운로드) d : delete(파일을 서버에서 삭제) |
r | 사용자 파일 접근 방식 r : real(인증된 사용자) a : anonymous(익명사용자) |
root | 로그인 사용자명(root) |
ftp | 서비스명 |
0 | 사용자 인증 방법(0 : 없음) |
* | 인증 사용자 ID(Authentication User ID) : 인증 방법에 의해 되돌려 지는 User ID * 표시는 인증된 사용자 ID를 사용할 수 없다는 의미이다. |
c | 파일 전송 상태: c : complete(전송완료) i : incomplete(전송 실패) |
Sep 12 16:04:53 linux202 vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=root rhost=localhost.localdomain user=root | |
Sep 12 16:04:53 | 로그 기록 시간 |
linux202 | 로그가 생성된 서버 |
vsftpd | 로그를 생성한 주체 |
pam_unix ....... | 로그 메세지 |
'네트워크' 카테고리의 다른 글
포트 스캐닝 (Port Scanning) (1) | 2018.11.01 |
---|---|
[Network] 네트워크 용어 - UDP 프로토콜 이란? (0) | 2018.10.31 |
[Network] TCP 프로토콜 이란? (0) | 2018.10.30 |
[Network] IP보안 - IPsec (IP Security) 란? (0) | 2018.10.24 |
[Network] VPN : 가상 사설망 간단 정리 및 프로토콜 종류 (0) | 2018.10.23 |
[Network] 네트워크 용어 - ICMP 란? (0) | 2018.10.18 |
[Network] 네트워크용어 - SNMP 란? (2) | 2018.10.16 |
[OSI 7Layer] Data Link Layer 데이터링크 계층 (L2) (0) | 2018.08.23 |