Menggunakan Banyak Banyak IP pada cPanel
Last updated onCategory : WHM dan Free Panel
Untuk meningkatkan keamanan atau security pada server, maka sangat disarankan agar menggunakan beberapa IP dalam satu server, khususnya untuk server shared hosting. Penggunaan beberapa IP dalam satu server akan sangat berguna jika salah satu IP mendapatkan serangan DDOS atau serangan lain seperti brute force yang dapat menyebabkan server down dan crash jika dibiarkan terjadi.
Pada serangan DDOS yang sangat massive maka sekuat apapun firewall yang dimiliki server tetap tidak akan mampu menahan serangan tersebut dan tentu saja hal ini dapat menjadikan server down dan crash jika server tidak segera dimatikan. Salah satu keunggulan dari penggunaan banyak IP dalam satu server adalah bahwa kita dapat melakukan null routed IP yang mengalami DDOS tersebut sehingga hanya website klien dengan IP yang mengalami DDOS dan dilakukan nullrouted tersebutlah yang nantinya tidak dapat diakses dan website lainnya akan dapat diakses dengan baik.
Sebagai contoh, jika kita memiliki 10 IP dalam satu server dan server mendapatkan serangan DDOS yang sangat besar pada salah satu IP, maka kita dapat melakukan nullrouted pada IP tersebut dan website klien yang lainnya akan dapat diakses dengan baik. Hal tersebut artinya akan ada 10% website klien yang down dan 90% lainnya akan dapat diakses dengan baik. Bayangkan jika hanya ada satu IP saja, maka tentu server Anda akan down dan semua website di server tersebut tidak dapat diakses. Setelah DDOS berhenti, maka Anda akan dapat mengaktifkan IP tersebut kembali.
Selain itu, penggunaan beberapa IP dalam satu server juga memiliki banyak manfaat seperti untuk pergantian IP email jika IP email utama terblokir dan lain-lain.
Dalam artikel berikut, saya akan membahas bagaimana menambahkan dan menggunakan beberapa IP dalam satu server dengan WHM / cpanel (secara default, WHM hanya mengizinkan satu shared IP) agar setiap klien yang mendaftar dan akunnya diaktifkan akan menggunakan IP secara acak pada server. Berikut tahapannya:
Login di akun WHM Anda dan tambahkanlah daftar IP yang Anda miliki pada menu IP Functions > Add A New IP Address
Setelah itu, agar semua IP yang ditambahkan tersebut nantinya memiliki status shared IP (secara default, WHM hanya mengizinkan satu IP shared) dan dapat digunakan oleh banyak klien, maka jalankan perintah berikut:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
# /var/cpanel/mainips/root
[/pastacode]
Masukkan semua IP dalam file root dan pisahkan per IP dengan enter atau perbaris dan simpan. Misalnya:
182.253.238.78
182.253.238.160
182.253.238.123
182.253.238.212
Ubah hak akses file root menjadi 755 dengan perintah:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
# chmod 755 /var/cpanel/mainips/root
[/pastacode]
Cek status IP di WHM melalui IP Function > Show/Edit Reserved IPs dan seharusnya status IP Anda sudah menjadi shared semuanya.
Langkah selanjutnya adalah membuat rotasi IP agar setiap akun cPanel yang dibuat memperoleh IP baru dengan acak. Berikut tahapannya:
Buat file rotasi_ip.py pada folder /usr/bin/ dengan perintah berikut:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
# vim /usr/bin/rotasi_ip
[/pastacode]
Tambahkan baris perintah berikut pada file rotasi_ip:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
#!/usr/bin/env python
# Script to rotate the main IP of the server based on usage
# IDSysamin.com
import os, sys, re, socket
from operator import itemgetter
ipfile = '/var/cpanel/mainips/root'
tmpfile = '/var/cpanel/mainips/.root'
# Skip if this server doesn't use multiple main IPs
if not os.path.exists(ipfile):
print "No support for multiple main IPs...skipping"
sys.exit(0)
# Remove empty lines from file
f=open(ipfile, "r+")
fileString = f.read()
processedString = re.sub("\n\s*\n*", "\n", fileString)
f.seek(0)
f.write(processedString)
main_ips = f.readlines()
f.close()
# Get a list of IPs
f = open(ipfile)
main_ips = f.readlines()
f.close()
# Start an array for the IPs
ip_usage = { }
for ip in main_ips:
ip = ip.strip()
ip_usage[ip] = 0
# Now get each user's IP
for user in os.listdir('/var/cpanel/users/'):
file = open('/var/cpanel/users/%s' % user)
for line in file.readlines():
if line.startswith('IP='):
ip_address = line.split('=')[1].strip()
# Update the array (increment the IP's counter by 1)
if ip_address in ip_usage:
ip_usage[ip_address] += 1
break
file.close()
# Sort the ip_usage dict by value, putting the least-used IPs first
order_by_usage = sorted(ip_usage.items(), key=itemgetter(1))
file = open(tmpfile, 'w')
for ip in order_by_usage:
ip = ip[0]
file.write("%s\n" % ip)
file.close()
# Compare the two files and replace
current_list = sum(1 for line in open(ipfile))
new_list = sum(1 for line in open(tmpfile))
if current_list == new_list:
os.rename(tmpfile, ipfile)
[/pastacode]
Selanjutnya, ubah hak akses rotasi_ip.py menjadi 755 dengan perintah berikut:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
# chmod 755 /usr/bin/rotasi_ip
[/pastacode]
Selanjutnya, buatlah cron melalui crontab untuk menjalankan file /usr/bin/rotasi_ip.py setiap 30 menit sekali dengan perintah:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
# crontab -e
[/pastacode]
Isikan baris perintah berikut:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
*/30 * * * * /usr/bin/rotasi_ip
[/pastacode]
Langkah terakhir adalah restart crontab Anda dengan perintah berikut:
[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]
# /etc/init.d/crond restart
[/pastacode]
Selesai. Dengan mengikuti langkah tersebut, maka secara otomatis IP pada whm Anda akan selalu diubah per 30 menit sehingga akun cPanel yang dibuat pada WHM akan memiliki IP yang berbeda-beda atau dirotasi.
Stop kesulitan setup, konfigurasi dan kelola server. Kami melayani jasa setup, konfigurasi dan kelola server VPS ataupun dedicated server dengan harga yang sangat terjangkau. Kami juga melayani konsultasi pemilihan layanan VPS yang handal secara gratis. Hubungi kami melalui form berikut: