CentOS 8에 NFS 서버 설치 및 구성 방법

CentOS 8에 NFS 서버 설치 및 구성 방법

2022-05-17 last update

14 minutes reading nfs centos terminal mount
네트워크 파일 시스템(NFS)은 네트워크를 통해 원격 디렉토리를 공유할 수 있는 분산 파일 시스템 프로토콜입니다.NFS를 사용하면 시스템에 원격 디렉토리를 마운트하고 로컬 파일을 처리하는 것처럼 원격 컴퓨터의 파일을 처리할 수 있습니다.기본적으로 NFS 프로토콜은 암호화되지 않으며 삼바와 달리 사용자 인증을 제공하지 않습니다.서버에 대한 액세스는 클라이언트 IP 주소 또는 호스트 이름으로 제한됩니다.이 자습서에서는 CentOS 8에서 NFSv4 서버를 설정하는 데 필요한 단계를 완료합니다.또한 클라이언트에서 NFS 파일 시스템을 마운트하는 방법을 보여 드리겠습니다.

선결 조건

CentOS 8을 실행하는 서버가 있다고 가정하면 NFS 서버와 NFS 클라이언트 역할을 하는 다른 시스템을 설치합니다.서버와 클라이언트는 전용 네트워크를 통해 서로 통신할 수 있어야 한다.호스트 공급자가 개인 IP 주소를 제공하지 않으면 공공 IP 주소를 사용하고 신뢰할 수 있는 포트2049에서 오는 데이터만 허용하도록 서버 방화벽을 설정할 수 있습니다.이 예에서 기계는 다음과 같은 IP를 가지고 있다.
NFS Server IP: 192.168.33.148
NFS Clients IPs: From the 192.168.33.0/24 range

NFS 서버 설정

이 절에서는 필요한 소프트웨어 패키지를 설치하고 NFS 디렉터리를 만들고 내보내며 방화벽을 설정하는 방법을 소개한다.

NFS 서버 설치

"nfs utils"패키지는 nfs 서버에 nfs 실용 프로그램과 수호 프로그램을 제공합니다.설치하려면
sudo dnf install nfs-utils
설치가 완료되면 CentOS 8 NFS 버전 3 및 4에
sudo systemctl enable --now nfs-server
를 입력하여 기본적으로 NFS 서비스를 활성화하고 시작합니다.x 이(가) 활성화되었고 버전 2 이(가) 비활성화되었습니다.NFSv2는 이미 오래되어 사용할 이유가 없습니다.이를 확인하려면 다음 명령을 실행하십시오 cat .
명령:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFS 서버 구성 옵션은 /etc/nfsmount.conf/etc/nfs.conf 파일에 설정됩니다.기본 설정은 우리의 강좌에 충분합니다.

파일 시스템 만들기

NFSv4 서버를 구성할 때는 글로벌 NFS 루트 디렉토리를 사용하고 실제 디렉토리를 공유 마운트 지점에 바인딩하는 것이 좋습니다.이 예에서는 /srv/nfs4 디렉토리를 NFS 루트 디렉토리로 사용합니다.NFS 마운트를 구성하는 방법을 더 잘 설명하기 위해 두 디렉토리 /var/www/opt/backups 를 다른 구성 설정으로 공유합니다./var/www/는 사용자와 그룹apache의 소유이고, /opt/backupsroot의 소유이다. mkdir 를 사용하여 내보내기 파일 시스템 생성
명령:
sudo mkdir -p /srv/nfs4/{backups,www}
실제 디렉터리를 마운트합니다.
sudo mount --bind /opt/backups /srv/nfs4/backupssudo mount --bind /var/www /srv/nfs4/www
바인딩 마운트를 영구화하려면 /etc/fstab 파일에 다음 항목을 추가하십시오.
sudo nano /etc/fstab
/etc/fstab
/opt/backups /srv/nfs4/backups  none   bind   0   0
/var/www     /srv/nfs4/www      none   bind   0   0

파일 시스템 내보내기

다음 단계는 NFS 서버가 내보낼 파일 시스템, 공유 옵션 및 파일 시스템에 접근할 수 있는 클라이언트를 정의하는 것입니다.이렇게 하려면 /etc/exports 파일:
sudo nano /etc/exports
내보내기wwwbackups 디렉토리를 열고 192.168.33.0/24 네트워크의 클라이언트만 액세스할 수 있습니다./etc/exports
/srv/nfs4         192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check)
/srv/nfs4/www     192.168.33.110(rw,sync,no_subtree_check)
. 첫 줄에는 fsid=0 정의 NFS 루트/srv/nfs4가 포함되어 있습니다.192.168.33.0/24 서브넷의 클라이언트만 이 NFS 볼륨에 액세스할 수 있습니다.내보낸 디렉토리의 하위 디렉토리인 디렉토리를 공유하려면 crossmnt 옵션을 사용해야 합니다.(adsbygoogle=window.adsbygoogle | |[]).추진({});두 번째 줄은 파일 시스템에 여러 내보내기 규칙을 지정하는 방법을 보여 줍니다.전체 /srv/nfs4/backups 범위에 대한 읽기와 쓰기만 허용하는 디렉터리 192.168.33.0/24 를 내보냅니다.192.168.33.3 옵션은 NFS가 응답하기 전에 변경 사항을 디스크에 기록할 것을 알려줍니다.마지막 줄은 자명해야 한다.사용 가능한 모든 옵션에 대한 자세한 내용은 터미널sync에 입력합니다.파일을 저장하고 공유를 내보냅니다.
sudo exportfs -ra
파일을 수정할 때마다 위의 명령을 실행해야 합니다.오류나 경고가 있으면 터미널에 표시됩니다.현재 활발한 수출과 그 상태를 보려면 다음과 같이 사용하십시오:
sudo exportfs -v
수출은 모든 주식과 옵션을 포함합니다.보시다시피 man exports 파일에 정의되지 않은 옵션이 있습니다.이 옵션들은 기본 옵션입니다. 변경하려면 이 옵션을 명확하게 설정해야 합니다.
/srv/nfs4/backups
		192.168.33.3(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 	192.168.33.110(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4     	192.168.33.0/24(sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups
		192.168.33.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
/etc/exports는 NFS 보안에 가장 중요한 옵션 중 하나입니다.클라이언트에서 연결된 루트 사용자가 마운트된 공유에서 루트 권한을 가지는 것을 방지합니다.루트/etc/exportsroot_squashUID/GIDnobody/nogroup에 매핑합니다.NFS는 클라이언트 컴퓨터의 사용자가 액세스할 수 있도록 클라이언트의 사용자 및 그룹 ID가 서버의 사용자 및 그룹 ID와 일치하도록 합니다.또 다른 옵션은 NFSv4 idmapping 기능을 사용하여 사용자와 그룹 ID를 이름으로 변환하고 그 반대의 경우도 마찬가지입니다.이렇게CentOS 서버에 NFS 서버가 설정되어 있습니다.이제 클라이언트를 구성하고 NFS 서버에 연결하는 다음 단계로 넘어갈 수 있습니다.

방화벽 구성

FirewallD는 기본값firewall solution on Centos 8
. NFS 서비스에는 NFS 서버에 대한 액세스를 허용하는 미리 정의된 규칙이 포함되어 있습니다.다음 명령은 UID 서브넷에서 영구적으로 액세스를 허용합니다.
sudo firewall-cmd --new-zone=nfs --permanentsudo firewall-cmd --zone=nfs --add-service=nfs --permanentsudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanentsudo firewall-cmd --reload

NFS 클라이언트 설정

이제 NFS 서버가 설정되고 공유가 내보내지며 클라이언트를 구성하고 원격 파일 시스템을 마운트합니다.당신도 가능mount the NFS share
macOS와 Windows 기기에서 Linux 시스템을 중점적으로 소개할 것입니다.

NFS 클라이언트 설치

클라이언트에 원격 NFS 파일 시스템을 설치하는 데 필요한 도구를 설치합니다.
  • Debian과 Ubuntuth에 NFS 클라이언트 패키지를 설치한 이름GID은 Debian 기반의 발행판에 NFS 파일 시스템을 설치하는 프로그램을 포함한다.설치하려면
    sudo apt updatesudo apt install nfs-common
  • CentOS 및 FedoraOn Red Hat 및 파생 제품에 NFS 클라이언트 설치192.168.33.0/24 패키지를 설치합니다.
    sudo yum install nfs-utils
  • 파일 시스템 마운트

    IPnfs-common가 있는 클라이언트에서 작업하며 클라이언트는 nfs-utils 파일 시스템에 대한 읽기와 쓰기 액세스 권한과 192.168.33.110 파일 시스템에 대한 읽기 전용 액세스 권한을 가집니다.마운트 지점을 위한 두 개의 새 디렉터리를 만듭니다.모든 위치에서 이 디렉터리를 만들 수 있습니다.
    sudo mkdir -p /backupssudo mkdir -p /srv/www
    내보낸 파일 시스템을 /srv/nfs4/www 로 마운트
    명령:
    sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backupssudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www
    여기서 /srv/nfs4/backups는 NFS 서버의 IP입니다.IP 주소 대신 호스트 이름을 사용할 수도 있지만 클라이언트가 해결해야 합니다.일반적으로 호스트 이름을 mount 의 IP에 매핑하여 수행됩니다.
    서류NFSv4 파일 시스템을 설치할 때는 NFS 루트 디렉토리를 생략해야 하므로 192.168.33.148 대신 /etc/hosts 를 사용해야 합니다.마운트 또는 /srv/nfs4/backups 를 사용하여 원격 파일 시스템이 성공적으로 마운트되었는지 확인합니다.
    명령:
    df -h
    이 명령은 불러온 모든 파일 시스템을 인쇄합니다.마지막 두 줄은 마운트된 공유입니다.
    ...
    192.168.33.148:/backups           9.7G  1.2G  8.5G  13% /backups
    192.168.33.148:/www               9.7G  1.2G  8.5G  13% /srv/www
    다시 시작할 때 마운트를 영구화하려면 /backups 파일을 열고 다음 줄을 추가하십시오./etc/fstab
    sudo nano /etc/fstab
    NFS 파일 시스템을 마운트할 때 사용할 수 있는 옵션에 대한 더 많은 정보를 찾으려면 끝에 df를 입력하십시오.원격 파일 시스템을 불러오는 또 다른 옵션은 /etc/fstab 도구를 사용하거나 시스템d 단원을 만드는 것입니다.

    NFS 액세스 테스트

    주식에 대한 접근 권한을 테스트해 봅시다.
    그들 모두에게우선 creating a new file을 사용하여 man nfs 디렉터리에 테스트 파일을 만듭니다
    명령:
    192.168.33.148:/backups /backups   nfs   defaults,timeo=900,retrans=5,_netdev	0 0
    192.168.33.148:/www /srv/www       nfs   defaults,timeo=900,retrans=5,_netdev	0 0
    
    autofs 파일 시스템을 읽기 전용으로 내보냅니다. 예상한 대로 /backups 오류 메시지를 볼 수 있습니다: (adsbyGoogle=window.adsbyGoogle | | []).추진({});
    sudo touch /backups/test.txt
    다음에 touch 를 사용하여 테스트 파일을 루트 디렉터리로 /backup 디렉터리에 만들기
    명령:
    touch: cannot touch ‘/backups/test’: Permission denied
    
    다시 한 번 Permission denied 메시지를 볼 수 있습니다.
    sudo touch /srv/www/test.txt
    The/srv/www sudo Permission denied 사용자가 만들었습니다. 이 공유는 /var/www 옵션을 설정했습니다. 이 옵션은 루트 사용자를 apache 사용자와 root_squash 그룹에 비추고 이 그룹은 원격 공유에 쓰기 권한이 없습니다.클라이언트에 사용자nobody가 있다고 가정하면 사용자nogroupapache가 원격 서버UIDGID와 같습니다(예: 사용자directory is owned.
    이 두 기기에서 사용자 신분apache으로 파일을 만드는 것을 테스트할 수 있습니다.
    touch: cannot touch ‘/srv/www’: Permission denied
    
    이 명령은 출력을 표시하지 않습니다. 이것은 파일이 성공적으로 만들어졌다는 것을 의미합니다.이를 확인하려면 /srv/www 디렉터리에 있는 파일을 보여 주십시오.
    sudo -u apache touch /srv/www/test.txt
    출력은 새로 만든 파일을 보여야 합니다.
    ls -la /srv/www

    NFS 파일 시스템 마운트 해제

    . 원격 NFS 공유가 필요하지 않으면 umount 명령을 사용하여 다른 마운트된 파일 시스템으로 마운트할 수 있습니다.예를 들어 실행할 /backup 공유를 마운트 해제하려면
    drwxr-xr-x 3 apache apache 4096 Jun 23 22:18 .
    drwxr-xr-x 3 root     root     4096 Jun 23 22:29 ..
    -rw-r--r-- 1 apache apache    0 Jun 23 21:58 index.html
    -rw-r--r-- 1 apache apache    0 Jun 23 22:18 test.txt
    
    마운트 지점이 /etc/fstab 파일에 정의되어 있으면, 이 줄을 삭제하거나, 이 줄의 시작 부분에 # 을 추가해서 이 줄을 주석해 주십시오.

    결론

    이 자습서에서는 NFS 서버를 설정하고 클라이언트에서 원격 파일 시스템을 마운트하는 방법을 보여 줍니다.만약 생산 환경에서 NFS를 실현하고 합리적인 데이터를 공유하려면kerberos 인증을 사용하는 것이 가장 좋다.NFS의 대안으로 사용할 수 있음installed apache
    SSH 연결을 통해 원격 디렉토리를 마운트합니다.SSHFS는 기본적으로 암호화 및 구성이 용이합니다.질문이 있으시면 언제든지 의견을 달아 주십시오.