NFS: compartilhe com todos os clientes, exceto um

NFS: compartilhe com todos os clientes, exceto um

Quero compartilhar uma pasta com todos os clientes da rede, exceto um. Este é o meu /etc/exportsarquivo atual:

/opt/resources     *(rw,async)

O que devo acrescentar para evitar que o cliente 192.168.1.24sem a necessidade de mencionar os endereços de todos os outros clientes autorizados?

Responder1

Não conheço nenhum servidor NFS que aceite padrões negativos no exportsarquivo.

Você pode usar máscaras de rede para cobrir vários clientes ao mesmo tempo se estiver listando endereços IP (não é possível usar padrões curinga para endereços IP). Por exemplo, a linha a seguir corresponde a 192.168.1.* exceto 192.168.1.24. Sim, é tedioso.

/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)

Você pode evitar a confusão do exportsarquivo e possivelmente a duplicação usando umGrupo de rede NIS. Entretanto, no arquivo netgroup você precisará listar todos os hosts em todas as listas.

Se você não conseguir encontrar uma maneira satisfatória de descrever as listas de acesso para cada árvore exportada, poderá gerar automaticamente o arquivo hostsou netgroup.

Responder2

AFAIK, NFSnão tem nenhuma opção para negar um cliente especificado (porque se o cliente não estiver listado na exportsentrada, ele não poderá acessar o recurso compartilhado).

No seu caso, acho que você pode usar host.denypara negar o acesso de um cliente ao NFScompartilhamento. Adicione uma linha a /etc/host.deny:

portmap:192.168.1.24

Isso, claro, não é uma solução perfeita, pois o cliente listado /etc/host.denynão pode acessar nenhum outro recurso compartilhado no NFSservidor.

Responder3

Outra forma seria usaripsetcom iptables. ipset está disponível na maioria dos repositórios básicos do Linux.

Você pode fazer um ipset de endereços IP usando, por exemplo-

ipset create serverblacklist hash:net
ipset -A serverblacklist 192.168.1.24

... e adicione essa regra para bloquear IPs da tabela ipset 'serverblacklist'-

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

Da mesma forma, você também pode criar uma lista de permissões de IPs para permitir e uma entrada IPtables para permiti-los explicitamente, dependendo do que for mais conveniente.

informação relacionada