🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux
12 messages
12 total messages Started by Jacek Marcin Jaworski Mon, 19 Sep 2022 14:49
Konfiguracja Systemów Z Rodziny Ubuntu
#906459
Author: Jacek Marcin Jaworski
Date: Mon, 19 Sep 2022 14:49
1387 lines
76993 bytes
Konfiguracja Systemów Z Rodziny
            Ubuntu
                   autor: Jacek Marcin Jaworski
              pseudonim: Energo Koder
                        utworzono:     2020-07-12
               wersja: 3373 z dnia:    2022-09-19
                           system:     Linuks - distro: Kubuntu, Triskel
                         program:      LibreOffice




   Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Spis treści
ZAMKNIĘCIE PROJEKTU TEJ MONOGRAFII............................................................................7
Streszczenie..............................................................................................................................9
O autorze................................................................................................................................10
   Kontakt z autorem.............................................................................................................11
Treść tej monografii...............................................................................................................12
   Cele tej monografii............................................................................................................12
      Wizja................................................................................................................................12
      Strategia.........................................................................................................................12
      Taktyka............................................................................................................................12
   Założenia wstępne.............................................................................................................12
   Grupa docelowa.................................................................................................................13
   Czego nie opisałem w tej monografii.............................................................................13
   Brak gwarancji 100% bezpieczeństwa systemu............................................................13
Forma tej monografii.............................................................................................................14
   Słownik pojęć.....................................................................................................................14
   Konwencje w tekście.........................................................................................................14
   Podstawowe skróty edytora tekstu Nano......................................................................15
1 Ideologia używania systemu Linuks w sieci Internet.....................................................16
   1.1 Urządzenia sieciowe: skompromitowane i potencjalnie bezpieczne...................16
   1.2 Fakty o systemach Linuks...........................................................................................16
   1.3 Ideologia wynikająca z faktów...................................................................................18
      1.3.1 Skrypty konfiguracyjne uruchamiane po instalacji systemu.........................19
      1.3.2 Skrypt czyszczący uruchamiany przed uśpieniem, przed restartem i przed
      zalogowaniem...............................................................................................................19
      1.3.3 Skrypt aktualizacyjny...........................................................................................19
      1.3.4 Uwagi do skryptu konf. bramy sieciowej UFW.................................................21
2 Mechanizmy bezpieczeństwa w systemie Linuks...........................................................22
   2.1 Logiczny podział dysku twardego: partycje.............................................................22
      2.1.1 Plik /etc/fstab.......................................................................................................22
   2.2 Użytkownicy w systemie Linuks................................................................................24
   2.3 System uprawnień w systemie Linuks......................................................................24
   2.4 Piaskownice..................................................................................................................26
      2.4.1 AppArmor.............................................................................................................26
      2.4.2 Snap.......................................................................................................................26
      2.4.3 AppImage.............................................................................................................27
      2.4.4 Firejail....................................................................................................................27
3 Budowa sieci Internet........................................................................................................29
   3.1 Struktura sieci Internet...............................................................................................29
   3.2 Protokoły w sieci Internet..........................................................................................29
      3.2.1 Protokół IP............................................................................................................29

                 Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
      3.2.2 Protokół UDP........................................................................................................30
      3.2.3 Protokół TCP.........................................................................................................30
   3.3 Sieć lokalna..................................................................................................................30
   3.4 NAT czyli lokalna brama do Internet.........................................................................31
   3.5 Sieć globalna, czyli Internet.......................................................................................32
4 Bezpieczeństwo w sieci lokalnej.......................................................................................33
   4.1 Sprytny tel. jako klient usługi Internet i brama na świat.......................................33
   4.2 Serwer i stacja robocza w sieci lokalnej....................................................................35
5 Przygotowanie do instalacji Linuks..................................................................................36
   5.1 Jaką dystrybucję wybrać?...........................................................................................36
      5.1.1 Wybierz dystrybucję pozwalającą na instalację bez dostępu do Internet. . .36
      5.1.2 Są dystrybucje bez zamkniętych pakietów - ale czy warto je instalować?....36
      5.1.3 Nie wybieraj Debiana jak nie musisz.................................................................37
   5.2 Jak prawidłowo zainstalować Linuks mając tylko skompromitowany system
   komputerowy.....................................................................................................................37
   5.3 Pobieranie obrazu instalki Linuks.............................................................................38
      5.3.1 Pobranie sum kontrolnych.................................................................................38
      5.3.2 Odłącz komputer od sieci...................................................................................38
      5.3.3 Spr. pobranego obrazu.......................................................................................38
      5.3.4 Nagrywanie obrazu.............................................................................................39
         5.3.4.1 Rozpoznawanie napędów w Linuks...........................................................39
         5.3.4.2 Zapis obrazu na pamięć USB......................................................................40
         5.3.4.3 Spr. poprawności zapisu na pamięć USB..................................................40
   5.4 Uruchomienie instalki.................................................................................................40
   5.5 Partycjonowanie dysku...............................................................................................41
   5.6 Generowanie silnego hasła........................................................................................44
      5.6.1 cracklib-check.......................................................................................................45
      5.6.2 John the Ripper....................................................................................................45
      5.6.3 Zmiana hasła........................................................................................................46
6 Instalacja Linuks..................................................................................................................47
   6.1 Wybór trybu instalacji.................................................................................................47
      6.1.1 Nie łącz się z siecią lokalną ani z Internet.........................................................47
      6.1.2 Instaluj pakiety zamknięte tylko gdy masz sprzęt jaki tego wymaga...........47
   6.2 Wybierz punkty montowania przygotowanych partycji.........................................47
   6.3 Wprowadź hasło jakie wygenerowałeś.....................................................................47
7 Konfiguracja po instalacji Linuks......................................................................................48
   7.1 Skonfiguruj sudo.........................................................................................................48
      7.1.1 Dodaj siebie do grupy sudo...............................................................................48
      7.1.2 Ustaw sudo tylko dla siebie................................................................................48
   7.2 Skonfiguruj wstępnie zaporę sieciową UFW............................................................48
      7.2.1 Domyślne blokowanie całego ruchu sieciowego............................................48
      7.2.2 Odblokowanie możliwości łączenia się z serwerami OpenDNS....................49


                Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   7.3 Konfiguracja Linuks Kernel........................................................................................49
   7.4 Skonfiguruj partycje....................................................................................................50
   7.5 Wyłącz plik wymiany...................................................................................................51
   7.6 Włącz automatyczne ubijanie zbyt żarłocznego procesu.......................................52
   7.7 Zaostrz prawa dostępu do katalogów użytkowników............................................53
      7.7.1 Katalogi domowe.................................................................................................53
      7.7.2 UMASK...................................................................................................................54
         7.7.2.1 UMASK globalny...........................................................................................54
         7.7.2.2 Problemy z globalnym UMASK...................................................................54
         7.7.2.3 UMASK lokalny..............................................................................................55
      7.7.3 DIR_MODE............................................................................................................55
      7.7.4 Ważne pliki systemowe.......................................................................................55
   7.8 Usuń pliki bez właściciela...........................................................................................55
   7.9 Usuń uszkodzone linki symboliczne.........................................................................55
   7.10 Wyłącz konsolę dla nowych użytkowników............................................................56
   7.11 Konfiguracja Linuks dla programisty......................................................................56
      7.11.1 Włącz zrzuty obrazów pamięci programów...................................................56
   7.12 Konfiguracja Linuks dla nie programisty...............................................................57
      7.12.1 Wyłącz zrzuty jądra i programów....................................................................57
   7.13 Konfiguracja użytkowników.....................................................................................57
   7.14 Konfiguracja grup użytkowników...........................................................................57
   7.15 Firejail.........................................................................................................................58
      7.15.1 Instalacja Firejail................................................................................................59
      7.15.2 Włączenie Firejail...............................................................................................59
      7.15.3 Uruchamianie programów w piaskownicy Firejail i bez niej........................59
      7.15.4 Spr. czy program jest uruchomiony w piaskownicy Firejail.........................59
      7.15.5 Strojenie Firejail.................................................................................................59
      7.15.6 Dodawanie brakujących profili Firejail............................................................60
      7.15.7 Globalne wyłączenie Firejail.............................................................................61
   7.16 Konfiguracja demonów............................................................................................62
      7.16.1 Diagnostyka transmisji Internet......................................................................62
      7.16.2 Skonfiguruj SSH.................................................................................................63
         7.16.2.1 Wygeneruj parę kluczy..............................................................................64
         7.16.2.2 Załaduj publiczne klucze SSH na serwer.................................................64
      7.16.3 Skonfiguruj CUPS...............................................................................................64
   7.17 Konfiguracja sieci......................................................................................................65
   7.18 Konfiguracja PAM......................................................................................................66
      7.18.1 Wyłączenie zdalnego logowania......................................................................67
      7.18.2 Wyłączenie su.....................................................................................................67
      7.18.3 Wymuszanie na użytkownikach stosowania silnych haseł...........................67
8 Czynności po podłączeniu do Internet............................................................................69
   8.1 Awaryjne połączenie z Internet.................................................................................69


                Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   8.2 Dokończenie konfiguracji UFW..................................................................................69
   8.3 Postarzanie kernela....................................................................................................72
   8.4 Skrypt aktualizujący system.......................................................................................73
9 Ręczna diagnostyka bezpieczeństwa...............................................................................74
   9.1 Testy zapory sieciowej................................................................................................74
      9.1.1 Test skanowania portów.....................................................................................74
      9.1.2 Test dostępu do otwartego portu zablokowanego przez UFW.....................74
   9.2 Skaner debsums..........................................................................................................75
   9.3 Skaner Lynis.................................................................................................................75
      9.3.1 Instalacja...............................................................................................................75
      9.3.2 Skanowanie..........................................................................................................75
      9.3.3 Interpretacja wyników........................................................................................76
   9.4 Skaner Rkhunter (poszukuje rotkitów).....................................................................77
      9.4.1 Instalacja...............................................................................................................77
      9.4.2 Aktualizacja...........................................................................................................77
      9.4.3 Skanowanie..........................................................................................................77
      9.4.4 Interpretacja wyników........................................................................................77
   9.5 Skaner Debsecan (poszukuje exploit-ów)................................................................78
      9.5.1 Instalacja...............................................................................................................78
      9.5.2 Skanowanie i interpretacja wyników.................................................................78
   9.6 Skaner Fail2ban...........................................................................................................79
   9.7 Skanery sieciowe.........................................................................................................79
10 Automatyzacja monitorowania bezpieczeństwa..........................................................81
   10.1 Skrypt monitorujący nawiązywanie i rozłączanie poł. przychodzących i
   wychodzących....................................................................................................................81
   10.2 Skrypt monitorujący odrzucanie poł. przychodzących i wychodzących............81
   10.3 Skrypt monitorujący stan aktywnych połączeń w sieci Internet.........................81
11 Skryte korzystanie z systemu Linuks..............................................................................82
   11.1 Skrypt czyszczący......................................................................................................82
   11.2 Wyłącz raporty o błędach.........................................................................................82
   11.3 Wyłącz raporty popularności pakietów..................................................................83
   11.4 Wyłącz informowanie o obecności w sieci.............................................................83
12 Skryte korzystanie z sieci Internet..................................................................................84
   12.1 Największy problem - ID systemu i przeglądarki..................................................84
   12.2 Serwery DNS..............................................................................................................84
   12.3 Przeglądarka TorBrowser.........................................................................................85
   12.4 Przeglądarka Waterfox.............................................................................................86
   12.5 Poprawa prywatności w TorBrowser, Waterfox i Firefox......................................86
      12.5.1 Włącz kasowanie ciasteczek przy zamykaniu................................................86
      12.5.2 Włącz kasowanie całej historii przy zamykaniu.............................................86
      12.5.3 Zainstaluj dodatek HTTPS Everywhere...........................................................86
      12.5.4 Zainstaluj dodatek Privacy Badger..................................................................86


                Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
  12.6 Przeglądarka Chromium..........................................................................................87
  12.7 Poprawa prywatności w Chromium i Chrome.......................................................87
     12.7.1 Włącz kasowanie ciasteczek przy zamykaniu................................................88
     12.7.2 Włącz kasowanie całej historii przy zamykaniu.............................................88
     12.7.3 Zainstaluj dodatek HTTPS Everywhere...........................................................88
     12.7.4 Zainstaluj dodatek Privacy Badger..................................................................88
     12.7.5 Autouzupełniaj wyszukiwania i adresy URL...................................................88
     12.7.6 Ulepsz wyszukiwanie i przeglądanie...............................................................88
     12.7.7 Wyczyść pliki cookie i dane witryn w momencie zamknięcia
     Chromium/Chrome.......................................................................................................88
     12.7.8 Wysyłaj żądanie „Bez śledzenia” podczas przeglądania...............................88
     12.7.9 Kontynuuj działanie aplikacji w tle po zamknięciu Chromium....................89
  12.8 Wyłączenie obsługi JavaScript w przeglądarkach.................................................89
     12.8.1 TorBrowser, Waterfox, Firefox..........................................................................89
     12.8.2 Chromium, Chrome...........................................................................................89
  12.9 Inne przydatne dodatki............................................................................................89
     12.9.1 I don't care about cookies................................................................................89
       12.9.1.1 TorBrowser, Waterfox i Firefox.................................................................89
       12.9.1.2 Chromium i Chrome..................................................................................89
     12.9.2 Otwieranie linku i przejście do nowej karty jednym mlaskiem środkowego
     przycisku myszy.............................................................................................................89
       12.9.2.1 TorBrowser, Waterfox i Firefox.................................................................89
       12.9.2.2 Chromium i Chrome..................................................................................90
  12.10 Wyszukiwarki...........................................................................................................90
     12.10.1 DuckDuckGo.com............................................................................................90
     12.10.2 Google.com......................................................................................................90
  12.11 Skryte przeglądanie sieci na co dzień..................................................................90
  12.12 Klient poczty elektronicznej Thunderbird............................................................91
     12.12.1 Wyłącz szpiegowanie......................................................................................91
13 Lektura uzupełniająca......................................................................................................92




               Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
ZAMKNIĘCIE PROJEKTU TEJ
MONOGRAFII
W PIERWSZYCH DNIACH WRZEŚNIA 2022 UZYSKAŁEM NIEPODWAŻALNY DOWÓD O
BRAKU   MOŻLIWOŚCI      ZABEZPIECZENIA       SYSTEMU      Z   GRATISOWM       SYSTEMEM
KUBUNTU Z RODZINY DEBIAN/UBUNTU.

UZASADNIENIE:

TEN DOWÓD TO FAKT WŁAMANIA NA MÓJ ZABEZPIECZONY SYSTEM PRZEZ
ZHAKOWANĄ     STRONĘ     WIKIPEDIA.PL.     W    ZAPORZE       UFW    MIAŁEM       OTWARTĄ
MOŻLIWOŚĆ ŁĄCZENIA SIĘ Z ADRESEM IP WSKAZYWANY PRZEZ TĄ DOMENĘ.
WCHODZIŁEM NA NIĄ KILKUKROTNIE PRZEGLĄDARKĄ FIREFOX BEZ KLIKANIA
NICZEGO, WTEDY STRONA NIE ŁADOWAŁA SIĘ TYLKO WYŚWIETLAŁ SIĘ KOMUNIKAT O
NIEPRAWIDŁOWYM CERTYFIKACIE. WTEDY INTERNETU NIE UŻYWAŁEM DO NICZEGO
INNEGO, BO URUCHAMIAŁEM NOWY SKRYPT DO KONFIGURACJI ZAPORY UFW
OTWIERAJĄCY WYBRANE GRUPY ADRESÓW IP Z DOMEN JAKIE SĄ MI POTRZEBNE DO
OKREŚLONYCH ZADAŃ. NIESTETY W PEWNYM MOMENCIE STWIERDZIŁEM ŻE ZAPORA
UFW ZWARIOWAŁA I TO JEDNOCZEŚNIE NA MOIM LAPTOPIE I NA MOIM SERWERZE W
SIECI LOKALNEJ (NP. STRACIŁEM MOŻLIWOŚĆ ŁĄCZENIA Z SERWEREM PRZEZ SSH
MIMO SPR. KONF. ZAPORY UFW NA LAPTOPIE I NA SERWERZE ORAZ KONF. DEMONA
SSHD.

PODSUMOWANIE:

JEŚLI NIE MOŻNA NAWET BEZPIECZNIE UŻYĆ PRZEGLĄDARKI FIREFOX I WEJŚĆ NA
STRONĘ WIKIPEDIA.PL, TO OZNACZA, ŻE JEST NIEMOŻLIWE ZABEZPIECZENIE
GRATISOWEGO SYSTEMU LINUKS RODZINY DEBIAN/UBUNTU.

MOŻNA JEDYNIE PRÓBOWAĆ JESZCZE PRACY CAŁKOWICIE BEZ PRZEGLĄDARKI STORN
WWW UŻYWAJĄC JEDYNIE INTERNETOWYCH KLIENTÓW KONSOLI. ALE NADZIEJA ŻE
JEST TO BEZPIECZNE TO RACZEJ ŻYCZENIOWE MYŚLENIE.

REALISTYCZNIE OCENIAJĄC SYTUACJĘ SPOKOJNIE MOŻNA PRACOWAĆ WYŁĄCZNIE
PRZY CAŁKOWITYM ODCIĘCIU STACJI ROBOCZEJ OD INTERNETU. W OPARCIU O
INSTALKĘ ZE WSZYSTKIMI PAKIETAMI DYSTRYBUCJI. WIEM ŻE DUŻE INSTALKI DAJE
DEBIAN, ALE NIE WIEM CZY MAJĄ ONE WSZYSTKIE POTRZEBNE PAKIETY DO PRACY.
DO      KOMUNIKACJI       Z      INTERNETEM          NALEŻY         UŻYWAĆ         INNEGO




         Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
KOMPUTERA/TABLETU/SPRYTNEGO            TELEFONU,       KTÓRY       NA     100%   JEST
SKOMPROMITOWANY.

TAKA JEST RZECZYWISTOŚĆ UŻYWANIA GRATISOWEGO OPROGRAMOWANIA.




        Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Streszczenie
Niniejsza monografia opisuje następujące zagadnienia dotyczące stacji roboczej z
systemem Linuks (Debian, Ubuntu i pochodne):

   ● Ideologia używania komputera w sieci Internet;
   ● Niebezpieczeństwa związane z korzystaniem z sieci Internet;
   ● Mechanizmy bezpieczeństwa w systemie Linuks;
   ● Budowa sieci Internet;
   ● Bezpieczeństwo w sieci lokalnej;
   ● Przygotowania do instalacji systemu Linuks;
   ● Instalacja systemu;
   ● Konfiguracja po instalacji;
   ● Konfiguracja stacji roboczej programisty;
   ● Konfiguracja stacji roboczej nie programisty;
   ● Ręczna diagnostyka bezpieczeństwa;
   ● Automatyzacja monitorowania bezpieczeństwa (obecnie jest niepraktyczna z
     braku narzędzi);
   ● Skryte korzystanie z systemu Linuks;
   ● Skryte korzystanie z sieci Internet.




     Miejmy świadomość, że ta monografia powstała tylko z dwóch powodów:
                             1. Mi nie jest wszystko jedno!
     2. Tysiącom polskich adminów jest wszystko jedno to co się dzieje z waszymi
                                         kompami.




         Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
O autorze
Programuję komputery od lutego 1997r. Mam tytuł Technika Elektronika spec.
Systemy Komputerowe. Zaliczyłem 3 lata studiów informatyki na politechnice (jednak
dyplomu nie zrobiłem).

W latach 1999-2017 byłem programistą aplikacji w C++ dla Windows. W latach 2018-
2022 byłem programistą aplikacji w C++ na Linuks i Android.

    Jeśli chodzi o mój kierunek rozwoju, to chcę być jak najlepszym inżynierem i
                 architektem systemów i to nie tylko komputerowych.

Moje zainteresowania zawodowe to przede wszystkim:

🟒Zwiększanie kompetencji w projektowaniu i programowaniu programów w
językach: Asembler, C++ i D 🟒Zwiększanie kompetencji w pracy z systemem Linuks i
Plan9 🟒Studia nad architekturą wzorcowych systemów komputerowych 🟒Studia nad
bezpieczeństwem współczesnych systemów komputerowych 🟒Studia nad skrytym
użyciem      współczesnych        systemów       komputerowych          🟒Podnoszenie         jakości,
efektywności i bezpieczeństwa w pracy przez realizację racjonalizatorskich projektów.

Wystrzegam się jak mogę produktów wielkich korpo które z niejasnych powodów
wynajdują tylko patologiczne wynalazki1.

Jestem poszukiwaczem i kolekcjonerem dobrych "zasad życiowych" i "zasad
inżynierskich". Dzięki tym zwięzłym, hasłowym zasadom często widzę sens
podejmowania większego wysiłku by uzyskać obiektywnie dobry efekt zamiast
stosowania półśrodków.

    Zdrowe zasady pozwalają zostawiać za sobą działające rozwiązania zamiast
                                            prowizorki.




1   Jak wiecie język C i system Uniks stworzyło 2 ludzi: Dennis Ritchie i Ken Thompson. Dlatego
    jestem na 100% pewien, że gdyby ich projekt był prowadzony z rozmachem w stylu wielkich korpo,
    to: a) Język C nigdy by nie powstał, b) Uniks nigdy by nie powstał, c) powstały by potwory podobne
    do Ada, Jawa, C#, Windows i Android.
 Jak zauważył prof. Jan Pająk z NZ: W organizacjach wszystkie złe idee zaczynają
        się od górnie, a wszystkie postępowe koncepcje powstają oddolnie.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Kontakt z autorem
Jestem otwarty na merytoryczną dyskusję jak ulepszyć tą monografię. Jeśli ktoś
w jakikolwiek merytoryczny sposób przyczyni się do poprawy, ulepszenia lub
rozwinięcia tej monografii zostanie w wyraźny sposób wyróżniony w miejscu
gdzie jego informacje zostały umieszczone oraz na liście osób zasłużonych.
Oczywiście można zażądać pełnej anonimowości, co też uszanuję.

Ogólnie można pisać do mnie na każdy temat. Jednak zastrzegam sobie:

  1. Żaden email ani list wysyłany do mnie niczego automatycznie nie
      powoduje - szczególnie nie generuje żadnych zobowiązań. Czyli:

  2. Zachowuję pełną dowolność co czytam a co nie;

  3. Zachowuję pełną dowolność w tym komu odpisuję a komu nie;

  4. Zachowuję pełną dowolność w tym co będę brał pod uwagę i czym będę się
      kierował w dalszym życiu.

Mój   adres   poczty   to:   jaworski1978@adres.pl      ,   energokoder@adres.pl   lub
energokod@adres.pl .




         Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Treść tej monografii
Cele tej monografii
    1. Stworzenie dobrego, sprawdzonego i szybkiego do wdrożenia przepisu na
        prawidłową konfigurację stacji roboczej z systemem Linuks w domu i w pracy.
        Prawidłowa        konfiguracja       zapewnia:   bezpieczeństwo,     prywatność   i
        wydajność;
    2. Stworzenie dobrego, sprawdzonego i szybkiego do wdrożenia przepisu na
        prawidłową konfigurację sieci domowej;
    3. Propagowanie wiedzy o alternatywnych sposobach używania komputerów i
        sieci.

Wizja
Maksymalne bezpieczeństwo, prywatność i wydajność pracy na komputerze z
systemem Linuks w sieci lokalnej podłączonej do sieci globalnej (do Internet).


Strategia
Gdy to możliwe, to zero zaufania do: producentów sprzętu, oprogramowania i
dostawców usług telekomunikacyjnych.


Taktyka
Blokowanie wszystkiego co zbędne i podejrzane.

Kasowanie wszystkiego co zbędne i podejrzane.


Założenia wstępne
Aby osiągnąć w. postawione cele muszę przyjąć pewne założenia:

    1. Komputer działa normalnie i fizycznie jest bezpieczny2, czyli jest godny
        zaufania;

    2. Instalowana dystrybucja Linuks to Debian, Ubuntu lub ich pochodne;

    3. Zaraz po instalacji system Linuks jest źle skonfigurowany;



2   Czyli nie ma konieczności szyfrowania partycji.

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
     4. Jądro Linuks działa normalnie i nie zawiera tylnych furtek3, czyli jest godne
        zaufania;

     5. Programy narzędziowe: sha256, dig, whois, ufw i firejail działają normalnie i
        nie zawierają tylnych furtek, czyli są godne zaufania;

     6. Aplikacje działające w przestrzeni użytkownika mogą mieć tylne furtki, czyli nie
        są godne zaufania.


Grupa docelowa
Grupa docelowa to użytkownicy Linuks którzy chcą zmaksymalizować swoje
bezpieczeństwo, prywatność i wydajność podczas korzystania ze swoich stacji
roboczych wpiętych do Internet.

W szczególności obejmuje to osoby:

     ● Entuzjaści Linuks - głównie użytkownicy domowi;
     ● Zawodowi użytkownicy Linuks nie będący administratorami.


Czego nie opisałem w tej monografii
    Nie udaję, że znam się na wszystkich odmianach Linuks, dlatego piszę tylko o
        dystrybucji Debian, Ubuntu i pochodnych, bo ich na co dzień używam.

Skupiam się na użytkowniku stacji roboczej z systemem Linuks. Opis zabezpieczania
serwerów pozostawmy certyfikowanym adminom.


Brak gwarancji 100% bezpieczeństwa systemu
Starałem się opracować jak najlepszą instrukcję zasad pracy z systemem Linuks
(również po to by samemu z niej korzystać w domu i w pracy). Jednak nie będę
ukrywał, że zagadnieniami bezpieczeństwa informatycznego zajmuję się głównie po
godzinach. Dlatego:

     AUTOR NIE BIERZE ODPOWIEDZIALNOŚCI ZA WYKONYWANIE PONIŻSZYCH
                           CZYNNOŚCI NA KOMPUTERZE CZYTELNIKA.

        AUTOR NIE GWARANTUJE 100% BEZPIECZEŃSTWA SYSTEMU LINUKS PO
                           ZASTOSOWANIU PONIŻSZYCH INSTRUKCJI.

           AUTOR NIE GWARANTUJE 100% PRYWATNOŚCI W INTERNECIE PO
                           ZASTOSOWANIU PONIŻSZYCH INSTRUKCJI.
3    po ang.: back doors

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Forma tej monografii
Słownik pojęć
Na potrzeby tej monografii wprowadzam wygodne skróty myślowe:

    ● Ubuntu = Ubuntu lub distro bazujące na Ubuntu. Czyli Ubuntu, Kubuntu,
        Mint, Trisquel, Triskel ALE NIE: Debian, Redhat, Fedora, Suse, Gento ani
        Arch;
    ● Linuks = to co wymieniłem przy Ubuntu i do tego Debian;
    ● konsola = emulator terminala Konsole lub Terminal;
    ● $USER = twój login w Linuks;
    ● $HOME = twój katalog domowy w Linuks. Czyli /home/$USER;
    ● edytor = edytor tekstu Nano.


Konwencje w tekście
    ● Myślę po polsku, mówię po polsku, od urodzenia mieszkam w Polsce, więc
        piszę i programuję po polsku.

        Piszę Linuks, bo w szkole podstawowej uczono mnie, że w polskim alfabecie
        nie ma x – jego rolę pełni ks. Więc logiczne jest, że pisząc po polsku używam
        wyłącznie polskiego alfabetu;

        Obcych nazw takich jak Linuks, Ubuntu, Debian, Internet nie odmieniam
        przez przypadki. Bo logiczne jest, że obce słowa nie podlegają polskim
        zasadom odmiany przez przypadki;

        Wszędzie gdzie to możliwe stosuję polskie terminy techniczne i dla jasności
        podaję jak się je pisze w j. ang.

    ● Nie używam upiększających znaków dolara przed poleceniami, by zwiększyć
        szybkość kopiowania tych poleceń (wystarczy dwumlask4);

    ● Polecenia wymienione w tekście wykonuje się w konsoli;

    ● Objętości plików będę podawał w starym dobrym stylu gdzie 1KB = 1024
        bajtów, 1MB = 1KB * 1024, 1GB = 1MB * 1024, 1TB = 1GB * 1024;




4   po ang.: double click

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
  ● Szybkości transferu danych będę podawał w jednostkach wielkości plików na
      sekundę. Czyli np. 1MB/s (czyli 1024*1024 bajtów/s), a nie jak podają oszuści
      1Mbit/s (czyli 1000 000 / 8 = 125 000 bajtów/s).

  ● Ważniejsze terminy i treści w tekście są pogrubiane.

  ● Uwagi krytyczne są w kolorze czerwonym, pogrubione i wyśrodkowane.


Podstawowe skróty edytora tekstu Nano
  ● Do wprowadzania zmian w systemie będzie nam potrzebny edytor tekstu.
      Nano jest chyba dostępny we wszystkich dystrybucjach. A na pewno jest
      dostępny w Ubuntu.

  ● Nie zakładam, że znasz j. po ang.: więc podam niezbędne skróty klawiszowe
      edytora Nano:

Zaznacz tekst                                Prawy Alt + a
Kopiuj zaznaczony tekst                      Prawy Alt + 6
Wklej tekst ze schowka Nano                  Ctrl + u
Wklejanie tekstu ze schowka XWindows         Ctrl + Shift + v
Wytnij                                       Ctrl+k
Zapis pliku                                  Ctrl + s
Wyjście z edytora Nano                       Ctrl + x




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
1 Ideologia używania systemu Linuks
w sieci Internet
1.1 Urządzenia sieciowe: skompromitowane i
potencjalnie bezpieczne
Urządzenia kupione, takie jak routery, sprytne TV, sprytne tel., tablety itp. należy
uznać za łatwy łup dla każdego kraktera.

Należy też uznać, że wszystkie te systemy szpiegują. Łącznie z wysyłaniem info ile na
jakim kanale TV sobie siedziałem.

   Gotowe urządzenia sieciowe należy uznać za skompromitowane i pod obcą
                                       kontrolą.

  Systemy samodzielnie zainstalowane, samodzielnie skonfigurowane można
                  nazwać systemami potencjalnie bezpiecznymi.

Systemom potencjalnie bezpiecznym w czasie użytkowania pilnie się przyglądam czy
nie zdradzają oznak jakichś odchyłek. Bo te "odchyłki" to często są skutkiem "małego
sabotażu" jaki uprawiają krety - już od czasów okupacji.


1.2 Fakty o systemach Linuks
   1. Systemy Linuks rodziny Ubuntu to są gratisy. Cytat z mojej monografi
      "Ideologia Geniuszy-Mocarzy":

      "Ktoś zaciąga ogromne kredyty by dobra kultury były darmowe. Youtube
      Premium za 23,99zł, to też chyba za darmo, bo nawet internet w telefonie
      więcej kosztuje.

      W tym procederze przoduje SZAP, rząd w Polsce i nieliczne płotki z Polski jakie
      też oferują darmowe informacje i oprogramowanie.
                   Trzeba to nazwać po imieniu, że jest to jakiś spisek.

      Geneza tego jest prosta:
      1. Gratis nie podlega reklamacji;
      2. Gratis nie gwarantuje niczego. W szczególności                 nie   gwarantuje
         bezpieczeństwa ani przydatności do czegokolwiek;



          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
         3. Gratis może ulec zmianie w każdej chwili bez uprzedzenia. W szczególności
            gratis może ulec degradacji uniemożliwiającej jego dalsze użycie.
         4. Dzięki p. 1-3 rządy uzyskują kontrolę w dziedzinie kultury i
            oprogramowania."
    To dlatego jedna z moich zasad brzmi: "Bez żalu płacę za rzeczy wartościowe.".

    To że nie używam komercyjnego Linuksa wynika z faktu, że nie ma normalnej,
                     komercyjnej, polskiej dystrybucji systemu Linuks.

     2. Domyślnie wszyscy użytkownicy systemu Linuks mają pełen wgląd w katalogi
         wszystkich     innych     użytkowników.       Łącznie      z    możliwością     kopiowania
         dowolnych plików oraz z możliwością przeglądania metadanych wszystkich
         plików - np.: data utworzenia i data ostatniej modyfikacji i wielkość pliku;

     3. Komputery z systemem Linuks gromadzą dane o działaniach użytkownika.
         Najczęściej     w    formie     plików     tekstowych.         Często   nawet   w   plikach
         konfiguracyjnych . Usuwanie tego nie powoduje żadnych zauważalnych
                             5


         efektów;

     4. Komputery z systemem Linuks gromadzą dane o działaniach użytkownika i
         czasem przechowują je w zaszyfrowanej formie - szyfrowane dane występują
         nawet w plikach tekstowych, także w plikach konfiguracyjnych.

     5. Nie wiadomo po co są w systemie Linuks dziesiątki plików cache. Usuwanie
         tego nie powoduje żadnych zauważalnych efektów.

     6. Nie wiadomo po co do systemu Linuks pakuje się masę starych plików i innych
         śmieci: prastarzy użytkownicy systemowi, prastare grupy, kalendarze z przed
         dziesiątek lat ze świętami z całego świata 6, Usuwanie tego nie powoduje
         żadnych zauważalnych efektów.

     7. System Linuks domyślnie w bramie sieciowej niema włączonych blokad na
         ruch przychodzący ani wychodzący;

     8. W sieci Internet7 agenci wpływu wmawiają, że problem prywatności dotyczy
         jedynie społecznościowych serwerów WWW. Podczas gdy:

     9. Domyślnie programy uruchamiane przez użytkownika mają pełen dostęp do
         jego katalogu domowego i mogą te dane wysyłać gdzie im się podoba;


5    np. VLC albo Krusader
6    np. w polskim pliku kalendarza ze świętami jest święto 22 lipca.
7    np. na grupie dyskusyjnej pl.comp.os.linux .

              Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
     10.Poradniki w sieci Internet pokazują jak włączyć bramę sieciową blokującą ruch
         przychodzący. Ale zupełnie ignorują problem wysyłania w świat danych
         użytkownika przez programy szpiegujące na jego komputerze;

     11.Dane użytkownika wysyłają w świat nawet strony internetowe 8. Nawet
         piaskownica przed tym nie chroni. Eksperymenty z programem ulimit
         pokazują że najprawdopodobniej dzieje się to przez atak typu przepełnienie
         bufora przez skrypt z Jawa Skrypt pobierany przez strony HTML.


1.3 Ideologia wynikająca z faktów
MOIM GŁÓWNYM CELEM W WALCE Z SYSTEMEM LINUKS I Z POWŁOKĄ BASZ JEST
                ZAPEWNIENIE SOBIE SPOKOJU W PRACY Z KOMPUTEREM.

     DRUGIM CELEM JEST SWOBODNE ROZSZERZANIE MOJEGO ŚWIATOPOGLĄDU,
       WIEDZY I UMIEJĘTNOŚCI W CELU NOWYCH, REWELACYJNYCH DOKONAŃ.

     BO CELEM SZPIEGOSTWA SYSTEMÓW KOMPUTEROWYCH JEST NAMIERZANIE I
    ELIMINACJA AMBITNYCH OSÓB. BO SPECJALNIACY WIEDZĄ, ŻE MYŚLENIE LUDZI
                                            IM ZAGRAŻA.

     TO JEST POWODEM CAŁEJ AWANTURY O BEZPIECZEŃSTWO I KONIECZNOŚCI
          SKRYTEJ PRACY I KONIECZNOŚCI PROWADZENIA SKRYTEGO ŻYCIA.

Praca z komputerem ma za zadanie automatyzację czynności. Dlatego praca z
Linuksem wymaga umiejętności programowania skryptów w Baszu.

    WSZYSTKIE PONIŻSZE SKRYPTY ZAPROGRAMOWAŁEM I ONE DZIAŁAJĄ - więc ta
                  monografia to nie żadne wzięte z sufitu filozofowanie.

                    Pamiętaj: JA CI SPRZEDAJĘ WIEDZĘ, A NIE SKRYPTY.

W tym dokumencie pokazuję wszystkie polecenia na jakich należy oprzeć te
skrypty.      Jednak     składni     powłoki      Basz    nie   uczę.     Nie   uczę     też   zasad
proceduralnego programowania - bo Basz to skryptowy język proceduralny.

    Poniższe skrypty powinny być tajnym skarbem każdego użytkownika systemu
                                               Linuks.




8    Miałem przypadek gdy dodałem do czytnika Akregator adres pliku RSS radzieckiej agencji
     tass.com . Wtedy wystarczyło jedno-jedyne wejście na adres artykułu tej agencji przez przeglądarkę
     Firefox (i to uruchomionej w piaskownicy Firejail) i jeszcze tego samego dnia miałem email z
     zaproszeniem na "randkę z ruską diewuszką".

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
 PO ZA SKRYPTAMI JAKIE MAJĄ CZYŚCIĆ SYSTEM WSZYSTKIE SKRYPTY ODPALAM
           RĘCZNIE I OBSERWUJĘ CZY NAPOTYKAJĄ JAKIEŚ PROBLEMY.

Wynika to z faktu, że w tych gratisowych systemach Linuks na codzień cuda się dzieją
i niemożna samemu przewidzieć wszystkich możliwych problemów.

Proponuję zakodować następujące skrypty:

1.3.1 Skrypty konfiguracyjne uruchamiane po instalacji systemu
   1. Konf. Basza: konfiguracja plików $HOME/.profile , $HOME/.bash_aliases ,
      $HOME/.bashrc ;

   2. Tworzenie linków symbolicznych w kat. $HOME/bin do własnych skryptów.

   3. Konf. kart sieciowych;

   4. Konf. bramy sieciowej UFW;

   5. Konf. piaskownicy Firejail.

1.3.2 Skrypt czyszczący uruchamiany przed uśpieniem, przed
restartem i przed zalogowaniem
Skrypt ten ma czyścić:

   1. Zbędne katalogi systemowe (np. pliki kalendarzy, /var/cache, /var/lib/journal,
      lost+found i wiele innych);

   2. Zbędne pliki systemowe (np. pliki Microsoftu, pliki Google, Amejzon, pliki swap,
      hist, cache);

   3. Zbędne pliki użytkownika (.bash_history, .python_history, .recently-used, hist,
      cache i wiele innych);

   4. Konf. zaporę UFW do ustawień minimalnych. Robi się to po to, by po ostatniej
      sesji z systemem Linuks nie zostawić przez pomyłkę odblokowanych adresów
      wychodzących.

1.3.3 Skrypt aktualizacyjny
             Jak chcesz mieć kłopoty to możesz aktualizować system.

Ja osobiście w ciągu 25 lat NIE SPOTKAŁEM SIĘ Z ANI JEDNĄ aktualizacją
oprogramowania która by wnosiła coś pozytywnego. A wręcz przeciwnie po
aktualizacji zwykle pojawiały się nowe problemy.



          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   Dlatego poniższy skrypt powinien być uruchamiany tylko raz po instalacji
                                    nowego systemu.

Skrypt aktualizacyjny powinien:

   1. Wyłączać aktualizację kernela Linuks;

   2. Wyłączać konsolę dla nowych użytkowników;

   3. Aktualizować pakiety;

   4. Instalować pakiety potrzebne wszystkim użytkownikom;

   5. Instalować pakiety potrzebne programistom (w razie potrzeby);

   6. Usuwać zbędne pakiety;

   7. Usuwać "Portfel KDE" - obecnie już nie jest to możliwe bo latem 2022 na
      dystrybucji Kubuntu 20.04 LTS przewalono cały kod KDE w celu zlinkowania
      wszystkich popularnych programów KDE do "Portfela KDE". Tak więc
      praktycznie   jest   pewne,    że   ten   "Portfel   KDE"    to   trojan.    Jedynym
      zabezpieczeniem przed takim hamstwem jest całkowita blokada ruchu
      wychodzącego.

Niestety mi to szambo wjechało do mojego systemu wraz z aktualizacją systemu
                            - bo wtedy jeszcze ją robiłem.

   8. Usuwać pakiety zainstalowane przez inne pakiety i już niepotrzebne;

   9. Usuwać nie potrzebnie zainstalowane pakiety przez inne pakiety. Robi to
      polecenie:

      sudo aptitude -y -o Aptitude::Delete-Unused=1 install

      Taka jest teoria. Tak na prawdę aktualizuje ona kernel Linuks.

   10.Wyłączenie zbędnych demonów. np. na stacji roboczej można spokojnie wył.
      sshd.service .

   11.Wyłączać oficjalne szpiegostwo Ubuntu;

   12.Występować ze zbędnych grup (z grup do usunięcia);

   13.Usuwać zbędnych użytkowników;

   14.Usuwać zbędne grupy użytkowników;

   15.Naprawiać prawa dostępu dla użytkownika root i pozostałych użytkowników;



          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
    16.Usuwać pliki bez właściciela;

    17.Usuwać wiszące linki symboliczne;

    18.Konfigurować piaskownicę Firejail.

1.3.4 Uwagi do skryptu konf. bramy sieciowej UFW
Jest to najważniejszy skrypt w zestawie skryptów użytkownika systemu Linuks.

Ten skrypt należy tak zaprogramować aby:

    1. Domyślnie blokował cały ruch przychodzący;

    2. Domyślnie blokował cały ruch wychodzący;

    3. Standardowo odblokowywał listę adresów jakie są niezbędne do normalnego
       działania: OpenDNS, serwery z paczkami deb od Ubuntu, serwery whois 9,
       duckduckgo.com albo wikipedia.

    4. Na żądanie - po podaniu parametru lub listy parametrów - odblokowywał listy
       adresów jakie są nam konieczne do konkretnych zadań. Np. do poczty el. lub
       do poszukiwania pracy;

    5. Niestety listy odblokowywanych adresów będzie trzeba ciągle aktualizować.
       Dlatego ja osobiście pcham co mogę na sprytny tel. ze skompromitowanym
       systemem Android.




9   We wrze. 2022 na Kubuntu 20.04 LTS zmieniono kod whois tak by korzystał on z chmury Amejzon
    przez co programik whois jest już nie do użytku. Niestety to szambo wjechało do mojego systemu
    gdy przeinstalowałem whois gdy chwilowo nie chciał mi działać. Teraz pozostają jedynie wersje na
    skompromitowany system Android.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
2 Mechanizmy bezpieczeństwa w
systemie Linuks
W systemie Linuks można wyróżnić hierarchię ograniczeń jakie można nakładać na
użytkowników i na uruchamiane programy:

   1. Partycje, plik /etc/fstab: umożliwia zezwolenie użytkownikom na montowanie
      partycji w systemie plików, umożliwia blokowanie uruchamiania programów i
      skryptów, umożliwia blokowanie tworzenia urządzeń blokowych, wyłączenie
      aktualizacji czasu dostępu do kat. i plików;

   2. System plików atrybuty drwxrwxrwx: umożliwiają nadawanie praw odczytu,
      zapisu i wykonania na plikach i katalogach. Podział uprawnień jest
      trójstopniowy: właściciel, grupa i inni.

   3. Piaskownica firejail: Umożliwia ograniczenie dostępu do kat. i plików dla
      danego programu uruchamianego przez użytkownika.


2.1 Logiczny podział dysku twardego: partycje
Dysk komputerowy, HDD, SSD lub NVM, wygodnie jest podzielić na mniejsze, logiczne
części i wykorzystywać je do różnych celów.

              Wydzieloną, logiczną część dysku nazywamy partycją.

Dzięki temu można zainstalować wiele systemów operacyjnych na jednym
komputerze.

Okazuje się, że z punktu widzenia bezpieczeństwa warto mieć specjalne partycje do
konfiguracji i kontroli maks. wielkości niektórych wrażliwych katalogów: np. /tmp ,
/var/tmp , /var/log . Jak to zrobić opisałem poniżej.

2.1.1 Plik /etc/fstab
Plik /etc/fstab definiuje punkty montowania napędów w systemie Linuks.

   Napędy pojawiają się w systemie jako pliki w kat. /dev jako pliki natomiast
   dostęp do ich zawartości uzyskuję dopiero gdy je zamontuję je do jakiegoś
                            katalogu w systemie plików.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Ten katalog wcześniej nawet nie musi być pusty. Montowanie napędów omówimy na
poniższym przykładzie. Wybrałem go bo do montowania tej partycji używałem kilka
niestandardowych opcji.

UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /var/tmp                            ext2
defaults,noexec,nosuid,nodev        0       2

   1. Pierwsze pole to nazwa urządzenia lub adres sieciowy dysku. Normalnie
      (czytaj: w dawnych czasach) w tym miejscu pojawiało się urządzenie z kat. /dev
      (np.: /dev/hda1 ). Jednak gdy chce się użyć różnych opcji dla różnych dysków
      które mogą pojawić się w systemie w tym samym pliku w kat. /dev stosuje się
      identyfikatory UUID lub LABEL . LABEL to znana z DOS etykieta partycji.
      Natomiast UUID to wynalazek Linuks który jest rodzajem sumy kontrolnej
      identyfikującej jednoznacznie daną partycję. Stosowanie LABEL lub UUID daje
      nam możliwość stosowania dokładnie określonych opcji montownia dla
      określonych partycji podłączanych do komputera z Linuks.

   2. Druga opcja to kat. montowania w systemie plików. Tutaj jest to /var/tmp .

   3. Trzecia opcja to system plików. Tutaj jest to ext2. ext2 nie ma dziennika zmian
      na dysku, co oznacza, że powinien działać szybciej niż nowsze systemy plików.
      Ja go stosuję wszędzie tam, gdzie dane się nie zmieniają lub ich utrata nie ma
      znaczenia.

   4. Czwarta opcja to zbiór flag montowania. Tu są to flagi: domyślna, zakaz
      uruchamiania programów z tej partycji, zakaz uruchamiania programów z
      uprawnieniami roota i brak urządzeń (blokowych ani znakowych) w systemie
      plików tej partycji.

   5. Piąta opcja jest przeznaczona dla programu kopi zapasowej i określa czy ma
      być robiona kopia tej partycji (1) czy nie (0). Tu zaznaczono, że nie ma podlegać
      archiwizacji.

   6. Szósta opcja określa czy system plików tej partycji ma być spr. w trakcie
      uruchamiania systemu operacyjnego. Dla partycji montowanej w korzeniu,
      czyli w katalogu / powinna to być wartość 1. Natomiast dla pozostałych partycji
      2. W dokumentacji nie podano uzasadnienia tej numerologii liczb magicznych.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
2.2 Użytkownicy w systemie Linuks
    Główny podział użytkowników w Linuks to: root (czyli super użytkownik) i
                                         użytkownicy.

Zasada jest taka: root może wszystko, użytkownicy mogą tylko tyle by móc normalnie
pracować.

W praktyce dziś nie pracuje się na koncie root. Zamiast tego korzysta się z kont jakie
należą do grupy sudo.

Polecenie sudo pozwala na wykonanie polecenia z prawem root-a. Najczęściej są
     to polecenia dotyczące instalacji programów z sieciowych repozytoriów
    poleceniami APT. Oprócz tego my tutaj będziemy intensywnie korzystać z
    polecenia sudo do wprowadzania zmian w ustawieniach systemu Linuks.

Użytkownicy w systemie Linuks należą do grup użytkowników. Daje to im różne
przywileje. Np. dostęp do CD-ROM, używania polecenia sudo, kontroli drukarki czy
możliwość montowania dysków lokalnych albo katalogów sieciowych10.


2.3 System uprawnień w systemie Linuks
Linuks na poziomie katalogów i plików rozróżnia 3 grupy uprawnień:

   ● Użytkownik (po ang.: user);

   ● Grupy do których należy właściciel (po ang.: group);

   ● Pozostali użytkownicy systemu (po ang.: others) należący do grup do jakich nie
       należy właściciel.

Każda z tych grup ma 3 stopnie dostępu:

   ● Odczyt (po ang.: read, w skrócie r);

   ● Zapis (po ang.: write, w skrócie w);

   ● Wykonanie (po ang.: execute, w skrócie x): dla plików oznacza możliwość
       uruchomienia takiego pliku (z programem lub skryptem)

            Flaga wykonania ma inne znaczenie dla pliku i dla katalogu.




10 W Linuks można montować katalogi sieciowe tak jak dyski twarde. Jest to możliwe dzięki temu, że
   Linuks obsługuje masę popularnych protokołów sieciowych takich jak: FTP, SMB (znany z
   Windows) oraz NFS (sieci Uniks).

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
      W przypadku katalogu sama flaga odczytu wystarczy do odczytu zawartości
      katalogu, ale bez metadanych plików11. Do ich odczytu konieczna jest flaga
      wykonania.

Dodatkowo katalogi mają ustawioną flagę d.

Jakie są prawa dostępu do pliku dowiesz się dzięki poleceniu ls, np:

$ ls -al /home
razem 28
drwxr-xr-x 4 root                  root               4096 paź 11 18:28 .
drwxr-xr-x 20 root                 root               4096 lip 18 2017 ..
drwx------ 57 energokoder          energokoder        4096 sty 30 08:02
energokoder
drwx------ 2 root                  root              16384 gru 19      2019
lost+found

Domyślnie prawa dostępu do katalogu domowego są takie:

drwxr-xr-x

Tak więc domyślnie katalog domowy (czytając od lewej):

   ● Jest katalogiem: flaga d;

   ● Właściciel może odczytać, zapisać i uruchomić w nim aplikacje: rwx;

   ● Grupa może odczytywać i wykonywać programy prywatne: r-x;

   ● Pozostali mogą odczytywać i wykonywać programy prywatne: r-x;

    Takie prawa są złe, bo umożliwiają pełen wgląd w katalog domowy innym
  użytkownikom (nie tylko z grup do których należysz ale wszystkim w twoim
                                        systemie).

Jak zgaduję pretekstem dla którego takie prawa są nadawane katalogom domowym
jest scenariusz w którym ktoś chce udostępnić jakiś podkatalog ze swojego katalogu
domowego innym użytkownikom swojego komputera lub w sieci lokalnej. Tylko, że
nikt w domu tego nie robi, bo to wymaga wiedzy o konfiguracji demonów sieciowych
(FTP, SMB lub NFS albo innych), bo te demony odpowiadają za udostępnianie plików i
katalogów.




11 Metadane to dane opisujące dane. Np. w przypadku pliku są to: uprawnienia, wielkość, daty
   utworzenia, zmiany i dostępu.

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Dlatego domyślne prawa należy zaostrzyć. Jak widać ja już to zrobiłem bo prawa
dostępu do mojego katalogu domowego (/home/energokoder) to drwx------, czyli ja i
root mamy pełen dostęp, a reszta żaden. Jak to zrobić podam niżej.


2.4 Piaskownice
Domyślny system praw dostępu w Linuks powoduje, że program uruchomiony przez
użytkownika ma pełen dostęp do jego katalogu domowego. Nie trzeba być wielkim
fatalistą by wyobrazić sobie wysyłanie listy prywatnych plików użytkowników z
możliwością pobierania co ciekawszych z nich. Jest to wykonalne nawet dla stażysty
w dziale programistów.

Piaskownica umożliwia wydzielenie elementów systemu operacyjnego, które są
niezbędne do prawidłowego działania uruchamianej aplikacji. To znacznie zwiększa
możliwości kontroli i świadomość tego co (w najgorszym przypadku) może zrobić
podejrzany program.

Brzmi to pięknie, ale:

     Profile piaskownicy trzeba dostosowywać do zmieniających się aplikacji.

               Trzeba tworzyć brakujące profile dla nowych aplikacji.

               To wszystko denerwuje i spowalnia pracę z systemem.

2.4.1 AppArmor
AppArmor pozwala zaostrzyć prawa dostępu dla konkretnych programów. Można
dokładnie określić do jakich konkretnie katalogów i plików program ma dostęp.

Prawa dostępu określa dla każdej aplikacji specjalny plik profilu AppArmor. Dostępne
są takie pliki zprofilami dla popularnych programów.

2.4.2 Snap
Snap jest to system pakietów firmy Canonical12 z programami dla Linuks. System
obejmuje też dystrybucję paczek Snap w sieci Internet. Oficjalnie paczki Snap
powstały by wprowadzić w Linuks zunifikowany format paczek - wspólny dla wielu
dystrybucji. Wymaga to dodawania do paczki części bibliotek z jakich ona korzysta.
Dodatkowo wmawia się ludziom, że paczki Snap są bezpieczniejsze, bo aplikacje
działają w piaskownicy.

Wewnętrznie piaskownice Snap są oparte na profilach AppArmor.
12 Wydawcy całej rodziny dystrybucji Ubuntu.

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
 Dużą wadą paczek Snap jest fakt, że to czego wymaga program deklaruje sam
       wydawca paczki. W praktyce dostawcy oprogramowania w paczkach Snap
             żądają pełnego dostępu do katalogu domowego użytkownika.

             W POWAŻNYCH ZASTOSOWANIACH JEST TO NIE DO PRZYJĘCIA!!!

                  Z paczkami Flatpack13 jest prawdopodobnie tak samo.

                DLATEGO SAM NIE UŻYWAM PACZEK SNAP ANI FLATPACK.

W systemie Debian możesz system Snap zainstalować poleceniem:

sudo apt install snapd
sudo snap refresh

W systemach Ubuntu i pochodnych Snap jest zainstalowany domyślnie.

2.4.3 AppImage
To popularne paczki z programami które nie wymagają instalacji i działają w trybie: 1
paczka to 1 aplikacja. By uruchamiać je w piaskownicy należy używać profili firejail.

2.4.4 Firejail
Jest    to    piaskownica    do   kontroli   oprogramowania       instalowanego        z   paczek
dostarczanych w ramach dystrybucji, w naszym przypadku to pliki deb, oraz paczek
AppImage.

             Firejail nie zadziała z programami instalowanymi z paczek Snap.

Podobnie jak AppArmor Firejail jest oparty na profilach uprawnień dla każdej
wspieranej aplikacji z osobna. Dostępne są takie pliki dla popularnych programów.

Firejail wymaga użycia polecenia konfigurującego system oraz katalog użytkownika.

Konfiguracja      systemu     polega   na    utworzeniu    linków   symbolicznych          w   kat.
/usr/local/bin z nazwami programów jakie maja działać w piaskownicy firejail.
Wszystkie te linki wskazują na /usr/bin/firejail .

Trik polega na tym, że jak wpisuje się skrócone polecenie (bez pełnej ścieżki), to
programy umieszczone /usr/local/bin mają priorytet nad tymi z /usr/bin .

Konfiguracja katalogu użytkownika polega na modyfikacji plików *.desktop14 tak by
używały one skróconych poleceń, czyli bez ścieżki /usr/bin .


13 Alternatywa dla Snap od firmy RedHat.
14 I paru innych.

              Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
W katalogu /etc/firejail znajdują się profile programów.

W Debian pojawia się problem starych profili. Dlatego zdarza się też że profile są nie
aktualne i nie działają programy do jakich są one przypisane. Zdarza się, że do
nowych programów nie ma profili. Ale jest na to sposób! Repozytorium kodu
źródłowego Firejail na github.com!

https://github.com/netblue30/firejail/tree/master/etc/profile-a-l

https://github.com/netblue30/firejail/tree/master/etc/profile-m-z

Na tych stronach należy szukać aktualnych i brakujących profili. Należy je po prostu
ściągnąć na dysk i skopiować do podanego wyżej katalogu.

Jednak nawet gdy nie ma profili dla danego programu, a jest potrzeba by go jakoś
ograniczyć, to można bardzo łatwo stworzyć odpowiedni profil firejail. Niżej pokażę
jak to zrobić.




           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
3 Budowa sieci Internet
    Cała sieć Internet (czyli ziemska komputerowa sieć globalna) działa dzięki
               komputerom z systemem rodziny Uniks (w tym Linuks).

  Internet został stworzony jako sieć dla systemów Uniks (podobnie jak język C
               został stworzony do zaprogramowania tych systemów).


3.1 Struktura sieci Internet
Obecnie sieć Internet jest podzielona na 3 obszary: sieć lokalna, Internet IPv4 i
Internet IPv6. Bezpośrednia komunikacja między tymi sieciami jest niemożliwa.
Ale istnieją usługi pośredniczące umożliwiające wymianę danych między tymi
sieciami.

Sieć IPv4 wykorzystuje liczby 32 bitowe do numerowania urządzeń w tej sieci. Czyli
może ich być 4G (czyli 4*1024*1024*1024 lub 256 do potęgi 4).

Sieć IPv6 wykorzystuje liczby 128 bitowe do numerowania urządzeń sieciowych. Czyli
może być ich 255 do potęgi 16.

      Wydaje się, że ślamazarne wprowadzanie IPv6 wynika z niemożliwości
   zapamiętania 128 bitowych adresów przez osoby zatrudniane przez agendy
                                         rządowe.


3.2 Protokoły w sieci Internet
3.2.1 Protokół IP15
IP jest protokołem bezpołączeniowym, przesyłającym paczki danych między
punktami w sieci Internet. IP nie przejmuje się zagubionymi pakietami. W wersji
IPv4 ma sumę kontrolną, a w wersji IPv6 jej nie ma. Wynika to z wiary w znaczną
poprawę jakości kabli sieciowych od lat 70. XXw.

Z protokołu IP nie korzysta się bezpośrednio. Jest on używany do przenoszenia
pakietów protokołów UDP i TCP.




15 po ang.: Internet Protocol

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
3.2.2 Protokół UDP16
Protokół UDP jest przesyłany paczkami IP. UDP jest protokołem bezpołączeniowym.
UDP dodaje informacje o numerze portu. UDP nie gwarantuje kolejności ani
poprawności pakietów.

Z UDP korzysta się do implementacji usług sieciowych w których wydajność jest
ważniejsza niż poprawność. Są to usługi typu RIP (trasowanie pakietów w Internecie),
DNS (mapowanie nazw domenowych na adresy IP), NTP (synchronizowanie czasu z
zegarem atomowym), DHCP (automatyczne przydzielanie adresów IP w sieciach
lokalnych), strumieniowanie dźwięku i filmów w sieci Internet.

3.2.3 Protokół TCP17
TCP jest przesyłany paczkami IP. TCP jest protokołem połączeniowym. TCP dodaje
informacje o numerze portu. TCP gwarantuje prawidłową kolejność pakietów i ich
poprawność18.

Najbardziej widocznym zastosowaniem protokołu TCP jest protokół HTTP(S) do
przesyłania plików HTML oraz plików pomocniczych19.


3.3 Sieć lokalna
Sieć lokalną fizycznie tworzy router z portami LAN (kable) i antenami WLAN (fale
radiowe). Sieć ta wykorzystuje specjalnie zarezerwowane adresy IPv420 lub/i IPv6:

Dla porządku wymienię tu pule adresów prywatnych przeznaczonych dla prywatnych
sieci IPv4 i IPv6:




16   po ang.: User Datagram Protocol. Jak widać zupełnie nonsensowna nazwa.
17   po ang.: Transmission Control Protocol. Jak widać zupełnie nonsensowna nazwa.
18   W razie potrzeby ponawia transmisję uszkodzonego lub utraconego pakietu.
19   Te pliki pomocnicze, to: skrypty Jawa Z Krypt, style CSS, obrazy, muzyka i filmy.
20   Jeśli chodzi o prywatne adresy IPv4, to stanowią one relikt dawnych czasów gdy wszystkie adresy
     IPv4 były podzielone na klasy.

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
IP                     Sieć                 Maska sieci          Maks. liczba kompów
v4 10.0.0.0 – 10.255.255.255              255.0.0.0          24 bity = 16M

v4 172.16.0.0 – 172.31.255.255            255.240.0.0        20 bitów = 1M

v4 192.168.0.0 – 192.168.255.255          255.255.0.0        16 bitów = 64K

v6 fd00::/8                                                  64 bity = 4G do potęgi 2
      Komputer może należeć do wielu sieci lokalnych jednocześnie oraz może
     jednocześnie mieć wiele adresów IP21 zarówno lokalnych jak i publicznych.

Np. sprytny telefon może mieć publiczny adres IP przydzielony przez operatora
telefonii cyfrowej, a dodatkowo może być połączony w lokalnej sieci WiFi i mieć
przydzielony adres IP w sieci lokalnej. W tym przypadku są to 2 różne karty sieciowe.


3.4 NAT czyli lokalna brama do Internet
By dostać dostęp do globalnej sieci komputerowej (czyli do Internet) potrzebny jest
komputer z funkcją NAT. Tą funkcję pełni router w którym działa okrojony Linux. On
jest pośrednikiem który „udaje”, że to on wysyła zapytania do serwerów jakie
wywołujesz, a odebrane dane przekazuje do twojego kompa w sieci lokalnej.

 Mówi się, że „router tuneluje połączenia z komputerów z sieci lokalnej do sieci
                                          Internet”.

Aby w ogóle się móc połączyć z Internet trzeba mieć włączoną na routerze usługę
DHCP lub samodzielnie poprzydzielać statyczne adresy IP urządzeniom w sieci
lokalnej. Czasem ręczne przydzielanie statycznych adresów IP jest konieczne: np. w
przypadku serwerów i drukarek. Można to zrobić na 2 sposoby:

     1. Ustawić ręcznie adresy IP na każdym z komputerów w sieci lokalnej;

     2. W routerze, w konfiguracji DHCP zdefiniować jakie adresy IP przydzielać
        adresom MAC.

 Pamiętaj, by ustawić w routerze zakres adresów używanych przez DHCP, tak by
 nie kolidował on z adresami statycznymi IP jakie nadałeś twoim urządzeniom.

Znacznie lepiej samemu ponadawać adresy IP swoim urządzeniom w cieci, gdyż w
takim przypadku masz kontrolę nad symboliką liczb (przynajmniej w końcówkach tych
adresów).


21 I to na tej samej karcie sieciowej.

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
3.5 Sieć globalna, czyli Internet
W sieci globalnej IPv4 jest podzbiorem IPv6

W praktyce komputery w sieci Internet dzielą się na 3 grupy:

   ● Routery: one spinają całą sieć. One tworzą graf z cyklami 22. To powoduje, że
       sieć jest odporna na awarie. Bo gdy zostanie przerwana jedna linia to ruch
       może zostać skierowany inną;

   ● Serwery: one świadczą usługi z jakich się najczęściej korzysta. One są
       najbardziej widoczne dla ludzi;

   ● Pozostałe: Mogą to być zwykłe stacje robocze albo np. telefony z dostępem do
       Internet. Mogą to też być proste mikrokontrolery z czujnikami lub różne
       sterowniki.

Praktycznie cały Internet jest oparty o kable.

Tylko punkty dostępowe tej sieci bywają bezprzewodowe. Czyli to, że wysyłasz list
elektroniczny z komputera w sieci lokalnej przez WiFi, albo ze „sprytnego telefonu”, to
i tak przy najbliższej okazji jest on pchany w kabel i leci w ziemi do odbiorcy. I nie ma
tu znaczenia, że ten odbiorca też może mieć WiFi czy „sprytny telefon” połączone z
siecią radiowo.

Niektórzy nawet dziś wierzą, że telefon komórkowy wykorzystuje satelity. Ale to
                             jest całkowity nonsens i głupota23.




22 Oczywiście dba się o to by pakiety nie krążyły w cyklach, tylko by wędrowały po ścieżkach w tym
   grafie.
23 Są specjalne terminale udostępniające Internet przez sieć sztucznych satelit ziemskich (obecnie
   chyba wyłącznie są to sieci stara - Iridium i nowa - Starlink). Ale to odpowiednio kosztuje i jest
   jasno podane, że to usługa satelitarna.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
4 Bezpieczeństwo w sieci lokalnej
Ideałem było by mieć pewność, że nikt poza mną nie ma dostępu do urządzeń w
mojej sieci lokalnej. Jednak w praktyce jest to niewykonalne. Dlatego trzeba założyć,
że w sieci są 2 rodzaje urządzeń:

   1. Urządzenia skompromitowane - pod obcą kontrolą. Do nich zaliczamy: router
      jakiego sam nie postawiłem tylko kupiłem, drukarki, sprytne telewizory,
      sprytne tel., tablety i sprytne zegarki;

   2. Urządzenia zabezpieczone - to serwery i stacje robocze jakie samodzielnie
      postawiłem, skonfigurowałem i jakie nie zdradzają oznak penetracji - czyli na
      których pracuje się normalnie.

Ja używam sieci Internet od pocz. 2002r. I muszę stwierdzić, że strony ładują mi się
jednakowo    powolnie    mimo       kilkukrotnego   zmieniania   operatora    i    medium.
Dodatkowo nie widzę powodu by mieć 2 abonamenty na Internet - jeden w sprytnym
telefonie a drugi w sieci domowej.


4.1 Sprytny tel. jako klient usługi Internet i brama na
świat
Używam sprytnego tel. jako bramy do Internet. Do zestawu dokupiłem router Wi-Fi
z funkcją rozszerzania zasięgu. Dzięki temu routerowi mam sieć lokalną nawet bez
włączonego hotspot w sprytnym tel. Oczywiście bez hotspot sieć może działać tylko
dzięki statycznym IP jakie ponadawałem moim urządzeniom.

Tak więc przyjąłem taki model mojej sieci lokalnej:




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
                                        Stacja          Drukarka
                         Serwer
                                       Robocza          I Skaner
                                      Router Wi-Fi




                                      Sprytny Tel.




                                           Świat




W tym układzie mój sprytny tel. jest bramą do Internet dla urządzeń z mojej sieci
lokalnej, ale nie tylko. Do sprytnego tel. wpakowałem wszystkie podejrzane aplikacje
konieczne do komunikacji ze światem zewnętrznym i wszystko co konieczne do
zdobywania informacji z Internet. Czyli oprócz f. sprytnego tel. mam w nim klienta
poczty el. przeglądarkę Tor i Chrome, czytnik RSS i inne przydatne aplikacje.

Powiem więcej: Gdy telefon obsługuje MHL to można go normalnie podłączyć do
monitora i klawiatury i używać jak dodatkowego komputera przeznaczonego do
przeglądania sieci i komunikującego mnie ze światem.

Możesz zadać pyt.: Co w sytuacji gdy coś chcę pobrać z Internet? Oto możliwości:

   1. Podłączenie kabla przez USB i ściągnięcie danych programem adb. adb pull
      odpowiada za pobieranie danych z tel. a adb push za wysyłanie danych na tel.



          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
       Użycie adb wymaga włączenia trybu programisty w Android. adb może działać
       też przez Wi-Fi, ale ja tego nie próbowałem.

   2. Można kupić kartę MicroSD i ręcznie ją przenosić między sprytnym tel. a komp.

   3. Można odblokować sobie adres IP w zaporze sieciowej Linuks, przepisać adres
       domenowy z tel. i podać go w poleceniu wget(2).


4.2 Serwer i stacja robocza w sieci lokalnej
Ponieważ chcę spokojnie pracować na moich komputerach, to:

   1. Instaluję i włączam zaporę sieciową ufw;

   2. Konfiguruję ufw tak by domyślnie blokował cały ruch przychodzący i
       wychodzący.

   3. Odblokowuję możliwość łączenia z serwerem w mojej sieci;

   4. Odblokowuję w ufw możliwość łączenia się z serwerami OpenDNS24 przez
       protokół UDP.

Odblokowuję możliwość łączenia z wybranymi adresami IP (poł. wychodzące):

   5. Odblokowuję możliwość łączenia z serwerami używanymi przez program
       whois;

   6. Odblokowuję możliwość łączenia z serwerami ze zdalnymi repozytoriami
       pakietów;

   7. Odblokowuję możliwość łączenia z serwerami poczty el.;

   8. Odblokowuję możliwość łączenia z serwerami Google i duckduckgo.com;

   9. Odblokowuję możliwość łączenia z serwerami Wikipedia;

Jak to zrobić podam w odpowiednim momencie niżej.

Oczywiście wszystkie te czynności zakodowałem sobie w formie skryptu by nie
wklepywać tego wszystkiego za każdym razem po instalacji systemu. Z resztą to
niemożliwe bo lista IP serwerów Google jest zbyt długa by ręcznie ją wklepywać.

Od kiedy tak mam skonfigurowaną sieć ilość nienormalnych incydentów spadła
                                            do zera.

  Jedynym objawem intruza jest wchodzenie na obroty wentylatora w laptopie.


24 https://pl.wikipedia.org/wiki/OpenDNS , dostęp 2022-09-04

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906461
Author: Jacek Marcin Jaworski
Date: Mon, 19 Sep 2022 14:50
998 lines
39357 bytes
5 Przygotowanie do instalacji Linuks
Aby w ogóle mieć Linuks musisz pobrać najpierw program instalacyjny w postaci
obrazu ISO. Ten plik następnie trzeba zweryfikować i nagrać na pamięć USB25. Podam
tu instrukcje jak to zrobić:


5.1 Jaką dystrybucję wybrać?
5.1.1 Wybierz dystrybucję pozwalającą na instalację bez dostępu do
Internet
System podczas instalacji jest bezbronny.

 Podłączanie komputera do sieci podczas instalacji i późniejsze zabezpieczanie
                                 nie ma żadnego sensu.

5.1.2 Są dystrybucje bez zamkniętych pakietów - ale czy warto je
instalować?
FSF rozróżnia całkowicie wolne dystrybucje od tych co dodają pakiety z zamkniętym
oprogramowaniem26.

  Zamknięte oprogramowanie dotyczy nawet samego kernela Linuks - do jego
                   pakietów pakowane są np. binarne mikrokody.

Te mikrokody nabierają praktycznego znaczenia w momencie gdy trzeba skorzystać z
urządzeń które ich wymagają. Np. zdarzyło mi się, że nowo kupiony tuner TV ich
wymagał, co spowodowało konieczność przesiadki z w pełni wolnej i otwartej
dystrybucji Triksel na Kubuntu (parę miesięcy wcześniej z powodów czysto
ideologicznych przesiadłem się w drugą stronę).

Otwarte dystrybucje są wymienione na stronie: https://www.gnu.org/distros/free-
distros.html .

Natomiast uzasadnienie dla których inne popularne dystrybucje są uznawane za nie
w pełni wolne jest na stronie: https://www.gnu.org/distros/common-distros.html .




25 po ang.: pendirve lub usb stick lub usb flash memory
26 Zamknięte oprogramowanie to oprogramowanie do którego kody źródłowe nie są dostępne.

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
5.1.3 Nie wybieraj Debiana jak nie musisz
Można też by użyć Debian-a bez repozytoriów nonfree i contrib (bo zawierają
zamknięte oprogramowanie).

  Jednak to co się dzieje obecnie27 z dystrybucją Debian to kara dla wszystkich
                             potencjalnych użytkowników.

Dystrybucje Debian w 2020r. była pogrążona w świecie staroci które wcale nie są
bardziej stabilne niż u konkurencji. W Debian-ie stare pakiety z kompilatorami i ze
starymi     bibliotekami    uniemożliwiają      używanie     najnowszych      trików   oraz
uniemożliwiają użycie współczesnych wersji bibliotek np. Qt.

W Debianie 10.8 na pierwszej płycie instalacyjnej w ogóle nie ma zapory
sieciowej UFW!!! Tak więc albo pobierzesz więcej obrazów, albo zaufasz całemu
Internet zanim nie zainstalujesz ufw z sieciowych repo!

Psucie sterowników NVidi. Pierwotnie (początkowe wersje serii 10.x) działał super
stabilnie, ale po którejś aktualizacji (w obrębie wersji 10.x) zaczął się wieszać kilka
razy dziennie. Całe szczęście, że menadżer okien sam się restartuje i system potrafi
bezboleśnie przetrwać taką zwiechę.

Migający menadżer okien KDE. Stwierdziłem to w maju 2022 gdy znowu
próbowałem Debian w wer. 11.3. Dzieje się to na laptopie z kartą Intel z procka Intel
i7 10510.

Trzeba jasno sobie powiedzieć, że praca z Debianem to koszmar w porównaniu z
                                         Ubuntu28.


5.2 Jak prawidłowo zainstalować Linuks mając tylko
skompromitowany system komputerowy
Jeśli do tej pory nie przejmowałeś się zabezpieczeniem swojego systemu
komputerowego, to możesz śmiało założyć, że jest on spenetrowany. Wtedy pojawia
się pytanie: czy mając taki skompromitowany system można postawić nowy
zabezpieczony? Tak! Jednak trzeba postępować w sposób logiczny eliminując
możliwość modyfikacji instalki dystrybucji przez intruza. To oznacza:

   1. Ściągnięcie instalki dystrybucji Linuks (pliku ISO);


27 Mówię o latach 2019-2022.
28 Wiem co mówię, bo pracowałem zawodowo na Linuks Debian 8 godz. 5 dni w tygodniu przez
   kilkanaście miesięcy: od 2019.06 do 2020.12.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   2. Ściągnięcie   pliku   z    sumami   kontrolnymi    (koniecznymi     do   weryfikacji
      oryginalności pliku ISO;

   3. Odłączenie komputera od sieci;

   4. Spr. obrazu ISO;

   5. Nagranie obrazu ISO na USB;

   6. Spr. poprawności zapisu obrazu ISO na USB.

   7. BEZ WŁĄCZANIA SIECI uruchomić komputer z USB w celu instalacji Linuks.

Jak to wszystko zrobić podaję poniżej.


5.3 Pobieranie obrazu instalki Linuks
By pobrać instalkę Ubuntu:

wget https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-
amd64.iso

Oczywiście powinieneś pobrać aktualnie najnowsze wersje twojej ulubionej
dystrybucji Linuks (zamiast tych powyższych).

5.3.1 Pobranie sum kontrolnych
Generalnie sumy kontrolne są publikowane na serwerach w tych samych katalogach
w jakich są pliki obrazów ISO. Czasem trzeba trochę poklikać na stronie dystrybucji by
do nich dotrzeć.

5.3.2 Odłącz komputer od sieci
     Bardzo ważne jest by nikt nawet teoretycznie nie mógł zmodyfikować
        pobranego pliku ISO po jego weryfikacji ani po nagraniu na USB.



  W RAZIE GDYŚ POTRZEBOWAŁ JAKICHŚ PROGRAMÓW JAKIE TRZEBA POBRAĆ Z
   INTERNET W CELU SPR. I NAGRANIA PLIKU ISO NA USB, INSTALACJĘ LINUKS
                      POWINIENEŚ ZACZĄĆ OD TEGO MIEJSCA.

5.3.3 Spr. pobranego obrazu
Po pobraniu obrazu należy go spr.:

Ubuntu oferuje na swojej stronie gotowe polecenie. np.:


          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
echo
"b45165ed3cd437b9ffad02a2aad22a4ddc69162470e2622982889ce5826f6e3d
*ubuntu-20.04.1-desktop-amd64.iso" | shasum -a 256 --check

Można też to zrobić "normalnie":

sha256sum ubuntu-20.04.1-desktop-amd64.iso

I porównać wzrokowo wynik z zawartością pliku z sumami kontrolnymi.

5.3.4 Nagrywanie obrazu
Obraz z systemem należy nagrać na pamięć USB. Musi ona mieć co najmniej 4GB.
Płyty DVD dzisiaj już pomijamy (chociaż Debian ciągle je lubi).

Tu znowu musimy się trochę zastanowić. Czy użyć choinkowego i idiotoodpornego
Etcher-a? Czy może się wysilić, zaryzykować i użyć dd?

Odpowiedź to: dd.

Dlatego, że jest to program z otwartymi źródłami w które (teoretycznie) patrzyło wiele
osób pracujących przy różnych wielu dystrybucjach Linuks. Natomiast nikt nie wie co
siedzi w 100MB paczce Etcher. Dlatego dla świętego spokoju lepiej użyć dd.
Natomiast jeśli używasz Windows to raczej lepszego rozwiązania niż Etcher nie
znajdziesz… No ale w tym systemie ślepa wiara standardowo jest wymagana.

5.3.4.1      Rozpoznawanie napędów w Linuks
W Linuks początkujący mogą czuć się zakłopotani jak rozpoznać to gdzie jest
podpięta ich pamięć USB (na którą trzeba nagrać obraz ISO z instalką).

W Linuks standardowo dyski USB pojawiają się jako pliki w katalogu /dev w
momencie gdy je wtykasz do portu USB. Mają one nazwy sd* gdzie * to a, b, c itd.

Jednak w ten sam sposób są oznaczane są dyski SSD. Dlatego aby ustalić nazwę
pamięci USB należy:

   1. Wyjąć pamięć USB z portu USB (jeśli była włożona);

   2. Użyć polecenia:

      ls /dev/sd*
      ls: nie ma dostępu do '/dev/sd*': Nie ma takiego pliku ani
      katalogu

      Ja akurat mam inny dysk niż SSD, tak więc u mnie to polecenie zwraca błąd.

   3. Wpiąć pamięć USB i ponownie wywołać

          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
         ls /dev/sd*
         /dev/sda /dev/sda1

   4. Wtedy wpis którego wcześniej nie było będzie nazwą naszej pamięci USB.

Napędem (tu: pamięć USB) jest tylko wpis bez cyfry. Cyfry po nazwie dysku
oznaczają partycje29 jakie na nim się znajdują i może być ich wiele. Czyli w
powyższym przykładzie pamięcią USB jest /dev/sda i ma on jedną jedyną
partycję /dev/sda1 .

5.3.4.2       Zapis obrazu na pamięć USB
 JAK POMYLISZ NAPĘD SSD Z USB TO MOŻESZ SOBIE WYMAZAĆ DYSK ZE STARYM
         SYSTEMEM. TAK WIĘC SPR. 3x CZY ZAPISUJESZ OBRAZ NA PAMIĘĆ USB.

dd if=./ubuntu-20.04.1-desktop-amd64.iso of=/dev/sda bs=300M
status=progress

Za if= podajesz ścieżkę do pliku ISO, of= to pamięć USB na którą zapisujemy obraz,
bs= to wielkość pojedynczego kopiowanego pakietu, status=progress będzie
informował o postępie kopiowania.

5.3.4.3       Spr. poprawności zapisu na pamięć USB
Robimy to nietypowym wywołaniem polecenia shasum:

sudo shasum -a 256 /dev/sda1

Tu są ważne 2 sprawy:

   1. Ścieżka do nowo utworzonej partycji na pamięci USB.

   2. Algorytm użyty do wygenerowania sumy kontrolnej. Tu sha w wersji 256.

To kiedyś działało, ale obecnie (2022-09) wydawcy dystrybucji robią więcej
partycji i ja osobiście nie znam sposobu by uzyskać z nich sumę kontrolną taką
jaka powstaje przy spr. pliku ISO.


5.4 Uruchomienie instalki
Instalację należy rozpocząć w trybie próbnego uruchomienia Linuks30. W tym trybie
musimy przygotować się do instalacji przygotowując partycje i przygotowując silne
hasło.


29 Więcej o partycjach przy partycjonowaniu dysku.
30 po ang.: live mode

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
5.5 Partycjonowanie dysku
Partycje na dysku to podział dysku na logiczne części. Każdą taką część definiuje się
osobno i osobno na nich zakłada się system plików. Dopiero po podziale dysku na
partycje i po założeniu na nich systemów plików można dysk normalnie używać.

 Rozwój systemów plików ciągle trwa i wiąże się z nimi duże nadzieje głównie w
       zakresie bezpieczeństwa (szyfrowanie w locie, odporność na uszkodzenia
   nośnika, większa odporność na awarie zasilania) i wydajności (kompresja w
                                               locie).

Współczesne Linuks oferują wygodne programy do manipulacji partycjami np. w KDE
„Zarządzanie partycjami”, a w Gnome gparted.

Proponuję przygotować następujące partycje:

     Punkt                Rozmiar            Typ                      Przeznaczenie
   montowania
Bios Grub                    1MB               -         Program rozruchowy Grub.
                                                         Wymagana       do   uruchomienia
                                                         systemu z dyskami GPT na starych
                                                         komputerach z BIOS-em.
/efi                       300MB            Fat32        Firmware i program rozruchowy.
                                                         Wymagana         do    uruchomienia
                                                         systemu na nowych komputerach z
                                                         UEFI jaki jest następcą BIOS-u.
/boot                       2GB31            Ext2        Pliki z obrazami Linuks Kernel
                                                         Wymagana         do    uruchomienia
                                                         startych komputerów z dużymi
                                                         dyskami.
                                                         Zabezpiecza przed zapełnieniem
                                                         dysku przez zbyt dużo starych
                                                         Linuks Kernel.




31 Niektórzy zalecają wielkość partycji /boot na 100-300MB. Jednak to się nie sprawdza bo pliki kernel-
   a Linuks mają prawie po 100MB (2021-02). Wydawcy dystrybucji Linuks prawie co tydzień wydają
   nową wersję kernel-a. Normalnie powinni zostawiać tylko dwie wcześniejszw wersje (pierwszą
   opublikowaną i ostatnią działającą), jednak obecnie (2022-09) z nieznanych powodów zostawiają
   wiele starych wersji kernel-a. Stąd konieczne zabezpieczenie przed rozrostem katalogu /boot .

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
/tmp                       20GB32           Ext2       Pliki tymczasowe (domyślnie do 10
                                                       dni).
                                                       Zabezpiecza przed zapełnieniem
                                                       dysku przez zbyt duże pliki
                                                       tymczasowe.
/var/log                    2GB             Ext4       Pliki z logami.
                                                       Zabezpiecza przed zapełnieniem
                                                       dysku przez zbyt duże pliki z
                                                       logami.
/var/tmp                    20GB            Ext2       Pliki tymczasowe (domyślnie do 30
                                                       dni).
                                                       Zabezpiecza przed zapełnieniem
                                                       dysku przez zbyt duże pliki
                                                       tymczasowe.
/opt                        20GB            Ext2       Pakiety z oprogramowaniem firm 3.
                                                       Jak np. Google Chrome albo np.
                                                       sterowniki   urządzeń   drukująco-
                                                       skanujących Brother
                                                       Zabezpiecza przed zapełnieniem
                                                       dysku przez zbyt duże pakiety
                                                       nieznanych firm.
/usr/local                  20GB            Ext2       Własne       biblioteki  i   programy
                                                       budowane i instalowane poleceniem:
                                                       make -j8 && sudo make install . Tak
                                                       samo można instalować            cudze
                                                       biblioteki i programy ze źródeł.
                                                       Zabezpiecza przed zapełnieniem
                                                       dysku przez zbyt duże programy i
                                                       biblioteki nieznanych dostawców.
/                          100GB            Ext2       Kernel, programy            i   ustawienia
                                                       systemowe.
/home                     (reszta)          Ext4       Katalogi użytkowników.
       Współczesne komputery powinny mieć tyle pamięci RAM by nie było
                              konieczności włączania swap-a33.
32 W poradnikach WWW podają by partycje tmp miały po 2GB. Ja jednak już się naciąłem na takim
   sknerstwie: instalator Qt korzysta z katalogu tmp i dla niego 2GB to za mało. Wtedy ratunkiem była
   instalacja „na raty”. 20GB ma też korzystną symbolikę: „20 giba bytów”.
33 Partycja swap lub plik swap realizuje funkcję pamięci wirtualnej. Po prostu dysk pracuje wtedy
   jako przedłużenie pamięci RAM. Jest to ratunek dla systemu gdy programy zaczynają zajmować
   całą pamięć operacyjną. Innym rozwiązaniem jest ubijanie najzachłanniejszych procesów. Gdy
   zdarza się, że system bardzo zamula to znak, że włącza się swap. W takiej sytuacji należy dokupić

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
 Partycja swap może szybko zabić dysk SSD. Jest tak gdyż dyski SSD są pamięcią
   typu Flasz której cechą jest to, że ma ograniczoną liczbę zapisów i odczytów.

Powodem dla którego partycja Bios Grub nie ma typu jest to, że ona jest całkowicie
kontrolowana przez Grub i Linuks nic nie wie co na niej się dzieje.

Powodem dla którego partycja EFI ma typ Fat32 jest to, że jest to typ kompatybilny z
systemem plików EFI.

Powodem dla którego partycje / /boot /opt /usr/local /tmp /var/tmp mają typ EXT2
jest to, że:

   1. EXT2 nie obsługuje transakcji przy zapisie danych34;

   2. Obsługa transakcji przy zapisie spowalnia działania na plikach;

   3. Na partycjach / /boot /opt /usr/local normalnie nie dokonuje się zapisu;

   4. Na partycjach /tmp /var/tmp nie zapisuje się nic wartego ochrony
       transakcyjnej.

Na partycjach /var/log i /home zalecam używać Ext4 gdyż jest to najnowszy
sprawdzony, oficjalny system plików Linuks z transakcjami przy zapisie.

  Partycje można teoretycznie przesuwać. jednak z uwagi na wadliwe działanie
programów do edytowania partycji ta operacja nigdy się nie kończy - czyli nigdy
                                          się nie udaje.

 Tak więc polecenie przesuwania partycji jest równoznaczne z jej zniszczeniem.


5.6 Generowanie silnego hasła
Generalnie mamy 4 rodzaje haseł. Wymieńmy je wg stopnia komplikacji:

   1. Wyłącznie z małych lub wyłącznie z wielkich liter;

   2. Wyłącznie z małych lub wielkich liter;

   3. Wyłącznie z liter lub cyfr;

   4. Z dowolnych znaków drukowanych.

 Hasła o długości do 6 znaków są łatwe do złamania. Dlatego wszystkie piny nie
                            są dłuższe (ma to znaczenie dla służb).



   fizyczne rozszerzenie pamięci RAM.
34 po ang.: journaling

               Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Są w Linuks programy do generowania haseł: makepasswd, pwgen oraz bardziej
zaawansowany apg.

Instalują je polecenia:

sudo apt install makepasswd
sudo apt install pwgen
sudo apt install apg

W śród tych programów apg wyróżnia się tym, że domyślnie generuje hasła podobne
do angielskich słów. Przez co niektórym może być łatwiej je zapamiętać.

$ apg -m 12 -x 12
octyangyitDa
RyclacpesIl5
GimpitBogLux
lurAgzizamhy
VewedjitCet4
sasGentOicks

Jednak wydaje się, że opcja -a 1 generuje dużo silniejsze hasła, bo używa bardziej
różnorodnych kombinacji znaków.

$ apg -m 12 -x 12 -a 1
n9>H*nM1h}oO
Z.0m\#f<|JSJ
lWw*r}_Y9Ir5
w%:-PgrR=0Qs
ng,uD{O0jb<N
LXpzqE+=!>$_


   Oczywiście tych generatorów haseł możesz używać do generowania silnych
          haseł do wszystkich możliwych celów (szczególnie w Internet).

5.6.1 cracklib-check
   Mogło się zdarzyć, że nie skorzystałeś z generatora haseł tylko sam je sobie
          wymyśliłeś. W takim przypadku warto spr. jak hasło jest silne.

sudo apt install cracklib-runtime

     Zanim wywołasz polecenie sprawdzające twoje hasło zwróć uwagę by je
           rozpocząć spacją (poniżej jest ona zaznaczona na czerwono).


           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Polecenie poprzedzone spacją nie zostanie dodane do historii poleceń powłoki 35.

Teraz sprawdź swoje hasło poleceniem:

 echo "TWOJE HASŁO" | /usr/sbin/cracklib-check

Możesz w ten sposób sprawdzać wszelkie inne używane przez Ciebie hasła (np. hasła
do banków czy do sklepów Internet).

W konsoli, jeśli naciśniesz strzałkę w górę i zobaczysz polecenia spr. twoje hasła
oznacza to, że zostały dodane do historii. W takim przypadku powinieneś wyczyścić
historię konsoli wydając poniższe polecenia:

history -c
rm ~/.bash_history

5.6.2 John the Ripper
Po instalacji i konfiguracji systemu Linuks możesz od czasu do czasu sprawdzić siłę
haseł użytkowników w systemie programem John the Ripper. Ten łamacz haseł
działa na plikach z sumami obliczonymi z haseł (w przeciwieństwie do cracklib-check
który działał bezpośrednio na hasłach).

Oto polecenia instalujące tego krakera wraz ze słownikami (polskim oraz
amerykańskim):

sudo apt install john -y
sudo apt install wpolish

Aby sprawdzić siłę haseł w systemie należy skopiować plik z hasłami do katalogu tmp:

sudo /usr/sbin/unshadow /etc/passwd /etc/shadow >
/tmp/crack.password.db

A następnie uruchomić łamacza:

john /tmp/crack.password.db

Przy dobrych hasłach ten program nie powinien sam się zakończyć (powinien bez
końca analizować silne hasła).

Po tej operacji należy usunąć plik tymczasowy:

sudo rm -f /tmp/crack.password.db


35 Historia wydawanych poleceń znajduje się w pliku: $HOME/.bash_history .

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Tej   ostatniej    operacji     nie     można      zapomnieć,       gdyż     potencjalnie
/tmp/crack.password.db może być luką bezpieczeństwa.

5.6.3 Zmiana hasła
Jeśli kiedyś będziesz chciał zmienić swoje hasło w systemie użyj polecenia

passwd

Wtedy podaj stare hasło i 2x nowe.

passwd nie pozostawia haseł w historii poleceń powłoki.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
6 Instalacja Linuks
6.1 Wybór trybu instalacji
6.1.1 Nie łącz się z siecią lokalną ani z Internet
    Nawet gdy do tego zachęcają. Podczas instalacji system jest bezbronny.

6.1.2 Instaluj pakiety zamknięte tylko gdy masz sprzęt jaki tego
wymaga

6.2 Wybierz punkty montowania przygotowanych
partycji
                        Wybierz ręczny podział na partycje.

A tam ustaw katalogi montowania dla każdej z nich. Zrób to zgodnie z podziałem
dysku na partycje jaki wprowadziłeś w ramach przygotowań do instalacji.


6.3 Wprowadź hasło jakie wygenerowałeś
Podając login podaj to hasło jakie wygenerowałeś podczas przygotowań do instalacji.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
7 Konfiguracja po instalacji Linuks
 W tym punkcie nie włączaj się do sieci aż nie wykonasz ostatniego podpunktu.


7.1 Skonfiguruj sudo
7.1.1 Dodaj siebie do grupy sudo
Jest to konieczne byś mógł normalnie wykonywać czynności administracyjne w
Linuks bez używania konta root ani polecenia su. Robisz to poleceniem:

su -
usermod -aG sudo $USER

Wynik możesz sprawdzić poleceniem:

id $USER

7.1.2 Ustaw sudo tylko dla siebie
Dbaj o to by żaden inny użytkownik w twoim systemie nie należał do grupy sudo. Aby
to spr. należy użyć polecenia:

getent group sudo

Powinno dać w wyniku tylko Ciebie.

Aby usunąć użytkownika z grupy sudo należy użyć polecenia:

sudo gpasswd -d UŻYTKOWNIK sudo


7.2 Skonfiguruj wstępnie zaporę sieciową UFW
7.2.1 Domyślne blokowanie całego ruchu sieciowego
Ja na swoich komputerach konfiguruję UFW tak:

   1. Instaluję, resetuję i włączam zaporę sieciową UFW:

sudo apt install ufw
sudo ufw reset
sudo ufw enable

   2. Konfiguruję ufw tak by domyślnie blokował cały ruch wchodzący i wychodzący:


           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo ufw default deny incoming
sudo ufw default deny outgoing

Zamiast deny można podać reject. Różnica polega na tym, że deny nie odpowiada,
natomiast reject odrzuca połączenia. Oznacza to, że reject zachowuje się kulturalnie,
ale głupio, bo zdradza obecność kompa w sieci.

   3. Odblokowuję możliwość łączenia z serwerem w mojej sieci przez ssh:

       Na stacji roboczej:

       sudo ufw allow out from 192.168.ZZZ.ZZZ to 192.168.XXX.XXX
       port 22 proto tcp

       Gdzie 192.168.XXX.XXX to adres serwera w sieci lokalnej, a 192.168.ZZZ.ZZZ to
       adres stacji roboczej.

       Na serwerze:

       sudo ufw limit in from 192.168.ZZZ.ZZZ to 192.168.XXX.XXX
       port 22 proto tcp

       limit znaczy tyle co allow z tą różnicą, że zabezpiecza przed atakiem odmowy
       dostępu36      (czyli    przed    zbyt    dużą    ilością   jednoczesnych      połączeń
       przychodzących).

7.2.2 Odblokowanie możliwości łączenia się z serwerami OpenDNS37
   4. Wynikowe polecenia odblokowujące te adresy są takie:

sudo   ufw    allow   out      from   TWOJE_IP   208.67.222.222      proto   udp
sudo   ufw    allow   out      from   TWOJE_IP   208.67.220.220      proto   udp
sudo   ufw    allow   out      from   TWOJE_IP   208.67.222.220      proto   udp
sudo   ufw    allow   out      from   TWOJE_IP   208.67.220.222      proto   udp

    Dokończenie konfiguracji ufw będzie omówione po połączeniu z Internet.


7.3 Konfiguracja Linuks Kernel
Aby dostroić sam Linuks Kernel należy wyedytować plik:

sudo nano /etc/sysctl.d/20-energo-kernel.conf

I uzupełnij go taką treścią:


36 po ang.: access denied
37 https://pl.wikipedia.org/wiki/OpenDNS , dostęp 2022-09-04

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
# Losowe przydzielanie adresów pamięci (mmap, sterta i stos):
kernel.randomize_va_space= 2
# Ponowne uruchomienie po 10s po zawieszeniu jądra:
kernel.panic= 10
# Włączenie IP spoofing protection:
net.ipv4.conf.all.rp_filter= 1
# Zablokowanie IP source routing:
net.ipv4.conf.all.accept_source_route= 0
net.ipv6.conf.all.accept_source_route= 0
# Ignorowanie rozgłoszeń broadcasts:
net.ipv4.icmp_echo_ignore_broadcasts= 1
# Logowanie fałszowanych pakietów:
net.ipv4.conf.all.log_martians= 1
# Wyłączanie przekazywania pakietów:
net.ipv4.ip_forward= 0
# Brak komunikatów o podejrzanych błędach ICMP:
net.ipv4.icmp_ignore_bogus_error_responses= 1

Następnie wydaj polecenie:

sudo /lib/systemd/systemd-sysctl

Aby spr. aktualne ustawienia związane z jądrem Linuks użyj polecenia:

sudo sysctl --system


7.4 Skonfiguruj partycje
W przypadku gdy się zdecydujemy na proponowany powyżej podział na partycje
można ograniczyć możliwości włamywacza. Ja tak konfiguruję partycje:

sudo nano /etc/fstab

   1. Wyłączam czasy i montowanie przez użytkownika na partycji /:

      UUID=XXX...XXX /               ext2
      defaults,noatime,nodiratime,noiversion,norelatime,nostrictati
      me,lazytime,nouser 0       1

   2. Wyłączam uruchamianie, lepki bit, tworzenie urządzeń, czasy i montowanie
      przez użytkownika na partycjach: /tmp , /var/log i /var/tmp :

      UUID=XXX...XXX /tmp ext2
      defaults,noexec,nosuid,nodev,noatime,nodiratime,noiversion,no
      relatime,nostrictatime,lazytime,nouser 0 2




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   3. Wyłączam lepki bit, tworzenie urządzeń, czasy i montowanie przez użytkownika
      na partycjach: /boot , /opt, /usr/local , /home:

      UUID=XXX...XXX /home ext4
      defaults,nosuid,nodev,noatime,nodiratime,noiversion,norelatime,nostrict
      atime,lazytime,nouser 0 2

   4. Wyłączam uruchamianie, lepki bit, tworzenie urządzeń, czasy i montowanie
      przez użytkownika w pamięci współdzielonej:

      none /run/shm
      tmpfs
      rw,noexec,nosuid,nodev,noatime,nodiratime,noiversion,norelati
      me,nostrictatime,lazytime,nouser 0 0

 U mnie po wyłączeniu czasów na powyższych partycjach okazało się, że jeśli w
  trakcie uśpienia komputera minie północ, to po zalogowaniu nie pojawia się
   pulpit. W logach widać pełno dziwnych wpisów Network Manager. Pomaga
                  restart, po którym system działa jakby nigdy nic.


7.5 Wyłącz plik wymiany
Jak podałem wyżej plik wymiany może zabić dysk SSD, dlatego w razie gdyby
komputer zamulał należy dokupić pam. RAM, a swap należy wyłączyć.

Na czas bieżącej sesji swap można wyłączyć poleceniem:

sudo swapoff -a

Natomiast na trwale wyłacza się go edytując plik:

sudo nano /etc/fstab

Tam trzeba zakomentować (znakiem #) linię:

# /swapfile          none                 swap sw                       0          0

Na Ubuntu Serwer jest to:

# /swap.img           none       swap       sw         0          0

Ta zmiana zostanie uwzględniona po ponownym uruchomieniu systemu.

Pamiętaj też o:



          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo rm /swapfile

Na Ubuntu Serwer jest to:

sudo rm /swap.img


7.6 Włącz automatyczne ubijanie zbyt żarłocznego
procesu
Niestety wygląda na to, że nie można w Linuks ustawić globalnego limitu po
przekroczeniu którego proces byłby automatycznie zabijany.

Nie wiem też nic na temat ustawienia które przy wyczerpywaniu pamięci ubija
najbardziej żarłoczny proces.

Można natomiast takie limity wprowadzać lokalnie na koncie użytkownika.

Robi się to poleceniem ulimit w pliku:

nano $HOME/.profile

Należy dodać takie linie:

ulimit -v $((4*1024*1024))

 Moim zdaniem nie jest to wielkość pam. wirt. (w sensie swap) tylko całkowita ilość
38


zaalokowanej pamięci przez proces użytkownika (czyli tyle pamięci proces zażądał od
systemu operacyjnego).

ulimit -m $((1024*1024))

 To jest limit rzeczywistego użycia pamięci przez proces użytkownika.
39



Jak jakiś program nagle zostanie zamknięty, to znaczy, że ulimit -v lub ulimit -m
jest za mały. Oznacza to, że właśnie miałeś próbę włamania typu "przepełnienie
                                          bufora"40.

Warto też dodać limit na ilość uruchamianych procesów w systemie w trakcie sesji
użytkownika (czyli: gdy jesteś zalogowany to całkowita liczba procesów nie może
przekroczyć poniższej wartości):



38 Ta dziwna konstrukcja z $(()) to wyrażenie matematyczne w Baszu obliczające ile KB jest w 4GB.
39 Ta dziwna konstrukcja z $(()) to wyrażenie matematyczne w Baszu obliczające ile KB jest w 1GB.
40 Dotyczy to zwłaszcza przeglądarek WWW, ale nie tylko czytnik RSS Akregator też potrafi
   wykorkować przy ustawionych opcjach -v -m programu ulimit.

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
ulimit -u 700

Co dziwne, widocznych procesów w systemie mam ok. 350 jednak gdy ustawię
ulimit -u 500 to nic już nie chce się uruchamiać. Przecież do tego limitu nie
powinny wchodzić wątki... Nie powinno też być żadnych ukrytych procesów...
Sam nie wiem jak to interpretować...


7.7 Zaostrz prawa dostępu do katalogów użytkowników
7.7.1 Katalogi domowe
  Prawa dostępu do kat. domowych użytkowników są domyślnie zbyt słabe bo
 pozwalają każdemu zalogowanemu w systemie na przeglądanie i kopiowanie
                             moich prywatnych danych.

Wyłączam grupom i pozostałym użytkownikom dostęp do kat. domowych
użytkowników i root:

sudo chmod go-rwx /home/* /root

Gdybym chciał wyłączyć grupom i innym użytkownikom dostęp do mojego kat.
domowego wydałbym polecenie:

chmod -R go-rwx $HOME

Przypisuję dla siebie wszystkie pliki i katalogi w moim katalogu:

chown -R $USER:$USER $HOME

Tego polecenia należy użyć dla każdego użytkownika na naszym komputerze.

W tym celu najpierw zaloguj się na konsolę każdego z nich poleceniem:

su - LOGIN

Gdzie LOGIN to login użytkownika.

Po tych poleceniach udostępnianie plików bezpośrednio z katalogów domowych
    nie będzie działać. Bo to wymaga dostępu użytkowników z grup do jakich
                         należysz (np. samba, ftp czy www).

W sumie to i tak mało kto potrafi tego użyć.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
    Po tych poleceniach nadal normalnie będzie działać przeglądarka, klient
                                       pocztowy41.

7.7.2 UMASK
Maska UMASK definiuje, dla każdego użytkownika osobno, jakich uprawnień nie
mają mieć nowe pliki i katalogi.

Czyli gdy ma ona wartość 077 to ani grupa ani pozostali użytkownicy nie będą mieli
prawa odczytu, zapisu ani wykonania.

Natomiast Ty będziesz miał te (pełne) prawa, czyli 600 dla nowych plików i 700 dla
nowych katalogów.

7.7.2.1      UMASK globalny
W pliku

sudo nano /etc/login.defs

ustaw:

UMASK     077
USERGROUPS_ENAB no

Ta druga opcja, jeśli jest włączona, powoduje że efektywnie UMASK ma wartość 007,
a nie o to chodzi…

7.7.2.2      Problemy z globalnym UMASK
  Po globalnym zaostrzeniu flagi UMASK pojawią się problemy z menadżerami
                 pakietów APT i pip (Python 2 i 3) i pewnie z innymi.

Rozwiązania znam 3:

   1. Konfigurować umask lokalnie dla każdego użytkownika zamiast globalnie.

   2. W przypadku pip można instalować skrypty Pytona bez sudo, czyli lokalnie, w
      katalogu użytkownika, czyli tylko dla siebie;

   3. W przypadku pip można instalować skrypty globalnie w systemie, dla
      wszystkich użytkowników poleceniem sudo pip3 XXX . Następnie wywołać
      takie polecenie:

      sudo chmod -R go+rx /usr/local/lib/python3.8

41 Pod warunkiem, że w UFW zostały odblokowane odpowiednie adresy.

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
7.7.2.3       UMASK lokalny
Jak zmienisz umask globalnie to pojawią się problemy z menadżerami pakietów APT,
python3 i pewnie z innymi. Wtedy warto rozważyć ustawianie umask tylko sobie i
zwykłym użytkownikom, a root-a zostawić w spokoju. W tym celu w pliku:

nano $HOME/.profile

Nalezy dodać linię:

umask 077

7.7.3 DIR_MODE
DIR_MODE określa domyślne prawa dostępu do nowo tworzonego kat. użytkownika.
Domyślnie jest to 0755 czyli wszyscy mają możliwość odczytu łącznie z atrybutami
plików. Aby ten nonsens zmienić edytuję:

sudo nano /etc/adduser.conf

ustawiam:

DIR_MODE=0700

Czyli zapewniam wyłącznie sobie odczyt, zapis i wykonanie.

7.7.4 Ważne pliki systemowe

sudo chmod 0700 /etc/cups/cupsd.conf
sudo chmod 600 /etc/sysctl.conf
sudo chmod 0440 /etc/sudoers


7.8 Usuń pliki bez właściciela
sudo find / -xdev \( -nouser -o -nogroup \) -print0 | xargs -0 -
ixxx sudo rm -r xxx

  To polecenie może usuwać programy zainstalowane w kontenerach Dokera.


7.9 Usuń uszkodzone linki symboliczne
Po usunięciu oryginalnego pliku do którego prowadził link symboliczny ten link
pozostaje w systemie. Jest on wtedy „uszkodzonym linkiem symbolicznym”.
Generalnie należy się ich pozbyć:


            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo find / -xtype l -delete

   To polecenie może usuwać programy zainstalowane w kontenerach Dokera.


7.10Wyłącz konsolę dla nowych użytkowników
sudo sed -ie '/^SHELL=/ s/=.*\+/=\/usr\/sbin\/nologin/'
/etc/default/useradd
sudo sed -ie '/^DSHELL=/ s/=.*\+/=\/usr\/sbin\/nologin/'
/etc/adduser.conf


7.11Konfiguracja Linuks dla programisty
7.11.1          Włącz zrzuty obrazów pamięci programów
Ponieważ czasem interesują mnie powody nagłego, awaryjnego zatrzymania
programu włączam zrzuty pamięci dla programów. W pliku

sudo nano /etc/security/limits.conf

ustawiam opcję:

* - core 4194304 # 4GB w KB

To powoduje, że hard42 i soft43 limit dla pliku z zrzutem pamięci wynosi 4GB.

Edytuję plik:

sudo nano /etc/sysctl.d/20-energo-coredump.conf

I dodaję do niego taką zawartość:

# Wyłączenie flagi dającej uprawnienia root-a
fs.suid_dumpable=0
# Podanie katalogu i formatu nazwy pliku dla zrzutów pamięci
# %u to użytkownik, %e to nazwa programu, %p to PID (numer
procesu), .core to rozszerzenie pliku
kernel.core_pattern=/var/crash/%u-%e-%p.core

Następnie wydaję polecenie wprowadzające powyższe zmiany w działającym Linuks
Kernel:

sudo /lib/systemd/systemd-sysctl

42 Jest to nieprzekraczalny limit w systemie.
43 Jest to domyślny limit użytkownika jaki można zwiększać aż do wart. hard lub zmniejszać do 0.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Aby spr. aktualne ustawienia związane z Linuks Kernel użyj polecenia:

sudo sysctl --system


7.12Konfiguracja Linuks dla nie programisty
7.12.1        Wyłącz zrzuty jądra i programów
Wyedytuj:

sudo nano /etc/security/limits.conf

I ustaw:

* - core 0


7.13Konfiguracja użytkowników
Razem z Linuks jest instalowana cała masa niepotrzebnych użytkowników. Zalecam
dodanie takiej sekwencji poleceń do własnego skryptu aktualizacji systemu:

sudo   deluser    games
sudo   deluser    mail
sudo   deluser    news
sudo   deluser    proxy
sudo   deluser    www-data
sudo   deluser    backup
sudo   deluser    list
sudo   deluser    irc
sudo   deluser    gnat
sudo   deluser    gnats
sudo   deluser    speech-dispatcher
sudo   deluser    hplip
sudo   deluser    uucp
sudo   deluser    man


7.14Konfiguracja grup użytkowników
Warto sprawdzić do jakich grup się należy:

groups

Dla normalnego użytkownika wcale nie jest potrzebne należenie do sambashare
(udostępnianie        plików       w      sieci      SMB       czyli     dla         Windows)



            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
ani do dip (używanie modemów telefonicznych). Aby wystąpić z tych grup należy użyć
polecenia:

sudo gpasswd -d $USER GRUPA

Na pewno należy usunąć te grupy z systemu:

sudo   delgroup      games
sudo   delgroup      mail
sudo   delgroup      news
sudo   delgroup      proxy
sudo   delgroup      www-data
sudo   delgroup      backup
sudo   delgroup      list
sudo   delgroup      irc
sudo   delgroup      speech-dispatcher
sudo   delgroup      hplip
sudo   delgroup      uucp
sudo   delgroup      man
sudo   delgroup      landscape
sudo   delgroup      pollinate
sudo   delgroup      saned
sudo   delgroup      colord
sudo   delgroup      gnat
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906463
Author: Jacek Marcin Jaworski
Date: Mon, 19 Sep 2022 14:51
1493 lines
54709 bytes
7.15Firejail
Koncepcja ograniczania programów komputerowych tak by nie mogły kraść i wysyłać
moich prywatnych danych w świat jest bardzo dobra. Programy te bazują na plikach
profili które szczegółowo definiują co program może robić a czego mu nie wolno. Do
tych programów zaliczamy Friejail, AppArmor i SeLinux44. Tu zajmiemy się Firejail.

Przykładowo gdy uruchomimy Thunderbird w Firejail, to Thunderbird będzie miał
dostęp tylko do kat. $HOME/Pobrane i paru plików w $HOME. Tak więc nic nie jest w
stanie nam ukraść.

Problemem jakiego nie rozwiązuje Firejail jest to, że w zakresie sieci umożliwia
jedynie jej całkowitą blokadę lub całkowitą dostępność sieci Internet. Czyli
Firejail nie daje żadnej kontroli nad tym gdzie program się łączy. Jedyną radą na
to jest ręczna konfiguracja sieci w zaporze czyli w UFW.


44 Najtrudniejszy w konfiguracji zaprojektowany i zaprogramowany w wyklętej agencji NSA z SZAP.

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
7.15.1         Instalacja Firejail

sudo apt install firejail

7.15.2         Włączenie Firejail
Włączenie Firejail jest dwu etapowe:

   1. Najpierw trzeba zlinkować ograniczane programy do /usr/local/bin . Robi się
       to dlatego, że program uruchamiany w skróconej formie jest wyszukiwany
       najpierw w /usr/local/bin a jak tam go nie ma to szukany jest w /usr/bin .

sudo firecfg

   2. Następnie trzeba usunąć ścieżki /usr/bin ze wszystkich poleceń w plikach
       *.desktop45 by uruchamiały one programy z /usr/local/bin . Robi to polecenie:

firecfg --fix

7.15.3         Uruchamianie programów w piaskownicy Firejail i bez niej
Po tych zabiegach uruchamianie programów odbywa się wg schematu:

/usr/bin/thunderbird                  # Thunderbird uruchomi się bez piaskownicy
thunderbird                           # Thunderbird uruchomi się w piaskownicy

Czyli podając pełną ścieżkę (tu: /usr/bin/XXXXX) pomija sie Firejail. Natomiast
wydając skrótowe polecenie program uruchamiany jest w piaskownicy.

7.15.4         Spr. czy program jest uruchomiony w piaskownicy Firejail

ps axu | grep firejail

7.15.5         Strojenie Firejail
Uprawnienia programów zdefiniowane w kat. /etc/firejail są bardzo restrykcyjne, a
czasem wręcz nieżyciowe. Dla niektórych programów w ogóle brak profilów Firejail.

 To że profile Firejail nie odpowiadają w 100% naszym potrzebom nie znaczy, że
Firejail jest zły. Oznacza to, że Fireail trzeba dostrajać zamiast się niepotrzebnie
                                            denerwować.

Firejail dostrajamy tworząc pliki $HOME/.config/firejail/*.local . Pliki te mają taką
samą składnię jak pliki /etc/firejail/*.profile .

45 Są to pliki opisujące skróty z ikonami na pulpicie.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Tu podam kilka przykładów jak dostrajam Firejail:

   1. Kate - edytor tekstów - powinien nie mieć dostępu do sieci Internet i powinien
       mieć dostęp do wszystkich plików w kat. domowym. Dlatego w pliku
       $HOME/.config/firejail/kate.local mam taki wpis:

net none
noblacklist ${HOME}/

Tak samo mam skonfigurowanego Qt Creatora - IDE do programowania w C++.

   2. Libreoffice - pakiet biurowy - nie powinien mieć dostępu do sieci Internet,
       wiec w pliku $HOME/.config/firejail/libreoffice.local mam taki wpis:

net none

Tak samo mam skonfigurowanego VLC - odtwarzać muzyki i filmów.

   3. Firefox - przeglądarka stron www - powinien mieć dostęp do kat. $HOME/+
       +Ściągnięte więc w pliku $HOME/.config/firejail/firefox.local mam taki wpis:

noblacklist ${HOME}/++Ściągnięte
mkdir ${HOME}/++Ściągnięte
whitelist ${HOME}/++Ściągnięte

   4. Thunderbird - powinien mieć dostęp do kat. $HOME/++Ściągnięte i do kat.
       $HOME/.gnupg więc w pliku $HOME/.config/firejail/firefox.local mam taki
       wpis:

noblacklist ${HOME}/++Ściągnięte
mkdir ${HOME}/++Ściągnięte
whitelist ${HOME}/++Ściągnięte

noblacklist ${HOME}/.gnupg
mkdir ${HOME}/.gnupg
whitelist ${HOME}/.gnupg

7.15.6           Dodawanie brakujących profili Firejail
Musze przyznać, że poza banalnym profilem dla Qt Creatora nie musiałem tworzyć
własnych profili. Jednak nie jest to zbyt trudne gdy się popatrzy na profile z kat.
/etc/firejail.

Po godzinie zabawy jasne dla mnie stało się, że procedura dodawania pliku *.profile
dla nowego programu (nazwijmy go "nazwa_programu") jest taka:



           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
     1. Tworzenie pliku profile:

Plik ten musi mieć nazwę: nazwa_progarmu.profile.

     2. Kopiowanie pliku profile:

Plik nazwa_progarmu.profile musi trafić do katalogu:

/etc/firejail

     3. Dodawanie nazwa_progarmu do listy programów kontrolowanych przez
         Firejail:

Do      pliku     /usr/lib/x86_64-linux-gnu/firejail/firecfg.config      należy    dodać   wpis
"nazwa_programu" (prawdziwa nazwa programu bez cudzysłowu).

Zwróć uwagę, że ten plik jest posortowany. Więc by uniknąć problemów należy
dodać "krusader" we właściwym miejscu w tym pliku.

     4. Ponowna konfiguracja Firejail:

sudo firecfg --clean
sudo firecfg
firecfg --fix

7.15.7            Globalne wyłączenie Firejail
Normalnie nie jest potrzebne wyłączanie Firejail. By go ominąć wystarczy podać
pełną ścieżkę do programu np.:

/usr/bin/thunderbird                 # Thunderbird uruchomi się bez piaskownicy
thunderbird                          # Thunderbird uruchomi się w piaskownicy

Jednak gdy chcesz koniecznie wyłączyć Firejail, to znam dwie metody:

sudo firecfg --clean
reboot

albo:

sudo apt remove --purge firejail
reboot




                Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
7.16Konfiguracja demonów

7.16.1         Diagnostyka transmisji Internet
Do monitorowania ruchu sieciowego służy monitor tcpdump. Wywołuje się go:

sudo tcpdump

Jednak gdy chcesz zobaczyć tylko nowe połączenia. By wiedzieć co się dzieje z twoim
komputerem należy użyć opcji pokazujące tylko pakiety IP/TCP z flagą SYN:

sudo tcpdump 'tcp[tcpflags] & (tcp-syn) != 0'

Gdy chcesz monitorować tylko rozpoczynanie i kończenie połączeń trzeba dodać flagę
FIN:

sudo tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'

   tcpdump jest świetnym programem, ale wyświetla nieczytelne komunikaty.
       Jednak ma w sobie zabezpieczenie4647 by nie mógł działać w skryptach.

Do wyświetlania otwartych gniazd Internet TCP, podawania nazwy procesu (gdy to
możliwe), bez obcinania adresu, z dodatkowymi informacjami, ze wszystkimi
gniazdami i z powtarzaniem - należy użyć polecenia:

sudo netstat -tpWeea --numeric-ports

          Gdy uruchmisz netstat bez sudo nie zobaczysz nazw programów!

Gdy chcesz ciągle monitorować otwarte połączenia programem netstat, użyj opcji --
continuous :

sudo netstat -tpWeea --numeric-ports --continuous

46 Dla dociekliwych: zabezpiecznie w tcpdump przed użyciem w skryptach polega na spr. czy plik
   STDOUT to urządzenie kolejką typu FIFO (to tcpdump sprawdza w skrypcie) czy znakowe (to
   tcpdump sprawdza w konsoli). Jak jest znakowe to tcpdump drukuje normalne komunikaty, ale jak
   jest FIFO to tcpdump nic nie drukuje. Ja badałem ten problem i wygląda mi na to, że
   zabezpieczenie to jest gdzieś w bibl. pcap. Myślę tak dlatego, że tcpdump używa bibliotekę pcap z
   której dostaje dane przez f. zwrotną (ang.: callback). Ja w tcpdump we wszystkich jego f. zwrotnych
   dodałem komunikat z nazwą f. i trzema wykrzyknikami. Przy wywołaniu z konsoli wyświetla się
   komunikat "print_packet!!!". Natomiast wywołując tcpdump w skrypcie żaden komunikat się nie
   wyświetla. Dodatkowym problemem jest fakt, że spr. rodzaju pliku STDOUT odbywa się f.
   systemową fstab, ale nie ma jej wywołania ani w źródłach tcpdump ani w źródłach libpcap. Jest
   ona używana jedynie w programach testujących bibl. pcap.
47 Podobne zabezpieczenie przed użyciem w skryptach ma program atrm (do usuwania zadań z
   anacron). Co ciekawe zadania do anacron poleceniem at można dodawać ze skryptów.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
7.16.2         Skonfiguruj SSH
Serwer i klienta SSH instaluje jedno polecnie:

sudo apt install ssh

  Na stacji roboczej potrzebujesz jedynie klienta SSH więc dla bezpieczeństwa
                             warto całkowicie wyłączyć SSHD.

Robi to polecenie:

sudo systemctl stop sshd.service

Gdy używasz SSHD na serwerze trzeba skonfigurować tego demona. Problemy
wynikają oczywiście ze zbyt łagodnych ustawień domyślnych:

sudo nano /etc/ssh/sshd_config

Należy dodać następujące linie:

# Wymuszenie protokołu w wersji 2:
Protocol 2
# Blokada logowania roota:
PermitRootLogin no
# Blokada pustych haseł:
PermitEmptyPasswords no
# Wymuszenie uwierzytelniania za pomocą klucza publicznego:
PasswordAuthentication no

Można też rozważyć dodanie następujących opcji:

# Blokada identyfikacji po nazwie komputera:
IgnoreRhosts yes
HostbasedAuthentication no
# Blokada uruchamiania programów graficznych:
X11Forwarding no
# Adres na jakim nasłuchuje sshd (chodzi o to żeby nie nasłuchiwał
na publicznym IP):
ListenAddress 192.168.XXX.XXX
# Obsługa użytkowników wyłącznie z sieci lokalnej:
AllowUsers *@192.168.XXX.0/24

XXX zastępujesz swoimi końcówkami adresów.

Aby to wszystko zadziałało bez ponownego uruchamiania systemu należy wydać
polecenia:



             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo systemctl stop ssh.service
sudo systemctl start ssh.service

7.16.2.1       Wygeneruj parę kluczy
Uwierzytelnianie należy opierać na kluczach szyfrujących (a nie na hasłach). Nowszym
algorytmem (tego SSH w Debian 10 nie rozpoznaje):

ssh-keygen -t ed25519

Lub starszym (tego rozpoznaje SSH w Debian 10):

ssh-keygen -t rsa -b 4096

7.16.2.2       Załaduj publiczne klucze SSH na serwer48
W zależności od użytego algorytmu:

ssh-copy-id -i $HOME/.ssh/id_ed25519.pub UŻYTKOWNIK@SERWER

lub:

ssh-copy-id -i $HOME/.ssh/id_rsa.pub UŻYTKOWNIK@SERWER

Gdzie UŻYTKOWNIK to login na zdalnym serwerze. Natomiast SERWER to adres IP
lub nazwa domenowa serwera.


7.16.3         Skonfiguruj CUPS
CUPS to demon drukowania. Udostępnia on zbędną usługę konfiguracji przez stronkę
WWW. Jest to zbędne bo to samo można robić z poziomu menadżera okien. Aby to
wyłączyć edytujemy plik:

sudo nano /etc/cups/cupsd.conf

Szukam lini:

WebInterface Yes

I zmieniam na:

WebInterface Off

Następnie zrestartuj cups:

48 Oczywiście należy to zrobić później jak już połączysz się z Internet. Tu zostawiłem to by opis SSH
   był w jednym miejscu.

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo systemctl stop cups.service
sudo systemctl start cups.service


7.17Konfiguracja sieci
Zalecam konfigurację statycznego IP. Ma to plus taki, że jak pamiętasz swoje IP, to
łatwo stwierdzić, czy inne kompy widzą twojego Linuks, czy nie (program ping).
Drugą sprawą jest to, że można sobie zapewnić lepszą symbolikę niż przy DHCP.

Aby skonfigurować sieć musisz podjąć parę decyzji:

   1. Jak chcesz skonfigurować sieć w twoim Linuks?

      Odradzam konfigurację sieci z poziomu pulpitu, bo:

      1. Nie zadziała dla wszystkich użytkowników;

      2. Nie zadziała też w sytuacji awaryjnej, gdy nie ma możliwości uruchomienia
         pulpitu.

      Najsensowniejszą znaną mi konfiguracją sieci w Linuks w 2022r. jest netplan.
      Tą konfigurację definiuje się w plikach *.yaml i kopiuje się je do kat.
      /etc/netplan .

   2. Jaki ma być adres twojej sieci prywatnej?

      Do wyboru masz parę sieci wymieniłem je w roz. "Budowa sieci Internet"

   3. Jaki chcesz mieć statyczny adres IP?

   4. Jakich chcesz używać serwerów DNS?

      Aby           ograniczyć           szpiegostwo           zalecam           OpenDNS:
      https://pl.wikipedia.org/wiki/OpenDNS , dostęp 2022-09-04

   5. Jakich typów masz karty sieciowe?

      Konfiguracja się różni w przypadku kart kablowych i radiowych.

   6. Jak się nazywają twoje karty sieciowe w Linuks?

sudo lshw -C network
[...]
logical name: XXXXXXXX
[...]

      XXXXXXXX jest nazwą twojej karty sieciowej w systemie Linuks.

   7. Jak skonfigurować karty sieciowe?

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Przykładowy plik dla karty sieci kablowej może mieć taką postać:

network:
  ethernets:
    eXXXXXXXX:
      addresses:
         - 172.22.112.59/24
      gateway4: 172.22.112.1
      nameservers:
         addresses: [208.67.222.222, 208.67.220.220,
208.67.222.220, 208.67.220.222]
      dhcp4: no
      dhcp6: no
  version: 2
  renderer: NetworkManager

eXXXXX to nazwa karty sieciowej - reszta jest chyba jasna.

Przykładowy plik dla karty sieci radiowej może mieć taką postać:

network:
  wifis:
    wXXXXXXXX:
      addresses:
         - 192.168.100.100/24
      gateway4: 192.168.100.1
      nameservers:
         addresses: [208.67.222.222, 208.67.220.220,
208.67.222.220, 208.67.220.222]
      dhcp4: no
      dhcp6: no
      access-points:
         "SIEĆ WI-FI":
           password: "XXXXXXXXXXX"
  version: 2
  renderer: NetworkManager

wXXXXXX to nazwa karty sieciowej, "SIEĆ WI-FI" to identyfikator sieci Wi-Fi - reszta jest
chyba jasna.

Konfigurację standardowo kończymy poleceniem aktywującym zmiany:

sudo netplan apply /etc/netplan/TWÓJ_PLIK_KONF.yaml


7.18Konfiguracja PAM
Insalacja PAM:



          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo apt install libpam-pwquality

7.18.1         Wyłączenie zdalnego logowania

sudo nano /etc/security/access.conf

By mógł się logować tylko jacek-marcin i tylko lokalnie - wstaw taką zawartość:

+:jacek-marcin:LOCAL
-:ALL:ALL

Jak masz innych zaufanych użytkowników np. w grupie sudo i jak chcesz by logowali
się tylko lokalnie, to możesz dodać taką linię:

+:(sudo):LOCAL

7.18.2         Wyłączenie su
Jak należysz do grupy sudo to nie potrzebujesz na stacji roboczej więcej polecenia
su. W pliku:

sudo nano /etc/pam.d/su

Za komentuj linię (znakiem #):

# auth             sufficient pam_rootok.so

7.18.3         Wymuszanie na użytkownikach stosowania silnych haseł
W pliku konfiguracyjnym:

sudo nano /etc/security/pwquality.conf

Najprzydatniejsze są 2 opcje:

minlen = 10

Określa ona min. długość hasła.

  Hasła o długości mniejszej niż 6 znaków są łamane w krótkim czasie metodą
                                 kolejnych kombinacji49.

   Dlatego wszelkie nr PIN nigdy nie są dłuższe niż 6 cyfr tak by służbom łatwo
                                  można było je złamać.



49 po ang.: brute force

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
      Mimo, że można by w miejsce PIN wprowadzić b. trudne do złamania
                           uwierzytelnianie biometryczne.

minclass = 4

Określa że mają w haśle znaleźć: Małe litery, wielkie litery, numery i inne znaki.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   TERAZ NALEŻY PODNIEŚĆ POŁĄCZENIE SIECIOWE W CELU UZYSKANIA POŁ. Z
                                          INTERNET.



8 Czynności po podłączeniu do
Internet
      Tak naprawdę czynności tu wymienione powinny być wykonane przed
                                połączeniem się z Internet.

Jednak nie jest to możliwe z uwagi na brak możliwości zainstalowania koniecznych
pakietów.

Dlatego jesteśmy zmuszeni zaufać zaporze sieciowej zanim wyczyścimy system do
końca.


8.1 Awaryjne połączenie z Internet
Może się zdarzyć, że padnie sieć w twoim komputerze i nie ma możliwości
samodzielnego naprawienia jej, bo np. brakuje pakietów z repo dystrybucji.

Może też się zdarzyć, że aby w ogóle normalnie połączyć się z siecią lokalną musisz
skompilować najpierw sterownik do karty sieciowej. Tego nie zrobisz bez instalacji gcc
, make i innych pakietów.

Na te awaryjne sytuacje dziś jest już prosta rada: należy podłączyć sprytny tel. z
Androidem kablem USB do kompa. Wtedy wystarczy skonfigurować w sprytnym tel.
port USB by udostępniał sieć dla kompa i już można doprowadzić system do
porządku.


8.2 Dokończenie konfiguracji UFW
Odblokowuję możliwość łączenia z wybranymi adresami IP (poł. wychodzące).

Aby ustalić adresy IP nazw domenowych używam programu dig.

Gdy badam dany program, by się dowiedzieć gdzie się on usiłuje łączyć, często
używam strace50.

Ruch sieciowy mogę obserwować dzięki programom netstat, tcpdump i Rekin Z
Drutu51.

50 Pamiętaj o opcji -f która zapewnia śledzenie również procesów potomnych.
51 po ang.: wireshark

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
   5. Odblokowuję możliwość łączenia z serwerami używanymi przez program
       whois:

dig whois.arin.net
[...]
whois.arin.net.                    87         IN         A          199.5.26.46
whois.arin.net.                    87         IN         A          199.71.0.46
whois.arin.net.                    87         IN         A          199.212.0.46
[...]

dig whois.nic.ad.jp
[...]
whois.nic.ad.jp.                   896        IN         A          192.41.192.40
[...]

dig whois.denic.de
whois.denic.de.                    172        IN         A          81.91.170.78
[...]

dig whois.dk-hostmaster.dk
[...]
whois.dk-hostmaster.dk. 30                    IN         A          193.163.102.55
[...]

Wynikowe polecenia odblokowujące te adresy są takie:

sudo   ufw    allow   out   from   TWOJE_IP    to 199.5.26.46 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP    199.71.0.46 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP    199.212.0.46 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP    192.41.192.40 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP    81.91.170.78 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP    193.163.102.55 proto tcp

   6. Odblokowuję możliwość łączenia z serwerami ze zdalnymi repozytoriami
       pakietów przez protokół TCP. np. dla Ubuntu będzie to:

dig archive.ubuntu.com
[...]
archive.ubuntu.com.                54        IN          A          91.189.91.39
archive.ubuntu.com.                54        IN          A          185.125.190.36
archive.ubuntu.com.                54        IN          A          185.125.190.39
archive.ubuntu.com.                54        IN          A          91.189.91.38
[...]
dig security.ubuntu.com
[...]
security.ubuntu.com.               24        IN          A          91.189.91.38
security.ubuntu.com.               24        IN          A          91.189.91.39
security.ubuntu.com.               24        IN          A          185.125.190.36

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
security.ubuntu.com.               24         IN          A              185.125.190.39
[...]

       Jak widać oba adresy mają takie same numery IP (jedynie w innej kolejności). Ja
       osobiście tego nie rozumiem, ale widać takie szaleństwa też są możliwe.

       Wynikowe polecenia odblokowujące te adresy są takie:

sudo   ufw    allow   out   from   TWOJE_IP     91.189.91.39 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP     185.125.190.36 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP     185.125.190.39 proto tcp
sudo   ufw    allow   out   from   TWOJE_IP     91.189.91.38 proto tcp

   7. Odblokowuję        możliwość      łączenia   z   serwerami     z    moimi   urządzeniami
       sieciowymi i z moim serwerem poczty el.;

   8. Odblokowuję możliwość łączenia z serwerami Google;

Obejmuje to:

   1. Odblokowanie w UFW adresu IP do jakiego kieruje domena www.gstatic.com;

   2. Pobranie listy serwerów Google52;

   3. Wyciągnięcie wszystkich adresów Google z goog.json;

   4. Odblokowanie adresów Google w UFW;

   5. Usunięcie pliku goog.json

Należy to wpakować do skryptu konfigurującego UFW.

   9. Odblokowuję możliwość łączenia z serwerem duckduckgo.com;

dig duckduckgo.com
[...]
duckduckgo.com.                    125        IN          A              40.114.177.156
[...]

Wynikowa polecenia odblokowująca ten adres jest taka:

sudo ufw allow out from TWOJE_IP 213.180.147.154 proto tcp

   10.Odblokowuję możliwość łączenia z serwerem musicbrainz.org;

[...]
musicbrainz.org.                   1589       IN          A              138.201.227.205
[...]

52 https://www.gstatic.com/ipranges/goog.json , dostęp 2022-09-08.

             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Wynikowa polecenia odblokowująca ten adres jest taka:

sudo ufw allow out from TWOJE_IP 138.201.227.205 proto tcp

   11.Odblokowuję możliwość łączenia z serwerami Wikipedia:

dig wikipedia.pl
[...]
wikipedia.pl.            86390            IN          A          94.23.242.48
[...]
dig wikipedia.org
[...]
wikipedia.org.           230              IN          A          91.198.174.192
[...]
dig upload.wikimedia.org
[...]
upload.wikimedia.org.    363              IN          A          91.198.174.208
[...]

      Wynikowe polecenia odblokowujące te adresy są takie:

sudo ufw allow out from TWOJE_IP 94.23.242.48 proto tcp
sudo ufw allow out from TWOJE_IP 91.198.174.192 proto tcp
sudo ufw allow out from TWOJE_IP 91.198.174.208 proto tcp


8.3 Postarzanie kernela
Mnie osobiście bardzo dziwi i bardzo niepokoi cotygodniowa aktualizacja kernela w
dystrybucjach bazujących na Debianie. Nie wnikam co tam oni mieszają, tylko po
instalacji wydaję polecenie:

sudo apt-mark hold linux-*

Instaluję też najstarszy kernel w repo, np.:

sudo apt install $(apt list | grep 'linux-[^-]*-5.4.0-26-generic'
| cut -d '/' -f1 | tr '\n' ' ')

Do powyższego należy dodać:

sudo apt install        linux-modules-extra-5.4.0-26-generic

Bo bez tego X-y nie odpalą.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
Widać, że jest to operacja dla wtajemniczonych, bo jak się poda jedynie pierwszy
pakiet, to zgłosi błąd! Dopiero jak się poda pełną listę zależności, to można
zainstalować wybrany kernel. Stąd powyższy skrypt.

Po restarcie należy usunąć pozostałe kernele. np.:

sudo apt remove --purge linux-image-5.4.0-96-generic

Podczas instalacji i usuwaniu zdarzają się błedy o niespełnionych zależnościach.
Wtakim przypadku nalezy dodawać w do tego samego polecenia kolejne pakiety
                               (tak jak je zgłasza APT).


8.4 Skrypt aktualizujący system
Aktualizacja systemu, to nie tylko banalne:

sudo apt update && sudo apt upgrade

Konieczne jest wykonanie dużo większej ilości działań. Dlatego proponuję napisać
skrypt aktualizuj.sh w którym dzieją się rzeczy opisane w tym dokumencie, np.:

   ● Wyłącz konsolę dla nowych użytkowników;

   ● Aktualizacja pakietów;

   ● Instalowanie pakietów potrzebnych wszystkim użytkownikom;

   ● Instalowanie pakietów potrzebnych programistom;

   ● Usuwanie zbędnych pakietów;

   ● Usuwanie pakietów zainstalowanych przez inne pakiety i już niepotrzebne;

   ● Wyłączanie zbędnych demonów;

   ● Ustawienia uprawnień dostępu;

   ● Usuwanie plików bez właściciela;

   ● Usuwanie uszkodzonych linków symbolicznych;

   ● i inne...




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
9 Ręczna diagnostyka bezpieczeństwa
9.1 Testy zapory sieciowej
Jak już skończysz konfigurację systemu i podłączysz go do sieci można wykonać
podstawowe testy zapory: blokadę skanowania portów i blokadę dostępu do nie
otwartych portów.

Testy te wymagają drugiego komputera w tej samej sieci lokalnej.

9.1.1 Test skanowania portów
Po pierwsze należy ustalić adres ip twojego komputera. Na nowo zainstalowanym
Linuks wywołaj:

ip a

Interesuje cię linia w stylu:

inet 192.168.XXX.XXX/24 brd 192.168.XXX.255 scope global
noprefixroute ID_KARTY_SIECIOWEJ

To co za inet i przed /24, czyli 192.168.XXX.XXX (oczywiście zamiast XXX.XXX będą
konkretne numery) to właśnie aktualny Internet adres karty sieciowej.

Można spr. jakie porty są otwarte na moich systemach w sieci lokalnej. Robi to
polecenie:

nmap -Pn 192.168.XXX.XXX

To skanowanie z opcjami -Pn ma taką wadę, że obejmuje tylko pierwsze 1K portów.
Użyłem ich dlatego, że pełne skanowanie, czyli opcja -p-, w ogóle nie wykrywa
komputerów z zaporą skonfigurowaną w podany w tej monografii sposób.

9.1.2 Test dostępu do otwartego portu zablokowanego przez UFW
Blokadę portów sprawdzimy stawiając na nowym Linuks z zaporą sieciową UFW
testowy serwer WWW na zablokowanym porcie i próbując się do niego łączyć z
drugiego komputera. Na twoim nowym Linuks uruchom:

python3 -m http.server 1234

Natomiast na drugim komputerze wywołaj polecenie:



             Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
telnet 192.168.XXX.XXX 1234

Gdy jest ok możliwe są 2 rezultaty:

   1. Polecenie powinno zakończyć się błędem przekroczenia czasu (deny):

Connecting to 192.168.XXX.XXX:1234... failed: Connection timed
out.
Retrying.

   2. Polecenie powinno zakończyć się błędem odmowy dostępu (reject):

Trying 192.168.XXX.XXX...
telnet: Unable to connect to remote host: Connection refused


9.2 Skaner debsums
Wszystkie pakiety jakie pochodzą z repozytoriów APT (oficjalnych i nieoficjalnych)
mają sumy kontrolne wszystkich plików jakie zawierają. To powoduje, że przy
superszybkich dyskach SSD błyskawicznie można spr. integralność pakietów
zainstalowanych w systemie. Oczywiście pod warunkiem, że atakujący pozostawi
debsums w spokoju.

Ten skaner podaje listę plików jakie uległy zmianie po instalacji. Domyślnie listuje on
wszystkie sprawdzane pliki co jest trochę przytłaczające. Wtedy pomaga opcja -s czyli
tryb cichy. Dodatkowo warto włączyć spr. plików ustawień (opcja -a), bo domyślnie są
one pomijane. Przykładowe wywołanie może być takie:

sudo debsums -as


9.3 Skaner Lynis
Lynis to rozszerzalne narzędzie do kontroli bezpieczeństwa systemów komputerowych z
systemem Linux, FreeBSD, macOS, OpenBSD, Solaris i innymi pochodnymi Uniksa. 53

9.3.1 Instalacja

sudo apt install lynis

9.3.2 Skanowanie

sudo lynis audit system

53 https://en.wikipedia.org/wiki/Lynis

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
9.3.3 Interpretacja wyników

$ sudo cat /var/log/lynis-report.dat | grep suggestion | most
suggestion[]=BOOT-5122|Set a password on GRUB boot loader to
prevent altering boot configuration (e.g. boot in single user mode
without password)|-|-|
suggestion[]=BOOT-5264|Consider hardening system services|Run
'/usr/bin/systemd-analyze security SERVICE' for each service|-|
suggestion[]=KRNL-5820|If not required, consider explicit
disabling of core dump in /etc/security/limits.conf file|-|-|
suggestion[]=PROC-3614|Check process listing for processes waiting
for IO requests|-|-|
suggestion[]=AUTH-9229|Check PAM configuration, add rounds if
applicable and expire passwords to encrypt with new values|-|-|
suggestion[]=AUTH-9230|Configure minimum encryption algorithm
rounds in /etc/login.defs|-|-|
suggestion[]=AUTH-9230|Configure maximum encryption algorithm
rounds in /etc/login.defs|-|-|
suggestion[]=AUTH-9262|Install a PAM module for password strength
testing like pam_cracklib or pam_passwdqc|-|-|
[…]



Ciekawą opcją Lynis-a jest możliwość uzyskania szczegółowych informacji na
temat danego testu.

Przykładowo polecenie:

$ sudo lynis show details BOOT-5122
2020-07-05 20:01:21 Performing test ID BOOT-5122 (Check for GRUB
boot password)
2020-07-05 20:01:21 Found file /boot/grub/grub.cfg, proceeding
with tests.
2020-07-05 20:01:21 Test: check if we can access
/boot/grub/grub.cfg (escaped: /boot/grub/grub.cfg)
2020-07-05 20:01:21 Result: file is owned by our current user ID
(0), checking if it is readable
2020-07-05 20:01:21 Result: file /boot/grub/grub.cfg is readable
(or directory accessible).
2020-07-05 20:01:21 Result: did not find hashed password line in
this file
2020-07-05 20:01:21 Result: File '/boot/grub/custom.cfg' does not


         Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
exist
2020-07-05 20:01:21 Found file /etc/grub.d/00_header, proceeding
with tests.
2020-07-05 20:01:21 Test: check if we can access
/etc/grub.d/00_header (escaped: /etc/grub.d/00_header)
[…]


9.4 Skaner Rkhunter (poszukuje rotkitów)
rkhunter jest skanerem root kitów. Rootkit-y to programy umieszczane na
komputerze ofiary celem pełnej kontroli nad nim (np. do kopania krypto-walut, albo
ataków na inne komputery).

9.4.1 Instalacja

sudo apt install rkhunter

9.4.2 Aktualizacja

sudo rkhunter --propupd

9.4.3 Skanowanie

sudo rkhunter --check

9.4.4 Interpretacja wyników

sudo cat /var/log/rkhunter.log | grep -e 'Warning' | most
[11:51:46]   /usr/bin/lwp-request
[ Warning ]
[11:51:46] Warning: The command '/usr/bin/lwp-request' has been
replaced by a script: /usr/bin/lwp-request: Perl script text
executable
[11:54:06]   Checking for suspicious (large) shared memory
segments [ Warning ]
[11:54:06] Warning: The following suspicious (large) shared memory
segments have been found:
[11:55:14]   Checking for passwd file changes
[ Warning ]
[11:55:14] Warning: User 'test' has been removed from the passwd
file.
[11:55:14]   Checking for group file changes


         Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
[ Warning ]
[11:55:14] Warning: Group 'test' has been removed from the group
file.
[11:55:14]   Checking if SSH protocol v1 is allowed
[ Warning ]
[11:55:14] Warning: The SSH and rkhunter configuration options
should be the same:


9.5 Skaner Debsecan (poszukuje exploit-ów)
Exploit – program mający na celu wykorzystanie istniejących błędów w oprogramowaniu. 54

9.5.1 Instalacja

sudo apt install debsecan

9.5.2 Skanowanie i interpretacja wyników

sudo debsecan | grep -e 'medium urgency\|high urgency' | most


Może się zdarzyć, że nasz system jest na tyle czysty, że to polecenie nic nie zwróci.

Gdy nas to nie satysfakcjonuje można użyć polecenia:

$ sudo debsecan | grep -e 'low urgency' | most

CVE-2012-6655 accountsservice (low urgency)
CVE-2016-1585 apparmor (low urgency)
CVE-2016-1585 apparmor-utils (low urgency)
CVE-2018-10910 bluez (low urgency)
CVE-2018-10910 bluez-cups (low urgency)
CVE-2018-10910 bluez-obexd (low urgency)
CVE-2020-5291 bubblewrap (low urgency)
CVE-2016-2781 coreutils (low urgency)
CVE-2020-12802 fonts-opensymbol (low urgency)
CVE-2020-12803 fonts-opensymbol (low urgency)
CVE-2019-14855 gnupg1 (low urgency)
CVE-2019-14855 gnupg1-l10n (low urgency)
CVE-2019-9904 graphviz (low urgency)
CVE-2019-11470 imagemagick (low urgency)
[…]

54 https://pl.wikipedia.org/wiki/Exploit

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
9.6 Skaner Fail2ban
Jest to skaner poszukujący w logach nieudanych prób logowania na udostępniane
usługi (np. SSH). Jednak tutaj pominę ten temat z uwagi na:

   ● Opis konfiguracji serwera Linuks jest poza zakresem tej monografii,

   ● Z SSH należy pracować w oparciu o klucze a nie hasła (logowanie oparte na
        hasłach blokujemy w rozdziale opisującym konfigurację SSHD).

Więcej o fail2ban np. tu: https://linuxize.com/post/install-configure-fail2ban-on-
ubuntu-20-04/


9.7 Skanery sieciowe
Wymienimy tu narzędzia do skanowania komputerów w sieci z krótkim opisem. Tak
byś mógł wiedzieć czego szukać w razie potrzeby.

          Skaner                                      Zastosowanie
nmap                         Rozpoznawanie    systemu    operacyjnego               zdalnych
                             komputerów. Wykrywanie otwartych portów.
xprobe                       Rozpoznawanie         systemu         operacyjnego     zdalnych
                             komputerów.
p0f55                            ● Rozpoznawanie systemu operacyjnego zdalnych
                                    komputerów;
                                 ● Wykrywanie obecności firewall i NAT;
                                 ● Wykrywanie obecności load balancer;
                                 ● Wykrywanie odległości od zdalnego komputera;
                                 ● Wykrywanie czasu pracy zdalnego hosta.

knocker                      Rozpoznawanie    systemu    operacyjnego               zdalnych
                             komputerów. Wykrywanie otwartych portów.
isic                         Tester integralności stosu IP/TCP.




55 Co ciekawe jest to program Amerykanina polskiego pochodzenia.

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
hping2                         ● Testowanie firewall;
                               ● Zaawansowane skanowanie protów;
                               ● Testowanie sieci różnymi protokołami;
                               ● Wykrywanie MTU;
                               ● Zaawansowane traceroute (różnymi protokołami);
                               ● Rozpoznawanie systemu operacyjnego zdalnych
                                 komputerów;
                               ● Wykrywanie czasu pracy zdalnego hosta;
                               ● Tester integralności stosu IP/TCP;
                               ● Przydatne narzędzie edukacyjne do nauki protokołu
                                 IP/TCP.
icmpush                    Pozwala generować własne pakiety ICMP.

nbtscan                    Skanowanie usług SMB i NetBIOS (Windws).

fragrouter                 Przechwytywanie i modyfikacja ruchu w sieci. Program
                           wydaje się niepraktyczny gdy HUB LAN (kablowe) wyszły z
                           użycia (zastąpiły je router z wbudowanymi switch LAN
                           (kablowe) i WLAN (radiowe)).
strobe (pakiet netdiag) Wykrywanie otwartych portów.

irpas                      Zestaw programów:
                              ● ass: autonomiczny skaner systemu;
                              ● cdp: generator pakietów;
                              ● file2cable: wrzuca plik w sieć jako ramkę IP/TCP;
                              ● igrp: wstrzykuje pakiety do przestarzałego
                                 protokołu trasowania IGRP;
                              ● irdpresponder: wysyła pakiety irdpresponder;
                              ● itrace: podobny do traceroute używa ICMP echo;
                              ● tctrace: podobny do traceroute używa TCP SYN.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
10 Automatyzacja monitorowania
bezpieczeństwa
Kiedyś była wypasiona dystrybucja Linuks, francuska Mandrake/Mandriva, która
miała taki bajer i np. informowała w czasie rzeczywistym np. o skanowaniu portów.
Kiedyś bardzo się zdziwiłem jak dostałem na pulpit ostrzeżenie, że z komputera mojej
matki ktoś dokonuje skanowania portów mojej stacji roboczej. Nie muszę dodawać,
że moja matka nie ma nawet pojęcia jak włączyć/wyłączyć sieć w swojej Windzie, tak
więc skanowanie portów było i jest poza jej zasięgiem.

Nie wiem nic by w Ubuntu były jakieś programy monitorujące ruch sieciowy. Jednak
sam opracowałem skrypty monitorujące sieć:


10.1Skrypt monitorujący nawiązywanie i rozłączanie poł.
przychodzących i wychodzących
Skrypt ten jest oparty na tcpdump. Zakodowałem go w Baszu i jestem pewnien jego
poprawności (2022-09-10 i 2022-09-11 parę godzin go testowałem). Skrypt ten nie
działa gdyż tcpdump blokuje się gdy używa się go w skryptach. Więcej na ten temat
było wyżej.


10.2Skrypt monitorujący odrzucanie poł.
przychodzących i wychodzących
Skrypt ten jest oparty na monitorowaniu pliku /var/log/ufw.log programem tail jaki
podaje dane na wejście programu read w pętli while. Ładnie to działa i wszystko
widać jak na dłoni.


10.3Skrypt monitorujący stan aktywnych połączeń w
sieci Internet
Skrypt jest oparty na programie netstat i wywołuje go co parę sekund. Jego wyjście
po przekształceniu jest czytelne ale nie do oglądania w czasie rzeczywistym bo raz, że
to atrakcja jak wędkowanie, a dwa ekran miga jak diabli.




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
11 Skryte korzystanie z systemu Linuks
11.1Skrypt czyszczący
   Należy sobie zaprogramować skrypt czyszczący gdyż nie wieadomo po co w
           sytemie są gromadzone dane o historii działań użytkownika.

Nie wiadmo też dlaczego w systemie jest mnóstwo plików cache. Usuwanie tych
plików nie wprowadza żadnych opóźnień w działaniu systemu ani programów!!!

Ten skrypt przed niczym nie zabezpiecza, ale daje święty spokój. Czyścić należy:

   ● Historię poleceń konsoli;

   ● Historię edytowanych plików;

   ● Historię odwiedzanych stron WWW;

   ● Kasować katalogi i pliki tmp, cache i hist;

   ● Archiwa w katalogach ukrytych w $HOME/.* ;

   ● Zbędne logi.

Dodatkowo: należy przejrzeć pliki konfiguracyjne często używanych programów i spr.
czy w nich jest zapisywana historia działań użytkownika.

Skrypt czysc.sh należy uruchamiać gdy:

   ● Uruchamia się system - robi to czysc.service (go też należy zaprogramować)
       wywołując kopię /usr/bin/czysc.sh;

   ● Gdy          zamyka         się        system         -       wywołując        kopię
       /lib/systemd/system-shutdown/czysc.sh;

   ● Gdy          usypia         się       system          -       wywołując        kopię
       /lib/systemd/system-sleep/czysc.sh .


11.2Wyłącz raporty o błędach
sudo   systemctl stop apport.service
sudo   systemctl disable apport.service
sudo   systemctl mask apport.service
sudo   apt remove --purge -y ubuntu-report
sudo   systemctl stop whoopsie.service
sudo   systemctl disable whoopsie.service

           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
sudo systemctl mask whoopsie.service
sudo apt remove --purge -y whoopsie


11.3Wyłącz raporty popularności pakietów
sudo apt remove --purge -y popularity-contest

Aby zablokować użytkownikom dostęp do tej usuniętej usługi edytuję plik:

sudo nano /etc/dconf/profile/userfile

I dodaję w nim zawartość:

user-db:user
system-db:local

Następnie wprowadzam zmiany w życie:

sudo dconf update


11.4Wyłącz informowanie o obecności w sieci
Dotyczy to chyba wyłącznie starszych wersji Ubuntu (przed 20.04).

Aby to wyłączyć należało wyedytować plik:

sudo nano /var/lib/NetworkManager/NetworkManager-intern.conf

I zmienić w nim flagę:

[connectivity]
set.enabled=false




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
12 Skryte korzystanie z sieci Internet
12.1Największy problem - ID systemu i przeglądarki
Przeglądarka WWW łącząc się z serwerem http lub https wysyła ID systemu i ID
samej przeglądarki. Obecnie nie ma żadnej ogólnodostępnej metody jak to wyłączyć.

Drugą sprawą jest to, że publicznie dostępne są bazy adresów IP z podziałem na kraje
i operatorów.

Trzecia sprawa, to fakt, że możesz łatwo sprzedać siebie za 5zł. firmie
telekomunikacyjnej. Nazywa się to "zniżka za zgody marketingowe". Nie oszukujmy
się: firmy telekomunikacyjne sprzedają wszystko czym dysponują na temat
swoich klientów: Gdzie?, kiedy? i jak długo dzwoni? Na jakie strony wchodzi,
kiedy? i ile tam siedzi?

   Tak więc mają zakresy IP na kraj informacje od operatora sieci i ID twojego
                                systemu i przeglądarki.

     WIĘC JESTEŚ ŚLEDZONY W 100% PRZEZ WSZYSTKICH KTÓRZY TEGO CHCĄ.


12.2Serwery DNS
Serwery DNS tłumaczą nazwy domenowe takie jak wp.pl albo onet.pl na numery IP.
Oczywiście jest serwerów DNS jest pełno bo ich właścicielom dają dużo informacji o
tym co jest popularne w sieci. Oczywiście nas interesuje skryte używanie Internet,
tak więc powinniśmy użyć czegoś najwiarygodniejszego - w tym wypadku serwerów
OpenDNS.

# IPv4 Normalne:
208.67.222.222, 208.67.220.220, 208.67.222.220, 208.67.220.222
# IPv4 FamilyShield:
208.67.222.123, 208.67.220.123
# IPv6:
2620:0:ccc::2, 2620:0:ccd::2

Należy je ustawić konfigurując sieć netplan na każdym kompie w sieci oraz na
routerze w sieci lokalnej.




           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
12.3Przeglądarka TorBrowser
TorBrowser     to     zmodyfikowana    przeglądarka    Firefox.   Usunięto    z     niej   kod
odpowiedzialny za śledzenie i dodano klienta sieci Tor.

Sieć Tor (z którego korzysta TorBrowser) tworzy           wirtualną i szyfrowaną sieć w
obrębie Internet i maskuje aktywność rzeczywistego klienta tej sieci (czyli moją stację
roboczą). Tak więc jak używam Tor, to mój dostawca Internet nie wie jakie strony
odwiedzam. Serwer WWW z jakim się łączę też nie wie skąd się łączę. Jedyne co
można podsłuchać, to ruch między końcówką sieci Tor a serwerem WWW z jakim się
łączysz. Ale tylko wtedy, gdy serwer nie obsługuje https. Działa to tak:

   ● Uruchamiasz TorBrowser

   ● TorBrowser wchodzi do wirtualnej, szyfrowanej sieci Tor;

   ● Podajesz adres serwera WWW;

   ● Żądanie dostępu do serwera przechodzi przez sieć Tor;

   ● Serwer WWW zamiast twojego komputera widzi końcówkę sieci Tor tak
       jakbyś był w zupełnie innym miejscu na świecie.

        W praktyce spec. służby potrafią inwigilować sieć Tor. Wiadomo, że
     amerykańskie sądy posługują się dowodami zebranymi przez te służby.

TorBrowser najprościej zainstalować poleceniem:

sudo apt install torbrowser-launcher

To polecenie instaluje jakiegoś demona Tor a nie TorBrowser. Moim zdaniem jest
                                      to podejrzane.

           Dlatego nie zalecam używania pakietu torbrowser-launcher.

tor-launcher przy pierwszym uruchomieniu pobierze i zainstaluje przeglądarkę Tor z
oficjalnej strony.

             Zalecam pobranie TorBrowser z oficjalnej strony projektu.

Gdy używasz TorBrowser partycja z kat. $HOME nie może być montowana z flagą
                                 noexec (plik /etc/fstab).

                     TorBrowser należy zawsze uruchamiać w Firejail.




           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
12.4Przeglądarka Waterfox
  Z przeglądarki Waterfox nie należy korzystać, bo brak możliwości wpłacania
                              pieniędzy na rzecz twórców.

   Z przeglądarki Waterfox nie należy korzystać, bo nie działa ona w Firejail.

Waterfox     to   zmodyfikowana      przeglądarka     FireFox.   Usunięto     z     niej   kod
odpowiedzialny za śledzenie. Dodatkowo ma ona wsparcie dla starszych wtyczek
używanych dawniej w FireFox.

Paczka dla Linuks ma postać zwykłego archiwum bzip2. Dlatego wystarczy ją pobrać,
rozpakować i skopiować do katalogu $HOME.

 Gdy używasz Waterfox partycja z kat. $HOME nie może być montowana z flagą
                                noexec (plik /etc/fstab).


12.5Poprawa prywatności w TorBrowser, Waterfox i
Firefox
TorBrowser i Waterfox to w pełni kompatybilne warianty Firefox.

         Wszystkie rozszerzenia z Firefox działają w TorBrowser i Waterfox.

                    Rozszerzenia z Chrome nie działają w Firefox.

         Często rozszerzenia mają odrębne wersje dla Chrome i dla Firefox.

12.5.1       Włącz kasowanie ciasteczek przy zamykaniu

12.5.2       Włącz kasowanie całej historii przy zamykaniu

12.5.3       Zainstaluj dodatek HTTPS Everywhere
Ten dodatek powoduje, że przeglądarka (gdy ma taką możliwość) to faworyzuje
szyfrowane połączenia czyli HTTPS.

12.5.4       Zainstaluj dodatek Privacy Badger
Ten dodatek monitoruje na stronach reklamy i elementy które mogą Ciebie śledzić i je
wyłącza gdy wykryje ich aktywność na 3 różnych stronach WWW.

 Privacy Badger nie blokuje reklam tak długo jak one nie usiłują śledzić twoich
                                 działań w Internecie.



           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
    Po za instalowaniu przeglądarki i jej dodatków należy starannie przejrzeć
                                     wszystkie ich opcje.


12.6Przeglądarka Chromium
  Z przeglądarki Chromium nie należy korzystać, bo brak możliwości wpłacania
                                pieniędzy na rzecz twórców.

   Z przeglądarki Chromium nie należy korzystać, bo nie działa ona w Firejail 56.

Chromium to Chrome bez śledzenia. Czyli Chromium dla Chrome jest tym co
Waterfox dla Firefox.

Jest możliwość wejścia do sieci Tor przez Chromium i Chrome ale to wymaga
kompilacji pakietu Tor ze źródeł i instalacji odpowiedniej wtyczki57.

Aby zainstalować Chromium należy wydać polecenia:

   ● W Debianie:

       sudo   apt update
       sudo   apt install snapd
       sudo   snap refresh
       sudo   snap install chromium

   ● W Ubuntu

       sudo snap install chromium


12.7Poprawa prywatności w Chromium i Chrome
Chromium to w pełni kompatybilny klon Chrome.

                W Chromium działają wszystkie rozszerzenia Chrome.

                     Rozszerzenia z Firefox nie działają w Chrome.

         Często rozszerzenia mają odrębne wersje dla Chrome i dla Firefox.




56 Chromium jest publikowany w paczce Snap.
57 Jest to opisane tu: https://www.techrepublic.com/article/how-to-install-tor-for-chrome-for-even-
   more-private-browsing .

            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
12.7.1      Włącz kasowanie ciasteczek przy zamykaniu

12.7.2      Włącz kasowanie całej historii przy zamykaniu

12.7.3      Zainstaluj dodatek HTTPS Everywhere
Ten dodatek powoduje, że przeglądarka (gdy ma taką możliwość) to faworyzuje
szyfrowane połączenia czyli HTTPS.

12.7.4      Zainstaluj dodatek Privacy Badger
Ten dodatek monitoruje na stronach reklamy i elementy które mogą Ciebie śledzić i je
wyłącza gdy wykryje ich aktywność na 3 różnych stronach WWW.

 Privacy Badger nie blokuje reklam tak długo jak one nie usiłują śledzić twoich
                                działań w Internecie.

   Po za instalowaniu przeglądarki i jej dodatków należy starannie przejrzeć
                                 wszystkie ich opcje.

12.7.5      Autouzupełniaj wyszukiwania i adresy URL
Wyłącz to na stronie:

chrome://settings/syncSetup

12.7.6      Ulepsz wyszukiwanie i przeglądanie
Wyłącz to na stronie:

chrome://settings/syncSetup

12.7.7   Wyczyść pliki cookie i dane witryn w momencie
zamknięcia Chromium/Chrome
Włącz to na stronie:

chrome://settings/cookies

12.7.8      Wysyłaj żądanie „Bez śledzenia” podczas przeglądania
Włącz to na stronie:

chrome://settings/cookies




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
12.7.9  Kontynuuj działanie aplikacji w tle po zamknięciu
Chromium
Wyłącz to na stronie:

chrome://settings/privacy


12.8Wyłączenie obsługi JavaScript w przeglądarkach
Nie zalecam. Bo jak się wyłączy Java Script to ciągle trzeba go włączać by móc
normalnie korzystać z funkcji stron WWW. Jak chcesz się przekonać, to:

12.8.1       TorBrowser, Waterfox, Firefox
W przypadku TorBrowser zalecam najpierw usunięcie dodatku NoScript.

Zainstaluj dodatek Disable JavaScript i ikoną obok paska adresu włączasz i wyłączasz
JavaScript globalnie.

12.8.2       Chromium, Chrome
JavaScript wyłączasz w opcjach globalnie i włączasz go w razie potrzeby dla wybranej
stronie ikonką na pasku adresu.


12.9Inne przydatne dodatki
12.9.1       I don't care about cookies

12.9.1.1     TorBrowser, Waterfox i Firefox
https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-about-cookies/ ;

12.9.1.2     Chromium i Chrome
https://chrome.google.com/webstore/detail/i-dont-care-about-cookies/
fihnjjcciajhdojfnbdddfaoknhalnja .

12.9.2   Otwieranie linku i przejście do nowej karty jednym
mlaskiem środkowego przycisku myszy

12.9.2.1     TorBrowser, Waterfox i Firefox
Otwierasz stronę konfiguracji:

about:config


           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
I zmieniasz: browser.tabs.loadInBackground = true

na: browser.tabs.loadInBackground = false

12.9.2.2     Chromium i Chrome
Zainstaluj dodatek:

https://chrome.google.com/webstore/detail/switch-to-new-tab/
lfpdoeknpnclenhlmblmenpafkbcgdbg


12.10        Wyszukiwarki
12.10.1      DuckDuckGo.com
Zaletą tej wyszukiwarki jest to, że nie śledzi oraz to, że nie szykanuje użytkowników
sieci Tor. Do prostych zapytań jest wystarczająca. Jednak nie do wszystkich.

                Dlatego do typowych zapytań zalecam kombinację:

                           TorBrowser + DuckDuckGo.com .

12.10.2      Google.com
Tu mamy wyniki wyszukiwania obecnie dla cywili chyba najlepsze na świecie.
Największe też jest tu szpiegostwo. Google szykanuje użytkowników sieci Tor.

     Dlatego w ostateczności, do zapytań specjalnych zalecam, kombinację:

                                  Firefox + Google.com


12.11        Skryte przeglądanie sieci na co dzień
W praktyce w 2022r. na co dzień trzeba korzystać z 2 przeglądarek:

   ● TorBrowser z DuckDuckGo.com (zawsze od tego zaczynam) do:

      ● Zwykłych zapytań;

      ● Wszystkiego co nie blokuje Tor i z czym sobie radzi DuckDuckGo.com;

   ● Firefox z Google.pl gdy:

      ● Tor jest blokowany przez dany serwer;

      ● DuckDuckGo.com nie daje wystarczająco dokładnych wyników;

      ● Korzystasz z którejś z pozostałych usług Google;


           Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
     ● Korzystasz z operacji płatniczych.


12.12       Klient poczty elektronicznej Thunderbird
12.12.1     Wyłącz szpiegowanie
Hamburger (po prawej u góry) → Preferencje → Prywatność i bezpieczeństwo →
Dane zbierane przez program Thunderbird




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego
13 Lektura uzupełniająca
https://wiki.debian.org/SetupGuides/SecurePersonalComputer

https://wiki.ubuntu.com/BasicSecurity

https://www.ncsc.gov.uk/collection/end-user-device-security/platform-specific-
guidance/ubuntu-18-04-lts

https://www.techrepublic.com/article/how-to-check-for-weak-passwords-on-your-
linux-systems-with-john-the-ripper

https://securityboulevard.com/2020/08/linux-server-security-10-linux-hardening-
security-best-practices

https://www.makeuseof.com/linux-hardening-tips-sysadmins

https://www.debian.org/doc/manuals/securing-debian-manual/index.en.html

https://wiki.debian.org/SetupGuides/SecurePersonalComputer

https://linuxize.com/post/how-to-setup-a-firewall-with-ufw-on-ubuntu-20-04

https://www.reddit.com/r/privacytoolsIO/comments/g31pfm/ubuntu_security_guide

https://www.maketecheasier.com/secure-newly-installed-ubuntu

https://askubuntu.com/questions/579552/how-can-i-have-a-very-secure-ubuntu-
desktop-system




PO PRZECZYTANIU TEJ MONOGRAFII JESTEŚ DOPIERO NA POCZĄTKU DROGI KU
OŚWIECENIU!!!




          Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego

Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906466
Author: K
Date: Tue, 20 Sep 2022 08:24
5 lines
1246 bytes
On 19/09/2022 15:49, Jacek Marcin Jaworski wrote:
> Konfiguracja Systemów Z Rodziny

wez zrob z tego pdf-a i gdzies wystaw. jak beda zainteresowani to sobie 
to przeczytaja.
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906468
Author: Jacek Marcin Jaworski
Date: Tue, 20 Sep 2022 09:25
1 lines
1495 bytes
Wkleiłem tu tą monografię tylko ku pamięci - dla potomnych. Jak ktoś chce to mogę ją wysłać w pdf.
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906470
Author: dantes
Date: Wed, 21 Sep 2022 05:51
15 lines
1416 bytes
Dnia Mon, 19 Sep 2022 07:49:18 -0700 (PDT), Jacek Marcin Jaworski
napisał(a):

> Konfiguracja Systemów Z Rodziny
>             Ubuntu
>                    autor: Jacek Marcin Jaworski
>               pseudonim: Energo Koder
>                         utworzono:     2020-07-12
>                wersja: 3373 z dnia:    2022-09-19
>                            system:     Linuks - distro: Kubuntu, Triskel
>                          program:      LibreOffice
> [...]
>            Wszelkie prawa zastrzeżone © 2020-2022 przez Jacka Marcina Jaworskiego

Dodaj rozdział o VPN.
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906472
Author: Jacek Marcin Jaworski
Date: Wed, 21 Sep 2022 13:05
10 lines
1781 bytes
środa, 21 września 2022 o 07:51:35 UTC+2 dantes napisał(a):

> Dodaj rozdział o VPN.

Cytat:
"ZAMKNIĘCIE PROJEKTU TEJ
MONOGRAFII
W PIERWSZYCH DNIACH WRZEŚNIA 2022 UZYSKAŁEM NIEPODWAŻALNY DOWÓD O
BRAKU MOŻLIWOŚCI ZABEZPIECZENIA SYSTEMU Z GRATISOWM SYSTEMEM
KUBUNTU Z RODZINY DEBIAN/UBUNTU. "
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906475
Author: dantes
Date: Wed, 21 Sep 2022 14:17
37 lines
2317 bytes
Dnia Wed, 21 Sep 2022 06:05:01 -0700 (PDT), Jacek Marcin Jaworski
napisał(a):

> środa, 21 września 2022 o 07:51:35 UTC+2 dantes napisał(a):
> 
>> Dodaj rozdział o VPN.
> 
> Cytat:
> "ZAMKNIĘCIE PROJEKTU TEJ
> MONOGRAFII
> W PIERWSZYCH DNIACH WRZEŚNIA 2022 UZYSKAŁEM NIEPODWAŻALNY DOWÓD O
> BRAKU MOŻLIWOŚCI ZABEZPIECZENIA SYSTEMU Z GRATISOWM SYSTEMEM
> KUBUNTU Z RODZINY DEBIAN/UBUNTU. "

Dobra. Wprowadźmy jakąś logikę w to "nasze" rozumowanie. Niewątpliwym jest
fakt, iż napisanie przedmiotowej monografii zajęło Ci więcej niż "kilka dni
września". Zacząłeś zatem pisać ją odpowiednio wcześnie, bo jak  sam
piszesz "nie jest Ci wszystko jedno" [cyt.]:
"Miejmy świadomość, że ta monografia powstała tylko z dwóch powodów:
1. Mi nie jest wszystko jedno!
2. Tysiącom polskich adminów jest wszystko jedno to co się dzieje 
   z waszymi kompami."

Jednak w trakcie jej pisania "uzyskałeś niepodważalny dowód" i "zamknąłeś
monografię", a informację (napisaną wielkimi literami) wtłoczyłeś na jej
początek.

I teraz:
1. Proponowanego "rozdziału" dot. VPN nie dopiszesz bo "zamknąłeś projekt
tej monografii"?

Czy też 

2. Nie dopiszesz rozdziału dot VPN bo "uzyskałeś
niepodważalny dowód o braku możliwości zabezpieczenia systemu z gratisowym
systemem (...) z rodziny Debian", niezależnie od faktu ewentualnego użycia
bądź nie, proponowanego VPN'a?
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906477
Author: Jacek Marcin Jaworski
Date: Wed, 21 Sep 2022 14:25
6 lines
1924 bytes
środa, 21 września 2022 o 16:17:08 UTC+2 dantes napisał(a):
> Dnia Wed, 21 Sep 2022 06:05:01 -0700 (PDT), Jacek Marcin Jaworski 
> napisał(a):
> > środa, 21 września 2022 o 07:51:35 UTC+2 dantes napisał(a): 

Z mojego p. widzenia VPN nic nie zmienia. Już b. wiarygodny jest Tor Browser, bo każda sesja wychodzi z innej końcówki sieci Tor. Ale wiem,  ze w  SZAP w sądach mają dowody na wchodzenie na określone strony przez sieć Tor.
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906481
Author: dantes
Date: Wed, 21 Sep 2022 15:33
27 lines
2190 bytes
Dnia Wed, 21 Sep 2022 07:25:31 -0700 (PDT), Jacek Marcin Jaworski
napisał(a): 

> środa, 21 września 2022 o 16:17:08 UTC+2 dantes napisał(a):
>> Dnia Wed, 21 Sep 2022 06:05:01 -0700 (PDT), Jacek Marcin Jaworski
>> napisał(a):
>>> środa, 21 września 2022 o 07:51:35 UTC+2 dantes napisał(a):
> 
> Z mojego p. widzenia VPN nic nie zmienia. 
Stosowałeś?

> Już b. wiarygodny jest Tor Browser, bo każda sesja wychodzi 
> z innej końcówki sieci Tor. 
No. Szkoda tylko, że "czasem" Twój sprzęt jest "końcówką" dla innego
użytkownika  sieci Tor.

> Ale wiem, ze w  SZAP w sądach mają dowody na wchodzenie na określone 
> strony przez sieć Tor.
Nie żebym się czepiał, ale jeśli już to w SZA. W amerykańskich stanach
żadna firma nie sprzeda oprogramowania jeśli nie "wprawi" tylnej furtki 
dla trzyliterowych agencji. 

Tak sobie myślę, jakby tak zrobić SLAX-a, tylko z przeglądarką, wg. Twojego
przepisu. Ponad dekadę temu wykorzystywałem go w dualboot (z pomocą
PLOP-a). Wówczas SLAX 6 bazował na Slackware, obecnie SLAX 9 bazuje na
Debianie. I działa  wg trochę innej filozofii dot "pakietów/paczek".
 
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906373
Author: Jacek Marcin Jaworski
Date: Wed, 21 Sep 2022 15:48
14 lines
2341 bytes
środa, 21 września 2022 o 17:32:59 UTC+2 dantes napisał(a):

> > Z mojego p. widzenia VPN nic nie zmienia.
> Stosowałeś?

Nie bo jasne jest, że dostawca usługi VPN tak samo może wysyłać moje logi do każdej służby.
Wiesz jakie to rozczarowujące, że operator telefonu radiowego oferuje zniżkę 5zł za zgody marketingowe. I wszyscy się cieszą bo nie dostają żadnych reklam. Podczas gdy logi z twojej aktywności sprzedają każdemu na świecie.

> > Już b. wiarygodny jest Tor Browser, bo każda sesja wychodzi 
> > z innej końcówki sieci Tor.
> No. Szkoda tylko, że "czasem" Twój sprzęt jest "końcówką" dla innego 
> użytkownika sieci Tor.

Nie do tego jest konieczna instalacja demona. Tor Browser to klient sieci Tor.
Re: Konfiguracja Systemów Z Rodziny Ubuntu
#906478
Author: dantes
Date: Wed, 21 Sep 2022 16:20
32 lines
2289 bytes
Dnia Wed, 21 Sep 2022 08:48:44 -0700 (PDT), Jacek Marcin Jaworski
napisał(a): 

> środa, 21 września 2022 o 17:32:59 UTC+2 dantes napisał(a): 
> 
>>> Z mojego p. widzenia VPN nic nie zmienia.
>> Stosowałeś?
> 
> Nie bo jasne jest, że dostawca usługi VPN tak samo może wysyłać moje
> logi do każdej służby.
A co stoi na przeszkodzie by stać się samemu "dostawca usługi VPN"?

> Wiesz jakie to rozczarowujące, że operator
> telefonu radiowego oferuje zniżkę 5zł za zgody marketingowe.
A tam, co tam 5 zł. Wiesz jak ktoś "policzył", że ponad 80% gości 
pewnego "Sylwestra w Zakopanem", to klienci dwóch popularnych 
dyskontów spożywczych?

> I wszyscy się cieszą bo nie dostają żadnych reklam. Podczas gdy logi z twojej
> aktywności sprzedają każdemu na świecie. 
> 
No to pozostaje Nokia 6310 bez i, albo 6210... ;)


>>> Już b. wiarygodny jest Tor Browser, bo każda sesja wychodzi z innej
>>> końcówki sieci Tor.
>> No. Szkoda tylko, że "czasem" Twój sprzęt jest "końcówką" dla innego
>> użytkownika sieci Tor.
> 
> Nie do tego jest konieczna instalacja demona. Tor Browser to klient
> sieci Tor.
.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads