Virtual Hosting com PureFTPd e MySQL



Documentos relacionados
Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

Você pode testar se está tudo OK, abrindo um navegador no Debian Linux e acessando qualquer site.

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

MSN-Proxy v0.7 no Debian 5 (Atualizado)

Instalando Lighttpd com PHP, MySQL, Virtual hosting, WebDAV, Autenticação e Userdir

Brincando de Backup com rsync.

Instalação Apache + MySQL + PHPMyAdmin CentOS

Tutorial Instalação e configuração do Wordpress

Administração de Usuários e Privilégios no Banco de Dados

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

1 # yum install -y mysql mysql-devel mysql-server php-mysql. Instalação do openssl (necessário para comunicação web segura) 1 # yum install -y openssl

INSTALAÇÃO OASIS + WAMP SERVER NO AMBIENTE WINDOWS

Trabalho de Sistema de Informações. Instalação e configuração aplicativo Ocomon

Manual comandos Básicos para instalar e desinstalar Firebird em Sistema operacional Linux

Passos Preliminares: Acessando a máquina virtual via ssh.

Instalação e Conguração do Xoops. Rogério Vinhal Nunes 26 de março de 2007

TUTORIAL PASSO A PASSO INSTALAÇÃO SERVIDOR DE SMS PARA MKAUTH

MySQL. Prof. César Melo. com a ajuda de vários

Instalando servidor Apache

Instalação e Configuração

Introdução ao Sistema. Características

Manual de Instalação. Instalação via apt-get. SIGA-ADM versão 12.06

Configuração de um servidor FTP. Campus Cachoeiro Curso Técnico em Informática

Aula 06 Servidor de Arquivos e Impressora (SaMBa)

Administração de redes Servidor FTP

Guia de instalação para ambiente de Desenvolvimento LINUX

Após salvar, execute o comando testparm e ele deverá exibir a mensagem Server role: ROLE_DOMAIN_PDC".

Autor: Hernandes Martins. Março de Zabbix 2.4 CentOS 7 Tutorial Instalação

Instalação de PlaySMS E Ferramentas SMS Server 3 Server Em Debian Antes de começar

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Brincando de Backup com rsync.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Projeto Integrador Programação para Internet

Manual de Instalação. Instalação via apt-get

Instalação do serviço de FTP com o Proftpd

Linux Network Servers

Fundamentos e Prática em Informática LINUX Gerenciamento de Usuários e Grupos

TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL

* Técnicas Avançadas. Desenvolvimento de SOFTWARES. Sistemas de Gerenciamento de Conteúdo com Joomla e Magento

Modelo Cliente/Servidor Por HIARLY ALVES

Instalando servidor Apache com MySQL e as linguagens ColdFusion e PHP. XAMPP (xampp-win installer.exe), veja aqui.

Compartilhando arquivos com o samba

SQL Server Ferramenta de administração. SQL Server Management Studio. 1º passo conectar ao banco de dados 2ª Query (consulta) usando SQL

Mini-Howto Compilando o Pure ftpd com suporte ao OpenLDAP

Telefonia IP MOT. Prática 1

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

FileZilla Server. O FileZilla Server é um ótimo servidor FTP, conta com diversas funções e fácil instalação e configuração.

Instalação do PHP no Linux

Guia de Instalação e Configuração do Noosfero

MySQL: Controle de Acesso

Faculdade SENAC Pelotas Curso Superior de Tecnologia em Redes de Computadores Sistemas de Informação Professor Eduardo Maroñas Monks MEDIA CORE

Hotspot com Ubuntu Server Bits

Recuperação e Publicação

Linux. - Comando básicos

TUTORIAL: MANTENDO O BANCO DE DADOS DE SEU SITE DENTRO DO DOMÍNIO DA USP USANDO O SSH!

#apt-get install make flex gcc gpp apache2 php5 php5-pgsql postgresql-8.4 libapache2-mod-php5 php5-gd php-net-socket postgres

Linux Networks Servers

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

EXERCÍCIOS PRÁTICOS. Banco de Dados

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

O que você precisa saber sobre FTP na certificação LPI nível 1

Manual de Instalação e Configuração do SQL Express

SiGE - Sistema de Gerência de Eventos

Linux Network Servers

Instalando o MySQL 5.6 no Windows

Gerência de Banco de Dados

MANUAL DE FTP. Instalando, Configurando e Utilizando FTP

CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

Trabalhando com MySQL: Uma Introdução

INTRODUÇÃO: 1 - Conectando na sua conta

Formador: Paulo Ramos IGRI13: Rui Bárcia Nº15. Windows 2008 Server. Módulo 16. Instalação e configuração

Lazarus pelo SVN Linux/Windows

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql

Manual de Instalação e Configuração MySQL

Estação Digital. Instalação do Gerenciador da Estação Digital

Projeto Amadeus. Guia de Instalação Linux

Redes Ponto a Ponto. Os drivers das placas de rede devem estar instalados.

PHP INTEGRAÇÃO COM MYSQL PARTE 2

JDBC Java Database Connectivity

LABORATÓRIO UNIDADES 1 REVISÃO LINUX E COMANDOS BÁSICOS ABRINDO A MÁQUINA VIRTUAL UBUNTU SERVER PELO VIRTUALBOX

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Redes de Computadores

MySQL para DBAs Oracle

Instalação do Pentaho BI Server no Ubuntu Server ou Superior com OpenJDK

Trabalho do Grupo Nº 3

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

A criação de utilizadores no MySQL pode passar pela utilização de dois comandos: - Create user; - Grant;

Iniciando o MySQL Query Brower

Instalação e configuração de Sistema de Informação. Sobre o Help Center Live

Instalando um pacote LAMP (Linux, Apache, MySQL, PHP) no Mandriva

Atividade Proposta da Disciplina: Laboratório de Rede de Computadores

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Instalando e configurando o IIS no Windows Server 2012 Depois do Windows server 2012 instalado, devemos adicionar IP estático a ele, vamos abrir o

Personal Home Page PHP. Prof. Luiz Claudio F. de Souza

GUIA INTEGRA SERVICES E STATUS MONITOR

Transcrição:

Virtual Hosting com PureFTPd e MySQL Autoria de Felippe de Meirelles Motta 14/05/2007 Última Atualização 15/06/2007 FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD Publico mais um bom artigo que atinge um bom nã vel de usuã rios, sempre tendo a necessidade de construir um servidor FTP para empresa, e seus clientes. Conta com a instalaã à o de um utilitã rio web para administraã à o deste servidor web, tanto para o banco de dados, quanto para os usuã rios de FTP. Este documento descreve como fazer para instalar um servidor PureFTPd que usa usuã rios virtuais de um banco de dados MySQL  ao invã s de usuã rios reais do sistema.â Isto à  muitoâ maisâ flexã velâ eâ permiteâ terâ milharesâ deâ usuã riosâ FTP noâ mesmoâ servidor.â Alà mâ disso,â mostrareiâ oâ usoâ deâ quotaâ eâ limites de upload/downloadâ comâ estaâ instalaã à o.â As senhasâ serã oâ armazenadasâ e encriptadasâ comoâ MD5 noâ banco Este artigo foi originalmente escrito para utilizaã à o em um servidor Debian, portanto, adaptei o mesmo de linguagem simples para utilizaã à o no FreeBSD. Para a administraã à o do banco de dados MySQL voc㪠pode usar algumas ferramentas baseadas na web como phpmyadmin, no qual serã tambã m instalado neste artigo. phpmyadmin à uma interface grã fica confortã vel noâ qualâ substitueâ aâ necessidadeâ deâ usoâ dasâ linhasâ deâ comandos. Este tutorial à baseado em FreeBSD 6.2-STABLE. Este artigoâ à  umâ guiaâ prã tica,â nã oâ cobrindoâ osâ fundosâ teã³ricos.â Este artigo aborda apenas uma das possib se montar este ambiente, visto que serã a mais simples possã vel. 1 Nota preliminar Neste tutorial eu uso o hostname servidor.exemplo.com.br com o endereã o IP 192.168.0.100. Estas configuraã ões sã o modificadas por vocãª, entã o voc㪠tem que mudar para o apropriado. 2 Instalar MySQL e phpmyadmin Isto pode ser instalado facilmente pelo ports: # cd /usr/ports/databases/mysql51-server ; make install clean # rehashâ && echoâ 'mysql_enable="yes"â >> /etc/rc.conf # /usr/local/etc/rc.d/mysql-server start Definindo a senha de root do MySQL # mysqladminâ -uâ rootâ passwordâ SUA_SENHA Vamos preparar o ambiente para instalaã à o do phpmyadmin, ou seja, instalaremos agora o Apache + PHP. # cd /usr/ports/www/apache20 ; make install clean # cd /usr/ports/lang/php5 ; make install clean (Marque a opã à o APACHE, e desmarque a opã à o IPV6) Adicione as seguintes linhas no seu /usr/local/etc/apache2/httpd.conf AddType application/x-httpd-php.php AddType application/x-httpd-php-source.phps E configure a diretiva DirectoryIndex, adicionando index.php ao final da linha. Lembre-se de configurar as diretivas ServerName e Listen para seu servidor. # echo 'apache2_enable="yes"' >> /etc/rc.conf # /usr/local/etc/rc.d/apache2.sh start Finalmente instalando o phpmyadmin.

# cd /usr/ports/databases/phpmyadmin ; make install clean (Nà o precisa marcar/desmarcar quaisquer opã ões) Verifique se os dois subiram com o seguinte comando: # sockstat -4l grep -e httpd -e mysql 3 Instalar PureFTPd comâ suporte MySQL # cd /usr/ports/ftp/pure-ftpd # make config (Selecione MySQL e deixe as demais) # make install clean # echo 'pureftpd_enable="yes"' >> /etc/rc.conf Entà o nã³s criamos um grupo FTP (grupoftp) e usuã rio (usuarioftp) que serã onde todos nossos usuã rios virtuais serã o mapeados. # pw groupadd grupoftp -g 1002 # pw useradd -n usuarioftp -c "Usuarios FTP" -d /dev/null -g grupoftp -s /sbin/nologin 4 Criar a database MySQL para o Pure-FTPd Agora nã³s criamos uma database chamado pureftpd e um usuã rio MySQL chamado pureftpd no qual o Pure-FTPd usarã depois para conectar em sua database: # mysql -u root -p mysql> CREATE DATABASE pureftpd; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pftp'@'localhost' IDENTIFIED BY 'pftpsenha'; mysql> FLUSH PRIVILEGES; Modifique 'senha' para a senha desejada para estes usuã rios, no qual deverã ser configurado posteriormente no Pure- FTPd. mysql> USE pureftpd; mysql> CREATE TABLE users ( User varchar(16) NOT NULL default '', status enum('0','1') NOT NULL default '0', Password varchar(64) NOT NULL default '', Uid varchar(11) NOT NULL default '-1', Gid varchar(11) NOT NULL default '-1', Dir varchar(128) NOT NULL default '', ULBandwidth smallint(5) NOT NULL default '0', DLBandwidth smallint(5) NOT NULL default '0', comment tinytext NOT NULL, ipaccess varchar(15) NOT NULL default '*', QuotaSize smallint(5) NOT NULL default '0', QuotaFiles int(11) NOT NULL default 0, PRIMARY KEY (User), UNIQUE KEY User (User) ) TYPE=MyISAM; mysql> quit; (Estou assumindo que o hostname de seu servidor ftp seja servidor.exemplo.com.br) voc㪠pode acessar phpmyadmin sob http://servidor.exemplo.com.br/phpmyadmin/ (voc㪠pode tambã m usar o endereã o IP ao invã s do hostname) em um navegador e logar como usuã rio pureftpd. Entà o voc㪠pode visualizar a database. Depois voc㪠pode usar o phpmyadmin para administrar seu servidor Pure-FTPd. 5 Configurando PureFTPd # cp /usr/local/etc/pureftpd-mysql.conf.sampleâ /usr/local/etc/pureftpd-mysql.conf # eeâ /usr/local/etc/pureftpd-mysql.conf

Socket /var/run/mysqld/mysqld.sock MYSQLServer localhost MYSQLPort 3306 MYSQLUser pftp MYSQLPassword pftpsenha MYSQLDatabase pureftpd MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR Esteja certo que voc㪠mudou o campo 'senha' com a senha real do MySQL do seu usuã rio pureftpd na linha MYSQLPassword! Por favor note que nã³s usamos md5 como mã todoâ emâ MYSQLCrypt, noâ qualâ nã³sâ iremosâ armazenarâ asâ senhasâ deâ usuã riosâ comoâ umaâ stringâ MD5 naâ database  seguranã aâ doâ queâ usarâ senhasâ emâ textosâ simples. MaxClientsNumber - Número de clientes simultaneos; MaxClientsPerIP - Número mã ximo de clientes por IP; VerboseLog - Ligar o modo debug para os comandos de FTP dos usuã rios; MaxIdleTime - Tempo mã ximo de IDLE que o usuã rio terã antes de ser desconectado; MySQLConfigFile - Define o arquivo de configuraã à o do MySQL; LimitRecursion files sub-dirs - Aqui serã definido quantos arquivos e sub-diretã³rios poderã ser mostrado para os clientes (ex: LimitRecursion 2000 8 - serã o mostrados 2000 arquivos e atã 8 sub-diretã³rios) ChrootEveryone - Enjaular por padrã o os usuã rios FTP; CreateHomeDir - Criar o home do usuã rio automaticamente; 6 Populando o banco de dados e testando Para popular a database voc㪠pode usar a shell MySQL: # mysql -u root -p mysql> USE pureftpd; Agora nã³s criamos o usuã rio usuariofug com o Status 1 (no qual define-o como uma conta ftp ativa), a senha secreta (na qual serã armazenada e encriptada usando funã à o MD5 do MySQL), o UID e GID 2001 (use o userid e groupid do usuã rio/grupo que voc㪠criou no fim do passo 2), o diretã³rio home /home/www.exemplo.com.br, um controle de upload e download de 100KB/sec, e uma quota de 50 MB: mysql> INSERT INTO `users` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('usuariofug', '1', MD5('senhasecreta'), '2001', '2001', '/home/www.dominio.com.br', '100', '100', '', '*', '50', '0'); mysql> quit; Agora abraâ seuâ programaâ clienteâ deâ FTP sobâ suaâ à reaâ deâ trabalhoâ (algo como WS_FTP ou SmartFTP se vocã sob um sistema Windows ou gftp sob um Desktop Linux) eâ tenteâ conectarse.â Como hostnameâ vocãªâ usaâ servidor.dominio.com.brâ (ou endereã o IP do servidor),â oâ usernameâ serã  usuariofug,â eâ aâ senhaâ à  senhasecreta. Agora se voc㪠rodar: # ls -l /home

voc㪠poderã ver que o diretã³rio /home/www.dominio.com.br (diretã³rio home do usuariofug) foi criado automaticamente, e estã agregado por usuarioftp e grupoftp (o usuario/grupo que nã³s criamos no fim do passo 2) como donos. servidor:# ls -l /home total 8 drwxr-xr-x 2 administrator adminisdrator 4096 2007-04-23 14:25 administrador drwxr-xr-x 2 ftpuser ftpgroup 4096 2007-04-23 17:26 www.dominio.com.br 7 Administraà à o do Banco de dados Para muitas pessoas isto se torna fã cil, caso eles tenham um front-end para o MySQL; neste caso voc㪠pode usar o phpmyadmin (neste exemplo sob http://servidor.dominio.com.br/phpmyadmin/) para administrar o banco de dados do pureftpd. Sempre que voc㪠queira criar um novo uusã rio, voc㪠tem que criar uma entrada na tabela ftpd, assimâ comoâ ireiâ explicarâ os campos daâ tabelaâ abaixo: User: Seu_Usuario_Aqui (ex. usuariofug). Status: 0 ou 1. 0 menciona que esta conta estã inativa, portanto, o usuã rio nã o pode logar. Password: A senha do usuã rio virtual. Confira seâ voc㪠estã utilizando a funã à o MD5 do MySQL para salvar a senha encriptada como uma string MD5. UID: O userid do usuã rio ftp que voc㪠criou no fim do passo 2 (ex: 2001) GID: O groupid do grupo ftp que voc㪠criou no fim do passo 2 (ex: 2001). Dir: Diretório home do usuã rio virtual do PureFTPd (ex: /home/www.dominio.com.br). Se isto nã o existe, isso serã criado quando o novo usuã rio logar pela primeira vez via FTP. O usuã rio virtual serã enjaulado dentro de seu diretã³rio home, ou seja, ele nã o poderã acessar outros diretã³rios fora deste diretã³rio. ULBandwidth: Controle de Upload do usuã rio virtual em KB/Sec, ou seja, Kilobytes por segundo. Use 0 para que seja ilimitado. DLBandwidth: Controle de Download doâ usuã rioâ virtualâ emâ KB/sec, ouâ seja,â kilobytes por segundo. Use 0 para que s ilimitado. Comment: Você podeâ inserirâ qualquerâ comentã rioâ aquiâ (ex: para sua administraã à o interna).â Normalmente vocãªâ deixaâ esteâ campoâ limpo. Ipaccess: Insira osâ endereã osâ IPs aquiâ queâ serã oâ permitidosâ paraâ conectarâ nestaâ contaâ FTP. '*' defineâ eã oâ IP permitidoâ paraâ conectar. QuotaSize: Espaà oâ deâ armazenamentoâ emâ MB (nã o KB, como em ULBandwidth edlbandwidth)â oâ usuã rioâ virtualâ à  permitidoâ paraâ usoâ sobâ esteâ servidorâ FTP. Defina 0 comoâ ilimitado. QuotaFiles: Define nãºmeroâ totalâ deâ arquivosâ queâ esteâ usuã rioâ virtualâ poderã  salvarâ noâ servidorâ FTP. De tado. 8 FTP Anà nimo Se voc㪠quer criar um usuã rio anã nimo de ftp (uma conta que qualquer pessoa poderã logar-se sem uma senha), voc㪠pode usar algo como isto: Primeiro cria um usuã rio ftp (com o homedir /home/ftp) e grupo ftp: # pw groupadd ftp # pw useradd -s /bin/false -d /home/ftp -m -c "anonymous ftp" -g ftp ftp Obs:: por padrã o o pureftpd no FreeBSD jã vem com usuã rio anã nimo permitido, na diretiva: NoAnonymous, modifique para YES para NÃO aceitar logins anã nimos. Reinicie PureFTPd: # /usr/local/etc/rc.d/pure-ftpd restart Entà o nã³s criamos o diretã³rio /home/ftp/incoming no qual irã permitir usuã rio anã nimos para enviar arquivos. Nós iremos ter o diretã³rio /home/ftp/incoming com permissãµes de 311 para que os usuã rios possam fazer upload, nã o vendo ou puxando quaisquer arquivos neste diretã³rio. O diretã³rio /home/ftpâ irã  terâ permissãµesâ deâ 555 noâ qualâ permiteâ visualizarâ eâ puxarâ osâ arquivos: # cd /home/ftp # mkdir incoming # chown ftp:nogroup incoming/

# chmod 311 incoming/ # cd../ # chmod 555 ftp/ Agora usuã rios anã nimos podem logar, e eles podem fazer download dos arquivos em /home/ftp, mas uploads sã o limitados para /home/ftp/incoming (uma vez que o arquivo seja enviado para /home/ftp/incoming, ele nã o poderã ser lido nem puxado, o administrador do servidor terã de movãª-lo para /home/ftp primeiramente para disponibilizar para isto). 9 Links de referãªncia Artigo Original: http://www.howtoforge.com/debian_etch_virtual_hosting_pureftpd_mysql_quota PureFTPd: http://www.pureftpd.org MySQL: http://www.mysql.com phpmyadmin: http://www.phpmyadmin.net Traduzido eâ modificadoâ por Felippe de Meirelles Motta <lippe at fug dot com dot br>