Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Limitando um usuário ao seu próprio diretório no FTP

Introdução

Este artigo mostra como utilizar mao de um recurso muito poderoso que é o de "travar" o usuario de FTP somente ao contexto dele no sistema de arquivos do servidor. Dessa maneira os usuarios nao poderão fazer acesso a áreas do sistema, que nao sejam reservadas a ele.

Configuraçao

Crie o usuário ftp com o comando #adduser (sugiro que este seja usado somente para ftp).

Crie a senha do usuário com o comando #passwd .

Insira a entrada /etc/ftponly em /etc/shells. Essa entrada será utilizada para validar um suposto shell. Esse suposto shell é, por default, visto pelo wu-ftpd como uma espécie de ordem de ativação de comandos ftp para o usuário logado. Como o shell /etc/ftponly não existe, o usuário não conseguirá efetuar logon por telnet, terminal etc. Isso já é uma boa medida de segurança. :-)

Edite o arquivo /etc/passwd e edite a linha referente ao usuário. Troque o shell de /bin/bash (geralmente esse é o default) para /etc/ftponly. Depois coloque a sentença /./ (barra-ponto-barra) no ponto que será considerado a raiz do usuário ftp. Exemplo: digamos que você tenha criado o usuário eriberto e não queira que ele saia do seu próprio diretório. A linha original, que era assim:

eriberto:x:501:501::/home/eriberto:/bin/bash

Fica agora assim:

eriberto:x:501:501::/home/eriberto/./:/etc/ftponly

Se você quisesse manter o eriberto dentro de /home, a linha ficaria assim:

eriberto:x:501:501::/home/./eriberto:/etc/ftponly

Edite o arquivo /etc/ftpaccess e insira como últimas linhas:

path-filter guest /etc/pathmsg ^[-A-Za-z0-9_.]*$ ^. ^-

guestuser eriberto

A linha path-filter definiu que os arquivos a serem transportados (ftp) podem conter no seu nome qualquer letra maiúscula ou minúscula, todos os algarismos de 0 a 9, além dos caracteres . (ponto),_ (underscore ou underline) e - (traço). Também diz que o nome dos arquivos não podem começar com . (ponto) ou - (traço). Se houver algum nome de arquivo irregular, a mensagem contida em /etc/pathmsg será enviada ao usuário.

Ainda no arquivo ftpaccess, verifique se a primeira linha (class) contém a entrada guest. Exemplo:

class all real,guest,anonymous *

Esse guest refere-se aos usuários que irão logar ftp.

Determine também quais ações o guest pode realizar. Isso é feito nas linhas compress, tar, chmod, delete, overwrite e rename. Por exemplo:

delete yes guest,anonymous

A linha acima permite que os usuários tipo guest e anonymous possam deletar arquivos por ftp. A expressão all refere-se a guest e anonymous ao mesmo tempo.

Crie o arquivo /etc/pathmsg com um conteúdo similar a:

Só é permitido o upload de arquivo cujo nome contenha qualquer letra de A a Z, maiúscula ou minúscula,
algarismos de 0 a 9, além dos caracteres . - _
Os nomes dos arquivos não podem iniciar com . ou -

Verifique as permissões de /home/eriberto com os comandos:

#cd /home
#ls -l | grep eriberto

O usuário eriberto deverá ser o dono do diretório /home/eriberto. Se for o caso, ajuste isso com o comando:

#chown eriberto.eriberto /home/eriberto

Dê permissão 700 para o diretório caso somente o usuário deva ter acesso ao mesmo. Para torná-lo público (é o caso de sites que são administrados por ftp), utilize permissão 755. Exemplo:

#chmod 755 /home/eriberto

O wu-ftp é capaz de realizar ações como deletar arquivos ou renomeá-los. Mas você deve fornecer o comando ls e as libraries necessárias. Para tanto, crie os diretórios etc e lib dentro de /home/eriberto e setar as devidas permissões:

#cd /home/eriberto
#mkdir bin lib
#chmod 111 bin lib

Agora copie o comando ls para /home/eriberto/bin e as libraries necessárias para /home/eriberto/lib. Para descobrir onde está o comando ls e a suas libraries, execute os seguintes comandos:

which ls
ldd /bin/ls

Copie os arquivos:

#cp /bin/ls /home/eriberto/bin
#cp /lib/libtermcap.so.2 /home/eriberto/lib
#cp /lib/libc.so.6 /home/eriberto/lib
#cp /lib/ld-linux.so.2 /home/eriberto/lib

Pronto ! Se você fez tudo certo, logue por ftp. Deverá aparecer a mensagem "Access restrictions apply". Digitando o comando pwd, ele deverá mostrar que o diretório atual é o raiz ( / ).

Se você quiser ativar o recurso de descompactação de arquivos pelo servidor, a exemplo do mostrado no ultimo passo ., faça o mesmo com os comandos tar, gunzip e unzip.

Autor

João Eriberto Mota Filho
Horários baseados na GMT -3. Agora são 17:00.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.