Usando o shfs

Mesmo usando o “fish://” do Konqueror, o acesso aos arquivos do servidor remoto não é tão transparente quanto ao montar um compartilhamento NFS ou Samba, pois, por baixo dos panos, ele ainda precisa transferir o arquivo inteiro antes de abri-los ou salvar. Se você tentar abrir um vídeo, por exemplo, ele vai primeiro transferir todo o arquivo para um diretório temporário e só então abri-lo.

O shfs derruba esta limitação, permitindo montar diretórios do servidor remoto, como se fossem compartilhamentos de rede, permitindo que você acesse os arquivos de forma transparente, como se fossem arquivos locais. Tudo é feito via ssh, de forma que você não precisa manter nenhum serviço adicional ativado no servidor. Toda a configuração abaixo é feita no cliente.

Para usar o shfs, é necessário ter instalado o pacote “shfs-utils“, junto com o módulo de Kernel “shfs“. Para usar algumas das opções que veremos a seguir, você vai precisar também do pacote “ssh-askpass“, por isso é importante instalá-lo também.

Vamos por partes. A página do projeto é a http://shfs.sourceforge.net/, onde você pode baixar um pacote contendo o código fonte tanto do módulo, quanto dos executáveis shfsmount e shfsumount. Comece descompactando o arquivo baixado, como em:

$ tar -zxvf shfs-0.35.tar.gz

Acesse a pasta que será criada. Para compilar o módulo “shfs”, acesse a pasta “shfs/Linux-2.6/” e rode o comando “make“. Note que para compilar o módulo, você deve ter instalados os pacotes kernel-headers e (em algumas distribuições) também o pacote “kernel-source”, além dos compiladores básicos. Carregue o módulo gerado usando o comando “insmod shfs.ko“.

Para compilar e instalar os dois executáveis, concluindo a instalação, acesse a pasta “shfsmount/” e rode os comandos “make” e “make install“.

Nas distribuições derivadas do Debian, a instalação é mais simples, pois você pode instalar tudo via apt-get. Comece instalando os pacotes “shfs-utils” e “ssh-askpass”:

# apt-get install shfs-utils ssh-askpass

Para instalar o módulo, instale o pacote “module-assistant” e o “shfs-source” e compile/instale o módulo, usando os comandos:

# apt-get install module-assistant shfs-source
# module-assistant build shfs
# module-assistant install shfs

Algumas distribuições, como o Kanotix e versões recentes do Kurumin (a partir do 6.0), já trazem todos estes componentes pré-instalados, dispensando todos estes passos manuais.

Quando corretamente instalado, o shfs é bastante estável. Se você estiver tendo problemas de instabilidade, conexões interrompidas com erros estranhos, etc., atualize para a última versão. Pode ser que a distribuição em uso inclua uma versão antiga ou de desenvolvimento.

Com tudo nos devidos lugares, comece carregando o módulo “shfs“:

# modprobe shfs

Se preferir que ele seja carregado automaticamente durante o boot, adicione a linha “shfs” no final do arquivo “/etc/modules”. A partir daí, você pode usar o “shfsmount” para montar pastas do servidor remoto, como em:

# shfsmount morimoto@192.168.0.1:/mnt/arquivos /mnt/servidor

Veja que você precisa indicar o login e o endereço IP do servidor remoto, seguido da pasta que será acessada e do diretório local onde os arquivos ficarão disponíveis. No exemplo estou montando a pasta “/mnt/arquivos” do servidor remoto, mas você pode montar qualquer pasta (que o usuário usado tenha acesso), inclusive o diretório raiz. Para desmontar a pasta, use o comando “shfsumount”, ao invés do “umount”, como em:

# shfsumount /mnt/servidor

Se o sshd no servidor estiver configurado para usar uma porta diferente da padrão, indique a porta usada com o parâmetro “-P” (maiúsculo), como em:

# shfsmount -P 2222 morimoto@192.168.0.1:/mnt/arquivos /mnt/servidor

Originalmente, os arquivos ficam acessíveis apenas para o root. Se quiser acessar a pasta montada usando seu login de usuário, indique-o no comando, usando a opção “uid=”, como em:

# shfsmount morimoto@192.168.0.1:/mnt/arquivos /mnt/servidor -o uid=tux

Se quiser abrir as permissões de acesso para todos os usuários (o que não é uma boa idéia do ponto de vista da segurança mas, enfim…), use a opção “-o rmode=777”. Se quiser que os demais usuários tenham apenas permissão de leitura, use “-o rmode=755”.

No caso de conexões instáveis ou ao acessar servidores remotos via internet, você pode adicionar a opção “-p” (minúsculo), que torna a conexão persistente, restabelecendo o acesso caso o servidor fique temporariamente indisponível. O “-p” torna o comportamento do shfsmount bastante interessante. Mesmo que o servidor remoto seja desligado, ele continua periodicamente tentando reabrir a conexão, durante dias, caso necessário. Quando o servidor fica novamente disponível ele abre um prompt gráfico pedindo a senha novamente e remonta a pasta.

Outra vantagem do shfs é o desempenho. Por implementar um sistema de cache, que reduz o número de requisições enviadas ao servidor e maximiza o throughput, ele acaba obtendo taxas de transferência muito mais altas, sobretudo via rede local. Apenas para efeito de comparação, tendo um Sempron 2800+ como cliente, um Pentium 4 3.06 como servidor e uma rede de 100 megabits, obtenho, em média, 4.8 MB/s em transferências de arquivos grandes usando o “fish://” do Konqueror e pouco mais de 7.0 MB/s usando o shfs. Apesar do algoritmo de encriptação continuar o mesmo, o shfs consegue ser quase 50% mais rápido.

É possível fazer com que determinados diretórios sejam montados automaticamente durante o boot, via shfs. Basta colocar o comando de montagem em algum arquivo de inicialização. O problema neste caso é que ele vai abrir a tela de autenticação, pedindo a senha a cada boot, o que pode ser irritante, sobretudo se você precisar montar diretórios de vários servidores diferentes.

Uma solução é usar a dica do SSH com login automático, usando um par de chaves sem passphrase. Neste caso, gere o par de chaves como root e adicione os comandos para montar os diretórios via shfs no arquivo “/etc/init.d/bootmisc.sh” ou “/etc/init.d/rc.local”. Mesmo usando uma chave sem passphrase, a segurança ainda é bem melhor do que ao usar um protocolo sem encriptação, como o NFS ou SMB.

Se preferir fazer tudo usando seu login de usuário (o que é melhor do ponto de vista da segurança), coloque os comandos em um script dentro da pasta “.kde/Autostart”.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X