How to Create Shell Scripts to Block and Unblock IP Addresses Using iptables on Linux

Dalam pengelolaan server Linux, sering kali kita perlu memblokir alamat IP tertentu yang mencurigakan atau mencoba menyerang sistem. Salah satu cara terbaik adalah menggunakan iptables. Artikel ini akan membahas bagaimana membuat dua skrip sederhana untuk:

  • Memblokir IP (blokir akses masuk dan forward)

  • Membuka blokir IP (menghapus aturan iptables)

Skrip ini sangat berguna untuk administrator server, khususnya yang menangani sistem keamanan seperti Wazuh, Fail2ban, atau firewall manual.


๐Ÿ“Œ Persyaratan Awal

  • Kamu adalah user root atau memiliki akses sudo.

  • iptables sudah tersedia di sistem (biasanya sudah default di Ubuntu/Debian/CentOS).


✅ 1. Membuat Skrip Memblokir IP (blokir-ip.sh)

๐Ÿ”ง Langkah-langkah:

1.1 Buat file skrip:

nano /usr/local/bin/blokir-ip.sh

1.2 Isi skrip: 

#!/bin/bash

# Periksa apakah IP diberikan
if [ -z "$1" ]; then
echo "Penggunaan: blokir-ip.sh <alamat-ip>"
exit 1
fi

IP="$1"

# Fungsi cek apakah IP sudah diblokir
function sudah_diblokir() {
iptables -C INPUT -s "$IP" -j DROP 2>/dev/null && iptables -C FORWARD -s "$IP" -j DROP 2>/dev/null
}

# Cek dan beri peringatan jika IP sudah diblokir
if sudah_diblokir; then
echo "⚠️ IP $IP sudah diblokir sebelumnya. Tidak dilakukan apa-apa."
exit 0
fi

# Tambahkan aturan blokir
iptables -I INPUT -s "$IP" -j DROP
iptables -I FORWARD -s "$IP" -j DROP

# Log ke file
echo "$(date '+%Y-%m-%d %H:%M:%S') - Blokir IP: $IP" >> /var/log/blokir-ip.log

echo "✅ IP $IP berhasil diblokir."
 

2.3 Jadikan executable:

chmod +x /usr/local/bin/buka-blokir-ip.sh

 

✅ 2. Membuat Skrip Membuka Blokir IP (buka-blokir-ip.sh)

2.1 Buat file skrip:

nano /usr/local/bin/buka-blokir-ip.sh

2.2 Isi skrip:

#!/bin/bash

# Periksa apakah IP diberikan
if [ -z "$1" ]; then
echo "Penggunaan: buka-blokir-ip.sh <alamat-ip>"
exit 1
fi

IP="$1"

# Fungsi cek apakah IP sedang diblokir
function sedang_diblokir() {
iptables -C INPUT -s "$IP" -j DROP 2>/dev/null && iptables -C FORWARD -s "$IP" -j DROP 2>/dev/null
}

# Jika IP tidak diblokir, beritahu
if ! sedang_diblokir; then
echo "⚠️ IP $IP tidak ditemukan dalam daftar blokir. Tidak ada yang dihapus."
exit 0
fi

# Hapus aturan DROP dari INPUT dan FORWARD
iptables -D INPUT -s "$IP" -j DROP 2>/dev/null
iptables -D FORWARD -s "$IP" -j DROP 2>/dev/null

# Log ke file
echo "$(date '+%Y-%m-%d %H:%M:%S') - Buka blokir IP: $IP" >> /var/log/blokir-ip.log

echo "๐Ÿšช IP $IP berhasil dibuka blokirnya."
 

2.3 Jadikan executable:

chmod +x /usr/local/bin/buka-blokir-ip.sh
 

๐Ÿงช Penggunaan Skrip

Memblokir IP:

blokir-ip.sh 192.168.1.100
 

Membuka blokir IP:

buka-blokir-ip.sh 192.168.1.100
 
 

Melihat log: 

cat /var/log/blokir-ip.log



 


 





 





Subscribe to receive free email updates:

0 Response to "How to Create Shell Scripts to Block and Unblock IP Addresses Using iptables on Linux"

Posting Komentar

Aturan Berkomentar :

1. Berbicara menggunakan bahasa yang enak didengar. Tidak Untuk menyinggung perasaan orang Lain.

2.Spamming (Spam Comment)

3.Kalau Mau ngopy-paste artikel disini, Berikan sumbernya