مقاله درباره امنیت شبکه
دسته بندی | کامپیوتر و IT |
بازدید ها | 40 |
فرمت فایل | doc |
حجم فایل | 64 کیلو بایت |
تعداد صفحات فایل | 76 |
فصل اول
مقدمه
بدون شک زندگی امروز بشر از مقولهی ارتباط تفکیک ناپذیر است. ارتباطات به حدی فاصلههای دور را به هم نزدیک کرده است که از دنیای بزرگ ما به نام دهکدهی جهانی یاد میشود. ارتباطات آنقدر با زندگی روزمرهی ما عجیبن شده است که نمیتوانیم زندگی بدون آن را حتی تصور کنیم در حالیکه تا قرنی پیش مبادلهی خبر به روزها زمکان نیاز داشت. این کار اکنون تقریباً آنی انجام میشود. مخابرات، اینترنت،وسایل ارتباط جمعی نمونههایی از ارتباطات امروز ما هستند که تبادل اطلاعات و انجام امور روزمرهی ما را با سهولت بیشتر و هزینهی کمتر ممکن ساخته است.
از طرف دیگر گسترش ارباطات شبکهای و نفوذ آن به دور دستترین نقاط جهان باعث شده است زمینهی سوء استفاده افراد سودجو و شرور هم فراهم شود. در حالی که هم اکنون انجام معاملات شبکههای کامپیوتری و اینترنت قابل انجام است. اما انجام این امور بدون درنظر گرفتن تمام جوانب امنیتی ممکن است باعث ضررهای جبرانناپذیری گردد بنابراین آشنایی با راهکارهای امنیتی در استفاده از شبکهها کامپیوتری نیازی بس حیاتی است.
در این پایان نامه سعی شده به موضوع و امنیت اطلاعات در شبکه از جنبه های مختلف پرداخته شود . ساختار مطالب گردآوری شده به شکل زیر است:
در فصل دوم به تعریف مفاهیم شبکه ، تقسیم بندی شبکه ، شباهتها و تفاوتها و مزایای آن خواهیم پرداخت .
فصل سوم بررسی سرویس های امنیتی در شبکه و در فصل چهارم اصول رمزنگاری مطرح می شود و در انتها در فصل پنجم امضاهای دیجیتالی ارائه شده است .
چکیده:
امروزه در عصر اینترنت و شبکههای کامپیوتری استفاده از سیستم عامل مناسب و نحوهی بکارگیری سیستم عامل در شبکه و ترفندهای سیستم عاملی برای جلوگیری از ضررهای ناشی از استفاده از شبکه مانند هکرها و ویروسهای مخرب و… بسیار شایان توجه است. به همین خاطر این پروژه به بررسی امنیت سیستم عاملهایی که مورد استفادهی بسیاری از کاربران در سراسر جهان قرار میگیرد میپردازیم.
این سیستم عاملها عبارتند از:
1ـ سیستم عامل یونیکس unix
2ـ سیستم عامل ویندوز NT
3ـ سیستم عامل ویندوز 2000
خلاصه:
ـ بررسی امنیت یونیکس و تنظیم سیستم به همراه راهکارهای مکمل
ـ امنیت ویندوز NT به علاوهی تنظیمات رجیستری و پیکربندی سیستم
ـ امنیت ویندوز 2000 و تنظیم و پیکرهبندی سیستم
ـ مقایسهی امنیت یونیکس و ویندوز
ـ بررسی لوگ فایلها و جستجوی علائم مشکوک در سیستم عاملهای فوق
ـ مدیریت کاربر و مدیریت سیستم
در تاریخ اینترنت ، سیستمهای یونیکس سابقه بیشتری دارند بطوریکه بیشتر سرویسهای موجود روی شبکه توسط آن ارائه میشد. وقتی هکر و هک کردن بصورت مشکلی روی اینترنت ظاهر شد، سیستم یونیکس بیتشرین توجه را به سوی خود جلب کرد. تا امروز استفاده از سیستم یونیکس روی اینترنت متداول ور ایج است و لازم است برای جلوگیری از هک شدن بدرستی پیکرهبندی شود.
تنظیم سیستم
بطور معمول وقتی سیستم یونیکس ساخته میشود، دارای آسیبپذیریهایی است. اما با استفاده از برنامههای مکمل[1] و تغییر در فایلهای پیرکهبندی میتوان آسیبپذیریهای اولیه را تصحیح کرد. در بخشهای بعدی به بعضی از محتملترین معضلات موجود و چگونگی تصحیح آنها تشریح شده است.
فایلهای Startup
سیستم یونیکسس با استفاده از فایلهای startup، خود را به هنگام راهاندازی پیکرهبندی میکند. بسته به اینکه نسخة یونیکس چه باشد فایلهای startup در مکانهای مختلف قرار میگیرد. در سیتم عامل solaris فایلهای startup در /etc/rc2.d پیدا میشود و در سیتمعامل Linux آنها را در /etc/rc.d/rc2.d خواهید یافت.
در فایلهای startup تعدادی سرویس راهاندازی میشود. تعدادی از این سرویسها (همانند شبکه، نصب فایلهای سیستمی و شروع واقعهنگاری) برای عملکرد سیستم لازم است به همین دلیل باید به آنها اجازه داده شود فعال بمانند. در مقابل سرویسهای دیگر ضروری نیست و بسته به روش استفاده از آنها اجازه داده شود فعال بمانند. در مقابل سرویسهای دیگر ضروری نیست و بسته به روش استفاده از سیستم، نباید راهاندازی شوند. برای جلویگری از راهاندازی سرویس میتوان براحتی نام فایل را عوض کرد. مطمئن شوید نام جدید فایل با “S” یا “k” شروع نشود. قرار دادن علامت راهنمای “.” در اسم فایل خوب کمار میکند (و علاوه بر این فایل را از دید مخفی میکند بنابراین با فایلی که عملیاتی سرویسهایی که عموماً توسط فایلهای startup راهاندازی میشود عبارتند از:
- Sendmail
- Roued
- NFS
- RPC
- Web service
- Inetd
- NTP
با مراجعه به فایلهای start up سرویسهای غیر ضروری را تعیین کنید. برای شناسایی سرویسهای غیر ضروری بخش بعد را ببینید.
- Chargen
- Rusersd
- Rquotad
- Sprayd
- Walld
- Rexd
- Routed
علاوه بر این اگر از سرویسهای SNMPD و Daytime استفاده نمیشود خاموش شوند. Daytime توسط بعضی سیستمهای همزمانکننده زمان[2] استفاده میشود و SNMPD برای مدیریت سیستم کاربرد دارد. احتمالاً توجه دارید که در فایل inetd.conf، سرویسهای Telnet و FTP در حالت عادی روشن هستند. این دو پروتکل امکان عبور password, user ID را بصورت واضح از طریق شبکه فراهم میکنند. این امکان وجود دارد که برای محافظت password، از نسخههای رمز شده این پروتکلها استفاده شود. توصیه میشود روی Telnet از (Secure Shell)SSH استفاده شود. برخی نسخههای SSH وجود دارد که برای انتقال فایل از برنامه (Secure Copy) SCP استفاده میکند.
Network File System:NFS
ممکن است سازمان شما از NFS استفاده کند. اما اگر به آن نیازی نیست سرویس NFS را روی سیستم خاموش کنید. از NFS برای نصب فایل سیستمی از روی یک کامپیوتر به روی کامپیوتر دیگر استفاده میشود.[3] اگر NFS بدرستی پیکرهبندی نشود این امکان هست که برخی افراد به فایلهای حساس دس پیدا کنند. برای پیکرهبندی درست NFS باید فایل /etc/dfs/dfstab را ویرایش کنید.
توجه: فرستادن فایلهای سیستمی به خراج از سازمان کار عاقلانهای نیست.
سیستم DMZ
از سیستم یونیکس میتوان در DMZ و به عنووان سرور وب، سرور پست الکترونیک و سرور DMZ استفاده کرد. در اینصورتلازم است این سیستم نسبت به حالتی که فقط بصورت داخلی استفاده میشود با امنیت بیشتری پیکرهبندی شود. احتمال اینکه روی این قبیل سیستمها به فایلهای startup حذف کرد.
سرور و کامپیوتر رومیزی
برخی سازمانها از یونیکس هم بصورت سرور هم بصورت سیستم رومیزی استفاده میکنند. وقتی یونیکس بصورت سیستم رومیزی استفاده میشود بگونهای پیکرهبندی میشود که X Windows را اجرا کند. در سیستم Solaris استفاده از Tooltalk هم لازم است. (Tooltalk یک برنامه RPC است است که برای کنترل desktop بصورت گرافیکی استفاده میشود). این سرویسها روی سرور لازم نیست. به طریقه مشابه روی کامپیوتر رومیزی هم سرویس DNS لازم نمیشود. اگر از سیستم یونیکس استفاده میشود لازم است برای سرور و کامپیوتر رومیزی از دو پیکرهبندی متفاوت استفاده کنید.
توجه: روی سیستم ٍخمشقهس، برنامه خخمفشمن از طریق فایل هدثفی.زخدب کنترل میشود. برای از کار انداختن آن سطر زیر را از حالت توضیحی خارج کنید.
“10083/1 tli rpcltcp wait root / usr / dt / bin / rpc. Ttdbserverd / user / dt/bin/rpc.ttdbserverd.”
استفاده از TCP Wrappers
اگر از Telner و FTP استفاده میکنید میتوانید برای امنیت بیشتر از Wrappers TCP (که میتوانید آنرا از ftp://ftp.porcupine.org/pub/security بدست آورید) ساتفاده کنید. کلمه wrapps به معنای پوشاندن و مخفی کردن است، به همین دلیل wrappers TCP با پوشاندن سرویسهای FTP و Telnet، کنترل دسترسی و واقعهنگاری بیشتری را فراهم میکند. به منظور استفاده از TCP Wrappers لازم است فایل inetd.conf بگونهای اصلاح شود که سطرهای ftp و telnet بصورت زیزر باشد:
ftp system tep ftp nowait root/ usr/local/bin/ecpd/user/sbin/in.ftpd
telnet stream tcp nowait root/user/local/bin/tcpd/user/sbin/in.telnetd
سطرهای پیکرهبندی فوق باعث میشود هر وقت کسی سعی کند به سیستم telnet یا FTP کند، inetd سرویس TCP Wrappers(tcpd) را فراخوانی کند.
توجه: از TCP Wrappers میتوانند همانند سرویسهای telnet و FTP رویس سرویسهای دیگر مانند POP و IMAP هم استفاده کرد. البته همانند سطرهای فوق تغیرات مناسب لازم است.
TCP Wrappers قادر است دسترسی شبکهها و کامپیوترهای خانگی خاص را به سرویس telnet یا FTP مسدود کند یا اجازه آن را صادر کند. فایلهایی که برای این پیکرهبندی استفاده میشوند عبارتند از ./etc/hosts.allow , /etc/hosts.deny در ادامه مثالی از این فایلها آمده است:
:/
فایلهای زیر مثالی از فایلهای پیکرهبندی TCP Wrappers میباشد:
Hosts.allow:
#Allow telnets from my internal network910.1.1.x)
in.telnet:10.1.1.0/255.255.255.0
#Allow ftp from the world
in.ftpd:0.0.0.0/0.0.0.0
hosts.deny:
#Deny telnets from anywhere else
in.telnetd:0.0.0.0/0.0.0.0
ابتدا فایل hosts.allow ارزیابی میشود و پس از آن hosts.deny. بنابراین ابتدا تمام سیستمهایی را که مجاز به استفاده از سرویسهای مختل هستند پیکرهبندی نمایید و پس از آن هر چیز دیگری را در hosts.deny ممنوع کنید.
توجه: لازم است در پیکرهبندی واقعهنگاری هم تغییراتی دهید تا TCP Wrappers بتواند اطلاعات را روی سیستم ثبت کند. نحوه این تغییرات را در بخش «لوگ فایلها» در ادامه همین فصل خواهید دید.
فایلهای پیکرهبندی سیستم
با اعمال تغییراتی در فغایلهای پیکرهبندی سیستم میتوان امنیت کلی سیستم را افزایش داد. دامنه این تغییرات از پیامهای اخطاردهنده تا حفاظت در برابر سرریز شدن بافر قابل انجام است. انجام هر تغییری در پیکرهبندی باید با سیاست امنیتی سازمان مطابقت داشته باشد. علاوه بر این بخاطر داشته باشید مکان قرارگیری فایلهای پیکرهبندی در نسخههای مختلف یونیکس با هم فرق دارد. با استفاده از کتابچههای راهنمایی که از نسخه خاص یونیکس در اختیار دارید مطمئن شوید تغییرات اعمالی با نسخه یونیکس مطابقت و تناسب دارد.
پیامهای اخطاری یا Banners
با استفاده از پیامهای اخطاری، قبل از آنکه به کاربری اجازه ورود (یا llogin) داده شود یک جمله حقوقی برای او نمایش داده میشود. زبان پیامهای اخطاری باید همان زبانی باشد که بخش حقوقی سازمان تصویب کرده است.
پیام login در /etc/motd ذخیره شده است.(نام فایل motd مخفف massage of the day است). اما این پیام زمانی نمایش داده میشود که کاری برای ورود به سیستم اقدام کرده باشد لذا قبل از آن نمایش داده نمیشود. لازم است قبل از آن که کاربر وارد شود اکثر تذکرات حقوقی برایش نماش داده شود.
به منظور نمایش پیام قبل از ورود کاربر روشی وجود دارد که در اینجا به آن اشاره میشود. تذکرات لازم قبل از ورود در سیستم Soaris در /etc/default/telnet ذخیره شده است. میتوان برای FTP هم پیام اخطاری ایجاد کرد. این کار با ویرایش فایل /etc/default/ftpd قابل انجام است. با اضافه کرده سطری شبیه آنچه در ادامه آمده است میتوان یک پیام اخطاری ایجاد کرد.
BANNER=”/n/n
در سطر فوق “n” دلالت بر سطر جدید دارد. اما شما میتوانید از کاراکترهای کنترلی موردنظر خودتان استفاده کنید تا پیام نمایش داده شود.
در سیستم linux از دو فایل /etc/issue.net و /etc/issue برای پیامهای اخطاری Telnet استفاده میشود. فایل issue برای ترمینالهایی که بطور مستقیم وصل شدهاند استفاده میشود. Issue.net زمانیکه شخص از طریق شبکه اقدام به telnet میکند استفاده میشود. متأسفانه ویاریش فایلهای مذکور باعث ایجاد پیامهای اخطاری نمیشود. چون هر بار که کامپیوتر بوت شود این فایلها نیز مجدداً ایجاد میشود. اما میتوانید اسکریپت راهاندازی که باعث ایجاد این فایل میشود را اصلاح کنید. مجدداً ایجاد میشود. اما میتوانید اسکریپت راهاندازی که باعث ایجاد این فایل میشود را اصلاح کنید.
فایلهای issue و issue.net در اسکریپت راهاندازی /etc/rc.d/rc.local قرار دارند. برای آنکه از ایجاد مجدد این فایل جلوگیری شود، سطحهای زیر را از دو حالت توضیحی خارج کنید.
#Tis will overwrite/etc/issue at every boot. So, make any changes you
#want to make to/etc/issue here or you will lose them when hou reboot.
Echo “l”>/etc/issue
Echo”$R”>>/etc/issue
Echo “Kernel $(uname-r) on $a $SMP$ (uname-m)”>>/etc/issue
بعد از انجام این کار میتوانید فایلهای /etc/issue و /etc/issue.net را با متن حقوقی مناسب ویرایش نمایید.
تنظیم کلمه عبور (passwoed)
در سیستم یونیکس به منظور مدیریت صحیح کلمه عبور سه مرحله وجود دارد:
- تنظیم درست نیازهای کلمه عبور
- ممانعت از ورود بدون کلمه عبور
- ایجاد کلمه عبور مناسب بطوریکه نیازها را در بر بگیرد.
تنظیم درست نیازهای کلمه عبور طول کلمه عبور و عمر آن از جمله نیازهایی است که با ویاریش یک فایل پیکرهبندی در سیستم یونیکس تعیین میشوند. در Solaris این فایل، /etc/default/passwd است. این فایل دارای سطرهای زیر می باشد و بر طبق سیاست امنیتی سازمانتان ویرایش میگردد.
#ident “@(#)passwd.dfl 1.3 92107114 SMI”
MAXWEEKS=7
MINWEEKS=1
PASSLENGTH=8
توجه کنید اعدادی که جلوی MAXWEEK و MINWEEK وارد میکنید، حداقل و حداکثر طول عمر کلمه عبور برحسب هفته میباشد. جلوی PASSLENGTH طول کلمه عبور را برحسب تعداد کاراکتر وارد نمایید.
در سیستم Linux نیازهای کلمه عبور در فایل /etc/login.defs قرار داده شده است. سطرهای زیر که مربوط به این فایل است تنظیمات قابل انجام را نشان میدهد.
#Password aging controls:
#
#PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS _ MIN _ DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum accentable p;assw9rd length.
# PASS_WARN_AGE Number of days warning given before a password expires.
PASS_MAX_DAYS 45
PASS_MIN_DAYS 1
PASS_MIN_LEN 8
PASS_WARN_AGE 7
به خاطر داشته باشید در سیستم Linux حداقل و حداکثر طول عمر برحسب روز است (در حالیکه در Solaris برحسب هفته است). Linux به شما این اختیار را نیز میدهد که تعداد روزهای باقیمانده تا باطل شدن کلمه عبور، به اطلاع کاربر رسانده شود.
ممانعت از ورود بدون کلمه عبور برنامههایی از قبیل rexec,rsh و rlogin به کاربر امکان میدهد بدون آنکه مجدداً کلمه عبور را وارد کند از سیستمهای خاص وارد سیستم دیگر شود. اما این کار خوبی نیست چون مهاجمی که توانسته به یک سیستم نفوذ کند میتواند از طریق برنامههای فوق به سیستمهای دیگر دست پیدا کند. بنابران برای رفع این مشکل اولاً باید سرویسهای rec, rsh, login را از فایل /etc/inetd.conf پاک کنید. و ثانیاً فایل /etc/host.equiv و هر فایلی یا پسوند »قاخسف را پیدا کرده و آنرا حذف نمایید. بای حصول اطمینان تمام دایرکتوریهای خانگی کاربران را بدقت نگاه کنید.
ایجاد کلمه عبور نامناسب بطوریکه نیازها را در بر بگیرد بهترین راه بهبود امنیت سیستم آن است که از انتخاب کلمه عبور نامناسب توسط کاربران جلوگیری شود. متأسفانه تا این اواخر فقط چند راه برای انجام اینکاردر سیستم یونیکس وجود داشته است. برای سیستم Linux برنامههایی از قبیل npasswd و passwd+ وجود دارد اما برای Swlaris برنامهای وجود نداشت. با استفاده از این برنامهها میتوانید نیازهای کلمه عبور قوی را تعیین کنید. این برنامهها کاربر را مجبور میکند کلمه عبور را در جهت برآورده شده قواعد موردنظرتا انتخاب کند.
هماکنون در Solaris 2.6 و آخرین نسخة Linux ابزار بهتری برای نظارت بر قدرت کلمه عبور کاربر وجود دارد. نام این ابزار PAM و می توانید اطلاعات بیشتر درباره نحوه ساخت فیلترهای کلمه عبور را در آدرس http://www.sun.com/Solarispam پیدا کنید.
توجه: برخی از نسخههای یونیکس همانند HPUX از ابتدا و بطور پیشفرض از کلمه عبور قدرتمندی برخوردار است. در این نسخهها اگر به هنگام ورودی اشتباهات متعدد رخ دهد اکانت قف میشود.
کنترل دسترسی به فایل
در سیستم یونیکس دسترسی به فایلها توسط مجموعهای از مجوزها[4] کنترل میشود. کاربر میتواند امتیاز خواندن، نوشتن و اجرای فایل را داشته باشد.
مالک یک فایل ممکن است یک نفر، یک گروه یا همه باشند، شما میتونید به آنها اجازه خواندن، نوشتن و اجرای آن فایل را بدهید. عوض کردن مجوز فایل با دستور chmod انجام میشود. اگر چه کاربر میتواند فایلهایی ایجاد کند که قابل خواندن و نوشتن توسط همه باشد اما بهتر است این اجازه به کاربر داد نشود. هر کاربری میتوان روی یک سیستم این فایلها را بخواند و یا بنویسد. بنابراین اگر مزاحمی به یک user ID دست پیدا کند قادر به خواندن و نوشتن خواهد بود.
از آنجا که متقاعد کردن همه کاربران به اینکه وقتی فایل را ایجاد کردند دسترسی به آنرا عوض کنند کار مشکلی است لذا قصد داریم مکانیزم پیشفرضی ایجاد کنیم که به هنگام ایجاد فایل، دسترسی به آن بطور خودکار تنظیم شود. این کار با پارامتر umask قابل انجام است. در Solaris پارامتر مذکور در فایل /etc/default/login و در Linux در فایل /etc/rofile قرار دارد. دستور بکار رفته بصورت زیر است:
umask 077
ارقامی که بعد از دستور آمده است معرف اجازهای است که بطور پیشفرض از فایلهای جدید ایجاد شده گرفته میشود (مضایقه میشود) از سمت چپ اولین رقم معرف اجازهای است که از مالک فایل گرفته میشود. رقم دوم معرف اجازهای است که از مالک گروهی گرفته میشود و رقم سوم معرف اجازهای است که از همه گرفته می شود. در مثال فوق چون اولین رقم صفر است بنابراین روی مالک فایل محدودیتی اعمال نمیشود بنابراین وی میتواند فایلهایی که از این به بعد ایجاد می شود را بخواند یا اجرا کند. اما به مالکین گروهی و دیگران هیچ اجازهای داده نشده است.
در ادامه اجازههایی که توسط ارقام تعریف میشود آورده شده است:
اجازه خواندن 4
اجازه نوشتن 2
اجازه اجرا 1
بنابراین اگر بخواهید گروه بصورت پیشفرض اجازه خواندن داشتهباشد اما اجازه نوشتن و اجرا نداشته باشد باید از دستور umask 037 استفاده شود و اگر بخواهید اجازه نوشتن را از گروه بگیرید باید از دستور umask 027 استفاده نایید. توجه کنید ک در مثال umask037 ، عدد 3 مجموعه اعداد 1 و 2 است و از آنجا که اعداد 1و 2 و بهترتیب اجازه اجرا و نوشتن فایل را سلب میکنند، پس گروه فقط اجازه خواندن فایل را دارد.
دسترسی Root
در سیستم یونیکس بالاترین سطح دسترسی در اختیار root میباشد بطوریکه وقتی کاربری با root وارد شود میتواند هر کاری انجام دهد. از اینرو یکی از کارهای خوب این است که ورودی مستقیم با اکانت root را محدود کنید. بدین ترتیب حتی مدیریت سیستم[5]برای ورود به root باید ابتدا با اکانت خودش وارد شود و پس از آن میتواند با دستور su root وارد root شود. با انجام این کار خواهید توانست با مشاهده لوگ فایلها تشخیص دهید کدام user ID سعی داشته به سطح دسترسی root برسد.
میتوان در Solaris و Linux ورود به root را فقط به کنسول محدود نمود. برای اینکار در solaris فایل /etc/default/login را بصورت زیر ویرایش نمایید:
#If CONSOLE is set, root can only login on that device.
#Comment this line out to allowremote login by root
#
CONSOLE=/dev/ console
اینکار سیستم را مجبور میکند ورود به root فقط در کنسول مجاز باشد. همین پیکرهبندی را میتوان با ویرایش فایل /etc/securetty در سیستم Linux انجام داد. این فایل لیستی از ttyهایی است که میتوان از آنها جهت ورود به root استفاده کرد. این فایل باید محتوی /dev/tty1 باشد. اگر برای مدیریت سیستم از ارتباط سریال استفاده می کنید باید فایل مذکور حاوی /dev/ttySo باشد. ttyهای شبکه معمولاً /dev/ttyp1 و بالاتر از آن میباشد.
اگر قصد کنترل دسترسی root را دارید میتوانید دسترسی به root به FTP را کنترل نمایید. در سیستم Solaris و Linux، اکانتهایی که اجازه FTP به سیستم را ندارند در فایل /etc/ftpusers فهرست میشود . از وجود root در این لیست مطمئن شوید.
این متن فقط قسمتی از مقاله درباره امنیت شبکه می باشد
جهت دریافت کل متن ، لطفا آن را خریداری نمایید