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.



