Sejumlah besar instruksi telah diterbitkan dengan berbagai opsi untuk melewati pemblokiran sumber daya Internet. Tapi topiknya tidak kehilangan relevansi. Bahkan lebih sering, inisiatif terdengar di tingkat legislatif untuk memblokir artikel tentang metode untuk memotong kunci. Dan ada desas-desus bahwa Roskomnadzor akan menerima paket uang pembayar pajak untuk kunci yang "lebih baik". Pengguna yang berpengalaman tidak akan mempelajari sesuatu yang baru atau berguna dari artikel tersebut. Tetapi yang lain akan menerima instruksi langkah demi langkah yang siap pakai untuk pintas kunci selektif yang sederhana dan efektif pada router populer dengan Padavan dan firmware Keenetic.

Isi
Pendahuluan
Saya menggunakan
opsi pintas kunci Zolg selama sekitar dua tahun. Banyak instruksi pada jaringan didasarkan padanya. Milik saya termasuk.
Semuanya baik, tetapi "yang terbaik selalu menjadi musuh yang baik." Pertama, beberapa program baru menjadi terlalu "pintar" dan akan menyelesaikan domain menggunakan metode mereka sendiri, melewati server DNS router. Ini tidak memungkinkan dnsmasq pada router untuk menambahkan alamat ke set ipset untuk membuka kunci dan mengarah ke hasil logis - sumber daya tetap terkunci. Di Android 9, dukungan asli untuk DNS-over-TLS, mis. metode mem-bypass kunci ini berhenti berfungsi (jika perangkat lain belum mengakses dnsmasq sebelumnya). Kedua, memperbarui seluruh daftar domain dari antizapret mengarah ke hasil yang tidak dapat diprediksi setiap saat. Daftar ini mungkin termasuk domain yang tidak benar-benar diblokir, dan yang operasinya penting melalui saluran utama. Anda harus selalu waspada dan mengedit file yang dihasilkan dengan tangan Anda. Ketiga, saya bosan "menyeret" daftar besar domain dengan puluhan ribu kasino dan sejenisnya, yang sama sekali tidak diperlukan. Seiring waktu, saya menyadari bahwa saya hanya membutuhkan daftar kecil sumber daya yang diblokir.
Jadi selama setahun saya telah menggunakan metode membuka kunci yang sedikit dimodifikasi, yang saya sepenuhnya puas dengan:
- Kesederhanaan dan kemudahan kontrol (setelah konfigurasi).
- Kontrol penuh atas sumber daya apa yang Anda butuhkan untuk membuka kunci.
- Persyaratan minimum untuk sumber daya prosesor dan RAM router.
- Cakupan nuansa yang luas saat melewati kunci.
Penting untuk dicatat bahwa opsi saya tidak dimaksudkan untuk kasus ketika Anda perlu membuka ratusan dan ribuan domain. Karena ketika router mulai, setiap domain dari daftar yang diberikan diselesaikan. Semakin banyak domain dalam daftar, semakin lama inisialisasi banyak ipset untuk dibuka.
Dasar untuk mem-bypass kunci adalah sama - jaringan Tor. Penggunaannya disebabkan oleh dua faktor sederhana - gratis, dan kemungkinan Tor akan diblokir di Rusia mendekati nol, tidak seperti layanan VPN apa pun. Tor adalah dasar dari perdagangan narkoba di Rusia dari tengah ke bawah. Locking Tor akan mengarah pada pencarian alat-alat baru untuk pasar dan penurunan anonimitas, yang akan mensyaratkan keberhasilan aktivasi pekerjaan lembaga penegak hukum setempat. Pada akhirnya, ini, seperti virus, akan mulai berdampak negatif pada tautan atas. Mengingat berita luar biasa terbaru tentang hubungan pejabat senior pemerintah dengan perdagangan narkoba global ke Rusia, pemblokiran Tor di Rusia hanyalah hal yang tabu, meskipun sepele. Baik Roskomnadzor, tidak peduli berapa miliar yang dialokasikan untuk departemen ini, tidak ada pengadilan tunggal di Rusia yang memiliki izin "dari atas" untuk memblokir Tor. Dan itu bahkan tidak mengejutkan siapa pun atau menakut-nakuti siapa pun, meskipun Rusia hanya tenggelam dalam narkoba (setiap anak sekolah tahu apa yang akan dilakukan, dan setelah 30 menit itu sebenarnya mungkin di kota mana pun dengan populasi 10 ribu orang untuk secara bebas mendapatkan obat apa pun secara praktis dalam jumlah berapapun - suatu kebenaran kehidupan yang jahat). Dalam mode saat ini, probabilitas memblokir jaringan Tor lebih rendah daripada kemungkinan memblokir situs museum Hermitage.
Instruksi yang diberikan mudah untuk diadaptasi untuk router dengan OpenWrt. Juga, perubahan kecil membuatnya mudah untuk mengganti Tor dengan OpenVPN.
Bagaimana Anda bisa melewati kunci setelah konfigurasi?
Semuanya sangat sederhana. Anda memiliki file /opt/etc/unblock.txt - daftar sederhana untuk membuka kunci. Anda dapat membuka kunci domain, alamat IP, rentang alamat atau CIDR. Satu baris - satu elemen. Baris kosong diizinkan, dan Anda dapat menggunakan karakter # di awal baris untuk diabaikan.
Ini adalah contoh file pribadi saya Setelah mengedit file ini, Anda cukup menjalankan perintah untuk menerapkan konfigurasi baru:
unblock_update.sh
Semua sumber daya dari unblock.txt dibuka tanpa harus me-restart router.
Prinsip kerja
- Inisialisasi router membuat seperangkat alamat IP ipset kosong yang disebut unblock.
- Aturan untuk mengarahkan ulang semua paket dengan tujuan dari pemblokiran ke layanan Tor ditambahkan ke firewall.
- Layanan Tor dimulai dalam mode proxy transparan.
- Script khusus unblock_ipset.sh diluncurkan, yang menyelesaikan semua domain dari unblock.txt dan menambahkan alamat IP mereka ke set blokir. Alamat IP, rentang, dan CIDR dari file ini juga ditambahkan ke blokir.
- Dnsmasq diluncurkan dengan file konfigurasi tambahan, unblock.dnsmasq, yang menunjukkan penambahan alamat IP domain dari unblock.txt ke blokir yang ditetapkan saat menyelesaikan.
- cron menjalankan unblock_ipset.sh dengan frekuensi tertentu untuk mengkompensasi sebagian kemungkinan kasus dengan nuansa.
- Jika perlu, semua domain dari unblock.txt (dan hanya mereka) menyelesaikan melalui dnscrypt-proxy jika penyedia menyaring DNS.
Mengkonfigurasi Router Padavan
Anda harus memiliki router dengan firmware Padavan yang diinstal dan manajer paket Entware yang sudah dikonfigurasi. Pada Windows, Anda dapat menggunakan klien
Putty untuk terhubung ke router melalui SSH.
Pastikan Anda menggunakan Entware, bukan legware Entware-ng. Lihat isi folder / opt / var / opkg-daftar. Akan ada file entware atau entware-ng. Dalam kasus kedua, Anda perlu memperbarui firmware Padavan dari router Anda ke versi terbaru dan menginstal ulang manajer paket Entware. Hanya kemudian melanjutkan dengan petunjuk langkah demi langkah.
Seperti yang diperlihatkan oleh ulasan, terutama mereka yang memiliki Entware yang dikonfigurasikan secara tidak benar pada awalnya (mis., Skrip dari init.d tidak dimuat) dalam memori internal router. Jika Anda memiliki Xiaomi Mi Router 3 atau 3G, dan Anda tidak yakin Entware berfungsi dengan benar di memori internal Anda (mulai otomatis), maka atur semuanya lagi. Ambil PROMETHEUS. Memperbarui skrip (1). Perbarui kode sumber (2). Kumpulkan dan flash firmware terbaru (4). Reset pengaturan firmware (NVRAM dan penyimpanan file) - Lanjutan> Administrasi> Pengaturan. Konfigurasikan akses Internet pada router dan aktifkan SSH. Lakukan di PROMETHEUS Firmware> Format RWFS. Pilih Tingkat Lanjut> Administrasi> Pengaturan> Tingkatkan sistem file di bagian R / W> UBIFS. Nyalakan ulang router. Semua skrip startup Entware saat ini dari memori internal akan didaftarkan secara otomatis, dan semuanya akan berfungsi seperti jam.
Untuk pengujian, saya menggunakan Xiaomi Mi Router 3G yang populer (Entware dipasang di memori internal) dengan firmware terbaru - 32a93db. Semuanya akan bekerja bahkan pada bayi legendaris WT3020 AD / F / H sebesar $ 10.

1. Menginstal perangkat lunak yang diperlukan pada router
opkg update opkg install mc tor tor-geoip bind-dig cron
mc - manajer file Midnight Commander. Ini diperlukan hanya karena editor mcedit yang mudah digunakan. Jika Anda terbiasa menggunakan editor teks lain, maka mc tidak dapat diinstal.
layanan tor - Tor.
tor-geoip - basis data geo-IP untuk Tor.
bind-dig - klien DNS (analog dengan nslookup dan host).
cron - task scheduler.
2. Inisialisasi ipset, buat beberapa alamat IP unblock (start_script.sh)
Hubungkan modul yang diperlukan dan buat satu set alamat kosong dengan nama
buka blokir saat router boot. Untuk melakukan ini, buka file
/etc/storage/start_script.sh di editor:
mcedit /etc/storage/start_script.sh
Tambahkan di akhir:
modprobe ip_set modprobe ip_set_hash_ip modprobe ip_set_hash_net modprobe ip_set_bitmap_ip modprobe ip_set_list_set modprobe xt_set ipset create unblock hash:net
Untuk menempel dari buffer, gunakan Shift + Insert, simpan - F2, keluar - F10.

Jika diinginkan, Anda dapat mengedit file start_script.sh melalui antarmuka web router - "Advanced"> "Personalisasi"> "Scripts"> "Run sebelum menginisialisasi router." Setelah mengedit, klik "Terapkan."

3. Pengaturan Tor
Hapus konten file konfigurasi Tor:
cat /dev/null > /opt/etc/tor/torrc
Buka file konfigurasi Tor:
mcedit /opt/etc/tor/torrc
Rekatkan (Shift + Sisipkan) isinya:
User admin PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
Jika perlu, ganti
192.168.0.1 dengan alamat internal router Anda (LAN). Deskripsi konfigurasi singkat:
- Kecualikan simpul keluaran: Rusia, Ukraina, Armenia Kirgistan, Belarus.
- Gantung proxy transparan ke alamat 192.168.0.1, port 9141.
- Tolak menjadi titik keluar.
4. Daftar domain (dan tidak hanya) untuk memotong kunci (buka blokir.txt)
unblock.txt adalah daftar sederhana untuk membuka kunci. Anda dapat membuka kunci domain, alamat IP, jangkauan atau CIDR. Satu baris - satu elemen. Baris kosong (termasuk spasi dan tab) diabaikan. Anda dapat menggunakan karakter # di awal baris untuk mengabaikannya.
Buat file
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
Setiap baris dapat berisi nama domain, alamat IP, rentang, atau CIDR. Anda dapat menggunakan karakter # untuk mengomentari baris.
Ini adalah contoh file pribadi saya 5. Sebuah skrip untuk mengisi satu set blokir alamat IP dari daftar domain tertentu (unblock_ipset.sh)
Buat skrip
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/bin/unblock_ipset.sh
Skripnya cukup sederhana, itulah esensi dari kerjanya ... Kami sedang menunggu resolusi domain google.com berfungsi (jika ini tidak dilakukan, banyak pemblokiran tidak akan terisi ketika router melakukan booting, karena router akan masih dalam proses inisialisasi). Kami membaca baris di file unblock.txt. Baca baris secara otomatis menghapus spasi dan tab di awal dan akhir. Lewati garis kosong. Lewati garis yang dimulai dengan karakter #. Kami sedang mencari di baris CIDR. Jika CIDR ditemukan, lalu tambahkan untuk membuka blokir. Kami mencari rentang dalam string. Jika ditemukan, tambahkan itu untuk membuka blokir. Kami mencari alamat IP dalam string. Jika IP ditemukan, tambahkan itu untuk membuka blokir. Mari kita selesaikan suatu garis melalui penggalian. Semua alamat IP dari hasil ditambahkan untuk membuka blokir.
6. Sebuah skrip untuk menghasilkan file konfigurasi dnsmasq tambahan dari daftar domain yang diberikan (unblock_dnsmasq.sh)
Buat skrip
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/bin/unblock_dnsmasq.sh
Skripnya cukup sederhana, itulah esensi dari kerjanya ... Kami secara berurutan membaca baris-baris dari /opt/etc/unblock.txt. Baca baris secara otomatis menghapus spasi dan tab di awal dan akhir. Lewati garis kosong. Lewati garis yang dimulai dengan #. Kami melewatkan baris yang berisi alamat IP (IP, range, CIDR), mis. kami hanya tertarik pada string dengan nama domain. Dalam file /opt/etc/unblock.dnsmasq kita menambahkan baris dari bentuk "ipset = / domain_name / unblock". Ini berarti bahwa setelah menentukan alamat IP dari domain tertentu, mereka akan secara otomatis ditambahkan ke set blokir.
Pastikan untuk menjalankan skrip untuk menghasilkan file unblock.dnsmasq:
unblock_dnsmasq.sh
Verifikasi bahwa file unblock.dnsmasq dibuat:
cat /opt/etc/unblock.dnsmasq
7. Skrip untuk pembaruan paksa sistem secara manual setelah mengedit daftar domain (unblock_update.sh)
Buat skrip
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/bin/unblock_update.sh
8. Script untuk secara otomatis mengisi satu set pemblokiran saat mem-boot router (S99unblock)
Buat skrip
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/etc/init.d/S99unblock
9. Meneruskan paket dengan tujuan dari buka blokir ke Tor (post_iptables_script.sh)
Buka file
/etc/storage/post_iptables_script.sh di editor:
mcedit /etc/storage/post_iptables_script.sh
Tambahkan di akhir:
iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141

Jika mau, Anda dapat mengedit file post_iptables_script.sh melalui antarmuka web router - "Advanced"> "Personalisasi"> "Scripts"> "Jalankan setelah memulai kembali aturan firewall". Setelah mengedit, klik "Terapkan."

Anda dapat menambahkan (ini opsional) ke file yang sama untuk mengarahkan ulang semua permintaan ke port eksternal 53 ke diri Anda sendiri. Ini diperlukan agar klien di jaringan lokal tidak menggunakan layanan DNS pihak ketiga. Permintaan akan melalui server DNS biasa.
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1
Jika perlu, ganti
192.168.0.1 dengan alamat internal router Anda (LAN).
10. Menghubungkan file konfigurasi tambahan ke dnsmasq
Kita perlu menghubungkan file unblock.dnsmasq yang dibuat ke dnsmasq. Untuk melakukan ini, buka file
/etc/storage/dnsmasq/dnsmasq.conf di editor:
mcedit /etc/storage/dnsmasq/dnsmasq.conf
Tambahkan di akhir:
conf-file=/opt/etc/unblock.dnsmasq
Jika Anda mau (ini opsional), Anda dapat menambahkan server tambahan untuk resolusi dan keandalan:
server=8.8.8.8
Jika mau, Anda dapat mengedit file dnsmasq.conf melalui antarmuka web router - "Advanced"> "LAN"> "DHCP server"> "File konfigurasi pengguna dnsmasq.conf". Setelah mengedit, klik "Terapkan."

11. Menambahkan tugas ke cron untuk memperbarui konten set blokir secara berkala
Ini adalah asuransi tambahan jika program / perangkat menggunakan metode penyelesaiannya sendiri dan alamat IP domain telah berubah. Yang perlu Anda lakukan adalah menjalankan skrip unblock_ipset.sh pada frekuensi yang diinginkan. Misalnya, kami akan meluncurkan setiap hari jam 6 pagi.
Ganti nama root dengan admin di file konfigurasi cron:
sed -i 's/root/admin/g' /opt/etc/crontab
Buka file
/ opt / etc / crontab di editor:
mcedit /opt/etc/crontab
Tambahkan di akhir:
00 06 * * * admin /opt/bin/unblock_ipset.sh
Jika mau, Anda dapat mengomentari semua tugas templat lainnya. Seperti inilah tampilan file crontab Anda:

12. Memulai ulang router
Jalankan perintah:
reboot
Setelah reboot, buka situs web check.torproject.org di browser Anda (harus ditambahkan ke unblock.txt). Jika Anda melakukan semuanya dengan benar, maka Anda akan melihat tulisan “Selamat. Browser ini dikonfigurasi untuk menggunakan Tor. ":

Mengkonfigurasi Router dengan OS Keenetic
Anda harus memiliki router Keenetic / Zyxel dengan Entware Package Manager (OPKG) yang sudah dikonfigurasi. Misalnya, berikut adalah daftar beberapa router yang mendukung Entware: Keenetic II, Keenetic III, Extra, Extra II, Giga II, Giga III, Omni, Omni II, Viva, Ultra, Ultra II, Omni (KN-1410), Extra (KN -1710), Giga (KN-1010), Ultra (KN-1810), Viva (KN-1910), DSL (KN-2010), Duo (KN-2110). Petunjuk untuk mengonfigurasi Entware dapat ditemukan di
sini (hingga 10 poin).
Jika sebelumnya (dengan firmware di bawah 2.07) Anda telah menambahkan dukungan Entware, maka pastikan Anda
menggunakan Entware-ng yang ketinggalan zaman .
Pastikan untuk mengaktifkan "Modul Kernel Netfilter Subsistem" - Pengaturan Umum> Ubah Komponen. Jika tidak ada dalam daftar yang tersedia, maka cobalah untuk menginstal komponen protokol IPv6 terlebih dahulu. Jika setelah ini tidak muncul, maka coba tanpanya, tetapi sangat mungkin bahwa Anda tidak akan dapat membuka kunci berdasarkan jangkauan dan CIDR (karena tidak akan ada dukungan untuk hash: set net).

Untuk tes, saya menggunakan Keenetic Ultra (KN-1810) dengan firmware terbaru - 2.14.C.0.0-4.
Catatan penting. Anda harus menonaktifkan server DNS biasa di sistem, kami akan menggunakan dnsmasq sebagai gantinya. Anda akan kehilangan kemampuan untuk menetapkan layanan DNS (Yandex.DNS / SkyDNS / DNS AdGuard) secara individual untuk klien, tetapi Anda dapat menggunakannya secara global melalui pengaturan dnsmasq jika perlu.1. Menginstal perangkat lunak yang diperlukan pada router
opkg update opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables
mc - manajer file Midnight Commander. Ini diperlukan hanya karena editor mcedit yang mudah digunakan. Jika Anda terbiasa menggunakan editor teks lain, maka mc tidak dapat diinstal.
layanan tor - Tor.
tor-geoip - basis data geo-IP untuk Tor.
bind-dig - klien DNS (analog dengan nslookup dan host).
cron - task scheduler.
dnsmasq-full - server DNS.
ipset dan iptables adalah
ipset dan utilitas konsol
iptables (mungkin sudah ada di sistem dan tidak diperlukan, saya menambahkannya untuk keamanan).
2. Inisialisasi ipset, buat beberapa alamat IP unblock (100-ipset.sh)
Periksa apakah sistem router Anda mendukung banyak hash: net (ternyata, tidak semua router Keenetic memilikinya):
ipset create test hash:net
Jika tim tidak memberikan kesalahan atau pesan, maka ada dukungan, dan cukup ikuti instruksi lebih lanjut. Jika tidak (ada kesalahan) dalam skrip berikut, Anda harus mengganti
hash: net dengan
hash: ip . Dalam hal ini, Anda kehilangan kemampuan untuk membuka kunci rentang dan CIDR.
Buat satu set alamat kosong yang disebut
blokir saat router melakukan booting. Untuk melakukan ini, buat file
/opt/etc/ndm/fs.d/100-ipset.sh :
mcedit /opt/etc/ndm/fs.d/100-ipset.sh
Rekatkan (Shift + Sisipkan) isinya:
Untuk menempel dari buffer, gunakan Shift + Insert, simpan - F2, keluar - F10.
Berikan hak eksekusi:
chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
3. Pengaturan Tor
Hapus konten file konfigurasi Tor:
cat /dev/null > /opt/etc/tor/torrc
Buka file konfigurasi Tor:
mcedit /opt/etc/tor/torrc
Rekatkan (Shift + Sisipkan) isinya:
User root PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
Jika perlu, ganti
192.168.0.1 dengan alamat internal router Anda (LAN). Deskripsi konfigurasi singkat:
- Kecualikan simpul keluaran: Rusia, Ukraina, Armenia Kirgistan, Belarus.
- Gantung proxy transparan ke alamat 192.168.0.1, port 9141.
- Tolak menjadi titik keluar.
4. Daftar domain (dan tidak hanya) untuk memotong kunci (buka blokir.txt)
unblock.txt adalah daftar sederhana untuk membuka kunci. Anda dapat membuka kunci domain, alamat IP, jangkauan atau CIDR. Satu baris - satu elemen. Baris kosong (termasuk spasi dan tab) diabaikan. Anda dapat menggunakan karakter # di awal baris untuk mengabaikannya.
Buat file
/opt/etc/unblock.txt :
mcedit /opt/etc/unblock.txt
Setiap baris dapat berisi nama domain, alamat IP, rentang, atau CIDR. Anda dapat menggunakan karakter # untuk mengomentari baris.
Ini adalah contoh file pribadi saya 5. Sebuah skrip untuk mengisi satu set blokir alamat IP dari daftar domain tertentu (unblock_ipset.sh)
Buat skrip
/opt/bin/unblock_ipset.sh :
mcedit /opt/bin/unblock_ipset.sh
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/bin/unblock_ipset.sh
Skripnya cukup sederhana, itulah esensi dari kerjanya ... Kami sedang menunggu resolusi domain google.com bekerja (jika ini tidak dilakukan, banyak pemblokiran tidak akan terisi ketika router melakukan booting, karena router akan masih dalam proses inisialisasi). Kami membaca baris di file unblock.txt. Baca baris secara otomatis menghapus spasi dan tab di awal dan akhir. Lewati garis kosong. Lewati garis yang dimulai dengan karakter #. Kami sedang mencari di baris CIDR. Jika CIDR ditemukan, lalu tambahkan untuk membuka blokir. Kami mencari rentang dalam string. Jika ditemukan, tambahkan itu untuk membuka blokir. Kami sedang mencari alamat IP dalam string. Jika IP ditemukan, tambahkan itu untuk membuka blokir. Mari kita selesaikan suatu garis melalui penggalian. Semua alamat IP dari hasil ditambahkan untuk membuka blokir.
6. Sebuah skrip untuk menghasilkan file konfigurasi dnsmasq tambahan dari daftar domain yang diberikan (unblock_dnsmasq.sh)
Buat skrip
/opt/bin/unblock_dnsmasq.sh :
mcedit /opt/bin/unblock_dnsmasq.sh
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/bin/unblock_dnsmasq.sh
Skripnya cukup sederhana. Kami secara berurutan membaca baris-baris dari /opt/etc/unblock.txt. Baca baris secara otomatis menghapus spasi dan tab di awal dan akhir. Lewati garis kosong. Lewati garis yang dimulai dengan #. Lewati baris yang berisi alamat IP (IP atau CIDR), mis. kami hanya tertarik dengan string dengan nama domain. Dalam file /opt/etc/unblock.dnsmasq kita menambahkan baris dari bentuk "ipset = / domain_name / unblock". Ini berarti bahwa setelah menentukan alamat IP dari domain tertentu, mereka akan secara otomatis ditambahkan ke set blokir.
Pastikan untuk menjalankan skrip untuk menghasilkan file unblock.dnsmasq:
unblock_dnsmasq.sh
Verifikasi bahwa file unblock.dnsmasq dibuat:
cat /opt/etc/unblock.dnsmasq
7. Skrip untuk pembaruan paksa sistem secara manual setelah mengedit daftar domain (unblock_update.sh)
Buat skrip
/opt/bin/unblock_update.sh :
mcedit /opt/bin/unblock_update.sh
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/bin/unblock_update.sh
8. Script untuk secara otomatis mengisi seperangkat blokir saat mem-boot router (S99unblock)
Buat skrip
/opt/etc/init.d/S99unblock :
mcedit /opt/etc/init.d/S99unblock
Rekatkan (Shift + Sisipkan) isinya:
Berikan hak eksekusi:
chmod +x /opt/etc/init.d/S99unblock
9. Meneruskan paket dengan tujuan dari buka blokir ke Tor (100-redirect.sh)
Untuk melakukan ini, buat file /opt/etc/ndm/netfilter.d/100-redirect.sh : mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
Rekatkan (Shift + Sisipkan) isinya:
Jika Anda menggunakan hash: ip di langkah 2 dan bukan hash: net , lalu ganti hash: net dengan hash: ip. Bahkan, kami juga menduplikasi fungsi membuat satu set pemblokiran dari 2 langkah. Ini diperlukan untuk keamanan, jika skrip dari fs.d belum mulai berjalan, dan skrip netfilter.d sudah berjalan. Tidak apa-apa jika membuka blokir sudah dibuat sebelumnya, perintah itu hanya akan diabaikan.Anda dapat menambahkan (ini opsional) ke file yang sama untuk mengarahkan ulang semua permintaan ke port eksternal 53 ke diri Anda sendiri. Ini diperlukan agar klien di jaringan lokal tidak menggunakan layanan DNS pihak ketiga. Permintaan akan melalui server DNS biasa. Sebelum pintu keluar terakhir, tambahkan: if [ -z "$(iptables-save 2>/dev/null | grep "udp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 fi if [ -z "$(iptables-save 2>/dev/null | grep "tcp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1 fi
Jika perlu, ganti 192.168.0.1 dengan alamat internal router Anda (LAN).Berikan hak eksekusi: chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
10. Mengkonfigurasi dnsmasq dan melampirkan file konfigurasi tambahan ke dnsmasq
Hapus konten file konfigurasi dnsmasq: cat /dev/null > /opt/etc/dnsmasq.conf
Buka file konfigurasi dnsmasq: mcedit /opt/etc/dnsmasq.conf
Rekatkan (Shift + Sisipkan) isinya: user=nobody bogus-priv no-negcache clear-on-reload bind-dynamic listen-address=192.168.0.1 listen-address=127.0.0.1 min-port=4096 cache-size=1536 expand-hosts log-async conf-file=/opt/etc/unblock.dnsmasq server=8.8.8.8
Jika perlu, ganti 192.168.0.1 dengan alamat internal router Anda (LAN).11. Menambahkan tugas ke cron untuk memperbarui konten set blokir secara berkala
Ini adalah asuransi tambahan jika program / perangkat menggunakan metode penyelesaiannya sendiri dan alamat IP domain telah berubah. Yang perlu Anda lakukan adalah menjalankan skrip unblock_ipset.sh pada frekuensi yang diinginkan. Misalnya, kami akan meluncurkan setiap hari jam 6 pagi.Buka file / opt / etc / crontab di editor : mcedit /opt/etc/crontab
Tambahkan di akhir: 00 06 * * * root /opt/bin/unblock_ipset.sh
Jika mau, Anda dapat mengomentari semua tugas templat lainnya. Seperti inilah tampilan file crontab Anda:
12. Menonaktifkan server DNS biasa dan me-reboot router
Sambungkan ke Keenetic Router CLI (port 23 untuk Telnet dan 22 untuk SSH jika komponen "SSH Server" ditambahkan ke sistem).Jalankan perintah: opkg dns-override system configuration save system reboot
Server DNS yang dibangun ke dalam firmware akan dimatikan, dan dnsmasq dari Entware akan digunakan sebagai gantinya. Router, saat boot, memeriksa apakah folder opt sudah terpasang (apakah ada USB flash drive / drive dengan Entware). Jika ada, maka server DNS biasa tidak digunakan. Jika tidak, gunakan. Yaitu
menghapus flash drive dan me-reboot router, semuanya akan bekerja untuk Anda, seperti sebelumnya (sebelum menyiapkan).Setelah reboot, buka situs web check.torproject.org di browser Anda (harus ditambahkan ke unblock.txt). Jika Anda melakukan semuanya dengan benar, maka Anda akan melihat tulisan “Selamat. Browser ini dikonfigurasi untuk menggunakan Tor. ":
Metode dasar untuk mendiagnosis kesalahan setelah konfigurasi
Jika pemeriksaan dengan situs check.torproject.org (harus ditambahkan ke unblock.txt) lewat, tetapi rintisan dari penyedia terus membuka sumber daya lain (atau tidak terbuka), kemungkinan besar penyedia akan mengganggu lalu lintas DNS, mengganti jawaban - Anda Anda perlu melakukan bypass tambahan untuk memfilter kueri DNS.Jika setelah konfigurasi, sesuatu tidak berfungsi sebagaimana mestinya, gunakan perintah sederhana untuk menentukan langkah masalahnya.Tampilkan konten dari pemblokiran yang ditetapkan: ipset list unblock
Jika sistem melaporkan bahwa tidak ada set seperti itu, maka kesalahan ada di langkah 2 atau Anda tidak mengaktifkan modul Netfilter dalam sistem (dalam kasus Keenetic).Jika set ternyata kosong, skrip unblock_ipset.sh tidak berfungsi, yang pada gilirannya harus dimulai oleh skrip mulai S99unblock. Jalankan skrip unblock_ipset.sh ini secara manual. Jika set sudah penuh, maka kesalahannya ada pada langkah 8. Jika skrip tidak dapat dieksekusi (kemungkinan besar, menunggu resolusi google.com), maka kesalahan ada di sisi server DNS, mungkin pada langkah 10 atau 6.Periksa untuk pengalihan iptables : iptables-save 2>/dev/null | grep unblock
Jika tidak ada di sana, maka kesalahannya ada pada langkah 9.Jika sama sekali semua situs sedang down, mis. DNS tidak berfungsi, kesalahan ada di suatu tempat di tahap 6 atau 10. Mungkin, di tahap 9.Jika semua situs dari unblock.txt tidak berfungsi (batas waktu terlampaui), tetapi semua yang lain berfungsi, maka masalahnya ada di sisi Tor, kesalahan pada tahap 3.Bypass tambahan untuk memfilter kueri DNS oleh penyedia
Jika penyedia mengganggu lalu lintas DNS dengan mengganti respons untuk sumber daya yang diblokir, ini sangat mudah untuk dilakukan. Untuk ini kita akan menggunakan dnscrypt-proxy. Jika ingin dan mengalami, Anda dapat dengan mudah mengganti dnscrypt dengan stubby (DNS over TLS).dnscrypt hanya akan digunakan untuk domain yang terdaftar di unblock.txt. Semua pertanyaan lain akan melalui server DNS biasa.Jika Anda yakin bahwa penyedia Anda tidak memfilter kueri DNS, maka Anda tidak perlu melakukan konfigurasi tambahan ini.Anda seharusnya sudah mengkonfigurasi pintasan kunci yang dijelaskan di atas. Pengaturan berikut identik untuk Padavan dan Keenetic OS.Instal perangkat lunak tambahan di router: opkg update opkg install dnscrypt-proxy2
Buka file konfigurasi dnscrypt-proxy: mcedit /opt/etc/dnscrypt-proxy.toml
Temukan listen_addresses, fallback_resolver, parameter cache dan ubahlah: listen_addresses = ['127.0.0.1:9153'] fallback_resolver = '77.88.8.8:1253' cache = false
77.88.8.8:1253 adalah alamat server DNS Yandex dengan port non-standar. Ini adalah cadangan jika dnscrypt-proxy memiliki masalah.Jalankan dnscrypt-proxy: /opt/etc/init.d/S09dnscrypt-proxy2 start
Pastikan dnscrypt-proxy berfungsi (Anda harus melihat daftar alamat IP sebagai tanggapan): dig +short google.com @localhost -p 9153
Buka skrip /opt/bin/unblock_ipset.sh di editor : mcedit /opt/bin/unblock_ipset.sh
Ganti konten dengan:
Kami membuat perubahan kecil - saat ini penggalian untuk menyelesaikan tidak menggunakan server DNS biasa, tetapi dnscrypt-proxy dengan port 9153.Buka skrip /opt/bin/unblock_dnsmasq.sh di editor : mcedit /opt/bin/unblock_dnsmasq.sh
Ganti konten dengan:
Kami membuat perubahan kecil - sekarang ketika membuat file unblock.dnsmasq, baris tambahan seperti "server = / domain_name / 127.0.0.1 # 9153" ditambahkan. Ini berarti bahwa menyelesaikan domain dari daftar akan terjadi melalui dnscrypt-proxy.Jalankan unblock_update.sh: unblock_update.sh
Selesai
Semua pengaturan yang rumit ada di belakang. Sekarang Anda hanya akan mengedit daftar unblock.txt jika perlu, menambah atau menghapus domain atau alamat IP untuk membuka kunci darinya, dan mengaktifkan perubahan yang dibuat dengan perintah unblock_update.sh.PEMBARUAN 04/01/2019 . Sering datang pesan pribadi pada artikel dengan pertanyaan-pertanyaan khas. Saya akan menjawab di sini yang paling umum.Bagaimana cara menyediakan situs zona domain .onion?Di torrc tambahkan: VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1
Untuk mengakses semua domain zona bawang, tambahkan ke dnsmasq.conf: server=/onion/127.0.0.1
Jika Anda tidak ingin membuka akses ke semua domain dari zona bawang merah, tetapi hanya untuk yang spesifik, maka tambahkan entri berikut di dnsmasq.conf: server=/rutorc6mqdinc4cz.onion/127.0.0.1
Bagaimana cara memotong kunci untuk klien dari server VPN yang berjalan pada router?Di torrc, ganti baris dengan TransPort dengan: TransPort 0.0.0.0:9141
Tambahkan pengalihan tambahan dengan antarmuka yang diperlukan (INTERFACE - antarmuka jaringan VPN): iptables -t nat -A PREROUTING -i -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141