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.
Scripti çalıştırarak IP adresini banlananlar listesine ekliyorum.
Banlama işleminin ardından gördüğünüz üzere artık bu ip adresinden sunucuya hiç bir şekilde erişim sağlayamıyorum..
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.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#!/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.
Özel sürüme ulaşmak ve fiyat hakkında konuşmak için dc : CemoJR
İyi Forumlar Dilerim.
Örneğin aşağıdaki ip adresinden şuan sorunsuz şekilde sunucuya erişim sağlayabiliyorum.
Scripti çalıştırarak IP adresini banlananlar listesine ekliyorum.
Banlama işleminin ardından gördüğünüz üzere artık bu ip adresinden sunucuya hiç bir şekilde erişim sağlayamıyorum..
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
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#!/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.
Özel sürüme ulaşmak ve fiyat hakkında konuşmak için dc : CemoJR
İyi Forumlar Dilerim.