Monday, May 23, 2016

How to repair .dll files of windows system32 ?

open CMD by run as administrator
then , run this command :
                                              sfc   /scannow

How to set windows time with another Compuer ?

open CMD by runas administrator ,
then , run this command :
                                          net    time    /set    \\destinationserver
destinationserver  is  computer name or IP Address of target computer that you wanna  synchronize your time with. for example :

                                         net   time   /set   \\srv1
                                         or
                                         net   time   /set   \\192.168.1.3

How to enable Windows Remote management ?

Open CMD By Run as administrator
then, run this command :
                                           winrm   quickconfig

Friday, May 13, 2016

DNSSEC چیست ؟




DNSSEC این امکان را در اختیار DNS Client قرار می دهد تا بتواند صحت پاسخ DNS Server را به لحاظ جامعیت (integrity) بررسی نماید. بدینگونه که DNSSEC با استفاده از Certificate ، اطلاعات موجود در DNS Zone را بصورت پنهانی امضای دیجیتال مینماید تا بدینوسیله هویت سرور DNS به گونه ای ایمن احراز گردد.
هنگامی که یک DNS Client از یک Zone ایمن شده با DNSSEC در سرور Query می گیرد، سرور حاوی آن Zone دو سری اطلاعات را در اختیار کلاینت قرار می دهد. یکی پاسخ record درخواستی توسط کلاینت، و دیگری امضای دیجیتالی که به کلاینت این امکان را می دهد تا صحت و امنیت ارتباط را توسط آن بررسی نماید.
با بکارگیری DNSSEC ، کلیدهای زیر ایجاد می گردند:
Trust anchor (مرجع اعتماد)
این همان Public Key مخصوص DNS Zone می باشد. Trust anchor برای بررسی صحت رکوردهای DNSKEY استفاده می گردد. هنگامی که در یک AD integrated zone از DNSSEC استفاده می نماییم، Trust anchor بین تمامی DC های Forest ، Replicate می گردد.
Key Signing Key (KSK) (کلید امضای کلید)
این کلید تمامی رکوردهای DNSKEY را امضای دیجیتال می نماید. این کلید در کامپیوتر حاوی رول سرویس DNSSEC key master ایجاد می گردد. بطور کلی، DNSSEC key master به کامپیوتر DNS Server ای گفته می شود که DNSSEC برای اولین بار در کل Forest بر روی آن نصب و پیکربندی گردیده است.
در Server 2012 R2 ، رول key master می تواند برای Zone های file-backed multi-master پیکربندی گردد. و DNSSEC master key می تواند بر رویcryptographic next-generation (CNG) ذخیره گردد که با یک ماژول offline سازگار می باشد.

Zone Signing Key (ZSK) (کلید امضای Zone)
این کلید برای امضای دیجیتال در خصوص اطلاعات Zone  از جمله host record ها بکار می رود. ZSK توسط DNSSEC key master ایجاد می گردد.
هنگامی که یک DNS zone امضای دیجیتال می گردد، تعدادی Resource record ایجاد می گردند که عبارتند از:
Resource Record Signature (RRSIG) record
یکی از اینها، مربوط به هر رکورد خاص می باشد که در DNS zone ذخیره می گردد. هنگامی که از سرور Query گرفته می شود، رکورد RRSIG نیز به همرام رکورد درخواستی برای کلاینت ارسال می گردد.
DNSKEY record
این یک رکورد مخصوص می باشد که این امکان را در اختیار کلاینت قرار می دهد تا Authenticity رکورد RRSIG را بررسی نماید.
Next Secure (NSEC/NSEC3) record
این یک یک رکورد مخصوص می باشد که بررسی می نماید رکوردهایی را که موجود نیستند. بعنوان مثال اگر کلاینتی رکورد dragon.contoso.com را query بگیرد و چنین رکوردی در Contoso.com موجود نباشد، همچنین سرور نیز حاوی DNSSEC باشد، رکورد NSEC برای کلاینت ارسال خواهد گردید.
هنگامی که از DNSSEC استفاده می نماییم، می توانیم با پیکربندی Group Policy مطمئن شویم که کلاینتها فقط رکوردهایی که از Zone خاصی هستند را می پذیرند که فقط توسط رکورد RRSIG مورد بررسی قرار گرفته اند. برای این منظور از Name Resolution Policy Table (NRPT) استفاده     می نماییم که در یک GPO استاندارد واقع گردیده است.­­


­­DNS Socket Pool
این قابلیت موجب می گردد تا attacker ها نتوانند Cache سرور DNS را پر کنند و همچنین نتوانند عملیات Spoofing بر روی DNS انجام دهند. برای انجام یک DNS Spoofing Attack موفق ، Attacker می بایستی پورتی که برای DNS Query استفاده می شود ، و همچنین Transaction ID مربوطه را بداند. Transaction ID بصورت پیش فرض Randomize می شود. Randomize  نمودن Source port احتمال موفقیت آمیز بودن DNS Spoofing Attack را کاهش می دهد. بصورت پیش فرض، در سرور2012 مقدار Socket pool معادل 2500 می باشد. افزایش مقدار Socket pool موجب می شود تا محدودة Randomize کردن Source port بیشتر گردد. از طرفی به منظور اختصاص فقط یک Socket برای DNS Client ، می توانیم با کاهش Socket pool عدد آنرا به صفر نیز برسانیم.
برای انجام این کار، از دستور DNSCMD به فرم زیر استفاده می نماییم:
Dnscmd /config /socketpoolsize 600 è     مقدار 600 را اختصاص داده ایم
­­DNS Cache Locking
یکی از Attack های نفوذگرها ، overwrite کردن رکوردهای Cache شده بر روی DNS Server می باشد. با استفاده از DNS Cache Locking می توانیم تا 100% مقدار عمر Caching رکوردها را (TTL) برای این منظور اختصاص دهیم تا در این مدت زمان امکان overwrite شدن رکوردها وجود نداشته باشد. برای این منظور از دستور زیر در محیط Powershell استفاده می نماییم :
Set-DNSServerCache –LockingPercent 75  è 75% مدت را در بر می  گیرد
Cache Poisoning Attack
نوعی حملة Attacker ها به DNS server می باشد که در طی آن ، Attacker اطلاعات اشتباه را وارد DNS Cache کرده و زمان TTL آنرا نیز بالا می برد. با استفاده از این ترفند، Attacker ها ، کلاینتها را به سمت سرورهای خودشان هدایت می نمایند.
با استفاده از قابلیت DNS Cache Locking ، امکان update نمودن DNS Cache را در درصدی از زمان TTL مربوطه، سلب می نماییم. در حالت پیش فرض ، این مقدار بر روی 100 قرار دارد. یعنی اصلاً امکان update کردن Cache وجود ندار؛ تا زمانی که مدت زمان TTL آن expire شود.
 GlobalName Zone (GNZ)
بواسطة این قابلیت، DNS Server  به query های تک سیلابه نیز پاسخ می دهد. بعنوان مثال، اگر رکوردی FQDN بنام WSUS.Test.com داشته باشیم، با استفاده از GlobalName Zone می توانیم آنرا بصورت تک سیلابه یعنی WSUS خالی ارائه دهیم. دقیقاً همان کاری که Wins Server  انجام می داد. وقتی که استفاده از GlobalName Zone زیاد می شود، از Alias (CNAME) استفاده می نماییم. این قابلیت هم برای IPv4 و هم برای IPv6 استفاده می گردد.  فرمان Powershell برای پیکربندی GNZ :
Set-DnsServerGlobalNameZone
بررسی وضعیت Zone با استفاده از Powershell :
برای این منظور از دستور Get-DnsServerStatistics  استفاده می کنیم و بدین ترتیب موارد زیر بررسی می گردند :
Cache statistics
Database statistics
DNSSEC statistics
Directory services statistics
Error statistics
Master statistics
Memory statistics
NetBios statistics
Packet statistics
Private statistics
Query statistics
Record statistics
Recursion statistics
Secondary statistics
Security statistics
Timeout statistics
Time statistics
Update statistics
WINS statistics
Zone Query statistics
Zone Transfer statistics
Zone Update statistics
فرم دستور :
Get-DnsServerStatistics –ZoneName contoso.com


عیب یابی DNSSEC  با استفاده از Powershell   :
Resolve-DnsName    –DnssecOk

DS record  :
به منظور Sign نمودن رابطة میان Parent Domain  و  Child Domain  بکار می رود.

Zone Signing  :
فرآیند Zone Signing  موجب می گردد تا یک DNS Zone این قابلیت را داشته باشد که          DNS Sign Response  ارائه دهد. سرور 2012 امکان online signing را پشتیبانی می نماید. در طی فرآیند Zone signing ، کلیدها ایجاد می گردند و برای امضا نمودن RR ها مورد استفاده قرار        می گیرند.
هنگامی که یک Zone  امضاء می گردد، برای هر RR از جمله A record و CNAME ، یک RRs ایجاد می گردد. RRs یا همان RRSIG record ، حاوی امضای دیجیتالی می باشد که برای validate نمودن RR ها استفاده می شود.
همچنین رکوردهای Next Secure (NSEC) و NSEC3 برای ارسال پاسخ منفی به کلاینتها استفاده می شوند. این اتفاق زمانی رخ می دهد که رکورد RRs درخواستی در Zone  مربوطه وجود ندارد.
از مزایای NSEC3 این است که از بروز حملة Zone walking توسط Attacker ها جلوگیری می کند. فرآیند Zone walking بدین قرار می باشد که تک تک رکوردهای RRs در یک Zone توسط Attacker مورد بررسی قرار  می گیرد. بعلاوه، هرکدام از رکوردهای NSEC و NSEC3 ، رکورد RRSIG مربوط به خودشان را دارا می باشند.
Description
Resource Record
برای Secure سازی ارتباط Delegation با Parent zone بکار می رود.
DS
در Parent zone با رکورد DNS جفت می شود تا Delegation را Secure نماید. همچنین Public key مربوط به zone را ذخیره می نماید.
DNSKEY
پاسخ منفی را برای رکوردهای RRs که موجود نمی باشند Secure می نماید.
NSEC (Next Secure)
همان کار NSEC را انجام می دهد به اضافة اینکه از Zone walking نیز جلوگیری می کند.
NSEC3 (Next Secure 3)
امضای مربوط به RRs های مشخصی که دارای NSEC ویا NSEC3 هستند را در بر دارد.
RRSIG (Resource Record Signature)

فررآیند Sign نمودن یک Zone از طریق رایت کلیک نمودن بر روی Zone و ورود به منوی DNSSEC و اجرای فرمان Sign the zone انجام می شود. این عمل از طریق Powershell و با استفاده از فرمان Invoke-DnsServerZoneSign قابل اجرا ی باشد.

Key Master
در رابطه با بحث DNSSEC ، به سروری گفته می شود که مسئول مدیریت و نگهداری کلیدهای امضای Zone ها می باشد.  برای Transfer نمودن Key master ، وارد Properties مربوط به DNSSEC شده و از زبانة Key master این کار را انجام می دهیم. و یا اینکه از دستور Reset-DnsServerZoneKeyMasterRole در Powershell استفاده می کنیم.
بطور کلی برای امضای Zone از 2 کلید استفاده می شود.  KSK برای امضاء نمودن ZSK استفاده می گردد. ZSK برای امضا نمودن RRs های باقی مانده در Zone استفاده می گردد. از نقطه نظر DNSSEC ، هیچ تفاوت عملکردی میان این دو کلید وجود ندارد. به عبارتی دیگر، می توانیم از یک کلید مشترک برای هر دو عمل مربوطه استفاده نماییم. اما مزیت استفاده از دو کلید در این است که به هنگام نیاز به تعداد زیادی کلید، این درخواستها بین دو کلید تقسیم می گردد.

Key  Rollover
به فرآیند تعویض کلیدها به هنگام ایجاد امضای دیجیتال گفته می شود. از آنجایی که این کلید بحث integrity ساختار DNS را تأمین می کند، این موضوع حائز اهمیت است که در طی فرآیند،کلیدها عوض شوند. اگر بخواهیم این ماجرا را به موضوع دیگری تشبیه کنیم، می توانیم نیاز به تعویض پسورد کاربران را مثال بزنیم. مشکل قضیه اینجاست که کلید موجود برای امضای RRs هایی استفاده می شود  که بین سرورهای دیگر Replicate می گردد، به Parent zone داده می شود، و یا اینکه در DNS Server دریافت کننده Cache می شود. به منظور پیشگیری از این مسئله که به هنگام query گرفتن کلاینتها، ناهماهنگی بین کلیدها بوجود نیاید، از دو کلید استفاده می شود تا با تعویض پی در پی کلیدهای DNSSEC، مزاحمتی در روند پردازش Name resolution ایجاد نشود. فرآیند Sign کردن Zone توسط ZSK موجب دو برابر شدن حجم zone می گردد. چونکه هر RR باید توسط ZSK مربوطة خود Sign شود. در خصوص KSK Rollover ، فقط مراودة رکورد DNSKEY باید Duplicate گردد و به Parent zone داده شود تا رکوردهای آن Update گردد.
فرآیند key pre-publication نیز دو کلید ایجاد می نماید. اما بعد از آن روند پردازشی تغییر خواهد نمود. زمانی که ZSK استفاده می شود، فقط رکورد DNSKEY داپلیکیت شده است. پس از آنکه عملیات Rollover نمودن کلید انجام گرفت، Zone توسط یک کلید دوم Sign گردیده است. نتیجة اصلی عملیات تا زمانی که امضای Cache شده expire شود باقی خواهد ماند. در موارد KSK ، key pre-publication رکورد DNSKEY را Duplicate نموده و رکورد DS مربوطه را برای Parent zone منتشر می نماید. DS record  اصلی حذف شده و رکورد KSK جدید وارد سرویس می شود.

Enable نمودن Automatic Rollover در خصوص KSK و ZSK
این کار از قسمت DNSSEC Properties از زبانة KSK و ZSK فعال می گردد.

NRPT (Name Resolution Policy  Table)
NRPT تعیین می نماید که نحورة فرآیند Name Resolution برای کلاینتهای پلتفرم 2008 به بالا ( ویندوز ویستا و سرور2008 به بعد) به چه شکلی باشد. با مدیریت NRPT توسط Group Policy ، این امکان به ما داده می شود تا رفتار DNS client را در خصوص Domain name و wildcard ها مشخص نماییم.  هنگامی که Validation اجبار می شود، و هنگامی که ترافیک بین DNS client و DNS server توسط IPsec باید encrypt گردد، بواسطة NRPT می توانیم نحوة استفاده از DNSSEC را در یک شبکه تعیین نماییم.
در پیکربندی NRPT چندین روش وجود دارد که عبارتند از :
Description
Type
برای تعیین Domain مقصد بکار می رود. از جمله Child و یا Top level domain
Suffix
فقط بر روی query هایی که برای یک نام مشخص اشاره دارند تأثیر می گذارد. بعنوان مثال server1 را به server1.test.com یا server1.mft.net تبدیل نی نماید.
Prefix
فقط برای یک Host مشخض اعمال شده و برای یک کامپیوتر مشخص config می شود
FQDN
این امکان را می دهد تا بتوانیم یک NRPT را برای reverse lookup zoon در یک IPv4 subnet پیکربندی نماییم.
Subnet (IPv4)
این امکان را می دهد تا بتوانیم یک NRPT را برای reverse lookup zoon در یک IPv6 subnet پیکربندی نماییم.
Subnet (IPv6)
Policy پیش فرض را config می نماید. که بر روی تمام DNS query هایی که با policy های دیگر همگون نیستند اعمال خواهد شد.
Any