Ada banyak cara untuk mengatasi kerentanan, namun hal pertama yang harus Anda ketahui adalah bahwa Linux tidak rentan terhadap intrusi seperti Sistem Operasi lainnya. Ini terutama karena kurangnya malware yang menargetkan * NIX. Namun demikian, Anda ingin mengetahui cara-cara di mana sistem Anda dapat diakses.
Kata sandi
Pertama, Anda harus mengubah kata sandi default untuk setiap pengguna yang dapat masuk. Untuk Debian ini hanya Pi pengguna default . Untuk Arch Linux ini adalah root super user . Kata sandi diubah saat login sebagai pengguna dengan mengetik passwd
pada baris perintah.
Kebijakan kata sandi yang aman dianjurkan, karena akan cukup mudah untuk menjalankan serangan kamus brute force pada pengguna default Anda. Pilih kata sandi yang layak dan panjang sedang.
Ketidakjelasan
Akses jarak jauh mungkin merupakan lubang keamanan yang paling penting. Apa yang bisa kita gunakan di sini dinamai keamanan oleh ketidakjelasan . Metode serangan yang umum adalah memindai serangkaian alamat IP untuk port terbuka. Jadi salah satu penanggulangan paling sederhana yang bisa kita lakukan adalah menjadi pengguna yang tidak menggunakan port default .
Yang perlu dilakukan di sini adalah mengubah port default untuk protokol yang biasa digunakan. Sebagai contoh, port SSH default adalah 22 dan FTP adalah 21. Pada sistem saya SSH menggunakan 222 dan FTP 221, yang seharusnya mengaburkan protokol ini dari serangan otomatis.
Keamanan Koneksi
Pertama, masalah keamanan yang paling penting adalah bahwa akun root seharusnya tidak dapat masuk melalui SSH. Anda dapat menonaktifkan login root dalam /etc/ssh/sshd_config
file dengan mengomentari atau menghapus baris ini:
PermitRootLogin yes
Ini harus diatur ke tidak secara default, tetapi yang terbaik adalah memastikan.
Jika Anda sering menggunakan SSH, dan khawatir tentang man in the middle attacks, serangan kamus terhadap kata sandi Anda, maka Anda dapat menggunakannya SSH Keys
.
Otentikasi berbasis kunci memiliki beberapa keunggulan dibandingkan otentikasi kata sandi, misalnya nilai kunci secara signifikan lebih sulit untuk diubah daripada kata sandi biasa.
Untuk mengatur otentikasi kunci SSH, Anda harus terlebih dahulu membuat pasangan kunci. Ini paling mudah dilakukan pada mesin klien Anda (mesin yang Anda inginkan untuk mengakses Pi).
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
Seperti yang Anda lihat, ini telah membuat dua file, kunci pribadi id_rsa
dan kunci publik id_rsa.pub
.
Kunci pribadi hanya diketahui oleh Anda dan harus dijaga dengan aman . Sebaliknya, kunci publik dapat dibagikan secara bebas dengan server SSH mana pun yang ingin Anda sambungkan.
Jadi yang ingin kita lakukan adalah menyalin kunci publik ke Raspberry Pi. Kita dapat melakukan ini dengan sangat mudah:
ssh-copy-id pi@address
Di mana pi
nama pengguna Raspberry Pi, dan address
merupakan alamat IP Pi.
Saya akan tegaskan, kami mendistribusikan kunci publik . Kunci pribadi adalah milik Anda. Pegang erat-erat, untuk melepaskan kunci itu merusak keamanan sistem.
The Arch wiki memiliki deskripsi yang sangat baik tentang bagaimana ini bekerja:
Ketika server SSH memiliki kunci publik Anda di file dan melihat Anda meminta koneksi, itu menggunakan kunci publik Anda untuk membangun dan mengirim Anda tantangan. Tantangan ini seperti pesan kode dan harus dipenuhi dengan respons yang sesuai sebelum server memberi Anda akses. Apa yang membuat pesan kode ini sangat aman adalah bahwa pesan itu hanya dapat dipahami oleh seseorang dengan kunci pribadi. Meskipun kunci publik dapat digunakan untuk mengenkripsi pesan, kunci publik tidak dapat digunakan untuk mendekripsi pesan yang sama. Hanya Anda, pemegang kunci pribadi, yang akan dapat memahami tantangan dengan benar dan menghasilkan respons yang benar.
Untuk informasi lebih lanjut tentang keamanan otentikasi kunci publik, Wikipedia memiliki penjelasan menyeluruh .
Dengan keamanan SSH, Anda dapat melakukan sejumlah besar transfer data terenkripsi dan aman. Praktis setiap koneksi port lain dapat dialihkan melalui SSH jika diperlukan. Anda bahkan dapat meneruskan sesi X melalui SSH sehingga muncul di komputer lain.
Sebagai contoh yang menarik, kemarin saya menjalankan Eclipse di Desktop saya, melihatnya di Raspberry Pi saya, dan mengendalikan mouse dan keyboard dari Netbook saya. Itulah kekuatan SSH.
Izin
Izin file adalah inti dari sistem keamanan Linux. Mereka mempengaruhi siapa yang dapat melihat file dan folder Anda, dan bisa sangat penting dalam melindungi data Anda. Misalnya, masuk ke Raspberry Pi sebagai pengguna normal dan jalankan:
cat /etc/shadow
The shadow
file berisi password terenkripsi untuk pengguna di sistem, sehingga kami tidak ingin hanya tentang siapa pun untuk mengambil melihat hal itu! Jadi Anda harus melihat respons ini:
cat: /etc/shadow: Permission denied
Kita dapat melihat mengapa ini dilakukan dengan melihat izin file:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
Ini memberi tahu kami bahwa file tersebut dimiliki oleh root, dan hanya pemilik yang memiliki izin baca / tulis. Mari kita uraikan output itu.
-rw-------
Ini adalah keadaan izin. Bit pertama memberitahu kita jenis file ( -
berarti file biasa). Tiga bit berikutnya mewakili tindakan yang tersedia untuk pemilik file. Tiga bit kedua mewakili grup , dan tiga bit terakhir untuk orang lain atau orang lain. Dengan demikian direktori dengan izin penuh akan terlihat seperti ini:
drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
Itu membaca, menulis, dan mengeksekusi izin untuk pemilik, grup, dan semua orang lainnya.
Bagian penting berikutnya adalah dua nama. Dalam kasus kami root root
. Pengguna pertama adalah pemilik file. Yang kedua adalah grup pengguna . Misalnya akan umum untuk melihat:
drwxr-xr-x 10 pi users 280 Jun 20 11:40 home/pi
Ini akan memungkinkan akses baca / tulis untuk pengguna pi
di direktori rumahnya, dan akses baca untuk semua pengguna lain.
Izin paling sering disebut dan dikendalikan menggunakan nilai oktal. Misalnya, jika kita ingin mengatur rw hanya untuk pemiliknya, kita akan mengetik:
chmod 600 /path/to/file
Ini adalah ikhtisar dasar, untuk detail lebih lanjut tentang izin file Linux, berikut ini adalah artikel yang bagus.
Pemahaman ini penting saat mengamankan file dan folder. Misalnya, kita baru saja mengatur kunci SSH. Kami jelas tidak ingin pengguna lain melihat di dalam ~/.ssh
direktori kami , atau mereka akan dapat mengambil kunci pribadi kami. Dengan demikian kami menghapus hak baca mereka:
chmod 700 ~/.ssh
ls -la ~/.ssh
drwx------ 2 james users 4096 Jun 18 03:05 .
Saya harap ini dapat menyelesaikan beberapa masalah Anda dengan mengamankan Linux. Dari sini Anda harus dapat melihat bahwa itu adalah sistem yang cukup aman dan jika Anda berhati-hati Anda tidak akan memiliki masalah keamanan.
su
ke mereka.