Kumpulan Script Anti-Hack & Anti-Retas untuk Server Perusahaan — Lengkap dengan Tombol Salin!

Di era digital yang semakin canggih, ancaman peretasan dan pencurian data menjadi momok menakutkan bagi para pengusaha. Data perusahaan adalah aset paling berharga—mulai dari data pelanggan, rahasia dagang, hingga informasi keuangan. Jika jatuh ke tangan orang jahat yang tidak bertanggung jawab, bisa berakibat fatal: kerugian finansial, hilangnya kepercayaan pelanggan, bahkan kebangkrutan.

Kami hadir untuk membantu Anda! Berikut adalah kumpulan script anti-hack dan anti-retas yang dapat Anda terapkan di server perusahaan. Setiap script dilengkapi dengan tombol salin agar mudah diimplementasikan. Semua script ini dirancang untuk melindungi server dari berbagai jenis serangan siber, mulai dari serangan DDoS, SQL Injection, Cross-Site Scripting (XSS), hingga brute force login.

Sebagai pengusaha yang jujur dan bertanggung jawab, lindungi data perusahaan Anda sekarang juga! Jangan biarkan peretas mengambil keuntungan dari kerja keras Anda.


Script Dasar: Perlindungan Server dari Serangan Umum

Script pertama ini adalah fondasi keamanan dasar yang wajib Anda terapkan. Meliputi perlindungan terhadap serangan DDoS, pembatasan akses, dan deteksi aktivitas mencurigakan.

1. Script Perlindungan DDoS & Rate Limiting

Script ini membatasi jumlah permintaan (request) dari satu alamat IP dalam waktu tertentu. Mencegah serangan DDoS yang membanjiri server dengan lalu lintas palsu.


# Script Perlindungan DDoS & Rate Limiting (Nginx)
# Simpan di file /etc/nginx/nginx.conf atau /etc/nginx/conf.d/rate-limiting.conf

# Definisikan zona rate limiting
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;

# Terapkan pada server atau lokasi tertentu
server {
    listen 80;
    server_name example.com;

    location / {
        limit_req zone=mylimit burst=20 nodelay;
        limit_req_status 429;
        # Tambahkan aturan lain di sini
    }
}

2. Script Perlindungan Brute Force Login

Mencegah percobaan login berulang-ulang (brute force) dengan membatasi jumlah percobaan login yang gagal.


# Script Perlindungan Brute Force Login (PHP)
# Simpan di file config.php atau fungsi autentikasi Anda

function login_attempts_check($ip_address) {
    $attempts_file = '/tmp/login_attempts.txt';
    $max_attempts = 5;
    $block_duration = 300; // 5 menit

    $attempts = file_get_contents($attempts_file);
    $data = json_decode($attempts, true) ?? [];

    if (isset($data[$ip_address])) {
        if ($data[$ip_address]['count'] >= $max_attempts && (time() - $data[$ip_address]['time']) < $block_duration) {
            return false; // IP diblokir
        }

        // Jika waktu blokir habis, reset hitungan
        if ((time() - $data[$ip_address]['time']) >= $block_duration) {
            unset($data[$ip_address]);
        }
    }

    return true; // IP diizinkan
}

// Contoh penggunaan
$ip = $_SERVER['REMOTE_ADDR'];
if (!login_attempts_check($ip)) {
    die("Terlalu banyak percobaan login gagal. Silakan coba lagi dalam 5 menit.");
}

Script Keamanan Data & Database

Data adalah aset perusahaan. Lindungi dari serangan SQL Injection, XSS, dan akses ilegal.

3. Script Perlindungan SQL Injection

Menghindari serangan SQL Injection dengan memvalidasi semua input dari pengguna.


# Script Perlindungan SQL Injection (PHP - PDO)
# Menggunakan prepared statement untuk menghindari SQL injection

function safe_query($pdo, $sql, $params = []) {
    try {
        $stmt = $pdo->prepare($sql);
        $stmt->execute($params);
        return $stmt;
    } catch (PDOException $e) {
        error_log("SQL Error: " . $e->getMessage());
        return false;
    }
}

# Contoh penggunaan
$pdo = new PDO("mysql:host=localhost;dbname=perusahaan;charset=utf8", "username", "password");
$sql = "SELECT * FROM users WHERE email = :email AND password = :password";
$params = [':email' => $_POST['email'], ':password' => $_POST['password']];
$result = safe_query($pdo, $sql, $params);

4. Script Enkripsi Data Sensitif

Mengenkripsi data sensitif (seperti password, nomor kartu, NIK) yang disimpan di database.


# Script Enkripsi Data Sensitif (PHP - AES-256-CBC)
# Gunakan untuk mengenkripsi data sebelum disimpan ke database

define('ENCRYPTION_KEY', 'rahasia-kunci-anda-yang-sangat-kuat');
define('ENCRYPTION_IV_LENGTH', openssl_cipher_iv_length('aes-256-cbc'));

function encrypt_data($data) {
    $iv = openssl_random_pseudo_bytes(ENCRYPTION_IV_LENGTH);
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', ENCRYPTION_KEY, 0, $iv);
    return base64_encode($iv . $encrypted);
}

function decrypt_data($encrypted_data) {
    $data = base64_decode($encrypted_data);
    $iv = substr($data, 0, ENCRYPTION_IV_LENGTH);
    $encrypted = substr($data, ENCRYPTION_IV_LENGTH);
    return openssl_decrypt($encrypted, 'aes-256-cbc', ENCRYPTION_KEY, 0, $iv);
}

# Contoh penggunaan
$encrypted_nik = encrypt_data('1234567890123456');
echo "Data terenkripsi: " . $encrypted_nik . "\n";
echo "Data asli: " . decrypt_data($encrypted_nik);

5. Script Perlindungan Cross-Site Scripting (XSS)

Mencegah serangan XSS dengan memfilter dan membersihkan semua input dan output HTML.


# Script Perlindungan Cross-Site Scripting (XSS) - PHP
# Bersihkan semua input dan output untuk mencegah XSS

function sanitize_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
    return $data;
}

function sanitize_output($data) {
    return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
}

# Contoh penggunaan
$nama = sanitize_input($_POST['nama']);
$komentar = sanitize_input($_POST['komentar']);
echo "

Nama: " . sanitize_output($nama) . "

"; echo "

Komentar: " . sanitize_output($komentar) . "

";

6. Script Backup Otomatis Database

Melakukan backup database secara otomatis dan periodik untuk mengantisipasi kehilangan data akibat serangan.


# Script Backup Otomatis Database (Bash untuk Linux)
# Simpan di /etc/cron.daily/backup-database.sh
# Jangan lupa jadwalkan dengan cron!

#!/bin/bash
DB_NAME="nama_database"
DB_USER="username"
DB_PASS="password"
BACKUP_DIR="/var/backups/database"

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"

mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE

# Kompres backup
gzip $BACKUP_FILE

# Hapus backup lama (lebih dari 30 hari)
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete

echo "Backup $DB_NAME selesai: $BACKUP_FILE.gz"

Script Monitoring & Deteksi Dini Serangan

Deteksi dini adalah kunci untuk mencegah kerusakan lebih parah. Script di bawah ini akan memonitor aktivitas server dan memberi tahu Anda jika ada kejanggalan.

7. Script Monitoring Aktivitas Login Gagal

Mencatat dan memberi peringatan jika ada aktivitas login gagal yang mencurigakan.


# Script Monitoring Login Gagal - PHP (gunakan dengan cron)
# Jalankan script ini setiap 5 menit untuk memonitor log server

$log_file = '/var/log/auth.log';
$alert_email = 'admin@perusahaan.com';

$failed_logins = shell_exec("tail -n 100 $log_file | grep 'Failed password' | wc -l");
if ($failed_logins > 10) {
    $subject = "Peringatan: Banyak percobaan login gagal";
    $message = "Terjadi $failed_logins percobaan login gagal dalam 5 menit terakhir. Cek log server segera.";
    mail($alert_email, $subject, $message);
}

# Untuk log nginx/access.log
$access_log = '/var/log/nginx/access.log';
$suspicious_requests = shell_exec("tail -n 500 $access_log | grep -E '(sql|select|union|--|;|\)' | wc -l");
if ($suspicious_requests > 5) {
    // Kirim peringatan jika ada banyak request SQL injection atau XSS
}

8. Script Firewall Otomatis dengan Fail2ban

Memblokir IP yang mencurigakan secara otomatis menggunakan Fail2ban.


# Konfigurasi Fail2ban untuk Perlindungan Server
# Simpan di /etc/fail2ban/jail.local

[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log

[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log

[php-url-fopen]
enabled = true
port = http,https
filter = php-url-fopen
logpath = /var/log/nginx/access.log

# Setelah mengubah konfigurasi, restart fail2ban:
# sudo systemctl restart fail2ban

Script Anti-Retas untuk Aplikasi Web

Khusus untuk aplikasi berbasis web, script ini akan menambah lapisan keamanan ekstra.

9. Script Keamanan Header HTTP

Menambahkan header keamanan HTTP untuk melindungi dari serangan seperti clickjacking, XSS, dan MIME sniffing.


# Script Keamanan Header HTTP (PHP)
# Tambahkan di awal setiap halaman atau di file konfigurasi

header('X-Frame-Options: DENY'); // Mencegah clickjacking
header('X-XSS-Protection: 1; mode=block'); // Perlindungan XSS
header('X-Content-Type-Options: nosniff'); // Mencegah MIME sniffing
header('Referrer-Policy: no-referrer-when-downgrade');
header("Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; style-src 'self' https://cdn.jsdelivr.net; img-src 'self' data:;");

// Untuk Nginx, tambahkan di server block:
// add_header X-Frame-Options "DENY" always;
// add_header X-XSS-Protection "1; mode=block" always;
// add_header X-Content-Type-Options "nosniff" always;

10. Script Perlindungan Session & Cookie

Mengamankan session dan cookie agar tidak mudah diretas.


# Script Perlindungan Session & Cookie (PHP)
# Simpan di file konfigurasi utama

// Pengaturan session yang aman
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 1);
ini_set('session.cookie_samesite', 'Strict');
ini_set('session.use_only_cookies', 1);
ini_set('session.gc_maxlifetime', 3600); // 1 jam

// Regenerasi session ID secara periodik
if (!isset($_SESSION['initiated'])) {
    session_regenerate_id(true);
    $_SESSION['initiated'] = true;
}

// Cek user agent dan IP untuk mencegah session hijacking
if (isset($_SESSION['user_agent'])) {
    if ($_SESSION['user_agent'] !== $_SERVER['HTTP_USER_AGENT']) {
        session_destroy();
        die('Session tidak valid. Silakan login ulang.');
    }
} else {
    $_SESSION['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
}

Script Backup & Pemulihan Darurat

Script ini membantu Anda memulihkan sistem dengan cepat jika terjadi serangan yang berhasil.

11. Script Snapshot Konfigurasi Server

Membuat snapshot semua konfigurasi server untuk pemulihan cepat.


# Script Snapshot Konfigurasi Server (Bash)
# Simpan di /root/snapshot.sh

#!/bin/bash
SNAPSHOT_DIR="/root/server-snapshots"
DATE=$(date +%Y%m%d_%H%M%S)
SNAPSHOT_FILE="$SNAPSHOT_DIR/snapshot-$DATE.tar.gz"

# Buat direktori snapshot
mkdir -p $SNAPSHOT_DIR

# Simpan konfigurasi penting
tar -czf $SNAPSHOT_FILE \
    /etc/nginx \
    /etc/apache2 \
    /etc/mysql \
    /etc/php \
    /etc/fail2ban \
    /etc/ssh \
    /var/www/html/.htaccess \
    /root/.bashrc

# Simpan daftar paket yang terinstal
dpkg --get-selections > $SNAPSHOT_DIR/packages-$DATE.txt

# Simpan informasi cron
crontab -l > $SNAPSHOT_DIR/crontab-$DATE.txt 2>/dev/null

echo "Snapshot selesai: $SNAPSHOT_FILE"

12. Script Deteksi Perubahan File (Integritas)

Mendeteksi perubahan file yang mencurigakan yang mungkin disebabkan oleh malware.


# Script Deteksi Perubahan File (Bash)
# Simpan di /root/check-integrity.sh
# Jalankan setiap hari menggunakan cron

#!/bin/bash
# Buat file checksum awal:
# find /var/www/html -type f -exec md5sum {} \; > /root/file-checksum.txt

CHECKSUM_FILE="/root/file-checksum.txt"
LOG_FILE="/var/log/file-integrity.log"
WEB_DIR="/var/www/html"

if [ ! -f "$CHECKSUM_FILE" ]; then
    echo "File checksum tidak ditemukan. Buat dengan: find $WEB_DIR -type f -exec md5sum {} \; > $CHECKSUM_FILE"
    exit 1
fi

# Periksa perubahan
while read -r line; do
    checksum=$(echo $line | awk '{print $1}')
    file=$(echo $line | awk '{print $2}')
    if [ -f "$file" ]; then
        current_checksum=$(md5sum "$file" | awk '{print $1}')
        if [ "$checksum" != "$current_checksum" ]; then
            echo "$(date) - File berubah: $file" >> $LOG_FILE
            # Kirim peringatan
            echo "File $file telah berubah!" | mail -s "File Integrity Alert" admin@perusahaan.com
        fi
    else
        echo "$(date) - File hilang: $file" >> $LOG_FILE
    fi
done < $CHECKSUM_FILE

echo "Pemeriksaan integritas selesai."

Rekomendasi Tambahan untuk Keamanan Server

Selain script di atas, berikut adalah rekomendasi keamanan tambahan yang wajib Anda terapkan:

  • Perbarui Sistem Secara Teratur: Selalu update OS, web server, database, dan semua aplikasi ke versi terbaru untuk menambal celah keamanan.
  • Gunakan Firewall (UFW/iptables): Batasi port yang terbuka hanya untuk yang benar-benar diperlukan (80, 443, 22 untuk SSH).
  • Aktifkan TLS/SSL: Gunakan sertifikat Let's Encrypt untuk mengamankan semua komunikasi web dengan HTTPS.
  • Gunakan Password yang Kuat: Kombinasi huruf besar, kecil, angka, dan simbol. Jangan gunakan password default!
  • Batasi Akses SSH: Nonaktifkan root login, gunakan key-based authentication, dan ubah port SSH default (22).
  • Backup Secara Teratur: Lakukan backup database dan file secara teratur ke lokasi yang aman (offsite backup).
  • Edukasi Karyawan: Beri pelatihan keamanan dasar kepada semua karyawan tentang phishing, password, dan perilaku aman di internet.

Keamanan sistem adalah proses, bukan produk. Kombinasi script, kebijakan, dan kesadaran adalah kunci untuk melindungi perusahaan Anda dari serangan siber.


Kesimpulan: Lindungi Data Perusahaan Anda Mulai Hari Ini!

Ancaman peretasan dan pencurian data bukanlah hal yang bisa dianggap sepele. Dengan kumpulan script anti-hack di atas, Anda telah memiliki senjata lengkap untuk melindungi server perusahaan dari berbagai jenis serangan. Mulai dari perlindungan DDoS, SQL Injection, XSS, hingga monitoring dan backup, semua telah kami sediakan.

Hal penting yang perlu diingat:

  • Terapkan script satu per satu sesuai kebutuhan.
  • Uji setiap script di lingkungan pengembangan sebelum diterapkan ke server produksi.
  • Kombinasikan dengan kebijakan keamanan internal yang kuat.
  • Selalu pantau log server untuk mendeteksi aktivitas mencurigakan.

Jangan tunggu sampai data Anda dicuri atau server Anda diretas! Sebagai pengusaha yang jujur dan bertanggung jawab, lindungi aset perusahaan Anda dengan menerapkan keamanan yang memadai. Copy script yang Anda butuhkan, sesuaikan dengan konfigurasi server Anda, dan mulailah melindungi bisnis Anda dari para orang jahat yang tidak bertanggung jawab.

Peringatan: Beberapa script memerlukan akses root atau admin server. Pastikan Anda memiliki izin yang tepat sebelum menerapkan script. Kami tidak bertanggung jawab atas kerusakan yang terjadi akibat penggunaan script yang tidak tepat.


*Artikel ini disusun oleh tim keamanan siber kami. Script telah diuji di lingkungan Linux dengan konfigurasi standar (Nginx, Apache, PHP, MySQL). Sesuaikan dengan kebutuhan spesifik server Anda.

Kumpulan Script Anti-Hack & Anti-Retas untuk Server Perusahaan — Lengkap dengan Tombol Salin!

Next Post Previous Post
Kami Mencium Aroma Lokasi Server anda saat ini

IP Server anda: Memuatkan...

"Dan katakanlah: "Ya Tuhanku, tambahkanlah kepadaku ilmu pengetahuan."" — QS. Thaha: 114