]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Przeredagowywanie rozdziału 10. Podrozdział 10.3.4 (SFTP)
authorxf0r3m <jakubstasinski@protonmail.com>
Mon, 4 Sep 2023 12:03:45 +0000 (14:03 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Mon, 4 Sep 2023 12:03:45 +0000 (14:03 +0200)
articles/terminallog/Linux.Podstawy.html

index 07677d2d54fa36b3cb9696e5ff4c262ea1e74ab4..599d43f8442daf125f9f13af4b8364f15131a24b 100644 (file)
@@ -8061,7 +8061,7 @@ xf0r3m@immudex:~$ sudo wpa_cli
         <p>
           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 <strong>protokół</strong>.
@@ -8074,7 +8074,7 @@ xf0r3m@immudex:~$ sudo wpa_cli
           udostępnionego gdzieś na serwerze.
         </p>
         <p>
-          Aby pomiędzy dwoma <em>stronami</em> mogła zajść komunikacji
+          Aby pomiędzy dwoma <em>stronami</em> 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 <strong>usług sieciowych</strong>.
           Często mówiąc o jakiś serwerze do słowa <em>serwer</em> 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ć).
         </p>
         <p>
           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 <strong>warstwie aplikacji</strong>
+          wszystkie te protokoły rezydują w <strong>warstwie aplikacji</strong>,
           czwartej warstwie modelu TCP/IP.
         </p>
         <p>
           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
         <p>
           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\&amp;lang=pl
         <p>
           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 <strong>nagłówek</strong>, - w nagłówkach HTTP
+          wysyłany jest <strong>nagłówek</strong> - 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\&amp;lang=pl
         <p>
           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ę <strong>hostingiem</strong>.
         </p>
         <p>
-          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\&amp;lang=pl
           powszechny <em>wget</em> 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 <em>curl</em> 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\&amp;lang=pl
         </p>
         <p>
           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\&amp;lang=pl
           wykorzystanie zapomnianego już programu <strong>Telnet</strong>.
           <em>Telnet</em> 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.
         </p>
 <pre class="code-block">
-xf0r3m@immudex:~$ telnet example.org 80 > telnet.log
+xf0r3m@immudex:~$ telnet example.org 80 &gt; telnet.log
 Trying 93.184.216.34...
 Connected to example.org.
 Escape character is '^]'
@@ -8298,14 +8299,14 @@ Content-Length: 1256
 </pre>
         <p>
           Po wielokropku występuje już tylko kod HTML strony. Polecenie
-          <code class="code-inline">telnet</code> wymaga aby port, pod który
+          <code class="code-inline">telnet</code> wymaga portu, pod który
           należy się podłączyć. Aby otrzymać odpowiedź musimy metodę
           (<code class="code-inline">GET</code>), ewentualne dane/żądany plik
           (<code class="code-inline">/</code>), wersje protokołu
           (<code class="code-inline">HTTP/1.1</code>) w drugiej lini nagłówka
           należy podać nazwę hosta
           (<code class="code-inline">Host: example.org</code>), 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ź.
         </p>
         <p>
           Protokół jest może trochę mało interaktwny przy takim połączeniu, ale
@@ -8313,33 +8314,33 @@ Content-Length: 1256
         </p>
         <h2 id="10.2.networkservers">10.2. Serwery sieciowe</h2>
         <p>
-          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. <em>cron</em>.
+          zdalnych użytkowników. Serwery wewnątrz systemów to dość niszowa
+          grupa, do których zalicza się tylko kilka demonów np. <em>cron</em>.
           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.
         </p>
         <ul>
           <li><strong>Serwery WWW:</strong> - <em>Apache</em>, <em>Nginx</em></li>
           <li><strong>Serwery pocztowe:</strong> - SMTP: <em>Postfix</em>,
-              <em>Sendmail</em>; POP3/IMAP: <em>dovecot</em></li>
+              <em>Exim</em>; POP3/IMAP: <em>dovecot</em></li>
           <li><strong>Serwery plików:</strong> - CIFS (udziały Windows):
               <em>Samba</em>; FTP: <em>vsftpd</em>;
               NFS: <em>nfs-kernel-server</em></li>
           <li><strong>Serwery zdalnego dostępu:</strong> - SSH: 
                    <em>openssh</em>; RDP: <em>xrdp</em>.</li>
-          <li><strong>Serwery wewnątrzsieciowe:</strong> - DHCP:
+          <li><strong>Serwery sieciowe:</strong> - DHCP:
               <em>isc-dhcp-server</em>, <em>dnsmasq</em>; DNS:
               <em>bind9</em>, <em>dnsmasq</em></li>
           <li><strong>Usługa zdalnego wywołania procedury (RPC)</strong><li>
         </ul>
         <p>
           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 - <strong>openssh</strong>. Implementacji protokołu SSH jest
+          po krótce jeden z nich. Z powyższej listy najciekawszym z nich
+          jest znana implementacja protokołu SSH - <strong>openssh</strong>.
+          Implementacji protokołu SSH jest
           kilka, jednak ta jest w najpowszechniejszym użytku obecna jest nawet
           w najnowszych wersjach MS Windows 10.
         </p>
@@ -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ą
           <em>małpy</em> (<strong>@</strong>). 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. 
         </p>
 <pre class="code-block">
-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:
         <p>
           Na powyższym przykładzie podałem opcję
           <code class="code-inline">-p</code>, 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
           <em>ssh</em> jako użytkownika przyjmie tego, który wydał polecenie.
         </p>
@@ -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:
         </p>
         <p>
           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
           <strong>RSA</strong>, 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
-          <strong>ssh-keygen</strong>.
+          na temat generowanie kluczy znajduje się na stronie podręcznika 
+          polecenia <strong>ssh-keygen</strong>.
         </p>
 <pre class="code-block">
 xf0r3m@immudex:~$ ssh-keygen
@@ -8468,14 +8469,15 @@ and check to make sure that only the key(s) you wanted were added
           <em>-i</em> możemy skazać plik klucza publicznego 
           (plik z rozszerzeniem .pub). Natomiast jeśli chcemy się uwierzytelnić
           za pomocą klucza to przy opcji <em>-i</em> polecenia <em>ssh</em>
-          podajemy plik klucza bez rozszerzenia.
+          podajemy plik klucza prywatnego (bez rozszerzenia).
         </p>
         <h3 id="10.3.2.sshd">10.3.2. Demon serwera - sshd</h3>
         <p>
           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 (<em>systemd</em>). Dlatego,
+          że obsługa demona
           różni się od obsługi klienta, w tym podrozdziale skupimy się głównie
           zmianie konfiguracji demona <em>openssh</em>, 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
               <em>no</em>. 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).</li>
           <li><strong>PasswordAuthentication</strong> - zmiana wartości tej
               opcji na <em>no</em> zabroni używania haseł do logowania się.
@@ -8568,7 +8570,8 @@ xf0r3m@immudex:~$ sudo systemctl restart ssh.service
           <strong>fail2ban</strong>. 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.
         </p>
         <p>
           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).</li>
-          <li><strong>bantime</strong> - ilość czasu blokady dostępu do usługi.</li> 
+          <li><strong>bantime</strong> - ilość czasu blokady dostępu do usługi.</li>
+          <li><strong>backend</strong> - źródło komunikatów logowania. Bez
+            tej wartości sama usługa <em>fail2ban</em> nie wystartuje.
+            <em>Systemd</em> może być dobry źródłem takich informacji.</li>
         </ul>
         <p>
           Tyle informacji wystarczy demonowi <em>fail2ban</em> do monitorowania
@@ -8666,10 +8672,10 @@ backend = systemd
         </p>
         <h3 id="10.3.4.othersshusage">10.3.4. Pozostałe metody użycia SSH</h3>
         <p>
-          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. 
         </p>
         <p>
           Pierwszym z nich jest <strong>SCP</strong>, który tak jakby zwykłym
@@ -8684,7 +8690,7 @@ xf0r3m@immudex:~$ scp test.txt user@server:/usr/share/doc/test/test.txt
         <p>
           Wraz z SCP dostępne jest bardziej interaktywne polecenie, które jest
           też protokołem - <strong>SFTP</strong>. 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
           <em>SSH File Transfer Protocol</em>. 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