ماژول سیاست DNS (v2)
این نمونهٔ Linux با C ABI v2 روش کنترل پرسوجو و جایگزینی پاسخ DNS را نشان میدهد. با libresolv پیامهای DNS را تجزیه میکند و پاسخ تغییرکرده را در بافر متعلق به ماژول ذخیره میکند.
رفتار نمونه
| نام پرسوجو | نتیجه |
|---|---|
allow.test | زنجیرهٔ هوک پرسوجو را تمام میکند و پرسوجوی عادی DNS ادامه مییابد. |
block.test | بدون پرسوجو از سرور بالادستی، REFUSED برمیگرداند. |
drop.test | بدون پرسوجوی بالادستی یا پاسخ DNS، درخواست را دور میاندازد. |
redirect.test | برای A مقدار 192.0.2.42 و برای AAAA مقدار 2001:db8::42 را با TTL برابر با 60 ثانیه برمیگرداند. |
rewrite.test | آدرس رکورد A در پاسخ بدون امضا را به 203.0.113.7 و TTL را به 60 ثانیه تغییر میدهد. |
| سایر نامها | ماژول بعدی و پردازش عادی ادامه مییابد. |
سرور DNS آزمایشی را طوری تنظیم کنید که برای allow.test و rewrite.test پاسخ بدهد. نمونه، رکورد بالادستی ایجاد نمیکند. اگر پاسخ rewrite.test رکورد A مربوط را نداشته باشد یا رکورد امضا داشته باشد، بدون تغییر بازگرد انده میشود.
ALLOW فقط زنجیرهٔ فعلی هوک را تمام میکند. قواعد دامنه یا بررسی روش ارتباط را دور نمیزند و هوک پاسخ ممکن است نتیجه را تغییر دهد. قواعد عملیات DNS را ببینید.
دانلود و ساخت
policy.c و mudfish_dns_module.h را در یک پوشه دانلود کنید. در راهنمای هدر میتوانید هدر کامل را در مرورگر بخوانید.
در Linux، کامپایلر C، کتابخانهٔ استاندارد C و هدرهای توسعهٔ libresolv را نصب کنید. در پوشهٔ دانلود این فرمان را اجرا کنید:
cc -std=c11 -shared -fPIC -Wall -Wextra -Werror -I. \
policy.c -lresolv -o policy.so