Linux IP Banlama Scripti

cemojr

Gold Üye
Katılım
30 May 2020
Mesajlar
105
Beğeniler
20
Merhaba dostlar. Bugün ihtiyaç duyduğum için bir adet linux banlama scripti kodladım. Süresiz olarak bir ip adresini banlamanızı sağlamaktadır.

Örneğin aşağıdaki ip adresinden şuan sorunsuz şekilde sunucuya erişim sağlayabiliyorum.

wyzf-fb.png


Scripti çalıştırarak IP adresini banlananlar listesine ekliyorum.



image.png


Banlama işleminin ardından gördüğünüz üzere artık bu ip adresinden sunucuya hiç bir şekilde erişim sağlayamıyorum..

image.png



Evet sistem çalışma mantığı bu kadar kolay. IP Banını kaldırdığınız zaman erişim tekrar gelmektedir. Gelelim nasıl kurulduğuna.

Ban işleminin kalıcı olması ve sistemi yeniden başlatsak dahi bu adreslerin kayıtlı olması adına aşağıdaki komutları çalıştırarak iptables-persistent paketini kuruyoruz.
  • sudo apt install iptables-persistent
  • sudo netfilter-persistent save
  • sudo netfilter-persistent reload
Daha sonrasında istediğiniz bir isimle istediğiniz bir editörle aşağıdaki kodları .sh uzantılı olacak şekilde oluşturuyoruz. En baştaki ve en sondaki """""" işaretlerini almayınız lütfen.

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#!/bin/bash

validate_ip() {
# IP adresini kontrol et
local ip="$1"
local valid_ip_regex="^([0-9]{1,3}\.){3}[0-9]{1,3}$"
if [[ ! $ip =~ $valid_ip_regex ]]; then
echo "Hatalı IP formatı! IP adresi x.x.x.x şeklinde olmalı."
return 1
fi

# Her bir kısmın (0-255) arasında olup olmadığını kontrol et
IFS='.' read -r -a octets <<< "$ip"
for octet in "${octets[@]}"; do
if ((octet < 0 || octet > 255)); then
echo "Hatalı IP! Her bölüm 0 ile 255 arasında olmalıdır."
return 1
fi
done

return 0
}

echo "******************************"
echo "* Mevcut Banlı IP'ler *"
echo "******************************"

# Banlı IP adreslerini listele
banned_ips=$(sudo iptables -L INPUT -v -n | grep DROP | awk '{print $8}')
if [ -z "$banned_ips" ]; then
echo "Şu anda banlı IP adresi yok."
else
echo "$banned_ips" | nl
fi

echo "******************************"
echo "* IP Banlama *"
echo "******************************"
echo "1) Süresiz IP Ban"
echo "2) IP Ban Kaldır"
read -p "Lütfen bir seçim yapın (1/2): " choice

case $choice in
1)
read -p "Banlanacak IP adresini girin: " ip
# Başındaki ve sonundaki boşlukları temizle
ip=$(echo "$ip" | xargs)

# IP adresini doğrula
if ! validate_ip "$ip"; then
exit 1
fi

# IP'nin zaten banlı olup olmadığını kontrol et
if echo "$banned_ips" | grep -wq "$ip"; then
echo "$ip adresi zaten banlı."
else
sudo iptables -A INPUT -s $ip -j DROP
echo "$ip adresi süresiz olarak banlandı."

# iptables-save komutuyla kuralları kaydet
sudo iptables-save > /etc/iptables/rules.v4
echo "iptables kuralları kaydedildi."
fi
;;
2)
read -p "Banı kaldırılacak IP adresini girin: " ip
# Başındaki ve sonundaki boşlukları temizle
ip=$(echo "$ip" | xargs)

# IP adresini doğrula
if ! validate_ip "$ip"; then
exit 1
fi

# IP'nin banlı olup olmadığını kontrol et
if echo "$banned_ips" | grep -wq "$ip"; then
sudo iptables -D INPUT -s $ip -j DROP
echo "$ip adresinin banı kaldırıldı."

# iptables-save komutuyla kuralları kaydet
sudo iptables-save > /etc/iptables/rules.v4
echo "iptables kuralları kaydedildi."
else
echo "$ip adresi zaten banlı değil."
fi
;;
*)
echo "Geçersiz seçim! Lütfen 1 veya 2'yi seçin."
;;
esac

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dosyayı kayıt ettikten sonra chmod +x dosyaismi.sh yazarak kullanıcıya yetkiyi veriyoruz.

Ardından tek yapmamız gereken şey ./dosyaadiniz.sh şeklinde scripti çalıştırmak.

Birde bunun zorlama brute-force, overflow, bot, ddos, http ve https üzerinden aşırı request, site üzerinden fazla login giriş denemesi yapılması, ssh ve daha bir çok koruma özellikli --**OTOMATİK BAN ATAN**-- (süresi ayarlanabiliyor) ve attığı banı belirli süre sonra kaldıran ve bu yaptığı işlemleri mail olarak loglayan, banlanan ip adresinin otomatik olarak who is sorgusunu yapan ve bunu maile ekleyen versiyonu elimde mevcut.

image.png


Özel sürüme ulaşmak ve fiyat hakkında konuşmak için dc : CemoJR

İyi Forumlar Dilerim.
 
Merhaba dostlar. Bugün ihtiyaç duyduğum için bir adet linux banlama scripti kodladım. Süresiz olarak bir ip adresini banlamanızı sağlamaktadır.

Örneğin aşağıdaki ip adresinden şuan sorunsuz şekilde sunucuya erişim sağlayabiliyorum.

wyzf-fb.png


Scripti çalıştırarak IP adresini banlananlar listesine ekliyorum.



image.png


Banlama işleminin ardından gördüğünüz üzere artık bu ip adresinden sunucuya hiç bir şekilde erişim sağlayamıyorum..

image.png



Evet sistem çalışma mantığı bu kadar kolay. IP Banını kaldırdığınız zaman erişim tekrar gelmektedir. Gelelim nasıl kurulduğuna.

Ban işleminin kalıcı olması ve sistemi yeniden başlatsak dahi bu adreslerin kayıtlı olması adına aşağıdaki komutları çalıştırarak iptables-persistent paketini kuruyoruz.
  • sudo apt install iptables-persistent
  • sudo netfilter-persistent save
  • sudo netfilter-persistent reload
Daha sonrasında istediğiniz bir isimle istediğiniz bir editörle aşağıdaki kodları .sh uzantılı olacak şekilde oluşturuyoruz. En baştaki ve en sondaki """""" işaretlerini almayınız lütfen.

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#!/bin/bash

validate_ip() {
# IP adresini kontrol et
local ip="$1"
local valid_ip_regex="^([0-9]{1,3}\.){3}[0-9]{1,3}$"
if [[ ! $ip =~ $valid_ip_regex ]]; then
echo "Hatalı IP formatı! IP adresi x.x.x.x şeklinde olmalı."
return 1
fi

# Her bir kısmın (0-255) arasında olup olmadığını kontrol et
IFS='.' read -r -a octets <<< "$ip"
for octet in "${octets[@]}"; do
if ((octet < 0 || octet > 255)); then
echo "Hatalı IP! Her bölüm 0 ile 255 arasında olmalıdır."
return 1
fi
done

return 0
}

echo "******************************"
echo "* Mevcut Banlı IP'ler *"
echo "******************************"

# Banlı IP adreslerini listele
banned_ips=$(sudo iptables -L INPUT -v -n | grep DROP | awk '{print $8}')
if [ -z "$banned_ips" ]; then
echo "Şu anda banlı IP adresi yok."
else
echo "$banned_ips" | nl
fi

echo "******************************"
echo "* IP Banlama *"
echo "******************************"
echo "1) Süresiz IP Ban"
echo "2) IP Ban Kaldır"
read -p "Lütfen bir seçim yapın (1/2): " choice

case $choice in
1)
read -p "Banlanacak IP adresini girin: " ip
# Başındaki ve sonundaki boşlukları temizle
ip=$(echo "$ip" | xargs)

# IP adresini doğrula
if ! validate_ip "$ip"; then
exit 1
fi

# IP'nin zaten banlı olup olmadığını kontrol et
if echo "$banned_ips" | grep -wq "$ip"; then
echo "$ip adresi zaten banlı."
else
sudo iptables -A INPUT -s $ip -j DROP
echo "$ip adresi süresiz olarak banlandı."

# iptables-save komutuyla kuralları kaydet
sudo iptables-save > /etc/iptables/rules.v4
echo "iptables kuralları kaydedildi."
fi
;;
2)
read -p "Banı kaldırılacak IP adresini girin: " ip
# Başındaki ve sonundaki boşlukları temizle
ip=$(echo "$ip" | xargs)

# IP adresini doğrula
if ! validate_ip "$ip"; then
exit 1
fi

# IP'nin banlı olup olmadığını kontrol et
if echo "$banned_ips" | grep -wq "$ip"; then
sudo iptables -D INPUT -s $ip -j DROP
echo "$ip adresinin banı kaldırıldı."

# iptables-save komutuyla kuralları kaydet
sudo iptables-save > /etc/iptables/rules.v4
echo "iptables kuralları kaydedildi."
else
echo "$ip adresi zaten banlı değil."
fi
;;
*)
echo "Geçersiz seçim! Lütfen 1 veya 2'yi seçin."
;;
esac

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dosyayı kayıt ettikten sonra chmod +x dosyaismi.sh yazarak kullanıcıya yetkiyi veriyoruz.

Ardından tek yapmamız gereken şey ./dosyaadiniz.sh şeklinde scripti çalıştırmak.

Birde bunun zorlama brute-force, overflow, bot, ddos, http ve https üzerinden aşırı request, site üzerinden fazla login giriş denemesi yapılması, ssh ve daha bir çok koruma özellikli --**OTOMATİK BAN ATAN**-- (süresi ayarlanabiliyor) ve attığı banı belirli süre sonra kaldıran ve bu yaptığı işlemleri mail olarak loglayan, banlanan ip adresinin otomatik olarak who is sorgusunu yapan ve bunu maile ekleyen versiyonu elimde mevcut.

image.png


Özel sürüme ulaşmak ve fiyat hakkında konuşmak için dc : CemoJR

İyi Forumlar Dilerim.
Ilk oncelikle yararli konu. satis icin farkli bir konu acman ve fiyat belirlemen gerekli.
 
Konu Gayet Başarılı başarılarınızın devamını dileriz <3
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt