Differences

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

Link to this comparison view

rl:labs:12:contents:01 [2013/12/31 14:24]
razvan.deaconescu [01. Necesitatea autentificării în rețeaua locală]
rl:labs:12:contents:01 [2024/01/08 15:37] (current)
vlad_iulius.nastase [01. [10p] Conectare la infrastructură]
Line 1: Line 1:
-==== 01. Necesitatea autentificării în rețeaua locală ====+==== 01. [10p] Conectare la infrastructură ====
  
-Se poate întâmpla ca într-o ​rețea ​locală un utilizator să folosească adresa IP a altui utilizator pentru diverse beneficiiDe exemplu, în situația în care are accesul la Internet-ul blocat, ​un utilizator schimbă adresa IP (eventual ​și adresa MAC) și folosește accesul ​la Internet cu privilegiile utilizatorului căruia i-a "​furat"​ adresa IPSoluția folosită de furnizorii de servicii Internet este autentificarea utilizatorilor,​ lucru realizat folosind PPPoE (//Point to Point Protocol over Ethernet//).+În cadrul laboratorului veți lucra în echipe. Fiecare echipa va administra propria ​rețea ​virtuală. La începutul laboratorului veți primi un număr de grupa și parolă de ssh pentru acces la rețeaua voastră. Pool-ul de adrese asociat rețelei va fi sub formă <număr grupa>​.0.0.0/8. Fiecare echipă are acces la rețea printr-un container [[https://en.wikipedia.org/wiki/​Bastion_host|bastion]]Pentru a accesa acest container puteți folosi comanda:
  
-Ne propunem să punem la punct un astfel de scenariu în care o stație "fură" adresa IP a altei stațiiPentru aceasta, vom conecta stațiile ''​host'',​ ''​red''​ și ''​green''​ în aceeași rețea de nivel 2Vom crea un bridge în care vom adăuga toate stațiile și vom configura adrese IP din aceeași rețea.+<code Bash> 
 +ssh -J your_user.here@fep.grid.pub.ro -p 2000+<​număr grupă> root@10.9.2.74 
 +</​code>​
  
-Pentru începutcreați pe stația ''​host''​ un switch virtual în Linux (bridge) denumit ''​br0''​ în care să adăugați interfețele ''​veth-red''​ și ''​veth-green''​. Urmăriți indicațiile ​din [[rl:labs:11:contents:​01|laboratorul 11]].+De exemplustudentul John Smith din grupa 11 se va conecta folosind:
  
-<note important+<code Bash
-Trebuie să activați interfața ''​br0'' ​-- interfața bridge-uluiFolosiți comanda ''​ip link''​. +ssh -J john.smith@fep.grid.pub.ro ​-p 2011 root@10.9.2.74
-</​note>​ +
- +
-<​solution ​-hidden>​ +
-<code bash> +
-root@host:~# brctl addbr br0 +
-root@host:​~#​ brctl addif br0 veth-red +
-root@host:​~#​ brctl addif br0 veth-green +
-root@host:​~#​ brctl show +
-bridge name     ​bridge id               STP enabled ​    ​interfaces +
-br0             8000.4a8a889a72d6 ​      ​no ​             veth-red +
-                                                        veth-green +
-root@host:​~#​ ip link set dev br0 up+
 </​code>​ </​code>​
-</​solution>​ 
  
-Configurați pe interfața ''​br0'' ​(interfața de tip bridge) de pe stația ''​host''​ adresa IP ''​192.168.0.1/24''​Pe stațiile ''​red'' ​și ''​green''​ configurați adresa IP ''​192.168.0.2/​24''​.+O dată conectați vă veți afla pe container-ul bastion ​("​ssh"​)de aici puteți apela scriptul ​./goto.sh pentru a vă conecta la routere ​și host-uri. De exemplu, pentru a vă conecta la routerul BUCH veți apela:
  
-<note important>​ +<​code ​Bash
-Pe ambele stații (''​red''​ și ''​green''​) să fie aceeași adresă IP: ''​192.168.0.2/​24''​. +./goto.sh BUCH router
-</​note>​ +
- +
-<​solution -hidden>​ +
-<​code ​bash+
-root@host:​~#​ ip a a 192.168.0.1/24 dev br0 +
-root@host:​~#​ ip a s br0 +
-12: br0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP  +
-    link/ether 22:​02:​4e:​36:​da:​7f brd ff:​ff:​ff:​ff:​ff:​ff +
-    inet 192.168.0.1/24 scope global br0 +
-    inet6 fe80::​9090:​7dff:​fe58:​a566/​64 scope link  +
-       ​valid_lft forever preferred_lft forever +
- +
-root@red:~# ip a a 192.168.0.2/​24 dev eth0 +
-root@red:~# ip l s dev eth0 up +
-root@red:~# ip a s dev eth0 +
-22: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000 +
-    link/ether 00:​16:​3e:​8e:​84:​21 brd ff:​ff:​ff:​ff:​ff:​ff +
-    inet 192.168.0.2/​24 scope global eth0 +
-    inet6 fe80::​216:​3eff:​fe8e:​8421/​64 scope link  +
-       ​valid_lft forever preferred_lft forever +
- +
-root@green:​~#​ ip a a 192.168.0.2/​24 dev eth0 +
-root@green:​~#​ ip l s dev eth0 up +
-root@green:​~#​ ip a s dev eth0 +
-25: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000 +
-    link/ether 00:​16:​3e:​d1:​b2:​95 brd ff:​ff:​ff:​ff:​ff:​ff +
-    inet 192.168.0.2/​24 scope global eth0 +
-    inet6 fe80::​216:​3eff:​fed1:​b295/​64 scope link  +
-       ​valid_lft forever preferred_lft forever+
 </​code>​ </​code>​
-</​solution>​ 
  
-Pe stația ''​red''​ aflăm adresa MAC a interfeței ''​eth0''​ și apoi trimitem pachete către stația ''​host''​ (adică spre adresa ''​192.168.0.1/​24''​ aferentă interfeței ''​br0''​ a bridge-ului de pe ''​host''​):<​code bash> +Această comandă vă va oferi acces la terminalul router-ului, ​cu o interfață similară cu cea CISCO IOS.
-root@red:~# ip link show dev eth0 +
-22: eth0: <​BROADCAST,MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000 +
-    link/ether 00:​16:​3e:​8e:​84:​21 brd ff:​ff:​ff:​ff:​ff:​ff +
-root@red:~# ping 192.168.0.1 +
-PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. +
-64 bytes from 192.168.0.1:​ icmp_req=1 ttl=64 time=0.379 ms +
-^C +
---- 192.168.0.1 ping statistics --- +
-1 packets transmitted,​ 1 received, 0% packet loss, time 0ms +
-rtt min/​avg/​max/​mdev = 0.379/​0.379/​0.379/​0.000 ms +
-</​code>​+
  
-Urmărim pe stația ​''​host'' ​tabela ARP a interfeței ​''​br0''​:<code bash> +**Reminder comenzi generice** 
-root@host:​~#​ ip neigh show dev br0 +  * ''​%%configure terminal%%'' ​- intră în modul de configurare;​ orice comandă dată în modul de configurare va fi aplicată asupra router-ului. 
-192.168.0.2 lladdr 00:​16:​3e:​8e:​84:​21 REACHABLE +  * ''​%%ping <​destination>​%%'' ​- trimite pachete de tip ICMP către ''​%%<destination>%%''​
-</code> +  * ''​%%traceroute ​<destination>%%'' ​- afișează calea pe care o ia un pachet pentru ​ajunge la ''​%%<​destination>​%%''​
-Observăm că intrarea aferentă adresei IP ''​192.168.0.2''​ conține adresa MAC interfeței ​''​eth0'' ​a stației ​''​red''​.+  * ''​%%exit%%'' ​- iese din modul curent de configurare.
  
-Acum, pe stația ''​green''​ aflăm adresa MAC interfeței ''​eth0''​ șapoi trimitem pachete către stația ''​host''​:<code bash> +Pentru ​accesa host-ul conectat la router-ul BUCH veți apela:
-root@green:​~#​ ip link show dev eth0  +
-25: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000 +
-    link/ether 00:​16:​3e:​d1:​b2:​95 brd ff:​ff:​ff:​ff:​ff:​ff +
-root@green:​~#​ ping 192.168.0.1 +
-PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. +
-64 bytes from 192.168.0.1:​ icmp_req=1 ttl=64 time=0.416 ms +
-^C +
---- 192.168.0.1 ping statistics --- +
-1 packets transmitted,​ 1 received, 0% packet loss, time 0ms +
-rtt min/​avg/​max/​mdev = 0.416/​0.416/​0.416/​0.000 ms +
-</​code>​+
  
-Urmărim, din nou, pe stația ''​host''​ tabela ARP a interfeței ''​br0'':​<​code ​bash+<​code ​Bash
-root@host:​~#​ ip neigh show dev br0 +./goto.sh BUCH host
-192.168.0.2 lladdr 00:​16:​3e:​d1:​b2:​95 REACHABLE+
 </​code>​ </​code>​
-Observăm că intrarea aferentă adresei IP ''​192.168.0.2''​ conține acum adresa MAC a interfeței ''​eth0''​ a stației ''​green''​. 
  
-Dacă executăm comanda<​code bash> 
-ping 192.168.0.1 
-</​code>​ 
-simultan de pe stațiile ''​red''​ și ''​green'',​ observăm că doar o stație primește la un moment dat răspunsul: cea care are adresa MAC asociată la acel moment adresei IP ''​192.168.0.2''​ în tabela ARP a interfeței ''​br0''​. După cum am precizat la început, acest lucru este întâlnit frecvent în rețele de dimensiuni medii și mari unde utilizatorii își pun aceeași adresă IP cu a unui alt calculator din rețea în încercarea de a fura identitatea acestuia. 
  
-Pentru a ne asigura că utilizatorii nu folosesc alte adrese IP, folosim autentificare la nivelul 2; adică să condiționăm conectarea la Internet de furnizarea unei adrese IP și a unei parole. Ținând cont de prevalența rețelelor bazate pe Ethernet, este indicat să folosim un protocol de autentificare peste Ethernet. Una dintre cele mai întâlnite soluții este PPPoE (//Point to Point Protocol over Ethernet//​). 
  
-<​note>​ 
-Autentificarea utilizatorului pentru a obține conectivitate la Internet este unul dintre motivele pentru care mulți furnizori de servicii Internet folosesc PPPoE pentru accesul la Internet (rețeaua din campusul Regie, rețeaua RDS etc.). 
-</​note>​ 
- 
-În secțiunile următoare vom configura un server și clienți de PPPoE. 
- 
-<note important>​ 
-Înainte de a trece la configurarea serverului de PPPoE ștergeți adresele IP de pe containerele ''​red''​ și ''​green''​ folosind comanda ''​ip address flush''​. Bridge-ul ''​br0''​ va fi în continuare activ cu adresa ''​192.168.0.1/​24''​ și va avea conectate interfețele ''​veth-red''​ și ''​veth-green''​. 
-<​solution -hidden> 
-<code bash> 
-root@red:~# ip a f dev eth0 
-root@red:~# ip a s dev eth0 
-22: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000 
-    link/ether 00:​16:​3e:​8e:​84:​21 brd ff:​ff:​ff:​ff:​ff:​ff 
- 
-root@green:​~#​ ip a f dev eth0 
-root@green:​~#​ ip a s dev eth0 
-25: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000 
-    link/ether 00:​16:​3e:​d1:​b2:​95 brd ff:​ff:​ff:​ff:​ff:​ff 
-</​code>​ 
-</​solution>​ 
-</​note>​ 
rl/labs/12/contents/01.1388492691.txt.gz · Last modified: 2013/12/31 14:24 by razvan.deaconescu
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