منع التصفح الا عن طريق الكلاود فلير
تحية طيبة
في اغلب الاحيان يتم تخطي الكلاود فلير بعد طرق شائعة . .
وهنا نقصد بالتخطي هو الكشف عن الاي بي الحقيقي للخادم الويب.
الذي من خلال يمكن تخطي حماية جدار الحماية للويب.
وسنقسم منع التخطي حتى لو تم كشف عن الاي بي لطريقتين
الطريقة الاولى هي لاصحاب الخوادم
بتنفيذ هذا الكود لتوزيعات الينكس
centos
#!/bin/bash
IPS=(
"103.21.244.0/22"
"103.22.200.0/22"
"103.31.4.0/22"
"104.16.0.0/12"
"108.162.192.0/18"
"131.0.72.0/22"
"141.101.64.0/18"
"162.158.0.0/15"
"172.64.0.0/13"
"173.245.48.0/20"
"188.114.96.0/20"
"190.93.240.0/20"
"197.234.240.0/22"
)
for IP in "${IPS[@]}"
do
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='$IP' port port='80' protocol='tcp' accept"
done
# reload firewall rules
sudo firewall-cmd --reload
ubuntu
#!/bin/bash
IPS=(
"103.21.244.0/22"
"103.22.200.0/22"
"103.31.4.0/22"
"104.16.0.0/12"
"108.162.192.0/18"
"131.0.72.0/22"
"141.101.64.0/18"
"162.158.0.0/15"
"172.64.0.0/13"
"173.245.48.0/20"
"188.114.96.0/20"
"190.93.240.0/20"
"197.234.240.0/22"
)
# enable ufw
sudo ufw enable
for IP in "${IPS[@]}"
do
sudo ufw allow from "$IP" to any port 80 proto tcp
done
# reload ufw rules
sudo ufw reload
windows server
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
$IPS = @(
"103.21.244.0/22",
"103.22.200.0/22",
"103.31.4.0/22",
"104.16.0.0/12",
"108.162.192.0/18",
"131.0.72.0/22",
"141.101.64.0/18",
"162.158.0.0/15",
"172.64.0.0/13",
"173.245.48.0/20",
"188.114.96.0/20",
"190.93.240.0/20",
"197.234.240.0/22"
)
foreach ($IP in $IPS) {
$command = "New-NetFirewallRule `
-DisplayName 'Allow incoming TCP traffic on port 80 from $IP' `
-Direction Inbound `
-Protocol TCP `
-Action Allow `
-LocalPort 80 `
-RemoteAddress $IP"
Invoke-Expression $command
}
الطريق الثانية وهي لاصاحب الاستضافة العادية
عن طريق htaccess
<RequireAll>
Require all granted
Require ip 103.21.244.0/22
Require ip 103.22.200.0/22
Require ip 103.31.4.0/22
Require ip 104.16.0.0/12
Require ip 108.162.192.0/18
Require ip 131.0.72.0/22
Require ip 141.101.64.0/18
Require ip 162.158.0.0/15
Require ip 172.64.0.0/13
Require ip 173.245.48.0/20
Require ip 188.114.96.0/20
Require ip 190.93.240.0/20
Require ip 197.234.240.0/22
</RequireAll>
or
Order Deny,Allow
Deny from all
Allow from 173.245.48.0/20
Allow from 103.21.244.0/22
Allow from 103.22.200.0/22
Allow from 103.31.4.0/22
Allow from 141.101.64.0/18
Allow from 108.162.192.0/18
Allow from 190.93.240.0/20
Allow from 188.114.96.0/20
Allow from 197.234.240.0/22
Allow from 198.41.128.0/17
Allow from 162.158.0.0/15
Allow from 104.16.0.0/13
Allow from 104.24.0.0/14
Allow from 172.64.0.0/13
Allow from 131.0.72.0/22
او تستطيع من خلال وضع هذا كود في ملف config للتطبيقات المعمولة بالغة php
$ip = $_SERVER[‘REMOTE_ADDR’];
$ipRanges = array(
‘173.245.48.0/20’,
‘103.21.244.0/22’,
‘103.22.200.0/22’,
‘103.31.4.0/22’,
‘141.101.64.0/18’,
‘108.162.192.0/18’,
‘190.93.240.0/20’,
‘188.114.96.0/20’,
‘197.234.240.0/22’,
‘198.41.128.0/17’,
‘162.158.0.0/15’,
‘104.16.0.0/13’,
‘104.24.0.0/14’,
‘172.64.0.0/13’,
‘131.0.72.0/22’
);$allowed = false;
foreach ($ipRanges as $range) {
if (ip_in_range($ip, $range)) {
$allowed = true;
break;
}
}if ($allowed) {
// Allow access to content for the client’s IP address
} else {
// Deny access to content for the client’s IP address
}function ip_in_range($ip, $range) {
if (strpos($range, ‘/’) == false) {
$range .= ‘/32’;
}
list($subnet, $bits) = explode(‘/’, $range);
$ip = ip2long($ip);
$subnet = ip2long($subnet);
$mask = -1 << (32 – $bits);
$subnet &= $mask;
return ($ip & $mask) == $subnet;
}
ملاحظات
1- تستطيع اضافة اي بي الخاص بك من اجل تصفح عن طريق الايبي
2- انوه الى امر ممهم ان الطريق htaccess او الكود php لايعمل مع mod_cloudeflare والسبب ان المود يقوم بجعل الايبيات الحقيقة ظاهرة للباك اند.
3- هذا الطريق تعتمد على اساس ان التصفح يتم عن طريق شبكة الكلاود فلير حصرا