M06-Administració de Sistemes Operatius
UF1-Administració avançada de sistemes operatius ASIX2
Pràctica 1: Instal·lació, configuració i us de serveis d'accés i administració remota en S.O. lliures
20-09-2019

INSTAL·LACIÓ, CONFIGURACIÓ I US DE SERVEIS D'ACCÉS I CONFIGURACIÓ REMOTA EN S.O. LLIURES


CONDICIONS DEL TREBALL
1- Comprovació de la pràctica:
     a) Part 1 a Part 4: 27-09-2018 de 17h a 19h
     b) Part 5 a 7: 4-10-19 de 17h a 19h
    
c)
Part 8 a 10: 11-10-19 de 17h a 19h

DOCUMENTACIÓ
a) Documentació  de Sergi Tur
b) Documentació de l'IOC
c) Documentació sobre TeamViewer
d) Documentació sobre Criptografia de clau pública
e) Documentació sobre ssh-agent i ssh-add
f)  Documentació sobre ssh-keygen
g) Documentació sobre sshd_config
h) Documentació sobre sshfs
i)  Documentació sobre reverse ssh port forwarding
j)  Més documentació sobre reverse ssh port forwarding
k)
Més documentació sobre reverse ssh port forwarding amb una explicació completa dels paràmetres
l)  Documentació bàsica sobre el firewall (tallafocs) ufw
m)  Més documentació bàsica sobre el firewall (tallafocs) ufw

PRÀCTICA (1a PART): INSTAL·LACIÓ DEL SISTEMA
1-  Amb VirtualBox crea una màquina virutal amb les següents característiques:  a) Tipus de sistema operatiu: Linuxb) Versió: Debian, c) Nom: debian-10.1.0-asix2-m06, d) Memòria assignada a la màquina virtual: 1GB, e) Disc dur: debian-10.1.0-asxi2-m06.vdi de 8GB, f) Habilita PAE/NX a les característiques del processador, g) Fes el disc dur el primer dispositiu d'arrancada, h) Treballa amb l'opció de  "Adaptador Pont" associat a la  targeta de xarxa Ethernet.
2- Posa en marxa la màquina virtual. Instal·la un sistema Debian 10.1.0 amb les següents caracterísitiques:
   
a) Nom de l'equip: xxxyyy-m06 (xxx=tres primeres lletres del teu nom, yyy=tres primeres lletres del teu primer cognom).
    
b) Domini: fjeclot.net
   
c) Usuari root amb contrasenya fjeclot
    d) Usuari per defecte: xxxyyy  (xxx=tres primeres lletres del teu nom, yyy=tres primeres lletres del teu primer cognom) amb contrasenya clotfje
   
e) Configuració de xarxa: Dinàmica (via DHCP)
    f) Dins de les opcions d'instal·lació de programari, instal·la:  Debian desktop environment, GNOME, MATE, web server, print server i Utilitats estàndard del sistema.
3- Un cop l'equip estigui en funcionament, instal·la el paquet openssh-server que és una implementació d'un servidor SSH (secure shell) d'acord amb les especificacions del document RFC de la IETF.
4-
Canvia el servidor Debian a l'opció xarxa interna.
5- Des de Network-manager escriu la següent configuració de xarxa:
a) Adreça IP 192.168.1.x, b) Màscara 255.255.255.0, c) Router  192.168.1.1, d) Servidors DNS  80.58.0.33 i 80.58.32.97 i e) Domini de recerca: fjeclot.net. 
 
PRÀCTICA (2a PART): CONTROL DEL SERVIDOR SSH DEL PAQUET openssh

1-
Comprova amb l'ordre netstat que el servidor està executant-se, per quin número de port escolta  i quina és la ID del procés associat al servidor. Indica sobre quin tipus de port (TCP o UDP) funciona el servidor ssh.
2- Comprova l'estat del servidor ssh amb l'ordre service. Comprova el nom del programa servidor ssh.
3- Atura el servidor ssh amb l'ordre service. Comprova l'estat del servidor. Comprova també amb netstat que no està en funcionament.
4- Torna a executar el servidor ssh amb l'ordre service. Comprova l'estat del servidor. Comprova també amb netstat que no està en funcionament i si el número de port i el PID han canviat o no.

PRÀCTICA (3a PART): ACCÉS REMOT DES D'UBUNTU AMB UN CLIENT SSH AL SERVIDOR SSH SOBRE DEBIAN
1- Instal·la  des d'Ubuntu
el paquet openssh-client que és una implementació d'un client SSH  d'acord amb les especificacions del document RFC de la IETF.  Comprova que el paquet ha estat instal·lat.
2- Ara canvia el client Ubuntu a
l'opció de  "xarxa interna". Des de Network-manager escriu la següent configuració de xarxa: a) Adreça IP  192.168.1.x , b) Màscara 255.255.255.0, c) Router  192.168.1.1, d) Servidors DNS  80.58.0.33 i 80.58.32.97 i e) Domini de recerca: fjeclot.net.
3- Comprova que els 2 equips (Debian i Ubuntu)  poden fer-se pings entre ells.
 
4- Accedeix via terminal al servidor ssh del debian des del client ssh d'ubuntu. Utilitza la notació: ssh  -l  nom_usuari  adreça_ip per connectar-t'hi. Si és el primer cop que et connectes respon yes a la pregunta que et fa el sistema.
5- Desconnectat del servidor amb l'ordre exit.
6- Accedeix via terminal al servidor ssh del debian des del client ssh d'ubuntu. Utilitza la notació: ssh  nom_usuari@adreça_ip per connectar-t'hi. Si és el primer cop que et connectes respon yes a la pregunta que et fa el sistema.
7- Des del servidor debian comprova l'estat de les connexions.  És important coneixer el significat i la informació que donen les columnes "Proto", "Local Address", "Foreign Addres", "State" i "PID/Program name". 
8- Comprova quantes vegades  s'està executant el programa sshd.
9- Des d'ubuntu comprova l'estat de les connexions. Troba les principals diferències amb la resposta donada pel sistema a l'apartat 4.
10- Desconnectat del servidor amb l'ordre logout.
11- Des de debian comprova ara l'estat de les connexions i comprova quantes vegades s'està executant el programa sshd.

PRÀCTICA (4a PART): ACCÉS REMOT DES DE WINDOWS AMB EL CLIENT SSH putty AL SERVIDOR SSH SOBRE DEBIAN
1- Instal·la el program putty en Windows XP/7/8
.
2- Ara canvia el client Windows XP/7/8 a l'opció de  "xarxa interna". Després escriu la següent configuració de xarxa: a) Adreça IP  192.168.1.x, b) Màscara 255.255.255.0, c) Router  192.168.1.1, d) Servidors DNS  80.58.0.33 i 80.58.32.97 i e) Domini de recerca: fjeclot.net 
2- Accedeix via terminal al servidor ssh del debian des del client ssh de Windows:








2- Des del servidor debian comprova ara l'estat de les connexions i comprova quantes vegades s'està executant el programa sshd.
3- Des de Windows comprova ara l'estat de les connexions.
4- Desconnectat del servidor amb l'ordre exit o logout.

PRÀCTICA (5a PART): ACCÉS AUTOMÀTIC AMB CLAUS D'ACCÉS PÚBLIQUES


1- Arrenca una màquina debian i una màquina Ubuntu treballant en xarxa interna. Configura la màquina Ubuntu amb l'adreça IP estàtica 
192.168.1.x  i màscara 255.255.255.0, adreça IP del router 192.168.1.1servidors DNS  80.58.0.33 i 80.58.32.97 i domini de recerca: fjeclot.net. Comprova que pots fer pings entre les dues màquines virtuals.

2- Crea un usuari de nom inf1 a la teva màquina Ubuntu. Accedeix a  Ubuntu com usuari inf1. Genera una clau pública per l'usuari inf1 a la màquina Ubuntu. Executa:

ssh-keygen  -t  rsa

    2.1- A la pregunta "Enter file in which to save the key (/home/inf1/.ssh/id_rsa): "  deixa l'opció per defecte (prem Enter directament).
    2.2- A la pregunta "Enter passphrase (empty for no passphrase): " deixa l'opció per defecte (prem Enter directament).
    2.3- A la pregunta "Enter same passphrase again: "  prem Enter directament.

i ara comprova que s'han creats els fitxers id_rsa i id_rsa_pub al directori ~/.ssh. Després executa les ordres:
eval  $(ssh-agent)
ssh-add


NOTA 1: A l'enllaç https://kb.iu.edu/d/aeww trobareu informació sobre ssh-add i ssh-agent que ajuda a entendre el motiu pel qual s'ha d'executar aquesta ordre.
NOTA 2: Amb l'ordre ssh-add -l pots comprovar si la clau s'ha afegit a la llista de claus gestionades per ssh-agent

3- Genera una clau pública per l'usuari xxxyyy a la màquina Debian. Executa:

ssh-keygen  -t  rsa


    2.1- A la pregunta "Enter file in which to save the key (/home/xxxyyy/.ssh/id_rsa): "  deixa l'opció per defecte (prem Enter directament).
    2.2- A la pregunta "Enter passphrase (empty for no passphrase): " deixa l'opció per defecte (prem Enter directament).
    2.3- A la pregunta "Enter same passphrase again: "  prem Enter directament.

i ara comprova que s'han creats els fitxers id_rsa i id_rsa_pub al directori ~/.ssh. Després executa l'ordre:

ssh-add
 
4-
Des de l'ordinador Ubuntu entra al directori ~/.ssh de l'usuari inf1 i des de dins executa:

scp   id_rsa.pub   xxxyyy@ 192.168.1.x:~/.ssh/authorized_keys2        (NOTA: El valor x de la teva màquina Debian)

i comprova que el fitxer id_rsa.pub de de l'usuari inf1 de l'ordinador Ubuntu es copia dins del directori .ssh de l'usuari xxxyyy de l'ordinador Debian amb el nom authorized_keys2.

5-
Ara, des de l'ordinador Ubuntu (el client)  i com usuari inf1, estableix una comunicació amb l'ordinador Debian (el servidor) executant:

ssh  -l  xxxyyy  192.168.1.x       (NOTA: El valor x de la teva màquina Debian)
o també:

ssh xxxyyy@192.168.1.x          (NOTA: El valor x de la teva màquina Debian)

i comprova que pots connectar-te sense haver d'escriure la contrasenya de l'usuari xxxyyy a la màquina servidora. La connexió pot trigar entre 20 i 30 segons.

6-
Com usuari root fes una còpia de seguretat del fitxer /etc/hosts de l'ordinador Ubuntu. Obre el fitxer com usuari root i afegeix l'entrada:

192.168.1.x      xxxyyy-m06.fjeclot.net     xxxyyy-m06      
 

al final del fitxer.
El valor x és de la teva màquina Debian. Prova de fer un ping a xxxyyy-m06 i comprova que hi ha connectivat.

7- Intenta connectar-te ara al servidor SSH amb l'ordre:

ssh   -l   xxxyyy   xxxyyy-m06
o també:
ssh   xxxyyy@xxxyyy-m06
Contesta "yes"  a la primera pregunta (això només passarà una vegada) i comprova que no et demana password.

8- Esborra authorized_key2 (fes abans una còpia de seguretat) del directori ~/.ssh de l'usuari xxxyyy del servidor debian. Intenta connectar-te ara al servidor des del client Ubuntu com ho has fet a l'apartat anterior. Comprova que el servidor et torna a demanar el password.


PRÀCTICA (6a PART): CONFIGURACIÓ DEL SERVIDOR SSH

1- L'arxiu de configuració del servidor SSH és /etc/ssh/sshd_config (veure documentació sobre aquest fitxer a l'enllaç g) de la secció Documentació). Troba el significat dels següents paràmetres de configuració:
    a) Port i ListenAddres
    b) LoginGraceTime
    c) PermitRootLogin
    d) AllowUsers
    e) MaxAuthTries (Compte!!!! -->  cal tenir en compte  el paràmetre NumberOfPasswordPrompts de la configuració del client ssh)    

2- A partir de la informació recollida a l'apartat anterior reconfigura el servidor ssh de la màquina Debian de manera que:
    a) El servidor escolti pel port 2222 i la seva adreça IP.
    b) El servidor es desconnecti del client després de 50 segons si l'usuari no es valida amb exit.
    c) Permetre a l'usuari root validar-se directament via SSH.
    d) Permetre només la validació dins del servidor com usuari xxxyyy root.
    e) Màxim nombre d'intents de connexió abans que el servidor tanqui la connexió igual a 5.   

3- Comprova amb netstat que el servidor ssh està escoltant (LISTEN) per la seva adreça IP i pel port 2222. Connectat al servidor Debian des del client Ubuntu amb l'ordre: ssh  -l  xxxyyy  192.168.1.x  -p  2222   
(NOTA: El valor x de la teva màquina Debian)

4- Desconnectat del servidor des del client. Torna a realitzar una connexió i no et validis durant 1 minut (més de 50 segons). Un cop passar aquest temps, intenta validar-te i comprova la resposta del servidor.

5- Comprova que com usuari root pots accedir via ssh des del client Ubuntu al servidor debian.

6- Crea des Debian un usuari de nom asix2 i comprova que no pots accedir al servidor ssh amb aquest usuari.

7- Comprova que pots realitzat un màxim de 5 intents de connexió abans de que el servidor tanqui la connexió.


8- Torna a deixar el servidor en les condicions inicials: Port 22, ListenAddress 0.0.0.0, LoginGraceTime 2 m,  PermitRootLogin prohibit-password, AllowUsers comentat i MaxAuthTries  6

PRÀCTICA (7a PART): MUNTANT SISTEMES DE FITXERS REMOTS SOBRE SSH UTILITZANT SSHFS
0- Documentació sobre sshfs

1-
Cal que tornis a
treballar amb l'opció de  "Adaptador Pont" associat a la  targeta de xarxa Ethernet. tant per Ubuntu com per Debian. Després hauràs d'aconseguir una configuració dinàmica.
2- Instal·la el programari sshfs a Debian i Ubuntu executant l'ordre: sudo aptitude install sshfs
3- Torna a treballar amb "xarxa interna" i torna a assignar a Debian la configuració estàtica de la 1a PART de la pràctica i a Ubuntu la configuració estàtica de la 3a  PART de la pràctica.
4- Dins de Debian crea una carpeta de nom /mnt/share amb permisos 777. Dins crea 3 carpetes: deb, ub i win. Crea un fitxer de nom deb.txt.
4- Dins d'Ubuntu crea una carpeta de nom /mnt/xxyyzz-m06/share a on xxyyzz-m06 és el nom d'ordinador que vas crear pel servidor Debian a la 1a PART.
5-
Dins d'Ubuntu afegeix l'adreça IP i el nom del servidor Debian al fitxer /etc/hosts.
6- Executa dins d'Ubuntu:
sudo   sshfs   -o   allow_other   xxyyzz@xxyyzz-m06:/mnt/share   /mnt/xxyyzz-m06/share

per muntar la carpeta personal de l'usuari /mnt/share de l'ordinador xxyyzz-m06 dins del punt de muntatge /mnt/xxyyzz-m06/share de l'ordinador Ubuntu. Accedeix a la carpeta
/mnt/xxyyzz-m06/share i comprova que pots veure les carpetes deb, ub i win i el fitxer deb.txt.
7- Copia el fitxer deb.txt dins de la carpeta personal de l'usuari d'Ubuntu.
8- Comprova amb df -Th els sistemes de fitxers muntats  via sshfs.
9- Executa des d'Ubuntu: sudo   umount   /mnt/xxyyzz-m06/share i comprova amb df -Th que el sistema de fitxers s'ha desmuntat.


PRÀCTICA (8a PART): ACCÉS REMOT AMB GUI PER MITJÀ DE TEAMVIEVER

8.1.- Previament
S'ha de tornar a posar el servidor Debian i Ubuntu treballant amb adaptador pont i configuració automàtica DHCP per poder tenir connexió a internet i poder descarregar el software que es demana als apartats 7.1 i 7.2.

8.2.- Instal·lació i execució de TeamViewer per Debian Linux
1- Instal·la gdebi (eina per instal·lar paquets .deb no obtinguts desd 'un dipòsit).
2- Descarrega la modalitat de 64 bits de la versió 14.6 de TeamViewer  dins de la màquina Debian executant: wget  https://download.teamviewer.com/download/linux/teamviewer_amd64.deb.
3- Instal·la el paquet .deb de TeamViewer. Executa: sudo gdebi teamviewer_amd64.deb.
4-
Ara trobaràs el programa TeamViewer 14 anant al menú Aplicacions --> Internet. Executa-ho.

8.3.- Instal·lació i execució de TeamViewer per Ubuntu Linux
1- Comprova l'adreça IP del teu client Ubuntu Linux. Comprova que pots fer ping amb Debian. Comprova ara el ping en sentit contrari.
2- Instal·la gdebi.
3- Descarrega la modalitat de 64 bits de la versió 14.6 de TeamViewer  dins de la màquina Ubuntu executant: wget  https://download.teamviewer.com/download/linux/teamviewer_amd64.deb.
4- Instal·la el paquet .deb de TeamViewer. Executa: sudo gdebi teamviewer_amd64.deb.
5- Ara, des del Taulell de l'escriptori d'Ubuntu, busca el programa TeamViewer 14 i executa-ho.Anota l'ID i el password que es mostrarà per pantalla. Deixa el programa en execució.

8.4- Controlant remotament l'ordinador Ubuntu des de Debian
1- Des de TeamViewer de  Debian, a la secció "Control Remote Computer" --> Partner ID,  escriu l'ID donada pel programa TeamViewer de l'Ubuntu. Selecciona l'opció "Remote control" i després selecciona "CONNECT".
2- A la següent pantalla, escriu la contrasenya donada pel programa TeamViewer   d'Ubuntu i fes clic a "Log on".
3- Comprova que pots controlar de manera remota l'ordinador Ubuntu des de Debian.
4- Obre un terminal de la màquina remota Ubuntu des de Debian. Canvia a usuari root. Instal·la el paquet geany. Comprova que el programa geany està funcionant a la màquina Ubuntu.
5- Tanca la connexió entre els dos ordinadors.

8.5.- Transferència d'arixus
1- Des de  Debian, fes una captura de pantalla de tot l'escriptori i desa-la amb el nom desktop.png.
2- Amb l'ajut del manual de TeamViewer que trobaràs a l'apartat b) de la secció de Documentació, transfereix el fitxer desktop.png des de Debian a l'escriptori d'Ubuntu.
3- Tanca la connexió de transferència de fitxers.

8.6- Chat
1- Des de  Debian obre un chat amb Ubuntu i escriu un missatge de salutació.
2- Des de  Ubuntu escriu un missatge de  resposta a Debian.
3- Des de Debian, tanca la sessió de chat, la connexió amb Ubuntu i surt de TeamViewer correctament.
4- Des d'Ubuntu i surt de TeamViewer correctament.

PRÀCTICA (9a PART): CONNEXIÓ VIA SFTP AMB FILEZILLA DES DE WINDOWS O UBUNTU
1- Dins del directori personal del compte d'usuari xxxyyy del servidor Debian crea una carpeta de nom sftp. Dins de la carpeta crea sftp un fitxer de nom sftp_test00.txt. Escriu a dins el teu nom i cognoms. Desa el fitxer.
2-
Descarrega el client SFTP Filezilla Client pel sistema operatiu escollit Linux Ubuntu o Windows (pots escollir qualsevol dels 2)  des de la següent adreça: https://filezilla-project.org/download.php?type=client. Instal·la-ho.
3- Configura l'accés al servidor SSH per fer transferència segura de fitxers utilitzant SFTP indicant:
    Host --> Adreça IP del teu servidor SSH instal·lat a Debian.
    Username --> El nom d'usuari del teu usuari xxxyyy del Debian
    Password --> La contrasenya de l'usuari xxxyyy del Debian.
    Port --> El port pel qual escolta el servidor SSH de Debian
i finalment prem el botó Quickconnect per establir la connexió des del client Filezilla al sevidor SSH.
4- Al missatge que surt a continuació, marca aquest host com a equip de confiança per sempre i accedeix al teu compte del servidor SSH.
5- Des de Filezilla troba i selecciona el fitxer sftp_test00.txt i descarrega-ho a l'escriptori del teu equip client.
6- Modifica al teu equip client el fitxer sftp_test00.txt i afegeix una nova línia amb el teu cicle i curs (ASIX2), i  una altra amb l'any acadèmic (2019-2020).
7- Des de Filezilla selecciona i refresca el fitxer sftp_test00.txt que es troba al teu equip client i puja-ho a la carpeta crea sftp del servidor Debian sobreescrivint el fitxer existent.
8- Des de Debian comprova que ara tens la nova versió del fitxer sftp_test00.txt.
9- Desconnecta Filezilla del servidor SSH correctament.

PRÀCTICA (10a PART): REVERSE SSH PORT FORWARDING
 

PART 10.1 - AFEGINT UNA MÀQUINA AUXILIAR I CONFIGURANT LA SEVA IP I SERVEI SSH

    1
- Afegeix la màquina virtual  debian-10.1.0-asix2-aux que et passaré dins d'una memòria UBS a VirtualBox.
    2- Atura la interfície de xarxa del enp0s3 de la nova màquina virtual executant: sudo  ifdown enp0s3.
    3- Modifica el fitxer de configuració de xarxa /etc/network/interfaces de la nova màquina per tenir una adreça ip igual a la marcada al document 192.168.1.x
    4- Posa en marxa la interfície de xarxa del enp0s3 de la nova màquina virtual executant: sudo  ifup enp0s3.
    5- Comprova que l'adreça IP ha canviat executant ip a.
    6- Configura el paràmetre GatewayPorts del fitxer de configuració sshd_config del servidor SSH de la màquina auxiliar al valor yes

PART 10.2 - CONFIGURANT UN TALLAFOCS EN EL SERVIDOR DEBIAN PER TALLAR L'ACCÉS AL PORT DEL SERVIDOR SSH
   
1- Instal·la el tallafocs ufw dins del servidor Debian. Executa sudo aptitude install ufw.
    2- Estableix com a polítiques per defecte del firewall:
        a) No permetre connexions d'entrada. Executa: sudo ufw default deny incoming
        b
) Permetre totes les connexions de sortida. Executa: sudo ufw default allow outgoing
        c) Activa el firewall ufw. Executa: sudo ufw enable
    3- Comprova des d'Ubuntu que no pots realitzar una connexió al servei SSH del servidor Debian.

PART 10.3 - ESTABLEIX UNA CONNEXIÓ INVERSA (REVERSE) ENTRE EL SERVEI SSH DE DEBIAN I EL SERVEI SSH DEL SERVIDOR AUXILIAR
   
1- Estableix una connexió inversa entre el servidor SSH de Debian i el servidor SSH de la màquina auxiliar de la següent executant:
       

        ssh  -f  -N  -R  2222:localhost:22  aux@
192.168.1.x      (Nota: el valor x de la màquina auxiliar)
       
        i entra la contrasenya de l'usuari aux de la màquina auxiliar.
    2- Bàsicament aquesta ordre estableix una connexió que surt del servidor Debian pel port 22 cap a la màquina auxiliar que obrirà el seu port 2222 per establir la connexió.
    3- Comprova que a la màquina auxiliar s'ha obert el port  2222 executant sudo netstat -atupn.

PART 10.4 - ESTABLEIX UNA CONNEXIÓ ENTRE UBUNTU I EL SERVIDOR SSH DE DEBIAN PER MITJÀ DE LA CONNEXÓ INVERSAAUX
   
1- Des d'Ubuntu connectat al servei SSH de la màquina aux, executant:
ssh aux@ 192.168.1.x 
    2- Ara connectat al servei SSH de  la màquina Debian executant: ssh dacomo@localhost  -p 2222
    3-
Comprova que pots arribar a la màquina Debian via SSH des d'Ubuntu tot i tenir un firewall activat en la màquina Debian.

PART 10.5 - RETORN A LES CONDICIONS INICIALS (VOLUNTARI)
    1- Des d'Ubuntu fes un exit per tornar al terminal de  la màquina auxiliar.
    2-
Des d'Ubuntu fes un altre exit per tornar al terminal  d'Ubuntu.   
    3-
Des de Debian, tanca la connexió inversa executant: killall  ssh.
    4-
Des de Debian, desactiva el firewall ufw executant: sudo  ufw  disable