440 likes | 656 Vues
NFS 를 이용한 파일 공유. suckzoo. NFS. Network File System 다른 서버에서 공유한 디렉토리를 마운트 , 자신의 디렉토리처럼 이용 N 드라이브 탐색기. NFS. RPC(Remote Procedure Call) 기반 RPC 프로그램이 다른 주소 공간에서 원격 제어를 위한 프로그래머의 세사한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술 (From Wikipedia). Portmapper. RPC 와 포트 번호 사이 관계 조정
E N D
NFS를 이용한 파일 공유 suckzoo
NFS • Network File System • 다른 서버에서 공유한 디렉토리를마운트, 자신의 디렉토리처럼 이용 • N드라이브 탐색기
NFS • RPC(Remote Procedure Call)기반 • RPC • 프로그램이 다른 주소 공간에서 원격 제어를 위한 프로그래머의 세사한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술 (From Wikipedia)
Portmapper • RPC와 포트 번호 사이 관계 조정 • Portmapper를 이용, 할당된 포트를 클라이언트에 알림 • 데몬 상태로 대기, 포트 번호 요청시bind 하는 역할을 한다.
NFS 구축 • Server, Client 양쪽 설정 필요 • 공유할 디렉토리, 디렉토리마운트 가능한 서버 지정 • by Server • 사용할 디렉토리마운트하기 • by Client
Package • nfs-common • nfs-kernel-server • portmap • 은 깔아뒀어여^^
디렉토리 • chmod –R ugo+rwx [directory] • 권한을 전부 읽.쓰.실. 가능하게 고쳐요
/etc/exports • NFS Server에서 공유할 디렉토리, 디렉토리별 옵션 설정하는 파일 • 줄 단위 처리 • [share-dir] [client] (option) • [share-dir] : 공유 디렉토리의 절대경로 • [client] : 공유 허가할 호스트 목록(host, domain, ip)
/etc/exports option • ro(Read Only) – 읽기전용 • rw(Read Write) – 읽쓰 • no_root_squash – client의 root가 NFS에서도 root • root_squash – client의 root는 없는 놈(nfsnobody)취급 • secure – client의 지정 포트 사용 • insecure – 모든 포트 허가 • sync – client가 파일 시스템 변경 할 때 즉시 동기화
NFS 서버 재시작 • service nfs-kernel-server restart • service portmap restart • 는 슈도로합니당
RPC 확인 • rpcinfo –p • NFS 동작시RPC 정보 보여줌 • 서비스에 필요한 데몬 동작 여부 확인 • nfs : NFS 서비스 관련 • portmap : RPC 연결 관련 • nlockmgr : 파일 잠금, 동시 수정 방지기능
마운트 • mount –t nfs [host]:[share dir] [mount dir] • [mount dir]는 미리 mkdir로 만들어 둔다. • share dir에 파일 만들고 mount dir에서 확인해보자.
/etc/fstab • Hostname:[share-dir] [mount-dir] nfs[option] [dump] [system_checking] • 이런식으로 공유할 디렉토리 전부 추가 • mount -a
NFS 찾기 • showmount • showmount [server] : NFS로 접속한 서버 조회 • showmount –e [server] : NFS 공유 가능 디렉토리 조회 • 에러 : 서버가 죽어있을 경우. RPC 동작을 안 해서 fail
마운트 취소 • umount [dir] • 마운트 취소 안 한 채로 원본을 날리면 ls가 안될 수도 있슴다. (<- 경험)
FTP(File Transfer Protocol) suckzoo
FTP? • File Transfer Protocol • TCP/IP Protocol을 이용하여 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜 (From Wikipedia) • OSI Layer-7 (Application Layer) • 사람이 인식하고 응용 계층 아래의 표현 계층과 상호 작용할 수 있는 데이터와 그림을 사용자에게 보여주는 역할. • http://tools.ietf.org/html/rfc1123#section-4 • RFC 1123에 기록되어 있다.
FTP • 파일 송수신만을 고려하여 고안된 서비스이다. • 동작 방식이 단순하고, 따라서 사용법 또한 간단. • http 방식보다 빠른 속도로 한번에 주고 받을 수 있다는 장점이 있음.
FTP • 두 가지가 있다. • Anonymous FTP • 계정이 없어도 누구나 접속 가능 • Full Service FTP • 미리 발급된 계정이 있어야 함
연결의 종류 • 명령 연결 • 21번 포트로 인증, 명령을 위한 연결이 만들어진다. • 여기를 통해 클라이언트에서 지시하는 명령어 전달.
연결의 종류 • 데이터 전송용 연결 • 실제 파일 전송이 필요할 때만들어지는 연결. • Active mode와 Passive mode가 있다.
Active mode • 서버가 20번 포트와 클라이언트가 지정한 지점으로의 데이터 연결을 만든다. • 클라이언트가 지정하는 포트는 주로 1023보다 큰 번호. • 클라이언트가 방화벽이나 NAT를 이용할 때 쓰면 됨.
Server Client 5151로 쏴줘 오키 ㄱㄱ 오키 20 21 5151
Passive mode • 클라이언트가 서버가 지정한 서버 포트로 직접 연결할 수 있게 한다. • 보통 양쪽 포트 모두 1023보다 큰 포트 사용.
Server Client 패시브 할거임 오키3267 포트 씀 3267 열었음 ㄱ 오키 3267 21 5151
Active vs. Passive • Active • 3번 과정에서 서버가 클라이언트로 접속 시도. • 클라이언트에 방화벽이 설정되어 있을 경우 문제가 된다. • Passive • Active의 문제점은 해결된다. • 포트가 너무 많이 쓰인다.(1024 to 65535) • wu-ftp, proftpd와 같은 ftp 데몬이 포트를 제한하는 기능이 있어서 어느 정도 해결 됨.
Package • wu-ftpd • 사용법이 간단하고 뚫는 것도 간단하다. • ProFTPd • Anonymous FTP 등 다양한 기능 제공 • vsftpd -> 설치 ㄱ • Very Secure FTP Daemon의 약자. 베리 시큐어하다.
vsftpd설정하기 • /etc/vsftpd.conf는 슈도로 • 주석 처리할 경우, 기본값으로 적용 • 각 parameter별 yes/no 기본값 있음.
Parameters of vsftpd.conf • anonymous_enable = YES • Anonymous의 접속 허용 여부 • local_enable = YES • 로컬 사용자의 계정 허용 여부 • listen = YES • standalone/xinetd타입 결정 parameter • pasv_enable = YES • passive mode 사용시 설정 • 그 외 더 많은 정보 : http://goo.gl/AdbWl
실습 • 이라고 하기엔 한 서버에 인원이 조금 많은 관계로 시연으로 대체합니다 • Passive mode로 vsftpd를 돌리는 법?
Standalone vs. Xinetd • Standalone daemon • 시스템에 독자적으로 프로세스가 구동되어 서비스를 제공하는 데몬 • 상시로 일거리가 들어오는 데몬은standalone으로 실행 • 계속 일거리를 listen하고 있어야 된다. • 계속 listen하므로 바로 바로 일 처리가 가능하다. • 시간적으로는 효율적 • 공간적으로는 일이 없을 때도 메모리 차지하므로 불리. • ex : sendmail서버 • /etc/init.d에 들어있다.
Standalone vs. Xinetd • Xinet(eXtendedInterNET services) daemon • 할 일이 끝나면 잠잠해지는 데몬 • 포트만 감시한다. • 일거리가 들어올 때마다 데몬을 불러와야 돼서 시간상 불리하다. • 공간적으로는 유리 • /etc/xinetd.d에 들어있다.
Standalone/Xinetd로 vsftpd돌리기 • 역시 /etc/vsftpd.conf • 는 슈도로 • 마음대로 고쳐보세요
Console을 이용한 FTP 접속 • 다들 bit.sparcs.org 세션 하나를 켜두자. • bit에서 wseminar3으로 ftp 접속을 해보자. • 자기 자신으로는 접속이 안 된다. • ftp wseminar3.sparcs.org • -> id, pw
FTP Command • Linux command랑 거의 같다. • cd, chmod, pwd, ls, exit • mkdir, rmdir • open [domain] : domain에 접속 시도 • get / delete / put [file] : [file]을 가져옴/지움/올림
FTP Command • size [file] : [file]의 크기를 표시 (byte) • status : ftp session 설정을 보여준다. • lcd: local directory를 변경한다. • ex : lcd /home/suckzoo하고서 get [file] 하면 파일이 /home/suckzoo로 간다.
FTP connection with Filezilla • 제가 한번 해보겠습니다. • 으아아아아ㅏ하아항핰ㅇ앜
FTP / FTPS / SFTP • FTP (File Transfer Protocol) • 지금까지 다뤄온 바로 그것. • 로그인하면 ID와 Passwd가 Plain text로 보내지는 그것. • 다루기 쉽고 뚫기도 쉬운 그것. • 그래서 별도의 조치가 필요한 그것.
FTP / FTPS / SFTP • FTPS (FTP Secure) • FTP를 거쳐 TLS/SSL을 거쳐서 더 안전하다. • TLS/SSL은 apple님의 세미나를 나중에 들어요
FTP / FTPS / SFTP • SFTP (SSH FTP) • SSH(Secure shell)를 통해 SCP를 이용하여 ftp와 비슷하게 서비스 하는 것 • 접속 포트가 22번이다. • 우리가 putty로 매일 접속한 그 번호. • ssh위에서 사용되어서 보안이 좋다. • 하지만, ftp보다 복잡해서 속도가 느림. • ssh위에서 작동되는 거라 클라이언트가 파일이나 디렉토리 막 다룰 수도 있음.
Reference • naldo선배님의 NFS 세미나 자료 • whitegold선배님의 FTP 세미나 자료 • 위키