####HYPERLINUX -- CONSULTORIA, SULOÇÕES E SUPORTE EM LINUX####
conheça o lado shell da força, porém quem tem o dedo de gesso tromba este é o inferno
HyperLinux -- http://www.hyperlinux.com.br -- consultoria, soluções e suporte em Linux.
flipe@hyperlinux.com.br ou flipeicl@hotmail.com

Criando servidor-clinte nfs

Neste tuto vamos configurar um servidor de nfs e um cliente, o serviço nfs é um excelente serviço, nos permite configurar compartilhamento remoto(sendo muito bom para redes internas). Aqui abordaremos alugmas questões básicas de segurança em nfs, este tutorial vale para aqueles que já possuem algum conhecimento em linux(sendo útil também para iniciantes), e que já tenha o aplicativos necessários para que possamos montar um servidor-cliente nfs(nfs e portmap). Bem, vamos lá.

Aqui você não achará todas as informações sobre nfs, este é um guia rápido, para apenas aprendermos como se monta um servidor-cliente nfs.
---------------------------------------------------------------------------------------------------------------------------
Primeiro vamos editar os arquivos do servidor, e o primeiro arquivo a ser editado é o /etc/exports.

1 2 3
/home/teste 192.168.1.224(opção,opção,opção...)

1-O que vamos permitit que se monte no cliente.
2-O ip do cliente(pode ser usada várias sinteses como o FQDN da maquina, ou um número de rede, ou um *(tudo) por exemplo).
3-As opções quer iremos usar.
---------------------------------------------------------------------------------------------------------------------------
Agora editaremos o arquvo /etc/hosts.deny.
Este é o arquivo que nos um pouco de segurança, ele nega serviços a maquina como o próprio nome já diz.

1 2
portmap: ALL
lockd: ALL
mountd: ALL
quotad: ALL

OBS:Existem outras opções que podem ser usadas além da "ALL", como a opção UNKNOWN para negar os serviços para desconhecidos(usuários e máquinas), a opção "KNOW" que nega para todos conhecidos(usuários e máquinas),só para se ter um exemplo, mais detalhes leia as páginas do manual hosts.deny(man hosts.deny)

1-O serviço que iremos negar.
2-Quem iremos negar(no nosso caso tudo).
---------------------------------------------------------------------------------------------------------------------------
E o arquivo /etc/hosts.allow.
Este arquivo é o contrário do /etc/hosts.den, ele libera serviços.

1 2
portmap: 192.168.1.224
lockd: 192.168.1.224
mountd: 192.168.1.224
quotad: 192.168.1.224
statd: 192.168.1.224

OBS:O arquivo hosts.allow é exatamente o contrário do hosts.deny, o que significa que ele faz o que o hosts.deny faz, porém ao contrário.

1-O serviço que iremos liberar.
2-Para quem nós iremos liberar(no nosso caso para 192.168.1.224).
---------------------------------------------------------------------------------------------------------------------------
E agora vamos configurar o cliente.

A diferentes formas de configurar o cliente, já que ele somente monta a o que liberarmos para ele, nós podemos montar na linha de comando mesmo para uma montagem temporaria, podemos colocar o comando em um arquivo de configuração qualquer(casualmente o /etc/rc.local) ou podemos colocar uma entrada no /etc/fstab.

OBS:O cliente também deve ter o nfs e o portmap instalado em sua máquina.

Na linha de comando seria algo mais ou menos assim(dito que isso é só um exemplo).

1 2 3 4 5
mount -t nfs 192.168.1.225:/home/teste /"LUGAR ONDE SE DESEJA MONTAR"

OBS:Nunca monte sob diretórios do raiz, tipo /bin ou /home, ao invés disso crie um sub-diretório.

Exemplo:mkdir /home/meu_diretório_remoto

E então monte sob ele.

mount -t nfs 192.168.1.225:/home/teste /home/meu_diretório_remoto

1-O comando que irá montar nosso diretório.
2-Opção(para especificar um tipo de sistema de arquivos).
3-O sistema de arquivos.
4-O que iremos montar, na linha temos que colocar endreço ip, nome FQDN, ou nome da máquina.
5-O nosso ponto de montagem(esta é a maquina cliente, o comando ai ilustrado está sendo montado de uma outra maquina que não é o servidor).
---------------------------------------------------------------------------------------------------------------------------
Em um arquivo de configurção ficaria como na linha de comando, o que se tem a fazer é escrever a linha dentro de um arquivo, por exemplo o /etc/rc.local e salvar. Então podemos reiniciar o SO ou recarregar com o comando "source".
1 2
source /etc/rc.local

1-O comando.
2-O arquivo que o comando irá atualizar.

OBS:O comando source irá recarregar todo o conteudo do arquivo, portanto, certifique-se de que não irá fazer coisa errada hein.
---------------------------------------------------------------------------------------------------------------------------
No arquivo /etc/fstab a montagem seria algo neste estilo.
1 2 3 4 5 6
192.168.1.225:/home/teste "ONDE SE QUER MONTAR" nfs "OPÇÔES QUE SE IRÀ USAR" 0 2

1-O que iremos montar.
2-Onde iremos montar.
3-O sistema de arquivos.
4-Opções que iremos usar.
5-Usado pelo comando dump para determinar quais sistemas de arquivo precisam ser copiados. Nada é igual a zero(não escreve).
6-A ordem em que os sistema de arquivos seram verificados na inicialização(sempre coloque mais que 2, um é para o "/").

Para maiores detalhes pode-se ler pagina do manual nfs(man nfs) ou no seguinte artigo na pagina de linuxbs escrito pelo Jean Carlos.

http://www.linuxbsd.com.br/phpLinuxB...icos/fstab.htm

---------------------------------------------------------------------------------------------------------------------------
Agora de o comando para iniciar o nfs e o portmap.

serivice portmap start
service nfs start

pode ser desta maneira também.

/etc/init.d/portmap start
/etc/init.d/nfs start

ou desta maneira(você tem que estar dentro do diretório /etc/init.d)

./portmap start
./nfs start
---------------------------------------------------------------------------------------------------------------------------
Se caso os serviços acimas ilustrados já estejam iniciados use o seguinte comando.

exportfs -av

Este comando atualiza as tabelas do nfs, a opção "a" é usada aqui para exportar ou não exportar todos os diretórios, e a "v" é o modo verbose.

eu prefiro parar e reiniciar o serviço.
---------------------------------------------------------------------------------------------------------------------------
Dicas:

Como descobrir se a porta do nfs está aberta?

Use o comando nmap.

nmap -sT ip ou nome da maquina

[root@estranhorama root]# nmap -sT 192.168.1.225

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on estranhorama.hyperlinux.lan (192.168.1.225):
(The 1593 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
111/tcp open sunrpc
722/tcp open unknown
1024/tcp open kdm
1025/tcp open NFS-or-IIS
1026/tcp open LSA-or-nterm
2049/tcp open nfs
3128/tcp open squid-http

Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

###################

Como descobrir quais diretórios estão sendo compartilhados?

Com o comando showmount.

[root@estranhorama root]# showmount --exports
Export list for estranhorama.hyperlinux.lan:
/home/teste 192.168.1.224

###################

Como verificar se o mountd e o nfsd estão trabalhando?

Com o comando rpcinfo... ou pelo ps auxc

[root@estranhorama root]# rpcinfo -p
programa versão protocolo porta
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100003 3 udp 2049 nfs
100003 3 tcp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr
100011 1 udp 893 rquotad
100011 2 tcp 896 rquotad
100005 1 udp 1033 mountd
100005 2 udp 1033 mountd
100005 3 udp 1033 mountd
100024 1 udp 1034 status
100024 1 tcp 1860 status


---------------------------------------------------------------------------------------------------------------------------
E pronto! Nosso servidor-cliente de nfs já está pronto para uso, a seguir será explicado de breve maneira para que se possa entender o que foi feito aqui.
---------------------------------------------------------------------------------------------------------------------------

######BIBLIOGRAFIA#######################################################
Como-fazer nfs traduzido pelo LDP-BR(projeto de documentação linux)
http://br.tldp.org/projetos/howto/ar...wto.pt_BR.html

Montando partições no fstab(Jean Carlos O. Guandalini -- darkwarrior@linuxbsd.com.br)
http://www.linuxbsd.com.br/phpLinuxB...icos/fstab.htm


######CONTATO#######################################################
conheça o lado shell da força, porém quem tem o dedo de gesso tromba este é o inferno
HyperLinux -- http://www.hyperlinux.com.br -- consultoria, soluções e suporte em Linux.
flipe@hyperlinux.com.br ou flipeicl@hotmail.com