OVH Community, your new community space.

Configurar um servidor de ficheiros com proFTPd


Ludgero
26-03-09, 11:48
[A utilização deste tutorial é evidentemente da vossa inteira responsabilidade. Não me culpem por danos
que possam inflingir nos vossos servidores, estou apenas a tentar ajudar-vos. Testem e pesquisem
antes de seguir estas dicas ].

Para montar rápida e facilmente um servidor ftp, irei usar neste exemplo a daemon proftpd,
visto ser uma das mais usadas nos servidores.
Os seguintes passos podem ser seguidos para várias distribuições do Linux, mas foram testados
apenas em Ubuntu Server e Gentoo.
__________________________________________________ __________________________________________________ _-
-- instalar o prpftpd --
gentoo:

# emerge proftpd

ubuntu:

$sudo apt-get install proftpd
== na interface de configuração escolham se querem um servidor inetd(ocasional) ou standalone(sempre "available") ==
== podem sempre mais tarde alterar esta escolha no ficheiro proftpd.conf ==

__________________________________________________ __________________________________________________ _-
__________________________________________________ __________________________________________________ _-
-- criar utilizadores para ftp e as pastas onde
poderão fazer download/upload partilhado --

já deverão ter uma shell que não permita aos utilizadores correrem nada no vosso sistema (/bin/false),
senão criem-na:

(gentoo)#vi /etc/shells
(ubuntu)$sudo vi /etc/shells

e adicionem a linha /bin/false

criem as pastas do espaço para transferências ftp (neste exemplo "XferFTP" e subpastas "download" e "upload"):
(gentoo)#cd /home
#mkdir XferFTP
#cd XferFTP
#mkdir downolad
#mkdir upload

(ubuntu)$ (os mesmos comandos em user root ou com "sudo"...)

para dar permissões apropriadas às pastas:
(dentro de /home)
(gentoo)#chmod 755 XferFTP
#cd XferFTP
#chmod 755 download
#chmod 777 upload

(ubuntu... a mesma história)

agora criem o grupo "apenasftp" e o utilizador "apenasftp":

(gentoo)#groupadd apenasftp
(ubuntu)$sudo addgroup

(gentoo)#adduser apenasftp -p --home /home/XferFTP -s /bin/false
(ubuntu)$sudo adduser apenasftp -p
--home /home/XferFTP -s /bin/false

adicionem o utilizador "apenasftp" ao grupo "apenasftp"

(gentoo)#usermod -g apenasftp apenasftp
(ubuntu)$sudo usermod -g apenasftp apenasftp
__________________________________________________ __________________________________________________ _-

__________________________________________________ __________________________________________________ _-
-- configurar o servidor --

Para configurar o servidor use o ficheiro "/etc/proftpd/proftpd.conf"
(ou "/etc/proftpd.conf" para ubuntu dependendo da configuração)

o ficheiro proftpd.conf deverá ficar parecido com o seguinte:
__________________________________________________ __________________________________________________ _
ServerName "===="
ServerType standalone
DefaultServer on
RequireValidShell off
RootLogin on
AuthPAM on

# Port 21 is the standard FTP port.
Port 21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 5

# Set the user and group under which the server will run.
User nobody
Group nobody

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite on

IdentLookups off
UseReverseDNS off
__________________________________________________ __________________________________________________ _
este ficheiro serve para configurações mais avançadas do que as aqui descritas...
há muitas directivas a poder usar
__________________________________________________ __________________________________________________ _-
façam restart ao proftpd:

(gentoo)#/etc/init.d/proftpd restart
(ubuntu)$sudo /etc/init.d/proftpd restart

[E ESTÁ FEITO!!]

agora liguem-se ao vosso servidor com um cliente ftp gráfico (ou a partir de uma shell)
~$ ftp 213.251.XXX.XXX
Connected to 213.251.XXX.XXX.
220 ProFTPD 1.3.1rc2 Server (====) [213.251.XXX.XXX]
Name (213.251.XXX.XXX:apenasftp): ftp
password requested for ftp:

(metam a password e divirtam-se)
Ah!! estes dois comandos para o óbvio:
put
get

para aprender mais:
sobre comandos ftp:
http://www.criarweb.com/artigos/comandos-ftp.html
sobre o proftpd: http://www.proftpd.org/docs/howto/index.html