Instalar pacotes:
proftpd:
O ProFTPD é um servidor ftp altamente configurável para sistemas operacionais unix. É projetado para ser um substituto direto para o proftpd. A documentação completa está disponível em http://www.proftpd.org, incluindo o manual de referência para as diretivas de configuração do servidor.
anonftp:
Contém os arquivos necessários para permitir acesso ftp anônimo a sua máquina. Isso deixa qualquer usuário pegar arquivos de sua máquina sem ter uma conta, o que é um meio popular de tornar programas disponíveis na Internet.
Após instalar, verifique se existe a linha :
ftp 21/tcpno arquivo /etc/services, pois é onde está sendo definida a porta de ftp.
E também, verificar se a linha abaixo, do arquivo /etc/inetd.conf está descomentada/habilitada.
ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd e não ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -aCaso não esteja, basta descomentar e reinicializar o serviço inet :
[root@localhost]# /etc/rc.d/init.d/inet stop
[root@localhost]# /etc/rc.d/init.d/inet start
A palestra é destinada às opções mais "relevantes/interessantes" que foram
encontradas na documentação do serviço ftpd (proftpd).
Para maiores configurações, deve-se utilizar-se dos seguintes arquivos :
1-) /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. 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 mais importantes/relevantes --------- 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