Download presentation
Presentation is loading. Please wait.
1
NFS, FTP coearth, george
2
NFS란? Network File System!
“리눅스” 머신에서 이더넷 기반으로 동작하는 가장 기본적인 공유 파일 시스템 중의 하나로 서버/클라이언트 모델로 동작하는 스토리지 프로토콜이다.
3
NFS란? 각 클라이언트들이 NFS 서버의 공유 폴더를 마운트하게 되면 자신의 로컬 파일 시스템을 사용하는 것처럼 여러 클라이언트와 파일을 공유하여 사용할 수 있다. Windows Services for UNIX를 이용하면 윈도우 – 리눅스간 NFS 사용 가능 n드라이브 탐색기 olleh kt ucloud server NFS 설정 가이드 v1.0
4
RPC NFS는 RPC(Remote Procedure Call)기반입니다.
원격 프로시저 호출(영어: remote procedure call, 리모트 프로시저 콜, RPC)은 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술이다. –wikipedia
5
Portmap Port mapper NIS나 NFS와 같은 RPC 서비스에 사용되는 동적 포트 할당 데몬
데몬 상태로 대기하다가 요청이 들어올 때 bind 역할을 한다. Portmap에 문제가 생기면 관련된 모든 RPC서비스가 모두 이상이 생기므로 restart해야 함
6
server/client NFS는 server와 client로 나뉘어 있어요.
클라이언트에서는 mount명령을 이용하여 NFS서버의 파일시스템을 이용할 수 있습니다.
7
NFS를 써보자 sudo apt-get install nfs-common
sudo apt-get install nfs-kernel-server sudo apt-get install portmap 서버설정에 쓰이는 것들입니다.
8
NFS 서버 설정 1) 공유할 디렉토리를 골라 chmod를 이용해퍼미션을 푼다
2) /etc/exports에서 공유할 디렉토리와 그에 대한 client를 설정한다. 3) nfs-kernel-server와 portmap 데몬을 띄운다.
9
NFS 서버 설정 1단계 chmod –R 777 디렉토리이름 e.g.. chmod –R 777 /nfstest
여러분도 디렉토리를 하나 골라 미리 설정 해놓으세요.
10
NFS 서버 설정 2단계 sudo vi /etc/exports로 들어간다
/etc/exports는 공유 디렉토리 설정, 그 디렉토리로의 접근을 허가할 client설정, client의 권한 설정을 다룹니다.
11
/etc/exports 설정 root권한으로 /etc/exports를 연다. 공유디렉토리 클라이언트(옵션)의 형태로 작성한다.
참고, 클라이언트 자리에는 hostname, domain, ip가 쓰입니다.
12
예시 /nfstest를 (rw,sync,no_subtree_check)의 옵션으로 ip주소( )와 공유하겠다. /nfstest를 (rw,sync,no_subtree_check)의 옵션으로 hostname(wseminar3)와 공유하겠다. 본인의 서버와 공유할 디렉토리에 맞게 작성해보세요. no_subtree_check 빼먹지 마세요
13
옵션 ro: 읽기전용 rw: 읽기, 쓰기 no_root_squash: client의 root가 server의 root권한 가짐
root_squash: client의 root를 아무 권한이 없는 nfsnobody처리 secure: 지정된 포트만 사용 insecure: 모든 포트 사용 가능 sync: client가 파일 시스템을 변경하면 즉시 동기화 no_root_squash를 쓰면 공유 파일 시스템에서 모든 파일을 변경할 수 있으며 트로이목마 프로그램을 설치할 수 있습니다. 다른 옵션들은 man exports를 참고하세요.
14
옵션 no_subtree_check 파일 시스템의 전체 디렉토리가 아닌 하부 디렉토리가 내보내진 경우, 서버는 내보낸 하부 디렉토리에 요청된 파일이 존재하는지를 검사한다. 이 옵션을 선택하면 하부구조 검사를 사용하지 않는다. 전체 파일 시스템이 내보내진 경우에 이 옵션을 선택하면 하부구조 검사를 하지 않음으로써 전송률을 높일 수 있다.
15
NFS 서버 설정 3단계 변경사항을 적용하기 위해 데몬을 재가동시킵니다.
# service nfs-kernel-server restart # service portmap restart 또는 service대신 /etc/init.d/~~~ restart을 입력해주세요
16
NFS 서버 설정 3단계 rpcinfo –p 를 이용하여 잘 작동되는지 확인해봅시다(portmapper, nfs, nlockmgr, mountd) 서버 설정 끝
17
NFS 써보기(client) 아까 /etc/exports에서 설정한 host에서 공유디렉토리에 mount해봅시다.
# mount –t nfs 서버의host명(또는 ip주소):/공유디렉토리 /마운트포인트 e.g.. mount –t nfs :/nfstest /client1 마운트포인트는 빈 디렉토리 하나로 설정해주세요. 성공적으로 실행이 되었다면 마운트포인트로 설정한 디렉토리에 파일이 들어있을 거에요. # umount /마운트포인트를 하면 다시 빈 디렉토리로 돌아와요
18
NFS 서버 설정 고정 지금까지 한 방법으로 마운트를 하면 재부팅시 다시 마운트를 해줘야합니다.
영구적으로 마운트 하고 싶다면? # vi /etc/fstab ㄱㄱ fstab은 client에서의 설정입니다.
19
/etc/fstab 예시– 파일시스템 세미나
20
/etc/fstab – 파일시스템 세미나 <file system> <mount point>
마운트하고 싶은 장치 E.g) /dev/sda1 <mount point> 마운트 포인트. 해당 파티션이 대응하는 디렉토리 nfs에서는 서버와 연결될 클라이언트의 디렉토리 <type> 파일 시스템 타입을 의미함 E.g) ext4, xfs, nfs 등 <dump> 덤프 유틸리티가 백업을 할지 결정하는데 필요한 값. 대부분의 경우 필요없으므로 0으로 하면 됨 <pass> Fsck 가 파일시스템을 체크할지 결정하는데 필요한 값 0, 1, 2값이 들어갈 수 있고 루트 파일 시스템은 1이다 Swap파티션을 fsck가 필요 없으므로 0 을 넣어야함 나머지 일반 파티션의 경우 2를 넣으면 됨
21
/etc/fstab 서버:/공유디렉토리 마운트포인트 nfs 옵션 dump pass
e.g :/nfstest /client1 nfs bg,soft,ro 0 0 비슷하게 마운트해야할 것들 모두 추가
22
옵션 SetUID, SetGID
23
NFS 찾기 showmount [option] [server]
showmount –e [server]: server에서 공유하고 있는 directory목록 출력
24
마운트 취소 nfs를 이용한 후에는 마운트 취소를 해주세요 # umount /마운트포인트
25
NFS 끝
26
FTP 시작
27
FTP란? File Transfer Protocol!
파일 전송 프로토콜(File Transfer Protocol, FTP)은 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다. –Wikipedia TCP/IP세미나에서 다룬 OSI모델의 7번 Application Layer에 위치
28
2013 석주형 세미나
29
FTP HTTP가 다양한 기능을 제공하는 반면 FTP는 파일 전송만을 다룬다. 다루기 쉬움
http보다 빠르게, 한꺼번에 전송가능 이어받기도 가능
30
FTP의 종류 계정의 필요 유무에 따라 두 가지로 나뉜다
Anonymous FTP: 계정 필요X 콘솔에선 ID를 anonymous라고 써주어야 함 Full Service FTP: 계정 필요. ID/PW입력해야함
31
연결 종류 두 가지의 연결이 있다. 명령 연결 먼저 제어 포트인 서버 21번 포트로 사용자 인증, 명령을 위한 연결이 만들어지고, 여기를 통해 클라이언트에서 지시하는 명령어가 전달된다. –wikipedia
32
연결 종류 데이터 전송용 연결 데이터 전송용 연결은 다시 두 가지 방법으로 나뉜다.
실제의 파일 전송은 필요할 때 새로운 연결이 만들어진다. –wikipedia 데이터 전송용 연결은 다시 두 가지 방법으로 나뉜다. active mode passive mode
33
Active mode 서버의 20번 포트에서부터 클라이언트가 지정한 지점으로의 데이터 연결을 만든다.
클라이언트는 보통 1023보다 큰 포트를 요구함 서버에서 클라이언트로 요청을 보내기 때문에 클라이언트가 방화벽 등의 문제로 거부할 수 있음
35
13년도 석주님 세미나
36
Passive mode 클라이언트에서부터 서버가 지정한 포트로 데이터 연결을 만든다.
보통 양쪽 다 1023보다 큰 포트를 사용 서버에서 클라이언트로 request를 보내지 않기 때문에 방화벽문제 어느 정도 해결 다만 서버의 모든 포트가 열려 있어 비효율적 ftp 데몬들이 passive mode에서 포트를 제한해주는 기능을 갖고 있어서 어느 정도 해결이 된다.
38
13년도 석주님 세미나
39
FTP 패키지 종류 wu-ftp ProFTPd vsftpd 오래되었다 보안에 취약하다 보안과 기능에 중심을 둔 FTP데몬
Anonymous FTP등 다양한 기능 제공 apache의 설정파일과 비슷함 아직 많이 쓰임 vsftpd Very Secure FTP Daemon 셋 중 가장 최근에 나옴 이걸 써봅시다
40
vsftpd 설치 sudo apt-get install vsftpd 설치해주세요
41
vsftpd 설정 # /etc/vsftpd.conf active/passive설정 등 다양한 설정을 할 수 있습니다.
각 line을 주석 처리하면 default로 적용됩니다.
42
vsftpd 설정 anonymous_enable=YES anonymous 접속 허용 여부
local_enable=YES 로컬 사용자 허용 여부 pasv_enable=YES Passive mode 사용시 YES listen=YES 계속 듣고 있을 것인지 여부 YES: standalone/NO: xinetd 이 외에도 많은 설정이 있습니다. man vsftpd.conf 참조
43
Standalone과 Xinetd Standalone 시스템에 독자적으로 프로세스가 구동되어 서비스를 제공하는 데몬
한 번 실행해놓으면 계속해서 listen한다. 항시로 대기해야 하는 데몬에 쓰인다. sendmail, apache, mysql, http 등이 있다. service 데몬 [start / stop / restart]로 실행을 조정할 수 있다.
44
Xinetd eXtended InterNET service daemon
xinetd라는 이름의 데몬이 standalone방식으로 계속 구동 중이다가 외부에서 요청이 들어올 경우 그에 해당하는 데몬을 찾아서 구동시킨다. 포트만 감시한다. 요청 받을 때마다 데몬을 구동해야 하므로 느리다. 메모리 상으로는 유리하다.
45
SFTP SSH FTP 또는 Secure FTP의 약자 ssh의 설정 파일을 따름
FTP는 ID, PW를 plain text로 보냄 => 보안 취약 ssh위에서 SCP를 이용해 FTP와 비슷한 서비스를 제공한다. ssh위에서 작동하므로 포트는 22번 ssh의 설정 파일을 따름 sparcs.org, bit.sparcs.org, newbie.sparcs.org 등과 연결할 때는 FTP가 아닌 SFTP를 써야함
46
FTPS FTP Secure 또는 FTP over SSL의 약자. FTP에 TLS, SSL을 가미해 보안을 높였다
SFTP와 FTPS의 장단점
47
FTPS 설정 우선 SSL인증서를 먼저 만들어야함. VSFTP 설정파일은 다음과 같이 수정
openssl req -x509 -nodes -days newkey rsa:2048 -keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem ; chmod 600 /etc/ssl/certs/vsftpd.pem VSFTP 설정파일은 다음과 같이 수정 ssl_enable=YES ssl_tlsv1=YES force_local_logins_ssl=YES force_local_data_ssl=YES/NO (파일 전송 데이터도 암호화해서 보낼지 여부) rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/certs/vsftpd.pem
48
FTP 명령어 ftp server: server에 접속 시도
e.g.. ftp localhost ls, cd, pwd, mkdir, rmdir, chmod: bash와 동일; 서버에 관한 명령어 open server: 연결 시도 close, disconnect: 연결 끊기 bye, exit, quit: 연결을 끊으며 ftp도 종료
49
FTP 명령어 lcd: local의 현재 디렉토리 표시 lcd /디렉토리: 지정한 디렉토리로 이동하고 그 디렉토리의 경로 표시
status: ftp session 설정을 보여줌 get, send: local에서 server로 파일 보냄 put: server에서 local로 가져옴 delete: server의 파일 지움
50
FTP 명령어 $ man ftp를 입력하면 명령어들의 자세한 사용법을 볼 수 있습니다.
51
windows에서 연결할 때는 FileZilla와 같은 ftp client를 설치해야 합니다.
52
SFTP 명령어 FTP와 약간 다름 sftp server: server로 접속 e.g.. sftp localhost
53
SFTP 명령어
55
실습 다른 서버랑 연결 하고 싶었지만 bit, sparcs 다 ftp접속이 안돼서 localhost밖에 접속을 못해요..
Similar presentations