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
Author: Jacek Marcin Jaworski
Date: Mon, 19 Sep 2022 14:49
Date: Mon, 19 Sep 2022 14:49
1387 lines
76993 bytes
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
Author: Jacek Marcin Jaworski
Date: Mon, 19 Sep 2022 14:50
Date: Mon, 19 Sep 2022 14:50
998 lines
39357 bytes
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
Author: Jacek Marcin Jaworski
Date: Mon, 19 Sep 2022 14:51
Date: Mon, 19 Sep 2022 14:51
1493 lines
54709 bytes
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
Author: K
Date: Tue, 20 Sep 2022 08:24
Date: Tue, 20 Sep 2022 08:24
5 lines
1246 bytes
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
Author: Jacek Marcin Jaworski
Date: Tue, 20 Sep 2022 09:25
Date: Tue, 20 Sep 2022 09:25
1 lines
1495 bytes
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
Author: dantes
Date: Wed, 21 Sep 2022 05:51
Date: Wed, 21 Sep 2022 05:51
15 lines
1416 bytes
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
Author: Jacek Marcin Jaworski
Date: Wed, 21 Sep 2022 13:05
Date: Wed, 21 Sep 2022 13:05
10 lines
1781 bytes
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
Author: dantes
Date: Wed, 21 Sep 2022 14:17
Date: Wed, 21 Sep 2022 14:17
37 lines
2317 bytes
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
Author: Jacek Marcin Jaworski
Date: Wed, 21 Sep 2022 14:25
Date: Wed, 21 Sep 2022 14:25
6 lines
1924 bytes
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
Author: dantes
Date: Wed, 21 Sep 2022 15:33
Date: Wed, 21 Sep 2022 15:33
27 lines
2190 bytes
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
Author: Jacek Marcin Jaworski
Date: Wed, 21 Sep 2022 15:48
Date: Wed, 21 Sep 2022 15:48
14 lines
2341 bytes
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
Author: dantes
Date: Wed, 21 Sep 2022 16:20
Date: Wed, 21 Sep 2022 16:20
32 lines
2289 bytes
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