Proftp (proftpd.conf)

Proftp, Arquivo comentado

Categoria: Ftp

Software: Proftp

[ Hits: 29.720 ]

Por: Carlos Eduardo


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??

abraços

[2] Comentário enviado por carlosdias98 em 24/03/2009 - 14:27h

Boa tarde amigo, você não precisa direcionar nada, pode somente criar um usuário para fazer upload de seu site, por exemplo:

Seu site fica em /var/www/ -> aki esta o index e tudo mais.

Com essa configuração você só precisa criar um usuário para logar nessa pasta:

useradd -d /var/www -s /bin/false userftp
passwd userftp

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.

Abraços

Att,

[3] Comentário enviado por carlosdias98 em 24/03/2009 - 14:32h

Só lembrando, não esqueça de dar as permissões corretas para a pasta /www para o usuários que você criou !

Até

[4] Comentário enviado por eizz em 27/03/2009 - 17:04h

Nooossa Carlos,... cara muito obrigado!

vou coloca-no na config aqui e testa-lo! qualquer coisa eu te falo
abraçoss

[5] Comentário enviado por eizz em 27/03/2009 - 19:30h

Carlos,.. sem querer abusar da bondade...

como que eu faço pra dar permissão [no caso completa] nessa pasta, PARA esse usuário que vou criar?

estou apanhando =\

[6] Comentário enviado por carlosdias98 em 29/03/2009 - 01:53h

olá,

1º chown userftp.userftp /var/www/ -R ( dá propriedade a pasta para o user userftp)

2º chmod 764 /var/www/ -R ( dá permissão total para o userftp e leitura para outros)

Cara dá uma lida em alguns artigos ai sobre permissões, é bem legal entender sobre o assunto, isso que eu te passei é bem básico mesmo.

Mas dê uma olhada nesses comandos:

chmod
chown
chgroup

Num é legal você dar permissão completa para uma pasta como a /var/www/ pois é bem arriscado !

Mas se você quiser :d : chmod 777 /var/www/ -R

Até mais !!!

[7] Comentário enviado por eizz em 10/04/2009 - 11:55h

Carlos, muito obrigado, deu certinho cara heehae

valewww

[8] Comentário enviado por carlosdias98 em 14/04/2009 - 10:13h

Se precisar de mais alguma coisa que eu saiba é só falar !!

Abraços

[9] Comentário enviado por bbgshow em 25/05/2009 - 12:00h

se eu já tenho um usuario criado, como faço para ele qdo se conectar no servidor ir só para uma pasta?

[10] Comentário enviado por carlosdias98 em 25/05/2009 - 14:13h

opa. é só vc mudar a pasta default do usuário.

faça esse comando:

usermod -d /var/www nomedousuário

qndo ele logar vai cair automaticamente nessa pasta.

Abraços..

Obs: não esqueça de dar as permissões necessárias..olhe nos coments acima.

att

Carlos Dias

[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.

como criaria isso?

valeu!!!!

[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)

chmod 777 /var/www/PastaA -R
chmod 777 /var/www/PastaB -R

Crie os Usuários para suas respectivas pastas:
useradd -d /var/www/PastaA -s /bin/false userA
passwd userA

useradd -d /var/www/PastaB -s /bin/false userB
passwd userB

Agora faça o teste qualquer coisa você me fala, porque to morto de sono e nem sei exatamente o que estou escrevendo. :)

Até,

Carlos Dias

[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.

alguma ideia?

valeu!!!

[14] Comentário enviado por jcvn em 07/09/2011 - 16:08h

Amigo,

Descomente a linha:
#PassivePorts 49152 65534 no proftp.conf e libere esse range de portas no seu firewall.

[15] Comentário enviado por java-man em 02/12/2011 - 16:53h

Sou um pouco leigo com firewall, pode colocar o comando que faço ou coloco no script para liberar essa portas no firewall

[16] Comentário enviado por carlosdias98 em 02/12/2011 - 19:06h

Qual distribuição esta usando ?

Abaixo regra básica:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

Habilitar os seguintes módulos:

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

Abs.
Carlos Eduardo Dias

[17] Comentário enviado por maikelfb em 19/12/2011 - 17:49h

Me corrijam se eu estiver errado, mas a diretiva:

#Usar fuso horario universal
MultilineRFC2228 on

não é relacionada ao fuso horário, mas para "aumentar" a compatibilidade de clientes FTP e browsers.

Para configurar a "Time zone" do proftpd para o horário local, adicionei as seguintes diretivas:

TimesGMT off
SetEnv TZ :/etc/localtime

Espero ter ajudado.
Abraços!

[18] Comentário enviado por tiburtinoneto em 29/12/2017 - 16:28h

Carlos,

Fiz essa configuração aí ,mas só consigo acessar pelo IP, não acessa pelo nome que coloquei para o servidor. O que pode ser?


Contribuir com comentário