Ha kénytelen használni egy Linux parancsfájlot, hogy csatlakozzon a jelszóval védett erőforráshoz, akkor valószínűleg nyugtalanul érzi magát a jelszó megadásáról a forgatókönyvben. Az OpenSSL megoldja ezt a problémát az Ön számára.
Jelszavak és szkriptek
Nem nagyszerű ötlet, hogy jelszavakat tegyen a shell parancsfájlokban. Valójában ez egy nagyon rossz ötlet. Ha a forgatókönyv rossz kezekbe esik, mindenki, aki elolvassa, láthatja, hogy mi a jelszó. De ha kénytelen használni egy forgatókönyvet, mit tehetsz még?
A jelszót manuálisan adhatja meg, ha a folyamat eléri ezt a pontot, de ha a szkript felügyelet nélkül fut, akkor ez nem fog működni. Szerencsére van egy alternatíva a jelszavak keménykódolására a forgatókönyvbe. Az ellentétes módon különböző jelszót használ erre, és néhány erős titkosítással együtt.
Példámban, meg kell, hogy egy távoli kapcsolatot a Fedora Linux számítógép a mi Ubuntu számítógépen. Egy bash shell parancsfájlt fogunk használni, hogy SSH-kapcsolatot készítsen a Fedora számítógépre. A szkript felügyelet nélkül kell futnia, és nem szeretnénk a jelszót a távoli fiókhoz a forgatókönyvben. Ebben az esetben nem tudjuk használni az SSH kulcsokat, mert úgy teszünk, mintha úgy teszünk, hogy nincsenek ellenőrzési vagy adminisztrátori joguk a Fedora számítógépen.
Használjuk a jól ismert
OpenSSL Toolkit
A titkosítás és a hívott segédprogram kezelése
sshpass
A jelszó beillesztése az SSH parancsba.
ÖSSZEFÜGGŐ: Az SSH kulcsok létrehozása és telepítése a Linux Shellből
Az OpenSSL és az SSOLPASS telepítése
Mivel sok más titkosítási és biztonsági eszköz használja az OpenSSL-t, akkor már telepíthető a számítógépre. Ha azonban nem, akkor csak egy pillanatra van telepíteni.
Az Ubuntu-on írja be ezt a parancsot:
sudo apt kap az openssl-t
Üzembe helyezni
sshpass
, használja ezt a parancsot:
sudo apt telepítése sshappy
A Fedora-on be kell írnia:
Sudo DNF Install OpenSSL
A telepíteni kívánt parancs
sshpass
:
sudo dnf telepítése sshpass
A Manjaro Linuxon telepíthetjük az OpenSSL-t:
sudo pacman -sy openssl
Végül telepíteni kell
sshpass
, használja ezt a parancsot:
sudo pacman -sy sshappy
Titkosítva a parancssorban
Mielőtt bejutnunk a
openssl
Parancs a szkriptekkel, hogy ismerkedjen meg vele a parancssorban. Tegyük fel, hogy a távoli számítógép fiókja jelszava
rozsdás! hering.pitshaft
. A jelszót titkosítjuk
openssl
.
Meg kell adnunk egy titkosítási jelszót, amikor megteszünk. A titkosítási jelszót használják a titkosítási és dekódolási folyamatokban. Sok paraméter és lehetőség van a
openssl
parancs. Egy pillanat alatt megnézzük mindegyiküket.
echo 'rozsdás! Hering.pitsft' | openssl ENC -aes-256-CBC -MD sha512 -a -pbkdf2 -iter 100000 -só -pass Pass: 'pick.your.password'
Használjuk
visszhang
A távoli fiók jelszavának küldése csően és a
openssl
parancs.
Az
openssl
Paraméterek:
- Enc -aes-256-CBC : A kódolási típus. A Speciális titkosítási szabvány 256 bites kulcstartó cipher-blokk láncolással.
- -md sha512 : Az üzenet megjegyezte (hash) típusát. Az SHA512 kriptográfiai algoritmust használjuk.
-
-a
: Ez megmondja
opensslA bázis-64 kódolást a titkosítási fázis után és a dekódolási fázis előtt alkalmazza. - -pbkdf2 : A jelszó-alapú kulcsszármazási funkció használata 2 (pbkdf2) sokkal nehezebbé teszi a Brute Force Attack számára, hogy sikerül megtalálja a jelszavát. A PBKDF2 sok számot igényel a titkosítás elvégzéséhez. A támadónak meg kell ismételnie az összes ilyen számot.
- -iter 100000 : Beállítja a pbkdf2 számítások számát.
- -só : A véletlenszerűen alkalmazott sóérték használata minden alkalommal eltérővé teszi a titkosított kimenetet, még akkor is, ha a sima szöveg ugyanaz.
-
-pass Pass: 'pick.your.password'
: A titkosított távoli jelszó visszafejtéséhez szükséges jelszó. Helyettes
pick.your.passwordRobusztus jelszóval a választott.
A titkosított változata
rozsdás! hering.pitshaft
A jelszó a terminálablakba van írva.
Ezt visszafejtjük, át kell adnunk a titkosított sztringet
openssl
ugyanazokkal a paraméterekkel, amelyeket titkosítunk, de hozzáadjuk a
-d
(Decypt) opció.
echo u2fsdgvkx19iiirhesg + wm / ukjtzjwnyopjzphyrdkzh5lvzrpigo1s0gosu46 | OpenSSL ENC -AES-256-CBC -MD SHA512 -A -D -PBKDF2 - 100000 -Salt -Pass Pass: 'pick.your.password'
A karakterlánc visszafejtésre kerül, és az eredeti szövegünk - a távoli felhasználói fiók jelszava - a terminálablakba van írva.
Ez azt bizonyítja, hogy biztonságosan titkosíthatjuk távoli felhasználói fiók jelszavát. Azt is visszafejtjük, ha szükségünk van rá a titkosítási fázisban megadott jelszó használatával.
De ez ténylegesen javítja a helyzetünket? Ha szükségünk van a titkosítási jelszóra, hogy dekódolja a távoli fiók jelszavát, biztosan a dekódolási jelszónak a forgatókönyvben kell lennie? Nos, igen, igen. De a titkosított távoli felhasználói fiók jelszavát más, rejtett fájlban tárolják. A fájl engedélyei megakadályozzák senkit, de a rendszer root felhasználóját, nyilvánvalóan - a hozzáféréstől.
Ha elküldi a kimenetet a titkosítási parancsról egy fájlra, átirányíthatjuk. A fájlt ".secret_vault.txt". Megváltoztattuk a titkosítási jelszót valami robusztusra.
echo 'rozsdás! Hering.pitsft' | OpenSSL ENC -AES-256-CBC -MD SHA512 -A -PBKDF2-Biter 100000 -Salt -pass Pass: "Secret # Vault! Jelszó" & gt; .secret_vault.txt
Semmi látható sem történik, de a jelszó titkosítva van és elküldi a ".secret_vault.txt" fájlt.
Megpróbálhatjuk, hogy működjön a jelszó visszafejtésével a rejtett fájlban. Ne feledje, hogy használjuk
macska
itt, nem
visszhang
.
macska .secret_vault.txt | OpenSSL ENC -AES-256-CBC -MD SHA512 -A -D -DBKDF2 - 100000 -Salt -Pass Pass: 'Secret # Vault! Jelszó'
A jelszó sikeresen visszafejtésre kerül a fájl adataiból. Jól
használat
chmod
Az engedély engedélyezéseinek megváltoztatása, hogy senki más ne férhessen hozzá.
CHMOD 600 .Secret_vault.txt
LS -L .Secret_vault.txt
A 600 jogosultsági maszk használata eltávolítja az összes hozzáférést bárkinek, mint a fájl tulajdonosa. Most már továbbléphetünk a forgatókönyvünk írására.
ÖSSZEFÜGGŐ: Hogyan kell használni a Chmod parancsot a Linuxon
Az OpenSSL használata egy szkriptben
A szkriptünk nagyon egyszerű:
#! / Bin / bash # A távoli fiók neve Remote_user = geek # Jelszó a távoli fiókhoz Remote_passwd = $ (Cat .secret_vault.txt | OpenSSL ENC -AES-256-CBC -MD SHA512 -A -D -DBKDF2-ADER 100000 -DALT -PASS PASS: 'SECRET # Vault! Password') # távoli számítógép Remote_Linux = Fedora-34.Local # Csatlakoztassa a távoli számítógéphez, és tegyen egy időbélyeget a Script.log nevű fájlba sshpass -p $ remote_passwd ssh -t $ remote_user @ $ remote_linux & lt; & lt; _Remote_commands echo $ felhasználói "-" $ (dátum) & gt; & gt; /Home/$Remote_user/script.log _Remote_commands
-
Egy változót állítunk be
Remek_user"geek". -
Ezután beállítottunk egy változót
Távoli_passwdAz érték a dekódolt jelszó kihúzták a „.secret_vault.txt” fájlt, ugyanazt a parancsot, hogy szoktuk egy perce. -
A távoli számítógép helyét egy változóban tárolják
Távoli_linux.
Ezzel az információval használhatjuk a
ssh
parancs a távoli számítógéphez való csatlakozáshoz.
-
Az
sshpassA parancs az első parancs a csatlakozóvonalon. Használjuk a-P(Jelszó) opció. Ez lehetővé teszi számunkra, hogy adjuk meg a jelszót, amelyet meg kell küldeni asshparancs. -
A
-T(A Pseudo-Terminal Allocation) opció letiltásasshMert nem kell egy pszeudo-tty-t kiosztani nekünk a távoli számítógépen.
Röviden használunk
Itt van a dokumentum
parancsot a távoli számítógépre. Mindent a kettő között
_Remote_commands
A húrok utasításokként kerülnek elküldésre a távoli számítógépen található felhasználói munkamenethez - ebben az esetben ez egy sor bash szkript.
A távoli számítógépre küldött parancs egyszerűen naplózza a felhasználói fiók nevét és egy időbélyegzőt a "Script.log" fájlhoz.
Másolja be a script egy szerkesztő, és mentse el a fájlt a „go-remote.sh.” Ne feledje, hogy megváltoztatja a részleteket, hogy tükrözze a saját távoli számítógép, távoli felhasználói fiók és távoli fiók jelszava címét.
Használat
chmod
hogy a parancsfájl végrehajtható legyen.
chmod + x go-remote.sh
Minden, ami maradt, hogy kipróbáld ki. Tűzezzük fel a forgatókönyvet.
./ go-remote.sh
Mivel a szkriptünk egy minimalista sablon egy felügyelet nélküli szkripthez, nincs kimenet a terminálhoz. De ha megnézzük a "Script.log" fájlt a Fedora számítógépen, láthatjuk, hogy a távoli kapcsolatok sikeresen készültek, és hogy a "Script.log" fájl frissült az időbélyegzőkkel.
CAT Script.log
A jelszava privát
A távoli fiók jelszava nem kerül rögzítésre a szkriptben.
És bár a dekódolási jelszó van, A szkriptben senki más nem férhet hozzá a ".secret_vault.txt" fájlhoz annak érdekében, hogy visszafejtse és letöltheti a távoli fiók jelszavát.