diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/notatki/03_owasp_http.pdf b/notatki/03_owasp_http.pdf index e648e9d..48005d0 100644 --- a/notatki/03_owasp_http.pdf +++ b/notatki/03_owasp_http.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a5bbc2eefe4c070f7f31e3b22ad07960274b7869c4430efa05ce2eb408fe209 -size 54042 +oid sha256:5d5564dbf6f1d01e4e26f58397c949da5d1aefacc50561237fdb0d368b759db9 +size 57623 diff --git a/notatki/04_certyfikaty_tls.pdf b/notatki/04_certyfikaty_tls.pdf new file mode 100644 index 0000000..3ba5b92 --- /dev/null +++ b/notatki/04_certyfikaty_tls.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d474990c66cd5718e2f6080c089f653dbd72d5fe429689e2d33ef738a89cf641 +size 42977 diff --git a/notatki/05_ec2_ebs.pdf b/notatki/05_ec2_ebs.pdf new file mode 100644 index 0000000..39f77c8 --- /dev/null +++ b/notatki/05_ec2_ebs.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1dd07388b5df1da4389ca11082ebebe91e7b3caf96686f90eb03b7a0d3e6b38 +size 45214 diff --git a/notatki/md/03_owasp_http.md b/notatki/md/03_owasp_http.md index b239610..0952317 100644 --- a/notatki/md/03_owasp_http.md +++ b/notatki/md/03_owasp_http.md @@ -49,6 +49,13 @@ backgroundImage: url('img/hero-background.svg') --- +# Nagłówek HSTP - Strict-Transport-Security (HSTS) +- [Strict-Transport-Security](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security) - wymusza korzystanie z protokołu HTTPS +- pozwala na określenie czasu, przez jaki przeglądarka będzie wymuszała korzystanie z HTTPS; +- próby wejścia za pomocą HTTP są automatycznie przekierowywane na HTTPS; + +--- + # Plik *robots.txt* - [robots.txt](https://developers.google.com/search/docs/advanced/robots/intro) - plik tekstowy, który określa, które zasoby mogą być indeksowane przez boty - Jest dostępny w postaci pliku tekstowego pod adresem `https://[domain address]/robots.txt` diff --git a/notatki/md/04_certyfikaty_tls.md b/notatki/md/04_certyfikaty_tls.md new file mode 100644 index 0000000..165c47e --- /dev/null +++ b/notatki/md/04_certyfikaty_tls.md @@ -0,0 +1,53 @@ +--- +marp: true +theme: gaia +backgroundColor: #fff +backgroundImage: url('img/hero-background.svg') + +--- +#


:shield: Certyfikaty TLS :shield: + +--- + +# HTTPS - HyperText Transfer Protocol Secure +- [HTTPS](https://en.wikipedia.org/wiki/HTTPS) - wersja protokołu HTTP wykorzystująca szyfrowanie +- wykorzystuje protokół [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) - Transport Layer Security +- wymaga certyfikatu TLS oraz klucza prywatnego +- certyfikat może być wystawiony przez [CA](https://en.wikipedia.org/wiki/Certificate_authority) - Certificate Authority lub samodzielnie +- wykorzystuje szyfrowanie symetryczne oraz asymetryczne +- zabezpiecza przez atakami typu *Man in The Middle* + + +--- +# TLS - Transport Layer Security +- na początku połączenia odbywa się proces [TLS Handshake](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake) +- w trakcie procesu następuje: + - weryfikacja certyfikatu + - ustalenie algorytmów szyfrowania + - wymiana kluczy +- podczas wymiany danych, pakiety TCP są zaszyfrowane + +--- + +# Certyfikat TLS +- certyfikat zawiera: + - klucz publiczny + - dane o właścicielu + - dane o CA + - datę ważności +- można go uzyskać samodzielnie lub za pośrednictwem CA +- może być pozyskany za darmo lub za opłatą +- opcja bezpłatna: [Let's Encrypt](https://letsencrypt.org/) + +--- + +# Let's Encrypt +- [Let's Encrypt](https://letsencrypt.org/) - organizacja non-profit wystawiająca bezpłatnie certyfikaty TLS +- certyfikaty ważne są przez 90 dni +- aby pozyskać lub odnowić certyfikat, należy udowodnić, że jesteśmy właścicielem domeny, poprzez: + - dodanie określonego pliku do serwera + - dodanie rekordu DNS +- proces pozyskania oraz odnowienia certyfikatu może być zautomatyzowany poprzez narzędzie [Certbot](https://certbot.eff.org/) + + + diff --git a/notatki/md/05_ec2_ebs.md b/notatki/md/05_ec2_ebs.md new file mode 100644 index 0000000..4d98ffb --- /dev/null +++ b/notatki/md/05_ec2_ebs.md @@ -0,0 +1,42 @@ +--- +marp: true +theme: gaia +backgroundColor: #fff +backgroundImage: url('img/hero-background.svg') + +--- +#


:shield: AWS EC2 :shield: + # :shield: AWS EBS :shield: + +--- + +# EC2 - Elastic Compute Cloud +- [EC2](https://aws.amazon.com/ec2/) - lub inaczej Maszyna Wirtualna - jedna z najbardziej popularnych usług AWS +- AWS oferuje EC2 przystosowane do konkretnych zastosowań (np. obliczenia, grafika, uczenie maszynowe) - [rodzaje instancji](https://aws.amazon.com/ec2/instance-types/) +- Każda instancja składa się m.in. z obrazu AMI (Amazon Machine Image) oraz przestrzeni dyskowej EBS (Elastic Block Store) +- EC2 są skalowalne - można zmieniać moc obliczeniową i zasoby w zależności od potrzeb + +--- +# EC2 - Bezpieczeństwo +- Dostęp do instancji EC2 można zabezpieczyć poprzez: + - klucze SSH / hasła RDP + - ustawienia Security Groups + - konfigurację VPC (Virtual Private Cloud) + - ustawienia IAM (Identity and Access Management) + - konsolę AWS +- Aktualizacja systemu operacyjnego oraz zainstalowanego oprogramowania +- narzędzia zewnętrzne, np. [AWS Inspector](https://aws.amazon.com/inspector/) + +--- + +# EBS - Elastic Block Store +- [EBS](https://aws.amazon.com/ebs/) - przestrzeń dyskowa dla instancji EC2 +- EBS może być przystosowany do konkretnych zastosowań (np. IOPS, Throughput) - [rodzaje EBS](https://aws.amazon.com/ebs/volume-types/) +- EBS jest niezależny od instancji EC2 +- EBS może być szyfrowany oraz podlegać ręcznym kopiom zapasowym lub w sposób automatyczny [AWS Backup](https://aws.amazon.com/backup/) + +--- +# Deklaracja dostępności (SLA) usług EC2 i EBS +- [AWS EC2 SLA](https://aws.amazon.com/ec2/sla/) +- [AWS EBS SLA](https://aws.amazon.com/ebs/sla/) + diff --git a/zadania.md b/zadania.md index 7289aee..a5d7a19 100644 --- a/zadania.md +++ b/zadania.md @@ -16,7 +16,7 @@ 1. Zapoznaj się z konsolą AWS; 2. Przygotuj maszynę wirtualną EC2: - - region: *eu-central-1*; + - region: *us-east-1*; - rodzaj obrazu: *Ubuntu Server 24.04 LTS*; - rodzaj instancja: *t2.micro*; - typ sieci: *domyślne VPC*; @@ -42,4 +42,17 @@ - [robots.txt](https://en.wikipedia.org/wiki/Robots.txt) Sprawdź jakie nagłówki i zawartość pliku robots.txt są dostępne różnych stronach internetowych. 3. Za pomocą dodatków do przeglądarki WWW, np. [ModHeader](https://modheader.com/) spróbuj zbudować politykę CSP dla wybranej strony internetowej, np. [https://wmi.amu.edu.pl/](https://wmi.amu.edu.pl/) -4. Sprawdź co oznacza wartość `no-cache` w nagłówku `Cache-Control`. \ No newline at end of file +4. Sprawdź co oznacza wartość `no-cache` w nagłówku `Cache-Control`. + +## Certyfikaty TLS +1. Przygotuj certyfikat TLS za pomocą narzędzia [Let's Encrypt](https://letsencrypt.org/) dla serwera Apache na maszynie wirtualnej EC2. +2. Zapoznaj się z wartością certyfikatu TLS dla dowolnej strony obsługującej HTTPS, np. [Sejmu RP](https://www.sejm.gov.pl/) . +3. Przygotuj prywatny certifikat TLS za pomocą narzędzia [OpenSSL](https://www.openssl.org/). W jaki sposób taki certyfikat może być autoryzowany przez przeglądarkę WWW bądź system operacyjny? + +## EC2 i EBS +1. Uruchom maszynę wirtualną EC2 z przestrzenią dyskową EBS. Wykorzystaj skrypt [skrypt instalacyjny](skrypty/uam-bwc-ec2-ebs.sh) do instalacji serwera Apache. +2. Zmodifikuj ustawienia Security Group tak, aby zezwolić na dostęp do maszyny wirtualnej EC2 tylko z wybranego adresu IP. +3. Zmodifikuj rozmiar przestrzeni dyskowej EBS na maszynie wirtualnej EC2. +4. Wykonaj kopię zapasową EB2 ręcznie. +5. Wykorzystaj usługę AWS Backup do automatycznej kopii zapasowej maszyny wirtualnej EC2. +