• Test Penetracyjny NESSUS
• Test Penetracyjny BACKBOX
• Test Penetracyjny BASH SHELL
• Test Penetracyjny METASPLOIT
"Certyfikat CISSP jest niezależnym i obiektywnym świadectwem eksperckim w dziedzinie bezpieczeństwa teleinformatycznego. W czerwcu 2004 roku CISSP został pierwszym certyfikatem spełniającym standard ISO 17024:2003 oraz akredytowanym przez ANSI." - Wikipedia
Test penetracyjny - proces polegający na przeprowadzeniu kontrolowanego ataku na system teleinformatyczny, mający na celu praktyczną ocenę bieżącego stanu bezpieczeństwa tego systemu, w szczególności obecności znanych podatności i odporności na próby przełamania zabezpieczeń. Wikipedia
Podstawowe pojęcia
1. Utwórz nowy Pod o nazwie nginx z obrazem nginx:1.17.10. Ujawnij port kontenera 80. Pod powinien znajdować się w przestrzeni nazw o nazwie ckad.
2. Uzyskaj szczegółowe informacje o Podze, w tym jego adres IP.
3. Utwórz tymczasowy Pod, który używa obrazu busybox do wykonania polecenia wget wewnątrz kontenera. Polecenie wget powinno uzyskać dostęp do punktu końcowego udostępnionego przez kontener Nginx. Powinieneś zobaczyć treść odpowiedzi HTML wyrenderowaną w terminalu.
4. Pobierz dzienniki kontenera Nginx.
5. Dodaj zmienne środowiskowe
DB_URL=postgresql://mydb:5432 i
DB_USERNAME=admin do kontenera nginx. Pod
6. Otwórz powłokę kontenera nginx i sprawdź zawartość bieżącego katalogu ls -l.
7. Utwórz manifest YAML dla pętli o nazwie Pod, która uruchamia obraz busybox w kontenerze. Kontener powinien uruchomić następującą komendę: for i in {1..10}; wykonaj echo "Witamy $i razy"; zrobione. Utwórz pod z manifestu YAML. Jaki jest status kapsuły?
8. Edytuj pętlę nazwaną Pod. Zmień polecenie, aby działało w nieskończonej pętli. Każda iteracja powinna odzwierciedlać bieżącą datę.
9. Sprawdź zdarzenia i stan pętli Poda.
10. Usuń przestrzeń nazw ckad i jej Pody.
1. Można zastosować podejście imperatywne lub podejście deklaratywne. Najpierw przyjrzymy się tworzeniu przestrzeni nazw za pomocą podejścia imperatywnego:
$ kubectl create namespace ckad
Utwórz poda:
$ kubectl run nginx --image=nginx:1.17.10 --port=80 -- namespace=ckad
Alternatywnie możesz zastosować podejście deklaratywne. Utwórz nowy plik YAML o nazwie ckad-namespace.yaml z następującą zawartością:
apiVersion: v1
kind: Namespace
metadata:
name: ckad
Utwórz przestrzeń nazw z pliku YAML:
$ kubectl create -f ckad-namespace.yaml
Utwórz nowy plik YAML o nazwie nginx-pod.yaml z następującą zawartością:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.17.10
ports:
- containerPort: 80
Utwórz Poda z pliku YAML:
$ kubectl create -f nginx-pod.yaml --namespace=ckad
2. Możesz użyć opcji wiersza poleceń -o wide, aby pobrać adres IP Poda:
$ kubectl get pod nginx --namespace=ckad -o wide
Te same informacje są dostępne w przypadku zapytania o szczegóły kapsuły:
$ kubectl describe pod nginx --namespace=ckad | grep IP:
3. Możesz użyć opcji wiersza poleceń --rm i -it, aby uruchomić tymczasowy Pod. Poniższe polecenie zakłada, że adres IP kapsuły o nazwie nginx to 10.1.0.66:
$ kubectl run busybox --image=busybox --restart=Never - -rm -it -n ckad \ -- wget -O- 10.1.0.66:80
4. Aby pobrać logi użyj prostego polecenia logs:
$ kubectl logs nginx --namespace=ckad
5. Zabroniona jest edycja obiektu żywego. Jeśli spróbujesz dodać zmienne środowiskowe, pojawi się komunikat o błędzie:
$ kubectl edit pod nginx --namespace=ckad
Będziesz musiał odtworzyć obiekt ze zmodyfikowanym plikiem YAML, ale najpierw będziesz musiał usunąć istniejący obiekt:
$ kubectl delete pod nginx --namespace=ckad
Edytuj istniejący plik YAML nginx-pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.17.10
ports:
- containerPort: 80
env:
- name: DB_URL
value: postgresql://mydb:5432
- name: DB_USERNAME
value: admin
Zastosuj zmiany:
$ kubectl create -f nginx-pod.yaml --namespace=ckad
6. Użyj polecenia exec, aby otworzyć interaktywną powłokę kontenera:
$ kubectl exec -it nginx --namespace=ckad -- /bin/sh # ls -l
v
7. Połącz opcje wiersza poleceń -o yaml i --dryrun= klient, aby zapisać wygenerowany YAML do pliku. Pamiętaj, aby uniknąć znaków cudzysłowu w ciągu renderowanym przez polecenie echo:
$ kubectl run loop --image=busybox -o yaml --dryrun= client \ --restart=Never -- /bin/sh -c 'for i in 1 2 3 4 5 6 7 8 9 10; \
do echo "Welcome $i times"; done' \
> pod.yaml
Utwórz Poda z pliku YAML:
$ kubectl create -f pod.yaml --namespace=ckad
Status Poda będzie wskazywał Zakończono, ponieważ wykonane polecenie w kontenerze nie działa w nieskończonej pętli:
$ kubectl get pod loop --namespace=ckad
8. Polecenie dotyczące kontenera nie może zostać zmienione w przypadku istniejących Podów. Usuń Pod, aby móc zmodyfikować plik manifestu i ponownie utworzyć obiekt:
$ kubectl delete pod loop --namespace=ckad
Zmień zawartość pliku YAML:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: loop
name: loop
spec:
containers:
- args:
- /bin/sh
- -c
- while true; do date; sleep 10; done
image: busybox
name: loop
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
Utwórz Poda z pliku YAML:
$ kubectl create -f pod.yaml --namespace=ckad
9. Możesz opisać zdarzenia Poda, zaznaczając termin:
$ kubectl describe pod loop --namespace=ckad | grep -C 10 Events:
10. Możesz po prostu usunąć przestrzeń nazw, co spowoduje usunięcie wszystkich obiektów w przestrzeni nazw:
$ kubectl delete namespace ckad