특정 Proxmox LXC 컨테이너가 네트워크에 NFS 공유를 마운트하도록 허용하려면 어떻게 해야 합니까?

특정 Proxmox LXC 컨테이너가 네트워크에 NFS 공유를 마운트하도록 허용하려면 어떻게 해야 합니까?

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

Proxmox LXC 컨테이너에서 네트워크의 다른 물리적 시스템에 있는 NFS 공유를 마운트하려고 했습니다. 나는 /etc/fstab다음 줄을 가지고 있습니다 :

192.168.0.4:/mnt/Pool1/homes     /home     nfs     auto,rw,hard     0 0

mount /home다음 출력과 함께 실행이 실패합니다.

mount.nfs: access denied by server while mounting 192.168.0.4:/mnt/Pool1/homes

출력 mount -v /home:

mount.nfs: timeout set for Sun Jun 17 15:29:02 2018
mount.nfs: trying text-based options 'hard,vers=4.2,addr=192.168.0.4,clientaddr=192.168.0.166'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 192.168.0.4:/mnt/Pool1/homes

명령 을 실행할 때마다 다음과 같은 mount줄이 추가됩니다 /var/log/messages.

Jun 17 15:26:47 userserver-01 kernel: [  256.620770] audit: type=1400 audit(1529249207.168:19): apparmor="DENIED" operation="mount" info="failed type match" error=-13 profile="lxc-container-default-cgns" name="/home/" pid=2938 comm="mount.nfs" fstype="nfs" srcname="192.168.0.4:/mnt/Pool1/homes"

분명히 Proxmox는 AppArmor를 사용하고 AppArmor는 NFS 마운트 작업을 거부합니다( apparmor="DENIED"). AppArmor가 프로필을 사용하고 있는 것 같습니다 lxc-container-default-cgns(로그 파일에 표시됨 profile="lxc-container-default-cgns"). 에서 구성 파일을 찾았습니다 /etc/apparmor.d/lxc/lxc-default-cgns.

/etc/apparmor.d/lxc/lxc-default-cgnsNFS를 허용하는 데 필요한 사항을 편집하고 변경할 수 있을 것 같습니다 . 그러나 이렇게 하면 NFS가 허용됩니다.모두컨테이너. NFS를 허용하는 것이 가능합니까?특정 컨테이너에만 사용 가능?

답변1

예, 가능합니다. 을 기반으로 새 프로필을 만들고 lxc-container-default-cgns특정 컨테이너에 사용하면 됩니다. 그럼 먼저 실행해 보세요

cp -i /etc/apparmor.d/lxc/lxc-default-cgns /etc/apparmor.d/lxc/lxc-default-with-nfs

그런 다음 새 파일을 편집합니다 /etc/apparmor.d/lxc/lxc-default-with-nfs.

  • profile lxc-container-default-cgns다음 으로 교체profile lxc-container-default-with-nfs
  • }닫는 괄호( ) 앞에 NFS 구성(아래 참조)을 배치합니다.

NFS 구성

쓰거나

  mount fstype=nfs*,
  mount fstype=rpc_pipefs,

또는 (더 명확하게)

  mount fstype=nfs,
  mount fstype=nfs4,
  mount fstype=nfsd,
  mount fstype=rpc_pipefs,

마지막으로 실행하십시오 systemctl reload apparmor.

새 구성 파일 사용

다음 줄을 편집 /etc/pve/lxc/${container_id}.conf하고 추가하세요.

lxc.apparmor.profile: lxc-container-default-with-nfs

그런 다음 컨테이너를 중지하고 다음과 같이 다시 시작합니다.

pct stop ${container_id} && pct start ${container_id}

이제 NFS 공유를 마운트할 수 있습니다.

관련 정보