Papan Raspberry Pi luar biasa untuk proyek apa pun - murah, mudah digunakan, dapat menjalankan berbagai sistem operasi yang memungkinkan, dan menyediakan pin GPIO yang dapat diprogram serta ketersediaan CPU multi-core dan beberapa port USB.
Anda dapat menggunakan papan Raspberry Pi untuk semua jenis proyek otomatisasi dan pengumpulan informasi. Tetapi, jika Anda tidak hati-hati, proyek hobi kecil Anda mungkin menghasilkan risiko keamanan yang bertindak sebagai titik masuk ke jaringan Anda. Mereka tidak dapat melakukan boot aman seperti ARM Trustzone, dan kartu SD dan sistem operasi tidak mudah dienkripsi. Ikuti kiat keamanan ini untuk melindungi Pi Anda dan perangkat lain di jaringan Anda.
Ubah kata sandi default - Jika Anda menginstal versi terbaru dari NOOBS atau Raspbian, pastikan untuk mengubah kata sandi default pengguna "pi" menjadi sesuatu yang panjang dan sulit ditebak. Frasa sandi seperti "iamasuckerfor5dollarmojitos" jauh lebih baik daripada [dilindungi email]! Bahkan jika Anda berencana menonaktifkan akun, langkah pertama ini adalah perlindungan dasar jika Anda lupa.
Langkah Anda selanjutnya adalah menonaktifkan akun Pi default di Raspbian. Sebelum melakukan ini, buat akun baru di sistem. Anda dapat menggunakan useradd perintah untuk melakukan ini, dengan beberapa flag tambahan untuk menentukan bahwa direktori home baru dibuat untuk pengguna. Masuk sebagai pengguna Pi dan berikan perintah:
$ sudo / usr / sbin / useradd --groups sudo -m makezine
Gunakan nama pengguna Anda sendiri, bukan "makezine." Ini akan membuat akun baru, membuat direktori untuk akun tersebut (seperti / home / makezine), dan tambahkan akun baru ke grup sudo sehingga pengguna dapat menggunakan perintah sudo. Setelah akun pengguna baru dibuat, kita perlu menetapkan kata sandi untuk akun tersebut. Anda dapat melakukan ini menggunakan perintah:
$ sudo passwd makezine
Selanjutnya, setel ulang kata sandi root. Pilih sesuatu yang panjang dan sulit ditebak.
$ sudo passwd root
Akhirnya, Anda ingin menonaktifkan akun Pi:
$ sudo passwd --lock pi
Sekarang Anda dapat keluar dari akun Pi dan masuk dengan akun dan kata sandi baru Anda.
Secara default, Raspbian menginstal shell akses jarak jauh (SSH) yang dapat diakses dari mana saja. Anda dapat menonaktifkan ini dengan mengatur SSH sehingga hanya mesin yang memiliki kunci SSH resmi yang dapat masuk. Cadangkan kunci pribadi Anda di setidaknya dua lokasi yang Anda percayai.
Untuk mengaturnya, edit file konfigurasi SSH menggunakan vi, atau editor teks lainnya, dengan perintah:
$ sudo vi / etc / ssh / sshd_config
Pastikan baris berikut diatur dan tidak dikomentari - artinya baris tersebut ada dalam file dan tidak didahului dengan simbol tag hash, yang menandai baris sebagai komentar dan mengabaikannya untuk tujuan konfigurasi:
# Otentikasi: LoginGraceTime 120 PermitRootLogin no StrictModes ya RSAAuthentication ya PubkeyAuthentication ya AuthorizedKeysFile% h / .ssh / berwenang_keys # Untuk mengaktifkan kata sandi kosong, ubah menjadi ya (TIDAK DIANJURKAN) Izin IzinEmptyPasswords no # Ubah ke ya untuk mengaktifkan masalah-tantangan dengan tanggapan (masalah dengan kata sandi) # beberapa modul dan utas PAM) ChallengeResponseAuthentication no # Ubah menjadi tidak untuk menonaktifkan kata sandi teks yang jelas ternaja PasswordAuthentication no UsePAM no
Baris terakhir sangat penting karena akan menonaktifkan Modul Otentikasi Pluggable (PAM), atau autentikasi Linux asli, dan hanya memungkinkan pengguna untuk masuk dengan kunci. Selanjutnya, buat kunci SSH. Anda dapat melakukan ini dengan Putty pada Windows atau dengan perintah ssh-keygen di Linux. Buat direktori .ssh di direktori home pengguna Anda dan file berwenang_keys dengan perintah berikut. Pastikan untuk mengatur izin dengan benar (jika tidak, otentikasi berbasis kunci akan gagal):
$ mkdir ~ / .ssh $ chmod 0700 ~ / .ssh $ touch ~ / .ssh / official_keys $ chmod 0600 ~ / .ssh / official_keys
Selanjutnya gunakan editor teks Anda untuk mengedit file otor_keys dan tempel di kunci publik yang Anda buat sehingga Anda dapat masuk. Pastikan untuk memulai kembali SSH untuk memastikan perubahan diterapkan menggunakan perintah:
$ sudo systemctl restart ssh
Setelah Anda mengunci SSH, Anda ingin memastikan bahwa firewall iptables berjalan di Pi Anda. Untuk ukuran yang baik, Anda dapat mengonfigurasi firewall sehingga mencatat pesan kapan pun aturan firewall diaktifkan dan koneksi diblokir. Pertama, pastikan iptables diinstal menggunakan perintah:
$ sudo apt-get install iptables iptables-persistent
Perhatikan bahwa menggunakan iptables firewall akan membutuhkan modul kernel baru untuk dimuat. Cara termudah untuk memuatnya adalah dengan me-reboot Pi Anda. Setelah iptables diinstal, lanjutkan dan periksa aturan iptables saat ini dengan perintah:
$ sudo / sbin / iptables -L
Ini akan mencantumkan aturan, yang mungkin kosong. Anda dapat menyimpan aturan ini ke file teks dan mengeditnya menggunakan perintah:
$ sudo / sbin / iptables-save> /etc/iptables/rules.v4
Ini adalah file yang digunakan iptables-persistent ketika sistem Anda melakukan boot atau reboot untuk memastikan bahwa firewall masih berjalan. Simpan, lalu edit file sehingga terlihat seperti berikut (mengubah aturan apa pun yang Anda butuhkan):
$ sudo cat /etc/iptables/rules.v4: INPUT ACCEPT [0: 0]: FORWARD ACCEPT [0: 0]: OUTPUT ACCEPT [0: 0] # Memungkinkan semua loopback (lo0) traffic dan drop semua traffic ke 127 / 8 yang tidak menggunakan lo0 -A INPUT -i lo -j ACCEPT -A INPUT! -i lo -d 127.0.0.0/8 -j TOLAK # Menerima semua koneksi inbound yang dibuat -A INPUT -m state --state ESTABLISHED, TERKAIT -j MENERIMA # Memungkinkan semua lalu lintas keluar # Anda dapat memodifikasi ini untuk hanya mengizinkan lalu lintas tertentu - OUTPUT -j MENERIMA # Memungkinkan koneksi SSH # Nomor --dport sama dengan di / etc / ssh / sshd_config -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT # log iptables ditolak panggilan (akses via perintah 'dmesg') -A INPUT -m limit --limit 5 / min -j LOG --log-prefix "iptables deny:" --log-level 7 # Tolak semua inbound lainnya - tolak default kecuali jika secara eksplisit kebijakan yang diizinkan: -P INPUT -J TOLAK -JARINGAN -j KOMIT TOLAK
Selanjutnya, pastikan iptables Anda berfungsi dengan baik. Ini bisa rumit karena Anda mungkin terhubung jarak jauh melalui SSH, dan jika Anda telah mengacaukan sesuatu, Anda tidak ingin koneksi Anda terputus. Untungnya, ada perintah yang akan membantu Anda dengan menerapkan aturan dan meminta konfirmasi bahwa Anda masih dapat terhubung. Jika Anda tidak merespons dalam waktu tertentu, program akan menganggap Anda telah terputus dan itu akan mengembalikan perubahan Anda. Jika Anda merespons, itu akan menerapkan perubahan Anda secara permanen. Untuk mencapai ini gunakan perintah:
$ sudo / usr / sbin / iptables-apply /etc/iptables/rules.v4
Jika semuanya berfungsi, perubahan Anda akan diterapkan dan Anda dapat memeriksanya dengan perintah:
$ sudo / sbin / iptables -L
Matikan apa yang tidak Anda butuhkan. Pastikan firewall Anda hanya mengekspos layanan yang Anda inginkan, lebih disukai pada port non-default.
Letakkan di jaringannya sendiri. Pastikan Pi diinstal pada jaringannya sendiri dan tidak dapat menjangkau bagian lain dari jaringan sambil memastikan koneksi keluar ke internet diketahui dan difilter untuk penggunaan sehari-hari. Anda seharusnya tidak dapat menghubungi server file rumah Anda atau sistem lain dari Pi, dan konektivitas internetnya harus dibatasi.
Perbarui paket Anda secara teratur. Periksa situs web Raspberry Pi untuk pembaruan. Anda dapat mengatur pembaruan otomatis dengan menginstal paket “upgrade tanpa pengawasan,” seperti yang dijelaskan pada wiki Debian resmi.
Cadangkan konfigurasi Anda. Kartu SD Anda akan gagal. Harapkan kegagalan dan cadangan data Anda, atau kartu SD secara keseluruhan, ke USB thumb drive eksternal sebagai bagian dari paket, file, atau sistem file terenkripsi.
Hindari gambar yang siap dipasang sebelumnya jika Anda bisa. Jika Anda menggunakan gambar pra-instal dari suatu tempat, tanyakan pada diri Anda mengapa. Anda membutuhkan kepercayaan penuh dan penuh pada pencipta, yang mungkin telah mengambil jalan pintas dan menginstal perangkat lunak rentan atau bahkan backdoors. Ini bahkan bisa tidak disengaja. Lihat apakah Anda dapat menginstal gambar atau perangkat lunak sendiri. Jika Anda tidak bisa atau tidak mau, pastikan Pi Anda ada di jaringannya sendiri dan tidak bisa menjangkau sistem lain di jaringan Anda. Jika router Anda memiliki segmen DMZ atau jaringan Wi-Fi tamu, itu adalah pilihan yang sangat baik untuk Pi dengan syarat bahwa hanya layanan yang ingin Anda tampilkan terpapar ke Internet. Jika Anda benar-benar perlu menggunakan gambar yang sudah dibuat:
# / bin / rm -v / etc / ssh / ssh_host_ * # dpkg-konfigurasikan openssh-server
Timer pengawas perangkat keras: Jika Raspberry Pi Anda mogok saat Anda berlibur, sistem otomatis Anda juga akan turun. Raspberry Pi hadir dengan timer pengawas perangkat keras Broadcom yang dapat mem-boot ulang Pi jika tidak merespons.
Heatsink: Sayang jika Raspberry Pi Anda berlari terlalu panas karena cuaca atau overclock. Pastikan Anda memiliki heatsink pada CPU untuk memastikan bahwa lonjakan yang sangat berat jangan sampai terhenti. Harganya hanya beberapa dolar dan mudah dipasang.
Logwatch: Menerima email malam hari yang melaporkan kegiatan hari sebelumnya dan peringatan dengan Logwatch. Anda harus memastikan bahwa email berfungsi pada Pi Anda, tetapi agen relay email exim4 seharusnya bekerja dengan baik. Instal Logwatch menggunakan perintah:
$ sudo apt-get install logwatch
Kemudian sesuaikan file konfigurasi di /usr/share/logwatch/default.conf/logwatch.conf sesuai dengan kebutuhan Anda. Secara default, Logwatch akan mengirim email ke akun root, jadi Anda mungkin ingin mengatur semacam relay. Anda dapat memeriksa artikel saya di relay email untuk saran lebih lanjut.