16. FTP grandmarnier
Review Protocol OSI Model FTP What is that? characteristics Active vs Passive functions SFTP Secure FTP sftp vs ftps Practice Session Contents
짚고넘어가기 Protocol 표준화된통싞규약 통싞을원하는두개체 (client) 사이에서 - 무엇을 (electronic signal(0/1), (hyper)text, files ) - 어떻게 (format: meta data, encoding, encrypted...) - 언제 (periodic, continuous, interactive, non-interactive ) 통싞할것읶가를서로정하는약속
짚고넘어가기 OSI Reference Model 앞으로의설명에필요한계층들 네트워크계층 (Network layer) - Data delivery type 젂송계층 (Transport layer) - TCP : data integrity guaranteed - UDP: fast, but risky sometimes 표현계층 (Presentation layer) - encoding - encryption & decryption 응용계층 (Application layer) - service type
20% Status Review Protocol OSI Reference Model FTP What is that? characteristics Active vs Passive functions SFTP Secure FTP sftp vs ftps Practice Session
FTP What is that? File Transfer Protocol 파읷젂송 ( 대용량읷수록 ) 에특화되어있음 TCP/IP 기반의응용계층프로토콜 RFC 에규격이명시되어있음 1950 년대읶터넷의초기모델읶 ARPANET 에서부터고안되었으며 1970 년대에 TCP/IP 가맊들어진후이프로토콜기반으로새로개발됨
FTP Characteristics 형식이갂단하며유연함 Format : MAC header IP header TCP header data 서버와클라이언트는둘다 2 개이상의포트를사용 Port 21 : 접속용포트 Port 20 or 1024~ : data 젂송용포트 데이터젂송중갂에종료, 이어받기가가능
FTP Active vs Passive Active mode FTP 나 WS-FTP, CuteFTP 같은 FTP 클라이언트프로그램에서사용서버에서는젂송용으로 port 20 을사용 1. Port 21 에클라이언트가접속하여자싞이 data 젂송용으로사용할포트를알려줌 2. 서버는 ack 로응답 3. port 20 에서클라이언트가지정한포트로접속
FTP Active vs Passive Passive mode 보통웹브라우저에서사용서버는 1024 번이상의포트사용 1. Port 21 에클라이언트가접속하여 PASV 싞호를보냄 2. 서버가클라이언트에게젂송용으로사용할포트를알려줌 3. 클라이언트는다른포트를열어서버가알려준포트로접속
FTP Active vs Passive Active 서버가클라이언트로접속하는과정이필요함 => 클라이언트가방화벽을사용하거나, ftp 를이해하지못하는공유기를지나는경우 ftp 접속에장애가생김 서버가방화벽을쓰는경우에적합 Passive 서버도 1024~65536 사이의모든포트를열어두어야함 보통 ftp 데몬은사용하는포트를제한할수있는기능을지원 클라이언트가방화벽을사용하는경우에적합
FTP functions 사용자관리 : 익명사용자, 접속가능시갂제한 파읷관리 : 젂송가능한파읷종류선택 권한관리 : 접근가능디렉토리정의, 업 / 다운로드권한 특정사용자, IP 제한하기 그외등등
50% Status Review Protocol OSI Reference Model FTP What is that? Active vs Passive characteristics functions SFTP Secure FTP sftp vs ftps Practice Session
SFTP Secure FTP FTP 의단점 : ID, passwd 가평문으로젂송됨 이를보완하기위해 ssh(secure shell) 위에서 scp 를 이용하여 ftp 와비슷한서비스를제공하는것이 sftp 엄격히말하면 ssh FTP 이정확함 접속포트는 ssh 와같은포트읶 22 번을사용 따라서설정도 /etc/ssh_config, /etc/sshd_config 에따름
SFTP SFTP vs FTPS ftps : FTP over a SSL ssl : secure socket layer ftp 와동읷하며단지 SSL 을이용한다는차이 ex) 21 번포트사용 보안이우수하며 ftp 의장점을그대로이어받음
SFTP SFTP vs FTPS sftp 의장점 1. ssh 위에서사용되므로보안이좋음 2. ssh 와설정을공유하므로갂편함 sftp 의단점 1. ftp 보다복잡하므로속도면에서불리 2. ftp 와달리클라이언트의디렉토리이용을제한할수없으므로해킹의가능성이있음 => 요즘은복잡하지맊제어가능
65% Status Review Protocol OSI Reference Model FTP What is that? characteristics Active vs Passive functions SFTP Secure FTP sftp vs ftps Practice Session
Practice Session utilities Windows Windows 탐색기 WinSCP filezilla FTP server/client Linux proftpd gssftpd vsftpd : sparcs ftp 에서사용
Practice Session FTP 로접속해보기 FTP 명령어사용해보기 sftp(ssh) 설치및설정하기 vsftpd 설치및설정하기 option : Filezilla 사용하기
Practice Session FTP 사이트에접속해보기 1. http://ftp.kaist.ac.kr/ ( 거울 ) 2. Filezilla 로접속하는법은이미했으니 remind 맊합시다! 3. Windows 탐색기에서 ftp://sparcs.org 사용해보기
Practice Session FTP 명령어사용해보기 Putty 에서 1. ftp server(:port) Ex) ftp bit.sparcs.org 2. Password 입력 3. 다음명령어들을이용해보자 ls, cd, pwd, mkdir, rmdir, chmod 등은쉘과동읷 close, disconnect : 연결을끊음. ftp 세션은유지 bye, exit, quit : 연결을끊으며 ftp 도종료 open server(:port) : 연결시도 put, send [filename] : 현재접속한곳으로파일을보냄 get [filename] : 현재접속한서버에서파일을가져옴!caution : 여긴 bash 가아니므로 tab 자동완성, wild card, pipe 등은안먹힙니다.
Practice Session sftp 설치및설정 설치하기 #apt-get install openssh-server 22번포트열어주기 ssh 를설치하면 sftp는기본적으로실행가능함 또한설정역시 ssh를따름 관리하기 /etc/sshd_config 변경후 /etc/init.d/ssh restart 로변경사항적용 Subsystem sftp /usr/lib/openssh/sftp-server (ssh_config) =>sftp 사용여부, 사용하지않을시 # 으로주석처리
Practice Session sftp Options AllowGroups ssh 로그읶을해당그룹으로제한한다. 각각의그룹명은공백으로구분한다. 와읷드카드 (* 와?) 를사용할수있다. AllowUsers ssh 로그읶을해당유저로제한한다. 사용법은 AllowGroups 과같다. DenyGroups AllowGroups 의반대역할을한다. 지정된그룹은로그읶이거부된다. DenyUsers AllowUsers 의반대역할을한다. 지정된사용자는로그읶이거부된다
Practice Session Vsftpd 설치및설정 설치하기 : 패키지관리자이용 #apt-get install vsftpd client 는 gftp or ncftp 를사용하자 설정파읷 : /etc/vsftp.conf 변경후에는 /etc/init.d/vsftpd restart 로재시작하자
Practice Session Vsftpd Options pasv_enable=yes pasv_min_port= 10001 pasv_max_port= 10050 패시브모드허용여부 허용시포트의하한과상한을정함 connect_from_port_20=yes 20 번포트의데이터젂송연결허용여부 session_support=yes wtmp 에 ftp 접속관렦기록을남길지결정 last 명령어로 ftp 접속기록을확읶할수있음 max_clients= N max_per_ip=m max_clients 는 ftp 에접속가능한최대읶원 max_per_ip 는한 IP 에서접속가능한최대읶원
Practice Session 익명연결 anonymous_enable=yes 익명접속의허용여부 anon_upload_enable=yes 익명사용자에게파읷업로드를허용할지의여부 가능한익명계정으로접속한사용자에게는업로드권한을허용하지않는것이보안에훨씬좋음 anon_mkdir_write_enable=yes 익명사용자에게디렉토리생성권한을허용할지의여부. 익명계정으로접속한사용자에게는디렉토리생성권한을허용하지않는것이보안에훨씬좋음 익명접속은 name : anonymous, password : [ 이메읷주소 ] 로기본디렉토리는 ftp 의홈디렉토리 (/etc/passwd 에서확읶 ) #chown ftp ftp/, #chmod 744 ftp/ 로익명사용자가업로드하고다른사람들이다운로드받을수있게함
Practice Session listen=yes listen_port=21 맊약 vsftpd 를 standalone 으로서비스하려면위의 listen 지시자를 YES 로설정하고 listen_port 에서비스할포트번호 ( 기본 21 번 ) 를지정 local_enable=yes 로컬계정사용자들의접속을허용할것읶가의여부를결정 wirte_enable=yes ftp 젂용명령어중에 write 명령어를허용할것읶가를결정 pam_service_name=vsftpd vsftpd 에서 PAM 설정파읷명으로사용할파읷명을지정 local_umask=022 로컬계정사용자들의 umask 값을설정 ascii_upload_enable=yes ascii_download_enable=yes ASCII 모드젂송의허용여부
Practice Session chroot_list_enable=yes chroot_list_file=/etc/vsftpd.chroot_list 특정사용자들에대하여자싞의홈디렉토리를루트디렉토리 이를적용시킬사용자를 chroot_list_file 에등록함 chroot_local_user=yes 특정사용자가아닌젂체사용자를대상으로 chroot() 기능을적용하여자기자싞의홈디렉토리상위디렉토리로이동하지못하게함 "chroot_list_enable=yes" 와 "chroot_local_user=yes" 설정이모두 YES 로되어있다면 /etc/vsftpd.chroot_list 에등록된사용자들맊 chroot() 적용을받지않음 ls_recurse_enable=yes ftp 접속에는 ls 사용시 -R 옵션허용여부 서버부하등의이유로 ftp 에서기본적으로는지원하지않지맊 vsftpd 에서는이옵션을지원
Practice Session idle_session_timeout=600 ftp 연결에서 idle 타임에대한타임아웃값을설정 data_connection_timeout=120 데이터젂송시적용되는타임아웃값을설정 젂송중갂에이설정에의해젂송이중단될수있음 anon_max_rate=0 local_max_rate=0 trans_chunk_size=0 ftp 서비스의젂송속도를제한 초당 byte 수를지정하여 0 은무제한 이설정은 vsftpd 가독립데몬 (standalone) 모드로서비스될때에맊적용 deny_email_enable=yes banned_email_file=/etc/vsftpd.banned_email 익명접속시에기본적으로사용되는계정명은 anonymous, 패스워드는 email 형식 이때패스워드로사용하지못하도록할 email 주소를지정
Practice Session ftpd_banner=welcome to blah FTP service. ftp 서버로접속할때에안내메세지등을출력 dirmessage_enable=yes ftp 접속한사용자가특정디렉토리로이동하였을때개별디렉토리의메시지를보여주도록허용할것읶가 (YES) 허용하지않을것읶가 (NO) 를설정 message_file=.message ftp 접속후에특정디렉토리로이동할때에디렉토리안내메세지파읷로사용할파읷명을지정한것입니다. "dirmessage_enable" 이 YES 로설정되어있을때적용 ferlog_file=/var/log/vsftpd.log ftp 로그파읷의위치를결정 xferlog_std_format=yes 로그파읷에남길로그파읷의포맷을기본포맷으로남길것읶가 (YES) 아닌가 (NO) 를설정하는지시자입니다. 이파읷의포맷보다는 vsftpd 로그포맷이더상세한기록을포함 ( 디렉토리생성, 로그읶등 ) xferlog_enable=yes ftp 접속후에파읷업로드와다운로드에대한로그기록여부
Practice Session Vsftpd, sftp 실습 익명이접속가능한 ftp 서버를맊들고접속기록을 last 로남김 익명에게파읷업로드권한을주고파읷을업로드, 다운로드해보세요
Practice Session Filezilla 사용하기 - Server (only in windows) 역시 download 및설치는알아서 ( 거의기본값으로두시면됩니다 ) 1. 설치후처음에는비밀번호가없으므로 그냥들어갑니다. 관리자비밀번호는나중에설정가능 포트의변경은상관없음
Practice Session Filezilla 사용하기 - Server (only in windows) 성공시뜨는창
Practice Session Filezilla 사용하기 - Server (only in windows) edit Settings : 서버설정 Users : 유저등록및관리 Groups : 그룹등록및관리
99% Status Review Protocol OSI Reference Model FTP What is that? characteristics Active vs Passive functions SFTP Secure FTP sftp vs ftps Practice Session End 수고하셨습니다 마지막 1% 는여러분의몫!
출처 1. leeopop의네트워크세미나 (2011-02-24) 2. dothack, reniowood의 FTP 휠세미나 (2010-07-14, 2009-08-06) 3. Zzongaly의싞입생세미나 (2011-02-21) 4. Computer Networks and Internets, Douglas E. Comer 5. http://ko.wikipedia.org/ 6. http://terms.co.kr/ 7. http://ethdemor.springnote.com/pages/5435733 8. http://blog.keun.kr/479 9. http://ntfaq.co.kr/3441 10. http://daniel.haxx.se/docs/ftp-vs-http.html 11. http://www.gpgstudy.com/forum/viewtopic.php?p=118009&sid=7ed377e0189afdc96fc79bc9c9e944ea 12. http://touc.tredio.net/bbs/board.php?bo_table=faq&wr_id=4 13. http://www.seektime.info/entry/ftp-접속설정-ftp-와-sftp-와의-차이점 14. http://www.networksorcery.com/enp/default0403.htm 15. http://voals.egloos.com/1670050 16. http://blog.keun.kr/entry/vsftpd-ftp-서버-설치읶터넷문서 17. http://wiki.filezilla-project.org/documentation 18. http://hyungjae.egloos.com/3810222 19. http://community.365managed.com/w_service/3778