						<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml">
			    <meta property="og:title" content="" />
				<meta property="og:type" content="blog" />
				<meta property="og:url" content="http://www.hugobarros.com.br/" />
				<meta property="og:image" content="http://www.hugobarros.com.br/favicon.ico" />
				<meta property="fb:app_id" content="161998340519180" />
				<meta property="og:description" content="Blog com dicas e tutoriais." />
	<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Livre, por Hugo Barros &#187; virtual hosting</title>
	<atom:link href="http://www.hugobarros.com.br/index.php/tag/virtual-hosting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hugobarros.com.br</link>
	<description>... compartilhando idéias no mundo &#34;open&#34;</description>
	<lastBuildDate>Sat, 29 Oct 2011 17:31:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Virtual Hosting com PureFTPd e MySQL (Incluindo gerenciamento de quota e largura de banda) no Ubuntu 9.04</title>
		<link>http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/</link>
		<comments>http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 19:10:58 +0000</pubDate>
		<dc:creator>Hugo Barros</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pure ftpd]]></category>
		<category><![CDATA[servidor ftp]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[virtual hosting]]></category>

		<guid isPermaLink="false">http://hugobarros.com.br/?p=204</guid>
		<description><![CDATA[Este post descreve como instalar um servidor PureFTPd que usa usuários virtuais de um banco de dados MySQL, em vez de os usuários do sistema real. Isso é muito mais flexível e permite ter milhares de usuários FTP em uma &#8230; <a href="http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-243" title="mysql+pureftpd" src="http://hugobarros.com.br/wp-content/uploads/mysql+pureftpd-300x150.jpg" alt="mysql+pureftpd" width="300" height="150" /></p>
<p style="text-align: justify;">Este post descreve como instalar um servidor PureFTPd que usa usuários virtuais de um banco de dados MySQL, em vez de os usuários do sistema real. Isso é muito mais flexível e permite ter milhares de usuários FTP em uma única máquina. Além de que eu te mostrarei o uso de quotas e de upload / download limites de largura de banda com esta configuração. As senhas serão armazenadas e encriptadas como MD5 no banco de dados.</p>
<p style="text-align: justify;"><span id="more-204"></span></p>
<p style="text-align: justify;">Vamos ao que interessa:</p>
<p style="text-align: justify;">Primeiro devemos instalar o MySQL e o phpMyAdmin, isso pode ser feito com apenas um comando:</p>
<p style="text-align: justify;"><code>sudo aptitude install mysql-server mysql-client phpmyadmin apache2</code></p>
<p>Serão feitas as seguintes perguntas:</p>
<p><span>New password for the MySQL &#8220;root&#8221; user:</span> <span>&lt;&#8211; suasenha de root</span><br />
<span>Repeat password for the MySQL &#8220;root&#8221; user:</span> <span>&lt;&#8211; </span><span>suasenha de root</span><br />
<span>Web server to reconfigure automatically:</span> <span>&lt;&#8211; apache2</span><br />
<span>Configure database for phpmyadmin with dbconfig-common?</span> <span>&lt;&#8211; No</span></p>
<p>Instale PureFTPd com suporte ao MySQL :</p>
<p><code>aptitude install pure-ftpd-mysql</code></p>
<p>Então vamos criar um grupo ftp (<span>ftpgroup</span>) e usuário (<span>ftpgroup</span>) que todos os nossos usuários virtuais serão mapeados para eles. Substituir o grupo e userid 2001 com um número que é livre no seu sistema:</p>
<p><code>groupadd -g 2001 ftpgroup<br />
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser</code></p>
<p>Agora nós criamos um banco de dados chamado pureftpd e um usuário MySQL chamado pureftpd no qual o PureFTPd irá usar mais tarde para se conectar ao banco de dados pureftpd:</p>
<p><code>mysql -u root -p</code></p>
<p><code>CREATE DATABASE pureftpd;<br />
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';<br />
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';<br />
FLUSH PRIVILEGES;</code></p>
<p>Substitua a seqüência ftpdpass com qualquer senha que você deseja usar para o usuário do MySQL pureftpd. Ainda sobre o shell do MySQL, criamos a tabela de banco de dados que precisamos (sim, existe apenas uma tabela!):<br />
<code><br />
</code><code>USE pureftpd;</code></p>
<p><code>CREATE TABLE ftpd (<br />
User varchar(16) NOT NULL default '',<br />
status enum('0','1') NOT NULL default '0',<br />
Password varchar(64) NOT NULL default '',<br />
Uid varchar(11) NOT NULL default '-1',<br />
Gid varchar(11) NOT NULL default '-1',<br />
Dir varchar(128) NOT NULL default '',<br />
ULBandwidth smallint(5) NOT NULL default '0',<br />
DLBandwidth smallint(5) NOT NULL default '0',<br />
comment tinytext NOT NULL,<br />
ipaccess varchar(15) NOT NULL default '*',<br />
QuotaSize smallint(5) NOT NULL default '0',<br />
QuotaFiles int(11) NOT NULL default 0,<br />
PRIMARY KEY (User),<br />
UNIQUE KEY User (User)<br />
) TYPE=MyISAM;</code></p>
<p><code>quit;</code></p>
<p>você pode acessar phpMyAdmin sob http://localhost/phpmyadmin/ (você também pode usar o endereço IP em vez de localhost) em um navegador e faça login como o usuário pureftpd. Então você pode visualizar o banco de dados. Mais tarde você pode usar o phpMyAdmin para administrar seu servidor PureFTPd.</p>
<h2><strong>Configurando o PureFtpd</strong></h2>
<p>Edite /etc/pure-ftpd/db/mysql.conf. Deve fazer assim:</p>
<p><code>cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig<br />
cat /dev/null &gt; /etc/pure-ftpd/db/mysql.conf<br />
vi /etc/pure-ftpd/db/mysql.conf</code></p>
<pre><code>MYSQLSocket      /var/run/mysqld/mysqld.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
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 ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

</code></pre>
<div id="result_box" dir="ltr">Certifique-se de substituir o string ftpdpass com a senha real para o usuário do MySQL pureftpd MYSQLPassword na linha! Por favor note que nós usamos md5 MYSQLCrypt como método, o que significa que irá armazenar as senhas dos usuários como uma string MD5 no banco de dados que é muito mais seguro do que usar senhas em texto simples!</div>
<div dir="ltr">
<div id="result_box" dir="ltr">Em seguida, crie o arquivo /etc/pure-ftpd/conf/ChrootEveryone que simplesmente contém a seqüência yes:</div>
<p><code>echo "yes" &gt; /etc/pure-ftpd/conf/ChrootEveryone</code></p>
<p>Isso fará com que PureFTPd mantenha cada usuário virtual em seu diretório pessoal para que ele não será capaz de percorrer os diretórios e arquivos fora do seu diretório home.</p>
<p>Também criar o arquivo /etc /pure-ftpd/conf/ CreateHomeDir que novamente simplesmente contém a seqüência yes:</p>
<p><code>echo "yes" &gt; /etc/pure-ftpd/conf/CreateHomeDir</code></p>
<div id="result_box" dir="ltr">Isso fará com que PureFTPd crie um diretório home do usuário quando o usuário fizer login no diretório home e ainda não existir.</p>
<p>Finalmente criar o arquivo /etc/pure-ftpd/conf/DontResolve que novamente simplesmente contém a seqüência yes:</p></div>
<div dir="ltr"><code>echo "yes" &gt; /etc/pure-ftpd/conf/DontResolve</code></div>
<div dir="ltr">Isto fará com que PureFTPd não olhe os nomes de host que pode acelerar significativamente as ligações e reduzir o uso da largura de banda.</p>
<p>Depois, reinicie o PureFTPd:</p></div>
<div dir="ltr"><code>/etc/init.d/pure-ftpd-mysql restart</code></div>
<div dir="ltr"><strong>Preencha o banco e Teste:</strong></p>
<p><strong>Para preencher os dados você pode usar o shell do MySQL:</strong></div>
<div dir="ltr">
<p><code>mysql -u root -p</code></p>
<p><code>USE pureftpd;</code></p>
<p>Agora vamos criar o usuário <span>exampleuser</span> com o status  1 (o que significa que sua conta ftp está ativa), a senha secreta (que será armazenada criptografada usando função MD5 do MySQL), o UID e GID 2001 (use o userid e groupid do usuário/grupo criado no início), o diretório home /home/exemplo, uma banda de upload e download de 100 KB / s, e uma quota de 50 MB:</p>
<p>I<code>NSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');</code></p>
<p><code>quit;</code></p>
<p>Agora abra seu programa cliente de FTP em sua estação de trabalho (algo como FileZilla, WS_FTP, SmartFTP ou gFTP) e tente conectar. Como hostname você usa localhost (ou o endereço IP do sistema), o usuário é <span>exampleuser</span>, e a senha é secreta.</p>
<p>Se você é capaz de se conectar &#8211; parabéns! Se não, alguma coisa deu errado.</p>
<p>Referências: http://www.howtoforge.com/virtual-hosting-with-pureftpd-and-mysql-incl-quota-and-bandwidth-management-on-ubuntu-9.04-p2</p></div>
</div>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/&via=_hugo&text=Virtual Hosting com PureFTPd e MySQL (Incluindo gerenciamento de quota e largura de banda) no Ubuntu 9.04&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/&via=_hugo&text=Virtual Hosting com PureFTPd e MySQL (Incluindo gerenciamento de quota e largura de banda) no Ubuntu 9.04&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><br /><p><fb:like href='http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/'></fb:like></p>]]></content:encoded>
			<wfw:commentRss>http://www.hugobarros.com.br/index.php/2009/11/virtual-hosting-com-pureftpd-e-mysql-incluindo-gerenciamento-de-quota-e-largura-de-banda-no-ubuntu-9-04/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

