Sistemes Telemàtics

STI-2

GNU/Linux

Serveis i clients de xarxa bàsics:  FTP i SSH

7/11/08

DOCUMENTACIÓ

1- Introducció: Els serveis i clients FTP i ssh.

Quan posen en marxa un servei telnet, ens podren connectar a l'ordinador servidor des d'un altre ordinador que executi un programa client telnet. Un usuari que utilitzi un client telnet des del seu ordinador, es pot connectar a un ordinador remot que tingui en marxa el servei telnet, i llavors, per mitjà del programa client, podrà executar comandes del sistema operatiu de l'ordinador servidor remot, o executar programes que es trobin dins de l'ordinador servidor remot. És a dir, tindrà una consola en el seu ordinador, i dins d'aquesta consola es trobarà amb l'interpret de comandes de l'ordinador servidor, de manera que podrà escriure comandes o cridar a programes, però, aquestes comandes o programes no s'executaran sobre el propi ordinador, sino que s'executaran en el servidor. Dins de la consola, el propi ordinador només serà una pantalla i un teclat, i les ordres escrites, s'executaran sobre l'ordinador servidor remot.
Per poder connectar-se a un servidor telnet, cal esser un usuari vàlid de l'ordinador sevidor, i per tant, abans de començar a treballar es demanarà a l'usari un login i password. Aquest login i password no té perquè coincidir amb el login i password que té l'usuari a l'ordinador client.
Aquest servei és una antic, i treballa sense encriptar la informació que es transmet per la xarxa, raó per la qual no és gaire segur. En el seu moment, no calia preocupar-se per la seguretat, però, amb el denvolupament i creixement d'Internet i de les xarxes basades en TCP/IP, el tema de la seguretat és ara molt important, i hem de tenir moltes precaucions abans de posar en marxa un servei d'aquestes característiques. Tot i això, encara és un servei útil, perquè és fàcil d'instal.lar i posar en marxa, i també és fàcil d'utilitzar.

a) Servei FTP (File Transfer Protocol): Servei de nivell d'aplicació de la família de protocols TCP/IP. Quan posem en marxa el servei FTP en un ordinador, aquest ordinador es converteix en un servidor FTP. Posar en marxa el servei FTP vol dir carregar en memòria i executar en segon terme un programa que implimenti que el protocol FTP tal i com es troba definit al document RFC 959.Dins del conjunt de documents RFC poden trobar les especificacions dels diversos protocols de la família TCP/IP sobre la qual es basa Internet. Aquests documents es troben publicats a Internet a la següent pàgina web: http://www.rfc-editor.org/. El grup internacional que porta a terme aquesta tasca és la IEFT(Internet Engineering Task Force).

Quan posen en marxa un servei FTP, ens podren connectar a l'ordinador servidor des d'un altre ordinador que executi un programa client FTP. Un usuari que utilitzi un client FTP des del seu ordinador, es pot connectar a un ordinador remot que tingui en marxa el servei FTP, i llavors, per mitjà del programa client, podrà transferir fitxers que es trobin a l'ordinador servidor remot cap el seu ordinador, o enviar fitxers que es troben al seu ordinador cap l'ordinador servidor remot. O sigui, és un protocol que permet transferir fitxers entre dos ordinadors.

a) Servei SSH (Secure SHell) : Servei de nivell d'aplicació de la família de protocols TCP/IP. Quan posem en marxa el servei ssh en un ordinador, aquest ordinador es converteix en un servidor ssh. Posar en marxa el servei ssh vol dir carregar en memòria i executar en segon terme un programa que implimenti que el protocol SSH tal i com es troba definit a una sèrie de documents mantinguts pel grup de treball IETF Secure Shell working group que forma part de la IETF. Dins de la pàgina web d'aquest grup de treball podem trobar tota la documentació tècnica i especificacions d'aquest protocol. Actualmet existeixen les versions SSH1 i SSH2 del protocol, però la versió 1 és obsoleta.
Quan posen en marxa un servei SSH, ens podren connectar a l'ordinador servidor des d'un altre ordinador que executi un programa client SSH. Un usuari que utilitzi un client SSH des del seu ordinador, es pot connectar a un ordinador remot que tingui en marxa el servei SSH, i llavors, per mitjà del programa client, podrà executar ordres del sistema operatiu de l'ordinador servidor remot, o executar programes que es trobin dins de l'ordinador servidor remot. És a dir, tindrà una consola en el seu ordinador, i dins d'aquesta consola es trobarà amb l'interpret de línia d'ordres de l'ordinador servidor, de manera que podrà escriure ordres del sistema o cridar a programes, però, aquestes ordres del sistema o programes no s'executaran sobre el propi ordinador, sino que s'executaran en el servidor. Dins de la consola, el propi ordinador només serà una pantalla i un teclat, i les ordres escrites, s'executaran sobre l'ordinador servidor remot.
Entre les divereses prestacions del protocol SSH una d'especialment important, és la que proporciona encriptació de les dades transmesses i també del login i password, amb la qual cosa, el fa un mètode recomanable per proporcionar accés a un ordinador remot quan treballem amb canals de transferència d'informació sense seguretat (com per exemple Internet). SSH proporciona un canal de comunicació segur entre client i servidor, encara que els canal de comunicació entre els dos ordinador no siguin segurs, gràcies a diversos mecanismes entre els quals estan l'encriptació de dades i el sistema d'autentificació.

2- Client FTP: ftp
El programa ftp és un client del protocol FTP. Si volem realitzar una connexió a un ordinador servidor, hem de saber el seu nom o adreça IP, i el nostre login i password dins de l'ordinador remot. Suposem que som l'usuari joanbs amb password fgjfgifi de l'ordinador 172.16.250.80. Per connectar-nos, executarem:

jbenets@kh10:~> ftp 172.16.250.80
Connected to 172.1625.0.80 (172.16.0.47).
220 mh23.etpc.net FTP server (Version 6.5/OpenBSD, linux port 0.3.2) ready.
Name (172.16.250.80:jbenets):joanbs
331 Password required for collados.
Password:
230- Have a lot of fun...
230 User joanbs logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> (Això és un interpret de comandes especial de l'ordre ftp, no del sistema operatiu. Té les seves pròpies comandes.Per veure l'ajut es pot executar help)

Per sortir:

ftp> quit
221 Goodbye.
jbenets@kh10:~>(tornem a l'interpret de comandes de l'ordinador local)

Algunes ordres que es poden utilitzar dins del client FTP són:

cd: Per canviar de directori dins de l'ordinador remot.
lcd: Per canviar de directori dins de l'ordinador local.
get: Transferir un fitxer de l'ordinador remot cap a l'ordinador local.
put: Transferir un fitxer de l'ordinador local cap a l'ordinador remot.
quit: Sortir del client FTP.

3- Client SSH: ssh
El programa ssh és un client del protocol SSH2. Si volem realitzar una connexió a un ordinador servidor, hem de saber el seu nom o adreça IP, i el nostre login i password dins de l'ordinador remot. Suposem que som l'usuari joanbs amb password fgjfgifi de l'ordinador 172.16.250.80. Per connectar-nos, executarem:

jbenets@kh10:~> ssh -l joanbs 172.16.250.80
joanbs@172.16.250.80's password:
Last login: Wed Oct 27 13:35:45 2004 from kh10.etpc.net
Have a lot of fun...
joanbs@mh23:~> (això ja és l'interpret de comandes de l'ordinador remot)

Per sortir del servidor farem servir l'ordre logout:

joanbs@mh23:~> logout
Connection to 172.16.250.80 closed.
jbenets@kh10:~> (tornem a l'interpret de comandes de l'ordinador local)

Si és el primer cop que es connectem, podem trobar-nos amb això:

jbenets@kh10:~> ssh -l joanbs 172.16.250.80
The authenticity of host '172.16.258.80 (172.16.0.47)' can't be established.
RSA key fingerprint is fd:70:9a:e6:64:b3:c5:94:8a:7d:0c:a9:af:ff:c3:f3.
Are you sure you want to continue connecting (yes/no)? yes <--- això ho posen nosaltres.
Warning: Permanently added '172.16.0.47' (RSA) to the list of known hosts.

No cal preocupar-se, forma part del procés d'autentificació. Ho farà només el primer cop, i de seguida sortirà:

joanbs@172.16.250.80's password:

4- Servidor ssh (secure shell)
El servidor ssh permet connectar un usuari que treballa en una màquina local a una altra màquina remota, i executar comandes en la màquina remota. A més a més encripta les comunicacions entre els dos ordinadors.

El programa que proporciona aquest servei es diu sshd i es troba a /usr/sbin. El programa que permet controlar a sshd posant-lo en marxa, aturant-lo o reiniciant-lo és el programa rcsshd. Així, si volem iniciar el servidor ssh, només hem d'executar: rcsshd  start. Si volem aturar el servidor ssh, només hem d'executar: rcsshd  stop. Si volem reiniciar el servidor ssh (per exemple, després d'haver modificat un dels seu arxius de configuració) només hem d'executar: rcsshd  restart.

Els arxius de configuració del servidor ssh es troben a /etc/ssh, essent especialment important el fixer sshd_config.

6- Servidor vsftp (very secure ftp)
El servidor ftp permet connectar un usuari que treballa en una màquina client local a una altra màquina servidora remota, i descarregar o fitxers que es troben en la màquina servidora remota cap a l'ordinador client local, o pujar fitxers des de l'ordinador clinet local cap a la màquina servidora remota.

Un programa servidor que proporciona aquest servei es diu vsftpd i es troba a /usr/sbin. El programa que permet controlar a vsftpd posant-lo en marxa, aturant-lo o reiniciant-lo és el programa rcvsftpd. Així, si volem iniciar el servidor FTP, només hem d'executar: rcvsftpd  start. Si volem aturar el servidor FTP, només hem d'executar: rcvsftpd  stop. Si volem reiniciar el servidor FTP (per exemple, després d'haver modificat un dels seu arxius de configuració) només hem d'executar: rcvsftpd  restart.

L'arxiu de configuració del servidor FTP es troba /etc/vsftpd.conf.

7-Utilitzant el client telnet per connectar-se a qualsevol port utilitzat per un servei de xarxa.
El programa telnet és un client del protocol TELNET. El protocol TELNET ens permet connectar-nos a un . El programa telnet és un client del protocol TELNET, que dóna un servei igual que el SSH però sense encriptació de dades, login i password, i que a més té un sistema d'autentificació menys segur i sotisficat que SSH. Aquest protocol és molt més antic que el SSH.

Amb Un client TELNET ens podem connectar a un servidor TELNET, o també e s pot utilitzar per connectar-nos a un ordinador pel port que volguem. Si volem connectar-nos al servidor ftp (que utilitza el port 21) de qualsevol ordinador, haurem de fer servir el client telnet de la següent manera:

telnet   IP_Servidor   Número_Port_Servei

Així per exemple, per connectar-nos a un servidor ftp amb el client telnet farem el següent:

telnet  172.16.0.47  21

però llavors, haurem de saber les comandes del protocol ftp per poder entrar i descarregar un fitxer, una web o un correu electrònic. Aquesta feina ja la fan per nosaltres els programes clients d'aquests i altres protocols.

PRÀCTICA

0-Canvia l'arxiu de configuració del servei ssh de manera que aquest servei escolti pel port 63999. Reinicia el servei, i comprova amb netstat que el servei escolta pel port indicat.
1-Connectat via ssh al teu propi ordinador, i comprova l'estat de les connexions. Fes el mateix amb l'ordinador d'un company. Torna a deixar el servidor ssh escoltant pel port 22.
2-Modifica l'arxiu de configuració del servidor SSH perquè només accepti connexions d'ordinadors de la subxarxa 172.16.0.0. Reinicia el servei, i comprova amb netstat que el servei funciona de la manera indicada.
3-Canvia el número màxim de vegades que ens podem autentificar a 2. Fes que l'usuari root no es pugui connectar directament, i que tinguem un període màxim per autentificar-nos de 1 minut. Comprova que no pots autentificar-te més de dues vegades i que no pots obrir directament uns sessió com a usuari root. Espera un minut per autentificar-te, i comprova si pots connectar-te.
4-Comprova la resposta del sistema a una connexió d'un client ssh, si tanques el port, aturant el servei SSH. Comprova que passa amb el client si tanques el servei mentre hi ha una connexió establerta.
5-Configura el teu servidor FTP perquè funcioni en mode standalone, i que només els usuaris de sistema es puguin connectar. Comprova que els usuaris del sistema es puguin connectar. Fes ara que no es puguin connectar i comprova que passa.
6-Fes una connexió ftp al teu propi ordinador. Comprova l'estat de les connexions de la màquina amb l'ordre netstat. Comprova perquin port s'esta connectant el client i per quin port el servdidor. Desconnectat, torna-ho a fer, i torna a comprovar els ports. Comprova si hi ha cap diferència. Per què hi ha aquesta diferència?.
7-Comprova la resposta del sistema a un ftp, si tanques el port, aturant el servei ftp.
8-Torna a activar el servei ftp. Comprova l'estat de les connexions, quan es connecta un company, en comptes de connectar-te tu mateix.
9-Canvia el port pel qual escolta el servidor FTP per defecte. Fes que sigui el port 21000 (Utlitza la directiva listen_port). Intenta connectar-te amb un client gràfic al servidor.
10-Utilitza l'ordre netstat que vam utiitzar la pràctica passada per tenir un arxiu de les connexions en mode continu. .Connectat a ftp.upc.es. Ves al directori /pub/softcatala/firefox/2.0.0.7/linux. Descarrega firefox-2.0.0.7tar.gz. Tanca la connexió via FTP. Atura el procés netstat. Llegeix el fitxer de connexions establertes. Quantes connexions hi han mentre es descarrega el fitxer?. Perquè?. Quin port utilitza el teu servidor per la connexió de dades? Per què?.
11-Utilitza l'ordre netstat que vam utiitzar la pràctica passada per tenir un arxiu de les connexions en mode continu. .Connectat al teu servidor FTP. Ves al directori /opt/kde3/bin. Descarrega umbrello. Tanca la connexió via FTP. Atura el procés netstat. Llegeix el fitxer de connexions establertes. Quantes connexions hi han mentre es descarrega el fitxer?. Perquè?. Quin port utilitza el teu servidor per la connexió de dades? Per què?.
12- Canvia la directiva pasv_enable a YES i connect_from_port_20 a NO. Torna a fer l'apartat anterior i comprova que passa ara.
13- S'ha de lliurar un informe de la pràctica en format PDF a l'adreça de correu electrònic cf(arrova)collados.org. El nom del fitxer serà sti2_nom_cognom_pr3_linux.pdf. Nom i cognom són els vostre propis. A l'assumpte del correu heu de posar sti2_nom_cognom_pr3_linux. El vostre nom, cognom i curs també ha de posar-se al principi del treball. L'últim dia per lliurar el treball és el 28-11-2008. Cada dia que passi d'aquesta data, treuré dos punts a la nota del treball.