dwa tematy będą przy pomnieniem sobie kilku zagadnień z poprzedniego
modułu.
</p>
- <h2 id="2.1.basicdeviceconfiguration">2.1. Podstawowa konfiguracją urządzenia</h2>
+ <h1 id="2.1.basicdeviceconfiguration">2.1. Podstawowa konfiguracją urządzenia</h1>
<p>
Każde dostaczone urządzenie zawiera już jakąś konfigurację. Bez tego
nie mogło by działać. Oczywiście ta konfiguracja ma z zadanie
jakie do tej pory poznaliśmy. Rozszerzymy wiedzę zawartą w podstawowej
konfigurację przełącznika oraz routera o kilka nowych informacji.
</p>
- <h3>Sekwencja rozruchowa przełącznika</h3>
<p>
Wiekszość urządzeń techniki komputerowej, niezależnie od tego jak
prymitywne one nie są i jakie realizują zadania oparto o schemat
<li>Na końcu boot loader, odszukuje na powyższej pamięci obraz IOS i
uruchamamia go i przekazuje mu kontrolę nad urządzeniem.</li>
</ol>
- <h3>Polecenie boot system</h3>
<p>
+ Jak w przypadku większości komputerów, czy to mniej lub bardziej
+ prymitywnych możemy kontrolować ich rozruch, jednym ze sposobów zmiany
+ sekewncji startowej urządzenia jest uzycie odpowiednich poleceń
+ systemu IOS.
Polecenie <code class="code-inline">boot system</em> służy do
ustawienia zmiennej środowiskowej BOOT. Przechowuje ona bowiem ścieżkę
wskazującą na plik z system operacyjnym w tym wypadku z IOS. Jeśli
ponownie wyświetliłem informacje rozruchowe i w pierwszym wierszu
widzimy naszą wskazaną ścieżkę.
</p>
- <h3>Kontrolki LED przełącznika</h3>
<p>
Przełączniki serii <em>Catalist</em> (powszechnie używane modele) firmy
Cisco, nie posiadają wyświetlaczy, a jedynie zestaw diód nad portami
Zanim jednak odłączym go od prądu, naciśnijmy przycisk <em>MODE</em>
kilka razy. Zawieszony przełącznik nie mógł by zmienić trybów.
</p>
- <h3>Awaryjne przywaracanie urządzenia do ustawień fabrycznych</h3>
<p>
Jednym z celów, dla których uczestniczymy w kursie CCNA jest poznanie
możliwości wykorzystania sprzętu firmy Cisco, więc jeśli pracujemy na
Uruchamiając przełącznik w trybie opisanym powyżej, przechodzimy do
czegoś, co można porównać do trybu awaryjnego.
</p>
- <h3>Dostęp do zarządzania przełącznikami</h3>
<p>
Reguła ta nie tyczy się tylko przełączników, ale i większości urządzeń
firmy Cisco. Te urządzenia nie są skonfigurowane, do zdalnego
za opatrzenie się w adapter USB - RS232, dostępne są one za parę
złotych na serwiach aukcyjnych czy sklepach internetowych.
</p>
- <h3>Przykład konfiguracji SVI przełącznika</h3>
<p>
Bawiąc się przełącznikami w porzednim module, wykorzystwaliśmy domyślny
VLAN 1, jako SVI. Jednak ze względów bezpieczeństwa nie jest to dobrym
Building configuration...
[OK]
</pre>
- <h3>Ćwiczenie praktyczne - Laboratorium</h3>
+ <h3 id="2.1.1.lab">Ćwiczenie praktyczne - Laboratorium</h3>
<p>
- <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/laby/1.1.7-lab---basic-switch-configuration_pl-PL.pdf">2.1.1. Laboratorium - podstawowa konfiguracja przełącznika</a>
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/laby/1.1.7-lab---basic-switch-configuration_pl-PL.pdf">Podstawowa konfiguracja przełącznika</a>
</p>
<h2 id="2.1.2.switchportsconfiguration">2.1.2. Konfiguracja portów przełącznika</h2>
<p>
<em>late collisions</em>). Informacje na ten temat mogą być pomocne,
w diagnozowaniu stanu <em>up/down</em>.
</p>
+ <h2 id="2.1.3.securedremoteaccess">2.1.3. Bezpieczny zdalny dostęp</h2>
+ <p>
+ Pracując przy administracji sieciami komputerowymi, może zdażyć się
+ taka sytuacja, że trzeba będzie skonfigurować urządzenia, do których
+ dostęp fizyczny, aby podłączyć się konsolą może być utrudniony lub
+ w ogóle niedostępny. Na szczęście urządzenia firmy Cisco zapewniają
+ zdalny dostęp swoich urządzeń. To powinniśmy pamiętać z poprzedniego
+ modułu.
+ </p>
+ <p>
+ Do wyboru mamy przestarzały <strong>Telnet</strong> (23/TCP), który nie
+ zapewnia bezpieczeństwa transmisji, nie szyfruje przesłanych za jego
+ pośrednictwem informacji. Raczej nie jest już stosowany.
+ </p>
+ <p>
+ Inną opcją jest użycie lepszego protokołu, jakim jest
+ <strong>SSH</strong>
+ (ang. <em>Secure SHell</em>). SSH wykorzystuje silną krytpografię do
+ zabezpieczenia transmisji pomiędzy naszym komputerem, a urządzeniem.
+ Jeśli używamy protokołu SSH w wersji 2, szanse na podsłuchanie
+ transmisji, są nie mal, że nikłe. SSH wykorzystuje transmisję protokołu
+ TCP na porcie 22.
+ </p>
+ <p>
+ Nie wspominałbym gdyby nie to, że nie wszystkie urządzenia posiadają
+ obsługę kryptografii - przez co SSH może być dostępne.
+ Jak to sprawdzić? Otóż obsługę kryptografii możemy poznać po
+ <strong>nazwie pliku z systemem operacyjnym</strong> jeśli w nazwie
+ pliku występuje sekwencja <strong>k9</strong> oznacza to, że w wersji
+ IOS dla tego urządzenia zaimplementowano kryptografię, a co za tym
+ idzie i obsługę SSH. Poniżej przedstawiam listing zawartości pamięci
+ <em>flash</em> z urządzeń, które mają możliwość wykorzystać SSH oraz
+ takich, w których nie ma takiej możliwości (wg. powyższej zasady).
+ </p>
+<pre class="code-block">
+# Przełącznik Catalyst 2960:
+Switch#dir flash:
+Directory of flash:/
+
+ 1 -rw- 4670455 <no date> 2960-lanbasek9-mz.150-2.SE4.bin
+
+64016384 bytes total (59345929 bytes free)
+
+# Przełącznik Catalist 2950:
+Switch#dir flash:
+Directory of flash:/
+
+ 1 -rw- 3058048 <no date> c2950-i6q4l2-mz.121-22.EA4.bin
+
+64016384 bytes total (60958336 bytes free)
+</pre>
+ <p>
+ W przypadku pierwszego przełącznika, sekwencja <em>k9</em> znajduje się
+ w drugiej części nazwy pliku po ciągu znaku
+ <code class="code-inline">lanbase</code>. Inny sposobem na sprawdzenie
+ nazwy pliku z IOS jest wydanie polecenia
+ <code class="code-inline">show version</code>.
+ </p>
+ <p>
+ Uruchomienie SSH, było w podkoniec zeszłego modułu, ale, żeby ten
+ moduł był kompletny, przypmnimy sobie jak się to robi. Na początek
+ wydamy sobie polecenie: <code class="code-inline">show ip ssh</code>.
+ W przypadku urządzenie ze wsparciem kryptograficznym odpowiedź powinna
+ być następująca:
+ </p>
+<pre class="code-block">
+Switch#show ip ssh
+SSH Disabled - version 1.99
+%Please create RSA keys (of atleast 768 bits size) to enable SSH v2.
+Authentication timeout: 120 secs; Authentication retries: 3
+</pre>
+ <p>
+ A jeśli polecenie wydamy na urządzeniu, które nie ma takich funkcji
+ (wg. opisywanej wcześniej zasady), jego odpowiedź będzie następująca:
+ </p>
+<pre class="code-block">
+Switch#dir flash:
+Directory of flash:/
+
+ 1 -rw- 3058048 <no date> c2950-i6q4l2-mz.121-22.EA4.bin
+
+64016384 bytes total (60958336 bytes free)
+Switch#show ip ssh
+SSH Enabled - version 1.99
+Authentication timeout: 120 secs; Authentication retries: 3
+</pre>
+ <p>
+ Generalnie pomysł z rozponawaniem możliwości kryptograficznych wersji
+ IOS po nazwie pliku, nie jest złym pomysłem. Jest nowym pomysłem, ale
+ jego twórca, prawdopodobnie zapomniał, że wcześniej istniał inny
+ sposób. Dlatego też, nie warto tracić czasu na analizę nazwy pliku.
+ Najlepiej od razu powyższe polecenie. W urządzeniach z obsługą SSH oraz
+ silnej kryptografii, zwróci na ono takie informacje na jak na
+ powyższych przykładach. Jeśli takiego wsparcia nie będzie, to wówczas
+ to polecenie nie zostanie rozpoznane w ogóle.
+ </p>
+ <p>
+ Wracając do konfiguracji SSH. Musimy ustawić nazwę hosta oraz
+ nazwę domeny.
+ </p>
+<pre class="code-block">
+Switch(config)#hostname C2950
+C2950(config)#
+C2950(config)#ip domain-name example.com
+</pre>
+ <p>
+ SSH w wersji 1, zawiera znane podatności i nie jest już wykorzystywane,
+ ani rozwijane. Więc aby użyć tej lepszej - 2 wersji SSH, musimy
+ wygenerować nową parę kluczy, o długości co najmniej 768 bitów, aby
+ móc włączyć SSH 2. Sugeruje nam to nawet informacja zwraca przez
+ polecenie <code class="code-inline">show ip ssh</code>:
+ <code class="code-inline">%Please create RSA keys (of atleast 768 bits size) to enable SSH v2.</code>
+ Aby wygenerowac parę kluczy, wydajemy poniższe polecenie w trybie
+ konfiguracji globalnej. Polecenie po uruchomieniu zapyta się o długość
+ klucza. Generalnie przyjęło się, że taką dolną bezpieczną granica są
+ klucze o długości 1024 bitów. Chociaż obecnie skłaniamy się do
+ tworzenia dwa razy dłużyszch kluczy - 2048 bitów. Ze względu na
+ powszchną dostępność dużej mocy obliczeniowej, tak krótkie klucze mogą
+ nie wystarczać. Jednak należy pamiętać, że dłuższy klucz spowoduje
+ większe obciążenie procesora urządzenia. Decyzja należy do nas.
+ </p>
+<pre class="code-block">
+C2950(config)#crypto key generate rsa
+The name for the keys will be: C2950.example.com
+Choose the size of the key modulus in the range of 360 to 4096 for your
+ General Purpose Keys. Choosing a key modulus greater than 512 may take
+ a few minutes.
+
+How many bits in the modulus [512]: 1024
+% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
+
+C2950(config)#
+</pre>
+ <p>
+ Powyższe informacje, tak jak nazwa host oraz domeny, służą do
+ nazwania pary kluczy. SSH wymaga do uwierzytelniania nazwy użytkownika
+ oraz hasła. Urządzenia Cisco mogą do uwierzytelniania wykorzystać
+ specjalny serwer (RADIUS), lub lokalną bazę danych. Dla celów
+ szkoleniowych wykorzystamy lokalną bazę danych. Utworzymy użytkownika
+ <em>admin</em> z hasłem <em>ccna</em>. W trybie konfiguracji globalnej
+ wydajmy poniższe polecenie.
+ </p>
+<pre class="code-block">
+C2950(config)#username admin secret ccna
+</pre>
+ <p>
+ Teraz możemy skonfigurować linie VTY, przełączniki Catalyst 2960 mają
+ zakres tych linii od 0 15. Aby skonfigurować linie VTY, tak aby
+ używały SSH wydajemy poniższe polecenia w trybie konfiguracji globalnej
+ oraz w trybie konfiguracji linii.
+ </p>
+<pre class="code-block">
+C2950(config)#line vty 0 15
+C2950(config-line)#transport input ssh
+C2950(config-line)#login local
+C2950(config-line)#exit
+</pre>
+ <p>
+ Na koniec pozostaje nam wymusić wersję 2 protokołu SSH. Za pomocą
+ poniższego polecenia wydane w trybie konfiguracji globalnej:
+ </p>
+<pre class="code-block">
+C2950(config)#ip ssh version 2
+</pre>
+ <p>
+ Przełączenie wersji, możemy zweryfikować za pomocą polecenia
+ <code class="code-inline">show ip ssh</code>. Przed wymuszeniem wersja
+ była <em>1.99</em>, a obecnie jest:
+ </p>
+<pre class="code-block">
+C2950#show ip ssh
+SSH Enabled - version 2.0
+Authentication timeout: 120 secs; Authentication retries: 3
+</pre>
+ <p>
+ Weryfikacji działania SSH, możemy dokonać próbując się podłączyć,
+ przy użyciu PuTTY lub innego klienta SSH. Obecnie są one wbudowane
+ we większość systemów operacyjnych. Połączenia SSH na urządzeniach
+ Cisco możemy sprawdzić za pomocą polecenia
+ <code class="code-inline">show ssh</code>.
+ </p>
+ <h3 id="2.1.3.pka">Ćwiczenie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/pt/1.3.6-packet-tracer---configure-ssh_pl-PL.pdf">Konfiguracja SSH - scenariusz</a><br />
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/pt/1.3.6-packet-tracer---configure-ssh_pl-PL.pka">Konfiguracja SSH - zadanie</a>
+ </p>
+ <h2 id="2.1.4.basicrouterconfiguration">2.1.4. Podstawowa konfiguracja routera</h2>
+ <p>
+ Do tej pory skupialiśmy się głównie na przełącznikach, teraz zajmiemy
+ się routerem. Konfigurację routera, możemy podzielić na dwie części
+ część pierwsza skupia się głównie na konfiguracji i podstawowym
+ zabezpieczeniu systemu operacyjnego, bez konfiguracji interfejsów
+ sieciowych. Część druga skupia się na właśnie na tej części sieciowej,
+ ustawieniu interfejsów oraz ewentualnie tras.
+ </p>
+ <p>
+ Pierwszą częśc wałkowaliśmy na pierwszym module, drugą również dlatego
+ przedstawię je w postaci zwięzłego bloku kodu, jeśli coś będzie
+ wymagało wyjaśnienia to umieszcze je pod nim.
+ </p>
+<pre class="code-block">
+Router>ena
+Router#configure terminal
+Enter configuration commands, one per line. End with CNTL/Z.
+Router(config)#hostname R1
+R1(config)#enable secret class
+R1(config)#line console 0
+R1(config-line)#password cisco
+R1(config-line)#login
+R1(config-line)#exit
+R1(config)#line vty 0 4
+R1(config-line)#password cisco
+R1(config-line)#login
+R1(config-line)#exit
+R1(config)#service password-encryption
+R1(config)#banner motd # Nieautoryzowany dostep jest zabroniony! #
+R1(config)#end
+R1#
+%SYS-5-CONFIG_I: Configured from console by console
+
+R1#copy running-config startup-config
+Destination filename [startup-config]?
+Building configuration...
+[OK]
+</pre>
+ <p>
+ Innym dość ważnym zadaniem podczas egzaminu może być ustawienie
+ aktualnej daty i czasu na urządzeniu. Dokonujemy tego za pomocą
+ polecnia <code class="code-inline">clock set</code> w
+ <strong>trybie uprzywilejowanym</strong>.
+ </p>
+<pre class="code-block">
+R1#clock set 18:20:00 6 Jul 2024
+</pre>
+ <p>
+ Myślę, że te powyższe proste polecenia nie wymagają dodatkowego
+ omówienia. Teraz zajmiemy się częścią sieciową. Na kursie CCNA będziemy
+ operować na podwójnym stosie IP - dla IPv4 oraz IPv6 i w taki sposób
+ skonfigurujemy nasze interfejsy sieciowe. Na początku warto się
+ rozejrzeć, jakie interfejsy mamy dostępne w naszym urządzeniu.
+ </p>
+<pre class="code block">
+Nieautoryzowany dostep jest zabroniony!
+
+User Access Verification
+
+Password:
+Password:
+
+R1>ena
+Password:
+R1#show ip interface brief
+Interface IP-Address OK? Method Status Protocol
+GigabitEthernet0/0 unassigned YES NVRAM administratively down down
+GigabitEthernet0/1 unassigned YES NVRAM administratively down down
+Serial0/0/0 unassigned YES unset down down
+Serial0/0/1 unassigned YES unset down down
+Vlan1 unassigned YES NVRAM administratively down down
+R1#
+</pre>
+ <p>
+ Kiedy już mniej więcej wiemy gdzie co ma być podłączone, możemy przejść
+ do właściwej konfiguracji portów.
+ </p>
+<pre class="code-block">
+R1#configure terminal
+Enter configuration commands, one per line. End with CNTL/Z.
+R1(config)#interface gigabitethernet 0/0
+R1(config-if)#ip address 192.168.10.1 255.255.255.0
+R1(config-if)#ipv6 address 2001:db8:acad:1::1/64
+R1(config-if)#description LAN1
+R1(config-if)#no shutdown
+R1(config-if)#
+R1(config-if)#exit
+R1(config)#interface gigabitethernet 0/1
+R1(config-if)#ip address 192.168.11.1 255.255.255.0
+R1(config-if)#ipv6 address 2001:db8:acad:2::1/64
+R1(config-if)#description LAN2
+R1(config-if)#no shutdown
+R1(config-if)#exit
+R1(config)#interface Serial 0/0/0
+R1(config-if)#ip address 209.165.200.225 255.255.255.252
+R1(config-if)#ipv6 address 2001:db8:acad:3::225/64
+R1(config-if)#description WAN1
+R1(config-if)#no shutdown
+R1(config-if)#exit
+</pre>
+ <p>
+ EXAM TIP: Warto używać polecenia <code class="code-inline">description</code>
+ podczas ustawiania interfejsów, nawet jeśli nas o to nie proszą czy nie
+ podanej wprost treści opisu interfejsu ważne, że polecenie zostało
+ wydane w trybie konfiguracji interfejsu.
+ </p>
+ <p>
+ Podczas konfiguracji routera, być może będzie potrzeba skonfigurowania
+ adresu pętli zwrotnej. <em>Loopback</em> fizycznie nie istnieje, jest
+ adresem programowym, konfigurowanych w celach testowych lub
+ pozostawnienia jednego co najmniej aktywnego portu na urządzeniu.
+ Pętlę zwrotną konfiguruje się w poniższy sposób.
+ </p>
+<pre class="code-block">
+R1(config)#interface loopback 0
+R1(config-if)#ip address 10.0.0.1 255.255.255.0
+R1(config-if)#exit
+</pre>
+ <h3 id="2.1.4.pka">2.1.4. Ćwiczenie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/pt/1.4.7-packet-tracer---configure-router-interfaces_pl-PL.pdf">Konfiguracja interfejsów routera - scenariusz</a><br />
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/pt/1.4.7-packet-tracer---configure-router-interfaces_pl-PL.pka">Konfiguracja interfejsów routera - zadanie</a>
+ </p>
+ <h2 id="2.1.5.interfaceverifyingcommands">2.1.5. Polecenia weryfikacji interfejsu</h2>
+ <p>
+ Czasami po ustawieniu interfejsów, czy zmianie innej konfiguracji w
+ urządzeniach Cisco, chcielibyśmy zobaczyć czy gdzieś nie popełniśmy
+ błedu lub też znajdujemy się w sytuacji, w której coś jest nie tak,
+ coś nie działa jak należy i trzeba sprawdzić co jest nie tak. Poniżej
+ znajduje się lista przydatnych poleceń:
+ </p>
+ <ul>
+ <li><code class="code-inline">show ip interface brief</code> i
+ <code class="code-inline">show ipv6 interface brief</code> -
+ wyświetlenie podsumowania wszystkich interfejsów wraz z adresami
+ IPv4 i IPv6 oraz ich bieżącym stanem.</li>
+ <li><code class="code-inline">show running-config interface <em>interface-id</em></code>
+ - polecenia zastosowane do konfiguracji podanego interfejsu.</li>
+ <li><code class="code-inline">show ip route</code> i
+ <code class="code-inline">show ipv6 route</code> - wyświetlenie
+ tablicy routingu. Od wersji 15 IOS, dla interfejsów będą dwie trasy
+ podłączona (<code class="code-inline">C</code>) i lokalna
+ (<code class="code-inline">L</code>). We wcześniejszych wersjach
+ IOS, będzie występować jedynie trasa podłączona
+ (<code class="code-inline">C</code>)</li>
+ <li><code class="code-inline">show ip interface <em>interface-id</em><code>
+ i <code class="code-inline">show ipv6 interface <em>interface-id</em></code>
+ - wyświetla szczegółowe informacje na temat podanego interfejsu.
+ Identyfikator można pominąć wówczas wyświetlone zostaną wszystkie
+ szczegóły wszystkich interfejsów w urządzeniu, po kolei.</li>
+ </ul>
+ <p>
+ Wyjścia polecenia show podelgają filtrowanie, podobnie jak na Uniksach,
+ stosuje się tutaj znak potoku (<strong>|</strong>), po znaku
+ filtrowania (potoku), może wystąpić jedno z czterech poleceń
+ filtrujących, a każde z nich przyjmuje jako argument
+ <strong>wyrażenie filtrujące</strong>.
+ </p>
+ <ul>
+ <li><code class="code-inline">section</code> - pokazuje całą sekcję
+ rozpoczynjące się od wyrażenia filtrującego</li>
+ <li><code class="code-inline">include</code> - wyświetla linie pasujące
+ do wyrażenia filtrującego</li>
+ <li><code class="code-inline">exclude</code> - wyklucza linie pasujące
+ do wyrażenia filtrującego</li>
+ <li><code class="code-inline">begin</code> - pokazuje pozostałe linie
+ z wyjścia polecenia od określonego przez wyrażenie filtracyjne
+ wiersza.</li>
+ </ul>
+ <p>
+ Jak mogliśmy spostrzec lub nie, IOS posiada historię. Historia poleceń
+ domyślnie przechowuje tylko 10 wprowadzonych poleceń, a poruszać się
+ poniej możemy albo zapomocą strzałek (góra - dół) lub kombinacji
+ klawiszy <em>Ctrl+p</em> i <em>Ctrl+n</em> (GNU Readline). Wielkość
+ bufora możemy kontrolować, wydając w trybie uprzywilejowanym polecenie
+ <code class="code-inline">terminal history size <em>N</em></code>,
+ gdzie <em>N</em> jest ilością przechowywanych wierszy.
+ </p>
+<pre class="code-block">
+R1#terminal history size 200
+R1#show history
+ ena
+ show history
+ terminal history size 200
+ show history
+</code>
+ <p>
+ Innym polecenie dotyczącym historii, jest
+ <code class="code-inline">show history</code>, wyświetla cały bufor
+ historii poleceń.
+ </p>
+ <h3 id="2.1.5.pka">2.1.5. Ćwiczenie praktyczne - Pakiet Tracer</h3>
+ <p>
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/pt/1.5.10-packet-tracer---verify-directly-connected-networks_pl-PL.pdf">Weryfikacja bezpośrednio podłączonych sieci - scenariusz</a><br />
+ <a href="https://f-tx2550-m5.morketsmerke.org/~xf0r3m/cisco/module_2/pt/1.5.10-packet-tracer---verify-directly-connected-networks_pl-PL.pka">Weryfikacja bezpośrednio podłączonych sieci - zadanie</a>
+ </p>
</div>
</body>
</html>