miércoles, 21 de enero de 2009

Configurar ProFTPd como Servidor Virtual basado en IP y Puertos.

Podemos hacer Servidores de FTP, Virtuales basados en IP, o bien en Puerto (nuestra misma IP).

Forma con IP;

1 Paso: creamos nuestra interfaz virtual y le asignamos la dirección IP (esta interfaz levantada de esta forma solo duraría hasta reiniciar el S.O, aunque en capitulos anteriores ya se vio como hacerla fija editando el archivo /etc/network/interfaces)

192.168.1.100

para ello usamos el comando:

sudo ifconfig eth1:1 192.168.1.100

de esta forma se crea esa interfaz con esa dirección de IP y la mascara de subred por defecto.





Como podemos observar la IP física es del rango B 172.16.2.28 y la virtual rango C 192.168.1.100.

Ahora hay que modificar el fichero de configuración del Servidor FTP, en nuestro caso el fichero es:

/etc/proftpd/proftpd.conf

Lo editamos especificando nuestro Servidor Virtual entre las directivas:

<VirtualHost direccionIP>
#Directivas y parámetros
</VirtualHost>




A continuación captura del este servidor funcionando como Servidor Virtual basado en IP.




Forma por Puerto;

Por defecto el puerto utilizado para el servicio FTP es el " port 21" con lo cual, en nuestro caso un usuario anónimo entraría, en nuestro servidor y cualquier otro por ese puerto, por ser por defecto para el servicio de FTP.

Pero podemos tener otro Servidor Virtual FTP, incluso funcionado al mismo tiempo que otros (virtuales o no virtuales), con la diferencia que utilizaría otro puerto, para acceder al servicio FTP, de forma que tenemos varias ventajas.

1 No saber que existe para el resto usuarios desde fuera.
2 Tener tantos Servidores Virtuales FTP como deseemos asignándoles Puertos.


La configuración es la misma, que para el caso anterior simplemente añadiéndole la directiva "port xx" y el correspondiente puerto deseemos, incluso podemos hacer, un Servidor Virtual basado en IP y ademas en Puerto al mismo tiempo.




Como podemos observar al entrar, como anónimo y no especificar puerto, el cliente Filezilla o cualquier otro, interpreta el puerto el "puerto 21" que es el de por defecto, fijen se en los log devuelve, como intenta con el puerto "21":

192.168.1.100:21

Motivo por el cual no se puede acceder.




Ahora observamos como al poner el puerto "2121" entramos perfectamente.


jueves, 15 de enero de 2009

Configurar ProFTPd con usuarios anónimos.

En el Blog anterior ya se explicaba como se instalaba y configuraba el Servidor FTP, "ProFTPd".

Ahora explicaremos como configurarlo para usuarios "Anonymous".

Lo primero sera crear las carpetas, se utilizaran para cuando entre los Usuarios Anonymous.

cd /var
sudo mkdir ftp


y dentro de esta dos carpetas más, la de apuntes y la de practicas:

cd /ftp
sudo mkdir apuntes

sudo mkdir practicas



Cuando creamos estas carpetas, el propietario es quien las crea es decir "Root" con lo cual tendremos que cambiarle el propietario, utilizaremos el usuario "proftpd" que es el que trae el Servidor lleva el mismo nombre.

Para ello lo haremos asi:

sudo chown -R proftpd /var/ftp


Con lo cual la "-R" significa recursivo es decir todas las carpetas hijas de esta tendrán las mismas características en este caso, mismo propietario.

Ahora vamos al archivo de configuración del Servidor ProFTPd, que es:

sudo gedit /etc/proftpd/proftpd.conf

Y pondremos la directivas necesarias.

Para que solo puedan navegar en la ruta, le dejemos por defecto, es decir solo podrá navegar de ahí hacia adelante, pero nunca subir de nivel en la jerarquía ascendente en forma de árbol, de nuestro sistema de archivos.

DefaultRoot /var/ftp

Para solo se conecten usuarios anónimos, ningun otro usuario.

<Limit LOGIN>
DenyAll
</Limit>

Para definir el acceso de forma Anonima y el directorio raiz, (home de este usuario) se hace con esta directiva.

<Anonymous /var/ftp>
User proftpd
</Anonymous>

Como podemos observar el usuario Anonymous no es ningun usuario real en el sistema, sino que se utiliza un Alias, de otro usuario real.

<Anonymous /var/ftp>
User proftpd
UserAlias anonymous proftpd
</Anonymous>

Añadiremos otras directivas mas como:

RequiereValidShell off ---> Se usa por que el usuario Proftpd, no tiene una shell valida.


Para negar la entrada a todos los usuarios.

<Limit LOGIN>
DenyAll
</Limit>


Pondremos otra directiva "Limit" esta vez dentro de la directiva Anonymous, para que si permitir a todos los usuarios "Anonymous"


<Anonymous /var/ftp>
User proftpd
UserAlias anonymous proftpd
RequiereValidShell
<Limit LOGIN>
AllowAll
</Limit>
</Anonymous>


Ademas el ejercicio nos pide que solo se permite la escritura en la carpeta "practicas" con lo cual limitaremos la escritura en la carpeta "apuntes", con la siguiente directiva.

<Anonymous /var/ftp>
User proftpd
UserAlias anonymous proftpd
RequiereValidShell off
<Limit LOGIN>
AllowAll
</Limit>
<Directory /var/ftp/apuntes>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>

Nuestro fichero de configuración "/etc/proftpd/proftpd.conf" debe de quedar así:



Ahora entramos en nuestro cliente FTP, en nuestro caso "Filezilla", bastaría solo con poner la dirección IP o nombre de red del Servidor queremos conectar para entrar de forma anonima (anonymous).



A continuación capturas de pantallas, primero dejando escribir en practicas y otra no dejando escribir datos en apuntes.



miércoles, 14 de enero de 2009

Instalar y configurar un Servidor Ftp (ProFTPd).

Para Instalar nuestro Servidor Ftp, lo haremos en el S.O. Ubuntu 8.10 x86.
El servidor elegido sera ProFTPd, ya que es muy fácil de instalar y hay gran información en la red de redes.
También instalaremos un cliente Ftp, en nuestro caso el conocido cliente Filezilla, pero esta vez con un entorno gráfico resulta más agradable. Empezamos instalando el ProFTPd, para ello podemos bien descargarnos el programa desde su página web oficial www.proftpd.org o bien desde un terminal que es lo que haremos debido a su facilidad, ejecutamos los siguientes comandos.

sudo aptitude install proftpd


a continuación nos pide confirmación
contraseña de administrador, la introducimos y comienza la instalación.


Ahora nos sale la ventana de instalación del ProFTPd, pidiéndonos que tipo de instalación queremos si deseamos sea inetd (solo se carga en memoria cuando existen peticiones) o bien sea un servicio independiente (permanentemente en memoria). Elegimos Independiente.



Los ficheros de configuración de ProFTPd se encuentran dentro de:


/etc/proftpd.


/etc/proftpd/proftpd.conf

- Fichero de configuración principal:

/etc/proftpd/modules.conf
- Fichero de configuración de sus modulos y características:

Por razones de seguridad vamos a crear un shell falsa para el acceso mediante el FTP para esto vamos a agregar una linea en el archivo /etc/shell.

sudo gedit /etc/shells

Agregamos la siguiente línea al final del archivo:
/bin/false

Esto va a evitar que cualquier usuario que utilice el FTP pueda acceder a nuestra consola de comandos.
Ahora veamos el archivo de configuración del ProFTPd que se encuentra en la ruta:

/etc/proftpd/proftpd.conf


para esto ejecutamos:


sudo gedit /etc/proftpd/proftpd.conf

hacemos cambios necesarios, añadiendo directivas, para que surtan efecto hay que reiniciar el servidor:
sudo /etc/init.d/proftpd restart




Para limitar los usuarios solamente se podrán conectar si se aplica la siguiente directiva.

<Limit LOGIN>
AllowUser jose usuario1 usuario2
DenyAll
</limit>

Para mostrarnos un saludo al entrar al Servidor FTP, la directiva:

ServerIdent on "Texto Bienvenida"


Para avisarnos hemos entrado satisfactoriamente en el Servidor:

AccessGrantMsg "Texto confirmación ha entrado satisfactoriamente"



Para avisarnos no hemos entrado satisfactoriamente en el Servidor:
AccessDenyMsg    "Texto negación de entrada"


Ahora vamos a crear un usuario para acceder al ftp, podemos hacerlo gráficamente o bien
terminal.



En terminal seria:

sudo useradd nombreusuarioftp -p tu_password -d /home/directorio_queramos_darle -s /bin/false

Nota:

En modo consola los directorios deben de haber sido creados con anterioridad.

-p para definir el password,
-d para definir cuál va a ser el directorio principal o home del usuario
-s para indicarle cual es el shell por defecto del usuario, para más información de este comando
puedes colocar man useradd en la consola.



Gráficamente.

Nos vamos a sistema > Administración > Usuarios y Grupos.

Desbloqueamos con nuestra contraseña de administrador y añadimos nuevo usuarios con su nombre
y contraseñas, importante en la pestaña Avanzado cambiar el interprete de comandos por /bin/false.








Crearemos los usuarios "usuario1" y "usuario2", siendo la contraseña 123456 en ambos casos, a parte de poner en la directiva la cuenta administrador.


#####################################################


Ahora instalaremos el Filezilla para ello haremos la intalación desde el Synaptic. Introducimos la casilla de busqueda "filezilla" damos a busqueda, y marcamos las tres casillas, pertenecen a la busqueda realizada. Con ello instalamos la interfaz grafica, y el idioma en Español.




Mostrare unos pantallazos primero con un usuario con contraseña correcta y otro incorrecta, para ver los mensajes responde nuestro Servidor FTP.






Para ver los Log del sistema quien se autentifica bien o no en el Servidor Ftp basta con leer Log, del ProFTPd, se encuentran en:

var/log/proftpd/proftpd.log



Bastaría con buscar las lineas ponen USER nombre_usuario y ver si conectaron o no.