Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gsr:laboratoare:laborator-07 [2015/02/06 16:25]
alexandru.carp
gsr:laboratoare:laborator-07 [2016/12/08 20:39] (current)
alexandru.carp
Line 1: Line 1:
-~~SHOWSOLUTION~~ +====== Laborator 07: Servicii web ====== 
-====== ​Laborator 07 Servicii ​de file sharing ​======+ 
 +<​note>​Documentatie:​ http://​httpd.apache.org/​docs/​2.2/</​note>​ 
 + 
 +===== Instalare Apache si configurari de baza ===== 
 + 
 +  * Instalati serverul Apache (pachetul **apache2**). 
 + 
 +  * Apoi, verificati functionarea acestuia folosind un browser web. Va veti conecta pe URL-ul http://​localhost 
 + 
 +==== Site default ==== 
 + 
 +  * Asa cum ati observat anterior, serverul Apache serveste in mod implicit un fisier HTML.  
 + 
 +  * Gasiti fisierul **index.html** servit de server-ul Apache in ierarhia de fisiere. 
 +     * Hint: Configuratia site-ului default se afla in ''/​etc/​apache2/​sites-available/​000-default.conf''​ 
 +     * Hint: Observati directiva ''​DocumentRoot''​ 
 + 
 +  * Modificati fisierul gasit anterior astfel incat sa contina mesajul "GSR web services"​. 
 + 
 +==== Listening ports ==== 
 + 
 +  * Pe ce port asculta in mod implicit serverul Apache? Investigati folosind ''​netstat''​. 
 + 
 +  * Modificati portul astfel incat Apache sa asculte pe 8080. 
 +     * Hint: ''/​etc/​apache2/​ports.conf''​ 
 +     * Hint: Nu uitati sa modificati si in ''​VirtualHost''​ 
 + 
 +  * Verificati folosind ''​netstat'',​ apoi un browser. 
 + 
 +  * Refaceti configuratia anterioara. 
 + 
 + 
 +===== Alti clienti HTTP ===== 
 + 
 +Desi in majoritatea cazurilor folosim un browser in mod grafic pentru a naviga, putem folosi si clienti in mod text (interactiv sau non-interactiv). Acestia sunt utili mai ales in automatizare. 
 + 
 +==== wget ==== 
 + 
 +Un astfel de client in mod text, non-interactiv,​ este **wget**. 
 + 
 +  * Folositi ''​wget''​ pentru a descarca fisierul ''​index.html''​ servit de Apache. Ca parametru pentru ''​wget''​ veti folosi acelasi URL ca si in browser. 
 + 
 +=== Descarcare recursiva === 
 + 
 +  * Creati urmatoarea ierarhie de fisiere in ''/​var/​www/​html'':​ 
 +<​code>​ 
 +test/ 
 +|-- docs/ 
 +|   |-- README.txt 
 +|   |-- INSTALL.txt 
 +|-- scripts/ 
 +|   |-- setup.sh 
 +|   `-- install.sh 
 +`-- test.html 
 +</​code>​ 
 + 
 +  * Folosind un browser in mod grafic, verificati ca puteti naviga prin acea ierarhie. 
 + 
 +  * Folosind ''​wget'',​ descarcati in mod recursiv tot ce este sub ''/​var/​www/​html/​test''​. 
 +    * Hint: ''​man wget'',​ ''/​recursive''​ 
 +    * Specificati sa NU fie descarcate fisierele ale caror nume incepe cu ''​index.html''​. Hint: ''​man wget'',​ ''/​reject''​. 
 + 
 +=== Autentificare folosind wget === 
 + 
 +  * Folosind ''​wget''​ incercati sa descarcati ce este la adresa ''​http://​repository.grid.pub.ro/​cs/​gsr/''​. 
 +    * Ce eroare primiti? De ce? 
 + 
 +  * Incercati din nou, de data aceasta folosind autentificare HTTP. Pentru aceasta, va trebui: 
 +    * Sa specificati userul cu care doriti sa va autentificati. Hint: ''​man wget'',​ ''/​user''​. 
 +    * Sa faceti ca ''​wget''​ sa va ceara parola. Hint: ''​man wget'',​ ''/​ask-password''​. 
 + 
 +==== netcat (nc) ==== 
 + 
 +De multe ori, in debugging, este util sa observati sau sa interveniti direct asupra datelor schimbate intre client si server. Un utilitar care ne ajuta in acest scop este **netcat** (comanda ''​nc''​).  
 + 
 +Acesta deschide o conexiune catre un host, pe un port specificat (TCP sau UDP), apoi va trimite catre server toate datele primite pe standard input. 
 + 
 +  * Folosind ''​nc'',​ conectati-va pe localhost, portul 80. 
 + 
 +  * Apoi, introduceti manual o cerere HTTP pentru fisierul ''​index.html''​. Veti folosi protocolul HTTP 1.0: 
 +    * ''​GET /index.html HTTP/​1.0''​ 
 +    * Incheiati cererea cu secventa ''​\r\n\r\n''​ (doua Enter-uri). 
 +    * Pagina primita este cea corecta? 
 + 
 +  * Realizati acelasi lucru, dar fara a mai introduce manual cererea. 
 +    * Hint: ''​echo'',​ pipe 
 + 
 +===== Userdir ===== 
 + 
 +Server-ul Apache permite utilizatorilor sa serveasca fisiere din propriile directoare home. Fisierele trebuie stocate in ''/​home/​username/​public_html'',​ iar acestea vor fi accesate folosind un URL de forma ''​http://​server/​~username''​. 
 + 
 +  * Creati utilizatorul ''​gsr''​. 
 +  * Creati directorul ''​public_html''​ si mai multe fisiere in interiorul acestuia. 
 + 
 +  * Incercati sa accesati fisierele folosind URL-ul ce contine ''​~gsr''​. Este posibil? 
 + 
 +  * Pentru a putea accesa astfel de directoare, trebuie activat modulul Apache **userdir**. 
 +    * Activati modulul ''​userdir''​. Hint: ''​a2enmod''​ 
 +    * Incercati din nou sa accesati URL-ul. 
 + 
 +===== PHP ==== 
 + 
 +  * Creati in ''/​var/​www/​html''​ un fisier cu numele ''​index.php''​ care sa contina un cod PHP simplu (de exemplu, sa afiseze un mesaj): 
 +<​code>​ 
 +<?php echo "​Hello,​ world!";​ ?> 
 +</​code>​ 
 + 
 +  * Apoi, dintr-un browser in mod grafic incercati sa accesati fisierul ''​index.php''​ de pe server. Ce observati? Script-ul PHP se ruleaza pe server? De ce? 
 + 
 +  * Instalati pachetul corespunzator modulului PHP pentru Apache (''​libapache2-mod-php''​). 
 +  * Verificati ca modulul a fost activat. Hint: ''/​etc/​apache2/​mods-enabled''​. 
 +  * Accesati din nou fisierul ''​index.php''​. Ce observati acum? 
 + 
 +===== Autentificare basic ===== 
 + 
 +In anumite cazuri, este util sa restrictionam accesul catre anumite directoare ale site-ului. O modalitate este folosind feature-ul de autentificare din protocolul HTTP. 
 + 
 +  * Creati subdirectorul ''​secret''​ in ''/​var/​www/​html''​. 
 +  * In acest subdirector,​ creati un fisier cu numele ''​.htaccess'',​ care sa specifice ca se doreste autentificare:​ 
 +<​code>​ 
 +AuthName "​restricted"​ 
 +AuthType Basic 
 +AuthUserFile /​usr/​local/​my.htpasswd 
 +Require valid-user 
 +</​code>​ 
 +  * Apoi, folosind comanda ''​htpasswd'',​ creati un user ''​bob''​ in fisierul ''/​usr/​local/​my.htpasswd''​ 
 +  * In fisierul ''​apache2.conf'',​ setati directiva ''​AllowOverride''​ la ''​All''​ 
 +  * Restartati serviciul Apache si verificati ca incercand sa accesati, din browser, directorul ''​secret'',​ se cere autentificare. 
 + 
 +===== Virtual Hosts ===== 
 + 
 +==== Configurare de baza ==== 
 + 
 +  * In ''/​etc/​hosts'',​ adaugati 2 alias-uri, astfel incat host-urile ''​gsr.ro''​ si ''​www.gsr.ro''​ sa fie mapate pe adresa IP ''​127.0.0.1''​ 
 +<​solution -hidden -en><​code>​ 
 +root@mjolnir:​~# cat /etc/hosts | head -n 3 
 +127.0.0.1 localhost 
 +127.0.1.1 mjolnir.labs.cs.pub.ro mjolnir 
 +127.0.0.1 gsr.ro www.gsr.ro 
 +</​code></​solution>​ 
 + 
 +  * In configuratia server-ului Apache, adaugati un Virtual Host pentru domeniul ''​gsr.ro''​. 
 +    * Ca model, puteti folosi configuratia Virtual Host-ului pentru site-ul default din Apache. 
 +  * Aveti in vedere urmatoarele:​ 
 +    * Fisierul de configurare al site-ului se va numi ''​gsr.ro.conf''​ si se va afla in directorul ''/​etc/​apache2/​sites-available''​. 
 +    * Virtual Host-ul va fi mapat pe portul 80. 
 +    * ServerName-ul va fi ''​gsr.ro''​ 
 +    * Adresa de mail a administatorului este ''​admin@gsr.ro''​ 
 +    * Site-ul va servi fisiere din directorul ''/​var/​www/​html/​gsr.ro''​ 
 +      * Creati in acest director un fisier ''​index.html''​ care sa afiseze mesajul ''​This is gsr.ro''​. 
 +    * Fisierele de log pentru acest site vor fi in ''/​var/​log/​apache2/​gsr.ro.log''​ si ''/​var/​log/​apache2/​gsr.ro.err.log''​  
 + 
 +<​code>​ 
 +root@mjolnir:​~# mkdir /​var/​www/​html/​gsr.ro 
 + 
 +root@mjolnir:​~#​ echo "This is gsr.ro"​ > /​var/​www/​html/​gsr.ro/​index.html 
 + 
 +root@mjolnir:​~#​ cat /​etc/​apache2/​sites-available/​gsr.ro.conf 
 +<​VirtualHost *:80> 
 +        ServerAdmin admin@gsr.ro 
 +        ServerName gsr.ro 
 + 
 +        DocumentRoot /​var/​www/​html/​gsr.ro 
 +        <​Directory /> 
 +                Options FollowSymLinks 
 +                AllowOverride None 
 +        </​Directory>​ 
 +        <​Directory /​var/​www/​html/​gsr.ro/>​ 
 +                Options Indexes FollowSymLinks MultiViews 
 +                AllowOverride None 
 +                Order allow,​deny 
 +                allow from all 
 +        </​Directory>​ 
 + 
 +        ScriptAlias /cgi-bin/ /​usr/​lib/​cgi-bin/​ 
 + 
 +        ErrorLog /​var/​log/​apache2/​gsr.err.log 
 + 
 +        LogLevel warn 
 + 
 +        CustomLog /​var/​log/​apache2/​gsr.log combined 
 +</​VirtualHost>​ 
 +</​code>​ 
 + 
 +  * Activati site-ul ''​gsr.ro''​ 
 +    * Hint: ''​a2ensite''​. 
 +<​solution -hidden -en><​code>​ 
 +root@mjolnir:​~#​ a2ensite gsr.ro 
 +Enabling site gsr.ro. 
 +To activate the new configuration,​ you need to run: 
 +  service apache2 reload 
 + 
 +root@mjolnir:​~#​ /​etc/​init.d/​apache2 restart 
 +Restarting web server: apache2[Fri Jan 27 18:29:34 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 + ... waiting [Fri Jan 27 18:29:35 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 +
 +</​code></​solution>​ 
 + 
 +  * Testati accesand adresa ''​http://​gsr.ro''​ intr-un browser. 
 + 
 +==== Alias-uri ​==== 
 + 
 +  *Vom configura 2 tipuri de alias-uri: 
 +    * Alias-uri pentru partea ​de domeniu din URL. 
 +    * Alias-uri pentru partea de cale (path) din URL. 
 + 
 +=== Alias pentru domeniu === 
 + 
 +  * Pentru primul tip de alias-uri, configurati Virtual Host-ul ''​gsr.ro''​ astfel incat sa raspunda si la cereri pentru ''​www.gsr.ro''​ 
 +    * Hint: ''​ServerAlias''​ 
 +  * Testati accesand adresa ''​http://​www.gsr.ro''​ intr-un browser. 
 +   
 +=== Alias pentru URL path ===   
 +   
 +  * Pentru al doilea tip de alias-uri, configurati Virtual Host-ul ''​gsr.ro''​ astfel incat la accesarea adresei ''​http://​gsr.ro/​config''​ sa fie afisat continutul directorului ''/​var/​www/​html/​gsr.ro/​configfiles''​. 
 +    * Creati directorul ''/​var/​www/​html/​gsr.ro/​configfiles''​. In interiorul acestuia, creati fisierele ''​file1'',​ ''​file2''​ si ''​file3''​. 
 +    * Hint: Puteti folosi ca model configuratia alias-ului ''​doc -> /​usr/​share/​doc''​ din fisierul de configurare al site-ului default al Apache. 
 +  * Testati accesand adresa ''​http://​gsr.ro/​config''​ intr-un browser. 
 + 
 +<​code>​ 
 +root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro/​configfiles 
 + 
 +root@mjolnir:​~#​ cd $_ 
 + 
 +root@mjolnir:/​var/​www/​html/​gsr.ro/​configfiles#​ touch file1 file2 file3 
 + 
 +root@mjolnir:/​var/​www/​html/​gsr.ro/​configfiles#​ ls -l 
 +total 0 
 +-rw-r--r-- 1 root root 0 Jan 27 18:30 file1 
 +-rw-r--r-- 1 root root 0 Jan 27 18:30 file2 
 +-rw-r--r-- 1 root root 0 Jan 27 18:30 file3 
 + 
 +root@mjolnir:/​var/​www/​html/​gsr.ro/​configfiles#​ cd - 
 +/root 
 + 
 +root@mjolnir:​~#​ cat /​etc/​apache2/​sites-available/​gsr.ro | tail -n 7 
 +    Alias /config "/​var/​www/​html/​gsr.ro/​configfiles/"​ 
 +    <​Directory "/​var/​www/​html/​gsr.ro/​configfiles/">​ 
 +        Options Indexes MultiViews FollowSymLinks 
 +        AllowOverride None 
 +    </​Directory>​ 
 + 
 +</​VirtualHost>​ 
 + 
 +root@mjolnir:​~#​ /​etc/​init.d/​apache2 restart 
 +Restarting web server: apache2[Fri Jan 27 18:32:57 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 + ... waiting [Fri Jan 27 18:32:58 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 +
 +</​code>​ 
 + 
 +==== Redirect ==== 
 + 
 +  * Configurati site-ul ''​gsr.ro''​ astfel incat la accesarea adresei ''​http://​gsr.ro/​redirect''​ sa fiti redirectati catre ''​http://​ocw.cs.pub.ro/​courses/​gsr''​. 
 +    * Hint: http://​httpd.apache.org/​docs/​2.2/​mod/​mod_alias.html#​redirect 
 +    * Pentru testare, creati directorul ''/​var/​www/​html/​gsr.ro/​redirect''​. 
 +    * In interiorul acestuia, creati un fisier ''​index.html''​ care sa afiseze mesajul ''​redirect''​ 
 +  * Testati accesand adresa ''​http://​gsr.ro/​redirect''​ intr-un browser. 
 + 
 +<​code>​ 
 +root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro/​redirect 
 +root@mjolnir:​~#​ echo "​redirect"​ > /​var/​www/​html/​gsr.ro/​redirect/​index.html 
 + 
 +root@mjolnir:​~#​ cat /​etc/​apache2/​sites-available/​gsr.ro | tail -n 3 
 +    redirect /redirect http://​gsr.ro/​labs 
 + 
 +</​VirtualHost>​ 
 + 
 +root@mjolnir:​~#​ /​etc/​init.d/​apache2 restart 
 +Restarting web server: apache2[Fri Jan 27 18:41:54 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 + ... waiting [Fri Jan 27 18:41:55 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 +
 +</​code>​ 
 + 
 +==== Restrictionarea accesului pe baza adresei IP ==== 
 + 
 +  * Configurati Virtual Host-ul ''​gsr.ro''​ pentru a se permite accesul la acesta **doar** de la adresa ''​127.0.0.1''​. 
 +    * Hint: http://​httpd.apache.org/​docs/​2.2/​howto/​access.html 
 +    * Hint: http://​httpd.apache.org/​docs/​2.2/​mod/​mod_authz_host.html#​allow 
 +  * Nu uitati de directiva ''​Order deny,​allow'',​ care specifica ordinea in care sunt interpretate directivele Deny si Allow. 
 + 
 +  * Testati accesand adresa ''​http://​gsr.ro/''​ de pe sistemul local si adresa ''​http://​restricted.gsr.ro''​ de pe sistemul unui coleg. 
 +    * In Virtual Host-ul ''​gsr.ro'',​ adaugati un nou ServerAlias,​ cu numele ''​restricted.gsr.ro''​ 
 +    * Pe sistemul colegului, adaugati o intrare in ''/​etc/​hosts''​ pentru ''​restricted.gsr.ro'',​ care sa se mapeze cu adresa IP a sistemului vostru. 
 + 
 +<​code>​ 
 +root@mjolnir:​~#​ cat /​etc/​apache2/​sites-available/​gsr.ro.conf 
 +<​VirtualHost *:80> 
 +        ServerName gsr.ro 
 +        ServerAlias www.gsr.ro 
 +        ServerAlias restricted.gsr.ro 
 + 
 +        DocumentRoot /​var/​www/​html/​gsr.ro 
 +        <​Directory /> 
 +                Options FollowSymLinks 
 +                AllowOverride None 
 +        </​Directory>​ 
 +        <​Directory /​var/​www/​html/​gsr.ro/>​ 
 +                Options Indexes FollowSymLinks MultiViews 
 +                AllowOverride None 
 +                Order deny,​allow 
 +                allow from 127.0.0.1 
 +                deny from all 
 +        </​Directory>​ 
 +</​VirtualHost>​ 
 + 
 +root@mjolnir:​~#​ /​etc/​init.d/​apache2 restart 
 +Restarting web server: apache2[Fri Jan 27 19:27:55 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 + ... waiting [Fri Jan 27 19:27:56 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts 
 +
 +</​code>​ 
 + 
 +===== mod_rewrite ===== 
 + 
 +Modulul ''​rewrite''​ din Apache permite rescrierea URL-urilor din request-urile HTTP, dupa anumite reguli. 
 + 
 +  * Configurati,​ ca in Laboratorul 3, modulul ''​userdir''​. 
 +    * Hint: http://​ocw.cs.pub.ro/​courses/​gsr/​laboratoare/​laborator-03#​userdir 
 +  * Folositi ''​mod_userdir''​ astfel incat cererile catre URL-uri de forma ''​gsr.ro/​users/​$username''​ sa fie rescrise in ''​gsr.ro/​~$username''​. 
 +    * Hint: http://​httpd.apache.org/​docs/​2.2/​mod/​mod_rewrite.html 
 +    * Hint: http://​httpd.apache.org/​docs/​2.0/​rewrite/​rewrite_guide.html#​canonicalhost 
 +    * Hint: https://​httpd.apache.org/​docs/​2.2/​rewrite/​flags.html 
 + 
 +<​code>​ 
 +root@mjolnir:/​etc/​apache2/​sites-available#​ a2enmod rewrite 
 +Enabling module rewrite. 
 +To activate the new configuration,​ you need to run: 
 +  service apache2 restart 
 +   
 +root@mjolnir:/​etc/​apache2/​sites-available#​ cat gsr.ro | tail -n 5 
 +        RewriteEngine On 
 +        RewriteOptions Inherit 
 +        RewriteRule ^/​users/​([^/​]+)/?​(.*) /~$1/$2 [R] 
 +        RewriteRule ^/​~/​([^/​]+)$ /~$1/ [R] 
 +</​VirtualHost>​ 
 +</​code>​ 
 + 
 +/* 
 +===== Demo: Funcționarea serviciului DNS ===== 
 + 
 +Pentru a verifica funcționarea serviciului DNS, putem folosi comenzi precum ''​host''​ sau ''​dig''​ care sunt aplicații de tip client DNS. Aceste aplicații interoghează server-ul DNS și afișează informațiile cerute. 
 + 
 +Mai jos, aflăm adresa IP a domeniului ''​hotnews.ro''​ folosind ''​host''​ și ''​dig'':<​code>​ 
 +student@eg106-pc:​~$ host hotnews.ro 
 +hotnews.ro has address 91.195.7.1 
 +hotnews.ro mail is handled by 10 smtp.hotnews.ro. 
 + 
 +student@eg106-pc:​~$ dig hotnews.ro 
 + 
 +; <<>>​ DiG 9.9.5-9ubuntu0.3-Ubuntu <<>>​ hotnews.ro 
 +;; global options: +cmd 
 +;; Got answer: 
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 11548 
 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5 
 + 
 +;; OPT PSEUDOSECTION:​ 
 +; EDNS: version: 0, flags:; udp: 4096 
 +;; QUESTION SECTION: 
 +;​hotnews.ro. IN A 
 + 
 +;; ANSWER SECTION: 
 +hotnews.ro. 86388 IN A 91.195.7.1 
 + 
 +;; AUTHORITY SECTION: 
 +hotnews.ro. 69394 IN NS ns-1701.awsdns-20.co.uk. 
 +hotnews.ro. 69394 IN NS ns-1148.awsdns-15.org. 
 +hotnews.ro. 69394 IN NS ns-943.awsdns-53.net. 
 +hotnews.ro. 69394 IN NS ns-302.awsdns-37.com. 
 + 
 +;; ADDITIONAL SECTION: 
 +ns-302.awsdns-37.com. 22667 IN A 205.251.193.46 
 +ns-943.awsdns-53.net. 22667 IN A 205.251.195.175 
 +ns-1148.awsdns-15.org. 100500 IN A 205.251.196.124 
 +ns-1701.awsdns-20.co.uk. 22667 IN A 205.251.198.165 
 + 
 +;; Query time: 1 msec 
 +;; SERVER: 127.0.1.1#​53(127.0.1.1) 
 +;; WHEN: Thu Dec 03 13:31:01 EET 2015 
 +;; MSG SIZE  rcvd: 259 
 +</​code>​ 
 + 
 +Observăm că output-ul dig este mai //verbose// afișând și informații despre serverele de nume autoritare pe domeniul ''​hotnews.ro''​. Pentru același comportament din partea comenzii ''​host''​ putem folosi opțiunea ''​-v''​ a acestei comenzi:<​code>​ 
 +student@eg106-pc:​~$ host -v hotnews.ro 
 +Trying "​hotnews.ro"​ 
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 35674 
 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 
 + 
 +;; QUESTION SECTION: 
 +;​hotnews.ro. IN A 
 + 
 +;; ANSWER SECTION: 
 +hotnews.ro. 86129 IN A 91.195.7.1 
 +[...] 
 +</​code>​ 
 + 
 +În mod similar, dacă dorim forma scurtă a comenzii ''​dig''​ folosim comanda<​code>​ 
 +student@eg106-pc:​~$ dig +short hotnews.ro 
 +91.195.7.1 
 +</​code>​ 
 + 
 +În comanda de mai sus am folosit pentru interogare serverul DNS configurat implicit în sistem, în fișierul ''/​etc/​resolv.conf''​. Dacă dorim să folosim alt server de nume (de exemplu ''​8.8.8.8''​) folosim comenzile în forma de mai jos<​code>​ 
 +student@eg106-pc:​~$ host hotnews.ro 8.8.8.8 
 +Using domain server: 
 +Name: 8.8.8.8 
 +Address: 8.8.8.8#​53 
 +Aliases:  
 + 
 +hotnews.ro has address 91.195.7.1 
 +hotnews.ro mail is handled by 10 smtp.hotnews.ro. 
 +student@eg106-pc:​~$ dig +short hotnews.ro @8.8.8.8 
 +91.195.7.1 
 +</​code>​ 
 + 
 +De avut în vedere că o comandă de interogare DNS (precum ''​host''​ sau ''​dig''​) folosește direct serviciul ''​DNS''​. Nu accesează fișierul ''/​etc/​nsswitch.conf''​ și nici resolver-ul sistemului (de obicei o bibliotecă). Putem observa acest lucru în output-ul comenzilor de mai jos:<​code>​ 
 +student@eg106-pc:​~$ strace -e open host hotnews.ro 
 +[...[ 
 +open("/​etc/​resolv.conf",​ O_RDONLY) ​     = 6 
 +hotnews.ro has address 91.195.7.1 
 +hotnews.ro mail is handled by 10 smtp.hotnews.ro. 
 +[...] 
 + 
 +student@eg106-pc:​~$ strace -e open ping -c 1 hotnews.ro 
 +open("/​etc/​resolv.conf",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​etc/​resolv.conf",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​etc/​nsswitch.conf",​ O_RDONLY|O_CLOEXEC) = 3 
 +[...] 
 +open("/​etc/​host.conf",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​etc/​hosts",​ O_RDONLY|O_CLOEXEC) ​ = 3 
 +open("/​etc/​ld.so.cache",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​lib/​x86_64-linux-gnu/​libnss_myhostname.so.2",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​etc/​ld.so.cache",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​lib/​x86_64-linux-gnu/​libnss_mdns4_minimal.so.2",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​etc/​ld.so.cache",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​lib/​x86_64-linux-gnu/​libnss_dns.so.2",​ O_RDONLY|O_CLOEXEC) = 3 
 +open("/​lib/​x86_64-linux-gnu/​libresolv.so.2",​ O_RDONLY|O_CLOEXEC) = 3 
 +[...] 
 +</​code>​ 
 + 
 +Observăm că folosirea comenzii ''​host''​ duce la interogarea directă a fișierului ''/​etc/​resolv.conf''​ în vreme ce folosirea comenzii ''​ping''​ duce la interogarea configurației de resolver: sunt deschise și fișierul ''/​etc/​nsswitch.conf''​ și ''/​etc/​hosts''​ și bibliotecile aferente pentru NSS (//Name Service Switch//) culminând cu apelarea bibliotecii de resolving (''​libresolv.so.2''​). 
 + 
 +===== Urmărire configurare server DNS ===== 
 + 
 +<note important>​ 
 +Pentru următoarele exerciții folosim mașina virtuală ''​GSR Debian''​. Mașina virtuală o importăm în VirtualBox folosind imaginea din ''/​mnt/​sda5/​gsr/​GSR Debian.ova''​. 
 + 
 +Pentru autentificarea în mașina virtuală folosim numele de utilizator ''​student''​ cu parola ''​student''​. Ne putem conecta și prin SSH **de pe sistemul fizic** folosind comanda<​code>​ 
 +student@eg106-pc:​~$ ssh -l student 192.168.56.115 
 +[...] 
 +Last login: Thu Dec  3 13:57:01 2015 
 +student@gsr-server:​~$ 
 +</​code>​ 
 + 
 +Contul ''​student''​ are permisiuni privilegiate. Putem accesa drepturile de ''​root''​ folosind comanda<​code>​ 
 +sudo su 
 +</​code>​ 
 +</​note>​ 
 + 
 +Pe mașina virtuală este configurat numele de domeniu ''​ixlabs''​. Putem interoga acest domeniu de pe sistemul fizic, folosind comanda ''​host''​ și folosind adresa IP a mașinii virtuale ca server DNS:<​code>​ 
 +student@eg106-pc:​~$ host ixlabs 192.168.56.115 
 +Using domain server: 
 +Name: 192.168.56.115 
 +Address: 192.168.56.115#​53 
 +Aliases: 
 + 
 +ixlabs has address 192.168.56.115 
 +ixlabs mail is handled by 10 mail.ixlabs. 
 +</​code>​ 
 + 
 +Alte comenzi de interogare a serverului DNS pot fi pentru a afla serverul de nume al domeniului sau serverul de e-mail al domeniului:<​code>​ 
 +istudent@eg106-pc:​~$ host -t NS ixlabs 192.168.56.115 
 +Using domain server: 
 +Name: 192.168.56.115 
 +Address: 192.168.56.115#​53 
 +Aliases:  
 + 
 +ixlabs name server ns.ixlabs. 
 +student@eg106-pc:​~$ host -t MX ixlabs 192.168.56.115 
 +Using domain server: 
 +Name: 192.168.56.115 
 +Address: 192.168.56.115#​53 
 +Aliases:  
 + 
 +ixlabs mail is handled by 10 mail.ixlabs. 
 +student@eg106-pc:​~$ host mail.ixlabs 192.168.56.115 
 +Using domain server: 
 +Name: 192.168.56.115 
 +Address: 192.168.56.115#​53 
 +Aliases:  
 + 
 +mail.ixlabs has address 192.168.56.115 
 +student@eg106-pc:​~$ host ns.ixlabs. 192.168.56.115 
 +Using domain server: 
 +Name: 192.168.56.115 
 +Address: 192.168.56.115#​53 
 +Aliases:  
 + 
 +ns.ixlabs has address 192.168.56.115 
 +</​code>​ 
 + 
 +Pentru a verifica ce configurație avem definită pe serverul DNS inspectăm, **în mașina virtuală**,​ configurările serverului:<​code>​ 
 +istudent@gsr-server:/​etc/​bind$ cat named.conf.local 
 +// 
 +// Do any local configuration here 
 +// 
 + 
 +// Consider adding the 1918 zones here, if they are not used in your 
 +// organization 
 +//include "/​etc/​bind/​zones.rfc1918";​ 
 + 
 +zone "​ixlabs."​ { 
 + type master; 
 + file "/​etc/​bind/​db.ixlabs";​ 
 +}; 
 + 
 +student@gsr-server:/​etc/​bind$ cat db.ixlabs 
 +
 +; BIND data file for ixlabs. 
 +
 +$TTL 604800 
 +@ IN SOA ixlabs. root.ixlabs. ( 
 + 2015111901 ;​ Serial 
 + 604800 ; Refresh 
 +   86400 ; Retry 
 + 2419200 ;​ Expire 
 + 604800 ) ; Negative Cache TTL 
 +
 +@ IN NS ns 
 +ns IN A 192.168.56.115 
 +@ IN A 192.168.56.115 
 +@ IN MX 10 mail 
 +mail IN A 192.168.56.115 
 +</​code>​ 
 + 
 +De aici observăm că serverul DNS configurat pe mașina virtuală este autoritar pe domeniul ''​ixlabs''​ și are configurat serverul de nume (înregistrare de tipul NS) și serverul de e-mail (înregistrare de tipul MX). 
 + 
 +===== Modificare configurare server DNS ===== 
 + 
 +<​note>​ 
 +În continuare vom configura **pe sistemul fizic** ca server DNS adresa IP a mașinii virtuale (adică ''​192.168.56.115''​). Adică trebuie să scriem adresa ''​192.168.56.115''​ în fișierul ''/​etc/​resolv.conf''​. 
 + 
 +Întrucât clientul de DHCP (''​dhclient''​) poate modifica adresa IP a sistemului fizic și poate suprascrie fișierul ''/​etc/​resolv.conf'',​ vom dezactiva ''​Network Manager''​ și client DHCP. Adică vom urma pașii de mai jos: 
 +  - Aflăm interfața activă, adresa IP a sistemului fizic și default gateway-ul:<​code>​ 
 +student@eg106-pc:​~$ ip a s 
 +[...] 
 +2: eth4: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 
 +    link/ether 70:​71:​bc:​08:​25:​c6 brd ff:​ff:​ff:​ff:​ff:​ff 
 +    inet 172.16.5.11/​22 brd 172.16.7.255 scope global eth4 
 +       ​valid_lft forever preferred_lft forever 
 +[...] 
 +student@eg106-pc:​~$ ip r s 
 +default via 172.16.4.254 dev eth4 
 +172.16.4.0/​22 dev eth4  proto kernel ​ scope link  src 172.16.5.11 
 +172.16.242.0/​24 dev vmnet8 ​ proto kernel ​ scope link  metric 100 
 +192.168.56.0/​24 dev vboxnet0 ​ proto kernel ​ scope link  metric 100 
 +192.168.108.0/​24 dev vmnet1 ​ proto kernel ​ scope link  metric 100 
 +<​code>​ În cazul de mai sus (va diferi pe sistemul vostru), interfața activă este ''​eth4'',​ adresa IP este ''​172.16.5.11/​22''​ iar adresa de broadcast este ''​172.16.4.254''​. 
 +  - Dezactivăm configurațiile curente realizate de ''​NetworkManager''/''​dhclient''​ și încheiem execuția acestor procese:<​code>​ 
 +student@eg106-pc:​~$ sudo ip a f eth4 
 +student@eg106-pc:​~$ sudo service network-manager stop 
 +student@eg106-pc:​~$ sudo pkill -f dhclient 
 +student@eg106-pc:​~$ ip a s eth4 
 +2: eth4: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 
 +    link/ether 70:​71:​bc:​08:​25:​c6 brd ff:​ff:​ff:​ff:​ff:​ff 
 +student@eg106-pc:​~$ ps -ef | grep dhclient 
 +student ​  ​3958 ​ 3481  0 14:45 pts/2    00:00:00 grep --color=auto dhclient 
 +</​code>​ 
 +  - Configurăm static adresa IP de mai sus și default gateway-ul:<​code>​ 
 +student@eg106-pc:​~$ sudo ip a a 172.16.5.11/​22 dev eth4 
 +student@eg106-pc:​~$ sudo ip l s dev eth4 up 
 +student@eg106-pc:​~$ sudo ip r a default via 172.16.4.254 
 +student@eg106-pc:​~$ ip r s 
 +default via 172.16.4.254 dev eth4 
 +172.16.4.0/​22 dev eth4  proto kernel ​ scope link  src 172.16.5.11 
 +</​code>​ 
 +  - Reactivăm interfața ''​vboxnet0''​ pentru a permite comunicarea prin SSH dintre sistemul fizic și mașina virtuală VirtualBox:<​code>​ 
 +student@eg106-pc:​~$ vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0 
 +student@eg106-pc:​~$ ip r s 
 +default via 172.16.4.254 dev eth4 
 +172.16.4.0/​22 dev eth4  proto kernel ​ scope link  src 172.16.5.11 
 +192.168.56.0/​24 dev vboxnet0 ​ proto kernel ​ scope link  src 192.168.56.1 
 +</​code>​ 
 +  - Configurăm adresa IP a mașinii virtuale ca server de DNS în fișierul ''/​etc/​resolv.conf''<​code>​ 
 +student@eg106-pc:​~$ sudo vi /​etc/​resolv.conf 
 +student@eg106-pc:​~$ cat /​etc/​resolv.conf 
 +nameserver 192.168.56.115 
 +student@eg106-pc:​~$ host ixlabs 
 +ixlabs has address 192.168.56.115 
 +ixlabs mail is handled by 10 mail.ixlabs. 
 +student@eg106-pc:​~$ host -NS ixlabs 
 +ixlabs has address 192.168.56.115 
 +ixlabs mail is handled by 10 mail.ixlabs. 
 +</​code>​ 
 + 
 +Dacă pe parcursul laboratorului apar probleme de conectare, se pot rerula pașii de mai sus pentru reconfigurarea interfeței active a sistemului fizic. 
 +</​note>​ 
 + 
 +Pe configurația curentă a serverului DNS, dacă încercăm să aflăm adresa IP a unor stații din afara domeniului ''​ixlabs'',​ aceste cereri vor eșua:<​code>​ 
 +student@eg106-pc:​~$ host google.com 
 +Host google.com not found: 2(SERVFAIL) 
 +</​code>​ 
 + 
 +Pentru aceasta putem opta pentru una din două configurații pentru serverul de DNS: un //caching DNS server// (numit și //​resolver//​) care va primi cereri recursive de la clienți, sau un //​forwarding DNS server// care va transmite cereri mai departe la alte servere DNS (cele inițiale). Puteți opta pentru oricare dintre configurațiile de mai jos. 
 + 
 +==== Configurare caching DNS server ==== 
 + 
 +Pentru a configura un server DNS de tip caching resolver, va trebui să definim o listă de control a accesului și să activăm posibilitatea primirii de cereri recursive. Pentru aceasta operăm, pe **mașina virtuală**,​ în directorul ''/​etc/​bind/''​ corespunzătorul serverului DNS, modificările indicate mai jos:<​code>​ 
 +student@gsr-server:/​etc/​bind$ cat named.conf.options 
 +acl goodclients { 
 + 192.168.56.0/​24;​ 
 + localhost;​ 
 + localnets;​ 
 +}; 
 + 
 +options { 
 +[...] 
 + recursion yes; 
 + allow-query { goodclients;​ }; 
 +[...] 
 +}; 
 +</​code>​ 
 +În output-ul de mai sus am selectat liniile care trebuie adăugate în fișierul ''/​etc/​bind/​named.conf.options''​. 
 + 
 +Apoi repornim serviciul ''​bind9''​ și verificăm repornirea sa cu succes:<​code>​ 
 +student@gsr-server:/​etc/​bind$ sudo service bind9 restart 
 + 
 +student@gsr-server:/​etc/​bind$ sudo tail /​var/​log/​daemon.log 
 +Dec  3 15:05:42 gsr-server named[1146]:​ managed-keys-zone:​ journal file is out of date: removing journal file 
 +Dec  3 15:05:42 gsr-server named[1146]:​ managed-keys-zone:​ loaded serial 3 
 +Dec  3 15:05:42 gsr-server named[1146]:​ zone 0.in-addr.arpa/​IN:​ loaded serial 1 
 +Dec  3 15:05:42 gsr-server named[1146]:​ zone 127.in-addr.arpa/​IN:​ loaded serial 1 
 +Dec  3 15:05:42 gsr-server named[1146]:​ zone 255.in-addr.arpa/​IN:​ loaded serial 1 
 +Dec  3 15:05:42 gsr-server named[1146]:​ zone ixlabs/IN: loaded serial 2015111901 
 +Dec  3 15:05:42 gsr-server named[1146]:​ zone localhost/​IN:​ loaded serial 2 
 +Dec  3 15:05:42 gsr-server named[1146]:​ all zones loaded 
 +Dec  3 15:05:42 gsr-server named[1146]:​ running 
 +Dec  3 15:05:42 gsr-server named[1146]:​ zone ixlabs/IN: sending notifies (serial 2015111901) 
 + 
 +student@gsr-server:/​etc/​bind$ sudo netstat -ulpn | grep named 
 +udp        0      0 192.168.56.115:​53 ​      ​0.0.0.0:​* ​                          ​1146/​named 
 +udp        0      0 10.0.2.15:​53 ​           0.0.0.0:​* ​                          ​1146/​named 
 +udp        0      0 127.0.0.1:​53 ​           0.0.0.0:​* ​                          ​1146/​named 
 +udp6       ​0 ​     0 :::53                   :::​* ​                               1146/​named 
 +</​code>​ 
 + 
 +Acum putem, de pe **sistemul fizic**, să interogăm serverul DNS de pe mașina virtuală și pentru domenii pentru care nu este autoritar și acesta va rezolva cererile și va oferi răspunsul:<​code>​ 
 +student@eg106-pc:​~$ host google.com 
 +google.com has address 217.73.160.226 
 +google.com has address 217.73.160.230 
 +google.com has address 217.73.160.221 
 +[...] 
 +</​code>​ 
 + 
 +==== Configurare forwarding DNS server ==== 
 + 
 +Putem configura serverul DNS de pe mașina virtuală ca server de forwarding. Acesta va retransmite cererile recursive primite către alte servere DNS care să facă rezolvarea. În cazul nostru vom folosi serverele DNS inițial configurate pentru rețeaua laboratorului,​ adică ''​141.85.226.5''​ și ''​141.85.241.113''​. Pentru aceasta operăm, pe **mașina virtuală**,​ în directorul ''/​etc/​bind/''​ corespunzătorul serverului DNS, modificările indicate mai jos:<​code>​ 
 +student@gsr-server:/​etc/​bind$ sudo vi named.conf.options ​    
 +student@gsr-server:/​etc/​bind$ cat named.conf.options  
 +acl goodclients { 
 + 192.168.56.0/​24;​ 
 + localhost;​ 
 + localnets;​ 
 +}; 
 + 
 +options { 
 +[...] 
 + forwarders { 
 + 141.85.226.5;​ 
 + 141.85.241.113;​ 
 + }; 
 + forward only; 
 + allow-query { goodclients;​ }; 
 +[...] 
 +}; 
 +</​code>​ 
 +În output-ul de mai sus am selectat liniile care trebuie adăugate în fișierul ''/​etc/​bind/​named.conf.options''​. 
 + 
 +Apoi repornim serviciul ''​bind9''​ și verificăm repornirea sa cu succes:<​code>​ 
 +student@gsr-server:/​etc/​bind$ sudo service bind9 restart 
 + 
 +student@gsr-server:/​etc/​bind$ sudo tail /​var/​log/​daemon.log 
 +Dec  3 15:22:35 gsr-server named[1301]:​ command channel listening on ::1#953 
 +Dec  3 15:22:35 gsr-server named[1301]:​ managed-keys-zone:​ loaded serial 3 
 +Dec  3 15:22:35 gsr-server named[1301]:​ zone 0.in-addr.arpa/​IN:​ loaded serial 1 
 +Dec  3 15:22:35 gsr-server named[1301]:​ zone 127.in-addr.arpa/​IN:​ loaded serial 1 
 +Dec  3 15:22:35 gsr-server named[1301]:​ zone 255.in-addr.arpa/​IN:​ loaded serial 1 
 +Dec  3 15:22:35 gsr-server named[1301]:​ zone ixlabs/IN: loaded serial 2015111901 
 +Dec  3 15:22:35 gsr-server named[1301]:​ zone localhost/​IN:​ loaded serial 2 
 +Dec  3 15:22:35 gsr-server named[1301]:​ all zones loaded 
 +Dec  3 15:22:35 gsr-server named[1301]:​ running 
 +Dec  3 15:22:35 gsr-server named[1301]:​ zone ixlabs/IN: sending notifies (serial 2015111901) 
 +student@gsr-server:/​etc/​bind$ sudo netstat -ulpn | grep named 
 +udp        0      0 192.168.56.115:​53 ​      ​0.0.0.0:​* ​                          ​1301/​named ​      
 +udp        0      0 10.0.2.15:​53 ​           0.0.0.0:​* ​                          ​1301/​named ​      
 +udp        0      0 127.0.0.1:​53 ​           0.0.0.0:​* ​                          ​1301/​named ​      
 +udp6       ​0 ​     0 :::53                   :::​* ​                               1301/named  
 +</​code>​ 
 + 
 +Acum putem, de pe **sistemul fizic**, să interogăm serverul DNS de pe mașina virtuală și pentru domenii pentru care nu este autoritar și acesta va rezolva cererile și va oferi răspunsul:<​code>​ 
 +istudent@eg106-pc:​~$ host google.com 
 +google.com has address 217.73.160.226 
 +google.com has address 217.73.160.230 
 +google.com has address 217.73.160.221 
 +[...] 
 +</​code>​ 
 + 
 +===== Adăugare o nouă înregistrare ===== 
 + 
 +Ne propunem să adăugăm o nouă înregistrare în server-ul de DNS. Să mapăm adresa IP a sistemului fizic la numele ''​host.ixlabs''​. Pentru aceasta operăm, în **mașina virtuală**,​ în directorul ''/​etc/​bind'',​ modificările de mai jos<​code>​ 
 +istudent@gsr-server:/​etc/​bind$ sudo vi db.ixlabs 
 +student@gsr-server:/​etc/​bind$ cat db.ixlabs 
 +[...] 
 +host IN A 192.168.56.1 
 +</​code>​ 
 +Înregistrarea de mai sus, adăugată în cadrul fișierului ''/​etc/​bind/​db.ixlabs'',​ fișier de configurare a zonei ''​ixlabs'',​ face maparea dorită. 
 + 
 +Repornim serverul de nume<​code>​ 
 +student@gsr-server:/​etc/​bind$ sudo service bind9 restart 
 +</​code>​ 
 +și apoi, de pe **sistemul fizic**, validăm adăugarea noii întrări:<​code>​ 
 +student@eg106-pc:​~$ host host.ixlabs 
 +host.ixlabs has address 192.168.56.1 
 +student@eg106-pc:​~$ ping host.ixlabs 
 +PING host.ixlabs (192.168.56.1) 56(84) bytes of data. 
 +64 bytes from eg106-pc (192.168.56.1):​ icmp_seq=1 ttl=64 time=0.045 ms 
 +64 bytes from eg106-pc (192.168.56.1):​ icmp_seq=2 ttl=64 time=0.042 ms 
 +</​code>​ 
 + 
 +===== Delegare server DNS ===== 
 + 
 +Vrem să configurăm ''​host.ixlabs''​ ca domeniu pe **sistemul fizic** delegat de serverul DNS de pe mașina virtuală. Pentru aceasta vom urma doi pași: 
 +  - Instalăm serverul ''​bind9''​ pe sistemul fizic și îl configurăm să fie autoritar pe domeniul ''​host.ixlabs''​. 
 +  - Delegăm din serverul de pe **mașina virtuală** domeniul ''​host.ixlabs''​ pe sistemul fizic. 
 + 
 +==== Instalare și configurare domeniu ''​host.ixlabs''​ ==== 
 + 
 +Pentru început instalăm pachetul ''​bind9''​ pe sistemul fizic și verificăm pornirea serverului ''​bind9''<​code>​ 
 +student@eg106-pc:​~$ sudo apt-get install bind9 
 +[...] 
 + 
 +student@eg106-pc:​~$ sudo service bind9 restart 
 +student@eg106-pc:​~$ sudo netstat -ulpn | grep named 
 +udp        0      0 192.168.56.1:​53 ​        ​0.0.0.0:​* ​                          ​5565/​named 
 +udp        0      0 172.16.5.11:​53 ​         0.0.0.0:​* ​                          ​5565/​named 
 +udp        0      0 127.0.0.1:​53 ​           0.0.0.0:​* ​                          ​5565/​named 
 +udp6       ​0 ​     0 :::53                   :::​* ​                               5565/​named 
 +</​code>​ 
 + 
 +Apoi adăugăm configurația pentru zona ''​host.ixlabs''​ și verificăm configurația:<​code>​ 
 +student@eg106-pc:/​etc/​bind$ vi named.conf.local 
 +student@eg106-pc:/​etc/​bind$ cat named.conf.local 
 +// 
 +// Do any local configuration here 
 +// 
 + 
 +// Consider adding the 1918 zones here, if they are not used in your 
 +// organization 
 +//include "/​etc/​bind/​zones.rfc1918";​ 
 + 
 +zone "​host.ixlabs"​ { 
 + type master; 
 + file "/​etc/​bind/​db.host.ixlabs";​ 
 +}; 
 + 
 +student@eg106-pc:/​etc/​bind$ named-checkconf named.conf.local  
 +</​code>​ 
 + 
 +Apoi adăugăm fișierul de configurare a zonei, pornind de la un fișier existent și verificăm configurația:<​code>​ 
 +student@eg106-pc:/​etc/​bind$ sudo cp db.local db.host.ixlabs 
 +student@eg106-pc:/​etc/​bind$ sudo vi db.host.ixlabs 
 +student@eg106-pc:/​etc/​bind$ cat db.host.ixlabs 
 +
 +; BIND data file for host.ixlabs domain. 
 +
 +$TTL 604800 
 +@ IN SOA ns.host.ixlabs. root.host.ixlabs. ( 
 +       2 ; Serial 
 + 604800 ; Refresh 
 +   86400 ; Retry 
 + 2419200 ;​ Expire 
 + 604800 ) ; Negative Cache TTL 
 +
 +@ IN NS ns 
 +@ IN A 192.168.56.1 
 +ns IN A 192.168.56.1 
 + 
 +student@eg106-pc:/​etc/​bind$ named-checkzone host.ixlabs db.host.ixlabs 
 +zone host.ixlabs/​IN:​ loaded serial 2 
 +OK 
 +</​code>​ 
 + 
 +Repornim acum serviciul:<​code>​ 
 +student@eg106-pc:/​etc/​bind$ sudo service bind9 restart 
 +</​code>​ 
 +și verificăm configurația locală<​code>​ 
 +student@eg106-pc:/​etc/​bind$ host host.ixlabs localhost 
 +Using domain server: 
 +Name: localhost 
 +Address: 127.0.0.1#​53 
 +Aliases: 
 + 
 +host.ixlabs has address 192.168.56.1 
 +student@eg106-pc:/​etc/​bind$ host -t NS host.ixlabs localhost 
 +Using domain server: 
 +Name: localhost 
 +Address: 127.0.0.1#​53 
 +Aliases: 
 + 
 +host.ixlabs name server ns.host.ixlabs. 
 +</​code>​ 
 + 
 +==== Delegare domeniu ''​host.ixlabs''​ ==== 
 + 
 +Ca să facem legătura în domeniul ''​ixlabs''​ și subdomeniul ''​host.ixlabs'',​ vom configura delegare în cadrul serverului ''​bind9''​ de pe **mașina virtuală**. Pentru aceasta vom altera fișierul de configurare a zonei ''​ixlabs''​ (''/​etc/​bind/​db.ixlabs''​):<​code>​ 
 +</​code>​ 
 + 
 +===== Configuare server DNS delegat ===== 
 + 
 +TODO 
  
 <note important>​ <note important>​
Line 111: Line 928:
  
 student@mjolnir:​~$ crontab -l | tail -n 1 student@mjolnir:​~$ crontab -l | tail -n 1
-*/10 * * * * /​home/​student/​sync.sh+* /10 * * * * /​home/​student/​sync.sh
  
 root@mjolnir:​~#​ /​etc/​init.d/​cron restart root@mjolnir:​~#​ /​etc/​init.d/​cron restart
Line 600: Line 1417:
   *[02].a. Instalați ''​vsftpd''​ în mașina virtuală și configurați autentificarea folosind PAM. Testați folosind un client din mașina fizică. (tutorial: http://​www.cyberciti.biz/​tips/​centos-redhat-vsftpd-ftp-with-virtual-users.html)   *[02].a. Instalați ''​vsftpd''​ în mașina virtuală și configurați autentificarea folosind PAM. Testați folosind un client din mașina fizică. (tutorial: http://​www.cyberciti.biz/​tips/​centos-redhat-vsftpd-ftp-with-virtual-users.html)
   *[02].b. Configurați suport pentru conexiuni SSL în serverul FTP instalat anrerior. Testați folosind un client din mașina fizică. (tutorial: http://​www.cyberciti.biz/​tips/​configure-vsfptd-secure-connections-via-ssl-tls.html)   *[02].b. Configurați suport pentru conexiuni SSL în serverul FTP instalat anrerior. Testați folosind un client din mașina fizică. (tutorial: http://​www.cyberciti.biz/​tips/​configure-vsfptd-secure-connections-via-ssl-tls.html)
 +
 +*/
 +
gsr/laboratoare/laborator-07.1423232743.txt.gz · Last modified: 2015/02/06 16:25 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0