Joomla Indonesia

Login or Sign Up
Sign In or Register
Avatar
Not Registered Yet?

Join Now! It's FREE. Get full access and benefit from this site

Reset My password - Remind Me My username

Username
Password
Remember me
  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Bloggers
    Bloggers Search for your favorite blogger from this site.
  • Team Blogs
    Team Blogs Find your favorite team blogs here.
  • Login
    Login Login form

Pengaturan akses Joomla site lewat IP Address Manajemen.

Posted by on in Security
  • Font size: Larger Smaller
  • Hits: 7004
  • 5 Comments
  • Subscribe to this entry
  • Print

Ingin membatasi IP address yang bisa akses Joomla site anda ?
Ingin memblok / banned IP Address tertentu ?
Mengatur pola IP address tertentu (pattern) yang bisa akses ?
Berikut ini jawabannya.


Sebenarnya telah ada extension / add-on khusus Joomla untuk hal ini (lihat link ini).

 

Namun setelah saya pelajari extension Joomla itu ternyata masih belum memuaskan saya pribadi :)
Akhirnya saya putuskan untuk membuat sendiri IP Address Manajemen yang menurut saya bisa memenuhi kriteria yang saya butuhkan.

Cara ini sama sekali tidak "menyentuh" database MySQL yang digunakan oleh Joomla site kita.
Cara ini saya sebut cara "PHP core coding", karena berhubungan langsung dengan programming script PHP.

Susah ?? Jangan khawatir :) karena cara ini hanya perlu sedikit modifikasi variabel array jika anda ingin mengubah setting IP Address Manajemen-nya.
Anda hanya membutuhkan 3 file PHP.

Berikut ini langkah-langkah membuat IP Address Manajemennya :
1. Gunakan text editor, lalu buat file teks biasa, copy & paste php script berikut ini :

[start tag PHP]
$myip = getenv("REMOTE_ADDR");
include_once("ipaddress_list.php");

$valid_ip = true;

//Bagian Check Banned IP
if (isset($banned_ip) && count($banned_ip)>0) {
if (array_search($myip,$banned_ip)!==false) $valid_ip = false;
}

//Bagian Check Pattern IP
if ($valid_ip==true && isset($pattern_ip) && count($pattern_ip)>0) {
$myip_cek = explode(".",$myip);
$cpattern = $pattern_ip;
$ketemu = false;
for ($i=0; $i$cpattern); $i++) {
$mypattern = explode(".",$cpattern[$i]);
$hasil = ($mypattern[0] & $myip_cek[0]) .".". ($mypattern[1] & $myip_cek[1]) .".". ($mypattern[2] & $myip_cek[2]) . . ($mypattern[3] & $myip_cek[3]);
if ($cpattern[$i] == $hasil ) $ketemu = true;
}
$valid_ip = $ketemu;
}

//Bagian Check Special IP
if ($valid_ip==false && isset($special_ip) && count($special_ip)>0) {
if (array_search($myip,$special_ip)!==false) $valid_ip = true;
else $valid_ip = false;
}

if ($valid_ip==false) {
header("Location: forbidden.php");
}
[end tag PHP]

 

2. Simpan / Save dengan nama file "prevent_ipaddress.php"

3. Gunakan teks editor kembali, buat file teks baru, copy & paste php script berikut ini :

[start tag PHP]
$banned_ip = array();
$pattern_ip = array();
$special_ip = array("127.0.0.1");
[end tag PHP]

 

4. Simpan / Save dengan nama file "ipaddress_list.php"

5. Gunakan teks editor kembali, buat file teks baru, copy & paste php script berikut ini :

[start tag PHP]
echo "Sorry, you don't have any authority to access this facilities";
exit;
[end tag PHP]

 

6. Simpan / Save dengan nama file "forbidden.php"

7. Upload file "prevent_ipaddress.php" dan "ipaddress_list.php" ke folder "includes" dari Joomla site anda

8. Upload file "forbidden.php" ke root folder Joomla site anda

9. Download file "index.php" dari root folder Joomla site anda

10. Gunakan text editor, edit file "index.php" yang anda download itu, pada baris paling awal dari isi file "index.php", yang berisi :

[start tag PHP]


11. Anda ganti / timpa / replace dengan script php berikut ini :

[start tag PHP]
include_once("includes/prevent_ipaddress.php");

 

12. Simpan / Save hasil perubahan file "index.php"-nya.

13. Tutup text editornya, lalu upload file "index.php" kembali ke root folder
Joomla site anda.


Beres ??

nanti dulu, sekarang bagian "intinya" implementasi IP Address Manajemen berdasarkan kasus / problem khusus :

1. Problem pertama, Joomla site anda ternyata berjalan di area LAN / Network
atau jaringan kecil yang ternyata terhubung ke jaringan yang lebih besar (WAN).
Bagaimana caranya kita membatasi hanya IP address group tertentu (pattern)
yang bisa akses Joomla site kita ?? Contohnya group IP Address : 10.18.*.*

Solusinya :
edit file "includes/ipaddress_list.php" yang berisi :

[start tag PHP]
$banned_ip = array();
$pattern_ip = array();
$special_ip = array("127.0.0.1");
[end tag PHP]


menjadi :

[start tag PHP]
$banned_ip = array();
$pattern_ip = array("10.18.0.0");
$special_ip = array("127.0.0.1");
[end tag PHP]

 

Keterangan : group IP address diwakili oleh variabel "$pattern_ip".
Karakter * diganti dengan angka 0 (nol).

2. Problem kedua, Joomla site anda ternyata berdasarkan log statistik (CPanel), mendapat "serangan" dari 3 IP Address ini :

174.123.235.1
174.123.202.11
176.123.200.10

Bagaimana cara kita memblok akses ketiga IP address ini terhadap Joomla site kita ?

Solusinya :
edit file "includes/ipaddress_list.php" menjadi :

[start tag PHP]
$banned_ip = array("174.123.235.1", "174.123.202.11", "176.123.200.10");
$pattern_ip = array("10.18.0.0");
$special_ip = array("127.0.0.1");
[end tag PHP]

Keterangan : ip address yang diblok / banned itu diwakili oleh variabel "$banned_ip"

3. Problem ketiga, didalam suatu group IP address, contohnya 10.18.*.* , ternyata anda diminta untuk membolehkan IP address tertentu
diluar group IP address tersebut agar bisa mengakses Joomla site anda. Contohnya IP address :

202.190.20.15

Solusinya :
edit file "includes/ipaddress_list.php" menjadi :

[start tag PHP]
$banned_ip = array("174.123.235.1", "174.123.202.11", "176.123.200.10");
$pattern_ip = array("10.18.0.0");
$special_ip = array("127.0.0.1", "202.190.20.15");
[end tag PHP]


Keterangan : ip address yang diperbolehkan (whitelist) itu diwakili oleh variabel "$special_ip".
Khusus untuk ip address "127.0.0.1" itu merupakan IP Address alias dari "localhost" biasanya dijadikan default akses di semua web server termasuk Apache web server yang banyak digunakan oleh Joomla site.

Kesimpulan :
kombinasi dari ketiga variabel array (string / text) dalam file "includes/ipaddress_list.php" itulah yang mengatur hak akses terhadap Joomla site anda.
Cara yang sama juga bisa anda terapkan di "Backend Administrator" joomla site anda.

Cara ini berlaku di semua versi Joomla, baik versi lama (1.0.X) maupun versi yang baru (1.5.X).
Bahkan cara "PHP core coding" ini juga bisa diterapkan di website (PHP) yang tidak menggunakan Joomla :)
Yang paling utama, anda harus yakin terhadap IP tertentu yang anda curigai sebagai "sumber serangan" terhadap Joomla site anda, sebelum anda memasukkan ke dalam data blok / banned IP.

Semoga bermanfaat :)

NB : jika merasa kesulitan untuk implementasi ke Joomla site anda,
bisa konsultasi dengan saya via email "This email address is being protected from spambots. You need JavaScript enabled to view it.",
bisa juga konsultasi seputar security Joomla site..

0

Kategori Blog

Joomla User Group Indonesia

Joomla User Group indonesia

Id-joomla.com adalah situs resmi Joomla User Group (JUG) Indonesia dan Joomla Translation Team

 
Download Terjemahan Joomla terakreditasi dari JoomlaCode dan laporkan bugs, ide dan saran nya di Sub Forum Hanacaraka

Socials

twitter id joomlafb idjoomla