NFS 공유에 대한 액세스를 단일 클라이언트 시스템으로 제한하도록 Solaris 11.0 서버를 얻을 수 없습니다.
share
ZFS 파일 시스템의 속성에 대해 대략 다음과 같은 값이 있습니다 tank/mail
.
name=mail,path=/tank/mail,prot=nfs,none=*,[email protected],sec=sys
10.0.23.43(Solaris 11.3 실행)의 클라이언트에 공유를 마운트할 수 없습니다. 나는 이것을 시도한다:
mount -F nfs keisha:/tank/mail /tmp/mnt
다음과 같은 오류가 발생했습니다.
nfs mount: mount: /tmp/mnt: Permission denied
제거하면 none=*
클라이언트가 제대로 설치됩니다. 그러나 내가 이해한 바에 따르면 그렇게 하면 클라이언트에 대한 액세스가 허용됩니다.어느차단하고 싶은 주소(예, 주소를 스푸핑하는 것이 가능하다는 것을 알고 있지만 가능한 모든 제한 사항을 추가하는 것을 선호합니다.)
none
합계 순서를 반대로 바꿔보았지만 rw
아무 것도 바뀌지 않았습니다. 나는 그것을 시도했지만 [email protected]/32
그것도 작동하지 않습니다.
전체 서브넷에 열어보려고 했는데 [email protected]/16
심지어저것작동하지 않습니다. 또한 고객의 주소가 정확한지 다시 확인했습니다. 서버의 DNS 항목은 IPv4 전용이고 이름으로 액세스하기 때문에 클라이언트는 IPv6을 사용하여 서버에 액세스할 수 없습니다.
클라이언트 주소를 제한하면 특정 클라이언트에 대한 액세스도 차단될 수 있는 이유명시적으로 허용됨주소? 어떻게 해결할 수 있나요?
답변1
Ridgy의 의견은 답변을 암시합니다. 필요한 것은 삭제하고 none
다음을 떠나는 것입니다.
name=mail,path=/tank/mail,prot=nfs,[email protected],sec=sys
(생략될 수도 있지만 @
문서상 요구하기 때문에 앞으로 해석이 더 제한적이 될 경우를 대비해 보관해 두는 것이 가장 좋다고 생각합니다.)
이것은 문서가 부실한 경우입니다. 매뉴얼 페이지에는 다음과 같이 명시되어 있습니다(강조).
none
모든 클라이언트 액세스가 금지됩니다.ro
또는 옵션을rw
재정의할 수 있습니다none
.
none=
access_list는
액세스 목록과 일치하는 클라이언트에 대한 액세스를 허용하지 않습니다. 단, 액세스 목록이 별표(*
)인 경우는 예외이며, 이 경우 재정의ro
될 수 있습니다 .rw
none
이는 10.0.23.43에 있는 내 클라이언트가 액세스 권한을 얻었어야 한다는 점을 매우 명확하게 할 뿐만 아니라 none
(그렇지 않았음에도 불구하고) 실제로 귀하가 액세스 권한을 얻었음을 의미합니다.필요 none
rw
목록에 없는 클라이언트가 최소한 어떤 종류의 액세스 권한을 얻지 못하도록 방지하려면 ,none=*
적용 범위 예외가 (아마도) 구현되는 이유는 무엇 입니까? 이것은 중복됩니다!
테스트할 다른 NFS 클라이언트가 없어서 클라이언트의 IP 번호를 변경하고 그것이 none
맞는지 확인했습니다.아니요이는 달리 나열되지 않은 클라이언트에 대한 액세스를 거부하려면 필요합니다. 확실히 하기 위해 ro
테스트를 추가했는데 다른 주소에 있는 클라이언트는 읽을 수는 있지만 쓸 수는 없었습니다.
이것이 해결책인 것처럼 보이지만 문서에는 내가 하고 있는 일이 개방적이라고 암시되어 있기 때문에 만족스럽지 않습니다. 사실 암시된 의도를 고수하기 위해 향후 릴리스에서 이 작업을 수행하여 자체적으로 수정될 수도 있습니다. 문서로. (적어도 외부 방화벽이 있습니다.)
답변2
하나의 호스트에게만 공유되는 경우 Ridgy가 귀하의 질문에 답변한 것 같습니다. 둘 이상이면 세미콜론을 사용하거나 넷그룹을 생성할 수 있습니다.
추가 차단이 필요하거나 원하는 경우 OpenBSD PF(pkg:/network/firewall)의 ipfilters 또는 Solaris 방화벽 사용을 고려할 수 있습니다.