Kebetulan beberapa bulan lalu saya sedang ada projek membangun infrastruktur di salah 1 kantor di Indonesia. Nah salah satunya adalah membuat DNS server internal mereka, dan mereka minta untuk pemblokiran situs sesuai arahan dari pemerintah.
Sebagai pendukung internet bebas, saya merasa sangat-sangat berdosa telah
membangun sistem yang penuh sensor, apa lagi sumber rujukannya
amburadul mirip
rambutnya @74jTeZ (https://devilzc0de.id/forum/user-20584.html). Tapi
apalah daya, peraturan adalah peraturan dan wajib diikuti. Maka dari itu, untuk
menebus dosa, saya buat script sederhana yang mudah-mudahanan berguna bagi
netadmin/sysadmin, namanya “Katanya Internet Positif”.
Katanya Internet Positif adalah script sederhana untuk mengambil data
blacklist dari trustpositif.kominfo.go.id, melakukan filterisasi kembali
terhadap duplikasi domain atau alamat wildcard IP yang tidak valid, dan
melakukan convert untuk konfigurasi BIND DNS zone blacklist.
GitHub: https://github.com/ditatompel/Katanya-Internet-Positif
Petunjuk Penggunaan
Script ini dapat dijalankan menggunakan Python 2.6 atau lebih.
1st run / update RAW_DATA
Untuk yang pertama kali menjalankan script ini (atau ingin melakukan update
RAW_DATA), gunakan opsi -f alias --fetch untuk mengambil RAW_DATA
dari trustpositif.kominfo.go.id.
1python ./internetpositif.py --fetch
Membersihkan duplikasi Data / list alamat IP yang tidak valid
Untuk membersihkan duplikasi data, menghapus alamat IP yang tidak valid,
gunakan opsi -c alias --clean.
1python ./internetpositif.py -c
BIND zone file generator
Untuk membuat konfigurasi BIND blacklist zone, gunakan opsi -g alias
--generate dengan opsi tambahan -n/--nameserver, -e/--email,
-d/--domain.
Misalnya :
1python ./internetpositif.py --generate -n ns.domain.com -e admin.domain.com -d blokir.domain.com
akan menghasilkan file :
1$TTL 86400 ; 1 day
2@ IN SOA ns.domain.com. admin.domain.com. (
3 2017040503 ; serial
4 3600 ; refresh (1 hour)
5 120 ; retry (2 minute)
6 604800 ; expire (1 week)
7 86400 ; minimum (1 day)
8 )
9 IN NS ns.domain.com.
10domain.yang.diblokir.com IN CNAME blokir.domain.com.
11domain.lainnya.yang.diblokir.net IN CNAME blokir.domain.com.
12; [dan seterusnya]
Jalankan semua dalam 1 baris:
1python ./internetpositif.py -cfg -n=ns.domain.com --email=admin.domain.com -d blokir.domain.com
Default Values
Opsi tertentu memiliki default value, seperti :
-n/--nameserver=localhost.local-e/--email=administrator.localhost.local-d/--domain=internetbaik.wds.co.id
Informasi lebih lanjut:
1python ./internetpositif.py
2
3-h, --help show this help message and exit
4-f, --fetch Ambil data blacklist dari trustpositif.kominfo.go.id
5-c, --clean Bersihkan duplikasi data dari
6 trustpositif.kominfo.go.id
7-g, --generate Buat file zone file untuk BIND (BIND zone file
8 generator)
9
10Opsi tambahan untuk BIND zone file generator:
11-n NAMESERVER, --nameserver NAMESERVER
12 Nameserver option, default : localhost.local
13-e EMAIL, --email EMAIL
14 Email option, default : administrator.localhost.local
15-d DOMAIN, --domain DOMAIN
16 CNAME domain tujuan. Default internetbaik.wds.co.id
Struktur File
Script akan membuat folder tertentu sesuai dengan opsi perintah yang diberikan.
-f/--fetchmembuat folder./RAW_DATA/berisi data asli yang didapat daritrustpositif.kominfo.go.id.-c/--cleanmembuat folder./DATA/berisi hasil list domain yang telah dibersihkan dari folder./RAW_DATA/.-g/--generatemembuat folder./conf/hasil convert named zone yang didapat dari folder./DATA/.
Berkontribusi
Lihat CONTRIBUTING.md untuk informasi lebih detail mengenai cara berkontribusi pada repositori ini.








