728x90

NFS

 

/ 서버에 있는지 찾기
# rpm -qa nfs-utils
# rpm -qa | grep nfs
- 이미 있는것을 확인할 수 있다.

- 버전이 새로 나온것이 있는지 확인하고 설치한다.
# yum list nfs-utils
# yum -y install nfs-utils

/ 시작 및 활성화
# systemctl start nfs-server
# systemctl enable nfs-server
# systemctl status nfs-server

# ps -ef | grep nfs
- 보통 ps -ef를 하면 경로가 보이는데 경로가 보이지 않는다.. 특이함

 

/ 설정파일
- 설정을 묻는것이 자격증 시험에 잘 나온다.
# rpm -qc nfs-utils
- 이것일까..?

- cat으로 찍어본다.
- 모두 주석처리가 되어있다.
- 이것은 설정파일은 아니다.


- /etc/nfsmount.conf도 있는데 이것도 아니다.
- 이 파일을 보면 포트를 2049를 쓰고 있는데 이것은 기억하자.

- nfs의 공유를 위한 설정파일 아래의 경로에 있다.
# vi /etc/exports
- 아직 내용이 없는데 새로 적어준다.
- 위치 접근할수있는아이피대역(권한, sync)

- /share 폴더를 아직 만들지 않았기 때문에 재시작시 에러메시지가 나올 수 있다.
- 지금은 버전을 올렸더니 재시작해도 에러메시지가 나오지 않았다.

/ 디렉토리 생성
# mkdir /share
# chmod 757 /share

- 폴더안에 nfs서버라는것을 알 수 있도록 NFS_SERVER를 만들어준다.
# touch NFS_SERVER

 

/ 설정파일을 확인하는 명령어
- 이것도 시험에 잘 나온다.
# exportfs -v

 

/ root_squash, no_root_squash
- root_squash : NFS서버에서 클라이언트가 root계정으로 들어와도 root권한을 행사하지 못하는 것이다.
- no_root_squash : NFS서버에서 클라이언트가 root계정으로 접속했을때 root권한을 행사할 수 있다.
- no_all_squash : root계정을 제외한 다른 계정들은 각 계정의 권한을 행사할 수 있다.

/ exportfs
# exportfs -r : 리로드. 다시 인식
# exportfs -a : 그냥 읽기만 하는것
# exportfs -ra : 내용을 읽기으면서 다시 인식
# exportfs -u IP:/share  : ip에서 공유한 디렉토리를 공유목록에서 제외시키는 옵션

/ 방화벽 내리기
- 방화벽을 안쓰고 접속이 어떻게 되는지 본다.
# systemctl stop firewalld
# systemctl disable firewalld
- 또는 iptables 내리기
# iptables -F
# service iptables save

/ 포트를 rpcinfo, netstat으로 확인해본다.
# rpcinfo -p 192.168.111.101

# netstat -antup | grep 111
- 이름이 rpcbind로 보이는것을 확인할 수 있다.

# netstat -antup | grep mountd


# netstat -antup | grep 20048

# netstat -antup | grep 2049

 


- 이제 클라이언트 서버로 넘어간다.


/ 설치 확인
# rpm -qa nfs-utils

/ 서버에 ping이 가는지 확인
# ping 192.168.111.101

/ NFS에서 접근할 수 있는 폴더 확인
# showmount -e 192.168.111.101

/ rpcinfo 확인
# rpcinfo -p 192.168.111.101

 

/ 폴더 생성 및 마운트
- NFS로 접속할 폴더를 하나 만들어서 마운트 시킨다.
- 경로는 '/'하위에 만드는것이 관리하는데 편하다.
- 마운트 시 똑 떨어지면 잘 된것이다.
# mkdir /tdir
# mount -t nfs 192.168.111.101:/share /tdir

- 마운트된 정보 확인
# mount -l | grep /tdir


/ 서버쪽에서 접속되는것 확인
# netstat -antup | grep 2049

 


- 다시 서버로 온다.

/ fstab 등록
# vi /etc/fstab
# 아이피:경로    위치       nfs      defaults,nofail     0 0

# NFS
192.168.111.101:/share                            /tdir           nfs     defaults,nofail       0 0

- 이후에는 'mount -a'를 하면 적용이 되거나 재부팅을 하면 된다.

/ client
- 삼바와 차이점
[삼바]
- 계정이 필요했다.
# smbclient -L 192.168.111.101 -U centos
[NFS]
# showmount -e 192.168.111.101
# rpminfo -p 192.168.111.101

/ 강제로 umount
- cd로 tdir안에 들어가있는 경우 umount가 안된다.
# umount -f /tdir   또는
- 위에것으로 안될때
# fuser -cu /tdir   해당 디렉토리를 사용하는 사용자 또는 프로세스 확인하고
# fuser -ck /tdir    k(kill)로 죽인다.

/ 서버쪽 NFS 서버 설정파일
- /etc/exports

/ 예제 문제
- 문제1) NFS서버의 /n_share디렉토리에 클라이언트ip 192.168.111.20~192.168.111.25에서 읽기전용으로 접속하도록 설정하시오.
# /n_share 192.168.111.2[0-5](ro,sync)
- 문제2) NFS서버의 /share디렉토리에 클라이언트ip 192.168.111.128이 읽기전용으로 접속하도록 하여라 (단 sync필요없음)
# /share 192.168.111.128(ro)
- 문제3) NFS서버의 /share디렉토리에 john.com도메인 아래의 모든 호스트에서 읽기,쓰기가 가능하도록 공유설정을 하시오.
# /share *.john.com(rw, sync)
- 문제4) NFS서버의 /nfs_readonly 디렉토리에 클라이언트 ip 192.168.111.33~192.168.111.66까지 읽기 전용으로 접속을 하도록 NFS를 구성하고 재부팅시 자동으로 적용되도록 하시오.
# /nfs_readonly 192.168.111.33~192.168.111.66(ro)

 


- 서버에서 저번에 만들었던 /iptab.sh를 실행한다.

/ iptab.sh 실행
# /root/iptab.sh
# iptables -nvL

- 클라이언트에서 ping이 가지 않으므로 /root/iptab.sh에 내용을 추가해준다.
- 클라이언트에서 rpcinfo도, showmount도 가지 않으므로 /root/iptab.sh에 내용을 추가해준다.

iptables -A INPUT -p icmp -s 192.168.111.129 -j ACCEPT   # client ping
iptables -A INPUT -p tcp -m multiport --dport 111,2049,20048 -j ACCEPT # client rpcinfo
iptables -A INPUT -p udp -m multiport --dport 111,2049,20048 -j ACCEPT # client rpcinfo

- 클라이언트에서 확인한다.
# ping -c 4 192.168.111.101
# showmount -e 192.168.111.101
# rpcinfo -p 192.168.111.101
# df -h


/ sudo 설정하기
# vi /etc/sudoers
- 98번째 줄의 내용을 복사하여 사용자 계정에 준다.

 

728x90

+ Recent posts