Programando e Instalando um servidor Samba com sistema PROFTP  no terminal Linux
Autor: Allan Bernardes | Publicado: 2012-06-14T16:07:00-07:00


Ei pessoal vamos começar instalando o PROFTPD



Não é difícil instalar o Proftpd, basta procurar pelo pacote "proftpd" na distribuição usada, como em:

# apt-get install proftpd
# yum install proftpd
ou:
# urpmi proftpd

No
 Debian, durante a instalação do pacote do Proftpd, geralmente são 
feitas algumas perguntas. A primeira é se você deseja deixar o servidor 
FTP ativo em modo standalone ou em modo inetd.

O standalone
 é mais seguro e mais rápido, enquanto o inetd faz com que ele fique 
ativo apenas quando acessado, economizando cerca de 400 KB de memória 
RAM (que fazem pouca diferença hoje em dia). O modo standalone é a opção
 recomendada.

Você terá também a opção de ativar o acesso anônimo,
 que permite acessos anônimos (somente leitura) na pasta "/home/ftp", 
onde você pode disponibilizar alguns arquivos para acesso público. Nesse
 caso, os usuários fazem login no servidor usando a conta "anonymous"
 e um endereço de e-mail como senha. Caso prefira desativar o acesso 
anônimo, apenas usuários com login válido na máquina poderão acessar o 
FTP.

Depois
 de concluída a instalação, o servidor fica ativo por default, é 
inicializado automaticamente durante o boot e pode ser controlado 
manualmente através do serviço "proftpd", como em "/etc/init.d/proftpd start".

A configuração manual do servidor FTP é feita através do arquivo "/etc/proftpd/proftpd.conf".
 Um arquivo configurado no CentOS pode ser usado no Mandriva (por 
exemplo), ou vice-versa; afinal, independentemente de estar usando o 
Debian, Fedora ou o Mandriva, o proftpd será sempre o mesmo.

Sempre que fizer alterações no arquivo, reinicie o servidor para que elas entrem em vigor. Para isso, use o comando "/etc/init.d/proftpd restart".

No
 caso do Debian Etch e do Ubuntu 6.10 em diante, o servidor é 
configurado para utilizar endereços IPV6 por padrão, o que faz com que 
ele exiba uma mensagem de erro e aborte a inicialização caso você não 
tenha configurado a rede IPV6.

Para solucionar o problema, abra o arquivo "/etc/proftpd.conf" e substitua a linha:

UseIPv6 on

por:

UseIPv6 off

Uma das primeiras opções do arquivo é a opção Port,
 que permite alterar a porta usada pelo FTP. O padrão é usar a porta 21,
 mas muitos serviços de banda larga bloqueiam as portas 21 e 80 para que
 os usuários não rodem servidores. Nesse caso, você pode mudar para a 
porta 2121, por exemplo:

# Port 21 is the standard FTP port.
Port 2121

Ao mudar a porta padrão do servidor, os 
usuários precisarão indicar manualmente a porta no cliente de ftp ou 
navegador, como em: ftp://200.234.213.23:2121.

Em seguida, vem a opção MaxClients,
 que limita o número de conexões simultâneas ao servidor FTP. Esta opção
 trabalha em conjunto com a limitação de banda (veja a seguir). Você 
pode limitar os downloads de cada usuário a um máximo de 10 KB/s e limitar o servidor a 3 usuários simultâneos, por exemplo. Assim, o FTP consumirá um máximo de 30 KB/s do link do servidor.

MaxClients 30

Se você quiser limitar o acesso dos usuários, prendendo-os em seus respectivos diretórios home, adicione a linha "DefaultRoot ~"
 no final do arquivo. Lembre-se de que no Linux o "~" é um curinga, que é
 automaticamente substituído pela pasta home do usuário que está logado:

DefaultRoot ~

Para ativar a limitação de banda, adicione a linha "TransferRate RETR 8:10", onde o "8" pode ser substituído pela taxa desejada, em KB/s, por usuário:

TransferRate RETR 8:10

A princípio, apenas os usuários que 
tiverem logins válidos no servidor poderão acessar o FTP. Caso você 
queira abrir um FTP público, adicione estas linhas no arquivo de 
configuração. Elas ficam comentadas no arquivo original:

&lt;Anonymous ~ftp&gt;
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 20
DisplayLogin welcome.msg DisplayFirstChdir .message
&lt;Directory *&gt;
&lt;Limit WRITE&gt;
DenyAll
&lt;/Limit&gt;
&lt;/Directory&gt;

&lt;Directory incoming&gt;
Umask 022 022
&lt;Limit READ WRITE&gt;
DenyAll
&lt;/Limit&gt;

&lt;Limit STOR&gt;
AllowAll
&lt;/Limit&gt;
&lt;/Directory&gt; &lt;/Anonymous&gt;

A linha "MaxClients" 
determina o número máximo de usuários anônimos que poderão se logar 
simultaneamente no servidor. Essa opção é separada da MaxClients 
principal, que limita o número de usuários com login válido. Você pode 
permitir 30 usuários válidos e mais 20 anônimos, por exemplo.

A opção "DisplayLogin welcome.msg"
 indica a mensagem de boas-vindas que é mostrada quando os usuários 
fazem login no FTP. Por padrão, é exibido o conteúdo do arquivo "/home/ftp/welcome.msg".

Os usuários anônimos têm acesso apenas aos arquivos dentro da pasta "/home/ftp",
 que é visto pelo cliente FTP como o diretório raiz do servidor. Graças a
 isso, eles não têm como ver, muito menos alterar outros arquivos do 
sistema.

A seção "Directory incoming" mais 
abaixo cria uma pasta de upload (por padrão a "/home/ftp/incoming"), 
onde os anônimos poderão dar upload de arquivos. A idéia é que você veja
 periodicamente o conteúdo da pasta e mova o que for útil para a pasta 
"/home/ftp", para que o arquivo fique disponível para download.

Por padrão, os anônimos não podem ver o 
conteúdo da pasta incoming, podem apenas dar upload. Se necessário, crie
 a pasta incoming usando os comandos:

# mkdir /home/ftp/incoming
# chown nobody:nogroup /home/ftp/incoming

Para acessar o seu servidor, os clientes 
devem usar o login "anonymous" ou "ftp", usando um endereço de e-mail 
qualquer como senha.

Uma medida comum ao ativar o upload para 
os usuários anônimos é usar uma partição separada para o FTP, para 
evitar que algum engraçadinho fique dando upload durante a madrugada até
 lotar o HD do servidor. Nesse caso, você precisa apenas adicionar uma 
linha no arquivo "/etc/fstab" para que a partição desejada seja 
montada durante o boot. Esta linha de exemplo montaria a partição 
/dev/hda3, formatada em ReiserFS na pasta /home/ftp:

Agora vamos instalar o Samba: 

Instalando os pacotes

Faça o download da última versão do Samba disponível no site:


 http://www.samba.org





Copie o arquivo para o diretório /tmp e depois o descompacte usando:


# tar -zxvf samba-3.0.4.tar.gz


Acesse o diretório do samba-3.0.4 que foi criado e leia a documentação, ela pode lhe dar uma idéia do que deseja fazer.


Agora acesse o diretório source e faça:


# ./configure --prefix=/usr/local/samba

(crie o diretório samba se ele não existir)
# make
# make install


Depois dessa fase precisaremos configurar o SWAT, que é um programa 
usado para configurar o Samba em modo gráfico. Acrescente a seguinte 
linha ao arquivo /etc/services:&nbsp;

Depois dessa fase 
precisaremos configurar o SWAT, que é um programa usado para configurar o
 Samba em modo gráfico. Acrescente a seguinte linha ao arquivo 
/etc/services:



swat&nbsp;&nbsp; 901/tcp&nbsp;&nbsp; # swat


Depois acrescente a seguinte linha ao arquivo /etc/inetd.conf:



swat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream&nbsp;&nbsp;tcp&nbsp;&nbsp;&nbsp;&nbsp; nowait.400&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;/usr/sbin/tcpd&nbsp;&nbsp;/usr/local/samba/sbin/swat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swat



Agora finalize o processo inetd:


# killall -HUP inetd


Agora vamos testar o SWAT para ver se ele está funcionando corretamente, abra o browser e digite:


http://localhost:901




Configurando o arquivo smb.conf

O smb.conf é o arquivo de configuração do Samba, este arquivo 
pode ser configurado pelo programa Swat ou manualmente usando um editor 
de textos como o vi e está localizado no diretório /etc. O arquivo é 
composto por seções e parâmetros. As seções descrevem recursos 
compartilhados (exceto a [global]) e são representadas por colchetes e 
os parâmetros, dentro das seções, representam os atributos dos 
compartilhamentos. Há três seções especiais:


 [global] - São parâmetros que serão aplicados ao servidor como um todo.

 [home] - Disponibiliza o diretório /home dos usuários.

 [printers] - Disponibiliza o acesso a qualquer impressora especificada e conectada à máquina local.



Esta é apenas uma configuração básica de um diretório e uma impressora como recursos compartilhados:


# vi /etc/samba/smb.conf





# Configuração do Servidor Samba
# Data: 30/06/2004

# Parâmetros Globais
[global]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;netbios name = DEBIAN
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workgroup = OSDORMESUJO
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server string = Servidor Samba
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;security = user
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encrypt passwords = yes
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log file = /var/log/samba/samba.log

# Parâmetros Locais
[arquivos]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comment = Arquivos de usuários
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path = /home/arquivos
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public = no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read only = yes
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create mode = 0740
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;directory mode = 0740

# Impressoras Compartilhadas
[Epson]
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printable = yes
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print command = /usr/bin/lpr -P%p -r %s
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printer = lp
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printing = BSD
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path = /var/spool/lpd/lp





Post extra :
Criando usuario no Terminal:

Imagine
 agora que você quer uma configuração um pouco mais complexa, com vários
 usuários, cada um tendo acesso a apenas uma pasta específica. Esta 
configuração pode ser usada em conjunto com os virtual hosts do Apache 
(permitindo que os responsáveis
possam atualizar os arquivos do site), ou em situações em que seu 
servidor hospeda arquivos de diversos usuários ou projetos diferentes.

O responsável pelo projeto1 pode dar upload para a pasta "/home/ftp/projeto1"
 (por exemplo), mas não deve ter acesso a outras pastas nem a outros 
arquivos do sistema. Os usuários anônimos terão acesso às pastas
de todos os projetos, mas, naturalmente, apenas para leitura.

A
 forma mais simples de fazer isso é criar os usuários que terão acesso 
ao FTP, colocando a pasta a que terão acesso como seu diretório home e 
bloqueando o uso do shell, para que eles não possam acessar o servidor 
remotamente
através de outros meios (via ssh, por exemplo).

Vamos
 começar adicionando no arquivo a opção que prende os usuários nos seus 
diretórios home. Abra o arquivo "/etc/proftpd.conf" e adicione (no final
 do arquivo) a linha:

DefaultRoot ~

Você
 vai precisar adicionar também a seção para liberar o acesso anônimo ao 
ftp, que vimos acima. Como queremos apenas que os mantenedores dos 
projetos possam dar upload de arquivos, remova a seção "&lt;Directory
incoming&gt;". A seção vai ficar:

&lt;Anonymous ~ftp&gt;
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 20
DisplayLogin welcome.msg DisplayFirstChdir .message
&lt;Directory *&gt;
&lt;Limit WRITE&gt;
DenyAll
&lt;/Limit&gt;
&lt;/Directory&gt;
&lt;/Anonymous&gt;

O diretório padrão do FTP, onde os usuários anônimos terão acesso aos arquivos, é a "/home/ftp". Em outras distribuições pode ser usada a pasta "/var/ftp"; dê uma olhada em como o arquivo vem configurado por
padrão.

De volta à configuração, vamos começar criando subpastas para cada projeto:

# mkdir /home/ftp/projeto1
# mkdir /home/ftp/projeto2
# mkdir /home/ftp/projeto3 etc...

O
 próximo passo é ir adicionando os usuários no sistema, tendo o cuidado 
de fazer as alterações no diretório home e no shell padrão, para que 
eles tenham acesso somente via FTP e apenas à pasta desejada.

Para adicionar os usuários, use o comando "adduser", como se estivesse criando uma conta normal:

# adduser projeto1

Acrescentando usuário projeto1...
Acrescentando novo grupo projeto1 (1005).
Acrescentando novo usuário projeto1 (1005) com grupo projeto1.
Criando diretório pessoal /home/projeto1.
Copiando arquivos de /etc/skel

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Veja
 que por padrão ele cria a pasta "/home/projeto1", que passa a ser o 
diretório home do usuário criado. Entretanto, neste caso queremos que o 
home seja a pasta "/home/ftp/projeto1", onde ele dará upload dos
arquivos.

Para alterar isso, abra o arquivo "/etc/passwd", onde ficam guardadas as informações dos usuários. Na última linha do arquivo você verá:

projeto1:x:1005:1005:,,,:/home/projeto1:/bin/bash

Vamos alterar o "/home/projeto1" para "/home/ftp/projeto1" (para trocar o home) e o "/bin/bash" para "/bin/false",
 de forma a impedir que usuário tenha acesso ao shell do servidor e 
possa executar
comandos (fazendo o que não deve no servidor). Se você preferir que, 
além do acesso via ftp, os usuários tenham acesso via ssh, então 
mantenha o "/bin/bash". Depois das alterações, a linha ficará:

projeto1:x:1005:1005:,,,:/home/ftp/projeto1:/bin/false







EXTRAÇÃO:

http://www.vivaolinux.com.br/artigo/Instalando-e-configurando-o-servidor-Samba?pagina=3

http://www.vivaolinux.com.br/artigo/Instalando-e-configurando-o-servidor-Samba?pagina=2

http://www.vivaolinux.com.br/artigo/Instalando-e-configurando-o-servidor-Samba

http://www.hardware.com.br/livros/servidores-linux/criando-usuarios.html