Dengan sejumlah besar Raspberry Pis di alam liar, dan fakta bahwa kelompok-kelompok besar dari mereka dikonfigurasi secara identik (ketika kartu SD yang baru saja dipasang dengan salah satu dari beberapa gambar yang tersedia), mereka cenderung menjadi target yang menggoda untuk malware, termasuk botnet.
Apa yang bisa dilakukan untuk mengurangi ini?
Sudah cukup dikenal bahwa seseorang harus mengubah kata sandi untuk pengguna "pi" (Debian) dan "root" (Arch.) Tetapi bagaimana dengan akun sistem lain (misalnya "tli", "pnd"?) Apakah ada di antara mereka yang memiliki kata sandi universal yang mungkin sama untuk semua unit?
Dan apakah ada kelemahan yang diketahui dalam paket lain yang diinstal pada gambar SD yang tersedia untuk Pi (misalnya karena keterbatasan perangkat keras, atau versi pengurangan dari paket-paket itu?)
Khususnya saya khawatir ssh
, mysql dan layanan lain yang mungkin berjalan pada gambar yang baru diinstal.
sumber
su
ke mereka.vipw
; apakah itu ide yang buruk? Bukan itu. +1 untuk menyiratkan penggunaanvipw
.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: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).
Seperti yang Anda lihat, ini telah membuat dua file, kunci pribadi
id_rsa
dan kunci publikid_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:
Di mana
pi
nama pengguna Raspberry Pi, danaddress
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:
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:
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:Kita dapat melihat mengapa ini dilakukan dengan melihat izin file:
Ini memberi tahu kami bahwa file tersebut dimiliki oleh root, dan hanya pemilik yang memiliki izin baca / tulis. Mari kita uraikan output itu.
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: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: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:
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: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.
sumber
Untuk mencegah serangan bruteforce, Anda dapat menginstal dan mengonfigurasi
fail2ban
. Ini akan mengurai file log (seperti/var/log/auth.log
) dan mencoba mendeteksi jika beberapa upaya masuk gagal. Kemudian, itu akan secara otomatis melarang alamat IP sumber denganiptables
.Ada banyak howto di Internet.
sumber