O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas.
Veja o material atualizado diariamente do BR-Linux em http://br-linux.org
Habilitando acesso remoto a seu servidor com segurança
Publicado em 13 de agosto de 2003
O Jair Valmor Basso Júnior (jair@sega-brasil.com.br) mandou um artigo sobre o uso do chroot para garantir que usuários não possam sair do seu diretório pessoal ao acessar servidores usando ftp, telnet ou ssh. Veja abaixo as dicas dele: Habilitando acesso remoto a seu servidor com segurança
Mas como fazer para manter o usuário somente em seu diretório, não permitindo Vamos imaginar o seguinte cenário: Manézinho administra o contéudo do site zyx.com.br, e além de acesso via Inicialmente vamos configurar o acesso FTP, que é bem mais simples :) Vou demonstrar como "prender" o usuário a seu diretório utilizando ambos 1) ProFTPD (http://www.proftpd.org/) a) Baixamos o código fonte do site Agora vamos alterar o arquivo /usr/local/proftpd/etc/proftpd.conf DefaultRoot ~ !ftpnormal Agora salve o arquivo e reinicie o serviço. Essa linha irá fazer com que É claro que se você já tiver o ProFTPD instalado em seu servidor, não
O WU-FTPD é um servidor FTP muito usado no mundo Unix. Pra prender o usuário a) Baixamos o código fonte do site (testei com a versão 2.6.2); Deve-se agora configurar o wu-ftpd para que seja chamado pelo inetd ou Para que o chroot funciona perfeitamente, precisamos criar os diretórios Agora editemos o arquivo "/etc/ftpaccess" e adicionamos a linha: guestgroup chumbrega A linha acima indica que todos os usuários pertencentes ao grupo "chumbrega" Agora é só alterar o arquivo "/etc/group", adicionar um novo grupo chamado Simples, não? -------------------------------- Se o seu usuário precisa de acesso com shell (via telnet, ssh, etc), é Dinâmico versus Estático
Vamos assumir que os arquivos que o usuário tem permissão de escrita estejam Inicialmente vamos alterar alguns campos do usuário mane no arquivo /etc/passwd, Note que mudamos o campo home e o campo shell. Configuramos o $HOME do Agora dentro do /data/users/mane, precisamos criar a estrutura de diretórios Vamos criar a estrutura de diretórios: cd /data/users/mane Precisamos copiar os programas que os usuários poderá executar. Para facilitar Copiando o "ls" por exemplo: ldd /bin/ls cp /bin/ls bin E agora copiamos o "vi" ldd /usr/bin/vi cp /usr/bin/vi usr/bin As libs libc.so.6 e ld-linux.so.2 já existem, pois são dependências do "ls", Você vai ter que fazer isso com cada programa que o usuário tiver acesso: mkdir, rm, cat, more, less, e assim vai... Não esqueça de copiar também o bash, e de criar um link dele pro sh: ln -s bash sh Isso é importante, ou seu usuário não conseguirá se logar. Uma outra coisa importante, é copiar a biblioteca "/lib/libnss_compat.so.2", Dentro do etc só precisamos de dois arquivos: passwd e group, com o seguinte passwd: mane:x:1011:100:,,,:/:/usr/local/bin/presilha group: root:x:0:root
É um programa simples, feito em linguagem "C", a listagem segue abaixo: //------------- Corte aqui --------------// #include int main(void) { int u_uid; u_uid = getuid(); chroot(pwd->pw_dir); } //------------- Corte aqui -------------// Esse programa nada mais faz do que pegar o UID e HOME do usuário Para compilá-lo: gcc presilha.c -o presilha É importante setar o bit de setuid, pois somente root pode executar Agora o copiamos para /usr/local/bin: cp presilha /usr/local/bin Agora faça um teste se logando no servidor com o usuário mane. Autor: Jair Valmor Basso Júnior (jair@sega-brasil.com.br) Postado por brain em agosto 13, 2003 11:49 AM Comentários para "Habilitando acesso remoto a seu servidor com segurança"
» Postado por: Cristiano em agosto 13, 2003 05:13 PM, 200.232.158:
» Postado por: Rafael Goulart em agosto 14, 2003 08:37 AM, 200.217.64.:
» Postado por: Jair em agosto 25, 2003 12:02 PM, 200.215.183:
» Postado por: Edgard em agosto 30, 2003 12:30 AM, 200.214.83.:
» Postado por: Alessandro em maio 11, 2004 08:06 PM, 200.173.108:
» Postado por: online poker em agosto 15, 2004 05:17 PM, 210.177.253:
Antes de comentar...
- Preserve a qualidade desta discussão - Leia os Termos de Uso. - Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum. - Mantenha o foco nos argumentos e no assunto - Não faça ataques pessoais. - Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro - Não seja um e-mala ;-) ![]() Envie seu comentário
|