Skip to main content

Posts

Cara Membatasi Jumlah Request di Apache2 (Rate Limit)

Kalau website kamu sering kena spam, serangan DDoS ringan, atau sekadar ingin membatasi request dari satu IP biar server nggak berat, kamu bisa atur rate limit di Apache2 . Di sini, saya jelaskan dua cara mudah: pakai mod_evasive dan mod_ratelimit . 1. Blokir IP yang Kirim Terlalu Banyak Request (mod_evasive) Modul ini bantu mendeteksi dan memblokir IP yang terlalu banyak request dalam waktu singkat. Cocok untuk mencegah spam atau brute force. Langkah 1: Install mod_evasive sudo apt update sudo apt install libapache2-mod-evasive Langkah 2: Buat File Konfigurasi sudo nano /etc/apache2/mods-available/evasive.conf Isi dengan ini: <IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 10 DOSSiteCount 100 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 60 DOSEmailNotify admin@domainmu.com DOSLogDir "/var/log/mod_evasive" </IfModule> Langkah 3: Buat Folder Log sud...

Understanding concept of rule group and CC in the firewall or WAF

 In the context of a firewall or Web Application Firewall (WAF), the terms rule group, rule group level, and CC level refer to different layers or components involved in detecting and blocking malicious traffic. Here's a breakdown: --- 1. Rule Group A rule group is a collection of rules designed to detect and mitigate specific types of threats. These rules are typically grouped by function or attack type. Example in WAF: A rule group might contain rules for detecting SQL injection, XSS, or file inclusion attacks. Example in Firewall: A rule group could handle traffic filtering based on IP addresses, ports, protocols, or applications. Managed Rule Groups: In services like AWS WAF or Cloudflare, rule groups can be managed by third parties, constantly updated to address new threats. --- 2. Rule Group Level The rule group level refers to the order or priority in which rule groups are applied. This is important for layered security and performance. Think of it as a hierarchy or stack: L...

Analisa Traffic WAF

 Tentu, berikut adalah contoh untuk setiap bagian analisis traffic WAF: #### 1. Analisis Path **Contoh**: - **Path yang Tidak Biasa**: Misalkan aplikasi Anda memiliki endpoint `/login`. Jika Anda melihat permintaan ke path seperti `/admin/../../config`, ini adalah path yang mencurigakan karena tampaknya mencoba mengakses direktori konfigurasi dengan teknik path traversal. - **Pengelompokan Traffic**: Jika banyak permintaan ke path `/api/upload` yang mencurigakan, ini bisa menunjukkan upaya eksploitasi terhadap fungsi upload file. #### 2. Analisis Method **Contoh**: - **Method GET**: Anda melihat permintaan GET dengan query string yang panjang seperti `GET /search?q=...`, di mana query string sangat panjang dan mengandung karakter yang tidak biasa. Ini bisa menjadi indikasi serangan seperti buffer overflow. - **Method POST**: Anda menerima banyak permintaan POST dengan payload yang besar dan mencurigakan, seperti `POST /update-profile` dengan data yang tidak sesuai format atau panja...

Crypto untuk Pemula: Memahami Dunia Cryptocurrency

Cryptocurrency atau kripto adalah bentuk uang digital yang menggunakan teknologi enkripsi untuk mengamankan transaksi dan mengontrol pembuatan unit-unit baru. Artikel ini akan membahas dasar-dasar cryptocurrency, dengan fokus pada Bitcoin, cara kerjanya, manfaat, kelemahan, dan beberapa konsep penting lainnya. ### 1. Apa Itu Cryptocurrency? Cryptocurrency adalah uang digital yang beroperasi secara terdesentralisasi. Artinya, tidak ada otoritas pusat seperti bank atau pemerintah yang mengatur cryptocurrency. Sebagai gantinya, kripto menggunakan teknologi blockchain untuk memastikan keamanan dan keabsahan transaksi. ### 2. Mengenal Bitcoin Bitcoin adalah cryptocurrency pertama yang diciptakan oleh seseorang atau kelompok dengan nama samaran Satoshi Nakamoto pada tahun 2009. Bitcoin sering disebut sebagai "emas digital" karena memiliki banyak kesamaan dengan emas dalam hal kekurangan pasokan dan nilai intrinsik. Bitcoin berfungsi sebagai alat pembayaran, investasi, dan penyimpan...

Konfigurasi Autentikasi Apache2 dengan OpenLDAP

Cara mengkonfigurasi autentikasi Apache2 dengan OpenLDAP.  login prompt log failed 401 and success login 200 status code. Autentikasi menggunakan OpenLDAP dapat memberikan keamanan tambahan untuk server web Anda. Berikut adalah panduan langkah demi langkah untuk mengkonfigurasi Apache2 agar menggunakan OpenLDAP sebagai backend autentikasi. Persiapan 1. Server Apache2 yang sudah terinstal dan berjalan. 2. Server OpenLDAP yang sudah terinstal dan berjalan. 3. Modul `mod_authnz_ldap` dan `mod_ldap` telah diaktifkan di Apache. Langkah-langkah: 1. Instalasi Modul yang Diperlukan: Pastikan modul Apache yang diperlukan sudah terinstal dan diaktifkan. ```sh sudo apt-get update sudo apt-get install apache2-utils sudo a2enmod authnz_ldap sudo a2enmod ldap sudo systemctl restart apache2 ``` 2. Konfigurasi Apache2 untuk Autentikasi LDAP: Edit file konfigurasi Apache (bisa dalam file virtual host Anda atau langsung di `apache2.conf` tergantung pada pengaturan Anda). Sebagai contoh, Anda bisa me...

Dasar instalasi dan konfigurasi OpenLDAP

 ### Panduan Instalasi OpenLDAP Berikut adalah panduan sederhana untuk menginstal dan mengkonfigurasi OpenLDAP pada server dengan domain `bagussa.my.id` dan IP `10.10.10.1`.  #### 1. Instalasi OpenLDAP Pertama, instal OpenLDAP beserta paket-paket yang diperlukan: ```bash sudo apt update sudo apt install slapd ldap-utils ``` Selama instalasi, Anda mungkin akan diminta untuk memasukkan kata sandi untuk `admin` LDAP. Simpan kata sandi ini dengan aman. #### 2. Konfigurasi Manual di `/etc/hosts` Tambahkan entri untuk domain dan IP di file `/etc/hosts`: ```bash sudo nano /etc/hosts ``` Tambahkan baris berikut: ``` 10.10.10.1    bagussa.my.id ``` Simpan dan keluar dari editor. #### 3. Konfigurasi `/etc/ldap/ldap.conf` Edit file konfigurasi LDAP: ```bash sudo nano /etc/ldap/ldap.conf ``` Tambahkan atau modifikasi baris berikut: ``` BASE    dc=bagussa,dc=my,dc=id URI     ldap://10.10.10.1 ``` Simpan dan keluar dari editor. #### 4. Buat OU dan Group de...

Ansible Nginx with ModSecurity Automation

  Dalam era digital yang semakin kompleks, keamanan web menjadi prioritas utama bagi banyak organisasi. Salah satu kombinasi alat yang efektif untuk meningkatkan keamanan aplikasi web adalah Nginx dengan ModSecurity. Nginx, sebagai server web yang cepat dan andal, dan ModSecurity, sebagai firewall aplikasi web (WAF), bekerja bersama untuk melindungi aplikasi dari berbagai serangan siber. Untuk mempermudah proses instalasi dan konfigurasi, Ansible hadir sebagai alat otomatisasi yang kuat. Artikel ini akan membahas langkah-langkah detail tentang bagaimana mengotomatiskan instalasi dan konfigurasi Nginx dengan ModSecurity menggunakan Ansible. Dengan code Ansible ini akan mampu menyederhanakan proses deployment dan memastikan konfigurasi keamanan yang konsisten di seluruh lingkungan server. Code Ansible berikut bisa menjadi awal untuk memulai belajar Nginx dengan Modsecurity module, selanjutnya bisa dikembangkan sendiri untuk rules  seperti OWASP, Rules tuning, Rate limit, dll. ht...

Konfigurasi Ansible Role Webserver Nginx

Berikut adalah panduan contoh saja use case dengan simple http nginx belum https untuk membuat role Ansible yang mengatur Nginx dengan template untuk menambahkan virtual host `www.sabang.net` misalnya: ### Langkah 1: Menentukan Struktur Peran Pertama, buat struktur direktori yang diperlukan untuk peran Ansible. ```bash mkdir -p roles/nginx/{tasks,templates,defaults,handlers} ``` ### Langkah 2: Buat `defaults/main.yml` File ini akan mendefinisikan variabel default untuk peran. ```yaml # roles/nginx/defaults/main.yml nginx_user: www-data nginx_conf_dir: /etc/nginx nginx_vhost_template: nginx_vhost.j2 nginx_sites_available_dir: "{{ nginx_conf_dir }}/sites-available" nginx_sites_enabled_dir: "{{ nginx_conf_dir }}/sites-enabled" nginx_domain: www.sabang.net nginx_root: /var/www/{{ nginx_domain }} ``` ### Langkah 3: Buat `tasks/main.yml` File ini akan berisi tugas-tugas untuk menginstal dan mengonfigurasi Nginx. ```yaml # roles/nginx/tasks/main.yml --- - name: Pastikan Ng...

ITNSA Konfigurasi Ansible WinRM Windows Server

 ### Mengonfigurasi Koneksi Ansible ke Server Windows Ansible adalah alat otomatisasi yang sangat populer dan sering digunakan untuk mengelola berbagai jenis server, termasuk server Windows. Artikel ini akan memandu Anda melalui langkah-langkah untuk mengonfigurasi Ansible agar dapat terhubung dengan server Windows menggunakan WinRM (Windows Remote Management). #### 1. Menyiapkan WinRM di Server Windows ##### Opsi 1: Menggunakan Skrip PowerShell Anda bisa menggunakan skrip PowerShell yang sudah disediakan untuk mengonfigurasi WinRM agar dapat digunakan oleh Ansible. 1. Buka PowerShell di server Windows Anda sebagai administrator. 2. Jalankan perintah berikut untuk mengunduh dan mengeksekusi skrip konfigurasi:    ```powershell    iex (New-Object Net.WebClient).DownloadString('https://github.com/ansible/ansible/raw/devel/examples/scripts/ConfigureRemotingForAnsible.ps1')    ``` ##### Opsi 2: Pengaturan Manual 1. Buka PowerShell di server Windows Anda seb...

Troubleshooting WAF, CDN, and Load balancer

 Troubleshooting issues involving a Web Application Firewall (WAF), Content Delivery Network (CDN), and Load Balancer (LB) can be complex. Here is a step-by-step guide, including testing methods and relevant commands to isolate problems at each level. ### Step 1: Check Basic Connectivity 1. **Ping the Website**:    ```sh    ping example.com    ``` 2. **Check DNS Resolution**:    ```sh    nslookup example.com    ``` ### Step 2: Verify Load Balancer 1. **Direct Access to Load Balancer**:    Modify `/etc/hosts` to bypass CDN and WAF, pointing directly to the load balancer’s IP.    ```sh    sudo nano /etc/hosts    ```    Add the line:    ```    LB_IP example.com    ```     2. **Test HTTP Response**:    ```sh    curl -I http://example.com    ```    Check headers and status code to verify the load bal...

LKS ITNSA Ansible Role DNS Bind9

Pendahuluan Di lanskap digital yang saling terhubung saat ini, manajemen Domain Name System (DNS) yang efisien sangat penting untuk operasi jaringan yang lancar. Peran Ansible LKS ITNSA untuk Bind9 menawarkan solusi yang disederhanakan untuk mengkonfigurasi dan mengelola layanan DNS menggunakan otomatisasi Ansible. Artikel ini menjelajahi bagaimana peran ini menyederhanakan administrasi DNS dan meningkatkan keandalan jaringan. Memahami Peran Ansible LKS ITNSA Peran Ansible LKS ITNSA dirancang untuk mengotomatisasi implementasi dan konfigurasi Bind9, perangkat lunak server DNS yang banyak digunakan. Dengan memanfaatkan kekuatan Ansible, peran ini memungkinkan administrator untuk mendefinisikan konfigurasi DNS sebagai kode, mengurangi kesalahan manual dan memastikan konsistensi di berbagai lingkungan jaringan. Fitur Utama dan Manfaat Implementasi Otomatis: Dengan hanya beberapa perintah playbook Ansible, administrator dapat menerapkan instansi Bind9 secara bersamaan di beberapa server...

Mencari Nilai dalam File Teks Menggunakan Python

Pada banyak kasus, kita mungkin perlu mencari nilai-nilai tertentu dalam satu file berdasarkan isi dari file lainnya. Misalnya, dalam kasus ini, kita ingin mencari kata atau kalimat yang terdapat dalam satu file teks (file1) di dalam file teks lainnya (file2) dan kemudian mencetak nilai-nilai yang tidak ditemukan. Dalam artikel ini, kita akan membahas cara melakukan hal ini menggunakan Python. Langkah Pertama: Membaca Konten dari File Langkah pertama adalah membaca konten dari kedua file yang ingin kita periksa. Kita akan menggunakan fungsi `open()` Python untuk membuka dan membaca isi file. with open(file1_path, 'r') as file1:     content_file1 = file1.readlines() with open(file2_path, 'r') as file2:     content_file2 = file2.read() Pada potongan kode di atas, `file1_path` dan `file2_path` adalah path (alamat) dari file-file yang ingin kita baca. Kita menggunakan `open()` untuk membuka file tersebut dalam mode membaca (`'r'`). Kemudian, kita membaca isi dari fi...

Cara install terraform di Mac OS

Terraform adalah salah satu tool untuk melakukan infrastructure as code automation. Berikut adalah cara install nya di Mac OS Pastikan sudah ada brew, karena pada tutorial kali ini akan melakukan instalasi melalui brew. Jika belum bisa melakukan instalasi dengan cara berikut: export HOMEBREW_NO_INSTALL_FROM_API=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" vim ~/.zshrc export PATH=/opt/homebrew/bin:$PATH source ~/.zshrc brew tap hashicorp/tap brew install hashicorp/tap/terraform Sudah dan bisa dicek hasil instalasi nya terraform -version terraform -help Bisa di gunakan deh untuk perintah terraform ini mengeksekusi script terraform yang di buat, seperti terraform plan, terraform apply, dll.

Pembahasan ITNSA Ansible Postfix

Ansible adalah salah satu tool untuk melakukan otomasi konfigurasi server yang bisa dilakukan berulang-ulang atau dikenal juga configuration management,  dalam tutorial kali ini akan melakukan otomasi salah satu task dasar dalam bidang ITNSA yang sering muncul, ini bukan soal yang ada langsung dalam ITNSA namun ini adalah salah satu bahan pelajaran aja yang barangkali bisa dijadikan sebagai referensi untuk konfigurasi system lainnya.  btw ITNSA adalah kependekan dari bidang IT Network System Administration nama bidang lomba yang mulai dari tingkat kab/kota untuk SMK atau kalau di SMA namanya OSN, yang mana punya tingkatan juga baik dalam kab/kota, provinsi, nasional, sampai internasional. Okay sebelum itu pastikan kita sudah punya dasar pengetahuan tentang SSH, Ansible cara koneksi nya gmana cara membuat ssh key nya. Bisa juga baca tutorial ini terlebih dahulu  Pembahasan Ansible ITNSA Dasar Okay mari kita bahas cara konfigurasi Postfix, sebelumnya pastikan juga kita suda...

[Journal] Journey securing wordpress site using apache2 with modsecurity

This is my journey  Prepare: Knowledge & practical VM, Cloud, Linux Commands, Webserver. Your AWS Account  1.  Create an instance on AWS Make sure the server can be accessed using SSH command e.g: ansible-user can access the server using passwordless for ansible management.  ssh-copy-id ansible-user@192.168.1.1 ansible-user has access to sudo. usermod -aG sudo ansible-user Run: ansible-playbook  playbook.yml  -i hosts --ask-become-pass 2. DNS Configuration Point your domain name to IP Example: bagussa.my.id IN A 192.168.1.1 www.bagussa.my.id IN A 192.168.1.1 3. Run the below Ansible Playbook for getting he certificate using Let's Encrypt  Let's Encrypt Ansible Role: git clone Hosts file: Run: ansible-playbook letsencrypt-issue.yml -i hosts --ask-become-pass  4. Run the below Ansible Playbook for installing the wordpress and apache2 Wordpress Ansible role: git clone https://github.com/bagussa/wordpress-ansible-role.git Hosts file: change ansibl...

Pembahasan Networking LKS SMK Cloud Computing Indonesia

Post kali ini mungkin tidak secara langsung membahas soal dari cloud computing, namun bisa bermanfaat untuk melakukan pengecekkan environment cloud sehingga mempermudah dalam melakukan troubleshooting dan menghadapi challenge yang ada. Berikut adalah perintah-perintah AWS yang cukup berguna untuk membangun dan mengecek networking di Cloud seperti Subnet, Security Group, VPC, Internet Gateway, Route, dll. Sebelum itu pastikan kita sudah cukup punya knowledge tentang apa itu AWS, nama-nama layanannya, Availability Zones, Data center, Region, Identity Management & Permission. Siapkan AWS-CLI https://learnubuntu.com/install-aws-cli/ Siapkan access key untuk menggunakan aws-cli dan berikan permission pada IAM user yang akan digunakan, misalnya untuk latihan kali ini AmazonEC2FullAccess, namun jika untuk real production bisa diberikan permission seminimal mungkin/custom sesuai dengan kebutuhan untuk security. Config dengan perintah: aws configure root@workstation:/home/bagussa# aws c...