Witajcie,
Dziś nauczymy się czegoś ciekawego, jak za pomocą języka Bash można stworzyć prosty skrypt do automatyzacji zadań sieciowych. Język Bash jest popularnym językiem skryptowym używanym głównie w systemach operacyjnych z rodziny Linux. Dzięki skryptom w tym języku możemy automatyzować czynności, które wykonujemy często lub które wymagają wielu kroków, co pozwala nam zaoszczędzić czas i uniknąć błędów.
Skrypt, który będziemy tworzyć na początku będzie łatwy , będzie posiadał menu z wyborem różnych opcji, takich jak sprawdzenie adresu IP, zmiana adresu MAC na losowy oraz skanowanie sieci lokalnej za pomocą narzędzia nmap. Po wybraniu opcji i wykonaniu danej czynności skrypt powróci do menu wyboru, a po wybraniu opcji “0” zakończy swoje działanie.
W kolejnych częściach postaramy sie rozwinąć ten skrypt i dodać mu więcej funkcjonalności.
Zobaczmy, jak potęzny może być język skryptowy na linuxsie!
- Pierwsza linia:
Ta linia nazywana jest “shebang” i informuje system operacyjny, jaki interpreter ma użyć do wykonania skryptu
1 |
#!/bin/bash |
2. Pętla while true; do … done:
Nieskończona pętla, która będzie się powtarzać do momentu jej przerwania przez instrukcję
1 2 3 |
while true; do ... done |
3. Instrukcja echo:
Wyświetla tekst na ekranie.
1 2 3 4 5 |
echo "Menu:" echo "1. Sprawdź swoje IP" echo "2. Losowy adres MAC" echo "3. Skanuj sieć lokalną - nmap" echo "0. Wyjście" |
4. Instrukcja read:
Pobiera dane wprowadzone przez użytkownika i zapisuje je do zmiennej. choice
1 |
read -p "Wybierz opcję: " choice |
5. Instrukcja case:
Służy do wyboru jednej z wielu możliwych opcji w zależności od wartości zmiennej $choice. Każda opcja jest obsługiwana przez blok poleceń.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
case "$choice" in 1) ... ;; 2) ... ;; 3) ... ;; 0) ... ;; *) ... ;; esac |
Zbudowaliśmy szkielet naszego skryptu ! Gratulacje.
Tak aktualnie wygląda na skrypt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
while true; do # Menu wyboru echo "Menu:" echo "1. Sprawdź swoje IP" echo "2. Losowy adres MAC" echo "3. Skanuj sieć lokalną - nmap" echo "0. Wyjście" # Pobranie wyboru użytkownika read -p "Wybierz opcję: " choice case "$choice" in 1) ... ;; 2) ... ;; 3) ... ;; 0) ... ;; *) ... ;; esac done |
W następnej części zaczniemy wypełniać bloki poleceń.
No to lecimy…
Blok 1)
do sprawdzenia swojgo IP użyjemy po prostu ip.
1 2 3 |
1) ip a ;; |
Blok 2)
Ustawiamy zmienną interfaces za pomocą ip link , następnie wykorzystujemy pętle for aby dla kazdego interfejsu sieciowego zmienić adres mac. Narzędzie awk poznamy bliżej w kolejnej wersji skryptu.
1 2 3 4 5 6 7 |
2) interfaces=$(ip link show | awk '/: eth/{print $2}' | tr -d ':') for interface in $interfaces; do macchanger -r "$interface" done ;; |
Blok 3)
Pobieramy wprowadzone dane za pomocą instrukcji read , zapisujemy je do zmiennej target a następnie uruchamiamy narzedzie nmap do skanowania.
1 2 3 4 |
3) read -p "Podaj adres IP lub zakres adresów : " target nmap "$target" ;; |
Blok 0)
Instrukcja break służy do przerwania działania pętli.W tym przypadku używamy jej do wyjścia ze skryptu.
1 2 3 |
0) break ;; |
Blok *)
* służy do obsługi wszystkich pozostałych wartości, w naszym przypadku obsługuje błedne wybory użytkownika.
1 2 3 |
*) echo "Błędny wybór" ;; |
Nasz prosty skrypt jest gotowy!
Oto cały skrypt wraz z komentarzami:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
while true; do # Menu echo "Menu:" echo "1. Sprawdź swoje IP" echo "2. Losowy adres MAC" echo "3. Skanuj sieć lokalną - nmap" echo "0. Wyjście" # Wybór użytkownika read -p "Wybierz opcję: " choice case "$choice" in 1) # Sprawdzenie IP ip a ;; 2) # Zmiana adresu MAC na losowy # Pobranie listy interfejsów sieciowych interfaces=$(ip link show | awk '/: eth/{print $2}' | tr -d ':') # Dla każdego interfejsu for interface in $interfaces; do # Zmiana adresu MAC macchanger -r "$interface" done ;; 3) # Skanowanie sieci lokalnej - narzedzie nmap read -p "Podaj adres IP lub zakres adresów : " target nmap "$target" ;; 0) # Wyjście ze skryptu break ;; *) echo "Błędny wybór" ;; esac done |
Pamiętaj, że skrypt ten to tylko przykład i możesz go dowolnie modyfikować i rozszerzać o kolejne opcje według własnych potrzeb.
Nauczyliśmy się, jak stworzyć menu z wyborem opcji, jak sprawdzić swój adres IP, jak zmienić adres MAC na losowy oraz jak zeskanować sieć lokalną za pomocą narzędzia nmap. Dowiedzieliśmy się również, jak korzystać z pętli for do iteracji po każdym elemencie z listy oraz jak obsługiwać wyjątki za pomocą instrukcji case.
1 Odpowiedź
[…] […]