IP + Path + Header
IP + Path + Header siyosati - Honeypot WAF’dagi eng tezkor va birinchi bajariladigan himoya qatlami.
Bu siyosatning asosiy vazifasi: aniq tarmoq manbasi (IP), so‘rov manzili (Path) yoki so‘rov sarlavhalari (Header) orqali tahdidni tezda aniqlash va to‘xtatish.
1. Qamrov (Scope)
IP
Aniq IP yoki tarmoq segmenti (192.168.1.1, 10.0.0.0/24).
Path
HTTP so‘rov yo‘li (/admin, /login, /api/v1/secure/*).
Header
HTTP sarlavhalari (User-Agent, Referer, X-Forwarded-For, Content-Type, va boshqalar).
Siyosat bu uch elementdan birini yoki ularning kombinatsiyasini tahlil qiladi. Agar shart mos kelsa, WAF darhol mos action’ni ishga tushiradi.
2 Domen tanlash
Jarayonning birinchi bosqichida siz qoida qaysi domen uchun amal qilishini tanlaysiz.
“Domenni tanlang” maydonida faol domenlar ro‘yxati chiqadi.
Har bir domen nomining yonida uning holati ko‘rsatiladi (masalan:
honeypot.uz (active)).Tanlangan domen uchun yaratilgan qoida faqat shu domen trafikiga ta’sir qiladi.

🧩 Agar sizda bir nechta domen bo‘lsa, har biri uchun alohida siyosat yaratish tavsiya etiladi.
3 Qoida nomini belgilash
Keyingi bosqich — qoida uchun anliq nom berish.
Qoida nomi
Unikal identifikator (admin_block_rule, bot_challenge, internal_allow_v2 kabi) bunda xoxishga ko'ra istalgancha yozish mumkun ammo maksimal uzunlik soniga ega.
Qoida turi
Qaysi asosda tekshiriladi (IP, Path, Header, ASN, Country, Rate limit, Cookie, Body).
Tavsiya: Qoida nomini qisqa, ammo mazmunli qilib belgilang. Masalan:
ip_block_cpanelheader_ua_sqlmapredirect_korea_block
4 Amal (UNDA…) - shart va harakatni aniqlash
Bu eng muhim qism. Bu yerda siz aniqlangan so‘rovga qanday javob qaytarilishini belgilaysiz.
🟥 Bloklash
(403)
So‘rovni darhol to‘xtatadi va “Forbidden” javobi yuboradi.
🟦 Challenge
(JS yoki CAPTCHA)
Foydalanuvchi sinovdan o‘tadi, bot to‘xtaydi.
🟩 Ruxsat berish
(200)
Trafikga ruxsat beradi, qoida faqat o‘lchov sifatida.
🟨 Faqat loglash
(0)
Hech narsa bajarilmaydi, faqat yozuvga olinadi.
⬛ Drop (444)
TCP darajada so‘rovni sukut bilan uzadi.
Qattiq block
🌀 Yo‘naltirish
(301/302)
So‘rovni boshqa manzilga buradi (/notice yoki redirect.honeypot.uz).
“Drop” va “Block” — eng keskin; “Log only” - eng yumshoq harakat.
5 Maqsadni aniqlash (Condition / Target)
Bu bosqichda qoidaning qaysi manzil yoki IP diapazonga nisbatan ishlashini aniqlaysiz.
Maqsad maydoniga IP yoki tarmoq diapazonini yozing:
192.168.1.100→ bitta IP10.0.0.0/24→ butun tarmoq
Agar siz Path yoki Header asosidagi siyosat yaratayotgan bo‘lsangiz, “Maqsad” maydoni
/pathyokiUser-Agentqiymatlari bilan to‘ldiriladi.
6 HTTP metodlarini tanlash
Qoida faqat tanlangan HTTP metodlarga ta’sir qiladi.
GET
Sahifa yoki resursni olish.
POST
Ma’lumot yuborish (formalar, API so‘rovlar).
PUT / PATCH
Ma’lumotni yangilash.
DELETE
Resursni o‘chirish.
HEAD / OPTIONS
Diagnostika so‘rovlar.
Agar hammasiga amal qilsin desangiz - “Barchasini tanlash” tugmasini bosing.
7 Ustuvorlik (Priority)
Siyosatlar ustuvorlik (prioritet) bo‘yicha ishlaydi. Raqam qanchalik kichik bo‘lsa, qoida shunchalik birinchi ishlaydi.
10
Eng yuqori ustuvorlik (tezkor IP bloklash).
50
O‘rtacha — odatiy siyosatlar uchun.
100+
Past - eng kech siyosatlar.
Default qiymat - 50.
IP manzil bloklash uchun:


Manzil (Path) Bloklash uchun:

IP manzil va Manzil (Path) qoida yaratish asosan ma'lum bir ipni bloklash yoki ma'lum bir ipga ruxsta berish uchun misol:

Header Bloklash uchun:

1 Header Block turlari
BLOCK_CURL_UA
Match:
User-Agent contains "curl"Action:
blockyokidropIzoh: Automatlashtirilgan skriptlarni tezda to‘sish. Misol header:
User-Agent: curl/7.68.0
CHALLENGE_SQLMAP
Match:
User-Agent regex "(?i)sqlmap"Action:
challenge(JS/CAPTCHA) yokiblockagar takrorlansaIzoh: SQL injection scan vositalari (sqlmap) uchun. Misol header:
User-Agent: sqlmap/1.6
DROP_MASSCAN
Match:
User-Agent contains "masscan" OR header "X-Scan-Tool" contains "masscan"Action:
drop(444)Izoh: Port/Kirish skanerlari uchun silent drop. Misol header:
User-Agent: masscan/1.0
LOG_SUSPICIOUS_ACCEPT
Match:
Accept contains "*/*" AND User-Agent contains "python-requests"Action:
log only(sinov) → keyinchallengeIzoh: Bot/skriptlar odatda
python-requests+ permissive Accept yuboradi. Misol:Accept: */*
Har bir qoida quyidagi minimal maydonlarga to‘ldiriladi:
Qoida nomi:
BLOCK_CURL_UAQoida turi:
HeaderMatch:
User-Agent contains "curl"HTTP metodlar:
Barchasi(odatda) yoki faqatGET/POSTAction:
blockUstuvorlik:
10(yuqori)Holat:
FaolyokiLog Only(sinovda)
Last updated