mirror of
https://github.com/ditatompel/insights.git
synced 2025-01-08 03:12:06 +07:00
125 lines
4.9 KiB
Markdown
125 lines
4.9 KiB
Markdown
|
---
|
||
|
title: "Katanya Internet Positif Python Script Bind Named"
|
||
|
description: "Script untuk mengambil data blacklist dari kominfo.go.id, melakukan filterisasi kembali terhadap duplikasi domain atau alamat wildcard IP yang tidak valid."
|
||
|
date: 2017-04-22T23:55:03+07:00
|
||
|
lastmod:
|
||
|
draft: false
|
||
|
noindex: false
|
||
|
featured: false
|
||
|
pinned: false
|
||
|
# comments: false
|
||
|
series:
|
||
|
# -
|
||
|
categories:
|
||
|
- Programming
|
||
|
- SysAdmin
|
||
|
tags:
|
||
|
- Python
|
||
|
- Kominfo
|
||
|
- Bind
|
||
|
- DNS
|
||
|
- Internet Positif
|
||
|
images:
|
||
|
# -
|
||
|
# menu:
|
||
|
# main:
|
||
|
# weight: 100
|
||
|
# params:
|
||
|
# icon:
|
||
|
# vendor: bs
|
||
|
# name: book
|
||
|
# color: '#e24d0e'
|
||
|
authors:
|
||
|
- ditatompel
|
||
|
---
|
||
|
|
||
|
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.
|
||
|
|
||
|
<!--more-->
|
||
|
|
||
|
Sebagai pendukung internet bebas, saya merasa sangat-sangat berdosa telah membangun sistem yang penuh sensor, apa lagi [sumber rujukannya amburadul](https://github.com/ditatompel/Katanya-Internet-Positif/wiki) 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](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`.
|
||
|
```bash
|
||
|
python ./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`.
|
||
|
```bash
|
||
|
python ./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 :
|
||
|
```bash
|
||
|
python ./internetpositif.py --generate -n ns.domain.com -e admin.domain.com -d blokir.domain.com
|
||
|
```
|
||
|
|
||
|
akan menghasilkan file :
|
||
|
```bind
|
||
|
$TTL 86400 ; 1 day
|
||
|
@ IN SOA ns.domain.com. admin.domain.com. (
|
||
|
2017040503 ; serial
|
||
|
3600 ; refresh (1 hour)
|
||
|
120 ; retry (2 minute)
|
||
|
604800 ; expire (1 week)
|
||
|
86400 ; minimum (1 day)
|
||
|
)
|
||
|
IN NS ns.domain.com.
|
||
|
domain.yang.diblokir.com IN CNAME blokir.domain.com.
|
||
|
domain.lainnya.yang.diblokir.net IN CNAME blokir.domain.com.
|
||
|
; [dan seterusnya]
|
||
|
```
|
||
|
|
||
|
Jalankan semua dalam 1 baris:
|
||
|
```bash
|
||
|
python ./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:
|
||
|
```plain
|
||
|
python ./internetpositif.py
|
||
|
|
||
|
-h, --help show this help message and exit
|
||
|
-f, --fetch Ambil data blacklist dari trustpositif.kominfo.go.id
|
||
|
-c, --clean Bersihkan duplikasi data dari
|
||
|
trustpositif.kominfo.go.id
|
||
|
-g, --generate Buat file zone file untuk BIND (BIND zone file
|
||
|
generator)
|
||
|
|
||
|
Opsi tambahan untuk BIND zone file generator:
|
||
|
-n NAMESERVER, --nameserver NAMESERVER
|
||
|
Nameserver option, default : localhost.local
|
||
|
-e EMAIL, --email EMAIL
|
||
|
Email option, default : administrator.localhost.local
|
||
|
-d DOMAIN, --domain DOMAIN
|
||
|
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 dari `trustpositif.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](https://github.com/ditatompel/Katanya-Internet-Positif/blob/public/CONTRIBUTING.md) untuk informasi lebih detail mengenai cara berkontribusi pada repositori ini.
|