Este arquivo mostra uma configuração do proftpd de fácil entendimento. Simples de encaixar em qualquer tipo de servidor. Adicionei algumas linhas para controle de usuários por pasta e também a opção de bloqueio de usuário por meio de arquivo /etc/ftpusers.
É recomendavél para quem esta interessado em entender algumas linha do arquivo ftp.
Utilizo ele atualmente para utilização do CACIC ( Coleta de informações ), esta em perfeito funcionamento.
Para uma maior segurança limitei também os usuários para não logar no sistema, ou seja, cadastrando os usuários pelo comando adduser usuario --shel /bin/false .
Obs: Não entrei em detalhes em login de usuário anônimos.
############################################################
############ Minhas Regras - c4rl0s d1a5 #################
############################################################
# Incluir DSO modulos (Não mexer)
Include /etc/proftpd/modules.conf
#Desativa suporte a IPv6
UseIPv6 off
###########################################################
#Definir como servidor padrão
DefaultServer on
#Exibir links simbólicos
ShowSymlinks on
#Nome do Servidor
ServerName "fileserver"
#Tipo do Servidor ( StandAlone ou Inetd )
#Obs: Se usar inetd descomentar a linha ftp stream .. .. .. .. no arquivo /etc/inetd.conf
ServerType inetd
#Não mostrar mensagem de boas-vindas até usuário tiver autenticado
DeferWelcome off
#Os Usuários não poderão sair de seu diretório home
DefaultRoot ~
#Não permite o login do usuário root
RootLogin off
#Não exibe informações sobre que tipo de servidor está rodando
ServerIdent on "Bem-Vindo ao servidor FTP"
#Não requer que os usuários tenham um shell válido
RequireValidShell off
#Bloqueia usuários baseando-se no arquivo /etc/ftpusers
UseFtpUsers on
#Máximo de usuários autenticados
MaxClientsPerHost 4 ''Número máximo de usuários conectados atingido''
#Numero Máximo de tentativas de login (para melhor segurança deixe 3)
MaxLoginAttempts 10
#Log de transferencia e do sistema ftp
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
#Tempo Máximo sem transferência de dados
TimeoutNoTransfer 600
#Tempo Máximo com transferência parada(travada)
TimeoutStalled 600
#Tempo Máximo conectado mas sem troca de dados
TimeoutIdle 1200
#Usar fuso horario universal
MultilineRFC2228 on
# Usuário e grupo que o servidor irá rodar
User proftpd
Group nogroup
Define o número máximo de processos filho para ser gerado(Contra ataque DoS
MaxInstances 30
#Maskara padrão para criação de arquivos
Umask 022 022
# Sobreescrever arquivo ?
AllowOverwrite on
# Porta padrão do servidor
Port 21
# Descomente se você usar NIS ou LDAP
# PersistentPasswd off
#Especificar o intervalo de porta ftp-dados a ser utilizado
#PassivePorts 49152 65534
#Descomente se voce quizer ver o processo da taxa de transferencia de seus arquivos (Deixe Disable)
# UseSendFile off
#Exbir mensagem de login
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions "-l"
#Expressão regular de comando argumentos para ser bloqueado
DenyFilter \*.*/
#############################################################
###############################################################
######### Configurações de Módulos #########################
###############################################################
#Habilitar TLS / SSL conexões
<IfModule mod_tls.c>
TLSEngine off
</IfModule>
#Ativa modulos de Quota (mod_quotatab_file,ldap,radius,sql)
<IfModule mod_quota.c>
QuotaEngine on
</IfModule>
#Ativa modulo ratio
<IfModule mod_ratio.c>
Ratios on
</IfModule>
#Ativa Módulo de "atrasos" - Segurança
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
#Módulos de Controle do server
<IfModule mod_ctrls.c>
ControlsEngine on
ControlsMaxClients 20
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
#Módulos de controle do Administrador
<IfModule mod_ctrls_admin.c>
AdminControlsEngine on
</IfModule>
##################################################################
############### Configuraçãoes de Login Anonimo ################
#################################################################
# <Anonymous ~ftp>
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayFirstChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
#
# </Anonymous>
Comentários
[1] Comentário enviado por eizz em 24/03/2009 - 13:25h
Cara,.. esse dai me parece o mais facil de ser compreendido pois alem de estar em portugues parece se rfacil..
mas deixa eu pergunta
esse dai esta totalmente seguro? eu nao manjo muito disso...
e aonde eu redireciono pra i pra pasta var/www/ aonde o meu apache ta rodando??
o comando diz que o usuário userftp irá logar e cair automaticamente na pasta /var/www e -s /bin/false significa que ele não poderá logar no shell :)
Esta seguro sim, agora depende das atualizações de segurança de servidor, firewall etc...
É recomendável você colocar regras em seu firewall permitindo logar somente os ips de sua rede ou dos usuários que irão poder conectar na máquina e limitando o restante.
[11] Comentário enviado por carbony em 05/06/2009 - 17:56h
ola, muito bom esse tuto, to randando ele aqui ta tdo ok.
agora venha duvidas. rssrsr
1 - como faço para criar pasta com senhas dentra da minha pasta.
exemplo: tenho meu user e senha pra entrar no ftp, dentro dele existe pastas A , B e C, gostaria que o usuario A entre com user e senha e somente tenha acesso a pasta A total , o user B e C a mesma coisa, e eu acesso as pastas A , B e C com total controle sobre elas.
[12] Comentário enviado por carlosdias98 em 06/06/2009 - 00:16h
Opa. Não sei para qual finalidade que você esta usando este conf, mas se for para cada usuário cair em sua pasta, dentro da pasta "admin" = "você", e eles acessarem os dados deles e você acessar os dados de todo mundo você pode tentar fazer o seguinte:
Imaginamos o seguinte cenário:
/var/www -> pasta onde você cai quando loga - acesso total - user carbony for example :p
Crie as pasta dentro de sua pasta:
mkdir /var/www/PastaA
mkdir /var/www/PastaB
Quanto as permissões vc pode colocar as que você quiser, pois quem vai controlar é o ftp (DefaultRoot ~) - usuário não podem sair de seu diretório home(padrão)
[13] Comentário enviado por carbony em 09/06/2009 - 15:00h
Opa, valeu Carlos, funcionou,
agora o seguinte, porque ocorre erro 530? na minha rede interna consigo logar no ftp, agora externamente pede user e senha, so que da erro 530, ja ate mudei a porta padrao de 21 para 2121 e nada. quando nao ocorre o erro 530, ele fica pedindo o user e senha toda hora, agora internamente de outra pc que esta na rede, entra numa boa.