User Tools

Site Tools


pousada

Criação e Configuração do servidor www.pousada.uapi.edu.br

Ambiente

Sistema Operacional: Debian lenny Serviços: mysql, apache, php, quota, proftpd, libcrypt-passwdmd5-perl

Configurar Quota

Inserção de usrquota na partição desejada no arquivo /etc/fstab :

 Ex: UUID=14dede4b-9f86-43a4-a338-56ee6728eae9 /               ext4    errors=remount-ro,usrquota 0       1

Configuração ProFTPD

 root@server:~#cd /etc/proftpd/
 root@server:~#nano proftpd.conf 

Para delimitar o acesso a home:

 DefaultRoot    ~

Não requerer que os usuários tenham um shell valido:

 RequireValidShell off

root@server:~#/etc/init.d/proftpd restart

Acesso seguro FTPS (TLS/SSL)

Na configuração do ProFTPD, o suporte TLS precisa ser ativado. A mesma é feita em duas fases: primeiro deve-se configurar o módulo TLS no arquivo de configuração /etc/proftpd/tls.conf e em seguida incluir esta configuração no arquivo de configuração principal /etc/proftpd/proftpd.conf.

A configuração do módulo TLS é feita no ficheiro /etc/proftpd/tls.conf:

 # [...]
 
 <IfModule mod_tls.c>
 TLSEngine                               on
 TLSLog                                  /var/log/proftpd/tls.log
 TLSProtocol                             SSLv23
 
 # [...]
 
 # Server SSL certificate. # [...]
 # [...]
 TLSRSACertificateFile                    /etc/ssl/certs/server.crt
 TLSRSACertificateKeyFile                 /etc/ssl/private/server.key.insecure
 
 # [...]
 
 # Are clients required to use FTP over TLS when talking to this server?
 #
 TLSRequired                             on
 
 # [...]

Os certificados usados em TLSRSACertificateFile e TLSRSACertificateKeyFile já devem estar gerados (saiba mais). A opção TLSRequired on obriga a que os clientes ftp usem o protocolo TLS, caso contrário não aceitará ligações. Se esta opção for desligada (TLSRequired off), o servidor aceitará ligações seguras e não seguras.

Em seguida esta configuração deverá ser incluída no arquivo de configuração principal /etc/proftpd/proftpd.conf:

 # [...]
 
 #
 # This is used for FTPS connections
 #
 Include /etc/proftpd/tls.conf
 
 # [...]
 root@server:~# /etc/init.d/proftpd restart
 root@server:~# reboot

Biblioteca libcrypt-passwdmd5-perl

Deve ser usada uma biblioteca de encriptação para ser utilizada no comando “useradd”, parâmetro de senha, no script de criação de usuários mostrado mais a frente.

 # apt-get install libcrypt-passwdmd5-perl

Crie um arquivo, senha.pl, com as informações abaixo na pasta /usr/bin :

 #nano /etc/bin/senha.pl
 #!/usr/bin/perl  
 
 use Crypt::PasswdMD5;
 
 # Criptografa a senha do usuário
 
 @itoa64=split(//,"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
 
 srand();
 $salt="";
 for($i=0;$i<8;$i++){
 	$salt .= "$itoa64[rand(64)]";
 }
 $password=$ARGV[0];
 $md5_crypted_passwd = unix_md5_crypt($password,$salt);
 
 print("$md5_crypted_passwd");

Adicione poder de execução

 #chmod +x /usr/bin/senha.pl

Criando Usuários

Dois arquivos de texto com informações dos clientes devem ser criados na pasta /var/www, um contendo a listagem de matricula e cpf (separados por vírgula) (uma linha, um aluno) dos alunos que terão contas criadas (usuarios.txt) e outro contendo apenas as matrículas (usuariosquota.txt), excluindo o primeiro da lista usuarios.txt.

Ex: usuarios.txt

 07L02114,87697785315
 07L02122,00386012300
 07L02360,01440126348

Ex:usuariosquota.txt

 07L02122
 07L02360

Gerando Scripts

Deve-se criar o script, cria_usu.sh, que cria todas as contas dos usuários na máquina, suas homes e também os bancos de dados associado as contas respectivas, tendo como arquivo de entrada usuarios.txt.

Script cria_usu.sh:

 #!/bin/sh
 
 while read linha
 do
 login=`echo $linha | cut -d, -f1` 
 senha=`echo $linha | cut -d, -f2` 
 echo "Lendo usuario login:$login senha:$senha"
 
 #cria home do usuario
 mkdir /var/www/$login
 echo "Home:/var/www/$login criada."
 
 #cria usuario
 useradd -d /var/www/$login -s /bin/false -p $(senha.pl $senha) $login
 echo "Usuario login:$login senha:$senha criado."
 
 chown $login:$login /var/www/$login
 chmod 777 /var/www/$login
 
 
 #cria banco do usuario
 mysql -uroot -psenhadorootbanco -e "create database $login;"
 #cria usuario do banco
 mysql -uroot -psenhadorootbanco -e "GRANT ALL PRIVILEGES ON $login.* TO '$login'@'%' IDENTIFIED BY '$senha'"
 echo "Banco $login criado. Acesso por usuario:$login e senha:$senha."
 echo "--------"
 
 done < usuarios.txt

Após criado o arquivo, deve-se dar permissão de execução:

 #chmod +x /var/www/cria_usu.sh

Em seguida, executa-se o script:

 #./var/www/cria_usu.sh
 

Após todos os usuários terem sido criados, deve-se criar o script que definirá a quota de cada um. Mas antes, deve-se configurar um usuário manualmente para servir de base para o script. Então para o primeiro usuário da lista usuarios.txt:

 #edquota -u usuário     -> colocar tamanho de quota nos primeiros soft hard em kbytes mesmo valor

Ex: Quota de 40000kb

 Filesystem           blocks       soft       hard     inodes     soft     hard
 /dev/disk/by-uuid/8fc82034-37bd-407f-b291-cb86acc3afab     16    40000    40000       4        0        0

O script para definir as quotas para todos os usuários, quota.sh, baseado no arquivo de entrada usuarioquota.txt, deve ser criado em /var/www e conter o seguinte:

Script quota.sh:

 #!/bin/bash
 
 usuarios=usuariosquota.txt
 
 linhas=`cat "$usuarios"`
 
 for linha in $linhas; do
    edquota -p 07L02114 $linha
 done

Após criado o arquivo, deve-se dar permissão de execução:

 #chmod +x /var/www/quota.sh

Em seguida, executa-se o script:

 #./var/www/quota.sh

Neste ponto todos os usuários estão cadastrados com acesso apenas a sua home, sem shell, com acesso ftps e a um banco de dados.

FIM

Fontes

pousada.txt · Last modified: 2011/10/14 05:39 by cledjan