Na koniec szerzej omówiliśmy każdy z rodzajów ataków, aby mieć ich
obraz podczas konfiguracji.
</p>
+ <h1 id="2.11.configureswitchsecurity">2.11. Konfiguracja zabezpieczeń przełącznika</h1>
+ <p>
+ W poprzednim rodziale omówiliśmy zagrożenia z jakimi możemy się
+ spotkać w warstwie drugiej. W tym rodziale dowiemy się w jaki sposób
+ skonfigurować system IOS na przełączniku, aby móc się przed nimi
+ chronić.
+ </p>
+ <h2 id="2.11.1.portsecurity">2.11.1. Zabezpieczenia portów</h2>
+ <p>
+ Pierwszą i w prawdzie najważniejszą rzeczą są zabezpieczenia portów.
+ Za pomocą tego mechanizmu możemy nakazać aby konkrety port mógł
+ nauczyć się tylko jednego adresu MAC, który jeśi będziemy sobie tego
+ życzyć będzie może trafić do konfiguracji. Zabezpieczenia portów
+ są podstawą linią obrony przed atakami warstwy drugiej.
+ </p>
+ <p>
+ Omawianie zabezpieczeń portów, rozpoczniemy od najprostszej czynności
+ jaką możemy wykonać. Jeśli intruz będzie w zasiegu dostępnego gniazda
+ Ethernet, może sprawdzić czy jest ono aktywne. Jeśli tak, to może
+ udać mu się uzyskać dostęp do sieci. Dlatego czasami najprostrze
+ rowiązania są najlepsze. Zatem może warto
+ <strong>wyłączyć nieużywane porty</strong> administracyjnie. Wydając
+ proste polecenie <code class="code-inline">shutdown</code>. Domyślnie
+ wszystkie porty przełącznika <strong>nie są</strong> wyłączone
+ administracyjnie.
+ </p>
+<pre class="code-block">
+S1(config)#do sh ip int br
+Interface IP-Address OK? Method Status Protocol
+Vlan1 unassigned YES unset administratively down down
+FastEthernet0/1 unassigned YES unset down down
+FastEthernet0/2 unassigned YES unset down down
+FastEthernet0/3 unassigned YES unset down down
+FastEthernet0/4 unassigned YES unset down down
+FastEthernet0/5 unassigned YES unset down down
+...
+</pre>
+ <p>
+ Przejść do konfiguracji wiecej niż jednego portu możemy poprzez
+ użycie polecenia <code class="code-inline">int range</code> podając
+ zakres portów lub też ich listę jeśli porty są nie pokolei. Oczywiście
+ możemy mieszać ze sobą ter rodzaj parametrów.
+ </p>
+<pre class="code-block">
+S1(config)#int range fa0/1-24
+S1(config-if-range)#shutdown
+S1(config-if-range)#do sh ip int br
+Interface IP-Address OK? Method Status Protocol
+Vlan1 unassigned YES unset administratively down down
+FastEthernet0/1 unassigned YES unset administratively down down
+FastEthernet0/2 unassigned YES unset administratively down down
+FastEthernet0/3 unassigned YES unset administratively down down
+FastEthernet0/4 unassigned YES unset administratively down down
+FastEthernet0/5 unassigned YES unset administratively down down
+FastEthernet0/6 unassigned YES unset administratively down down
+...
+</pre>
+ <p>
+ Po wyłączeniu portów, nie ma możliwości aby ktoś bez naszej wiedzy
+ mógł się podłączyć do sieci. Administracyjne wyłącznie portów fizycznie
+ wyłącza zasilanie na portach przełącznika.
+ </p>
+ <p>
+ Poza dostęp do sieci, możemy również chcieć zabezpieczyć nasz
+ przełącznik, aby nigdy nie udało się zrobić z koncentratora. Z
+ poprzedniego rodziału wiemy jak tego dokonać. Zabezpieczenia portów
+ obejmują możliwość wskazania ilość adresów MAC, których przełącznik
+ może się nauczyć, w jaki sposób ma się ich uczyć, na podstawie czego
+ ma stwiedzić, że adres w tablicy uleg przedawnieniu czy co zrobić
+ w przypadku naruszenia zasad zabezpieczeń portów.
+ </p>
+ <p>
+ Samo włączenie zabezpieczeń portu spowoduje, że zostaną nałożone na
+ niego pewne zasady. Za nim jednak przejdziemy do uruchomienia tej
+ opcji to musimy sobie wyjaśnić pewną rzecz. Domyślnie włączony jest
+ protokoł DTP, natomiast porty znajdują się w domyślnym stanie
+ <em>dynamic auto</em>. Zabezpieczenia portu wymagają, aby port był
+ portem dostępowym, więc przez uruchomienieniem zabezpieczeńm portów
+ musimy przełączyć w tryb dostępu:
+ </p>
+<pre class="code-block">
+#Domyślnie:
+S1(config)#do show int fa0/1 switchport
+Name: Fa0/1
+Switchport: Enabled
+Administrative Mode: dynamic auto
+Operational Mode: down
+Administrative Trunking Encapsulation: dot1q
+Negotiation of Trunking: On
+Access Mode VLAN: 1 (default)
+Trunking Native Mode VLAN: 1 (default)
+Administrative Native VLAN tagging: enabled
+
+S1(config)#int fa0/1
+S1(config-if)#switchport mode access
+S1(config-if)#do show interface fa0/1 switchport
+Name: Fa0/1
+Switchport: Enabled
+Administrative Mode: static access
+Operational Mode: down
+Administrative Trunking Encapsulation: dot1q
+Negotiation of Trunking: Off
+Access Mode VLAN: 1 (default)
+Trunking Native Mode VLAN: 1 (default)
+Administrative Native VLAN tagging: enabled
+Voice VLAN: none
+</pre>
+ <p>
+ Teraz możemy włączyć zabezpieczenia portu.
+ </p>
+<pre class="code-block">
+S1(config-if)#switchport port-security
+</pre>
+ <p>
+ Reguły narzucone przez uruchomienie zabezpieczeń portu to, ustawienie
+ trybu naruszenia na najbardziej restrykcyjny oraz ustawienie ilości
+ adresów MAC do nauczenia się dla tego portu to 1.
+ </p>
+<pre class="code-block">
+S1#show port-security interface fa0/1
+Port Security : Enabled
+Port Status : Secure-down
+Violation Mode : Shutdown
+Aging Time : 0 mins
+Aging Type : Absolute
+SecureStatic Address Aging : Disabled
+Maximum MAC Addresses : 1
+Total MAC Addresses : 0
+Configured MAC Addresses : 0
+Sticky MAC Addresses : 0
+Last Source Address:Vlan : 0000.0000.0000:0
+Security Violation Count : 0
+</pre>
+ <p>
+ Tryb naruszenia <code class="code-inline">Violation Mode</code>,
+ został ustawiony na <code class="code-inline">Shutdown</code>, co
+ spowoduje, że jeśli ktoś inny podłączy się do tego portu, to zostanie
+ on ustawiony w tryb <em>error disabled</em>. Liczba możliwych adresów
+ do nauczenia (<code class="code-inline">Maximum MAC Address</code>)
+ wynosi 1.
+ </p>
+ <p>
+ Jeśli chcemy zdecydować o tym ilu adresów pownieni móc nauczyć się
+ port wówczas wyskorzysujemy następujące polecenie:
+ </p>
+<pre class="code-block">
+Switch(config-if)# switchport port-security maximum <1-8129>
+</pre>
+ <p>
+ Po za podaniem ilości dozwolonych adresów MAC do zapamiętania, możemy
+ manipulować samym jego procesem. Np. podać statyczny adres MAC lub
+ przełącznik będzie się ich uczył dynamicznie. Co jest domyślną metodą
+ przy włączeniu zabezpieczeń portów. Inna wariacją jest dynamiczne
+ uczenie się z wykorzystaniem NVRAM do zapamiętania adresów MAC.
+ Poniższe polecenia uruchamiają poniższe tryby:
+ </p>
+ <ul>
+ <li><strong>Przypisanie statyczne</strong> -
+ <code class="code-inline">S1(config-if)#switchport port-security
+ mac-address 00de.adbe.ef00</code></li>
+ <li><strong>Uczenie się dynamiczne</strong> -
+ <code class="code-inline">S1(config-if)#switchport port-security</code></li>
+ <li><strong>Uczenie się dynamiczne z wykorzystaniem NVRAM</strong>
+ <code class="code-inline">S1(config-if)#switchport port-security
+ mac-address sticky</code></li>
+ </ul>
+ <p>
+ W przypadku tych trybów to można je mieszać, ustawiając ilość
+ adresów na 4 i podając np. 2 adresy statycznie a resztę pozostawić
+ do nauki dynamicznej z wykorzystaniem NVRAM. W przpadku uczenia się
+ adresów MAC, przydatne może być polecenie:
+ </p>
+<pre class="code-block">
+S1#show port-security address
+ Secure Mac Address Table
+------------------------------------------------------------------------
+Vlan Mac Address Type Ports Remaining Age
+ (mins)
+---- ----------- ---- ----- -------------
+ 1 001f.1618.0d37 SecureSticky Fa0/2 -
+ 1 00de.adbe.ef00 SecureConfigured Fa0/2 -
+------------------------------------------------------------------------
+Total Addresses in System (excluding one mac per port) : 1
+Max Addresses limit in System (excluding one mac per port) : 8192
+</pre>
+ <p>
+ Statystyki dla tego portu przezentują się następująco:
+ </p>
+<pre class="code-block">
+S1#sh port-sec int fa0/2
+Port Security : Enabled
+Port Status : Secure-up
+Violation Mode : Shutdown
+Aging Time : 0 mins
+Aging Type : Absolute
+SecureStatic Address Aging : Disabled
+Maximum MAC Addresses : 2
+Total MAC Addresses : 2
+Configured MAC Addresses : 1
+Sticky MAC Addresses : 1
+Last Source Address:Vlan : 001f.1618.0d37:1
+Security Violation Count : 0
+</pre>
+ <p>
+ Port jest podniesiony (<code class="code-inline">Port Status: Secure-up</code>)
+ i nie nastąpiło żadne naruszenie zasad
+ (<code class="code-inline">Security Violation Count: 0</code>).
+ </p>
+ <p>
+ Zabezpieczenia portów pozwalają na określenie okresu ważności dla
+ bezpiecznych adresów (Przypisanych statycznie lub nauczonych w ramach
+ dynamicznej nauki, zgodniej z okreslonym limitem). Mamy dwa rodzaje
+ przedawnienia (okresu ważności):
+ </p>
+ <ul>
+ <li><strong><em>Absolute</em></strong> (ang. bezwględy) - adresy MAC są
+ usuwane po upłynięciu podanym okresie czasu.</li>
+ <li><strong><em>Inactivity</em></strong> (ang. nieaktywność) - adresy
+ MAC są usuwane po upłynięciu podanego okresu czasu nieaktywności.</li>
+ </ul>
+ <p>
+ Za ustawianie przedawnienia odpowiedzialne jest polecenie
+ <strong>aging</strong> zabezpieczania portów. Może ono przyjąć
+ następujące opcje:
+ </p>
+ <ul>
+ <li><strong>static</strong> - włącza okres przedawnienia dla statycznie
+ przypisanych adresów MAC.</li>
+ <li><strong>time</strong> <czas> - Czas w minutach określający
+ przedawnienie. Przyjmuje wartości od 0 do 1440. Przy czym ustawienie
+ 0, wyłącza przedawnienie dla tego portu.</li>
+ <li><strong>type</strong> <em>Absolute</em>/<em>Inactivity</em> -
+ określa rodzaj przedawnienia dla portu.</li>
+ </ul>
+ <p>
+ Dla przykładu ustawiłem na porcie 2 czas przedawnienia 10 minut dla
+ nieaktywnych hostów.
+ </p>
+<pre class="code-block">
+S1(config)#int fa0/2
+S1(config-if)#switchport port-security aging time 10
+S1(config-if)#switchport port-security aging type inactivity
+</pre>
+ <p>
+ W momencie gdy dojdzie do przekroczenia zasad skonfigurownych na porcie,
+ występuje naruszenie, może mieć one różne skutki. Od zaprzestania
+ transmisji dla nieznanych adresów na czas potrzebny do usunięcia
+ nadmiarowych adresów MAC do
+ przestawienia portu w stan <em>error-disabled</em>. Istnieją trzy tryby:
+ </p>
+ <ul>
+ <li><strong>shutdown</strong> (domyślny) - Port przechodzi natychmiast
+ do stanu <em>error-disabled</em>, wyłącza kontrolkę LED i wysła
+ komunikat do <em>Syslog</em>. Licznik naruszeń jest zwiększany</li>
+ <li><strong>restrict</strong> - Ten tryb powoduje zaprzestanie
+ transmisji dla nieznaych adresów do momentu usunięcia namiarowych
+ pozycji. Porty nie są wyłączane Licznik naruszeń jest zwiększany oraz
+ wysłane są komunikaty <em>syslog</em></li>
+ <li><strong>protect</strong> - działa na takiej samej zasadzie jak
+ <em>restrict</em>, przyczym żadne logi nie są wysłane oraz nie jest
+ zwiększany licznik naruszeń. Jest najmnie bezpieczny z trybów.<li>
+ </ul>
+ <p>
+ Do ustawienie trybu wybierany wykorzystywane jest polecenie
+ <em>violation</em>, zabezpieczeń portów.
+ </p>
+<pre class="code-block">
+S1(config)#int fa0/2
+S1(config-if)#switchport port-security violation restrict
+</pre>
+ <p>
+ Stan <em>error-disabled</em> - wyłączony przez błąd, może być
+ spowodowany przez użytkownika, w momencie gdy naruszy on zasady
+ zabezpieczeń portów. Transmisja przez taki port zostaje zatrzymana,
+ wyłączona jest również kontrolka LED. Włączenie takowego portu
+ wymaga działania administratora.
+ </p>
+ <p>
+ Do tej porty poznaliśmy polecenia, które pozwolą nam ustawienie
+ zabezpieczeń portów oraz na wyświetlenie informacji o nich. Nie których.
+ Bowiem istnieje jeszcze jedno polecenie, które pozwoli na wyświetlenie
+ zabezpieczeń na wszystkich portach.
+ </p>
+<pre class="code-block">
+S1#show port-security
+Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
+ (Count) (Count) (Count)
+---------------------------------------------------------------------------
+ Fa0/1 1 0 0 Shutdown
+ Fa0/2 2 2 0 Restrict
+---------------------------------------------------------------------------
+Total Addresses in System (excluding one mac per port) : 1
+Max Addresses limit in System (excluding one mac per port) : 8192
+</pre>
+ <h3 id="2.11.1.pka">Zadanie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="">Wdrożenie zabezpieczeń portów - scenariusz</a><br />
+ <a href="">Wdrożenie zabezpieczeń portów - zadanie</a>
+ </p>
</div>
</body>
</html>