Root mengatur variabel lingkungan

0

Saya memiliki skrip bash kecil yang mengunduh file penting, membuka koneksi SFPT, meletakkan file dan menutup koneksi.

Seperti yang dapat Anda bayangkan, skrip saya memiliki beberapa informasi nama pengguna dan kata sandi.

Saya berencana untuk membuat bit-bit sensitif dari variabel lingkungan informasi sehingga jika kita diretas bahwa informasi tidak akan diekspos.

Namun, saya bertanya-tanya apakah:

  • pendekatan variabel lingkungan adalah solusi terbaik
  • variabel-variabelnya akan permanen dan selamat dari reset server, crash, dll
  • jika variabel lingkungan saya akan terlihat oleh pengguna terminal non-root lainnya

Terima kasih atas masukan Anda sebelumnya ... selamat tahun baru.

sisko
sumber
ps dapat menunjukkan variabel lingkungan (dan nilainya). pilih approcah yang berbeda: buat pasangan kunci ssh publik / swasta tanpa frasa sandi, yang HANYA dapat redable oleh pengguna yang membutuhkan akses. Pengguna ini dapat menggunakan kunci untuk menyalin hal-hal menggunakan scp atau sejenisnya.
Olivier Dulac
ps hanya dapat menampilkan variabel lingkungan jika Anda memiliki izin yang sama dengan proses yang sedang berjalan, pada titik mana Anda telah kehilangan. Saya akan menerima bahwa penggunaan "pribadi" saya tidak jelas.
pjc50

Jawaban:

1
  • tanpa variabel env: ps dapat menunjukkan nilainya kepada Anda

  • menggunakan pasangan kunci pribadi / publik (tanpa frasa sandi), memastikan kunci pribadi HANYA dapat dibaca oleh orang yang relevan (yaitu, orang yang meluncurkan skrip yang menyalin nilai ke mesin lain), dan meletakkan kunci publik di tujuan file authorised_keys mesin (pada akun tujuan pengguna yang relevan, satu file disalin ke). pengguna lokal itu kemudian menggunakan kunci privat hanya-bisa-dibaca-lokalnya untuk dapat melakukannya

    scp sensitivefile  destinationuser@destinationhost:/destination/path/

Sebagai tambahan:

  • membuat pengguna lokal dan pengguna pengguna 2 sangat terbatas: mereka hanya dapat mengakses area ini secara lokal, area itu dari jarak jauh, dll. Dengan begitu, jika dikompromikan, mereka tidak dapat memberikan akses root dari jarak jauh, atau sejenisnya. Dan memiliki skrip secara lokal dan jarak jauh yang menyalin file ke tujuan akhir (area pengguna yang dapat dibaca oleh lokal, dan tujuan akhir jarak jauh). Skrip-skrip itu, tentu saja, jika mungkin, tidak dapat di-rooting juga ... (bayangkan Anda dikompromikan: file menyalin skrip ke lokasi, jadi berakhir sebagai / local / area / somefile ... tetapi seseorang dengan jahat letakkan tautan di sana, dengan nama file lokal yang sama, tautan yang menunjuk ke beberapa file sensitif: / local / area / somefile -> / etc / sensitivefile) file sensitif itu dapat ditimpa! Dan di beberapa conditinos yang bisa membuka celah keamanan atau penolakan layanan. Dan waspadalah juga dari jarak jauh,

iow, masih banyak lagi pemeriksaan yang harus dilakukan untuk memastikan akan sulit (dan bukan tidak mungkin ...) digunakan untuk menyerang tuan rumah lokal atau tujuan! Bagikan solusi terakhir Anda dengan kami.

Olivier Dulac
sumber
Terima kasih atas jawaban terinci ini. Masalah utama saya adalah saya memiliki keahlian yang terbatas dalam mengikuti langkah-langkah Anda sehingga saya akan mulai mempelajari langkah-langkah yang harus diambil (jika Anda memiliki tautan yang baik ke tutorial, saya akan berterima kasih. Hanya untuk menyebutkan, saya sedang mempertimbangkan membuat tabel database dengan sensitif informasi dienkripsi di dalamnya. Namun, di suatu tempat dalam kode informasi itu harus di-crypted sebelum dikirim ke Bash Script saya. Dengan kata lain, kita harus meretas semua bahan yang masih ada, betapapun terfragmentasi, untuk dimanfaatkan oleh peretas.
sisko
Anda mungkin ingin melakukannya dengan cara lain: pada server jarak jauh, yang berisi data penting, buat pasangan kunci publik / pribadi, dan minta mengambil data dari server "lokal". + beberapa "pemeriksaan kewarasan" pada nama file (tidak ada karakter aneh, mis:, aname";a commandberpotensi membuat cmd yang tidak diinginkan dalam skrip) dan konten (hanya berisi tipe data yang diharapkan, tidak ada biner / perintah tambahan di dalamnya) dan ketik (yaitu, harus berupa file, bukan symlink). Jika secure mengambil dari insecure, insecure tidak memiliki akses mudah ke secure, dan secure hanya menunjukkan kunci publiknya ke insecure.
Olivier Dulac
-1

Variabel lingkungan tidak permanen. Mereka pribadi. Membuatnya permanen akan melibatkan perekaman mereka dalam naskah.

Solusi yang lebih baik adalah dengan menggunakan mekanisme ssh official_keys; kunci masih akan dicuri jika mesin yang berasal koneksi terganggu, tetapi lebih mudah untuk membatalkan otorisasi mereka di ujung lain.

pjc50
sumber
mereka tidak pribadi: ps dapat menunjukkan kepada Anda variabel apa yang terkait dengan masing-masing proses yang diluncurkan (berguna untuk mengetahui pwd, dan menakutkan jika salah satu variabel berisi kata sandi)
Olivier Dulac