O ProFTP é o principal servidor de FTP em uso no mundo. Ao contrário do ftpd, o ProFTP contém muitas opções de configuração e ajustes. Se você precisa de um servidor de FTP parrudo, sua opção será o ProFTP. Para instalá-lo, digite:
# apt-get install proftpd
Agora é necessário configurá-lo. Abra o arquivo /etc/proftpd/proftpd.conf.
# vi /etc/proftpd/proftpd.conf
A primeira opção importante é a ServerType. É necessário analisar se o servidor será muito usado, ou se ficará a maior parte do tempo ocioso. Se esse for o caso, é interessante deixá-lo como inetd. Essa opção faz com que o ProFTP só seja executado quando houver alguma requisição para ele. O Inetd (ou outro programa semelhante, como xinetd e openbsd-inetd) fica monitorando as requisições da porta 21 usada pelo protocolo FTP e chama o programa proftpd para tratar essas requisições. Isso economiza recursos, uma vez que o programa servidor só estará realmente rodando quando for necessário. Agora, se o servidor FTP for muito acessado será interessante deixar que ele rode como standalone, ou seja, ele mesmo cuidará das requisições de FTP. No meu caso, ele ficará como inetd
ServerType inetd
Dependendo de qual programa inetd você está usando, a configuração pode ser um pouco diferente. Na minha máquina estou usando o openbsd-inetd. Nesse sistema é necessário verificar se existe uma linha semelhante a essa no arquivo /etc/inetd.conf.
ftp stream tcp nowait root /usr/sbin/proftpd /usr/sbin/in.ftpd
Foge ao objetivo desse artigo explicar essa linha. Para mais informações consulte a documentação do programa inetd. Agora é necessário reiniciar o openbsd-inetd.
# /etc/init.d/openbsd-inetd restart
A partir de agora o inetd estará ouvindo a porta 21. Para verificar se isso está ocorrendo digite:
$ netstat -na | grep :21
tcp 0 0 0.0.0.0:21 0.0.0.0:* OUÇA
Podemos também verificar quem está escutando a porta 21.
$ lsof -i tcp:21
Não houve retorno. Vamos ver se o ProFTP está rodando.
$ ps wax | grep proftp
4278 pts/0 S+ 0:00 grep --color=auto proftp
O ProFTP não está rodando. Vamos tentar a conexão.
$ ftp localhost
ftp: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
220 ProFTPD 1.3.1 Server (Debian) [127.0.0.1]
Name (localhost:ricardo): ricardo
331 Password required for ricardo
Password:
230 User ricardo logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Reparem que primeiramente a conexão foi recusada. Isso porque o inted leva um tempo para subir o ProFTP. Mas na segunda tentativa a conexão foi feita. E reparem também que foi o ProFTP quem recebeu a conexão.
E agora vejamos novamente quem está usando a porta 21.
$ lsof -i tcp:21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ftp 2387 ricardo 3u IPv4 5887019 0t0 TCP localhost:53469->localhost:ftp (ESTABLISHED)
ftp 2387 ricardo 4u IPv4 5887019 0t0 TCP localhost:53469->localhost:ftp (ESTABLISHED)
ftp 2387 ricardo 5u IPv4 5887019 0t0 TCP localhost:53469->localhost:ftp (ESTABLISHED)
Vamos ver se o ProFTP está rodando.
$ ps wax | grep proftp
4325 ? Ss 0:00 proftpd: connected: 172.20.120.4 (172.20.120.4:53512)
4367 pts/2 S+ 0:00 grep --color=auto proftp
Exatamente como falei, o ProFTP está rodando. Se eu desconectar do FTP o ProFTP deve ser retirado na memória.
ftp> bye
221 Goodbye.
$ ps wax | grep proftp
7222 pts/2 S+ 0:00 grep --color=auto proftp
Exatamente como previsto. Uma outra vantagem em usar o inetd é que não é necessário reiniciar o ProFTP quando seus arquivos de configuração são alterados.
Você pode querer que o usuário tenha acesso somente ao seu drive home. Para isso, descomente, no arquivo /etc/proftpd/proftpd.conf , a diretiva abaixo.
DefaultRoot ~
Também pode ser interessante filtrar os usuários que terão acesso ao FTP. Uma forma de fazer isso é validando somente aqueles que possuem um shell válido (uma entrada no arquivo /etc/passwd com bash ou sh, por exemplo). A seguinte diretiva faz isso.
RequireValidShell on
Você também pode incluir os usuários que não deverão ter acesso ao FTP colocando-os no arquivo /etc/ftpusers.
Se você precisar configurar o FTP anônimo (FTP público), abra o arquivo /etc/proftpd/proftpd.conf e descomente as linhas do bloco e certifique-se de que o usuário ftp não esteja no arquivo /etc/ftpusers.
Agora é possível usar o FTP para disponibilizar publicamente seus arquivo. Você também pode usar o ProFTP para servir arquivos de outros sites. Para isso edite o arquivo /etc/proftpd/virtuals.conf
O ProFTP ainda tem muitas outras opções que certamente vão te atender.
Nenhum comentário:
Postar um comentário