De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Proftp 1.3.x com autênticação via MySQL

Colaboração: André Jaccon

Data de Publicação: 30 de Março de 2007

Neste tutorial iremos mostrar como instalar o Profptd com autênticação pelo MySQL, desta forma fica mais fácil gerênciar as contas de FTP como usuários e grupos, esta documentação foi criada recéntemente para um projeto desenvolvido no laboratório da Blue Systems Tecnologia.

1. Ambiente utilizado:

  • Sistema Operacional Debian Gnu/Linux 4.0 ( Etch )
  • Kernel 2.6.20
  • Proftpd-1.3.1rc2
  • MySQL Standard-4.1.21-pc-linux-gnu-i686-glibc23

2. MySQL

Logado como super usuário, entre com os seguintes comandos no ambiente shell padrão:

  groupadd mysql
  useradd -g mysql mysql
  cd /usr/local
  gunzip < /path/para/mysql/mysql.tar.gz |tar -xvf -
  ln -s mysql-full-path mysql
  cd mysql
  scripts/mysql_install_db
  chown -R root .
  chown -R mysql data
  chgrp -R mysql .
  bin/mysqld_safe --user=mysql &

Para conferir se o MySQL foi iniciado use

  ps -aef |grep mysql

3. Proftpd

Logado como super usuário, entre com os seguintes comandos no ambiente shell padrão:

  tar -zxvf proftpd-1.3.1rc2.tar.gz

será criado uma pasta como proftpd-1.3.1rc2, para isso entre no diretório

  cd proftpd-1.3.1rc2

depois execute

  ./configure \
     --with-modules=mod_sql:mod_sql_mysql \
     --with-includes=/usr/local/mysql/include/ \
     --with-libraries=/usr/local/mysql/lib/
  
  make
  make install

Por padrão o arquivo de configuração do Proftpd fica localizado em /usr/local/etc/proftpd.conf para ter um acesso mais rápido crie um link simbólico para /etc/ utilizando o comando abaixo:

  ln -s /usr/local/etc/proftpd.conf  /etc/

4. Exemplo de arquivo proftpd.conf

  ServerName                      "SERVER"
  ServerType                      standalone
  DeferWelcome                    off
  ServerIdent on                  "[Not Available]"
  MultilineRFC2228                on
  DefaultServer                   on
  ShowSymlinks                    on
  TimeoutNoTransfer               600
  TimeoutStalled                  600
  TimeoutIdle                     1200
  DisplayLogin                    welcome.msg
  DisplayFirstChdir               .message
  ListOptions                     "-l"
  DenyFilter                      \*.*/
  Port                            21
  MaxInstances                    30
  User                            nobody
  Group                           nogroup
  Umask                           022  022
  DefaultRoot ~
  AllowOverwrite                  on
  RequireValidShell               off
  SQLAuthTypes Plaintext Crypt
  SQLAuthenticate userid
  SQLConnectInfo proftpd@localhost proftpd proftpd
  SQLUserInfo ftpusers login senha uid gid homedir shell

5. Carga nos scripts de SQL para criação de tabelas de usuários e grupos

Logado como root no shell entre com o comando abaixo:

  /usr/local/mysql/bin/mysqladmin create proftpd -u root -p
  /usr/local/mysql/bin/mysqladmin create proftpd -u root -p/mysql -u root -p

carregue os scripts que encontram-se dentros da pasta sql com o comando source:

  CREATE TABLE ftpusers (
     userid VARCHAR(30) NOT NULL UNIQUE,
     passwd VARCHAR(80) NOT NULL,
     uid INTEGER UNIQUE,
     gid INTEGER,
     homedir VARCHAR(255),
     shell VARCHAR(255)
   )

É importante criar um usuário e senha para o banco de dados proftpd, para isso entre com os comando abaixo:

Crie um usuário no banco de dados MySQL com o comando:

depois garanta o acesso ao usuário proftpd com o comando:

  GRANT SELECT , INSERT , UPDATE , DELETE , CREATE ,
        DROP , FILE , INDEX , ALTER , 
        CREATE TEMPORARY TABLES ,
        EXECUTE ON * . * TO 'proftpd'@'locahost'
        IDENTIFIED BY 'senha'

após adicionar o usuário garanta o acesso ao banco de dados proftd ao usuário proftpd com o comando:

  GRANT ALL PRIVILEGES ON `proftpd` . * TO 'proftpd'@'localhost' WITH GRANT OPTION ;

depois

  flush privileges;

6. Reiniciando o serviço:

  killall -HUP proftpd

Pronto, o serviço de FTP com o Proftpd estará no ar e funcionando normalmente.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de André Jaccon