From 69607aed7cb16870d7182f357034432b51b7820f Mon Sep 17 00:00:00 2001 From: xf0r3m Date: Mon, 4 Sep 2023 14:03:45 +0200 Subject: [PATCH] =?utf8?q?Przeredagowywanie=20rozdzia=C5=82u=2010.=20Podro?= =?utf8?q?zdzia=C5=82=2010.3.4=20(SFTP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- articles/terminallog/Linux.Podstawy.html | 96 +++++++++++++----------- 1 file changed, 51 insertions(+), 45 deletions(-) diff --git a/articles/terminallog/Linux.Podstawy.html b/articles/terminallog/Linux.Podstawy.html index 07677d2..599d43f 100644 --- a/articles/terminallog/Linux.Podstawy.html +++ b/articles/terminallog/Linux.Podstawy.html @@ -8061,7 +8061,7 @@ xf0r3m@immudex:~$ sudo wpa_cli

W poprzednim rozdziale dowiedzieliśmy się czym są sieci komputerowe i jak wygląda ich konfiguracja w dystrybucjach Linuksa. Sieci służą - do przesyłania danych, a te musimy dostsować za pomocą uzupełnienia + do przesyłania danych, a te musimy dostarczyć za pomocą uzupełnienia formularza na stronie internetowej lub w postaci zwykłego pliku tekstowego. Za obie te formy odpowiadają różne ustandaryzowane zbiory programów składające się na jeden konkrent protokół. @@ -8074,7 +8074,7 @@ xf0r3m@immudex:~$ sudo wpa_cli udostępnionego gdzieś na serwerze.

- Aby pomiędzy dwoma stronami mogła zajść komunikacji + Aby pomiędzy dwoma stronami mogła zajść komunikacja potrzebny jest nadawca i odbiorca. Z punktu widzenia sieci komputerowej, każdy host jest jednocześnie jednym i drugim. Jednak patrząc na to ze strony obecnie omiawianego tematu, różnica między @@ -8084,8 +8084,8 @@ xf0r3m@immudex:~$ sudo wpa_cli Wiele serwerów określa się mianem usług sieciowych. Często mówiąc o jakiś serwerze do słowa serwer dodaje się protokół, który obsługuje. Jak możemy pamiętać np. z rozdziału 7, - nie które serwery domyślnie nie są usługami sieciowymi (chociaż mogą, - wystarczy odpowienio jes skonfigurować). + niektóre serwery domyślnie nie są usługami sieciowymi (chociaż mogą, + wystarczy odpowienio je skonfigurować).

Usługi sieciowe mają za zadanie udostępniać dane poprzez wybrane @@ -8095,13 +8095,13 @@ xf0r3m@immudex:~$ sudo wpa_cli protokoły SMTPS oraz POP3S lub IMAPS. Wiele różnych aplikacji sieciowych może wykorzystywać różne protokoły lub samodzielnie implementować format danych przesyłanych przez sieć. Nie mniej jednak - wszystkie te protokoły rezydują w warstwie aplikacji + wszystkie te protokoły rezydują w warstwie aplikacji, czwartej warstwie modelu TCP/IP.

W tym rozdziale nadal pozostaniemy w sieciach. Przeanalizujemy działanie protokołu HTTP. Omówimy sobie usługę sieciową na podstawie - SSH. Dowiemy się jak uruchamiane były, nie które specyficzne usługi + SSH. Dowiemy się jak uruchamiane były, niektóre specyficzne usługi i jak są uruchamiane teraz. Sprawdzimy sobie narzędzia diagnostyczne, które pozwolą nam na sprawdzenie dostępności usługi ale również monitorowanie przesłanych przez nia i do niej danych. Na koniec @@ -8113,9 +8113,9 @@ xf0r3m@immudex:~$ sudo wpa_cli

Na wstępie omówilśmy sobie co tak naprawdę znajduje się w warstwie aplikacji. Aby była możliwość zapewnienia bezbłędnego działania - wielu znanych protokołów, które no men omen są podstawą komunikacji + wielu znanych protokołów, które są podstawą komunikacji w internecie, zespoły odpowiedzialne za implementacje tych standardów - często umieszczają w swoich programach klienckich możliwośc analizy + często umieszczają w swoich programach klienckich możliwość analizy przesyłanych danych. W tym podrozdziale skupimy się głównie na jednym protokole i jednym narzędziu umożliwiającym śledzenie danych przesyłanych za pomocą protokołu. Jednak w podrozdziale poświęconym @@ -8190,10 +8190,10 @@ xf0r3m@immudex:~$ curl --trace-ascii curl.log wttr.in/Warszawa?0\&lang=pl

Pierwsze dwie linie, są to linie informujące nas o uzyskanym adresie IP oraz o tym czy połącznie powiodło się. Jeśli tak jest, to wówczas - wysyłany jest nagłówek, - w nagłówkach HTTP + wysyłany jest nagłówek - w nagłówkach HTTP przeważnie znajdują się informacje kontrolne dla programów, które będą zajmować się interpretowaniem treści przesłanej przez serwer. - No właśnie. Można by na logikę rzecz ująć, że to przeglądarka powinna + No właśnie. Logiczne było by to, że przeglądarka powinna pobrać żądaną stronę WWW. W rzeczywistości to klient przesyła jedynie nagłówek z żądaniem. Przyglądając się pierwszej linii nagłówka @@ -8211,12 +8211,12 @@ xf0r3m@immudex:~$ curl --trace-ascii curl.log wttr.in/Warszawa?0\&lang=pl

Uwaga! Jeden serwer WWW, może utrzymać kilka jak nie kilkanaście lub kilkadziesiąt różnych stron internetowych. Wszystko zależy od jego - ustawień oraz wydajności sprzętowej, która go utrzymuje. Dlatego też + ustawień oraz konfiguracji sprzętowej, która go utrzymuje. Dlatego też wiele stron może kierowanych pod jeden adres IP. Taka funkcjonalność nazywa się hostingiem.

- W naszym przypadku również żądamy głównego pliku tego hostingu, w + W naszym przypadku również żądamy głównego pliku tego hostingu. W nagłówku natomiast przekazujemy dane, które pomogą w uzyskaniu żądanych przez nas danych. Jest to jedna z cech protokołu HTTP. Dane (głównie do aplikacji, ponieważ statyczne strony rzadko interpretują @@ -8237,7 +8237,8 @@ xf0r3m@immudex:~$ curl --trace-ascii curl.log wttr.in/Warszawa?0\&lang=pl powszechny wget pozwalają na zmianę tej wartości, za pomocą jednej opcji możemy podać się za np. program indeksujący jednej z wyszukiwarek. Trzecim polem jest rodzaje danych jakie może - zinterpretować, polecenie to służy głównie pobieraniu treści więc + zinterpretować, polecenie curl to służy głównie pobieraniu + treści więc rzadko kiedy je interpretuje. Wyjątkiem może być omawiany przez nas przykład. Ostatnim pole jest znak nowego wiersza, który kończy nagłówek żądania. Teraz następuje jego przesłanie i oczekiwnaie na @@ -8245,11 +8246,11 @@ xf0r3m@immudex:~$ curl --trace-ascii curl.log wttr.in/Warszawa?0\&lang=pl

W przypadku odpowiedzi jak możemy zauważyć przesyłanych jest wiele - nagłówków przedstawiających pojedyńcze pola. Nie będe ich tutaj + nagłówków przedstawiających pojedyncze pola. Nie będe ich tutaj wszystkich opisywał, jednak na uwagę zasługuję jedna informacja, która została wcześniej pominięta. Otóż, w polu metody żądania lub w pierwszym naglówku odpowiedzi znajduje się wykorzystywana w - transmisjii wersja protokołu HTTP. Wersja 1.1 jest obecnie + transmisji wersja protokołu HTTP. Wersja 1.1 jest obecnie standardem, jednak obecnie w stanie proponowanych standardów są wersje 2 i 3. Seria nagłówków odpowiedzi kończy się w taki sam sposób jak w przypadku nagłówka żądania, znakiem nowego wiersza. @@ -8270,12 +8271,12 @@ xf0r3m@immudex:~$ curl --trace-ascii curl.log wttr.in/Warszawa?0\&lang=pl wykorzystanie zapomnianego już programu Telnet. Telnet kiedyś służył do tego do czego służy teraz protokół SSH. Do zdalnego połączenia się z powłoką. - Telnet sam w sobie również jest protokołem. Obecnie telnet rzadko + Telnet sam w sobie również jest protokołem, obecnie rzadko jest spotykany w swojej pierwotnej formie, chyba że w postaci lokalnej konsoli w systemach wbudowanych.

-xf0r3m@immudex:~$ telnet example.org 80 > telnet.log
+xf0r3m@immudex:~$ telnet example.org 80 > telnet.log
 Trying 93.184.216.34...
 Connected to example.org.
 Escape character is '^]'
@@ -8298,14 +8299,14 @@ Content-Length: 1256
 

Po wielokropku występuje już tylko kod HTML strony. Polecenie - telnet wymaga aby port, pod który + telnet wymaga portu, pod który należy się podłączyć. Aby otrzymać odpowiedź musimy metodę (GET), ewentualne dane/żądany plik (/), wersje protokołu (HTTP/1.1) w drugiej lini nagłówka należy podać nazwę hosta (Host: example.org), ze względu na - to aby serwer WWW wiedział z jakiej witry przesłać odpowiedź. + to aby serwer WWW wiedział z jakiej witryny przesłać odpowiedź.

Protokół jest może trochę mało interaktwny przy takim połączeniu, ale @@ -8313,33 +8314,33 @@ Content-Length: 1256

10.2. Serwery sieciowe

- W dystrybucjach Linuksa możemy napodkać wiele serwerów, nie które z + W dystrybucjach Linuksa możemy napodkać wiele serwerów, niektóre z nich działają w oparciu o sieć i oczekują zdarzeń pochodzących od - zdalnych użytkowników. Serwery wewnątrzsystemowe to dość niszowa - grupa do których zalicza się tylko kilka demonów np. cron. + zdalnych użytkowników. Serwery wewnątrz systemów to dość niszowa + grupa, do których zalicza się tylko kilka demonów np. cron. Dlatego w mowie potocznej przyjęło się, że mówiąc o serwerach mamy na myśli serwery sieciowe. Poniżej znajduje się lista rodzajów - wraz kilkoma przykładmi oprogramowania. + serwerów wraz kilkoma przykładmi oprogramowania.

Aby bardziej zaznajomić się z serwerami sieciowymi, omówimy sobie - po krótce jeden z znich. Z powyższej listy najciekawszym z nich - jest implementacja protokołu SSH od twórców innego Unix-a jakim jest - OpenBSD - openssh. Implementacji protokołu SSH jest + po krótce jeden z nich. Z powyższej listy najciekawszym z nich + jest znana implementacja protokołu SSH - openssh. + Implementacji protokołu SSH jest kilka, jednak ta jest w najpowszechniejszym użytku obecna jest nawet w najnowszych wersjach MS Windows 10.

@@ -8358,13 +8359,13 @@ Content-Length: 1256 podanie nazwy użytkownika następnie adresu zdalnego hosta, z którym chcemy się połączyć. Obie te wartości połączone są ze sobą za pomocą małpy (@). Po poprawnym znalezieniu hosta - i połączeniu z jego demon SSH (będzie o nim za chwile), zostaniemy + i połączeniu z jego demonem SSH (będzie o nim za chwile), zostaniemy poproszeni o hasło. Jeśli łączymy się z serwerem po raz pierwszy, Zostanie nam wyświetlona informacja na temat, że nie można zweryfikować autentyczności hosta.

-1184JS:~$ ssh -p 2022 searx.morketsmerke.org
+xf0r3m@immudex:~$ ssh -p 2022 searx.morketsmerke.org
 The authenticity of host '[searx.morketsmerke.org]:2022 ([82.117.231.222]:2022)' can't be established.
 ECDSA key fingerprint is SHA256:ghhvjaz6T/qcsX9TiWN4UEV4fuiv6oqHxsD1bGB+40c.
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
@@ -8376,7 +8377,7 @@ Warning: Permanently added '[searx.morketsmerke.org]:2022,[82.117.231.222]:2022'
           połączenie z tym serwerem, to na komputerze klienta nie ma jeszcze
           danych autentykacji serwera (bez wdawania sie w zawiłe,
           kryptograficzne szczegóły) wówczas musimy się upewnić we własnym
-          zakresie czy jest rzeczywiście ten serwer z którym chcemy się
+          zakresie czy jest rzeczywiście ten serwer, z którym chcemy się
           połączyć, a nie np. próba wyłudzenia hasła. Po wyświetleniu się tego
           komunikatu zostaniemy zapytaniu czy chcemy kontynuować, jeśli
           odpowiedź jest twierdząca to dane autentykacyjne serwera zostaną
@@ -8390,7 +8391,7 @@ xf0r3m@searx.morketsmerke.org's password:
         

Na powyższym przykładzie podałem opcję -p, która pozwala na wkazanie - nie stanadardowego portu (standardowy port to 22/TCP). + nie standardowego portu (standardowy port to 22/TCP). Na tym przykładzie pominąłem, użytkownika. Jeśli go pominiemy ssh jako użytkownika przyjmie tego, który wydał polecenie.

@@ -8399,7 +8400,7 @@ xf0r3m@searx.morketsmerke.org's password: kilka maszyn i wpisywanie do każdej hasła może być męczące. SSH daje nam możliwość uwierzytelnienia za pomocą kluczy kryptograficznych. Nie będę zagłębiał się charkterystykę kluczy kryptograficznych, ale - istnieje możliwość wygenerowania pary plików (klucz publiczne oraz + istnieje możliwość wygenerowania pary plików (klucza publicznego oraz prywatnego), następnie załadowanie jednego z nich do maszyn, którymi administrujemy. Podczas generowanie pary kluczy, będzie można podać hasło chroniące klucz prywatny. Najlepiej, aby dodać to hasło. @@ -8410,11 +8411,11 @@ xf0r3m@searx.morketsmerke.org's password:

Aby wygenerować klucze wydajemy następujące polecenie. Dodam tylko, - że obecnie będziemy generować klucz algorytmu kryptograficznego + że obecnie będziemy generować klucze algorytmu kryptograficznego RSA, są one domyślne dla SSH. Choć, nie które z systemów mogą ich nie przyjmować i wymagać innych rozdzajów. Więcej - na temat znajduje się na stronie podręcznika polecenia - ssh-keygen. + na temat generowanie kluczy znajduje się na stronie podręcznika + polecenia ssh-keygen.

 xf0r3m@immudex:~$ ssh-keygen
@@ -8468,14 +8469,15 @@ and check to make sure that only the key(s) you wanted were added
           -i możemy skazać plik klucza publicznego 
           (plik z rozszerzeniem .pub). Natomiast jeśli chcemy się uwierzytelnić
           za pomocą klucza to przy opcji -i polecenia ssh
-          podajemy plik klucza bez rozszerzenia.
+          podajemy plik klucza prywatnego (bez rozszerzenia).
         

10.3.2. Demon serwera - sshd

Jak możemy zdawać sobie z tego sprawę z demona nie korzysta się jak z aplikacji klienckiej. Nie wydajemy poleceń, żeby go uruchomić. Oczywiście możemy to zrobić, ale normalnie tego się nie robi. Demony - uruchamiane są za pomocą plików jednostek. Dlatego, że obsługa demona + uruchamiane są za pomocą plików jednostek (systemd). Dlatego, + że obsługa demona różni się od obsługi klienta, w tym podrozdziale skupimy się głównie zmianie konfiguracji demona openssh, jednak nie będziemy się skupiać na wszystkich możliwych opcjach poniżej przedstawię tylko @@ -8507,7 +8509,7 @@ and check to make sure that only the key(s) you wanted were added bardzo potrzebny to możemy ustawić wartość tego pola na no. Ze względu na to, że znana jest jego potoczna nazwa często jego konto pada ofiarą ataków siłowych, skupionych na - probach odgadnięcia hasła (Przeciwdziałanie tego typu atakom, + próbach odgadnięcia hasła (Przeciwdziałanie tego typu atakom, zostanie przedstawione w tym rozdziale).

  • PasswordAuthentication - zmiana wartości tej opcji na no zabroni używania haseł do logowania się. @@ -8568,7 +8570,8 @@ xf0r3m@immudex:~$ sudo systemctl restart ssh.service fail2ban. Jest to usługa monitorująca próby uwierzytelnienia się i po przekroczeniu nie udanych prób odcinająca dostęp do usługi na jakiś czas. Usługa ta opiera swoje działanie na - dynamicznym tworzeniu i usuwaniu reguł zapory sieciowej. + monitorowaniu komunikatów diagnostycznych oraz dynamicznym tworzeniu i + usuwaniu reguł zapory sieciowej.

    Uwaga! Na Debianie fail2ban nie posiada w swoich zależnościach @@ -8645,7 +8648,10 @@ backend = systemd po nieudanej próbie uwierzytelnienia zrezygnować z dalszych prób, ale jeśli spróbujemy ponownie przed upłynięciem tego czasu, to dalej liczba prób pozostanie nie zmieniona (pozostaną 2 próby).

  • -
  • bantime - ilość czasu blokady dostępu do usługi.
  • +
  • bantime - ilość czasu blokady dostępu do usługi.
  • +
  • backend - źródło komunikatów logowania. Bez + tej wartości sama usługa fail2ban nie wystartuje. + Systemd może być dobry źródłem takich informacji.
  • Tyle informacji wystarczy demonowi fail2ban do monitorowania @@ -8666,10 +8672,10 @@ backend = systemd

    10.3.4. Pozostałe metody użycia SSH

    - Najpopularniejsza implementacj protokołu bezpiecznej powłoki, to + Najpopularniejsza implementacja protokołu bezpiecznej powłoki, to nie tylko jakby sama nazwa wskazywała dostęp do powłoki systemu w - bezpieczny sposób, ale także bezpieczne przesyłanie plików takich - jak plików za pomocą SSH. + bezpieczny sposób, ale także bezpieczne przesyłanie plików za pomocą + SSH.

    Pierwszym z nich jest SCP, który tak jakby zwykłym @@ -8684,7 +8690,7 @@ xf0r3m@immudex:~$ scp test.txt user@server:/usr/share/doc/test/test.txt

    Wraz z SCP dostępne jest bardziej interaktywne polecenie, które jest też protokołem - SFTP. W informatyce jest wiele jest - rozwiązań tego skrótu nas będzie interesować wyłącznie + rozwiązań tego skrótu, nas będzie interesować wyłącznie SSH File Transfer Protocol. Połaczenie SFTP realizowane jest na takiej same zasadzie jak SSH. Podajemy nazwę polecenia użytkownika oraz host, po jego zgłoszeniu się podajemy hasło. Wówczas zostaniem -- 2.39.5