De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: André Luiz Facina
Data de Publicação: 04 de September de 2008
NFS, Network File System, é usado para compartilhar o sistema de arquivos através da rede.
Essa dica seguirá os passos para uma configuração simples do NFS. O exemplo detalha um servidor na rede LAN, com os clientes acessando o NFS.
Não falarei sobre a segurança no NFS presumindo que você já tenha instalado o packet filter ou outra proteção de firewall, prevenindo assim acessos de fora da rede.
Se você precisar liberar o NFS para fora da rede, sugiro que utilize algum método de acesso via VPN. De outra maneira, pessoas poderão capturar o seu tráfego NFS. Poderiam também forjar o endereço IP que está autorizado a acessar o servidor NFS.
Esses serviços devem estar ativados e rodando no servidor:
Por padrão cada um deles está desativado no OpenBSD. Adicione as seguintes
linhas em /etc/rc.conf.local
para habilitá-los.
portmap=YES nfs_server=YES
O próximo passo é colocar a lista de arquivos que serão disponibilizados para a montagem pelos clientes.
Nesse exemplo, temos um servidor NFS com o endereço IP 10.0.0.1, que
compartilha apenas para os clientes que estão na mesma subrede. Tudo isso
é configurado no arquivo /etc/exports
.
Nesse arquivo você coloca as pastas que deseja tornar acessíveis via NFS
e define quem pode acessá-las. Há muitas opções que podem ser usadas em
/etc/exports. Para o nosso exemplo de servidor, o arquivo de configuração
do /etc/exports
se parecesse com esse:
## NFS exports Database # See exports(5) for more information. Be very careful, misconfiguration # of this file can result in your filesystems being readable by the world. /work -alldirs -ro -network=10.0.0 -mask=255.255.255.0
Isso significa que a pasta /work
foi disponibilizada via NFS. A opção
-alldirs
, especifica que os clientes serão capazes de montar em qualquer
ponto dentro de /work
, bem como o próprio /work
. Por exemplo:
/work
tiver um diretório chamado /work/monday
, os clientes poderiam montar /work
e ter acesso a todos os arquivos e subdiretórios;
/work/monday
e ter acesso apenas aos arquivos e diretórios contidos nele.
A opção -ro
especifica que será concedido aos clientes apenas acesso de leitura.
Os dois últimos argumentos especificam que apenas os clientes que estão na
rede 10.0.0.0 e usando a máscara 255.255.255.0 serão autorizados a montar
pasta. Isso é importante para servidores que são acessados por diferentes
redes.
Agora você pode iniciar o serviço ou reiniciar (após habilitá-los com as
opões acima) ou executá-los manualmente.
# /usr/sbin/portmap # echo -n >/var/db/mountdtab # /sbin/mountd # /sbin/nfsd -tun 4Argumentos passados para o nfsd para habilitá-lo com conexões TCP ( -t ) e UDP ( -u ) e habilitá-lo com 4 instancias ( -n ). Você deve setar apropriadamente o número de instâncias do NFS, para lidar com o número máximo de clientes. Agora está pronto para montar o sistema de arquivos a partir dos clientes. Lembre-se: se você fizer alterações em
/etc/exportfs
enquanto o NFS estiver
rodando, será preciso reiniciar o serviço. Para isso basta um sinal de HUP
e as alterações entrarão em vigor:
# kill -HUP `cat /var/run/mountd.pid`==Montando o sistema de arquivos NFS== O sistema de arquivos NFS pode ser montando nos clientes, sem a necessidade de qualquer serviço ou daemon, e também como qualquer outro sistema de arquivos. O NFS deve ser montando com o comando mount, ou mais especificamente com o comando
mount_nfs
.
Para montar o sistema de arquivos /work
no computador 10.0.0.1 e na pasta
/mnt, siga o exemplo abaixo. Note que você não precisa utilizar o endereço
ip, se estiver utilizando um servidor de DNS (named ou bind) por exemplo:
# mount -t nfs 10.0.0.1:/work /mntPara que o NFS seja montando no boot, adicione a seguinte linha no
/etc/fstab
:
10.0.0.1:/work /mnt nfs rw 0 0É importantíssimo que você use
0 0
no final dessa linha, para que o sistema
não tente usar o fsck na inicialização.
Outra opção de segurança, tal como o noexec, nodev,nosuid
também devem
ser usadas se for preciso:
10.0.0.1:/work /mnt nfs rw,nodev,nosuid 0 0Dessa forma, nenhum dispositivo ou programa com setuid bit no servidor NFS possa subverter as medidas de seguranças nos clientes NFS. Se você não for executar programas nos clientes NFS, pode-se adicionar a opção noexec. Quando acessar um ponto de montagem NFS com o usuário root, o servidor automaticamente mapeará o root para o usuário e grupo
nobody
. Isso é
importante quando se leva em conta as permissões de arquivos. Por exemplo,
ter um arquivo com essas permissões:
-rw----- 1 root wheel 0 Dec 31 03:00 _daily.B20143Se esse arquivo foi compartilhado com o NFS e o usuário root tentar acessar esse arquivo a partir de um cliente NFS, o acesso será negado. Isso ocorre por que o servidor usa as credenciais do usuário
nobody
quando o usuário root
tenta acessar o arquivo. Uma vez que nobody
não
tem permissão de acessar o arquivo, o acesso é negado.
==Checando o status do NFS==
A fim de verificar se o NFS está funcionando corretamente e que todos os
daemons estejam registrados em RCP, use o rpcinfo:
# rpcinfo -p 10.0.0.1 program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 633 mountd 100005 3 udp 633 mountd 100005 1 tcp 916 mountd 100005 3 tcp 916 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfsEm condições normais de uso, existem outros utilitários que permitem ver o que está acontecendo com o NFS. Um deles é o
showmount
, que permite
visualizar o que está montando atualmente e quem está montando o NFS.
Há também o nfsstat
, que mostra mais detalhes e estatísticas.
Para utilizar o showmount tente /usr/bin/showmount -a host
. Por exemplo:
# /usr/bin/showmount -a 10.0.0.1 All mount points on 10.0.0.1: 10.0.0.37:/workA saída mostra que o cliente 10.0.0.37 tem montando o
/work
que foi exportado
a partir do servidor 10.0.0.1.
OpenBSD -> ( Free, Functional & Secure )
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários