Você está na página 1de 26

Artigo Original do “Guia Conectiva”:

http://www.linorg.cirp.usp.br/Guias.Conectiva/documentacao/pr/pr-74.html

ENTENDENDO A CONFIGURAÇÃO COMPLETA DO


“/etc/proftpd.conf”
Os: Linux
Serviço: PROFTPd

/etc/proftpd.conf <-------- Configurações gerais do servidor


(+importante)

Este arquivo é configurável estilo um arquivo .html, com a sintaxe


<opção> </opção> e comandos "dentro" deles.

Em geral, o arquivo padrão da instalação é o seguinte :

# Configuração do ProFTPD
#

ServerName "ProFTPD - Instalação Default"


ServerType inetd
DefaultServer on
ScoreboardPath /var/run
DeferWelcome on
ServerAdmin root@localhost
ServerName "Servidor FTP"
SyslogFacility AUTH

# Umask 022 é um bom padrão para prevenir que novos diretórios e


# arquivos sejam graváveis pelo grupo ou outros usuários
Umask 022

# Usuário e grupo para o servidor


User nobody
Group nobody

<Directory /*>
AllowOverwrite no
</Directory>

# Configuração básica para ftp anônimo, sem diretório para recepção


# de arquivos
<Anonymous ~ftp>
User ftp
Group ftp
DirFakeUser on
DirFakeGroup on
# ftp = anonymous
UserAlias anonymous ftp

# número máximo de logins anônimos


MaxClients 10 "Número máximo de clientes, tente mais
tarde."

# No máximo duas conexões por cliente


MaxClientsPerHost 2 "Você já está com muitas conexões
simultâneas."

# welcome.msg mostrado na conexão e .message mostrado para cada


# diretório acessado.
DisplayLogin welcome.msg
DisplayFirstChdir .message
AccessGrantMsg "Acesso anônimo aceito para %u."

# Limite gravação no chroot anônimo


<Limit WRITE>
DenyAll
</Limit>

</Anonymous>

------------- Explicação das opções disponíveis para serem utilizadas ---------

Em ordem alfabética :

AccessGrantMsg

Sintaxe: AccessGrantMsg mensagem


Padrão: Depende do tipo de login
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0pl5 and later

Geralmente, uma mensagem de resposta (230) é enviada logo após a


autenticação, com uma mensagem padrão indicando que o usuário está logado ou
que o acesso do usuário anônimo foi efetuado com sucesso. Esta mensagem pode
ser configurada com esta opção (AccessGrantMsg). No parâmetro mensagem pode
ser utilizado %u que será substituído pelo nome do usuário. Exemplo:

AccessGrantMsg "Acesso anônimo aceito para %u."


_________________________________________________________________

Allow

Sintaxe: Allow ["from"] "all"|"none"|host|network[,host|network[,...]]


Padrão: Allow from all
Pode ser usado: <Limit>
Compatibilidade: 0.99.0pl6 and later

É utilizada sempre entre <Limit> e </Limit> para as excessões que


houverem sobre as condições do limit.

host e network podem ser passados por nome ou número. Por motivos de
segurança recomenda-se utilizar sempre números. Para especificar uma rede
inteira, com números utiliza-se 10.0.0 (por exemplo) e com nomes
.proftpd.net (por exemplo).

Exemplo:

<Limit LOGIN>
Order Allow,Deny
Allow from 128.44.26.,128.44.26.,myhost.mydomain.edu,.trusted-domain.org
Deny from all
</Limit>
_________________________________________________________________

AllowAll

Sintaxe: AllowAll
Padrão: Não muito utilizado por permitir acesso a todos
Pode ser usado: <Directory>, <Anonymous>, <Limit>, .ftpaccess
Compatibilidade: 0.99.0 and later

A opção permite acesso a aos blocos <Directory>, <Anonymous> ou <Limit> a


todos os usuários.

_________________________________________________________________

AllowFilter

Sintaxe: AllowFilter regular-expression


Padrão: Nenhum (não utilizado)
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre7 and later

Utiliza filtros para quais caracteres podem ser mandados ao servidor. Os


filtros utilizam-se de expressões regulares.

Se há espaços em branco, deve-se utilizar aspas.


Exemplo:

# Somente permite caracteres alfa-numéricos e espaços em branco


AllowFilter ".*/[a-zA-Z0-9 ]+$"

Veja mais em: DenyFilter


_________________________________________________________________

AllowGroup

Sintaxe: AllowGroup group-expression


Padrão: Nenhum
Pode ser usado: <Limit>
Compatibilidade: 1.1.1 and later
Utiliza-se para permitir o acesso de determinado(s) grupo(s).

Exemplo:

AllowGroup users,nobody,ftp

Veja mais em: DenyGroup, DenyUser, AllowUser


_________________________________________________________________

AllowUser

Sintaxe: AllowUser user-expression


Padrão: Nenhum
Pode ser usado: <Limit>
Compatibilidade: 1.1.7 and later

Basicamente igual ao AllowGroup, só que para permitir o acesso de


usuários.
Exemplo:

AllowUser ftp,nobody

Veja mais em: DenyUser, DenyGroup, AllowGroup


_________________________________________________________________

AllowOverwrite

Sintaxe: AllowOverwrite on|off


Padrão: AllowOverwrite off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>, .ftpaccess
Compatibilidade: 0.99.0 and later

Permite ou não sobrescrever arquivos localizados no servidor. Utilizado


normalmente para diretórios de upload, onde deve ser possível a sobrescrita
de arquivos.
_________________________________________________________________

AnonRequirePassword

Sintaxe: AnonRequirePassword on|off


Padrão: AnonRequirePassword off
Pode ser usado: <Anonymous>
Compatibilidade: 0.99.0 and later

Com esta opção, para acessar como anônimo é necessário utilizar-se da


senha do usuário que o serviço de usuário anônimo utiliza (definido com a
opção User).
Exemplo:

<Anonymous ~roger>
User roger
AnonRequirePassword on
</Anonymous>

Então, para acessar como anônimo só será possível se for digitada a senha
do usuário roger.
_________________________________________________________________

AllowRetrieveRestart

Sintaxe: AllowRetrieveRestart on|off


Padrão: AllowRetrieveRestart on
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>, .ftpaccess
Compatibilidade: 0.99.0 and later

Permite que os usuários possam baixar os arquivos de "pedaço a pedaço" ao


invés de o arquivo inteiro de uma vez.
_________________________________________________________________

AllowStoreRestart

Sintaxe: AllowStoreRestart on|off


Padrão: AllowStoreRestart off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>, .ftpaccess
Compatibilidade: 0.99.0 and later

Permite que o usuário envie arquivos ao servidor de "pedaço a pedaço" ao


invés do arquivo inteiro. Pode ser útil para diretórios de upload, mas não é
recomendável utilizar devido ao fato de que podem ocorrer problemas em uma
das transmissões e perder-se o arquivo inteiro.
_________________________________________________________________

<Anonymous>

Sintaxe: <Anonymous diretório-raiz>


Padrão: None
Pode ser usado: server config,<VirtualHost>, <Global>
Compatibilidade: 0.99.0 and later

O bloco de configuração <Anonymous> é utilizado para criar uma sessão de


acesso para um usuário anônimo no servidor<htmlurl url=" ftp." name=" ftp."> O
parâmetro diretório-raiz é
qual será o diretório raiz do usuário ao acessar o servidor.

Exemplo de configuração básica de acesso para ftp anônimo:

<Anonymous /home/ftp>
User ftp # Após o acesso anônimo, o serviço roda com o usuário ftp
Group ftp # Após o acesso anônimo, o serviço roda com o grupo ftp
UserAlias anonymous ftp # Cliente loga como anônimo e recebe apelido de ftp
# Não permite escrita em nenhum dos diretórios abaixo o raiz
# O padrão é permitir a leitura, portanto não é necessário usar um
# <Limit> para permitir
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory incoming>
<Limit READ WRITE>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
</Anonymous>
_________________________________________________________________

AnonymousGroup

Sintaxe: AnonymousGroup group-expression


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.1.3 and later

É utilizado para definir os grupos de usuários que quando acessarem o


servidor serão considerados como usuários anônimos.

Caso acesse com um usuário que esteja neste grupo, o raiz do mesmo será
passado para o home do usuário.

Veja mais em: DefaultRoot


_________________________________________________________________

AuthGroupFile

Sintaxe: AuthGroupFile path


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.0.3/1.1.1 and later

Especifica um arquivo alternativo para o arquivo de grupos. Tem o mesmo


formato que o arquivo /etc/groups.

Pode ser utilizado na configuração de domínios virtuais, para que possa


utilizar grupos diferentes ou iguais e não haver confusão.
_________________________________________________________________

AuthUserFile

Sintaxe: AuthUserFile path


Padrão: None
Pode ser usado: server config,<VirtualHost>, <Global>
Compatibilidade: 1.0.3/1.1.1 and later

Especifica um arquivo alternativo para o arquivo de usuários. Utiliza o


mesmo formato que o /etc/passwd.

Também pode ser utilizado para domínios virtuais.


_________________________________________________________________

CDPath

Sintaxe: CDPath diretório


Padrão: nenhum
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre2 and later
Adiciona diretórios como na variável PATH do usuário no sistema.
_________________________________________________________________

CommandBufferSize

Sintaxe: CommandBufferSize tamanho


Padrão: Nenhum
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre7 and later

Controla o tamanho do comando que é passado ao servidor. Permite que seja


controlado efetivamente o "maior" comando que o servidor irá aceitar, e pode
ajudar a proteger o servidor de vários ataques (Denial of Service ou
resource-consumption).
_________________________________________________________________

DefaultChdir

Sintaxe: DefaultChdir directory [group-expression]


Padrão: ~
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre2 and later

Determina o diretório padrão que o usuário irá acessar (equivalente ao


home do usuário). Caso não seja determinado, é utilizado, por padrão, o home
do usuário.

NOTE: Caso seja especificado um diretório não existente, o usuário não


conseguirá acessar.
_________________________________________________________________

DefaultRoot

Sintaxe: DefaultRoot directory [group-expression]


Padrão: DefaultRoot /
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 0.99.0pl7 and later

Especifica qual será o diretório raiz utilizado pelo usuário que está
acessando o servidor e para quais grupos isto é válido ou não (colocando "!"
antes do nome do grupo).

Pode ser utilizado "~" para definir o home de um usuário.


_________________________________________________________________

DefaultServer

Sintaxe: DefaultServer on|off


Padrão: DefaultServer off
Pode ser usado: server config,<VirtualHost>
Compatibilidade: 0.99.0pl6 and later

Controla qual servidor será utilizado por padrão quando uma conexão é
destinada para um IP que não seja o do IP primário ou nenhum dos definidos
em um bloco <VirtualHost>.
_________________________________________________________________

DefaultTransferMode

Sintaxe: DefaultTransferMode ascii|binary


Padrão: DefaultTransferMode ascii
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre9 and later

Configura o padrão de transmissão dos arquivos binário ou ascii, o padrão


é ascii.
_________________________________________________________________

Deny

Sintaxe: Deny ["from"] "all"|"none"|host|network[,host|network[,...]]


Padrão: None
Pode ser usado: <Limit>
Compatibilidade: 0.99.0pl6 and later

Ao contrário do Allow, usa-se o Deny para não permitir acesso de certas


redes/máquinas.

Veja mais em: Allow and Order.


_________________________________________________________________

DenyAll

Sintaxe: DenyAll
Padrão: Nenhum
Pode ser usado: <Directory>, <Anonymous>, <Limit>, .ftpaccess
Compatibilidade: 0.99.0 and later

Utilizado para desabilitar o acesso a um bloco Limit, Anonymous ou


Directory por qualquer usuário. O DenyAll pode ser "sobrescrito" pelo
AllowAll.
_________________________________________________________________

DenyFilter

Sintaxe: DenyFilter regular-expression


Padrão: Nenhum
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre7 and later

Semelhante ao AllowFilter. Não permite que certos comandos que se


pareçam com a expressão regular definida não sejam aceitos pelo servidor.
Caso o comando não seja aceito, o servidor mostrará a mensagem de erro
"Forbidden command" ao cliente.

Exemplo:

# Nenhum comando pode conter o caracter %


DenyFilter "%"

Veja mais em: AllowFilter


_________________________________________________________________
DenyGroup

Sintaxe: DenyGroup group-expression


Padrão: Nenhum
Pode ser usado: <Limit>
Compatibilidade: 1.1.1 and later

Utilizado para barrar o acesso de determinados grupos de usuários. Caso


utilize-se o ! este grupo poderá acessar.

Exemplo:

DenyGroup users,nobody,ftp,!admin

Veja mais em: AllowGroup, AllowUser, DenyUser


_________________________________________________________________

DenyUser

Sintaxe: DenyUser user-expression


Padrão: Nenhum
Pode ser usado: <Limit>
Compatibilidade: 1.1.7 and later

Utilizado para barrar o acesso de determinados usuários. Caso utilize-se


o ! este usuário poderá acessar.

Exemplo:

DenyUser root,!nobody,!ftp

Veja mais em: AllowUser, DenyGroup, AllowGroup


_________________________________________________________________

<Directory>

Sintaxe: <Directory pathname>


Padrão: Nenhum
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0 and later

Utilizado para criar um bloco de configuração de um diretório e seus


respectivos sub-diretórios. O bloco inicia com
<Directory /caminho/do/diretório> e termina com </Directory>

Exemplo:
<Directory /home/*>
HideNoAccess
</Directory>

Caso se utilize uma máscara, o diretório atual não sofrerá as


configurações (em nosso caso, o diretório /home), apenas os sub-diretórios.
Note que deve ser utilizado o caminho absoluto dos diretórios, a não ser se
localizado em um bloco <Anonymous>, e também não podem ser utilizados
"links" simbólicos para o bloco <Directory>.
_________________________________________________________________
DirFakeGroup

Sintaxe: DirFakeGroup On|Off [groupname]


Padrão: DirFakeGroup Off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.1.5

DirFakeGroup e seu companheiro, DirFakeUser, podem ser usados para


esconder o grupo e usuário propietários de certo arquivo na listagem do
diretório. Caso não seja especificado nenhum grupo, será mostrado o ftp por
padrão. Pode-se utilizar de grupos e usuários não existentes no sistema.
_________________________________________________________________

DirFakeMode

Sintaxe: DirFakeMode octal-mode


Padrão: Nenhum
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.1.6

Configura o modo (ou permissões) que será mostrado _todos_ os diretórios


e arquivos na listagem. É utilizado da mesma forma que o DirFakeUser e
DirFakeGroup: "apenas cosméticos".

Por exemplo:

DirFakeMode 0640

Resultará em:

-rw-r----- ... arquivo


drwxr-x--- ... diretório
_________________________________________________________________

DirFakeUser

Sintaxe: DirFakeUser On|Off [username]


Padrão: DirFakeUser Off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.1.5

Veja DirFakeGroup
_________________________________________________________________

DisplayConnect

Sintaxe: DisplayConnect filename


Padrão: Nenhum
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre2 and later

Configura um arquivo ascii que será mostrado antes de o usuário efetuar o


acesso ao servidor.
Pode-se utilizar de um conjunto de "magic cookies" para facilitar na
configuração do arquivo, que também é utilizado pelas opções DisplayLogin e
DisplayFirstChdir: %T, %F, %R, %L e %u (detalhes na documentação de
DisplayFirstChdir).
_________________________________________________________________

DisplayFirstChdir

Sintaxe: DisplayFirstChdir filename


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 0.99.0 and later, magic cookies only in 0.99.0pl10 and
later

The DisplayFirstChdir directive configures an ASCII text filename


which will be displayed to the user the first time they change into a
directory (via CWD) per a given session.

Para cada acesso no servidor, após o usuário entrar em um certo


diretório, será mostrado o conteúdo do arquivo definido.

Para o caso de um acesso anônimo, o arquivo deverá estar em algum


diretório a partir da raiz definida no bloco <Anonymous>.

DisplayFirstChdir, DisplayConnect, DisplayLogin, DisplayQuit, tem suporte


para as seguintes "magic cookies" (somente a partir da versão 0.99.0pl10),
que são substituídas por seus respectivos valores :

%T hora corrente
%F espaço disponível
%C diretório corrente
%R nome do servidor
%L nome do cliente
%u Usuário
%U Usuário usado para acessar o servidor
%M Número máximo de conexões
%N Número de conexões ativas
%E Email do administrador
_________________________________________________________________

DisplayGoAway

Sintaxe: DisplayGoAway filename


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre8 and later

Especifica um arquivo que será mostrado toda vez que o usuário de uma
classe tentar acessar o servidor e esta classe já possuir o número máximo de
clientes acessando o servidor.

Também pode-se utilizar as "magic cookies".

Veja mais em: DisplayFirstChdir


_________________________________________________________________

DisplayLogin
Sintaxe: DisplayLogin filename
Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0 and later

Especifica um arquivo texto que será mostrado ao usuário no início do


acesso. O nome do arquivo pode ser absoluto ou relativo, caso seja relativo,
o arquivo será procurado a partir do diretório inicial que o usuário
acessou (home do usuário ou home anônimo). Note que será necessário o
arquivo estar localizado abaixo da raiz do usuário anônimo.

DisplayLogin também suporta as "magic cookies"


_________________________________________________________________

DisplayQuit

Sintaxe: DisplayQuit filename


Padrão: Nenhum
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre8 and later

Especifica um arquivo texto que será mostrado ao usuário quando o mesmo


terminar sua sessão. Quanto a localização do arquivo, vale o mesmo que a do
item anterior.

DisplayQuit também suporta as "magic cookies"


_________________________________________________________________

DisplayReadme

Sintaxe: DisplayReadme filename


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.2.0pre8 and later
Module: mod_readme

Notifica o usuário da data da última alteração do arquivo especificado.

Exemplo:

DisplayReadme README

Resultará em:

Please read the file README it was last modified on Sun Feb 17
10:36:14 2000 - 30 days ago
_________________________________________________________________

ExtendedLog

Sintaxe: filename [[command-classes] format-nickname]


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous> <Global>
Compatibilidade: 1.1.6pl1 and later

Utilizado para definir quais comandos serão guardados pelos logs e se em


mais de um arquivo ou não.
Classes válidas:
* NONE
Nenhum comando
* AUTH
Comandos de autenticação (USER, PASS)
* INFO
Comandos de informação (PWD, SYST, etc)
* DIRS
Comandos de diretório (LIST, CWD, MKD, etc)
* READ
Leitura de arquivos (RETR)
* WRITE
Gravação de arquivos ou diretórios
* MISC
Comandos variados (SITE, etc)
* ALL
Todos os comandos (padrão)

Se o argumento format-nickname for fornecido, ExtendedLog usará o formato


de log prédefinido (criado por LogFormat). Senão, o formato padrão: "%h %l
%u %t \"%r\" %s %b" é utilizado.

Por exemplo, para registrar todas as operações de escrita e leitura para


o arquivo /var/log/ftp.log (usando o formato padrão):

ExtendedLog /var/log/ftp.log read,write

Veja mais em: LogFormat, TransferLog


_________________________________________________________________

<Global>

Sintaxe: <Global>
Padrão: None
Pode ser usado: server config, <VirtualHost>
Compatibilidade: 1.1.6 and later

Este bloco é usado para criar um conjunto de opções que serão aplicadas
para toda a configuração do servidor e para todas as configurações de
virtualhosts. A maioria das opções podem ser utilizadas por este bloco, mas
não todas.

Vários blocos <Global> podem ser criados. Em tempo de execução, todos os


blocos são fundidos e finalmente passados para a configuração do servidor. O
bloco é terminado com </Global>
_________________________________________________________________

Group

Sintaxe: Group groupid


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0 and later

Configura qual grupo o serviço irá ser executado. Veja mais em User para
maiores detalhes.
_________________________________________________________________

GroupOwner

Sintaxe: GroupOwner groupid


Padrão: None
Pode ser usado: <Anonymous>, <Directory>, .ftpaccess
Compatibilidade: 0.99.0 and later

Especifica o grupo que será dono de todos os novos diretórios e arquivos


que serão criados.
_________________________________________________________________

GroupPassword

Sintaxe: GroupPassword groupid hashed-password


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0pl5 and later

Cria uma senha que permite que um certo grupo de usuários utilize-se
apenas da mesma. O parâmetro hashed-password é a senha (em modo texto)
passada pela função crypt().

Veja mais em: UserPassword


_________________________________________________________________

HiddenStor

Sintaxe: HiddenStor on|off


Padrão: HiddenStor off
Pode ser usado: <Directory>, <Anonymous>, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre5 and later

Ao mandar arquivos ao servidor, os arquivos serão renomeados para


.in.arquivo e após o upload se completar, renomeado para arquivo.
_________________________________________________________________

HideGroup

Sintaxe: HideGroup groupid


Padrão: None
Pode ser usado: <Directory>, <Anonymous>
Compatibilidade: 0.99.0 and later

Configura um bloco directory ou anonymous para esconder os diretórios e


arquivos possuídos pelo grupo especificado, a não ser que o usuário que
esteja acessando seja do grupo. Os arquivos e diretórios apenas não são
listados pelo comando ls, mas caso queira-se entrar no diretório, apagar ou
qualquer outro procedimento, é possível.

Veja mais em: HideUser, HideNoAccess, IgnoreHidden


_________________________________________________________________

HideNoAccess

Sintaxe: HideNoAccess
Padrão: None
Pode ser usado: <Directory>,<Anonymous>
Compatibilidade: 0.99.0 and later

Configura os blocos para que sejam escondidas todas as entradas de


diretório quando for listar o seu conteúdo para o usuário que estiver
acessando o servidor e o mesmo não ter acesso para o diretório.
_________________________________________________________________

HideUser

Sintaxe: HideUser userid


Padrão: None
Pode ser usado: <Directory>, <Anonymous>
Compatibilidade: 0.99.0 and later

Configura um bloco anonymous ou directory para esconder todas as entradas


de diretório possuídas pelo usuário definido, a não ser que o usuário que
esteja acessando seja o dono do diretório. Os arquivos/diretórios só não são
listados, mas caso queira-se apagá-los, entrar no diretório, ou qualquer
outro procedimento, é possível.

Veja mais em: HideGroup, HideNoAccess, IgnoreHidden


_________________________________________________________________

IdentLookups

Sintaxe: IdentLookups on|off


Padrão: IdentLookups on
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.1.5 and later

Normally, when a client initially connects to proftpd, the ident


protocol (RFC1413) is used to attempt to identify the remote username.
This can be controlled via the IdentLookups directive.
_________________________________________________________________

IgnoreHidden

Sintaxe: IgnoreHidden on|off


Padrão: IgnoreHidden off
Pode ser usado: <Limit>
Compatibilidade: 0.99.0 and later

Normalmente, arquivos/diretórios que são escondidos com as opções


HideNoAccess, HideUser ou HideGroup aceitam/são utilizados por qualquer
outro comando que não os de listagem de diretórios. Caso seja utilizado o
IgnoreHidden, será retornada a mensagem de "No such file or directory", como
se realmente, o diretório/arquivo não existisse.
_________________________________________________________________

<Limit>

Sintaxe: <Limit command|command-group [command2 ..]>


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Directory>, <Anonymous>,
<Global>, .ftpaccess
Compatibilidade: 0.99.0 and later

Este bloco de configuração é utilizado para definir regras de acesso para


o servidor. Pode-se usar dos seguintes comandos para permitir ou não a
utilização dos mesmos:

* CWD (troca de diretório de trabalho)


Utilizado pelo cliente para acessar outros diretórios. Note que as
limitações para este comando só podem ser feitas caso se queira subir na
árvore de diretórios existente.
* MKD (criação de diretório)
Utilizado pelo cliente para a criação de diretórios.
* RNFR (renomear de), RNTO (renomear para)
É mandado para o servidor como um par de comandos para renomear um
arquivo/diretório.
* DELE (remover)
Mandado pelo cliente para apagar um arquivo.
* RMD (remover diretório)
Mandado pelo cliente para remover um diretório.
* RETR (recuperar)
Transferir um arquivo do servidor para o cliente.
* STOR (armazenar)
Transferir um arquivo do cliente para o servidor.

Além desses, os próximos grupos de comandos são aceitávies :

* READ
* WRITE
* DIRS
Permissão para a "verificação de existência" de arquivos no diretório
(comandos, ls, nlst)
* ALL
O mesmo que os três acima juntos.

Finally, a special command is allowed which can be used to control


login access:

Finalmente, para controlar o acesso dos usuários :

* LOGIN
Define se é possível ou não a conexão ao servidor.

As restrições determinadas no bloco <Limit> não devem ser confudidas com


acesso a diretórios/arquivos.

Veja mais em: IgnoreHidden


_________________________________________________________________

Sintaxe: LDAPDoAuth on|off "auth-base-prefix"


Padrão: LDAPDoAuth off
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre10 and later

Ativa a autenticação LDAP. O segundo parâmetro é o prefixo LDAP a ser


usado para a autenticação.
_________________________________________________________________
Sintaxe: LDAPHomedirOnDemand on|off
Padrão: LDAPHomedirOnDemand off
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre10 and later

Ativa a criação de diretórios home para o usuário, caso não exista um


diretório existente para a utilização deste. O grupo e o usuário
proprietários do arquivo serão os mesmos com que o proftpd está sendo
executado (verifique User e Group).
_________________________________________________________________

Sintaxe: LDAPServer "hostname"


Padrão: LDAPServer "localhost"
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre9 and later

Permite que seja definido o nome da máquina que será o servidor LDAP.
_________________________________________________________________

LogFormat

Sintaxe: LogFormat nickname "format-string"


Padrão: LogFormat default "%h %l %u %t \"%r\" %s %b"
Pode ser usado: server config
Compatibilidade: 1.1.6pl1 and later

Define o formato do arquivo de registro de acessos.

%b Bytes enviados por pedido


%f Nome do arquivo enviado ou recebido
%{FOOBAR}e Conteúdo da variável de ambiente FOOBAR
%h Nome da máquina remota
%a Endereço ip da máquina remota
%l Usuário remoto
%p Número da porta do servidor
%v Nome do servidor
%P PID do processo
%r Linha inteira de comando recebida pelo cliente
%t Hora/date corrente
%{format}t Hora/date corrente formatada (no formato strftime(3))
%T Tempo, em segundos, para receber/enviar o arquivo
%s código de status do servidor
%u id do usuário local

Veja mais em: ExtendedLog, TransferLog


_________________________________________________________________

LsDefaultOptions

Sintaxe: LsDefaultOptions "options string"


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.1.6 and later

Opções do comando ls que serão utilizadas por padrão.

LsDefaultOptions "-a"
_________________________________________________________________

MaxClients

Sintaxe: MaxClients number|none message


Padrão: MaxClients none
Pode ser usado: server config, <Anonymous>, <VirtualHost>, <Global>
Compatibilidade: 0.99.0 and later

Define o número máximo de clientes que podem acessar o servidor ao mesmo


tempo. Pode especificar-se uma mensagem, por exemplo:

MaxClients 5 "Desculpe, mas já foi atingido o número máximo de clientes


conectados (%m)"
_________________________________________________________________

MaxClientsPerHost

Sintaxe: MaxClientsPerHost number|none message


Padrão: MaxClientsPerHost none
Pode ser usado: server config, <Anonymous>, <VirtualHost>, <Global>
Compatibilidade: 1.1.7 and later

Define o número máximo de usuários por cliente/máquina. Funciona como o


MaxClients.
_________________________________________________________________

Order

Sintaxe: Order allow,deny|deny,allow


Padrão: Order allow,deny
Pode ser usado: <Limit>
Compatibilidade: 0.99.0pl6 and later

Configura a ordem em que as opções Allow e Deny serão checadas em um


bloco <Limit>. Pelo fato de a opção Allow ser utilizada para permitir e a
Deny para restringir, a ordem em que essas opções são examinadas podem alter
significativamente as formas de segurança.

Se a configuração padrão (allow,deny) está sendo utilizada, então os


acessos "permitidos" são primeiramente verificados.

Quando a opção Order é utilizada com o parâmetro "deny,allow", os acessos


"restringidos" são verificados antes.

Para maior esclarecimento, caso seja utilizado :

Order allow,deny

1. Verifica as opções Allow. Se uma ou mais se aplicam ao caso, o


resultado será :
ALLOW (ok, tem permissão de acesso)
2. Verifica as opções Deny. Se uma ou mais se aplicam ao caso, o
resultado será :
DENY (não tem acesso)
3.O resultado final será ALLOW (acesso permitido)
Order deny,allow

1. Verifica as opções Deny. Se uma ou mais se aplicam ao caso, o


resultado será :
DENY (não tem acesso)
2. Verifica as opções Allow. Se uma ou mais se aplicam ao caso, o
resultado será :
ALLOW (ok, tem permissão de acesso)
3.O resultado final será DENY (acesso negado)
_________________________________________________________________

PersistentPasswd

Sintaxe: PersistentPasswd on|off


Padrão: Platform dependent
Pode ser usado: server config
Compatibilidade: 1.1.5 and later

Esta opção é utilizada para permitir o acesso apenas para usuários que
possuam seu nome e senha no arquivo /etc/passwd. No caso da utilização de
NIS ou NIS+, deve ser desabilitada esta opção. Note que não é utilizado o
arquivo /etc/shadow por motivos de segurança.
_________________________________________________________________

Port

Sintaxe: Port port-number


Padrão: Port 21
Pode ser usado: server config, <VirtualHost>
Compatibilidade: 0.99.0 and later

Define a porta que será utilizada pelo servidor, podendo ser definida uma
porta diferente para cada servidor virtual.
_________________________________________________________________

RateReadBPS

Sintaxe: RateReadBPS byte_per_sec-number


Padrão: 0
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.2.0 and later

Define a largura da banda a ser utilizada para fazer downloads. Zero


deixa a banda sem limite.
_________________________________________________________________

RateReadFreeBytes

Sintaxe: RateReadFreeBytes number of bytes


Padrão: 0
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.2.0 and later

Define uma certa quantidade de bytes que podem ser transferidos sem
limite de banda, somente após ultrapassar certa quantidade que será
estipular um limite.
_________________________________________________________________

RateReadHardBPS

Sintaxe: RateReadHardBPS on/off


Padrão: off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.2.0 and later

RateReadHardBPS força o limite de RateReadBPS depois que a quantidade de


RateReadFreeBytes for transferida. Isto significa que se o usuário tiver a
banda enorme e tenha baixado a quantidade "livre" rapidamente, HardBPS
parará a transferência até que a média vá para baixo do limite dado. Se a
quantidade de FreeBytes for elevada e o ReadBPS é baixo então o usuário pode
esperar períodos de tempo prolongados até que transferência continue.
_________________________________________________________________

RateWriteBPS

Sintaxe: RateWriteBPS byte_per_sec-number


Padrão: 0
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.2.0 and later

RateWriteBPS configura a largura da banda permitida para upload. Zero não


significa nenhum limite de banda. (veja RateWriteFreeBytes para limitar a
banda somente após alguma quantidade de bytes uploaded). O lugar usual para
esta diretriz orientadora está no bloco <VirtualHost> ou <Directory>.
_________________________________________________________________

RateWriteFreeBytes

Sintaxe: RateWriteFreeBytes number of bytes


Padrão: 0
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.2.0 and later

RateWriteFreeBytes é a quantidade de bytes a ser transferidos sem nenhum


limite de banda, assim com essa opção você pode definir a banda cheia para
arquivos pequenos ao limitar grandes.
_________________________________________________________________

RateWriteHardBPS

Sintaxe: RateWriteHardBPS on/off


Padrão: off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Directory>,
<Global>
Compatibilidade: 1.2.0 and later

RateWriteHardBPS força a banda ao valor dado de RateWriteBPS depois que a


quantidade de RateWriteFreeBytes de arquivos foi transferida. Isto significa
que se o usuário tiver a banda enorme e mandou a quantidade "livre" de
arquivos rapidamente, HardBPS parará transferência até que a média vá para
baixo ao limite dado. Se a quantidade de FreeBytes for elevada e o WriteBPS
é baixo então o usuário pode esperar períodos de tempo prolongados até que
transferência continue.
_________________________________________________________________

RequireValidShell

Sintaxe: RequireValidShell on|off


Padrão: RequireValidShell on
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0 and later

Configura o acesso ao servidor "principal", virtual ou anônimo para


permitir ou negar o acesso de usuários que não têm listado no arquivo
/etc/shells um "tipo de login" (shell) binário. Por padrão, o proftpd
desabilita o acesso de usuários que não tem seu shell em /etc/shells. Se o
arquivo não for encontrado, todos são considerados válidos.
_________________________________________________________________

RootLogin

Sintaxe: RootLoginl on|off


Padrão: RootLogin off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.1.5 and later

Normalmente, o acesso do super usuário é desabilitado. Quando o cliente


tenta conectar-se com o root com a senha correta, uma mensagem especial é
enviada para o syslog. Quando RootLogin está habilitado, o usuário pode
acessar o sevidor sem restrição alguma.
_________________________________________________________________

ServerAdmin

Sintaxe: ServerAdmin "admin-email-address"


Padrão: ServerAdmin root@[ServerName]
Pode ser usado: server config, <VirtualHost>
Compatibilidade: 0.99.0pl10 and later

Define o email do administrador do servidor "principal"ou virtual.


_________________________________________________________________

ServerIdent

Sintaxe: ServerIdent On|Off [identification string]


Padrão: ServerIdent ProFTPD [version] Server (server name) [hostname]
Pode ser usado: server config, <VirtualHost>, <Global>
Compatibilidade: 1.2.0pre2 and later

Configura a mensagem que é mostrada quando um cliente conecta-se ao


servidor. A mensagem padrão é "[nome_da_máquina] FTP server ready".
_________________________________________________________________

ServerName

Sintaxe: ServerName "name"


Padrão: ServerName "ProFTPD Server [version]"
Pode ser usado: server config, <VirtualHost>
Compatibilidade: 0.99.0 and later

Define o nome do servidor que será mostrado quando o cliente se conectar


ao servidor (ou no virtual, caso seja definido no bloco <VirtualHost>)
_________________________________________________________________

ServerType

Sintaxe: ServerType type-identifier


Padrão: ServerType standalone
Pode ser usado: server config
Compatibilidade: 0.99.0 and later

Configura o modo de funcionamento do serviço proftpd. Pode-se assumir os


valores :
* inetd :
o serviço espera para ser utilizado. Primeiramente o pedido é passado
pelo inetd e então depois para o proftpd.
* standalone :
o serviço inicializa e fica "escutando" a porta aguardando por
conexões. As novas conexões resultarão em processos filhos que serão
dedicados para todas os pedidos do novo cliente.
_________________________________________________________________

ShowDotFiles

Sintaxe: ShowDotFiles on|off


Padrão:ShowDotFiles Off
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0pl6 and later -- Deprecated

Se habilitado esta configuração, arquivos iniciados por ponto "." irão


ser listados ao digitar-se comandos para mostrar o conteúdo de diretórios.
_________________________________________________________________

ShowSymlinks

Sintaxe: ShowSymlinks on|off


Padrão: (versions previous to 1.1.5) Off for anonymous logins, On for
normal logins
Padrão: (versions 1.1.5 and beyond) ShowSymlinks On
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0pl6 and later

Define se as ligações simbólicas serão ou não mostradas ao ser feita a


listagem de diretórios.
_________________________________________________________________

SystemLog

Sintaxe: SystemLog filename|NONE


Padrão: None
Pode ser usado: server config
Compatibilidade: 1.1.6pl1 and later
Define um arquivo para os registros das transmissões de ftp realizadas no
servidor. Pode-se usar NONE para desabilitar qualquer maneira de registrar
as transmissões de toda a configuração do servidor.
_________________________________________________________________

TimeoutIdle

Sintaxe: TimeoutIdle seconds


Padrão: TimeoutIdle 600
Pode ser usado: server config
Compatibilidade: 0.99.0 and later

Configura o número máximo de segundos que o proftpd permite que os


usuários fiquem conectado sem receber nenhum dado no controle quanto na
conexão de dados. Se algum dado é recebido em qualquer conexão, o
temporizador é zerado. Configurando o TimeoutIdle para 0, ele é
desabilitado.

Veja mais em: TimeoutLogin, TimeoutNoTransfer


_________________________________________________________________

TimeoutLogin

Sintaxe: TimeoutLogin seconds


Padrão: TimeoutLogin 300
Pode ser usado: server config
Compatibilidade: 0.99.0 and later

Tempo máximo, em segundos, que o cliente deve fornecer seu usuário e


senha.

Veja mais em: TimeoutIdle, TimeoutNoTransfer


_________________________________________________________________

TimeoutNoTransfer

Sintaxe: TimeoutNoTransfer seconds


Padrão: TimeoutNoTransfer 600
Pode ser usado: server config
Compatibilidade: 0.99.0 and later

Configura o tempo máximo, em segundos, que o cliente não utiliza-se de


nenhum comando que resulte e uma conexão passiva ou de dados
(mandando/recebendo um arquivo ou executando um ls, por exemplo) mas
continua conectado.

Veja mais em: TimeoutIdle, TimeoutLogin


_________________________________________________________________

TimeoutStalled

Sintaxe: TimeoutStalled seconds


Padrão: TimeoutStalled 0
Pode ser usado: server config
Compatibilidade: 1.1.6 and later

Configura o tempo máximo, em segundos, que a conexão fica paralisada (não


se digita nada) mas continua ativa. Se definido para 0, não há limitação.
_________________________________________________________________

TransferLog

Sintaxe: TransferLog filename|NONE


Padrão: TransferLog /var/log/xferlog
Pode ser usado: server config, <Anonymous>, <VirtualHost>, <Global>
Compatiblity: 1.1.4 and later

Configura o arquivo a ser utilizado para registro de acessos/comandos do


mesmo modo que para o wu-ftpd.

Veja mais em: ExtendedLog, LogFormat


_________________________________________________________________

Umask

Sintaxe: Umask file octal-mask [directory octal-mask]


Padrão: None
Pode ser usado: server config, <Anonymous>, <VirtualHost>, <Directory>,
<Global>, .ftpaccess
Compatibilidade: 0.99.0 and later

Especifica a permissão que será definida para qualquer novo arquivo ou


diretório. Devem ser utilizados números octais no formato 0xxx.
_________________________________________________________________

UseFtpUsers

Sintaxe: UseFtpUsers on|off


Padrão: UseFtpUsers on
Pode ser usado: server config, <Anonymous>, <VirtualHost>, <Global>
Compatibilidade: 0.99.0 and later

Servidores FTP legados, geralmente verificam um arquivo de autorização


(/etc/ftpusers) quando um cliente tenta se autenticar no servidor. Se o nome
desse usuário estiver no arquivo /etc/ftpusers, o acesso via ftp para o
mesmo será negado.
_________________________________________________________________

UseReverseDNS

Sintaxe: UseReverseDNS on|off


Padrão: UseReverseDNS on
Pode ser usado: server config
Compatibilidade: 1.1.7 and later

Devido ao fato de não ser possível, para os usuários anônimos e alguns


convidados, a verificação do arquivo /etc/hosts então é utilizado o DNS.
Caso ocorram problemas com o DNS, a conexão pode ficar paralisada (stall)
até que seja retornado "timeout". Desabilitando esta opção impede-se a
tentativa de conexão de dados com endereços IP reversos.
_________________________________________________________________

User
Sintaxe: User userid
Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0 and later

Especifica o usuário que o serviço proftpd irá ser executado. Por padrão,
o proftpd é executado como root que é considerado indesejável em todos mas o
mais confiante em configuração de redes.
_________________________________________________________________

UserDirRoot

Sintaxe: UserDirRoot on|off


Padrão: off
Pode ser usado: <Anonymous>
Compatibilidade: 1.2.0pre2 and later

Quando habilitado, caso o usuário teste efetuar conexão, seu diretório


raiz será o sub-diretório com nome do usuário

When set to true, the chroot base directory becomes a subdirectory of


the anonymous ftp directory, based on the username of the current
user. For example, assuming user "foo" is aliased to "ftp", logging in
as "foo" causes proftpd to run as real user ftp, but to chroot into
~ftp/foo instead of just ~ftp.
_________________________________________________________________

UserAlias

Sintaxe: UserAlias login-user userid


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0 and later

Habilita que certos usuários remotos, quando acessarem o servidor, sejam


automaticamente definidos como usuários reais. Note que caso seja utilizado
como apelido um usuário real do sistema, o mesmo não poderá efetuar acesso,
pois apenas terá direitos iguais ao usuário que estará definido.
_________________________________________________________________

UserPassword

Sintaxe: UserPassword userid hashed-password


Padrão: None
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 0.99.0pl5 and later

Cria uma senha particular, diferente da existente no(s) arquivo(s)


/etc/passwd e/ou /etc/shadow. A senha deve ser texto passado pela função
crypt(). Ao invés de utilizar-se de grupos para acesso, através do
UserAlias.

Veja mais em: GroupPassword


_________________________________________________________________

<VirtualHost>
Sintaxe: <VirtualHost address>
Padrão: None
Pode ser usado: server config
Compatibilidade: 0.99.0 and later

Este bloco é utilizado para realizar uma configuração independente do


servidor padrão aplicadas a um servidor particular ou a um endereço IP.
Frequentemente é utilizado em conjunto com IP aliasing e dummy network a
nível de sistema afim de estabelecer um ou mais servidores virtuais que
rodam na mesma máquina. O bloco termina com </VirtualHost>. É possível
utilizar-se de portas diferentes para cada servidor, mas não é válido para
quando o servidor é do tipo inetd (ServerType inetd).

Quando inicializa-se o proftpd, as conexões virtuais são feitas de duas


formas, dependendo da configuração de ServerType:
* inetd: O serviço verifica o endereço de destino e a porta da conexão
requerida pelo inetd. Caso seja referente a algum dos servidores
virtuais a conexão será baseada nesta configuração. Caso não
seja referente a nenhum dos servidores virtuais e nem ao principal é
informado ao cliente de que não há nenhum servidor disponível.
* standalone: Após analisar o arquivo de configuração, o serviço fica à
"escuta" de todas as portas configuradas, executando a quantidade
necessária de processos filhos para prover conexões seguras para o
servidor principal e para cada servidor virtual.
_________________________________________________________________
WtmpLog
Sintaxe: WtmpLog on|off|NONE
Padrão: WtmpLog on
Pode ser usado: server config, <VirtualHost>, <Anonymous>, <Global>
Compatibilidade: 1.1.7 and later

Caso seja desejado que o registro de acesso de usuários seja feito no


arquivo de sistema wtmp (/var/log/wtmp), pois alguns comandos utilizam este
arquivo (exemplo, last).

Esta documentação foi retirada de /usr/doc/proftpd-***/Configuration.html