1.
FTP
2. SERVIDOR FTP
FTP (File Transfer Protocol, puerto 21 TCP) es, como su nombre indica, un protocolo de transferencia de ficheros entre sistemas. Desde un equipo cliente conectamos a un servidor para descargar ficheros desde él o para enviarle nuestros propios archivos.
Entonces,
un servidor FTP es aquel equipo que funciona para ofrecer ficheros a
través del protocolo de FTP a clientes FTP o a un navegador que lo
soporte. Un servidor FTP debe tener un software servidor de FTP que
"escucha" de la red las conexiones que pidan desde otros
equipos.
3.
SISTEMA OPERATIVO
La
presente instalación, se la hará en un Sistema Operativo Linux,
Distribución Debian, Versión 6 (Squeeze).
4.
PAQUETES INSTALADOS
proftpd,
proftpd-mod-ldap, openssl, quota,
libnss-ldapd,
libpam-ldapd,
nscd,
nslcd
5.
INSTALACIÓN DEL PAQUETES NECESARIOS
El
servidor a utilizar será el PROFTPD, por ser uno de los más
versátiles, seguros y características extendidas ya que se pretende
configurar el servidor para un uso muy específico, se comenzará
instalando los paquetes necesarios:
#
apt-get install proftpd proftpd-mod-ldap
Una
vez instalado el servidor PROFTPD, el módulo para autenticación
LDAP, las herramientas para autenticación segura SSL y el módulo de
cuotas, se procederá a hacer algunos ajustes básicos en el archivo
de configuración del servidor que se encuentra en
/etc/proftd/proftpd.conf
5.1.
CONFIGURACIÓN PROFTPD
Configurar
de tal manera que no se permite el acceso a usuarios anónimos y si
se permitan los usuarios locales:
Include
/etc/proftpd/modules.conf
UseIPv6
off
IdentLookups
off
ServerName
"Mi
Servidor FTP"
ServerType
standalone
DeferWelcome
off
MultilineRFC2228
on
DefaultServer
on
ShowSymlinks
on
TimeoutNoTransfer
600
TimeoutStalled
600
TimeoutIdle
1200
DisplayLogin
welcome.msg
DisplayChdir
.message true
ListOptions
"-l"
DenyFilter
\*.*/
DefaultRoot
~ #
Usuarios enjaulados
Port
21
#PARA
NO VERIFICAR EN EL DNS LAS ZONAS INVERSAS (EL ACTIVARLO RALENTIZA SU
ACCESO)
UseReverseDNS
off
<IfModule
mod_dynmasq.c>
</IfModule>
MaxInstances
30
#
Set the user and group that the server normally runs at.
User
proftpd
Group
nogroup
Umask
022
022
AllowOverwrite
on
#
IMPORTANTE DESCOMENTAR ESTA LÍNEA SI SE USA LDAP:
PersistentPasswd
off
TransferLog
/var/log/proftpd/xferlog
SystemLog
/var/log/proftpd/proftpd.log
<IfModule
mod_quotatab.c>
QuotaEngine
off
</IfModule>
<IfModule
mod_ratio.c>
Ratios
off
</IfModule>
<IfModule
mod_delay.c>
DelayEngine
on
</IfModule>
<IfModule
mod_ctrls.c>
ControlsEngine
off
ControlsMaxClients
2
ControlsLog
/var/log/proftpd/controls.log
ControlsInterval
5
ControlsSocket
/var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine
off
</IfModule>
Include
/etc/proftpd/ldap.conf
#
EL SIGUIENTE MODULO ES PARA USAR CONEXIONES SEGURAS (FTPS)
Include
/etc/proftpd/tls.conf
5.2.
AUTENTICACIÓN AL SERVIDOR POR MEDIO DE USUARIOS LDAP
Primeramente instalar los módulos para autenticación al servidor ldap:
#
apt-get install libnss-ldapd libpam-ldapd nscd nslcd
En la instalación, el asistente irá pidiendo una serie de parámetros, para lo cual se deben elegir:
*
La dirección ip o nombre del servidor ldap, y el puerto
ldap://ldapsrv:389/
*
El nombre del dominio en el formato dc=:
dc=Mi,dc=Dominio,dc=com
*
La versión de protocol ldap:
3
Una vez que se hayan instalado los paquetes necesarios, automáticamente se configurará el archivo /etc/nsswitch.conf para autenticación LDAP, para ello se puede verificar que:
passwd:
compat ldap
group:
compat ldap
shadow:
compat ldap
Para verificar que se esté autenticando contra el servidor LDAP, se puede utilizar el comando id seguido de una cuenta de usuario del servidor LDAP, este debería devolver información referente al usuario:
#
id diego.donoso
uid=9045(diego.donoso)
gid=5000(operators) groups=5000(operators)
5.3.
ASIGNACIÓN DE CUOTAS
Referirse al tutorial “Quota” para la instalación y configuración de cuotas de disco.
5.4.
UTILIZANDO UN SERVIDOR SEGURO SSL
Primeramente instalar el módulos SSL:
#
apt-get install openssl
Ahora se generarán los certificados, para ello primero crear una carpeta para guardarlo todo, luego generar la clave des3 del passphrase para el archivo server.key y copiar el resultado a server.key.passphrase
Por último, crear el certificado con SHA1 y 365 días de validez:
#
openssl genrsa -des3 -out server.key 1024
Generating
RSA private key, 1024 bit long modulus
.................++++++
.....................++++++
e is 65537 (0x10001)
.....................++++++
e is 65537 (0x10001)
Enter
pass phrase for server.key:
Verifying
- Enter pass phrase for server.key:
root@localhost:~/certs#
cp server.key server.key.passphrase
root@localhost:~/certs#
openssl rsa -in server.key.passphrase -out server.key
Enter
pass phrase for server.key.passphrase:
writing
RSA key
# openssl req -new -x509 -nodes -sha1 -days 365
/-key
server.key -out server.crt
You
are about to be asked to enter information that will be incorporated
into
your certificate request.
What
you are about to enter is what is called a Distinguished Name or a
DN.
There
are quite a few fields but you can leave some blank
For
some fields there will be a default value,
If
you enter '.', the field will be left blank.
-----
Country
Name (2 letter code) [AU]:ES
State
or Province Name (full name) [Some-State]:Barcelona
Locality
Name (eg, city) []:Barcelona
Organization
Name (eg, company) [Internet Widgits Pty Ltd]:Yomismo
Organizational
Unit Name (eg, section) []:Yomismo2
Common
Name (eg, YOUR name) []:Manuko
Email
Address []:manuko@222.lll
Por
último, se deberá incluir los certificados en el archivo de
configuración TLS del PROFTD /etc/proftdp/tls.conf:
<IfModule mod_tls.c>
TLSEngine
on
TLSLog
/var/log/proftpd/tls.log
#TLSProtocol
SSLv23
TLSOptions
NoCertRequest
AllowClientRenegotiations
TLSRSACertificateFile
/etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile
/etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient
off
TLSRequired
off
</IfModule>
6.
RECOMENDACIONES
Es recomendable enjaular a los usuarios que acceden al servidor FTP, con el fin de que únicamente tengan acceso a su “home”, para evitar la manipulación de otros archivos pertenecientes a los demás usuarios, o inclusive archivos del mismo sistema que puedan afectar su operación.
No hay comentarios:
Publicar un comentario