Rumahweb Journal
Banner - Cara Blokir IP Address Menggunakan htaccess di cPanel

Cara Blokir IP Address Menggunakan .htaccess di cPanel

Keamanan website adalah prioritas utama bagi setiap pemilik website atau administrator server. Salah satu ancaman yang paling sering dihadapi adalah akses tidak sah dari IP address tertentu yang melakukan aktivitas mencurigakan atau berbahaya. Dalam upaya melindungi website Anda, melakukan blokir IP address adalah langkah preventif yang sangat efektif dan harus dilakukan.

Berdasarkan pengalaman tim support teknis Rumahweb dalam menangani ribuan website, pemblokiran IP yang tepat dapat mengurangi serangan hingga 80% dan meningkatkan performa server secara signifikan. Salah satu metode paling sederhana namun powerful untuk melakukan blokir IP adalah menggunakan file .htaccess.

Artikel ini akan menjelaskan secara detail apa itu .htaccess, fungsinya, dan langkah demi langkah cara memblokir IP menggunakan .htaccess di cPanel hosting Anda.

Mengapa Perlu Blokir IP Address?

Sebelum masuk ke teknis, penting untuk memahami alasan mengapa pemblokiran IP sangat diperlukan untuk keamanan dan performa website Anda.

1. Mencegah Serangan Brute Force Login

Serangan brute force adalah upaya masuk ke akun website (admin, database, email, dll) dengan mencoba berbagai kombinasi password secara otomatis. Jika Anda mendeteksi IP yang melakukan aktivitas ini, memblokir IP tersebut dapat menghentikan serangan sebelum account Anda ter-compromise.

Pindah Hosting ke Rumahweb Gratis

2. Mengatasi Percobaan Peretasan dan Exploit

Peretas sering kali scanning website untuk mencari vulnerability menggunakan tools otomatis dari IP spesifik. Dengan memblokir IP, Anda mencegah akses dari scanning tools tersebut sebelum mereka menemukan kerentanan.

3. Mencegah Web Scraping dan Content Theft

Beberapa entity melakukan scraping berlebihan terhadap website untuk mengambil content tanpa izin, yang membebani server dan bahkan merugikan bisnis Anda. Memblokir IP scraper dapat melindungi content Anda.

4. Mitigasi Serangan DDoS

Meskipun tidak sepenuhnya mengatasi DDoS, memblokir IP sumber DDoS yang terdeteksi dapat mengurangi volume serangan dan meringankan beban server.

5. Mengurangi Spam dan Bot Traffic

Bot spam atau spam crawler sering kali diidentifikasi dari IP tertentu. Memblokir IP ini mengurangi beban server dan menjaga kualitas log analytics Anda.

Dampak Positif Pemblokiran IP

Berikut adalah beberapa dampak positif dalam memblokir IP Address di cPanel.

  • Meningkatkan Security: Mengurangi risiko serangan dan infiltrasi
  • Meningkatkan Performa Server: Mengurangi beban traffic tidak sah
  • Menghemat Bandwidth: Mencegah pemborosan resource oleh request berbahaya
  • Melindungi Data: Mencegah unauthorized access ke data penting

Memblokir IP adalah bagian essential dari security hardening website yang responsible dan professional.

Apa Itu .htaccess?

.htaccess adalah file konfigurasi khusus yang digunakan oleh web server Apache (dan server kompatibel seperti LiteSpeed) untuk mengatur perilaku website pada tingkat direktori (directory-level) tanpa perlu mengakses konfigurasi utama server atau VirtualHost.

Karakteristik .htaccess

  • File Hidden: Nama file dimulai dengan dot (.) sehingga tersembunyi di file manager biasa (perlu enable “Show Hidden Files”)
  • Plain Text: Format file adalah plain text biasa, bisa diedit dengan text editor apapun
  • Directory-Specific: .htaccess hanya berlaku untuk direktori tempat file berada dan subdirectory-nya
  • Override-Capable: Konfigurasi .htaccess dapat override pengaturan default server
  • On-the-Fly: Perubahan di .htaccess langsung berlaku tanpa perlu restart server

Mengapa Menggunakan .htaccess untuk Blokir IP?

Meski ada cara lain untuk memblokir IP (seperti firewall tingkat server atau IP Blocker di cPanel), menggunakan .htaccess memiliki keuntungan:

  • Tidak perlu akses root/admin: Bisa dilakukan oleh user biasa.
  • Flexible: Bisa mengatur per-direktori
  • Mudah di-edit dan di-backup: File plain text yang mudah dikelola
  • Kompatibel: Bekerja di semua hosting dengan Apache/kompatibel
  • Tidak perlu restart server: Perubahan langsung berlaku

Fungsi .htaccess

Sebelum fokus pada pemblokiran IP, penting untuk mengetahui bahwa .htaccess memiliki banyak fungsi lain yang sering digunakan. Pemahaman ini membantu Anda memaksimalkan potensi file ini.

1. Redirect URL (Pengalihan URL)

.htaccess dapat melakukan redirect URL seperti dari HTTP ke HTTPS atau dari satu domain ke domain lain.

Contoh – Redirect HTTP ke HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Contoh – Redirect domain lama ke domain baru:

Redirect 301 / https://domainnew.com/

2. URL Rewriting (SEO-Friendly)

Mengubah URL dinamis menjadi URL yang lebih rapi dan SEO-friendly.

Contoh – Membuat URL artikel lebih rapi:

RewriteEngine On
RewriteRule ^artikel/([0-9]+)$ artikel.php?id=$1 [QSA,L]

Dengan rewrite ini, URL /artikel/123 akan diproses sebagai /artikel.php?id=123 tanpa mengubah tampilan URL di browser.

3. Password Protection untuk Folder

Membatasi akses ke folder tertentu dengan username dan password.

Contoh:

AuthType Basic
AuthName "Protected Area"
AuthUserFile /home/username/.htpasswd
Require valid-user

4. Custom Error Pages

Mengatur halaman error custom, seperti page 404 yang custom untuk meningkatkan user experience.

Contoh:

ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
ErrorDocument 403 /forbidden.html

5. Mengatur Permission dan Akses File

Mencegah akses ke file tertentu untuk melindungi file kritis seperti .env, wp-config.php, atau file database.

Contoh – Blokir akses ke file .env:

<Files ".env">
    Deny from all
</Files>

Contoh – Blokir akses ke multiple file types:

<FilesMatch "\.(env|config\.php|sql|log)$">
    Deny from all
</FilesMatch>

6. Mengatur Header HTTP

Menambahkan atau memodifikasi HTTP header untuk keamanan atau caching.

Contoh – Menambahkan security headers:

Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"

7. Blokir IP Address

Melarang akses dari IP tertentu (yang merupakan fokus utama artikel ini).

Apa Itu .htaccess untuk Blokir IP?

Dalam konteks keamanan website, .htaccess dapat digunakan untuk membuat IP whitelist (mengizinkan IP tertentu) atau IP blacklist (memblokir IP tertentu). Fitur ini menggunakan directive Order, Deny, dan Allow untuk mengontrol akses berdasarkan IP address.

Cara Kerja Blokir IP di .htaccess

Ketika visitor mengakses website Anda, server Apache membaca .htaccess dan melakukan check:

  1. Identifikasi IP — Apache mengidentifikasi IP address visitor
  2. Cek Rules — Membandingkan IP dengan rules di .htaccess (Deny/Allow list)
  3. Apply Decision — Jika IP di-match dengan Deny rule, akses ditolak (HTTP 403 Forbidden)
  4. Serve Content atau Reject — Jika diizinkan, content dilayani; jika ditolak, error ditampilkan

Proses ini terjadi sebelum PHP dijalankan, sehingga sangat efisien dan tidak membebani resource website.

Blokir IP Menggunakan .htaccess

Berikut cara blokir IP menggunakan htaccess melalui halaman File Manager di cPanel.

  1. Pertama login ke cPanel, kemudian masuk ke menu File Manager
menu file manager di cPanel

Masuk ke document root website, misalkan untuk website utama pada hosting berada di folder public_html. Cari file dengan nama “.htaccess” dan klik Edit.

file htaccess di cPanel

– Contoh script .htaccess untuk melakukan block pada satu IP Address :

order allow,deny
deny from 127.0.0.1
allow from all

– Contoh script .htacess untuk melakukan block Multiple IP Address :

order allow,deny
deny from 130.0.0.1
deny from 130.0.0.2
deny from 130.0.0.3
allow from all

atau

order allow,deny
deny from 192.168.11.12/21
deny from 112.0.0.2/22
deny from 122.0.0.3/30
allow from all

Untuk tampilan gambarnya sebagai berikut :

Cara memblokir IP dengan menggunakan .htaccess

Syntax dan Contoh Kode untuk Blokir IP

Berikut adalah berbagai format dan contoh kode untuk memblokir IP menggunakan .htaccess. Pilih format yang sesuai dengan kebutuhan Anda.

Format 1: Blokir Single IP Address

Jika Anda ingin memblokir hanya satu IP address:

order allow,deny
deny from 192.168.1.100
allow from all

Penjelasan:

  • order allow,deny — Urutan evaluasi rules: cek allow terlebih dahulu, lalu deny
  • deny from 192.168.1.100 — Blokir IP 192.168.1.100
  • allow from all — Izinkan semua IP lainnya

Contoh praktis:

order allow,deny
deny from 202.155.20.45
allow from all

Kode ini akan memblokir akses dari IP 202.155.20.45.

Format 2: Blokir Multiple IP Addresses (Terpisah)

Jika Anda ingin memblokir beberapa IP address secara terpisah:

order allow,deny
deny from 192.168.1.100
deny from 192.168.1.101
deny from 192.168.1.102
allow from all

Setiap IP yang ingin diblokir ditulis dalam baris deny from yang terpisah.

Contoh dengan IP Indonesia:

order allow,deny
deny from 115.185.50.123
deny from 114.125.75.98
deny from 180.245.209.101
allow from all

Format 3: Blokir IP Range (CIDR Notation)

Jika Anda ingin memblokir seluruh range IP (subnet), gunakan CIDR notation:

order allow,deny
deny from 192.168.1.0/24
deny from 10.0.0.0/8
allow from all

Penjelasan CIDR:

  • /24 — Memblokir IP dari 192.168.1.0 hingga 192.168.1.255 (256 IP)
  • /16 — Memblokir IP dari subnet yang lebih besar
  • /8 — Memblokir IP dari prefix /8 (Class A)

Contoh praktis – Blokir range ISP tertentu:

order allow,deny
deny from 120.188.0.0/13
deny from 203.130.0.0/15
allow from all

Format 4: Kombinasi Single IP dan IP Range

Anda juga bisa menggabungkan single IP dan IP range dalam satu .htaccess:

order allow,deny
deny from 192.168.1.100
deny from 192.168.1.101
deny from 10.0.0.0/8
deny from 172.16.0.0/12
allow from all

Format 5: Whitelist (Hanya Izinkan IP Tertentu)

Jika sebaliknya Anda ingin hanya mengizinkan IP tertentu dan memblokir semua yang lain (whitelist), gunakan format ini:

order deny,allow
deny from all
allow from 192.168.1.100
allow from 192.168.1.101

Penjelasan:

  • order deny,allow — Urutan evaluasi: deny terlebih dahulu, lalu allow
  • deny from all — Blokir semua IP
  • allow from 192.168.1.100 — Hanya izinkan IP spesifik

Use case: Berguna jika Anda ingin restrict akses website hanya untuk IP office atau partner tertentu saja.

Tips dan Best Practices Saat Blokir IP

Untuk memastikan pemblokiran IP berjalan optimal dan tidak menimbulkan masalah, berikut adalah beberapa tips penting:

1. Backup .htaccess Sebelum Edit

Sebelum mengedit .htaccess, selalu buat backup file originalnya:

  1. Download .htaccess yang sekarang ke komputer Anda
  2. Simpan di folder aman sebagai reference
  3. Jika ada error setelah edit, Anda bisa restore dari backup

Ini sangat penting karena syntax error di .htaccess bisa menyebabkan website down atau error 500.

2. Test Perubahan di Non-Production Terlebih Dahulu

Jika memungkinkan:

  1. Test kode .htaccess di staging/development server terlebih dahulu
  2. Verifikasi bahwa website masih berjalan normal
  3. Cek dengan browser dari berbagai lokasi untuk pastikan visitor sah tidak ter-blokir
  4. Baru deploy ke production setelah yakin tidak ada issue

3. Catat IP yang Di-blokir

Dokumentasikan IP apa saja yang Anda blokir dan alasan-nya:

# ===== IP BLOCKLIST =====
# Blocked on 2024-01-15: DDoS attack dari IP 202.155.20.45
deny from 202.155.20.45

# Blocked on 2024-01-10: Brute force login dari ISP lokal
deny from 115.185.50.0/24

Dokumentasi ini berguna untuk reference di masa depan.

4. Monitor Error Log Setelah Blokir

Setelah menambahkan rules blokir:

  1. Login ke cPanel dan buka “Error Log” (di menu Logs)
  2. Cek apakah ada error yang terjadi setelah perubahan .htaccess
  3. Jika ada syntax error, akan ditampilkan di error log
  4. Fix error jika ditemukan

5. Jangan Blokir IP Anda Sendiri (Penting!)

Hati-hati untuk tidak memblokir IP dari lokasi Anda sendiri karena akan membuat Anda tidak bisa akses website. Jika terjadi:

  1. Hubungi hosting provider untuk akses via SSH/FTP
  2. Edit .htaccess untuk remove rule yang memblokir IP Anda
  3. Atau restore dari backup .htaccess sebelumnya

6. Gunakan Tools Eksternal untuk Verifikasi IP

Untuk mengidentifikasi IP visitor atau IP yang melakukan serangan:

  • cPanel Error/Access Logs — Lihat raw log di cPanel Logs section
  • fail2ban (jika tersedia) — Tool otomatis untuk detect dan block IP berbahaya
  • Online IP Lookup — Tools seperti ip-lookup.net atau iplocation.net untuk informasi lebih detail tentang IP
  • ModSecurity (jika tersedia) — WAF yang bisa detect dan block serangan

7. Perhatikan Limit Jumlah IP yang Di-blokir

Sementara tidak ada limit keras, memblokir terlalu banyak IP (>10,000) bisa:

  • Membuat file .htaccess sangat besar
  • Sedikit menambah latency setiap request (Apache perlu cek setiap rules)
  • Membuat maintenance menjadi rumit

Untuk blocking skala besar, pertimbangkan menggunakan:

  • Firewall tingkat server — Lebih efisien untuk volume besar
  • IP Blocker di cPanel — Fitur built-in yang lebih scalable
  • ModSecurity/WAF — Untuk blocking berbasis pattern dan heuristic

Troubleshooting: Masalah Umum saat Blokir IP

Jika sesuatu tidak berjalan seperti diharapkan setelah memblokir IP, berikut adalah masalah umum dan solusinya:

Masalah 1: Website Tidak Bisa Diakses (HTTP 500 Error)

Gejala: Setelah edit .htaccess, website menampilkan HTTP 500 Internal Server Error.

Penyebab Umum: Syntax error di .htaccess (kurung tidak tertutup, typo, dll).

Solusi:

  1. Restore dari backup — Hapus atau restore .htaccess yang error
  2. Cek error log — Login ke cPanel, buka Errors di Logs, cari syntax error message
  3. Verifikasi syntax — Pastikan setiap baris syntax benar:
    • Tidak ada extra spasi atau karakter aneh
    • Setiap directive di baris terpisah
    • Kurung dan quotes tertutup dengan benar

Contoh syntax error:

# ? SALAH - Typo "ordr"
ordr allow,deny
deny from 192.168.1.100
allow from all

# ? BENAR
order allow,deny
deny from 192.168.1.100
allow from all

Masalah 2: Visitor Sah Ter-blokir (False Positive)

Gejala: Visitor dari lokasi yang seharusnya boleh akses, malah mendapat error 403 Forbidden.

Penyebab: IP range yang di-blokir terlalu luas dan mencakup IP visitor yang sah.

Solusi:

  1. Identifikasi IP visitor — Minta visitor tersebut report IP mereka (bisa lihat di ip-lookup.net)
  2. Cek rules .htaccess — Verifikasi apakah IP tersebut masuk dalam range yang di-blokir
  3. Whitelist IP tersebut — Tambahkan exception untuk IP visitor yang sah:
order allow,deny
deny from 115.185.50.0/24
allow from 115.185.50.100    # Whitelist IP visitor yang sah
allow from all

Masalah 3: Blokir Tidak Bekerja (Serangan Masih Terjadi)

Gejala: Meski sudah blokir IP, serangan atau traffic aneh masih terus terjadi.

Penyebab:

  • IP attacker berubah-ubah (rotating IP)
  • Attacker menggunakan proxy atau VPN
  • Rules blokir tidak ter-apply atau ada typo

Solusi:

  1. Verify blokir berfungsi — Cek apakah syntax benar dan file ter-save
  2. Gunakan pendekatan lain:
    • Blokir dengan pattern (misalnya user-agent scraper) bukan hanya IP
    • Gunakan ModSecurity/WAF untuk blocking berbasis behavior
    • Hubungi hosting provider untuk bantuan advanced security
  3. Monitor dan update rules — Jika IP terus berubah, update rules secara berkala

Masalah 4: Performance Website Menurun Setelah Blokir IP

Gejala: Website terasa lebih lambat setelah menambahkan banyak IP block rules.

Penyebab: Jumlah rules terlalu banyak (Apache harus check setiap rule untuk setiap request).

Solusi:

  1. Optimasi rules — Gunakan IP range (CIDR) daripada individual IP jika memungkinkan:
# ? Tidak efisien - 10 baris
deny from 192.168.1.1
deny from 192.168.1.2
...
deny from 192.168.1.10

# ? Efisien - 1 baris
deny from 192.168.1.0/28
  1. Pindahkan ke firewall — Untuk volume blocking besar, gunakan firewall server yang lebih efisien
  2. Gunakan fail2ban — Tool otomatis yang lebih optimized daripada .htaccess untuk blocking skala besar

Alternatif Lain untuk Blokir IP

Sementara .htaccess adalah metode paling accessible, ada alternatif lain yang bisa Anda pertimbangkan:

1. IP Blocker di cPanel

cPanel memiliki fitur built-in IP Blocker di Security section:

  • Keuntungan: GUI yang user-friendly, tidak perlu edit file
  • Kelemahan: Hanya untuk blocking individual IP (tidak support IP range)
  • Lokasi: cPanel Dashboard ? Security ? IP Blocker

2. Firewall Tingkat Server

  • Keuntungan: Lebih powerful, dapat block sebelum request sampai ke website, scalable untuk volume besar
  • Kelemahan: Perlu akses root/admin server, setup lebih kompleks
  • Tools: iptables (Linux), ufw (Ubuntu), firewalld (CentOS)

3. ModSecurity / Web Application Firewall (WAF)

  • Keuntungan: Dapat detect dan block based on pattern, header, behavior—tidak hanya IP
  • Kelemahan: Setup lebih kompleks, bisa ada false positive jika tidak dikonfigurasi dengan benar
  • Tools: ModSecurity, Cloudflare, Sucuri WAF

4. Reverse Proxy / CDN

  • Keuntungan: Hide IP server asli, dapat block di edge sebelum sampai ke server Anda
  • Kelemahan: Perlu setup dan konfigurasi additional
  • Tools: Cloudflare, Akamai, AWS CloudFront

Rekomendasi: Untuk kasus umum (blocking 1-100 IP), gunakan .htaccess. Untuk volume besar atau pattern complex, pertimbangkan firewall server atau WAF.

Best Practices Keamanan Website Selain Blokir IP

Memblokir IP adalah salah satu layer keamanan, tapi bukan satu-satunya. Untuk keamanan website yang comprehensive:

1. Update Software Secara Berkala

  • Update WordPress, plugin, tema ke versi terbaru
  • Update server software dan operating system
  • Aktifkan automatic updates jika tersedia

2. Gunakan SSL Certificate

  • Pastikan website menggunakan HTTPS (SSL/TLS)
  • Redirect HTTP ke HTTPS via .htaccess atau server config
  • Rumahweb menyediakan SSL gratis untuk semua hosting

3. Gunakan Password yang Kuat

  • Admin panel WordPress: gunakan password 16+ karakter dengan mix huruf/angka/symbol
  • Database: gunakan password kuat dan ubah dari default
  • cPanel: gunakan password kuat dan ubah secara berkala

4. Batasi Login Attempts

  • Gunakan plugin seperti Limit Login Attempts untuk WordPress
  • Atau gunakan .htaccess password protection untuk /wp-admin/
  • Aktifkan CAPTCHA jika ada

5. Regular Backups

  • Backup website dan database secara berkala (daily/weekly)
  • Simpan backup di lokasi aman (cloud, external storage)
  • Test restore backup secara berkala untuk memastikan backup intact

6. Monitor dan Audit

  • Cek error logs dan access logs secara berkala
  • Monitor traffic patterns untuk deteksi anomali
  • Set up alerts untuk activity mencurigakan (jika ada)

7. Gunakan Security Headers

  • Set HTTP security headers via .htaccess atau server config
  • Contoh: Content-Security-Policy, X-Frame-Options, X-Content-Type-Options

Keamanan website adalah upaya berlapis (defense in depth), jadi kombinasikan beberapa metode untuk hasil maksimal.

Penutup

Blokir IP menggunakan .htaccess adalah metode efektif, simple, dan accessible untuk meningkatkan keamanan dan performa website Anda. Dengan menggunakan file .htaccess, Anda dapat Mencegah serangan brute force, DDoS, dan scanning dengan memblokir IP sumber serangan.

Dengan mengikuti panduan ini dan menerapkan best practices keamanan website secara menyeluruh, website Anda akan jauh lebih terlindungi dari berbagai jenis ancaman cyber.

Demikian artikel kami tentang cara blokir IP Address menggunakan .htaccess melalui halaman file manager di cPanel, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 3 / 5. Vote count: 2

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Triyadi

Memberikan support kepada pelanggan Rumahweb dengan pengalaman sebagai technical support selama lebih dari 10 tahun. Selain itu aktif menulis di Journal Rumahweb mengenai domain, hosting, vps, email, dan tulisan lain seputar dunia IT

Daftar Isi
banner pop up - Pindah Hosting ke Rumahweb