
한 폴더만 제외하고 네트워크의 모든 클라이언트와 폴더를 공유하고 싶습니다. 이것은 내 현재 /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 항목을 만들 수도 있습니다.