NFS: 하나를 제외한 모든 클라이언트와 공유

NFS: 하나를 제외한 모든 클라이언트와 공유

한 폴더만 제외하고 네트워크의 모든 클라이언트와 폴더를 공유하고 싶습니다. 이것은 내 현재 /etc/exports파일입니다.

/opt/resources     *(rw,async)

192.168.1.24다른 승인된 클라이언트의 주소를 모두 언급할 필요 없이 클라이언트가 이를 방지하려면 무엇을 추가해야 합니까 ?

답변1

파일에서 부정적인 패턴을 허용하는 NFS 서버를 모릅니다 exports.

IP 주소를 나열하는 경우 넷마스크를 사용하여 여러 클라이언트를 동시에 처리할 수 있습니다(IP 주소에 와일드카드 패턴을 사용할 수 없음). 예를 들어 다음 줄은 192.168.1.24를 제외하고 192.168.1.*과 일치합니다. 예, 지루해요.

/opt/resources 192.168.1.0/28(rw,async) 192.168.1.16/29(rw,async) 192.168.1.25(rw,async) 192.168.1.26/31(rw,async) 192.168.1.28/30(rw,async) 192.168.1.32/27(rw,async)  192.168.1.64/26(rw,async) 192.168.1.128/25(rw,async)

exports다음을 사용하면 파일이 복잡해지거나 중복되는 것을 방지할 수 있습니다.NIS 넷그룹. 그러나 netgroup 파일에서는 모든 목록의 모든 호스트를 나열해야 합니다.

hosts내보낸 각 트리에 대한 액세스 목록을 설명하는 만족스러운 방법을 찾을 수 없는 경우 또는 파일 을 자동으로 생성할 수 있습니다 netgroup.

답변2

AFAIK에는 NFS지정된 클라이언트를 거부하는 옵션이 없습니다(클라이언트가 exports항목에 나열되지 않으면 공유 리소스에 액세스할 수 없기 때문입니다).

host.deny귀하의 경우에는 클라이언트의 공유 액세스를 거부하는 데 사용할 수 있다고 생각합니다 NFS. 다음에 줄을 추가하십시오 /etc/host.deny:

portmap:192.168.1.24

물론 이것은 완벽한 솔루션은 아닙니다. 나열된 클라이언트는 서버 /etc/host.deny의 다른 공유 리소스에 액세스할 수 없기 때문입니다 NFS.

답변3

또 다른 방법은 다음과 같습니다.IP세트iptables로. ipset은 대부분의 Linux 기본 저장소에서 사용할 수 있습니다.

다음을 사용하여 IP 주소의 IP 집합을 만들 수 있습니다.

ipset create serverblacklist hash:net
ipset -A serverblacklist 192.168.1.24

...그리고 ipset 테이블 'serverblacklist' IP를 차단하는 규칙을 추가하세요.

iptables -A INPUT -p tcp -m set --match-set serverblacklist src -j DROP

마찬가지로 가장 편리한 방법에 따라 허용할 IP 화이트리스트와 이를 명시적으로 허용하는 IPtables 항목을 만들 수도 있습니다.

관련 정보