Red Hat Training

A Red Hat training course is available for RHEL 8

4.11. 방화벽 뒤에서 실행되도록 NFS 서버 구성

NFS에는 RPC 서비스에 대한 포트를 동적으로 할당하고 방화벽 규칙을 구성하는 문제를 일으킬 수 있는 rpcbind 서비스가 필요합니다. 다음 섹션에서는 지원하려는 경우 방화벽에서 작동하도록 NFS 버전을 구성하는 방법을 설명합니다.

  • NFSv3

    여기에는 NFSv3를 지원하는 모든 서버가 포함됩니다.

    • NFSv3- 전용 서버
    • NFSv3 및 NFSv4를 모두 지원하는 서버
  • NFSv4-전용

4.11.1. 방화벽 뒤에서 실행되도록 NFSv3- 사용 서버 구성

다음 절차에서는 방화벽 뒤에서 실행되도록 NFSv3를 지원하는 서버를 구성하는 방법을 설명합니다. 여기에는 NFSv3 및 NFSv4를 모두 지원하는 NFSv3 전용 서버 및 서버가 포함됩니다.

절차

  1. 클라이언트가 방화벽 뒤에서 NFS 공유에 액세스할 수 있도록 하려면 NFS 서버에서 다음 명령을 실행하여 방화벽을 구성합니다.

    firewall-cmd --permanent --add-service mountd
    firewall-cmd --permanent --add-service rpc-bind
    firewall-cmd --permanent --add-service nfs
  2. 다음과 같이 /etc/nfs.conf 파일에서 RPC 서비스 nlockmgr 에서 사용할 포트를 지정합니다.

    [lockd]
    
    port=tcp-port-number
    udp-port=udp-port-number

    또는 /etc/modprobe.d/lockd.conf 파일에 nlm_tcpportnlm_udpport를 지정할 수 있습니다.

  3. NFS 서버에서 다음 명령을 실행하여 방화벽에서 지정된 포트를 엽니다.

    firewall-cmd --permanent --add-port=<lockd-tcp-port>/tcp
    firewall-cmd --permanent --add-port=<lockd-udp-port>/udp
  4. 다음과 같이 /etc/nfs . conf 파일의 [statd] 섹션을 편집하여 alice.statd에 대한 정적 포트를 추가합니다.

    [statd]
    
    port=port-number
  5. NFS 서버에서 다음 명령을 실행하여 방화벽에서 추가된 포트를 엽니다.

    firewall-cmd --permanent --add-port=<statd-tcp-port>/tcp
    firewall-cmd --permanent --add-port=<statd-udp-port>/udp
  6. 방화벽 구성을 다시 로드합니다.

    firewall-cmd --reload
  7. 먼저 rpc-statd 서비스를 다시 시작한 다음 nfs-server 서비스를 다시 시작합니다.

    # systemctl restart rpc-statd.service
    # systemctl restart nfs-server.service

    또는 /etc/modprobe.d/lockd.conf 파일에 lockd 포트를 지정한 경우:

    1. /proc/sys/fs/nfs/nlm_tcpport/proc/sys/fs/nfs/nlm_udpport 의 현재 값을 업데이트합니다.

      # sysctl -w fs.nfs.nlm_tcpport=<tcp-port>
      # sysctl -w fs.nfs.nlm_udpport=<udp-port>
    2. rpc-statdnfs-server 서비스를 다시 시작합니다.

      # systemctl restart rpc-statd.service
      # systemctl restart nfs-server.service

4.11.2. 방화벽 뒤에서 실행되도록 NFSv4 전용 서버 구성

다음 절차에서는 방화벽 뒤에서 실행되도록 NFSv4 전용 서버를 구성하는 방법을 설명합니다.

절차

  1. 클라이언트가 방화벽 뒤에서 NFS 공유에 액세스할 수 있도록 하려면 NFS 서버에서 다음 명령을 실행하여 방화벽을 구성합니다.

    firewall-cmd --permanent --add-service nfs
  2. 방화벽 구성을 다시 로드합니다.

    firewall-cmd --reload
  3. nfs-server를 다시 시작합니다.

    # systemctl restart nfs-server

4.11.3. 방화벽 뒤에서 실행되도록 NFSv3 클라이언트 구성

방화벽 뒤에서 실행되도록 NFSv3 클라이언트를 구성하는 절차는 방화벽 뒤에서 실행되도록 NFSv3 서버를 구성하는 절차와 유사합니다.

구성 중인 시스템이 NFS 클라이언트와 NFS 서버 둘 다인 경우, NFSv3- 사용 서버 구성에 설명된 절차에 따라 방화벽 뒤에서 실행됩니다.

다음 절차에서는 방화벽 뒤에서 실행하기 위해서만 NFS 클라이언트인 시스템을 구성하는 방법을 설명합니다.

절차

  1. 클라이언트가 방화벽 뒤에 있을 때 NFS 서버가 NFS 클라이언트에 콜백을 수행할 수 있도록 하려면 NFS 클라이언트에서 다음 명령을 실행하여 방화벽에 CHAP -bind 서비스를 추가합니다.

    firewall-cmd --permanent --add-service rpc-bind
  2. 다음과 같이 /etc/nfs.conf 파일에서 RPC 서비스 nlockmgr 에서 사용할 포트를 지정합니다.

    [lockd]
    
    port=port-number
    udp-port=upd-port-number

    또는 /etc/modprobe.d/lockd.conf 파일에 nlm_tcpportnlm_udpport를 지정할 수 있습니다.

  3. NFS 클라이언트에서 다음 명령을 실행하여 방화벽에서 지정된 포트를 엽니다.

    firewall-cmd --permanent --add-port=<lockd-tcp-port>/tcp
    firewall-cmd --permanent --add-port=<lockd-udp-port>/udp
  4. 다음과 같이 /etc/nfs . conf 파일의 [statd] 섹션을 편집하여 alice.statd에 대한 정적 포트를 추가합니다.

    [statd]
    
    port=port-number
  5. NFS 클라이언트에서 다음 명령을 실행하여 방화벽에서 추가된 포트를 엽니다.

    firewall-cmd --permanent --add-port=<statd-tcp-port>/tcp
    firewall-cmd --permanent --add-port=<statd-udp-port>/udp
  6. 방화벽 구성을 다시 로드합니다.

    firewall-cmd --reload
  7. rpc-statd 서비스를 다시 시작합니다.

    # systemctl restart rpc-statd.service

    또는 /etc/modprobe.d/lockd.conf 파일에 lockd 포트를 지정한 경우:

    1. /proc/sys/fs/nfs/nlm_tcpport/proc/sys/fs/nfs/nlm_udpport 의 현재 값을 업데이트합니다.

      # sysctl -w fs.nfs.nlm_tcpport=<tcp-port>
      # sysctl -w fs.nfs.nlm_udpport=<udp-port>
    2. rpc-statd 서비스를 다시 시작합니다.

      # systemctl restart rpc-statd.service

4.11.4. 방화벽 뒤에서 실행되도록 NFSv4 클라이언트 구성

클라이언트가 NFSv4.0을 사용하는 경우에만 이 절차를 수행하십시오. 이 경우 NFSv4.0 콜백용 포트를 열어야 합니다.

이후 프로토콜 버전에서는 서버가 클라이언트에서 시작한 동일한 연결에서 콜백을 수행하기 때문에 NFSv4.1 이상에는 이 절차가 필요하지 않습니다.

절차

  1. NFSv4.0 콜백이 방화벽을 통과하도록 허용하려면 /proc/sys/fs/nfs_callback_tcpport를 설정하고 서버가 다음과 같이 클라이언트의 해당 포트에 연결할 수 있습니다.

    # echo "fs.nfs.nfs_callback_tcpport = <callback-port>" >/etc/sysctl.d/90-nfs-callback-port.conf
    # sysctl -p /etc/sysctl.d/90-nfs-callback-port.conf
  2. NFS 클라이언트에서 다음 명령을 실행하여 방화벽에서 지정된 포트를 엽니다.

    firewall-cmd --permanent --add-port=<callback-port>/tcp
  3. 방화벽 구성을 다시 로드합니다.

    firewall-cmd --reload