Cara Menggunakan Raspberry Pi sebagai Router dan Filter Konten

Jika Anda memiliki anak di rumah, Anda mungkin merasa perlu memblokir situs web tertentu yang tidak diinginkan. Area masalah umum lainnya adalah situs web media sosial – Anda mungkin merasa bahwa anak-anak (dan orang dewasa) membuang terlalu banyak waktu di Facebook, Twitter, dll. dan ingin memblokirnya, atau setidaknya membuatnya dapat diakses hanya pada waktu-waktu tertentu dalam sehari.

Untuk memungkinkan hal ini, kita memerlukan router plus filter konten – sebuah alat yang melaluinya semua perangkat kita seperti laptop, smartphone, dan tablet terhubung ke internet. Alat ini juga mencegat situs web yang diakses perangkat ini, dan memblokirnya jika mereka mencoba mengakses situs web yang masuk daftar hitam.

Ada filter konten komersial siap pakai yang tersedia di pasar, tetapi bagi kita tipe DIY, tidak ada kesenangan dalam hal itu. Jadi, kita akan mengotori tangan kita, dan menyiapkan Raspberry Pi untuk pekerjaan itu. Kita memilih Raspberry Pi untuk proyek ini karena ukurannya yang kecil dan konsumsi daya yang dapat diabaikan. Namun, instruksi ini akan bekerja hampir tanpa modifikasi dengan hampir semua komputer yang menjalankan Debian Linux atau turunannya (Ubuntu, Mint, dll.).

Penafian: Panduan ini mengasumsikan tingkat pengalaman menengah dengan Linux, dan kemauan untuk memecahkan masalah jika dan ketika masalah itu muncul. Pengalaman sebelumnya dengan baris perintah dan firewall adalah bonus.

Bagaimana itu bekerja

Perangkat keras

Kita akan menggunakan Raspberry Pi 3 sebagai filter konten sekaligus router. Untuk ini, kita memerlukan dua antarmuka jaringan di dalamnya – satu untuk terhubung ke internet, dan yang lainnya untuk bertindak sebagai hotspot WiFi untuk terhubung ke perangkat lain. Raspberry Pi 3 memiliki jack Ethernet built-in dan modul WiFi. Jadi dalam skenario ini, kita dapat menggunakan kabel Ethernet ( eth0 ) untuk terhubung ke internet, sedangkan modul WiFi ( wlan0 ) akan bertindak sebagai hotspot.

Tentu saja, menghubungkan ke internet menggunakan Ethernet tidak selalu memungkinkan. Dalam hal ini, Anda memerlukan dongle WiFi USB yang kompatibel ( wlan1 ) untuk terhubung ke internet, sedangkan modul WiFi bawaan ( wlan0 ) akan bertindak sebagai hotspot. Ini adalah konfigurasi yang akan kita gunakan dalam panduan ini.

Ingatlah bahwa meskipun Raspberry Pi 3 sebagian besar cukup untuk pengaturan rumah dengan beberapa laptop dan smartphone, Raspberry Pi 3 tidak akan memberikan kinerja yang diperlukan untuk pengaturan kantor besar . Lihat perangkat keras yang lebih mumpuni jika banyak klien akan terhubung ke filter konten Anda.

Perangkat lunak

Kita akan menggunakan E2guardian yang sangat baik untuk mencegat dan memfilter permintaan web kita. Karena pemfilteran konten dapat memiliki dampak kinerja (tergantung pada ukuran daftar blokir), kita akan menggunakan cache Squid untuk mengimbangi hit kinerja ini.

Prasyarat

1. Raspberry Pi 3 dengan versi terbaru dari Raspbian OS terinstal, dan akses ke internet. Jika Anda baru memulai dengan Raspberry Pi, kita sarankan untuk membaca panduan kita tentang cara memulai dengan Raspberry Pi 3 .

2. [Opsional] USB WiFi Dongle – Ini diperlukan jika, dan hanya jika Anda tidak dapat menghubungkan Raspberry Pi 3 Anda ke internet dengan kabel Ethernet. Jika Anda berencana menggunakan WiFi untuk menghubungkan ke internet dan sebagai hotspot, ini diperlukan.

3. Akses Fisik ke Raspberry Pi – Karena sifat artikel ini, satu kesalahan dalam konfigurasi firewall dapat mengunci Anda dari Pi jika Anda menggunakannya dalam mode tanpa kepala. Oleh karena itu, Anda disarankan untuk menyambungkan monitor, keyboard, dan mouse saat mengonfigurasinya hingga semuanya siap.

Gunakan Raspberry Pi sebagai Router

1. Hubungkan Pi Anda ke internet menggunakan Ethernet ( eth0 ). Jika Anda menggunakan dongle WiFi USB (mungkin wlan1 ), sambungkan ke internet. Biarkan modul WiFi bawaan ( wlan0 ) seperti apa adanya untuk saat ini.

2. Dapatkan software prasyarat yang kita butuhkan:

sudo apt install iptables iptables-persistent hostapd dnsmasq squid3

3. Kita akan mengatur hostapd agar Pi kita bisa bertindak sebagai hotspot WiFi . Untuk ini, buat file konfigurasi menggunakan editor teks favorit Anda, misalnya sudo nano /etc/hostapd/hostapd.conf , dan tempel konten dari halaman GitHub kita .

Beberapa baris yang mungkin ingin Anda modifikasi sesuai selera adalah:

ssid=RaspberryPiAP

Baris ini menentukan apa yang akan menjadi nama titik akses. Saya memilih RaspberryPiAP .

wpa_passphrase=beebom.com

Ini menentukan frasa sandi yang digunakan untuk mengakses hotspot. Saya menggunakan beebom.com , tetapi disarankan untuk mengubahnya menjadi frasa sandi yang kuat sesuai pilihan Anda.

4. Selanjutnya kita akan mengatur server DHCP menggunakan dnsmasq . Edit file konfigurasi /etc/dnsmasq.conf , dan tambahkan baris berikut di akhir:

[kode sumber]antarmuka=lo,wlan0

no-dhcp-interface=lo

dhcp-range=192.168.8.20,192.168.8.254,255.255.255.0,12h[/sourcecode]

Ini membuat antarmuka pada wlan0 (modul WiFi built-in) memberikan alamat IP kepada klien dalam rentang 192.168.8.20 hingga 192.168.8.254 .

5. Siapkan alamat IP statis untuk modul WiFi built-in wlan0 . Buka file /etc/network/interfaces . Mungkin terlihat seperti ini (penekanan milik saya):

[kode sumber] direktori-sumber /etc/network/interfaces.d

otomatis lo iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0 iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1 iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Di sini, temukan baris yang dicetak tebal yang berhubungan dengan wlan0 , dan ubahlah , sehingga file terlihat seperti berikut:

[kode sumber] direktori-sumber /etc/network/interfaces.d

otomatis lo iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0 iface wlan0 inet static hostapd /etc/hostapd/hostapd.conf alamat 192.168.8.1 netmask 255.255.255.0 allow-hotplug wlan1 iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Ini mengatur alamat IP statis 192.168.8.1 di wlan0. Ingat alamat ini, karena ini adalah alamat yang akan kita gunakan untuk berkomunikasi dengan Raspberry Pi kita nanti .

6. Sekarang atur penerusan IP . Edit file /etc/sysctl.conf , dan tambahkan baris berikut ke dalamnya:

net.ipv4.ip_forward=1

7. Sekarang kita akan mengkonfigurasi terjemahan alamat jaringan (NAT) di firewall kita. Untuk melakukan ini, masukkan 2 perintah berikut:

sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24 ! -d 192.168.8.0/24 -j MASQUERADE sudo iptables-save | sudo tee /etc/iptables/rules.v4

Perintah pertama mengatur NAT, sedangkan perintah kedua menyimpan konfigurasi firewall kita saat ini ke file bernama /etc/iptables/rules.v4 . Ini memastikan bahwa konfigurasi tetap ada di seluruh reboot.

8. Pada titik ini, reboot Raspberry Pi Anda . Ini untuk memastikan bahwa semua perubahan yang kita buat di file konfigurasi berfungsi.

9. Setelah reboot, Anda seharusnya dapat melihat hotspot RaspberryPiAP yang baru dibuat (kecuali jika Anda mengubah nama pada langkah 3) di perangkat lain seperti laptop dan smartphone. Anda dapat menghubungkannya menggunakan kata sandi yang Anda tentukan, dan mengakses internet.

Ini semua yang perlu Anda lakukan jika Anda membutuhkan router dasar berdaya rendah. Jika Anda ingin menyiapkan filter konten juga, baca terus.

Mengatur Filter Konten Menggunakan E2guardian

E2guardian tidak ada di repositori Raspbian default. Untuk menginstalnya, buka halaman Github proyek , dan unduh file yang diakhiri dengan armhf.deb . Sekarang buka Terminal, buka folder Unduhan Anda (atau di mana pun Anda memilih untuk mengunduh file), dan instal:

cd ~/Downloads sudo dpkg -i ./e2guardian_*_jessie_armhf.deb

Anda mungkin akan melihat bebera
pa kesalahan tentang paket yang hilang saat Anda menginstal E2guardian. Untuk memperbaiki ini, biarkan instalasi selesai, dan masukkan perintah berikut:

sudo apt-get install -f

Menggunakan Daftar Konten

Ada beberapa daftar yang ada di direktori /etc/e2guardian/lists . File-file ini termasuk bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist, dan banyak lagi. File-file ini didokumentasikan dengan baik dengan komentar. Lihatlah mereka untuk membiasakan diri.

Sebagai contoh, misalkan Anda ingin memblokir beberapa jejaring sosial populer . Buka file /etc/e2guardian/lists/bannedsitelist , dan di bawah blok Blanket SSL/CONNECT (karena situs web ini menggunakan https alih-alih http biasa ), tambahkan baris berikut:

facebook.com twitter.com reddit.com

Sekarang muat ulang layanan E2guardian menggunakan perintah sudo service e2guardian reload ( Anda harus menjalankan perintah ini setiap kali Anda mengubah file konfigurasi ). Setiap klien yang menggunakan filter konten sekarang tidak akan dapat mengakses situs web ini. Bahkan situs seluler (mis. m.twitter.com) dan aplikasi ponsel cerdas khusus tidak akan berfungsi.

E2guardian juga memblokir porno secara default . Jika Anda ingin mengizinkannya (hei, kita tidak menghakimi), buka file /etc/e2guardian/lists/bannedphraselist , dan temukan baris berikut:

.Sertakan</etc/e2guardian/lists/phraselists/pornography/banned>

Komentari dengan menambahkan hash (simbol #) ke depan, sehingga terlihat seperti ini:

#.Sertakan</etc/e2guardian/lists/phraselists/pornography/banned>

Sekali lagi, muat ulang konfigurasi dengan Sudo service e2guardian reload , dan selesai.

Mengonfigurasi Klien

Sekarang setelah server proxy kita diatur, kita dapat melanjutkan untuk mengonfigurasi klien. Untuk menggunakan filter konten, semua klien harus terhubung ke hotspot Rapberry Pi, dan dikonfigurasi untuk menggunakan proxy. Mengonfigurasi proxy berbeda di semua sistem operasi dan perangkat. Namun, kita akan menunjukkan cara mengaturnya di Windows dan Android, karena ini lebih populer.

jendela

Buka Panel Kontrol > Jaringan dan Internet > Opsi Internet . Di jendela yang terbuka, navigasikan ke tab Connections , dan klik pada pengaturan LAN .

Di sini, klik Advanced , dan masukkan 192.168.8.1 sebagai alamat proxy, dan 8080 sebagai port. Pastikan kotak Gunakan server proxy yang sama untuk semua protokol dicentang. Klik Oke .

Itu saja yang perlu Anda lakukan. Peramban web paling populer seperti Google Chrome dan Firefox akan secara otomatis mengambil pengaturan proxy sistem.

Android

Buka Pengaturan Sistem > WiFi . Sekarang ketuk dan tahan hotspot Raspberry Pi, dan pilih Modify network . Di bawah Opsi lanjutan , atur opsi Proxy ke Manual . Sekarang, di bawah Proxy hostname , masukkan alamat IP Pi 192.168.8.1 . Di bawah Proxy port , masukkan 8080 , dan ketuk Simpan .

Anda sekarang dapat menguji konfigurasi proxy. Coba buka situs web di daftar hitam Anda – Anda akan melihat halaman “Akses Ditolak” seperti ini:

Menegakkan Penggunaan Proxy

Sejauh ini, kita mengandalkan klien yang bermain bagus dan menggunakan internet melalui filter konten. Tentu hal ini jarang terjadi di dunia nyata. Jadi untuk memaksa semua klien melalui proxy, jalankan perintah berikut:

sudo iptables -A PREROUTING -t nat -p tcp –destination-port 80 -j REDIRECT –to-ports 8080 Sudo iptables -A PREROUTING -t nat -p tcp –destination-port 443 -j REDIRECT –to- port 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4

Ini akan secara otomatis mengarahkan semua lalu lintas http (port 80) dan https (port 443) di hotspot raspberry Pi ke proxy filter konten. Sekarang, tanpa mengonfigurasi pengaturan proxy di perangkat Anda, mereka tidak akan dapat mengakses situs web https yang aman seperti Facebook, Gmail, Twitter, dll. sama sekali. Ini memastikan bahwa siapa pun yang ingin terhubung ke hotspot Pi Anda harus melalui proxy.

Ini semua yang perlu Anda ketahui untuk penggunaan dasar filter konten. Jika Anda ingin mempelajari beberapa fitur lanjutan, baca terus.

Skenario Penggunaan Lanjutan

Menyiapkan Filter Berbasis Waktu

Katakanlah Anda ingin memblokir situs web yang kita sebutkan di bagian Menggunakan Daftar Konten di atas, tetapi hanya pada waktu tertentu dalam sehari . Saya pribadi lebih suka memblokir Reddit, Facebook dan Twitter selama jam kerja (9 pagi – 5 sore) pada hari kerja karena mereka adalah mimpi buruk produktivitas.

Buka file /etc/e2guardian/lists/bannedsitelist , dan tambahkan baris berikut ke dalamnya:

waktu: 9 0 17 0 01234

Baris ini bekerja sebagai berikut – penghitung waktu dimulai pada jam 9 (9 pagi) 0 (00 menit), hingga 17 (jam 5 sore dalam format 24 jam) 0 (00 menit), dari 0 (Senin) hingga 4 (Jumat).

Mari kita ambil contoh lain:

waktu: 10 30 20 45 024

Ini akan memblokir situs yang dikonfigurasi dari 10:30 (10 30) hingga 20:45 (20 45) pada hari Senin (0), Rabu (2), dan Jumat (4).

Membiarkan Alamat IP Tertentu Melewati Proxy

Dimungkinkan untuk membiarkan alamat IP tertentu melewati filter konten. Ini dapat diatur dengan mengkonfigurasi firewall . Anda mungkin telah memperhatikan bahwa di dnsmasq.conf kita , kita hanya mengatur hotspot untuk menetapkan alamat IP dari 192.168.8.20 hingga 192.168.8.254 ke klien. Itu berarti alamat dari 192.168.8.2 hingga 192.168.8.19 tidak akan secara otomatis ditetapkan ke klien mana pun (kita tidak dapat menggunakan 192.168.8.1 karena itulah yang digunakan oleh Raspberry Pi kita sendiri).

Untuk melakukan ini, pertama-tama siapkan IP statis pada perangkat yang ingin Anda beri akses penuh. Misalnya, untuk menyiapkan IP statis 192.168.8.2 pada mesin Windows, gunakan pengaturan ini:

Sekarang, di Raspberry Pi Anda, jalankan perintah berikut.

sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 –destination-port 80 -j RETURN Sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 –destination-port 443 -j RETURN

Sekarang, nonaktifkan penggunaan proxy di perangkat Anda , dan coba buka situs web yang dilarang. Anda harus bisa membukanya. Jika ada lebih banyak alamat IP yang ingin Anda tambahkan ke daftar putih, jalankan kembali dua perintah di atas, tetapi ganti alamat IP dengan yang Anda inginkan. Setelah Anda puas dengan daftar putih, jalankan perintah berikut untuk menyimpan konfigurasi firewall Anda:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Satu hal penting yang perlu diingat adalah Anda tidak boleh memberi tahu siapa pun tentang alamat IP yang masuk daftar putih. Jika tidak, mereka dapat dengan mudah mengatur perangkat mereka ke alamat IP tersebut untuk melewati proxy.

Perhatian pada keamanan

Karena Raspberry Pi Anda akan menjadi titik masuk dan keluar untuk semua komunikasi Anda, penting untuk mengamankannya. Berikut adalah beberapa tips tentang cara meningkatkan keamanan. Ingatlah bahwa ini hanyalah petunjuk dasar dan bukan daftar lengkap jebakan keamanan. Jumlah keamanan akan tergantung pada sifat jaringan Anda (rumah, kantor kecil, dll.) dan seberapa nakal penggunanya.

Nonaktifkan Layanan yang Tidak Dibutuhkan

Karena ini adalah router, yang terbaik adalah menjalankan layanan yang kita butuhkan saja. Semakin banyak layanan yang berjalan berart
i semakin banyak kerentanan yang berpotensi dieksploitasi. Jelas tidak menggunakan sistem ini sebagai desktop biasa .

Buka Menu > Preferensi > Konfigurasi Raspberry Pi . Di tab Antarmuka , nonaktifkan semua layanan yang tidak Anda perlukan.

Ubah Kata Sandi Default

Instalasi Raspbian baru dilengkapi dengan kata sandi default ‘raspberry’ untuk pengguna default ‘pi’. Disarankan untuk mengubah ini menjadi kata sandi yang lebih aman. Untuk mengubahnya, buka terminal jalankan perintah ini:

paswd

Lepaskan Monitor dan Periferal Lainnya

Karena semua yang akan dijalankan pada Pi ini adalah perangkat lunak yang diperlukan untuk menggunakannya sebagai router dan filter web, kita tidak memerlukan monitor atau periferal lain seperti mouse dan keyboard yang terpasang padanya. Jika Anda perlu mengubah pengaturan dan semacamnya, Anda selalu dapat menggunakan SSH, atau memasang monitor dan keyboard sesuai kebutuhan.

Matikan Login Otomatis

Raspbian diatur untuk masuk secara otomatis dengan kredensial pengguna ‘pi’ tanpa meminta kata sandi. Ini mungkin baik-baik saja untuk desktop keluarga tujuan umum, tetapi berbahaya untuk router. Untuk menonaktifkan ini, pada desktop Raspbian, buka Menu > Preferences > Raspberry Pi Configuration . Di tab Sistem , di depan judul Masuk otomatis , hapus centang pada kotak Masuk sebagai pengguna ‘pi’ .

Di kotak dialog yang sama, disarankan juga untuk mengatur pengaturan Boot ke To CLI . Ini akan menghemat sumber daya karena kita tidak memerlukan GUI di router. Jika Anda ingin menggunakan desktop untuk alasan apa pun, masuk dengan nama pengguna Anda, dan jalankan perintah startx untuk mengaktifkan antarmuka grafis.

Memecahkan Masalah Umum

Antarmuka Terus Berganti Nama

Ini sangat umum jika Anda menggunakan dua antarmuka nirkabel di Pi Anda. Jika Anda menggunakan Ethernet untuk menghubungkan Pi Anda ke internet, Anda dapat mengabaikan bagian ini dengan aman . Masalahnya adalah kedua antarmuka nirkabel ( wlan0 dan wlan1 ) terkadang bertukar nama setelah reboot. Artinya, modul WiFi bawaan wlan0 diganti namanya menjadi wlan1 , dan sebaliknya. Ini tentu saja merupakan masalah besar karena kita mengandalkan mereka yang memiliki nama yang konsisten untuk file konfigurasi kita. Berikut adalah cara membuatnya konsisten di seluruh reboot:

1. Cari tahu alamat MAC antarmuka Anda . Jalankan perintah ifconfig | grep HWaddr di Raspberry Pi Anda. Anda akan melihat output seperti berikut:

Catat teks di sebelah kanan kata ‘HWaddr’ di bagian wlan0 dan wlan1 . Anda dapat dengan aman mengabaikan bagian eth0 . Ini adalah alamat MAC dari antarmuka nirkabel Anda.

Jika Anda tidak yakin alamat MAC mana yang termasuk dalam antarmuka mana, cukup cabut dongle USB WiFi, dan jalankan perintah lagi. wlan antarmuka yang muncul sekarang adalah built-in WiFi antarmuka Anda, sementara yang lain adalah USB.

2. Buat file baru /etc/udev/rules.d/10-network.rules menggunakan editor teks favorit Anda. Sebagai contoh :

sudo nano /etc/udev/rules.d/10-network.rules

3. Masukkan teks berikut dalam file ini. Ganti xx:xx:xx:xx dll. dengan alamat MAC yang sesuai :

[sourcecode]# Siapkan modul WiFi bawaan sebagai wlan0. Ganti xx:xx:xx dll. dengan # alamat MAC modul bawaan SUBSYSTEM==”net”, ACTION==”add”, ATTR{address}==”xx:xx:xx:xx:xx:xx “, NAMA=”wlan0”

# Siapkan dongle WiFi USB sebagai wlan1. Ganti yy:yy:yy dll. dengan # alamat MAC dongle USB SUBSYSTEM==”net”, ACTION==”add”, ATTR{address}==”yy:yy:yy:yy:yy:yy”, NAMA=”wlan1″[/kode sumber]

Pastikan bahwa alamat MAC antarmuka WiFi bawaan sesuai dengan wlan0 , dan USB WiFi ke wlan1 karena itulah konvensi yang kita ikuti dalam panduan ini.

4. Reboot Raspberry Pi Anda. Antarmuka Anda akan dimulai dengan nama yang benar sekarang.

Menyetel Ulang Konfigurasi Firewall

Masalah umum lainnya adalah firewall yang dikonfigurasi dengan buruk. Tergantung pada konfigurasi jaringan Anda, mungkin perlu beberapa kali percobaan sebelum Anda mendapatkan firewall yang benar. Jika suatu saat Anda berpikir bahwa Anda mungkin telah mengacaukan konfigurasi firewall, jalankan perintah berikut untuk memulai dari awal:

sudo iptables –flush sudo iptables –table nat –flush sudo iptables –delete-chain sudo iptables –table nat –delete-chain

Ini akan menghapus semua konfigurasi firewall. Anda sekarang dapat mulai mengonfigurasi firewall dari awal. Setelah Anda puas, jalankan perintah Sudo iptables-save | sudo tee /etc/iptables/rules.v4 untuk membuat konfigurasi menjadi permanen.

LIHAT JUGA: Cara Menjalankan Perintah di Raspberry Pi Melalui Email

Gunakan Raspberry Pi Anda sebagai Router dan Filter Konten

Itu saja untuk mengubah Raspberry Pi Anda menjadi router yang kuat plus proxy filter konten. Anda bisa mendapatkan file konfigurasi persis yang kita gunakan untuk pengaturan kita di halaman GitHub kita . Beri tahu kita cara kerjanya untuk Anda. Jika sesuatu tidak berjalan seperti yang diharapkan, atau suatu langkah terasa terlalu membingungkan, jangan ragu untuk mengajukan pertanyaan kepada kita di bagian komentar di bawah.