]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Rozpoczęcię i zakończenie pisania rodziału 5, modułu 3 kursu CCNA. Do przeredagowania.
authorxf0r3m <jakubstasinski@protonmail.com>
Sun, 17 Nov 2024 10:28:01 +0000 (11:28 +0100)
committerxf0r3m <jakubstasinski@protonmail.com>
Sun, 17 Nov 2024 10:28:01 +0000 (11:28 +0100)
articles/terminallog/Cisco_-_CCNA.html

index b02bda549005debe2427ec0a3f37a8463b556a17..dcc78b88ec744bca8260da0efbcb9c48a7e9651b 100755 (executable)
@@ -13728,8 +13728,8 @@ O*E2 0.0.0.0/0 [110/1] via 10.1.1.6, 00:04:14, GigabitEthernet0/0
           <li><strong>Standardowe ACL</strong> - ACL filtruje tylko w warstwie
             3, na podstawie adresu źródłowego.</li>
           <li><strong>Rozszerzone ACL</strong> - ACL może filtrować w warstwie
-            3 lub 4 na podstawie adresu źródłowego lub docelowego, protokołu
-            TCP lub UDP, czy numeru portu.</li>
+            3 lub 4 na podstawie adresu źródłowego lub docelowego, protokołu,
+            czy numeru portu.</li>
         </ul>
         <p>
           Dla ACL ważny jest również kierunek przesyłanie pakietu. Każdy
@@ -13807,7 +13807,8 @@ access-list 10 permit 192.168.16.0 0.0.15.255
           <li><strong>Standardowe ACL</strong> - ich kryteria dopasowania
             dotyczną jedynie adresów źródłowych (działają w warstwie 3).</li>
           <li><strong>Rozszerzone ACL</strong> - działają w warstwie 4, w
-            jednej regule możemy zapisać do 5 warunków: protokoł (TCP, UDP),
+            jednej regule możemy zapisać do 5 warunków: protokoł 
+            (najczęściej TCP lub UDP),
             adres, port - źródłowy, adres, port - docelowy.</li>
         </ul>
         <p>
@@ -13874,6 +13875,354 @@ access-list 100 permit tcp 192.168.10.0 0.0.0.255 any eq www
           dobre praktyki podczas ich tworzenia przypomnieliśmy sobie również
           w jaki sposób oblicza się maski blankietowe.
         </p>
+        <h1 id="3.5.configurationacllistforipv4">3.5. Konfiguracja list ACL dla IPv4</h1>
+        <p>
+          W poprzednim rodziale dowiedzieliśmy się czym są ACL-ki i w jaki
+          sposób możemy wykorzystać je do kształtowania ruchu. Poznaliśmy
+          również podstawowe polecenie, ale bez ich omawiania. Ten rozdział
+          przedstawi nam w jaki sposób tworzy oraz modyfikować, standardowe i
+          rozszerzone listy ACL oraz dodatkowo jak wykorzystać ACL do kontroli
+          zdalnego dostępu do urządzeń.
+        </p>
+        <h2 id="3.5.1.configurestdaclforipv4">3.5.1. Konfiguracja standardowych ACL dla IPv4</h2>
+        <p>
+          Tworzenie ACL najlepiej rozpocząć od zapisania w edytorze tekstu
+          specyfiki polityki bezpieczeństwa organizacji, następnie musimy
+          przełożyć te zasady na polecenia IOS, w tym momencie warto dołączać
+          komentarze. Kiedy nasza lista jest hipotetycznie gotowa, możemy ją
+          skopiować do środowiska testowego - może to być PT lub fizyczne
+          urządzenie.
+        </p>
+        <p>
+          Chcąc utworzyć standardową numerowaną listę ACL w konfiguracji
+          globalnej wydajemy następujące polecenie:
+        </p>
+<pre class="code-block">
+Router(config)# access-list access-list-number {deny | permit | remark text} source [source-wildcard] [log]
+</pre>
+        <p>
+          Jeśli będziemy chcieli usunąć listę użyjemy polecenia:
+          <code class="code-inline">no access-list access-list-number</code>
+        </p>
+        <p>
+          Poszczególne elementy składni polecenia tworzenia standardowych
+          numerycznych ACL znajduje się poniżej:
+        </p>
+        <ul>
+          <li><code class="code-inline">access-list-number</code> - numer listy
+            ACL, dla standardowych listy jest od 1 do 99 lub 1300 do 1999.</li>
+          <li><code class="code-inline">deny</code> - odmowa dostępu, jeśli
+            warunek został spełniony.</li>
+          <li><code class="code-inline">permit</code> - udzielenie dostępu,
+            jeśli warunek został spełniony.</li>
+          <li><code class="code-inline">remark <em>text</em></code> - 
+            opcjonalny komentarz dla celów dokumentacji. Długość komentarza
+            jest ograniczona do 100 znaków.</li>
+          <li><code class="code-inline">source</code> - określa adres sieci
+            hosta źródłowego do filtrowania. Tutaj możemy posłużyć się, słowem
+            kluczowym <em>any</em>, aby określić wszystkie sieci oraz słowem
+            kluczowym <em>host ip-address</em> lub poprostu <em>ip-address</em>,
+            aby zidentyfikować konkretny adres IP.</li>
+          <li><code class="code-inline">source-wildcard</code> - opcjonalna
+            32-bitowa maska blankietowa stosowana dla adresów źródłowych. Jeśli
+            zostanie pominięta, zakłada się domyślną maskę 0.0.0.0.</li>
+          <li><code class="code-inline">log</code> - opcjonalne słowo kluczowe
+            generujące i wysłające komunikat gdy ACE (wpis w ACL) zostanie
+            dopasowany. Wysyłany komunika zawiera numer ACL, dopasowany
+            warunek (<em>permit</em> or <em>deny</em>), adres źródłowy oraz
+            liczbę pakietów. Komunikat generowany jest dla pierwszego
+            pasującego pakietu. Wysyłanie komunikatów powinno być stosowane
+            wyłączenie w celach diagnostycznych lub ze względów bezpieczeństwa.</li>
+        </ul>
+        <p>
+          Chcąc utworzyć listę ACL standardową nazwaną, w konfiguracji
+          globalnej musimy wydać następujące polecenie:
+        </p>
+<pre class="code-inline">
+Router(config)# ip access-list standard access-list-name
+</pre>
+        <p>
+          <code class="code-inline">access-list-name</code> to unikatowa nazwa
+          dla listy. Zatwierdzenie tego polecenia, spowoduje, że przejedziemy
+          w trybu konfiguracji listy ACL. Wówczas konfiguracja takiej listy
+          skupia się tworzeniu reguł rozpoczynających się od słów kluczowych
+          <code class="code-inline">permit, deny</code> i ewentualnie
+          <code class="code-inline">remark</code>.
+        </p>
+<pre class="code-inline">
+R1(config)# ip access-list standard PERMIT-ACCESS
+R1(config-std-nacl)# remark ACE permits host 192.168.10.10
+R1(config-std-nacl)# permit host 192.168.10.10
+</pre>
+        <p>
+          Chcąc usunąć taką listę poprzedzamy polecenie
+          <code class="code-inline">ip access-list standard PERMIT-ACCESS</code>
+          słowem kluczowym <em>no</em>. 
+        </p>
+        <p>
+          Określenie listy nie czyni jej jeszcze działającą. Jak pamiętamy
+          listy są przypisywane do interfejsów i to na określonych kierunkach
+          transmisji, więc chcąc podłączyć listę do interfejsu należy wydać
+          poniższe polecenie:
+        </p>
+<pre class="code-block">
+Router(config-if) # ip access-group {access-list-number | access-list-name} {in | out}
+</pre>
+        <p>
+          Po słowie <code class="code-inline">access-group</code>, podajemy
+          albo numer listy, albo jej nazwę i na koncu podajemy kierunek dla
+          ruchu wychodzącego - <code class="code-inline">out</code> a dla ruchu
+          przychodzącego - <code class="code-inline">in</code>. Aby odwołać
+          listę musimy poprzedzić polecenie
+          <code class="code-inline">ip access-group</code> słowem <em>no</em>
+          oraz podać numer bądź nazwę listy.
+        </p>
+        <h3 id="3.5.1.pka">Zadanie praktyczne - Packet Tracer</h3>
+        <p>
+          <a href="">Konfigurowanie numerowanych standardowych list ACL IPv4 - scenariusz</a><br />
+          <a href="">Konfigurowanie numerowanych standardowych list ACL IPv4 - zadanie</a><br />
+          <a href="">Konfigurowanie nazywanych standardowych list ACL IPv4 - scenariusz</a><br />
+          <a href="">Konfigurowanie nazywanych standardowych list ACL IPv4 - zadanie</a>
+        </p>
+        <h2 id="3.5.2.modifyingaclsforipv4">3.5.2. Modyfikowanie list ACL dla IPv4</h2>
+        <p>
+          Modyfikowanie ACL-ek, nie uchodzi za szczególnie przyjmne zajęcie.
+          To zadanie może zrealizować na dwa sposoby. Możemy użyć albo
+          wcześniej zapisanej w edytorze tekstu listy - tę listę wdrożoną
+          należy usunąć poprzez słowo <em>no</em>, zmieć co trzeba i następnie
+          utworzyć nową listę wklejając jej polecenia z edytora. Drugim
+          sposobem jest użycie <strong>numerów sekwencyjnych</strong>.
+        </p>
+        <p>
+          Numery skwencyjne wyświetlane są gdy używamy polecenia
+          <code class="code-inline">show access-list</code> do wyświetlenia
+          list ACL. 
+        </p>
+<pre class="code-block">
+R1# show access-lists 
+Standard IP access list 1 
+    10 deny 19.168.10.10 
+    20 permit 192.168.10.0, wildcard bits 0.0.0.255
+R1#
+</pre>
+        <p>
+          Do ich edycji musimy skorzystać z polecenia
+          <code class="code-inline">ip access-list standard</code>, następnie
+          usuwamy wadliwy wpis, w tym przypadku jest
+          <code class="code-inline">10</code> poprzedzając numer sekwencji
+          słowem <em>no</em> i następnie poprawiony wpis rozpoczynamy od numeru
+          sekwencji. Poniżej znajduje się przykład z IOS:
+        </p>
+<pre class="code-block">
+R1# conf t
+R1(config)# ip access-list standard 1
+R1(config-std-nacl)# no 10
+R1(config-std-nacl)# 10 deny host 192.168.10.10
+R1(config-std-nacl)# end
+R1# show access-lists
+Standard IP access list 1
+    10 deny   192.168.10.10
+    20 permit 192.168.10.0, wildcard bits 0.0.0.255
+R1#
+</pre>
+        <p>
+          W przypadku nazwanej listy postępujemy podobnie, tylko zamiast numery
+          podajemy nazwę. Użycie numerów sekencyjnych daje nam jeszcze jedną 
+          dodatkową nazwę funkcję mianowicie pozwala nam wprowadzać wpisy w
+          konkretne miejsca, na liście. Biorąc pod uwagę poprzedni przykład
+          chcąc dodać host 192.168.10.5, którego ruch ma również zostać
+          zablokowany, to jeśli dopiszemy ją to ta reguła nie będzieć mieć
+          sensu. Druga reguła dopuszcza ruch z całej sieci 192.168.10.0/24.
+          Zatem musimy wstawić regułę zablokowania hosta 192.168.10.5 pomiędzy
+          regułę 10 a 20, na przykład. Możemy ją również wstawić na początku
+          samej listy, również będzie ona miała swoje zastosowanie.
+        </p>
+<pre class="code-inline">
+R1# configure terminal
+R1(config)# ip access-list standard NO-ACCESS
+R1(config-std-nacl)# 15 deny 192.168.10.5
+R1(config-std-nacl)# end
+R1#
+R1# show access-lists
+Standard IP access list NO-ACCESS
+    15 deny   192.168.10.5
+    10 deny   192.168.10.10
+    20 permit 192.168.10.0, wildcard bits 0.0.0.255
+R1#
+</pre>
+        <p>
+          Chcąc wstawić w regułę edytujemy listę za pomocą polecenia
+          <code class="code-inline">ip access-list</code> następnie
+          rozpoczynamy wpis od numer np. 15. Na koniec opuszczamy tryb
+          konfiguracji listy i wyświetlamy zawartość listy. Wydaje mi się, że
+          nie takiego efektu się spodziewaliśmy. Ten efekt jest spowodowany
+          działaniem funkcji mieszaczjącej na standardowych listach ACL dla
+          IPv4.
+        </p>
+        <p>
+          Wyświetlając listę za pomocą polecenia
+          <code class="code-inline">show access-lists</code> możemy zauważyć
+          że IOS zlicza przypasowania do wpisów w ACL, dzięki czemu możemy
+          zauważyć, czy te wpisy mają w ogóle zastosowanie. Czyszcenia
+          liczników możemy dokonać za pomoca polecenia:
+        </p>
+<pre class="code-block">
+R1# clear access-list counters
+</pre>
+        <p>
+          Wydanego w trybie uprzywilejowanym EXEC.
+        </p>
+        <h2 id="3.5.3.securingvtylinesviastdaclsforipv4">3.5.3. Zabezpieczenia linii VTY za pomocą standardowyej ACL IPv4.</h2>
+        <p>
+          Przy użyciu ACL może określić, kto może się podłączyć do naszego
+          urządzenia zdalnie, a kto nie. Cała metoda polega na utworzeniu
+          standardowej listy ACL i następnie na liniach VTY możemy za pomocą
+          polecenia <strong>access-class</strong> wskazać ACL, która będzie
+          zezwalać lub blokować zdalny dostę dla zapisanych w niej sieciach lub
+          hostach. Poniżej znajduej się składania polecenia
+          <em>access-class</em>:
+        </p>
+<pre class="code-block">
+R1(config-line)# access-class {access-list-number | access-list-name} { in | out } 
+</pre>
+        <p>
+          Zwróć my uwagę to polecenie pozwala również na ustalenie kierunku.
+          Stosowanym w praktyce kierunkiem jest
+          <code class="code-inline">in</code>, drugi kierunek odfiltrowuje
+          ruch VTY wychodzący i jest on rzadko stosowany.
+        </p>
+<pre class="code-block">
+R1(config)# username ADMIN secret class
+R1(config)# ip access-list standard ADMIN-HOST
+R1(config-std-nacl)# remark This ACL secures incoming vty lines
+R1(config-std-nacl)# permit 192.168.10.10
+R1(config-std-nacl)# deny any
+R1(config-std-nacl)# exit
+R1(config)# line vty 0 4
+R1(config-line)# login local
+R1(config-line)# transport input ssh
+R1(config-line)# access-class ADMIN-HOST in
+R1(config-line)# end
+R1#
+</pre>
+        <p>
+          Przy tak skonfigurowanej liniach VTY, dostęp przez SSH do urządzenia
+          będzie mieć wyłącznie host o adresie 192.168.10.10.
+        </p>
+        <h2 id="3.5.4.extendedacllist">3.5.4. Rozszerzone listy ACL</h2>
+        <p>
+          Rozszerzone listy ACL pozwalają nam na dodanie większej ilości
+          kryteriów dopasowania pakietów. Listy rozszerzone podobnie jak listy
+          standardowe również mogą być numerowane oraz nazwa. Składnia tworząca
+          listę wraz ze wpisem wygląda następująco:
+        </p>
+<pre class="code-inline">
+Router(config)# access-list access-list-number {deny | permit | remark text} 
+protocol source source-wildcard [operator {port}] destination destination-wildcard
+[operator {port}] [established] [log]
+</pre>
+        <p>
+          Pierwszą zmianą odnośnie list standardowych jest:
+          <code class="code-inline">protocol</code> - nazwa lub numer protokołu
+          sieci Internet. Typowymi słowami kluczowymi są tutaj:
+          <em>ip, tcp, udp, icmp</em>. Pełną listę możemy wyświetlić za pomocą
+          znaku zapytania (<strong>?</strong>). Słowo kluczowe IP pasuje do
+          wszystkich protokołów IP; 
+          <code class="code-inline">destination</code> i
+          <code class="code-inline">destination-wildcard</code> - adres ip oraz
+          maska blankietowa dla sieci bądź hosta docelowego. Mogą tutaj 
+          występować słowa kluczowe <em>host</em> oraz <em>any</em>;
+          <code class="code-inline">operator</code> - porównuje porty źródłowe
+          i docelowe. Możliwe argumenty to: <em>lt</em> (mniejsze niż),
+          <em>gt</em> (większe niż), <em>eq</em> (równy), <em>neq</em>
+          (nie równy) oraz <em>range</em> (zakres);
+          <code class="cdoe-inline">port</code> - numer bądź nazwa portu TCP
+          lub UDP. Pod znakiem zapytania (<strong>?</strong>), dostępna jest
+          pełna lista wraz z numerami portów;
+          <code class="code-inline">established</code> - funkcja
+          zapory pierwszej generacji, tylko dla TCP.
+        </p>
+        <p>
+          Włączanie list rozszerzonych wygląda tak samo jak w przypadku list
+          standardowych, oto przykład:
+        </p>
+<pre class="code-inline">
+R1(config)# access-list 110 permit tcp 192.168.10.0 0.0.0.255 any eq www
+R1(config)# access-list 110 permit tcp 192.168.10.0 0.0.0.255 any eq 443
+R1(config)# interface g0/0/0
+R1(config-if)# ip access-group 110 in
+R1(config-if)# exit
+R1(config)#
+</pre>
+        <p>
+          Stosowanie list rozszerzonych umożliwia nam dostęp do bardzo 
+          wygodnej funkcji. Jeśli chcemy zabezpieczyć naszą sieć wewnętrzną
+          za pomocą ACL-ek, to utworzyli byśmy dwie listy jedną na ruch 
+          wchodzący do interfejsu sieci wewnętrznej, zezwalający np. jej
+          użytkownikom na korzystanie z HTTP/S. Wówczas hosty naszej sieci,
+          nie będą mogły korzystać z innych protokołów, jednak ta pojedyncza
+          lista daje możliwość skomunikowania się z hostami naszej sieci przez
+          hosty z zewnątrz. Potrzebujemy drugiej ACL-ki, która zablokuje taką
+          możliwość. Mogli byś my utworzyć pustą listę i przypisać ją do
+          kierunku wychodzącego naszego interfejsu wewnętrzego i to tyle. Cały
+          ruch zablokowany, w tym odpowiedzi od serwerów WWW dla hostów naszej
+          sieci. Oczywiście przy takiej transmisji moglibyśmy dopuścić ruch
+          na porcie źródłowym TCP/80 lub TCP/443 (HTTP, HTTPS). Co nie jest
+          dobrym rozwiązaniem, ponieważ nie jest problemem wysłanie pakietu 
+          o sfałszowanym porcie źródłowym. W tym przypadku z korzystamy z
+          wpisu dopuszczającego cały TCP dla sieci 192.168.10.0/24, ale tylko
+          dla połączeń już nawiązanych, blokując tym samym możliwość nawiązania
+          nowego połączenia z zewnatrz temu służy opcja
+          <strong>established</strong>. Należa zapamiętać, że z tej funkcji
+          może skorzystać <strong>tylko dla protokołu TCP</strong>.
+        </p>
+<pre class="code-inline">
+R1(config)# access-list 120 permit tcp any 192.168.10.0 0.0.0.255 established
+R1(config)# interface g0/0/0
+R1(config-if)# ip access-group 120 out 
+R1(config-if)# exit
+R1(config)#
+</pre>
+        <p>
+          Wiele pozostałych czynności dokonywanych na listach rozszerzonych
+          dokonuje się w sposób analogiczny do listy standardowych. Przyczym
+          w przypadku wstawiania zasad do listy, to na listach rozszerzonych
+          nie działa algorytm mieszczający, zatem kolejność wpisów powinna być
+          taka jaką my sobie zadeklarowaliśmy, ale nie jak ustalił to IOS.
+        </p>
+        <p>
+          Do weryfikacji ACL, możemy wykorzystać polecenia:
+          <code class="code-inline">show ip interface<code>, pokaże nam ono
+          jakie listy są przypisane do tego interfejsu;
+          <code class="code-inline">show access-list</code>, zwróci
+          zdeklarowane w systemie listy ACL;
+          <code class="code-inline">show running-config | begin ip access-list</code>,
+          wyświetla listy ACL z bierzącej konfiguracji urządzenia.
+        </p>
+        <h3 id="3.5.4.pka">Zadanie praktyczne - Packet Tracer</h3>
+        <p>
+          <a href="">Konfiguracja rozszerzonych list ACL IPv4 - Scenariusz 1 - scenariusz</a><br />
+          <a href="">Konfiguracja rozszerzonych list ACL IPv4 - Scenariusz 1 - zadanie</a><br />
+          <a href="">Konfiguracja rozszerzonych list ACL IPv4 - Scenariusz 2 - scenariusz</a><br />
+          <a href="">Konfiguracja rozszerzonych list ACL IPv4 - Scenariusz 2 - zadanie</a>
+        </p>
+        <h3 id="3.5.5.pka">Zadanie praktyczne - Packet Tracer</h3>
+        <p>
+          <a href="">Wdrażanie ACL IPv4 - wyzwanie - scenariusz</a><br />
+          <a href="">Wdrażanie ACL IPv4 - wyzwanie - zadanie</a>
+        </p>
+        <h3 id="3.5.5.lab">Laboratorium</h3>
+        <p>
+          <a href="">Konfiguracja i weryfikacja rozszerzonych list ACL IPv4</a>
+        </p>
+        <h2 id="3.5.summary">Podsumowanie</h2>
+        <p>
+          Ten rozdziała pokazał nam w jaki sposób tworzyć oraz modyfikować
+          listy ACL. Poznaliśmy sposób na zabezpieczenie linii VTY za pomocą
+          ACL oraz funkcję <em>established</em> rozszerzonych list dostępu.
+          Na koniec poznaliśmy w jaki sposób możemy weryfikować listy ACL na 
+          naszych urządzeniach.
+        </p>
       </div>
    </body>
 </html>