Proxmox 5 시스템에서 내보낸 NFS 공유를 마운트하려고 할 때 "mount.nfs: 액세스 거부됨..."을 수정하는 방법은 무엇입니까?

Proxmox 5 시스템에서 내보낸 NFS 공유를 마운트하려고 할 때 "mount.nfs: 액세스 거부됨..."을 수정하는 방법은 무엇입니까?

Proxmox 5 호스트에서 NFS 공유를 마운트하려고 하는데 문제가 있습니다. 다음과 같은 두 대의 컴퓨터가 있습니다.

192.168.1.3    proxmox debian box (nfs-host)
192.168.1.31   ubuntu 16.04 (nfs-client)

/mnt/storage(NFS 클라이언트)에 대한 권한:

drwxrwxrwx 11 nobody nogroup 4096 Oct  7 10:28 storage

/etc/exports(NFS 호스트)의 내용:

/mnt/storage 192.168.1.31(rw,sync,no_subtree_check)

showmount -e 192.168.1.3출력(NFS 클라이언트):

Export list for 192.168.1.3:
/mnt/storage 192.168.1.31

클라이언트에서 마운트하려는 시도가 실패했습니다.

me@client:/mnt/storage$ sudo mount 192.168.1.3:/mnt/storage /mnt/storage
mount.nfs: access denied by server while mounting 192.168.1.3:/mnt/storage

exportfs -ranfs 커널 서버를 실행 하고 다시 시작했지만 여전히 재미가 없습니다. 나는 또한 질문에 있는 모든 제안을 시도했습니다.mount.nfs: Ubuntu 시스템에 마운트하는 동안 서버 액세스가 거부되었습니까?, 하지만 나에게는 아무것도 작동하지 않습니다. 하단에 docker 관련 답변이 한두 개밖에 없고, 또 다른 답변에는 IP 철자가 틀리는데 둘 다 저와 관련이 없습니다.

두 호스트 모두 ping을 할 수 있고 두 호스트 모두 인터넷에 액세스하여 서로를 볼 수 있으므로 네트워크 문제는 아닌 것 같습니다.

/var/log/messages이제 호스트 컴퓨터에 다음 오류가 표시됩니다.

Oct  7 10:06:36 pve kernel: [44667.325940] audit: type=1400 audit(1507385196.790:23): apparmor="DENIED" operation="mount" info="failed type match" error=-13 profile="lxc-container-default-cgns" name="/mnt/storage/" pid=15053 comm="mount.nfs4" fstype="nfs4" srcname="192.168.1.3:/export/storage"
Oct  7 10:07:05 pve kernel: [44696.096558] audit: type=1400 audit(1507385225.559:24): apparmor="DENIED" operation="mount" info="failed type match" error=-13 profile="lxc-container-default-cgns" name="/mnt/storage/" pid=15112 comm="mount.nfs" fstype="nfs" srcname="192.168.1.3:/export/storage"

/etc/apparmor.d/lxc/요청에 따라 단어가 포함된 모든 파일의 내용은 다음과 같습니다 mount.

root@host:/etc/apparmor.d/lxc# ll
total 24
drwxr-xr-x 2 root root 4096 Oct  6 13:24 .
drwxr-xr-x 9 root root 4096 Oct  6 13:24 ..
-rw-r--r-- 1 root root  479 Jun 30 05:01 lxc-default
-rw-r--r-- 1 root root  528 Jun 30 05:01 lxc-default-cgns
-rw-r--r-- 1 root root  544 Jun 30 05:01 lxc-default-with-mounting
-rw-r--r-- 1 root root  527 Jun 30 05:01 lxc-default-with-nesting

root@host:/etc/apparmor.d/lxc# cat lxc-default
# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
# will source all profiles under /etc/apparmor.d/lxc

profile lxc-container-default flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>

  # the container may never be allowed to mount devpts.  If it does, it
  # will remount the host's devpts.  We could allow it to do it with
  # the newinstance option (but, right now, we don't).
  deny mount fstype=devpts,
}



root@host:/etc/apparmor.d/lxc# cat lxc-default-cgns
# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
# will source all profiles under /etc/apparmor.d/lxc

profile lxc-container-default-cgns flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>

  # the container may never be allowed to mount devpts.  If it does, it
  # will remount the host's devpts.  We could allow it to do it with
  # the newinstance option (but, right now, we don't).
  deny mount fstype=devpts,
  mount fstype=cgroup -> /sys/fs/cgroup/**,
}



root@host:/etc/apparmor.d/lxc# cat lxc-default-with-mounting
# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
# will source all profiles under /etc/apparmor.d/lxc

profile lxc-container-default-with-mounting flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>

# allow standard blockdevtypes.
# The concern here is in-kernel superblock parsers bringing down the
# host with bad data.  However, we continue to disallow proc, sys, securityfs,
# etc to nonstandard locations.
  mount fstype=ext*,
  mount fstype=xfs,
  mount fstype=btrfs,
}



root@host:/etc/apparmor.d/lxc# cat lxc-default-with-nesting
# Do not load this file.  Rather, load /etc/apparmor.d/lxc-containers, which
# will source all profiles under /etc/apparmor.d/lxc

profile lxc-container-default-with-nesting flags=(attach_disconnected,mediate_deleted) {
  #include <abstractions/lxc/container-base>
  #include <abstractions/lxc/start-container>

  deny /dev/.lxc/proc/** rw,
  deny /dev/.lxc/sys/** rw,
  mount fstype=proc -> /var/cache/lxc/**,
  mount fstype=sysfs -> /var/cache/lxc/**,
  mount options=(rw,bind),
  mount fstype=cgroup -> /sys/fs/cgroup/**,
}

답변1

AppArmour가 서버에서 시작되는 것 같습니다. 다음 문구가 포함된 로그 파일 메시지를 봅니다.

apparmor="DENIED"

안타깝게도 끄는 방법에 대해서만 조언해 드릴 수 있으며 권장하지는 않습니다. 중재에 대한 지침을 찾을 수 있는지 알아보겠습니다...

답변2

Proxmox 호스트에서 다음 구성을 변경하여 /etc/apparmor.d/lxc-default-cgns드라이브를 성공적으로 마운트할 수 있었습니다.

/etc/apparmor.d/lxc-default-cgns

  mount fstype=nfs*,
  mount options=(rw, bind, ro),

답변3

Proxmox lxc를 사용하는 경우 lxc 함수에 NFS 옵션이 있다는 점을 고려해보세요. 여기에 이미지 설명을 입력하세요.

답변4

컨테이너가 "권한 없음" 모드에서 실행되고 있나요? 그렇다면 NFS 및 Samba 기능이 비활성화됩니다. 모드를 변경하려면 컨테이너를 중지하고 백업한 다음 "권한 있는" 모드에서 복원해야 합니다. 권한 모드는 옵션 메뉴의 기능 탭을 활성화합니다. 기능 메뉴에서 NFS(및/또는 Samba)를 활성화할 수 있습니다.

관련 정보