Sekiranya anda ingin menjalankan beberapa jenis perisian pelayan pada Raspberry Pi anda (i.e., pelayan web, pelayan pangkalan data, pelayan Minecraft) dan menjadikannya tersedia secara terbuka di internet (hosting), maka melindungi pelayan Raspberry Pi anda dengan program firewall sangat penting.
Terdapat banyak program firewall sumber bebas dan terbuka yang tersedia di Raspberry Pi OS (sistem operasi rasmi komputer papan tunggal Raspberry Pi). Di antara program ini, UFW dan Firewalld adalah program firewall yang paling biasa.
Dalam artikel ini, saya akan menggunakan program firewall UFW untuk menunjukkan cara mengamankan Raspberry Pi anda. Oleh itu, mari kita mulakan.
Perkara yang Anda Perlu:
Untuk mengikuti artikel ini, anda memerlukan perkara berikut untuk menyiapkan Raspberry Pi anda dalam mod tanpa kepala:
- Komputer papan tunggal Raspberry Pi 3 atau Raspberry Pi 4.
- Penyesuai kuasa mikro-USB (Raspberry Pi 3) atau USB Jenis-C (Raspberry Pi 4).
- Kad microSD 16 GB atau 32 GB dengan OS Raspberry Pi berkelip.
- Kesambungan rangkaian pada Raspberry Pi.
- Komputer riba atau komputer meja untuk akses desktop jauh VNC atau akses SSH ke Raspberry Pi.
Sekiranya anda tidak mahu menyiapkan Raspberry Pi 4 anda dalam mod tanpa kepala, anda juga memerlukan:
- Monitor
- Kabel HDMI atau mikro-HDMI
- Papan kekunci
- Seekor tikus.
Sekiranya anda memerlukan bantuan untuk mem-flash gambar Raspberry Pi OS pada kad microSD, periksa artikel saya Cara Memasang dan Menggunakan Raspberry Pi Imager.
Sekiranya anda seorang pemula Raspberry Pi dan memerlukan bantuan untuk memasang OS Raspberry Pi pada Raspberry Pi anda, periksa artikel saya Cara Memasang OS Raspberry Pi di Raspberry Pi 4.
Sekiranya anda memerlukan bantuan mengenai penyediaan Raspberry Pi tanpa kepala, periksa artikel saya Cara Memasang dan Mengkonfigurasi OS Raspberry Pi pada Raspberry Pi 4 Tanpa Monitor Luaran.
Mengemas kini OS Raspberry Pi:
Semasa kami berusaha untuk mengamankan Raspberry Pi kami, ada baiknya anda mengemas kini semua pakej Raspberry Pi OS yang ada. Ini akan menjadikan OS Raspberry Pi anda lebih selamat kerana akan memasang semua kemas kini keselamatan dan pembetulan pepijat terkini.
Pertama, kemas kini cache repositori pakej APT dengan arahan berikut:
$ sudo apt kemas kini
Untuk mengemas kini semua pakej yang ada dari Raspberry Pi OS anda, jalankan arahan berikut:
Untuk mengesahkan pemasangan kemas kini, tekan Y dan kemudian tekan <Masukkan>.
Pengurus pakej APT akan memuat turun semua pakej yang diperlukan dari internet. Mungkin diperlukan sedikit masa untuk diselesaikan.
Setelah pakej dimuat turun, pengurus pakej APT akan memasangnya satu persatu. Mungkin diperlukan sedikit masa untuk diselesaikan.
Pada ketika ini, semua kemas kini harus dipasang.
Untuk perubahan berlaku, reboot Pi Raspberry anda dengan arahan berikut:
but semula $ sudo
Memasang UFW - Firewall yang tidak rumit:
Setelah Raspberry Pi anda boot, anda boleh memasang program firewall UFW dengan arahan berikut:
$ sudo apt pasang ufw -y
UFW harus dipasang.
Untuk perubahan berlaku, reboot Pi Raspberry anda dengan arahan berikut:
Setelah Raspberry Pi anda but, ufw perkhidmatan systemd harus aktif, seperti yang anda lihat dalam tangkapan skrin di bawah.
Anda boleh memeriksa sama ada UFW diaktifkan dengan arahan berikut:
Seperti yang anda lihat, UFW tidak diaktifkan secara lalai.
Untuk mengaktifkan UFW, jalankan arahan berikut:
Seperti yang anda lihat, UFW kini diaktifkan.
Membolehkan Akses ke Pelabuhan menggunakan Profil Aplikasi:
UFW mempunyai beberapa profil aplikasi lalai. Setiap profil aplikasi mempunyai beberapa port yang telah ditentukan yang boleh anda izinkan / tolak aksesnya.
Untuk menyenaraikan semua profil aplikasi yang tersedia, jalankan arahan berikut:
senarai aplikasi $ sudo ufw
Semua profil aplikasi yang dipasang mesti disenaraikan.
Sekiranya anda menyambung ke Raspberry Pi anda melalui SSH atau VNC (seperti saya), anda mesti membenarkan akses ke OpenSSH dan VNC profil aplikasi. Jika tidak, pada saat anda boot Raspberry Pi anda, anda tidak dapat mengaksesnya dari jauh kerana firewall akan menyekat semua port, termasuk port SSH dan VNC. Jadi, ini sangat penting.
Anda dapat melihat port apa yang ditentukan dalam profil aplikasi (i.e., OpenSSH) dengan arahan berikut:
Seperti yang anda lihat, TCP port 22 ditentukan dalam profil aplikasi OpenSSH.
Dengan cara yang sama, yang TCP port 5900 ditakrifkan dalam VNC profil aplikasi.
Untuk membenarkan akses ke port yang ditentukan dalam VNC profil aplikasi, jalankan arahan berikut:
Seperti yang anda lihat, VNC profil aplikasi dibenarkan melalui firewall.
Dengan cara yang sama, izinkan akses ke port yang ditentukan dalam OpenSSH profil aplikasi dengan arahan berikut:
Seperti yang anda lihat, OpenSSH profil aplikasi dibenarkan melalui firewall.
Membolehkan Akses ke Pelabuhan menggunakan Nombor Port:
Kadang kala, port yang ingin anda izinkan / tolak aksesnya tidak akan ditentukan dalam profil aplikasi yang ada. Oleh itu, anda perlu membenarkan / menolak akses ke port ini menggunakan nombor port.
Sebagai contoh, anda boleh membenarkan akses ke TCP port 8080 dengan arahan berikut:
$ sudo ufw membenarkan 8080 / tcp
Seperti yang anda lihat, TCP port 8080 dibenarkan masuk melalui firewall.
Dengan cara yang sama, anda boleh membenarkan akses ke Pelabuhan UDP 8888 dengan arahan berikut:
Seperti yang anda lihat, Pelabuhan UDP 8888 dibenarkan masuk melalui firewall.
Menolak Akses ke Pelabuhan:
Tingkah laku lalai program firewall UFW adalah menolak semua yang tidak dibenarkan. Jadi, anda tidak perlu melakukan apa-apa untuk menolak akses ke mana-mana port.
Demi persaingan, saya akan menunjukkan kepada anda bagaimana untuk menolak pelabuhan di UFW pula.
Sebagai contoh, untuk menolak akses ke TCP port 9900, jalankan arahan berikut:
$ sudo ufw menolak 9900 / tcp
Seperti yang anda lihat, TCP port 9900 ditolak akses melalui firewall.
Dengan cara yang sama, anda boleh menolak port yang ditentukan dalam profil aplikasi (i.e., WWW) seperti berikut:
Menolak Akses IP Khusus ke Pelayan:
Kadang kala anda mungkin perlu menolak akses ke alamat IP tertentu atau subnet IP untuk melindungi pelayan Raspberry Pi anda dari serangan DDoS (Distribusi Denial of Service). Anda boleh melakukannya dengan UFW.
Untuk bereksperimen dengan menolak alamat IP, saya akan menggunakan pelayan web Apache.
Anda boleh memasang pelayan web Apache pada Raspberry Pi anda dengan arahan berikut:
$ sudo apt install apache2
Untuk mengesahkan pemasangan, tekan Y dan kemudian tekan <Masukkan>.
Pengurus pakej APT akan memuat turun semua pakej dari internet dan memasangnya satu persatu. Mungkin diperlukan sedikit masa untuk diselesaikan.
Pada ketika ini, pelayan web Apache harus dipasang.
Setelah pelayan web Apache dipasang, buat halaman indeks mudah dengan arahan berikut:
Selamat datang ke LinuxHint
"| sudo tee / var / www / html / index.html
The apache2 perkhidmatan systemd harus berjalan, seperti yang anda lihat dalam tangkapan skrin di bawah.
Benarkan akses ke port server web Apache (TCP port 80) menggunakan profil aplikasi WWW seperti berikut:
Seperti yang anda lihat, port yang ditentukan dalam profil aplikasi WWW dibenarkan masuk melalui firewall.
Cari alamat IP Raspberry Pi anda dengan arahan berikut:
Seperti yang anda lihat, alamat IP Raspberry Pi saya adalah 192.168.0.106. Ia akan berbeza bagi anda. Oleh itu, pastikan untuk menggantinya dengan milik anda mulai sekarang.
Anda harus mengakses pelayan web Apache dari peranti lain, seperti yang anda lihat dalam tangkapan skrin di bawah.
Komputer yang saya gunakan untuk mengakses pelayan web Apache mempunyai alamat IP 192.168.0.109.
Untuk menolak alamat IP 192.168.0.109 akses ke pelayan Raspberry Pi anda, anda mesti menambahkan peraturan firewall di bahagian atas (kedudukan 1). Urutan peraturan UFW sangat penting. Peraturan yang paling ketat harus didahulukan.
Untuk menolak alamat IP 192.168.0.109 akses ke pelayan Raspberry Pi, jalankan arahan berikut:
Peraturan UFW untuk menolak alamat IP 192.168.0.109 akses ke pelayan Raspberry Pi harus menjadi peraturan teratas, seperti yang ditunjukkan dalam tangkapan skrin di bawah.
Anda tidak dapat mengakses pelayan web Apache yang berjalan di Raspberry Pi anda dari komputer dengan alamat IP 192.168.0.109 lagi, seperti yang anda lihat dalam tangkapan skrin di bawah.
Tetapi, anda boleh mengakses pelayan web Apache yang berjalan di Raspberry Pi anda dari komputer lain.
Sekiranya anda ingin menolak akses ke subnet IP, anda mesti menambahkan peraturan UFW yang diperlukan sebelum peraturan yang telah anda tambahkan sebelumnya, kerana ini adalah peraturan yang lebih ketat.
Sebagai contoh, untuk menolak akses ke setiap komputer dalam subnet IP 192.168.20.0/24, jalankan arahan berikut:
Peraturan UFW harus ditambahkan pada posisi yang betul, seperti yang ditunjukkan dalam tangkapan skrin di bawah. Sekarang, tidak ada komputer dari subnet IP 192.168.20.0/24 seharusnya dapat mengakses pelayan Raspberry Pi anda.
Mengeluarkan Peraturan UFW:
Kadang kala, anda mungkin perlu membuang beberapa peraturan UFW. Sangat mudah untuk melakukannya.
Anda boleh menyenaraikan semua peraturan UFW yang tersedia dengan arahan berikut:
Status $ sudo ufw bernombor
Semua peraturan UFW yang ada harus disenaraikan. Katakan anda mahu mengeluarkan peraturan UFW nombor 10 (peraturan di kedudukan ke-10).
Untuk mengeluarkan peraturan UFW nombor 10, jalankan arahan berikut:
Untuk mengesahkan operasi penghapusan, tekan Y dan kemudian tekan <Masukkan>.
Peraturan UFW nombor 10 harus dikeluarkan.
Seperti yang anda lihat, peraturan UFW dikeluarkan, dan aturannya disusun ulang (Peraturan UFW yang berada di posisi 11 sekarang berada di posisi 10).
Kesimpulan:
Dalam artikel ini, saya telah menunjukkan kepada anda cara memasang program firewall UFW pada Raspberry Pi anda (menjalankan OS Raspberry Pi). Saya juga telah menunjukkan cara membenarkan / menolak port menggunakan program firewall UFW. Saya telah menunjukkan kepada anda bagaimana untuk menolak alamat IP tertentu atau subnet IP daripada mengakses Raspberry Pi menggunakan program firewall UFW juga.