Programando e Instalando um servidor Samba com sistema PROFTP no terminal Linux

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:
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 20
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory incoming>
Umask 022 022
<Limit READ WRITE>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
</Anonymous>
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:

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: 
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   901/tcp   # swat

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

swat      stream  tcp     nowait.400   root    /usr/sbin/tcpd  /usr/local/samba/sbin/swat      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]
        netbios name = DEBIAN
        workgroup = OSDORMESUJO
        server string = Servidor Samba
        security = user
        encrypt passwords = yes
        log file = /var/log/samba/samba.log

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

# Impressoras Compartilhadas
[Epson]
        printable = yes
        print command = /usr/bin/lpr -P%p -r %s
        printer = lp
        printing = BSD
        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 "<Directory incoming>". A seção vai ficar:
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 20
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
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


Nenhum comentário:

Postar um comentário

deixe seu comentario .. Faça um login aqui