]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Zakończenie pisania rozdziału 11, moduł 2, kurs Cisco CCNA. Do przeredagowania.
authorxf0r3m <jakubstasinski@protonmail.com>
Sun, 22 Sep 2024 09:56:33 +0000 (11:56 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Sun, 22 Sep 2024 09:56:54 +0000 (11:56 +0200)
articles/terminallog/Cisco_-_CCNA.html

index c757db21386423cad922c08f62d3a36395c4aad9..900599965da7f65a870aacb9aaa41482b47d810e 100755 (executable)
@@ -9372,7 +9372,385 @@ Max Addresses limit in System (excluding one mac per port) : 8192
       <p>
         <a href="">Wdrożenie zabezpieczeń portów - scenariusz</a><br />
         <a href="">Wdrożenie zabezpieczeń portów - zadanie</a>
-      </p>     
+      </p>
+      <h2 id="2.11.2.limitvlanattacks">2.11.2. Ograniczanie ataków na sieci VLAN</h2>
+      <p>
+        Ataki na sieci VLAN omawiane była dwa: atak z przeskokiem, gdzie
+        atakującemu udawało się wynegocjować łącze <em>trunk</em> i uzyskać
+        dostęp do innych VLAN-ów, niż ten do którego należy jego gniazdo.
+        Drugim atakiem był atak podwójnego znakowania, gdzie atakujący tworzył
+        ramkę z podwójnym znacznikiem, pierwszy zawierał znacznik natywnej
+        sieci VLAN, a drugi sieci docelowej. 
+      </p>
+      <p>
+        Metodą zabezpieczenia się przed tego typu działaniami są kolejno:
+      </p>
+      <ol>
+        <li>Wyłączenie negocjacji DTP na innych portach niż <em>trunk</em>, 
+          przy użyciu polecenia
+          <code class="code-inline">switchport mode access</code></li>
+        <li>Nie używane porty należy umieść w innym VLAN-ie niż domyślny.</li>
+        <li>Na portach przeznaczonych jako <em>trunk</em>, tryb ten włączamy
+          ręcznie, przy użyciu polecenia
+          <code class="code-inline">switchport mode trunk</code></li>
+        <li>Wyłączamy autonegocjacje DTP na portach <em>trunk</em>, za pomocą
+          polecenia: <code class="code-inline">switchport nonegotiate</code>.</li>
+        <li>Zmieniamy natwyną sieć VLAN dla łączy <em>trunk</em>, przy użyciu
+          polecenia: <code class="code-inline">switchport trunk native vlan X</code>,
+          gdzie <code class="code-inline">X<code>, oznacza numer sieci VLAN.</li>
+      </ol>
+<pre class="code-block">
+S1(config)#vlan 1000
+S1(config-vlan)#name UNUSED_PORTS
+S1(config-vlan)#vlan 999
+S1(config-vlan)#name NATIVE
+S1(config-vlan)#exit
+S1(config)#
+S1(config)#int range fa0/3-12
+S1(config-if-range)#switchport mode acces
+S1(config-if-range)#exit
+S1(config)#int range fa0/13-20
+S1(config-if-range)#switchport mode access
+S1(config-if-range)#switchport access vlan 1000
+S1(config-if-range)#shutdown
+S1(config-if-range)#exit
+S1(config)#int fa0/21-24
+S1(config-if-range)#switchport mode trunk
+S1(config-if-range)#switchport nonegotiate 
+S1(config-if-range)#switchport trunk native vlan 999
+S1(config-if-range)#end
+</pre>
+      <p>
+        Na powyższym przykładzie skonfigurowano wyżej wymienione
+        zabezpieczenia. Porty 3-12 są portami dostępowymi. Porty 13-20 nie są
+        obecnie używane. Ostatnie 4 porty są łączami <em>trunk</em>.
+      </p>
+      <h2 id="2.11.3.limitingdhcpattacks">2.11.3. Ograniczanie ataków na DHCP</h2>
+      <p>
+        Znamy dwa ataki wobec usługi DHPC, pierwsza z znich jest zagłodzenie -
+        tj. wyczerpanie puli przez atakującego. Ochroną przed tego typu
+        działaniem jest ustawienie limitu zapytań do DHCP na portach
+        niezaufanych (innych niż te, z których będzie przychodzić odpowiedź
+        od serwera). Drugim atakiem, jest fałszowanie - atakujący podstawia
+        swój serwer DHCP. Metodą ochrony przed takim działaniem jest
+        ustawienie portu zaufanego - z którego będą przychodzić komunikaty
+        serwera DHCP. Reszta portów będzie domyślnie ustawiana jako
+        niezaufane. Te metody oferuje mechanizm <em>DHCP Snooping</em>. Kroki 
+        jakie
+        należy wykonać w celu skonfigurowania tej metody prezentują się
+        następująco:
+      </p>
+      <ol>
+        <li>Włączamy <em>DHCP Snooping</em> za pomocą polecenia
+          <code class="code-inline">ip dhcp snooping</code> w konfiguracji
+          globalnej</li>
+        <li>Porty z odpowiedzią DHCP uznajemy za zafane za pomocą polecenia:
+          <code class="code-inline">ip dhcp snooping trust</code>.</li>
+        <li>Na portach niezaufanych ustawiamy limit zapytań do DHCP - liczbę
+          odebranych komunikatów DHCP DISCOVER na sekundę. Dokonujemy tego
+          za pomocą polecenia:
+          <code class="code-inline">ip dhcp snooping limit rate X</code>, gdzie
+          <code class="code-inline">X</code> to liczba zapytań.</li>
+        <li><em>DHCP Snooping</em> możemy również włączyć dla określonej sieci
+          VLAN lub dla wielu sieci, wydając w konfiguracji globalnej polecenie:
+          <code class="code-inline">ip dhcp snooping Y</code>, gdzie
+          <code class="code-inline">Y</code> to numer/numery sieci VLAN lub ich
+          zakres.</li> 
+      </ol>
+<pre class="code-block">
+S1#conf t
+S1(config)#ip dhcp snooping
+S1(config)#int g0/1
+S1(config-if)#ip dhcp snooping trust
+S1(config-if)#exit
+S1(config)#int range fa0/1-24
+S1(config-if-range)#ip dhcp snooping limit rate 6
+S1(config-if-range)#exit
+S1(config)#ip dhcp snooping vlan 1000
+</pre>
+      <p>
+        Na powyższym przykładzie skonfigurowano opcje zabepieczeń przed atakami
+        na DHCP. W IOS mamy możliwość wyświetlenia informacji o konfiguracji
+        <em>DHCP Snooping</em> za pomocą polecenia:
+        <code class="code-inline">show ip dhcp snooping</code>.
+      </p>
+<pre class="code-block">
+S1#show ip dhcp snooping
+Switch DHCP snooping is enabled
+DHCP snooping is configured on following VLANs:
+1000
+DHCP snooping is operational on following VLANs:
+1000
+DHCP snooping is configured on the following L3 Interfaces:
+
+Insertion of option 82 is enabled
+   circuit-id default format: vlan-mod-port
+   remote-id: ecc8.8212.b200 (MAC)
+Option 82 on untrusted port is not allowed
+Verification of hwaddr field is enabled
+Verification of giaddr field is enabled
+DHCP snooping trust/rate is configured on the following Interfaces:
+
+Interface                  Trusted    Allow option    Rate limit (pps)
+-----------------------    -------    ------------    ----------------   
+FastEthernet0/1            no         no              6         
+  Custom circuit-ids:
+FastEthernet0/2            no         no              6         
+  Custom circuit-ids:
+FastEthernet0/3            no         no              6         
+  Custom circuit-ids:
+FastEthernet0/4            no         no              6         
+  Custom circuit-ids:
+FastEthernet0/5            no         no              6         
+  Custom circuit-ids:
+...
+FastEthernet0/23           no         no              6         
+Interface                  Trusted    Allow option    Rate limit (pps)
+-----------------------    -------    ------------    ----------------   
+  Custom circuit-ids:
+FastEthernet0/24           no         no              6         
+  Custom circuit-ids:
+GigabitEthernet0/1         yes        yes             unlimited
+  Custom circuit-ids:
+</pre>
+      <h2 id="2.11.4.limitingarpattacks">2.11.4. Ograniczenie ataków na ARP.</h2>
+      <p>
+        Ataki ARP są do siebie bardzo podobne. Chodzi o manipulację tablicą
+        ARP na komputerze ofiary. Pierwszym atakiem jest zatrucie, przez które
+        ofiara całkowicie traci łączność, ponieważ atakujący odpowiada na jej
+        żądania losowowymi adresami fizycznymi. Drugim atakiem jest fałszowanie
+        ataków, przy użyciu pakietu gratisowego ARP. Użycie tego pakietu
+        wymusza na ofierze, aktualizację wpisu w tablicy ARP, którego dotyczy
+        ten pakiet. Chronić się przed działania tego typu możemy za pomocą
+        mechanizmu <em>Dynamic Arp Inspection - DAI</em>.
+      </p>
+      <p>
+        Dynamiczna inspekcja ARP (DAI) wymaga działania mechanizmu
+        <em>DHCP Snooping</em>, pomaga zapobiegać atakom poprzez:
+      </p>
+      <ul>
+        <li>Nie przykazywanie nieprawidłowych lub gratisowych odpowiedzi ARP
+          do innych portów w tej samej sieci VLAN.</li>
+        <li>Przechwytywanie wszystkichj żądań i odpowiedzi ARP na niezaufanych
+          portach.</li>
+        <li>Sprawdzenie każdego przechwyconego pakietu pod kątem prawidłowego
+          powiązania IP do MAC.</li>
+        <li>Odrzucanie i rejestrowanie odpowiedzi ARP, posiadające nie
+          nieprawdziwe informacje, aby zapobiec zatruciu ARP.</li>
+        <li>Przełączenie interfejsu w stan <em>error-disabled</em>, jeśli
+          skonfigurowana w DAI liczba pakietów ARP zostanie przekroczona.</li>
+      </ul>
+      <p>
+        W celu wykorzystania mechnizmu DAI, musimy podąrząć zgodnie z poniższymi
+        wskazówkami:
+      </p>
+      <ol>
+        <li>Włączamy globalnie <em>DHCP Snooping</em>.</li>
+        <li>Włączamy <em>DHCP Snooping</em> dla konkretnej sieci VLAN.</li>
+        <li>Włączamy DAI dla wybranej sieci VLAN.</li>
+        <li>Na koniec konfigurujemy zaufane interfejsy dla
+          <em>DHCP Snooping</em> i DAI.</li>
+      </ol>
+<pre class="code-block">
+S1#conf t
+Enter configuration commands, one per line.  End with CNTL/Z.
+S1(config)#ip dhcp snooping
+S1(config)#ip dhcp snooping vlan 1000
+S1(config)#ip arp inspection vlan 1000
+S1(config)#interface fa0/24
+S1(config-if)#ip dhcp snooping trust 
+S1(config-if)#ip arp inspection trust 
+</pre>
+      <p>
+        Na powyższym urządzeniu włączyłem globalnie <em>DHCP Snooping</em>,
+        <code class="code-inline">S1(config)#ip dhcp snooping</code> następnie
+        skonfigurowałem <em>DHCP Snooping</em> oraz DAI dla VLAN-u 1000 - 
+        <code class="code-inline">S1(config)#ip dhcp snooping vlan 1000</code>,
+        <code class="code-inline">S1(config)#ip arp inspection vlan 1000</code>.
+        Na koniec skonfigurowałem interfejs <code class="code-inline">fa0/24</code>
+        jako zaufany dla <em>DHCP Snooping</em>-u oraz inspekcji ARP.
+      </p>
+      <p>
+        Mechanim DAI może zostać również skonfigurowany w taki sposób aby
+        weryfikował adresy przekazywane we wiadomości ARP z adresami zawartymi
+        w nagłówku ramki <em>Ethernet</em>. Do wyboru mamy takie warunki jak
+      </p>
+      <ul>
+        <li><strong>Docelowy MAC</strong> - porównanie docelowego adresu MAC
+          w nagłówku ramki z tym we wiadomości ARP.</li>
+        <li><strong>Źródłowy MAC</strong> - porównianie źródłowego adresu MAC
+          w nagłówku ramki z tym we wiadomości ARP.</li>
+        <li><strong>Adres IP</strong> - sprawdza komunikat pod kątem nie
+          prawidłowych i nieoczekiwanych adresów IP, takich jak: 0.0.0.0,
+          255.255.255.255 czy wszystkich adresów <em>multicastowych</em>.</li>
+      </ul>
+      <p>
+        Do ustawiania weryfikacji adresów w ARP służy polecenie:
+        <code class="code-inline">ip arp inspection validate</code> po czym
+        podajemy rodzaj sprawdzania adresów. Nic nie stoi na przeszkodzie, aby
+        ustawić je wszystkie.
+      </p>
+<pre class="code-block">
+S1#conf t
+Enter configuration commands, one per line.  End with CNTL/Z.
+S1(config)#ip arp inspection validate src-mac dst-mac ip
+</pre>
+      <p>
+        Od teraz komunikaty ARP, bedą sprawdzane pod kątem poprawności adresów.
+      </p>
+      <h2 id="2.11.5.limitingstpattacks">2.11.5. Ograniczanie ataków STP</h2>
+      <p>
+        W przypadku ataków STP, atakujący może podłączyć swoje urządzenie i
+        wymusić zmianę topologi poprzez wysłanie BPDU z wysokim priorytetem w
+        BID. Ochroną przed tego typu działaniami jest użycie technologii
+        <strong>PortFast</strong> oraz <strong>BPDU Guard</strong>.
+      </p>
+      <p>
+        <em>PortFast</em> przyspiesza stan gotowości portu o przesyłania
+        danych. Port przenoszony jest natychmiast ze stanu blokowania w stan
+        przekaywania. <em>PortFast</em> jest przeznaczony dla użytkowników
+        końcowych i tylko dla nich powinien być stosowany. <em>BPDU Guard</em>
+        jest mechanizm zabezpieczającym przed pojawieniem się komunikatów BPDU
+        na niepożądanych portach. Jeśli taki komunikat się pojawi przy
+        skonfigurowanym <em>BPDU Guard</em>, taki port zostanie ustawiony w
+        stan <em>error-disabled.</em>.
+      </p>
+      <p>
+        Konfiguracji <em>PortFast</em>, możemy dokonać na dwa sposoby.
+        Konfigurować po kolei każdy z portów tak jak przedstawiono to na
+        poniższym przykładzie.
+      </p>
+<pre class="code-block">
+S1#conf t
+Enter configuration commands, one per line.  End with CNTL/Z.
+S1(config)#int fa0/4
+S1(config-if)#switchport mode access
+S1(config-if)#spanning-tree portfast
+%Warning: portfast should only be enabled on ports connected to a single
+ host. Connecting hubs, concentrators, switches, bridges, etc... to this
+ interface  when portfast is enabled, can cause temporary bridging loops.
+ Use with CAUTION
+
+%Portfast has been configured on FastEthernet0/4 but will only
+ have effect when the interface is in a non-trunking mode.
+</pre>
+      <p>
+        Możemy również skonfigurować <em>PortFast</em> domyślnie dla całego
+        przełącznika. Tak jak na przykładzie:
+      </p>
+<pre class="code-block">
+S1#conf t
+Enter configuration commands, one per line.  End with CNTL/Z.
+S1(config)#spanning-tree portfast default
+%Warning: this command enables portfast by default on all interfaces. You
+ should now disable portfast explicitly on switched ports leading to hubs,
+ switches and bridges as they may create temporary bridging loops.
+</pre>
+      <p>
+        Aby sprawdzić konfigurację <em>PortFast</em> możemy użyci polecenia
+        <code class="code-inline">show spanning-tree summary</code>. Poniżej
+        znajduje się wynik jego działania:
+      </p>
+<pre class="code-block">
+S1#show spanning-tree summary 
+Switch is in pvst mode
+Root bridge for: none
+Extended system ID           is enabled
+Portfast Default             is enabled
+PortFast BPDU Guard Default  is disabled
+Portfast BPDU Filter Default is disabled
+Loopguard Default            is disabled
+EtherChannel misconfig guard is enabled
+UplinkFast                   is disabled
+BackboneFast                 is disabled
+Configured Pathcost method used is short
+
+Name                   Blocking Listening Learning Forwarding STP Active
+---------------------- -------- --------- -------- ---------- ----------
+Total                        0         0        0          0          0
+</pre>
+      <p>
+        Drguim mechanizm do skonfigurowania jest <em>BPDU Guard</em>. Metoda
+        jest taka sama jak w przypadku <em>PortFast</em>, różnią się tylko
+        polecenia.
+      </p>
+<pre class="code-block">
+S1#conf t
+Enter configuration commands, one per line.  End with CNTL/Z.
+S1(config)#int fa0/4
+S1(config-if)#spanning-tree bpduguard enable
+S1(config-if)#exit
+S1(config)#spanning-tree portfast bpduguard default 
+</pre>
+      <p>
+        Teraz możemy wyświetlić sobie jeszcze raz podsumowanie konfiguracji
+        STP.
+      </p>
+<pre class="code-block">
+S1#show spanning-tree summary
+Switch is in pvst mode
+Root bridge for: none
+Extended system ID           is enabled
+Portfast Default             is enabled
+PortFast BPDU Guard Default  is enabled
+Portfast BPDU Filter Default is disabled
+Loopguard Default            is disabled
+EtherChannel misconfig guard is enabled
+UplinkFast                   is disabled
+BackboneFast                 is disabled
+Configured Pathcost method used is short
+
+Name                   Blocking Listening Learning Forwarding STP Active
+---------------------- -------- --------- -------- ---------- ----------
+Total                        0         0        0          0          0
+</pre>
+      <p>
+        Możemy skonfigurować przełącznik w taki sposób, aby automatycznie
+        odblokowywał porty w stanie <em>error-disabled</em>. W przypadku
+        naruszenia <em>BPDU Guard</em>, możemy uruchomić to poleceniem:
+      </p>
+<pre class="code-block">
+S1(config)#errdisable recovery cause psecure-violation
+</pre>
+      <p>
+        Domyślnym okresem karencji jest 300 sekund = 5 minut. Stan
+        automatycznego podnoszenia portu ze stanu <em>error-disabled</em>
+        możemy sprawdzić (w tym i okres karencji) za pomocą polecenia
+        <code class="code-inline">show errdisable recovery</code>
+      </p>
+<pre class="code-block">
+S1#show errdisable recovery 
+ErrDisable Reason            Timer Status
+-----------------            --------------
+arp-inspection               Disabled
+bpduguard                    Disabled
+channel-misconfig            Disabled
+dhcp-rate-limit              Disabled
+dtp-flap                     Disabled
+gbic-invalid                 Disabled
+inline-power                 Disabled
+link-flap                    Disabled
+mac-limit                    Disabled
+loopback                     Disabled
+pagp-flap                    Disabled
+port-mode-failure            Disabled
+psecure-violation            Disabled
+security-violation           Disabled
+sfp-config-mismatch          Disabled
+small-frame                  Disabled
+storm-control                Disabled
+udld                         Disabled
+vmps                         Disabled
+
+Timer interval: 300 seconds
+</pre>
+      <h2 id="ch11summary">Podsumowanie</h2>
+      <p>
+        W tym rodziale dowiedzieliśmy się możemy skonfigurować Cisco IOS na
+        przełącznikach, aby zapobiec atakom z poznanym w 10 rozdziale. 
+        Poznaliśmy zabezpieczenia portów oraz metody ochrony przez atakami na
+        sieci VLAN, DHCP, ARP oraz STP.
+      </p>
     </div>
        </body>
 </html>