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></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>
+</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;