WordPress için geliştirilmiş bir güvenlik eklentisidir. Adı
"Gelişmiş Güvenlik Eklentisi" ve amacı, DDoS ve Brute Force saldırılarına karşı koruma sağlamaktır.
- Kullanıcılar, sistemde çok fazla hatalı giriş yaparsa veya çok fazla istek gönderirse, sistem bu IP'yi engeller.
- Bu engellemeler loglanır ve yöneticilere bildirilir.
- Yönetici, engellenen IP'leri yönetim panelinde görebilir ve gerekirse kaldırabilir.
Güvenlik Özellikleri:
- Brute Force Saldırıları: Belirli bir IP adresinin yanlış giriş sayısını izler ve bu sayıya ulaşıldığında engeller.
- DDoS Saldırıları: IP başına belirli bir zaman diliminde çok fazla istek yapılmasını engeller.
- Engellenmiş IPlerin Yönetimi: Yönetici, engellenen IP'leri görüntüleyebilir ve gerektiğinde bu IP'leri kaldırabilir.
engellenen ipler ayarlar - Engellenen IP altında listelenir oradan kaldırabilirsiniz.
Site Yedeğinizi almanız her zaman önerimizdir
demo:
türkiye Ajans <?php
/*
Plugin Name: Gelişmiş Güvenlik Eklentisi
Description: DDoS ve Brute Force saldırılarını engeller, saldırı girişimlerini kaydeder ve güvenlik açıklarını kontrol eder.
Version: 1.3
Author: Mustafa Çakar
Web: turkiyeajans.com
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Güvenlik amacıyla doğrudan erişimi engeller
}
// Yönetici mi kontrol et
function bfe_is_admin_user() {
return is_user_logged_in() && current_user_can('manage_options');
}
// Firewall: Zararlı IP'leri engelle
function bfe_firewall_check() {
if (bfe_is_admin_user()) {
return;
}
$blocked_ips = get_option('bfe_blocked_ips', []);
if (in_array($_SERVER['REMOTE_ADDR'], $blocked_ips)) {
wp_die('Erişiminiz güvenlik nedeniyle engellenmiştir.');
}
}
add_action('init', 'bfe_firewall_check');
// IPyi engelleme fonksiyonu
function bfe_block_ip($ip) {
$blocked_ips = get_option('bfe_blocked_ips', []);
if (!in_array($ip, $blocked_ips)) {
$blocked_ips[] = $ip;
update_option('bfe_blocked_ips', $blocked_ips);
}
}
// IPyi kaldırma fonksiyonu
function bfe_unblock_ip($ip) {
$blocked_ips = get_option('bfe_blocked_ips', []);
if (in_array($ip, $blocked_ips)) {
$blocked_ips = array_diff($blocked_ips, [$ip]);
update_option('bfe_blocked_ips', $blocked_ips);
}
}
// Saldırı Günlüğüne Kayıt Ekleme
function bfe_log_attack($type, $ip) {
$log_file = WP_CONTENT_DIR . '/bfe_security_log.txt';
$time = date('Y-m-d H:i:s');
$log_entry = "[$time] $type saldırısı tespit edildi! IP: $ip" . PHP_EOL;
file_put_contents($log_file, $log_entry, FILE_APPEND);
// Yöneticiye e-posta bildirimi gönder
$admin_email = get_option('admin_email');
wp_mail($admin_email, "Güvenlik Uyarısı: $type Saldırısı", $log_entry);
}
// Brute Force Engelleme: Hatalı Girişleri Sınırla
function bfe_limit_login_attempts() {
if (bfe_is_admin_user()) {
return;
}
$ip = $_SERVER['REMOTE_ADDR'];
$max_attempts = 5;
$lockout_time = 900; // 15 dakika
$failed_attempts = get_transient('bfe_failed_attempts_' . $ip);
if ($failed_attempts >= $max_attempts) {
bfe_block_ip($ip);
bfe_log_attack('Brute Force', $ip);
wp_die('Çok fazla hatalı giriş denemesi! IPniz engellendi.');
} else {
set_transient('bfe_failed_attempts_' . $ip, $failed_attempts + 1, $lockout_time);
}
}
add_action('wp_login_failed', 'bfe_limit_login_attempts');
// DDoS Koruması: IP Başına İstek Limiti (geliştirilmiş)
function bfe_ip_rate_limit() {
if (bfe_is_admin_user()) {
return;
}
$ip = $_SERVER['REMOTE_ADDR'];
$time_limit = 60; // 1 dakika
$max_requests = 40; // 1 dakikada en fazla 20 istek
// İstek sayısını al
$request_count = get_transient('bfe_request_count_' . $ip);
// DDoS saldırısı tespit edilirse, IP'yi engelle
if ($request_count && $request_count >= $max_requests) {
// Mevcut engellemeyi kontrol et
$current_block_time = get_transient('bfe_blocked_ip_' . $ip);
// Eğer engelleme süresi belirlenmemişse, başla
if (!$current_block_time) {
$block_time = 5 * 60; // 5 dakika
$message = 'İlk kez engellendiniz. 5 dakika süreyle engellendiniz.';
} else {
// Engelleme süresini arttır
if ($current_block_time == 5 * 60) {
$block_time = 15 * 60; // 15 dakika
$message = '5 dakikalık engelleme süresi doldu. Şimdi 15 dakika engellendiniz.';
} elseif ($current_block_time == 15 * 60) {
$block_time = 30 * 60; // 30 dakika
$message = '15 dakikalık engelleme süresi doldu. Şimdi 30 dakika engellendiniz.';
} elseif ($current_block_time == 30 * 60) {
$block_time = 24 * 60 * 60; // 1 gün
$message = '30 dakikalık engelleme süresi doldu. Şimdi 1 gün engellendiniz.';
} else {
// Eğer 1 günden fazla engellenmişse, mesajı 1 gün olarak göster.
$block_time = $current_block_time; // 1 gün geçtikten sonra engellemeyi devam ettir
$message = '1 günlük engelleme süresi sona erdi.';
}
}
// IP'yi engelle
bfe_block_ip($ip);
bfe_log_attack('DDoS', $ip);
// Engellemeyi set et
set_transient('bfe_blocked_ip_' . $ip, $block_time, $block_time);
// Engellenen IP'ye süreyi belirten mesajı göster
wp_die('Aşırı istek nedeniyle IPniz engellenmiştir. ' . $message);
} else {
set_transient('bfe_request_count_' . $ip, ($request_count ?: 0) + 1, $time_limit);
}
}
add_action('init', 'bfe_ip_rate_limit');
// Yönetici paneline yeni bir sayfa ekleyelim
function bfe_admin_menu() {
add_options_page(
'Engellenen IP\'ler',
'Engellenen IP\'ler',
'manage_options',
'bfe-blocked-ips',
'bfe_blocked_ips_page'
);
}
add_action('admin_menu', 'bfe_admin_menu');
// Engellenen IPleri listeleyen ve kaldırma imkanı sunan sayfa
function bfe_blocked_ips_page() {
if (!current_user_can('manage_options')) {
wp_die('Bu sayfaya erişim izniniz yok.');
}
// Engellenen IPleri al
$blocked_ips = get_option('bfe_blocked_ips', []);
// IPyi kaldırma işlemi
if (isset($_POST['unblock_ip'])) {
$ip_to_remove = sanitize_text_field($_POST['unblock_ip']);
bfe_unblock_ip($ip_to_remove);
echo '<div class="updated"><p>' . esc_html($ip_to_remove) . ' adresi engellenen IP listesinden kaldırıldı.</p></div>';
}
?>
<div class="wrap">
<h1>Engellenen IP Adresleri</h1>
<table class="widefat">
<thead>
<tr>
<th>IP Adresi</th>
<th>İşlem</th>
</tr>
</thead>
<tbody>
<?php if (!empty($blocked_ips)): ?>
<?php foreach ($blocked_ips as $ip): ?>
<tr>
<td><?php echo esc_html($ip); ?></td>
<td>
<form method="post">
<input type="hidden" name="unblock_ip" value="<?php echo esc_attr($ip); ?>">
<button type="submit" class="button button-primary">Kaldır</button>
</form>
</td>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td colspan="2">Şu anda engellenmiş IP bulunmamaktadır.</td>
</tr>
<?php endif; ?>
</tbody>
</table>
</div>
<?php
}
?>kurulum destek için özelden veya whatsaptan ulaşabilirsiniz