<code class="code-inline">-P</code>, która w przypadku SCP (to
polecenie formalnie korzysta SFTP) oraz SFTP służą do określania
portu. Opcja <em>-p</em>, służy do zachowania praw własności
- przesyłanych plików. Bywa to czasami bardzo irytujące.
+ przesyłanych plików. Przy czym <em>-p</em> przy polecenie
+ <em>ssh</em> służy określania portu zdalnego demona SSH.
+ Bywa to czasami bardzo irytujące.
</p>
<p>
Po zwróceniu znaku zachęty do dyspozycji mamym dostęp do części
Dodatkowo te wymienione i kilka dodatkowych mają swój <em>lokalny</em>
odpowiednik poprzedzony literą <strong>l</strong> za pomocą tych
poleceń możemy poruszać się po lokalnym systemie plików, bez
- przerywania połączenia na potrzeby zmiany katalogu.
+ przerywania połączenia na potrzeby na przykład, zmiany katalogu.
</p>
<p>
Wymiana danych w przypadku polecenia SFTP, odbywa się poprzez
- polecenia <strong>get</strong> (pobierz) lub <strong>put</strong>
+ polecenia takie jak: <strong>get</strong> (pobierz) lub
+ <strong>put</strong>
(wyślij), każde z tych poleceń zawiera opcję <em>-r</em> lub
<em>-R</em>, co oznacza rekurencję. Niektóre implementacje tego
protokołu wymagają, aby katalog istniał przed rekurencyjnym
powłoka np. BASH, to wówczas trzeba pomyśleć o prostym skrypcie,
którego zadaniem będzie nieskończone przesyłanie danych wypisywanie
czegoś w połowce (Pisanie skryptów powłoki, nie będzie obowiąkowym
- rodziałem tego materiału, dlatego umieszczę go na samym końcu. Jeśli
- chcemy możemy przejść do niego nawet teraz po skończeniu tego
+ rodziałem tego materiału, dlatego umieszczę go na samym końcu.
+ Możemy przejść do niego nawet teraz po skończeniu tego
podrozdziału) lub użycie programu <strong>tmux</strong>, który jest
multiplekserem terminala dodatkowo pozwala na podtrzymania połączenia
SSH.
</p>
<p>
Obecnie rzadko spotyka się działający demon <em>inet</em> lub
- <em>xinetd</em>, został on wyparty przez demona <em>systemctl</em>,
+ <em>xinetd</em>, został on wyparty przez jednego z demonów
+ <em>systemd</em>,
a demony które obsługiwał obecnie posiadają własne implementacje
obsługi połączeń, z biegiem lat rozszerzały swoje możliwości i
finalnie stały się bardziej samodzielne. Wiele życzenia pozostawiaja
poprawionych między oryginalną implementacją a <em>xinetd</em>.
</p>
<p>
- Inną równie archaiczną rzeczą jest <em>wraper</em> TCP w postaci
+ Inną równie archaiczną rzeczą jest <em>wrapper</em> TCP w postaci
demona <strong>tcpd</strong>. Jego działanie przypomina nieco
działanie filtra sieciowego. Był on wykorzystywany jeszcze zanim
takie rozwiązania jak <em>iptables</em> zostały na stałe wdrożone
jako swoisty standard i podstawowy poziom ochrony. Zanim ruch z
- <em>inetd</em> trafił do właściwego demona przechodził przez ten
- wraper. <em>tcpd</em> rejestrował połączenie następnie konfrontował
+ <em>inetd</em> trafił do właściwego demona przechodził przez tą
+ usługę. <em>Tcpd</em> rejestrował połączenie następnie konfrontował
je z listami dostępu <em>/etc/hosts.allow</em> lub
<em>/etc/hosts.deny</em>, na podstawie informacji ustalonych przez
- wraper był dopuszczany do właściwego procesu lub nie.
+ <em>wrapper</em> ruch był dopuszczany do właściwego procesu lub nie.
</p>
<p>
Plikowe listy kontroli dostępu mogą być wykorzystywane w
- dystrybucjach klasy enterprise, do ustalenia dostępu do wybranych
+ dystrybucjach klasy <em>enterprise</em>, do ustalenia dostępu do
+ wybranych
komponentów systemu. Takim przykładem może być dostęp do <em>cron</em>
(harmonogramu zadań). Więcej informacji znajduje się pod tym adresem:
<a href="https://morketsmerke.github.io/articles/terminallog/RedHat_-_RHCSA.html#8.2.1.scheduleaccesscontrol">https://morketsmerke.github.io/articles/terminallog/RedHat_-_RHCSA.html#8.2.1.scheduleaccesscontrol</a>
Na powyższym przykładzie możemy zauważyć, że wyjście tego polecenia
jest trochę bardziej podrasowanym wyjściem polecenia <em>ss</em>.
Poza tym <em>lsof</em> daje nam możliwość przefiltrowania listy
- dostępnych połączeń. Ogólny format filtru wygląda następująco:
+ dostępnych połączeń. Ogólny format filtra wygląda następująco:
</p>
<pre class="code-inline">
$ sudo lsof -i[wersja_IP][protokół]@[komputer]:[port]
<p>
Powyższy przykład przestawia wyłącznie otwarte porty dla transmisji
TCP. W tym przypadku uzyskanie stanu połączenia
- (<code class="code-inline">LISTEN</code>) wymaga podania dodatkowe
+ (<code class="code-inline">LISTEN</code>) wymaga podania dodatkowej
opcji (<code class="code-inline">-s</code>) a ona ma swoją składnię
dla wartości: <em>PROTOKOŁ:STAN</em>.
</p>
<p>
Ciekawy przypadek mamy tutaj. Ponieważ wśród połączeń TCP wyszukujemy
hosta o konkretnej nazwie. Nie dostajemy informacji zwrotnej, że coś
- jest nie tak, wręcz przeciwnie uzyskujemy odpowiedź i to prawidłową.
+ jest nie tak, wręcz przeciwnie uzyskujemy odpowiedź, na której
+ nie widnieje nasza nazwa. Ta odpowiedź jest jak najbardziej
+ prawidłowa.
Adres <code class="code-inline">searx.morketsmerke.org</code> jest
odwzrowywany do 82.117.231.222, ale jeśli skorzystamy z zamiany
adresu IP na nazwę domenową wówczas otrzymamy taki oto wynik:
07:27:02.242557 IP6 DESKTOP-TMP2137.morketsmerke.org.mdns > ff02::fb.mdns: 0 PTR (QM)? 250.255.255.239.in-addr.arpa.local. (52)
</pre>
<p>
- W moim przypadku zostało tylko złapanych kilka zapytań w przód do
- usługi Multicast-DNS do serwera na którym hostuje maszynę wirtualną.
+ W moim przypadku zostało tylko złapanych kilka zapytań w przód (PTR)
+ do usługi Multicast-DNS do serwera na którym hostuje maszynę
+ wirtualną.
Uruchamiając ten program od ręki, nie dokonując żadnych zmian w
systemie wyłapiemy tylko pakiety adresowane do nas lub wysyłane
przez nas. Teoretycznie powinniśmy przełączyć nasz interfejs w tryb
<p>
Niestety w obecnych konfiguracjach sieci to narzędzie może sprawdzić
się głównie w sieciach bezprzewodowych do przechwycenia komunikatów
- warsty łącza danych, chyba że sieć jest w pełni otwarta. Sieci
+ warstwy łącza danych, chyba że sieć jest w pełni otwarta. Sieci
kablowe są obecnie zbudowane na przełącznikach, a te powodują
bezpośrednią komunikację w sieci, więc teoretycznie nie ma możliwości
aby pakiety niezaadresowane do naszej karty do niej trafiły.
<p>
Tworząc filtr oparty na sieci jako wartość elementu
<code class="code-inline">net</code> podajemy adres podsieci np.
- <em>192.168.8.0</em>. Poniższe polecenie wyświetlinam pakiety UDP,
+ <em>192.168.8.0</em>. Poniższe polecenie wyświetli nam pakiety UDP,
połączenia HTTPS oraz połączenia SSH.
</p>
<pre class="code-block">
Ta czynność nosi nazwę <strong>skanowania portów</strong> i w
niektórych sieciach bywa <em>nielegalna</em> (Więcej o tym w
podrozdziale dotyczącym bezpieczeństwa). Istnieje wiele metod
- skanowania. A samo skanowanie może zostać rozszerzone np. próbę
+ skanowania. A samo skanowanie może zostać rozszerzone np. o próbę
zmuszenia usługi do powiedzenia czegoś więcej o sobie przez co
można poznać jaki system operacyjny jest zainstalowany na hoście,
- które porty skanujemy.
+ którego porty skanujemy.
</p>
<p>
Rodzajów skanowania jest kilka. Jednym z
Następnie informacje o tym, że host jest dostępny opóźnieniach jakie
mogą wystąpić podczas komunikacji.
(<code class="code-inline">Host is up (0.040s latency).</code>)
- Trzecia linia zawiera informacje o pokazywanych portach/usługach, ze
- względu na to, że nie udało się uzyskać od nich żadnej odpowiedzi.
+ Trzecia linia zawiera informacje o niepokazywanych portach/usługach,
+ ze względu na to, że nie udało się uzyskać od nich żadnej odpowiedzi.
Nmap rozpoznaje trzy stany portu:
</p>
<ul>
<p>
<strong>RPC</strong> (ang. <em>Remote Procedure Call</em>), czyli
zdalne wywołanie procedury to system, ktory ma umożliwić aplikacjom
- sieciowych uruchomienie funkcji znajdujących się na serwerze.
+ sieciowym uruchomienie funkcji znajdujących się na serwerze.
Każdemu z tych programów przypisywany jest numer, dzięki któremu
będzie można go wywołać. System ten znajduje się w niższych partiach
warsty aplikacji.
</p>
<p>
- Aplikacje korzystające z RPC używają klasyczny portów transmisji
+ Aplikacje korzystające z RPC używają klasycznych portów transmisji
warstwy transportowej takich jak: TCP czy UDP. Wymagają one natomiast
jeszcze jednej usługi pośredniczącej mianowicie
<strong>rpcbind</strong>. Jej zadaniem jest mapowanie portów TCP/UDP
</p>
<h2 id="10.7.networksecurity">10.7. Zabezpieczenie sieci</h2>
<p>
- Zabezpieczanie sieci to temat rzeka. Polega on takim zabezpieczeniu
+ Zabezpieczanie sieci to temat rzeka. Polega on na takim
+ skonfigurowaniu elementów/warstw bezpieczeństwa
hostów w sieci, aby zniechęcić potencjalnych atakujących do brania
za cel naszych komputerów. Dystrybucje Linuksa sprawdzaja się
głównie w środowiskach serwerowych i to one stają się najczęściej
<em>enterprise</em> mogą pochwalić się aż 10 letnim wsparciem
podobnie Ubuntu. Debian posiada 5 letni okres wsparcia.</li>
<li><strong>Ograniczenie ilość kont do minimum</strong> - tutaj
- sprawa jest prosta jeśli ktoś niepotzebuje konta to się mu go
+ sprawa jest prosta jeśli ktoś niepotrzebuje konta to się mu go
nie zakłada. Wiele usług może potrzebować osobnego użytkownika
do ograniczenia dostępu, to przy zakładniu takiego konta należy
pamiętać aby ustawić mu odpowiednią powłokę.</li>
że ich poziom bezpieczeństwa zależy od tego jaki jest nasz własny,
nas jako ludzi. Jak bardzo mamy rozbudowaną wiedzę i umiejętności
w tym temacie. Tak jest w przypadku wielu dystrybucji, jest to
- podyktowane wolnością użytkowników i nie chęcią do narzucania komu
- czego kolwiek. Trochę inaczej sprawa ma się w przypadku systemów
+ podyktowane wolnością użytkowników i nie chęcią do narzucania
+ komukolwiek
+ czegokolwiek. Trochę inaczej sprawa ma się w przypadku systemów
klasy <em>enterprise</em>, jak sama nazwa wskazuje często są one
wyposażone w dodatkowe mechanizmy, aby mogły działać jak podstawa
systemów produkcyjnych w przedsiębiorstwach, a kierowanie się
<li><strong>Zdalny dostęp</strong> - jest to uzyskanie dostępu
do maszyny. Pod tym określeniem możemy znależć pełen
wachlarz różnych technik. Kiedyś było to przepełnienie bufora,
- obecnie możemy głównie wśród serwerów WWW oraz baza danowych jedną
+ obecnie możemy głównie wśród serwerów WWW oraz bazodanowych jedną
z technik dostania się do systemu jest <em>sql injection</em>.
Po zastosowaniu tych technik, atakujący może uzyskać dostęp do
powłoki z poziomu użytkownika, który uruchamiana daną usługę.
aby jak najbardziej ograniczyć uprawnienia usług względem
całego systemu. Skompromitowany system może być wykorzystywany
do ataku na inne cele wewnątrz sieci lub w intenecie stając się
- przytym cześcią sieci włamywaczy do prowadzenia dalszych działań
+ przy tym cześcią sieci włamywaczy (<em>botnetu</em>) do prowadzenia
+ dalszych działań
takich jak ataki DDoS czy rozsyłanie spamu. Przy dużej liczbie
usług stosuje się tzw. <strong>DMZ</strong>, jest najczęściej
wydzielona podsieć, w której umieszcza się serwery mające
- świadczyć usługi w intenecie. Ta podsieć najczęściej nie ma
+ świadczyć usługi w internecie. Ta podsieć najczęściej nie ma
możliwości komunikacji z resztą sieci.</li>
<li><strong>Ataki DoS</strong> - ataki odmowy usługi lub
rozproszone ataki odmowy usługi. Atak tego typu jest bardzo prosty
mogą blokować szkodliwy ruch. Czasami uruchamiając jakąś stronę
możemy spotkać się na początku ze stroną przedstawiającą logo
dostawcy oraz usługę w stylu <em>Anti-(D)Dos</em>. Jeśli już
- dojdzie do takiego ataku, powstrzymanie ataku jest banalne.
+ dojdzie do takiego ataku, powstrzymanie go jest banalne.
Wystarczy zablokować ruch na zaporze granicznej i zrestartować
serwer blokowanej usługi</li>
<li><strong>Złośliwe oprogramowanie</strong> - to zagrożenie może
</ul>
<p>
Omawiając zabezpieczanie sieci, moglismy się nie spodziewać
- infrormacji tego typu tutaj. W podrozdziale 10.5 zostały
+ informacji tego typu tutaj. W podrozdziale 10.5 zostały
przedstawione dwa narzędzia <strong>netcat</strong> oraz
<strong>nmap</strong>. Ich wykorzystywanie, w niektórych
sieciach, może podnieść alarm o potencjalnej próbie włamania. Dlatego
lepiej nie sprawdzać sieci którymi nie zarządzamy, ponieważ
- konsekwencje mogą być spore.
+ konsekwencje mogą być spore. Wydanie nawet pojedynczego polecenia
+ ze skanowaniem, może zakończyć się oskarżeniem o włamanie.
</p>
<p>
Jakby nie patrzeć najwieksze podatności systemów informatycznych
pomocą inżynierii społecznej (sztuki manipulowania ludźmi) można
uzyskać dostęp systemów w nawet tak dobrze zabezpieczonej
organizacji i to z minimalną wiedzą techniczną. Dlatego też mimo
- zabezpieczeń techinicznych trzeba mieć się na baczności, np. kiedy
+ zabezpieczeń technicznych trzeba mieć się na baczności, np. kiedy
czytamy wiadomość e-mail z prośbą otwarcia załącznika, albo że nasz
komputer jest zarażony złośliwym oprogramowanie i możesz połączyć się
z konsulatantem, który je usunie za darmo.
Dla protokołu TCP używane jest gniazdo strumienia
(<em>SOCK_STREAM</em>) a dla UDP wykorzystywane jest gniazdo
datagramu (<em>SOCK_DGRAM</em>). Konfigracja gniazda wymaga ustalenia
- rodzaju gniazda, adresów IP, portów i protokoły warstwy transportowej.
+ rodzaju gniazda, adresów IP, portów i protokołu warstwy transportowej.
Gniazda zazwyczaj są konfigurowane przez procesów serwerów. Po
ustaleniu tych informacji proces wykorzystuje standardowe metody
obsługi sieci.
<p>
Gniazda uniksowe rodzaje gniazd szczególnie wykorzystywanym w
komunikacji międzyprocesowej (IPC), wiele aplikacji bowiem jest
- projektowanych w architekturze klient-serwer, a tego typu gniazda
+ projektowanych w architekturze klient-serwer (nawet te, które nie
+ są sieciowe), a tego typu gniazda
mogą się zachowywać jak gniazda sieciowe, mimo że nimi nie są i nie
jest powiązana z nim żadana sieć. Możliwe jest również takie
skonfigurowanie gniazd zachowywały się podobnie do protokołów
<p>
Powodem popularności gniazd uniksowych jest możliwość utworzenia
specjalnego pliku gniazda, które jak każdy plik w systemie będzie
- podlegać kontroli dostępu na podstawie klasycznych uniksowych
+ podlegać kontroli na podstawie klasycznych uniksowych
uprawnień przez co inne procesy nie będą mieć dostępu do niego.
Przykładem takiego pliku może być na przykład:
</p>