User Tools

Site Tools


pousada

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pousada [2011/10/14 05:39] (current)
cledjan criada
Line 1: Line 1:
 +====== 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 ([[Certificadossl|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 =====
 +http://​www.vivaolinux.com.br/​etc/​proftpd.conf-robertors
 +
 +http://​www.devin.com.br/​shell_script/​
 +
 +http://​thobias.org/​doc/​shell_bd.html
 +
 +http://​ubuntuforum-br.org/​index.php?​topic=69956.0
 +
 +http://​www.hardware.com.br/​comunidade/​useradd-senha/​238143/​
 +
 +http://​apostilas.fok.com.br/​manual-do-php/​function.crypt.php
 +
 +http://​dev.mysql.com/​doc/​refman/​4.1/​pt/​grant.html
 +
 +http://​www.brunorusso.eti.br/​dicas/​mysql/​comando-para-criar-usuario-no-mysql
 +
 +http://​www.hospedia.com.br/​artigos/​7/​mysql/​1/​mysql_basico_-_o_comando_create_table_-_criando_tabelas.html
 +
 +http://​social.msdn.microsoft.com/​Forums/​pt-BR/​vsvbasicpt/​thread/​1d4f029c-c9a9-4596-b645-26fd9e53d356/​
 +
 +http://​servidordebian.wikidot.com/​squeeze:​internet-ftp-proftpd-tls-ssl
 +
 +http://​servidordebian.wikidot.com/​squeeze:​intranet-ssl-cert-self-signed
  
pousada.txt · Last modified: 2011/10/14 05:39 by cledjan