]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Tworzenie rozdziału 10. Zakończenie tworzenia podrozdziału 10.3.
authorxf0r3m <jakubstasinski@protonmail.com>
Mon, 28 Aug 2023 12:13:40 +0000 (14:13 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Mon, 28 Aug 2023 12:13:40 +0000 (14:13 +0200)
articles/terminallog/Linux.Podstawy.html

index ffa987580f876ea46df45f9bd3698706f577910a..596ac6af402dfc8456815c630981b18e45425dbb 100644 (file)
@@ -8621,8 +8621,131 @@ backend = systemd
           tej opcji jest wskazaniem pliku w katalogu
           <em>/etc/fail2ban/action.d</em>. W tym pliku możemy zobaczyć jak na
           podstawie wykonywanych przez <em>fail2ban</em> czynności układane są
-          reguły <em>iptables</em>.
+          reguły <em>iptables</em>. Sekcja
+          <code class="code-inline">[DEFAULT]</code> zawiera podsekcje
+          dedykowane dla konkretnych usług. W naszym przypadku jest to demon
+          SSH. W sekcji usługi znajdują się opcje definujące kryteria dotyczące
+          blokowania dostępu podczas nadużycia. Zatem kolejno: 
         </p>
+        <ul>
+          <li><strong>enable</strong> - załączenie kontrolowania oraz
+            blokowanie w przypadku nadużyć</li>
+          <li><strong>port</strong> - port pod którym uruchomiona jest
+            monitorowana usługa na naszym komputerze.</li>
+          <li><strong>filter</strong> - jest wskazanie zbioru wzorców w
+            postaci wyrażeń regularnych. <em>Fail2ban</em> wykorzystuje usługi
+            dzienników systemowych do wykrywania prób uwierzytelnienia. Plik
+            odpowiadający wartości tej opcji znajduje się w katalogu
+            <em>/etc/fail2ban/filter.d</em>.</li>
+          <li><strong>maxretry</strong> - ilość możliwych prób, przed
+            zablokowaniem.</li>
+          <li><strong>findtime</strong> - ilość czasu jaką należy odczekać od
+            między próbami, aby uzyskać z powrotem wszystkie próby zdeklarowane
+            w opcji <em>maxretry</em>. Wygląda to w ten sposób, że możemy
+            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> 
+        </ul>
+        <p>
+          Tyle informacji wystarczy demonowi <em>fail2ban</em> do monitorowania
+          i także przeciw działania próbą uzyskania dostępu do powłoki. Jeśli
+          zmieniamy coś w plikach konfiguracyjnych to wówczas należy pamiętać
+          o restartcie usługi. Po zastosowaniu tego rozwiązania będzie 
+          zauważymy znaczny spadek nieudanych prób logowania. Każdy ma 3 próby
+          jeśli wszystkie się nie powiodą adres IP, z którego nasz świadek
+          jehowy puka zostanie zbanowany na 30 minut. Pozostaje również
+          możliwość logowania się za pomocą hasła. 
+        </p>
+        <p>
+          Nie ma metody, która jednoznacznie rozprawiwła by się z próbami
+          uzyskania dostępu do SSH. Można za pomocą informacji w internecie
+          ustawić czas blokady na stałe lub zwiększać go jeśli trafi się
+          naprawdę natrętny osobnik, albo odciąć osiągalność demona SSH z
+          internetu i wymagać do tego połączeń VPN.
+        </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
+          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. 
+        </p>
+        <p>
+          Pierwszym z nich jest <strong>SCP</strong>, który tak jakby zwykłym
+          poleceniem <em>cp</em>, ale przesyłającym plik za pomocą szyfrowanago
+          kanału i rozszerzającym scieżki o dowolne Uniksy w internecie.
+          Istotnym czynnikiem korzystania z SCP jest fakt, że musimy niestety
+          znać zdalną ściezke dostępu do pliku.
+        </p>
+<pre class="code-block">
+xf0r3m@immudex:~$ scp test.txt user@server:/usr/share/doc/test/test.txt
+</pre>
+        <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
+          <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
+          na zwrócony prompt <code class="code-block">sftp&gt;</code>.
+        </p>
+<pre class="code-block">
+xf0r3m@vm-3eb3a0e:~$ sftp -P 2022 xf0r3m@192.168.122.76 
+xf0r3m@192.168.122.76's password: 
+Connected to 192.168.122.76
+sftp&gt;
+</pre>
+        <p>
+          Na powyższym przykładzie użyłem opcji 
+          <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.
+        </p>
+        <p>
+          Po zwróceniu znaku zachęty do dyspozycji mamym dostęp do części
+          podstawowych poleceń takich jak: <em>ls</em>, <em>cd</em>, <em>mkdir</em>.
+          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.
+        </p>
+        <p>
+          Wymiana danych w przypadku polecenia SFTP, odbywa się poprzez
+          polecenia <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
+          przesłaniem danych. Inne dostępne polecenia są opisane na stronie
+          podręcznika: <code class="code-inline">man sftp</code>.
+        </p>
+        <p>
+          Poza bezpieczym przesyłaniem plików pozostało jeszcze umieszczenie
+          innego połączenia sieciowego wewnątrz połączenia SSH. Takie
+          działanie nazywane jest <strong>tunelowaniem</strong>. Połączenie
+          pierwotne pozwala na przenoszenie wewnątrz swoich pakietów danych
+          wewnątrz innego połączenia. Mozliwości tuneli tworzonych za pomocą
+          SSH 
+          w implementacji <em>openssh</em> znajdują się w innym moim materiale:
+          <a href="https://morketsmerke.github.io/articles/terminallog/laboratorium_sieci_VPN.html">Laboratorium sieci VPN</a>.
+          Dodam tylko, że połaczenie SSH jest dość wrażliwe (jak każde
+          zapewniające jakiś standard bezpieczeństwa) na jakość połączenia
+          jeśli połączenie jest niewykorzystywane może zostać łatwo zerwane.
+          Należy mieć na uwadze, że tunele SSH otwierają sesje powłoki, więc
+          musimy posiadać dostęp do użytkownika, który może uruchomić dowolną
+          powłokę, może być to równiez program, który będzie działać po
+          zalogowaniu do momentu zakończenia połączenia, jeśli jest to zwykła
+          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
+          podrozdziału) lub użycie programu <strong>tmux</strong>, który jest
+          multiplekserem terminala dodatkowo pozwala na podtrzymania połączenia
+          SSH.
+        </p>
+        <h2 id="10.4.inetd">10.4. Demony internetowe - inetd, xinetd</h2>
       </div>
                        <p style="margin: 15px; padding: 0; outline: 0;">
                                2022; COPYLEFT; ALL RIGHTS REVERSED;