struktura katalogów linux

Struktura katalogów Linux

poradniki

Struktura katalogów Linux drzewo katalogów linux

header_wpis
W systemie GNU/Linux zaimplementowano hierarchiczną (drzewiastą) strukturę katalogów, która jest dość ściśle określona wg FHS (Filesystem Hierarchy Standard). Dzięki takiemu podejściu można utworzyć tyle katalogów, ile potrzeba do pogrupowania plików w naturalny sposób. Dodatkowo każdy użytkownik może mieć swój prywatny katalog przeznaczony na własną hierarchię
KatalogAngielska nazwa źródłowaOpis
/rootGłówny katalog w systemach uniksowych zwany korzeniem (ang. root). Cała struktura katalogów umiejscowiona jest w tym katalogu.
/bootboot processPliki programu rozruchowego
/binbinariesPodstawowe pliki wykonywalne dostępne dla wszystkich użytkowników
/devdevicesPliki urządzeń
/etcet ceteraPliki konfiguracyjne. Dawniej znajdowały się tutaj różne pliki nieprzynależące do pozostałych kategorii
/homehome directoryKatalogi domowe użytkowników
/liblibrariesBiblioteki programów i moduły jądra. Nowa wersja standardu definiuje również możliwość dodania katalogów dla innych architektur np. lib64 dla x86_64
/mntmount pointTymczasowy punkt montowania
/mediamediaPunkty montowań dla pamięci zewnętrznych
/opt/optionalDodatkowe oprogramowanie
/proc/processWirtualny system plików informujący o stanie systemu
/root/ Katalog domowy superużytkownika root
/runruningInformacje o działaniu systemu od ostatniego jego uruchomienia
/sbinsystem binariesPliki wykonywalne do zarządzania systemem
/srv/servedRzadko używany katalog zawierający dane udostępniane często tylko do odczytu przez system
/tmptemporaryPliki tymczasowe
/usruserDrugorzędowa hierarchia. Tutaj umiejscowione są głównie pliki wykonywalne użytkowników
/usr/bin/binaryJak w hierarchii pierwszorzędowej, ale nie wymagane do uruchomienia czy naprawy systemu
/usr/includeincludeStandardowe pliki nagłówkowe
/usr/liblibraryJak w hierarchii pierwszorzędowej, ale nie wymagane do uruchomienia czy naprawy systemu
/usr/local/local dataTrzeciorzędowa hierarchia danych lokalnych
/usr/share/sharedDane współdzielone między architekturami
/usr/sbin/system binariesJak w hierarchii pierwszorzędowej, ale nie wymagane do uruchomienia czy naprawy systemu
/varvariableCzęsto modyfikowane pliki np. logi, bazy danych
/var/cache/cachePliki pamięci podręcznej programów
/var/lock/lockPliki blokady zasobów będących w użyciu
/var/log/loggingLogi aplikacji
/var/mail/mailboxesSkrzynki pocztowe
Fail2Ban blokowanie ataków brute force instalacja i konfiguracja

Fail2Ban blokowanie ataków brute force instalacja i konfiguracja

poradniki

Fail2Ban blokowanie ataków brute force instalacja i konfiguracja

header_wpis

Fail2Ban to aplikacja, która odpowiada za blokowanie podejrzanych, zakończonych niepowodzeniem prób logowania się do usług świadczonych przez nasz serwer. Podsumowując zabezpiecza przed atakami typu brute force.
Fail2Ban zabezpiecza przed atakami typu brute force. Aplikacja opiera się na analizie logów i wychwytywaniu nieautoryzowanych prób logowania się do różnego rodzaju usług (np. ssh, smtp, pop3, imap itp.), w następstwie czego blokuje adres IP atakującego za pomocą reguł iptables lub dodając wpis do pliku /etc/hosts.deny

Instalacja Fail2Ban

sudo apt update
sudo apt install fail2ban

Uruchamiamy Fail2Ban

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Konfiguracja Fail2Ban

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Dodajemy nasz adres IP do wyjątków
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.1.120
Ustwiania czasu blokady ustawiamy w ten sposób oczywiście wartości możemy zmienić według własnego uznania
	
bantime  = 1d
findtime  = 10m
maxretry = 5
Blokada błędnych logowań ssh
	
[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w
 
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Jeżeli chcemy otrzymywać powiadomienia email o blokadach dodaje następujące polecenia
	
action = %(action_mw)s
destemail = nasz_adres_email
sender = root@domena.pl
12 podstawowych poleceń Linuksa dla początkujących

12 podstawowych poleceń Linuksa dla początkujących

poradniki

12 podstawowych poleceń Linuksa dla początkujących

header_wpis

Pokaż katalog roboczy.

Pokaż katalog roboczy. Polecenie to wyświetla ścieżkę katalogu w którym akurat pracujemy
pwd

Tworzenie katalogu

mkdir nazwa_katalogu

Wyświetlenie zawartości katalogu

ls
wyświetli nam wszystkie pliki wraz z uprawnieniami
ls -l

Przechodzenie międdzy katalogami

cd

Usuń pliki

rm nazwa_pliku

Kopiuj plik

cp nazwa_pliku

Przenieś plik

mv nazwa_pliku nowa_nazwa_pliku

Tworzenie pustego pliku

touch nazwa_pliku.txt

Zmiana uprawnień do wykonania pliku

chmod +x nazwa_pliku

Włącznie wyłączenie komputera

Włącznie wyłączenie komputera
sudo shutdown paramtery
Natychmiastowe wyłącznie komputera
sudo shutdown -h now

Ponowne uruchomienie restart

sudo shutdown -r
polecenie grep wyszukiwanie wyrazen w tekscie linux

Polecenie grep wyszukiwanie wyrażeń w tekście Linux

poradniki

Polecenie grep wyszukiwanie wyrażeń w tekście Linux

header_wpis
Narzędzie służące do wyszukiwania grep. Składnia polecenia jest następująca:
grep [-opcje] wzorzec [plik lub ścieżka]

Polecenie grep

Najczęściej używane opcje grep:

-i ignoruje wielkość liter
-r wyszukuje również w sub katalogach ścieżki
-l pokazuje nazwy plików, w których znajduje się pasujący wzorzec
-n pokazuje linię, w której występuje szukany wzorzec
-v pokazuje linie, które nie zawierają wzorca
-F traktuje szukany wzorzec, jako escapowany string
-E traktuje szukany wzorzec, jako rozszerzone wyrażenie regularne
-e informuje, że następny argument, jest wzorcem

grep -e '-wzorzec'

 

-c zwróci nam liczbę pasujących fraz
-x zwróci wynik, tylko i wyłącznie, jeżeli pasuje cała linia
-m[cyfra] przerwie wyszukiwanie, po znalezieniu pierwszych [cyfra] rezultatów

rep -m50 'error 35'

 

Znaki specjalne:

W celu skutecznego znalezienia fraz, które nas interesują, niektóre znaki powinny być escapeowane, są to m.in.

; ' " ` # $ & * ? [ ] < >  { } \ | ( )

 

Escapeowania dokonujemy za pomocą backslasha \, przykładowo:

grep '125\*\*\*\*125' plik

 

pozwoli nam, na wyszukanie 125****125 w pliku. Co ciekawe, jesteśmy również w stanie, znaleźć to bez escapeowania, za pomocą opcji -F, tj.

grep -F '125****125' plik

 

Szukanie listy elementów:

Istnieje możliwość wyszukiwania listy znaków, za pomocą [][1-9] da nam taki sam rezultat, jak [123456789][a-d] da nam taki sam rezultat, jak [abcd]

Jeżeli chcemy wyszukać występowanie jakichś słów, możemy skorzystać z:

grep 'slowo_pierwsze\|slowo_drugie'

 

lub w jeszcze innej postaci:

grep 'Zamówienie numer \(1\|3\)'

 

które zwróci nam występowanie fraz:
Zamówienie numer 1 lub Zamówienie numer 3

Apostrof, czy cudzysłów?

Dobrą praktyką, jest używanie apostrofów, zamiast cudzysłowu. Szukana fraza, w apostrofie traktowana jest jako string, natomiast w cudzysłowie, jest interpretowana.
Najprościej, można to zobaczyć na przykładzie:

echo "$(date)"

 

zwróci nam datę, natomiast:

echo '$(date)'

 

zostanie potraktowane jako string.

Wyrażenia regularne oraz łączenie poleceń:

Polecenie grep obsługuje również wyrażenia regularne, przykładowo, chcemy znaleźć adresy IP, występujące w pliku:

grep -E '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' plik

 

można również łączyć grepa z innymi komendami, za pomocą potoku:

tail -f acces.log | grep ' 200 '

 

powyższa linijka, pokaże nam „na żywo”, wszystkie wpisy, wpadające z kodem 200.

Jak usunac GRUB-a z partycji EFI

Jak usunąć GRUB-a z partycji EFI

poradniki

Jak usunąć GRUB-a z partycji EFI

header_wpis
Partycja systemowa EFI to mała partycja sformatowana w systemie plików FAT 32 w urządzeniu do przechowywania danych, które jest używane w komputerach zgodnych z interfejsem Unified Extensible Firmware Interface. Jest generowany automatycznie podczas instalacji systemu operacyjnego. Mieliśmy kilka systemów operacyjnych Windows obok Linux, którego chcieliśmy potestować ale go usuneliśmy i chcemy zrobić z porządek.
Uruchamiamy nasz wiersz poleceń z prawami administratora i wpisujemy
diskpart
Widzimy listę naszych dysków z której to musimy wybrać nasz dysk systemowy wpisując
sel nazwa_dysku
np
 sel Disk
Teraz listujemy czyli wyświetlamy listę wszystkich partycji na danym dysku
list vol
i wybieramy nasz partycję EFI. Oznaczona będzie jako System, system plików FAT32 i 100MB. teraz musimy nadaj jej literę dysku oczywiście wolną żeby nie było nie miłych niespodzianek
sel vol 2
assign letter=S:
Wychodzimi z diskpart poleceniem exit W CDM wpisujemy kolejno
cd /d S:
cd EFI
dir
Widzimy teraz całą zawartość naszego katalogu EFI. Chcąc usunąć niechciany katalog wpisujemy następujące polecenie:
rmdir /s nazwa_katalogu
I już po wszystkim.
Generowanie losowych haseł w konsoli Linux

Generowanie losowych haseł w konsoli Linux

poradniki

Generowanie losowych haseł w konsoli Linux

header_wpis
Słowo wstępne raczej chyba zbędne w tym temacie, więc zabieramy się za generowanie losowych haseł w konsoli Linux.

tr -dc A-Za-z0-9 </dev/urandom | head -c 12 ; echo ''
12 oznacza ile znaków chcemy mieć w naszym haśle, A-Za-z0-9 czyli litery od A do Z małe duże oraz cyfry od 0 do 9
Tym poleceniem do naszego hasła dodajemy znaki specjalne
 	
tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~' </dev/urandom | head -c 13  ; echo
Logowanie do serwera za pomocą SSH - generowanie kluczy RSA

Logowanie do serwera za pomocą SSH – generowanie kluczy RSA

poradniki

Logowanie do serwera za pomocą SSH - generowanie kluczy RSA

header_wpis

Logowanie do serwera za pomocą SSH wymaga podania hasła proste i oczywiste. Z czasem może to stać się uciążliwe, tym bardziej że człowiek jest z natury leniwy. Jak to obejść ?
Istnieje szybkie i bardzo proste rozwiązanie a mianowicie generowanie kluczy RSA

Generowanie kluczy RSA

ssh-keygen -t rsa
Otrzymujemy komunikat zwrotny : „Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa)”. Enter i podajemy dwukrotnie hasło. Jeżeli wszystko pójdzie ok a powinno o ile nie pomyliśmy się w haśle to otrzymamy komunikat: „Your identification has been saved in ~/.ssh/id_rsa. Your public key has been saved in ~/.ssh/id_rsa.pub”. Zostały wygenerowane dwa klucze – jeden prywatny (id_rsa) i drugi publiczny (id_rsa.pub).

Logowanie do serwera

Przenosimy klucz publiczny na serwer

ssh-copy-id -i ~/.ssh/id_rsa.pub LOGIN_DO_KONTA_SSH@ADRES_SERWERA

Jeżeli nie zadziała należy sprawdzić czy w katalogu głównym znajduje się folder .ssh, jeżeli nie musimy go utworzyć

cat ~/.ssh/id_rsa.pub | ssh LOGIN_DO_KONTA_SSH@ADRES_SERWERA 'cat >> .ssh/authorized_keys'

Od teraz logowani odbywa się wpisując jedynie login@serwer

Jak tworzyć i rozpakowywać pliki ZIP, TAR i TAR.GZ

Jak tworzyć i rozpakowywać pliki ZIP, TAR i TAR.GZ

poradniki

Jak tworzyć i rozpakowywać pliki ZIP, TAR i TAR.GZ

header_wpis
W Windows mamy ZIP jako główny format kompresji, a co z Linuxem. Tu króluje TAR i TAR.GZ, dające znacznie lepszy stopień kompresji niż ZIP.

Format ZIP

Pakowanie archiwum ZIP

zip -r nazwa_archiwum.zip nazwa_katalog

Rozpakowanie archiwum ZIP

unzip nazwa_pliku

Format TAR

Pakowanie katalogu TAR

tar -cvf nazwa_pliku.tar nazwa_katalogu

Rozpakowanie archiwum TAR

tar -xvf nazwa_archiwum.tar
tar -xvf nazwa_archiwum.tar sciezka_do_katalogu_gdzie_ma_byc_rozpakowany

Format TAR.GZ

Pakowanie TAR.GZ

tar -zcvf nazwa_archiwum.tar.gz nazwa_folderu_ktory_chcemy_spakowac

Rozpakowanie TAR.GZ

tar -zxvf nazwa_archiwum.tar.gz nazwa_folderu_gdzie_rozpakowac
Jak sprawdzić siłę sygnału WiFi Linux

Jak sprawdzić siłę sygnału WiFi Linux

poradniki

Jak sprawdzić siłę sygnału WiFi Linux

header_wpis
Od razu na początku zaznaczę, że mowa tu o darmowym narzędziu do sprawdzania siły sygnału Wi-fi. Na rynku mamy mnóstwo płatnych i co za tym idzie mocno rozbudowanych aplikacji ale są też darmowe perełki, które powiniśmy w większości przypadków wystarczyć na początek. Mamy oczywiście wbudowane mechanizmy do analizy sygnału jak iwconfig czy watch ale tu zajmiemy się wavemon

Instalujemy wavemon

sudo apt-get install wavemon

Mimo że program działa z poziomu konsoli to obsługujemy go za pomocą klawiszy funkcyjnych od F1 do F10. W konsoli wpisujemy i odpalamy wavemon

sudo wavemon

  • F1 (Alt+i) – wyświetla informację na temat aktualnego połączenia,
  • F2 (Alt+l) – historia połączenia w formie wykresu,
  • F3 (Alt+s) – lista wykrytych sieci bezprzewodowych w naszym zasięgu,
  • F7 (Alt+p) – ustawienia aplikacji,
  • F8 (Alt+h) – pomoc,
  • F9 (Alt+a) – informacje o programie,
  • F10 (Alt+q) – wyjście z aplikacji
Komendy sieciowe Linux

Komendy sieciowe Linux

poradniki

Komendy sieciowe Linux

header_wpis

Przydatne komendy sieciowe Linux

Jeśli chodzi o tworzenie stabilnych, bezpiecznych sieci, Linux jest pierwszym wyborem dla większości z nas. Konfigurowanie i zarządzanie interfejsami sieciowymi jest niezbędne zarówno dla administratorów systemu, jak i zaawansowanych użytkowników.

ifconfig

Jest to wbudowane narzędzie systemowe, które umożliwia użytkownikom konfigurowanie parametrów interfejsu sieciowego i zarządzanie nimi.
ifconfig
Wywołanie go bez żadnych opcji dostarczy szczegółowych informacji o urządzeniach sieciowych, konfiguracji i bieżących ustawieniach.

iwconfig

Iwconfig służy do konfigurowania bezprzewodowych interfejsów sieciowych. Może być używany do konfigurowania różnych parametrów sieci bezprzewodowej, takich jak punkt dostępu SSID i częstotliwość.
iwconfig

ifstat

Polecenie ifstat to przydatne narzędzie, które umożliwia administratorom odczytywanie i monitorowanie różnych statystyk interfejsu sieciowego, takich jak wykorzystanie przepustowości itp.
ifstat --scan=SECS
ifstat jest częścia iproute2

Ettool

ethtool umożliwia administratorom wyświetlanie i modyfikowanie różnych parametrów kontrolerów interfejsu sieciowego i ich sterowników urządzeń.
ethtool eth0
ethtool -s eth0 speed 1000 duplex full

arpwatch

arpwatch to narzędzie do monitorowania aktywności sieci Ethernet, które umożliwia administratorom systemu łatwe śledzenie parowania adresów Ethernet/IP w ich sieci.
sudo arpwatch -i eth0

bmon

bmon jest to monitor przepustowości i estymator przepustowości, którego można używać do przechwytywania statystyk sieciowych i wyświetlania ich w formacie czytelnym dla człowieka
bmon
Dane wyjściowe interfejsu:
bmon -p nazwa_interfejsu

ssh

ssh użytkownik@host-maszyna
Można skonfigurować pary kluczy prywatnych/publicznych i logować się do zdalnych maszyn bez wpisywania haseł.
ssh-keygen

sendmail

sendmail służy do wysyłania wiadomości bezpośrednio z terminala
echo "Temat: Test" | sendmail test@example.com < mail.txt

cURL

cURL do przesyłania danych do lub z serwera sieciowego. Wykorzystuje różne protokoły sieciowe, takie jak HTTP, HTTPS, FTP, FTPS, SCP, SFTP itp.
curl -O https://jakasdomena/plik

wget

wget jest częścią projektu GNU i odpowiada za pobieranie danych z serwerów WWW
wget -O nazwa pliku https://jakasdomena/plik

ftp

Linux FTP jest powszechnie używane do pobierania lub przesyłania plików do/z hostów zdalnych. Samo wpisanie ftp w terminalu otwiera sesję.
nazwa hosta ftp

sftp

sftp użytkownik@nazwa hosta

rcp

Narzędzie rcp umożliwia użytkownikom kopiowanie plików lub katalogów z systemu lokalnego na zdalny komputer w sieci.
rcp [opcje] PRZEZNACZENIE ŹRÓDŁA
rcp /katalog/test.doc nazwa hosta:/katalog/katalog

scp

scp (secure copy) służy do bezpiecznego kopiowania plików między dwoma systemami sieci. Funkcjonalność jest podobna do polecenia rcp, ale implementuje bezpieczne uwierzytelnianie, takie jak polecenie ssh. scp PLIK nazwa_użytkownika@zdalny-host :/katalog/katalog

rsync

rsync synchronizacja i przesyłanie plików między systemami w sieci.

rsync -zvh backup.tar /tmp/backups/

route

route pozwala wyświetlić i zarządzać tabelą routingu IP. Polecenie to jest również dostępne w systemach Microsoft Windows

sudo route sudo -n

Dodanie bramy domyślnej

sudo route add default gw xxx.xxx.xxx.xxx

dig

dig wysyła zapytania DNS w celu sprawdzenia i problemów z siecią.

sudo dig nazwa_strony.com.pl

sudo dig nazwa_strony.com.pl +short

nslookup

nslookup uzyskanie nazwy domeny lub adresu IP poprzez odpytywanie DNS

sudo nslookup strona.pl

rekordy MX konkretnego hosta

nslookup -type=mx google.com

iftop

iftop dostarcza informacji zwrotnych w czasie rzeczywistym dla różnych parametrów sieci, takich jak wykorzystanie przepustowości itp.

sudo iftop

Informacje o przepustowości danego interfejsu
sudo iftop -i nazwa_interfejsu

hping3

hping3 to analizator pakietów TCP
sudo hping3
> hping recv eth0