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
/--fetch
membuat folder./RAW_DATA/
berisi data asli yang didapat daritrustpositif.kominfo.go.id
.-c
/--clean
membuat folder./DATA/
berisi hasil list domain yang telah dibersihkan dari folder./RAW_DATA/
.-g
/--generate
membuat 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.