پروژه دانشجویی تحقیق در مورد امنیت شبکه تحت word دارای 119 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد پروژه دانشجویی تحقیق در مورد امنیت شبکه تحت word کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی پروژه دانشجویی تحقیق در مورد امنیت شبکه تحت word ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن پروژه دانشجویی تحقیق در مورد امنیت شبکه تحت word :
امنیت شبکه
فصل اول
مقدمه
بدون شک زندگی امروز بشر از مقولهی ارتباط تفکیک ناپذیر است. ارتباطات به حدی فاصلههای دور را به هم نزدیک کرده است که از دنیای بزرگ ما به نام دهکدهی جهانی یاد میشود. ارتباطات آنقدر با زندگی روزمرهی ما عجیبن شده است که نمیتوانیم زندگی بدون آن را حتی تصور کنیم در حالیکه تا قرنی پیش مبادلهی خبر به روزها زمکان نیاز داشت. این کار اکنون تقریباً آنی انجام میشود. مخابرات، اینترنت،وسایل ارتباط جمعی نمونههایی از ارتباطات امروز ما هستند که تبادل اطلاعات و انجام امور روزمرهی ما را با سهولت بیشتر و هزینهی کمتر ممکن ساخته است.
از طرف دیگر گسترش ارباطات شبکهای و نفوذ آن به دور دستترین نقاط جهان باعث شده است زمینهی سوء استفاده افراد سودجو و شرور هم فراهم شود. در حالی که هم اکنون انجام معاملات شبکههای کامپیوتری و اینترنت قابل انجام است. اما انجام این امور بدون درنظر گرفتن تمام جوانب امنیتی ممکن است باعث ضررهای جبرانناپذیری گردد بنابراین آشنایی با راهکارهای امنیتی در استفاده از شبکهها کامپیوتری نیازی بس حیاتی است.
در این پایان نامه سعی شده به موضوع و امنیت اطلاعات در شبکه از جنبه های مختلف پرداخته شود . ساختار مطالب گردآوری شده به شکل زیر است:
در فصل دوم به تعریف مفاهیم شبکه ، تقسیم بندی شبکه ، شباهتها و تفاوتها و مزایای آن خواهیم پرداخت .
فصل سوم بررسی سرویس های امنیتی در شبکه و در فصل چهارم اصول رمزنگاری مطرح می شود و در انتها در فصل پنجم امضاهای دیجیتالی ارائه شده است .
چکیده:
امروزه در عصر اینترنت و شبکههای کامپیوتری استفاده از سیستم عامل مناسب و نحوهی بکارگیری سیستم عامل در شبکه و ترفندهای سیستم عاملی برای جلوگیری از ضررهای ناشی از استفاده از شبکه مانند هکرها و ویروسهای مخرب و… بسیار شایان توجه است. به همین خاطر این پروژه به بررسی امنیت سیستم عاملهایی که مورد استفادهی بسیاری از کاربران در سراسر جهان قرار میگیرد میپردازیم.
این سیستم عاملها عبارتند از:
1ـ سیستم عامل یونیکس unix
2ـ سیستم عامل ویندوز NT
3ـ سیستم عامل ویندوز 2000
خلاصه:
ـ بررسی امنیت یونیکس و تنظیم سیستم به همراه راهکارهای مکمل
ـ امنیت ویندوز NT به علاوهی تنظیمات رجیستری و پیکربندی سیستم
ـ امنیت ویندوز 2000 و تنظیم و پیکرهبندی سیستم
ـ مقایسهی امنیت یونیکس و ویندوز
ـ بررسی لوگ فایلها و جستجوی علائم مشکوک در سیستم عاملهای فوق
ـ مدیریت کاربر و مدیریت سیستم
در تاریخ اینترنت ، سیستمهای یونیکس سابقه بیشتری دارند بطوریکه بیشتر سرویسهای موجود روی شبکه توسط آن ارائه میشد. وقتی هکر و هک کردن بصورت مشکلی روی اینترنت ظاهر شد، سیستم یونیکس بیتشرین توجه را به سوی خود جلب کرد. تا امروز استفاده از سیستم یونیکس روی اینترنت متداول ور ایج است و لازم است برای جلوگیری از هک شدن بدرستی پیکرهبندی شود.
تنظیم سیستم
بطور معمول وقتی سیستم یونیکس ساخته میشود، دارای آسیبپذیریهایی است. اما با استفاده از برنامههای مکمل و تغییر در فایلهای پیرکهبندی میتوان آسیبپذیریهای اولیه را تصحیح کرد. در بخشهای بعدی به بعضی از محتملترین معضلات موجود و چگونگی تصحیح آنها تشریح شده است.
فایلهای 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 توسط بعضی سیستمهای همزمانکننده زمان استفاده میشود و SNMPD برای مدیریت سیستم کاربرد دارد. احتمالاً توجه دارید که در فایل inetd.conf، سرویسهای Telnet و FTP در حالت عادی روشن هستند. این دو پروتکل امکان عبور password, user ID را بصورت واضح از طریق شبکه فراهم میکنند. این امکان وجود دارد که برای محافظت password، از نسخههای رمز شده این پروتکلها استفاده شود. توصیه میشود روی Telnet از (Secure Shell)SSH استفاده شود. برخی نسخههای SSH وجود دارد که برای انتقال فایل از برنامه (Secure Copy) SCP استفاده میکند.
Network File System:NFS
ممکن است سازمان شما از NFS استفاده کند. اما اگر به آن نیازی نیست سرویس NFS را روی سیستم خاموش کنید. از NFS برای نصب فایل سیستمی از روی یک کامپیوتر به روی کامپیوتر دیگر استفاده میشود. اگر 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 در ادامه مثالی از این فایلها آمده است:
<wrapped program name>:<ip address>/<network mask>
فایلهای زیر مثالی از فایلهای پیکرهبندی 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<Enter Your Lagal Massage Here/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 از ابتدا و بطور پیشفرض از کلمه عبور قدرتمندی برخوردار است. در این نسخهها اگر به هنگام ورودی اشتباهات متعدد رخ دهد اکانت قف میشود.
کنترل دسترسی به فایل
در سیستم یونیکس دسترسی به فایلها توسط مجموعهای از مجوزها کنترل میشود. کاربر میتواند امتیاز خواندن، نوشتن و اجرای فایل را داشته باشد.
مالک یک فایل ممکن است یک نفر، یک گروه یا همه باشند، شما میتونید به آنها اجازه خواندن، نوشتن و اجرای آن فایل را بدهید. عوض کردن مجوز فایل با دستور 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 را محدود کنید. بدین ترتیب حتی مدیریت سیستم برای ورود به 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 در این لیست مطمئن شوید.
حفاظت در برابر سرریز شدن بافر
یکی از اسیبپذیریهای خطرناک در کامپیوتر، سرریز شدن بافر است. Solaris روشی ارائه میکند که امکان اجرای دستورات off the stack را در حمله سریز کردن بافر از بین میبرد. برای انجام این کار سطرهای زیر را به فایل /etc/system اضافه کنید:
set noexec_user_stack=1
set noexec_user_stck_log=1
سطر اول از اجرای دستور off stack جلوگیری میکند و سطر دوم تلاشهای انجام گرفته را ثبت میکند.
توجه: در برخی برنامهها نیاز است دستور off the stack اجرا شود. بنابراین اگر تغییر فوق را انجام دهید این برنامه از کار خواهد افتاد (crash میکند). لذا قبل از انجام اینکار از آزمایش این دستور مطمئن شوید.
غیر فعال کردن اکانتهای غیر مفید
یونیکس تعدادی اکانت ایجاد میکند که برای وارد مختلف (از قبیل مالک فایلهای خاص) نیاز میشود اما برای ورود به سیستم هیچوقت استفاده میشود. این اکانتها عبارتند ازnuucp, uucp, sys و listen . به منظور جلوگیری از ورود به این اکانتها، فایل /etc/shodow را به صورت زیر تصحیح نمایید:
bin:*LK*10960:0:99999:7: : :
daemon:*LK*10960:0:99999:7: : :
adm:*LK*10960:0:99999:7: : :
lp:*LK*10960:0:99999:7: : :
sync:*LK*10960:0:99999:7: : :
shutdown:*LK*10960:0:99999:7: : :
halt:*LK*10960:0:99999:7: : :
mail:*LK*10960:0:99999:7: : :
news:*LK*10960:0:99999:7: : :
uucp:*LK*10960:0:99999:7: : :
operator:*LK*10960:0:99999:7: : :
games:*LK*10960:0:99999:7: : :
gopher:*LK*10960:0:99999:7: : :
ftp:*LK*10960:0:99999:7: : :
nobody:*LK*10960:0:99999:7: : :
هر سطر از دو بخش تشکیل شده است که بخش اول اکانت و بخش دوم کلمه عبور آن است. اکانت کاربر معمولی دارای کلمه عبور رمز شده میباشد. در مورد اکانتهایی که هیچوقت اجازه ورود ندارند، بخش دوم شامل کاراکتر “*” با هیچ کلمه عبوری اجازه ورود ندارد به همین دلیل کسی نمیتواند آن را بشکند. با قرار دادن عبارتی همانند “*LK*” بطور مفید و مختصر قفل بودن این اکانت بیان میشود (LK نماینده کلمه Lock است).
برنامههای مکمل
سیستم یونیکس از نظر برنامههای مکملی که بصورت نرمافزاری برای تصحیح باگها و رفع مشکلات امنیتی استفاده میشود تفاوتی با ویندوز NT ندارد. برنامههای مکمل بطور منظم روی سیستم نصب میشود تا آسیبپذیریهای موجود برطرف شود. هنگام دانلود کردن برنامههای مکمل Solaris توجه داشته باشید شرکت Sun برنامههای مکمل بسیاری را بصورت گروهی روی سایت خود قرار میدهد،اما ممکن است برخی برنامههای مکمل امنیتی در آن گروه نباشد. لذا باید آنها را بصورت تکتک دانلود کرده و بصورت دستی نصب کنید. نصب برنامههای مکمل را وصلهکاری گویند.
مدیریت کاربر
همانند تمام سیستمهای کامپیوتری، مدیریت کاربران و روابط بین آنها نقش حیاتی در امنیت کلی سیستم دارد. هر سازمانی باید پروسه مدیریت کاربر داشته باشد. در این پروسه مراحل لازم برای زمانیکه کاربری تقاضای دسترسی به سیستم نداشته باشد شرح داده شده است. علاوه بر این در این پروسه مراحل لازم برای موقعی که یکی از پرسنل سازمان را ترک میکند شرح داده می شود.
بخاطر داشته باشید سیستم یونیکس انواع زیادی دارد. ابزارهایی که هم برای مدیریت کاربر استفاده میشود در نسخههای مختلف تفاوت دارد و از فروشندهای به فروشندهدیگر فرق میکند.
افزودن کاربر به سیستم
در اکثر نسخههای یونیکس، ابزارهایی برای افزودن کاربر به سیستم ارائه شده است. وظایف اصلی این ابزار عبارتند از:
• افزودن نام کاربر به فایل Password
• تعیین و اختصاص شماره user ID
• تعیین و اختصاص شماره group ID
• تعیین Shell مناسب برای ورود
• افزودن نام کاربر به فایل Shadow
• اختصاص کلمه عبور مناسب اولیه
• تعیین Allias مناسب برای پست الکترونیک (Allias یعنی نام مستعار)
• ایجاد دایرکتوری خانگی برای هر کاربر
حال به تشریح هر یک از وظایف میپردازیم.
افزودن نام کاربر به فایل Password
فایل /etc/passwd شامل لیست کاربرانی است که به سیستم تعلق دارد. هر کاربر دارای نام کاربر یکتایی است که حداکثر از هشت کاراکتر تشکیل شده است. به ازاء هر رکوردی که در فایل passwd ثبت میشود اطلاعات بیشتری نیز درباره هویت واقعی کاربر ثبت میشود که بای شناسایی فردی که در قبال آن اکانت مسئول است بکار میرود. این اطلاعات در بخش GECOS اضافه میشود.
تعیین و اختصاص شماره User ID
به هر نام کاربر، یک شماره User ID مناسب اختصاص داده می شود که به اختصار UID گفته میشود. UID باید در سیستم یکتا باشد. عموماً باید UID کاربر عددی بزرگتر از 100 انتخاب شود. از آنجا که عدد صفر برای اکانت root است، از اینرو هیچ گاه به عنوان UID انتخاب نمی شود. سیستم برای شناسایی فایلهای روی سیستم از UID استفاده میکند. از اینرو استفاده مجدد از UID (یعنی استفاده از یک UID برای چند نفر) توصیه نمیشود.
اختصاص شماره Group ID
لازم است هر کاربر دارای یک گروه اصلی باشد. این شماره به نام کاربر در فال /etc/passwd اختصاص دهید. کاربران عادی نباید عضو گروه wheel باشند چون این گروه برای مقاصد مدیریتی استفاده میشود.
تعیین Shell مناسب برای ورود
وقتی کاربر تعاملی قصد ورود به سیستم دارد، باید به او یک Shell داده شود که در حالت عادی csh, ksh و bash میباشد. به کاربرانی که نباید وارد سیستم شوند برنامهای داده میشود که Shellنیست. به عنوان مثالی از کاربران تعاملی میتوان به کاربرانی اشاره کرد که از طریق pop یا IMAP پیامهای پست الکترونیک خود را کنترل میکنند، لذا میتوانید امکان تعویض کلمه عبورشان را بصورت تعمالی فراهم نمایید. در این حالت برای کاربر یک Shellتعریف میکنید که bin/passwd میباشد. هر وقت یکی از کاربران به سیستم telnet کند میتواند کلمه عبورش را عوض کند و پس از تکمیل عملیات از آن shell خارج شود.
افزودن نام کاربر به فایل Shadow
از آنجا که فایل /etc/passwd قابل خواندن توسط همه است لذا نباید کلمات عبور در آن ذخیره شود تا کسی نتواند با شکستن کلمه عبور وارد سیستم شود. کلمات عبور در فایل /etc/shadow ذخیره میشود بنابراین همان نام کاربر به فایل /etc/shadow افزوده میشود.
اختصاص کلمه عبور مناسب اولیه
بعد از ایجاد اکانت برای کاربر، باید کلمه عبور اولیهای برای آن تعیین شود. اکثر ابزارهایی که برای افزودن کاربر مورد استفاده قرار میگیرد پرومپتی برای این منظور در اختیار میگذارند. در غیر اینصورت با نام کاربر وارد شوید و از دستور passwd برای تغییر کلمه عبور استفاده کنید. کلمه عبور اولیه باید گبونهای باشد که حدس زدن آن آسان نباشد و بهتر است کلمه عبور اولیه برای تمام اکانتها یکسان نباشد. اگر از کلمه عبور یکسان برای همه کاربران استفاده شود، امکان دارد مهاجمی با استفاده از اکانت جدید و قبل از اینکه کاربر قانونی از اکانت خود استفاده کند وارد سیستم شود و کلمه عبور را عوض کند.
تعیین Alias مناسب برای پست الکترونیک
وقتی کاربری ایجاد میشود بطور خودکار یک آدرس پست الکترویکی به شکل username@home خواهد داشت. حال اگر کاربر بخواهد از یک نام مستعار برای آدرس پست الکترونیک خود استفاده کند. این کار با استفاده از e-mail alias قابل انجام است. برای این منظور باید فایل /etc/aliases ویرایش شود. فرمت این فایل بصورت زیر است:
alias: username
بعد از آنکه alias ایجاد شد برنام newaliases را اجرا کنید تا فایل alias.db ایجاد شود.
ایجاد دایرکتوری خانگی برای کاربر
برای هر کاربر باید یک دایرکتوری خانگی ایجاد شود. این دایرکتوری در فایل /etc/passwd تعریف میشود. پس از آنکه در محل مناسبی روی سیستم، دایرکتوری خانگی کاربر ایجاد شد(معمولاً در شاخه /home یا /export) مالک دایرکتوری را عوض کنید. با استفاده از دستور زیر کاربر موردنظر تنها مالک فایل خواهد شد:
chown<username> <directory name>
حذف کاربر از روی سیستم
وقتی کاربری سازمان را ترک میکدن و یا به جای دیگر منتقل میشود بطوریکه به اکانت کاربری خود بیش از داین نیاز نداشته باشد لازم است پروسه مدیریت کاربری مناسبی دنبال شود. در سیستم یونیکس مالک تمام فایلهای کاربر، UID است. بنابراین اگر UID کاربری برای کاربر جدید استفاده شود، کاربر یا اکانت جدید مالک تمام فایلهای کاربر قدیمی خواهد شد.
اصولاً وقتی کاربر بیش از این به اکانت نیاز نداشته باشد باید اکانت را قفل کرد. برای اینکا در فایل /etc/shadow کلمه عبور کاربر با عبارت “*LK*” جایگزین میشود. بعد از مدت زمان مناسبی (معمولاً 30 روز) میتوان فایلهای آن کاربر را حذف کرد. مهلت 30 روزه بدین منظور است که مدیریت کاربران در این مدت فایلهای موردنیاز سازمان را در محل مناسب کپی کند.
مدیریت سیستم
مدیریت سیستم در یونیکس (از لحاظ امنیتی) شامل برقرار کردن سطوح مناسبی از ورود و نظارت بر سیستم برای یافتن فعالیتهای مشکوک میباد. سیستم یونیکس اطلاعات خوبی درباره آنچه به دنبالش هستید ارائه میکند. البته ابزارهایی هم وجود دارد که میتوان برای شناسایی فعالیتهای مشکوک از آنها استفاده کرد.
بازرسی سیستم
در اکثر نسخههای یونیکس، سیستم واقعهنگاری استانداری ارائه شده است که میتواند اطالعات امنیتی را به مقدار کافی در اختیار بگذارد. با اینحال در برخی موارد به اطلاعات بیشتری از بازرسی نیاز می شود. Solaris برای این منظور Basic security module را ارائه کرده است که به اختصار BSM گفته میشود. BSM در حالت عادی فعال نیست و در صورتیکه کاربر به اطلاعات بیشتری نیاز داشته باشد آن را به راه میاندازد.
به منظور فعال کردن BSM، اسکریپت /etc/security/bsmconv را اجرا کنید. اگر چه اینکار پروسه بازرسی را راهاندازی میکند اما نیاز به ریبوت سیستم دارد. پیکرهبندی بازرسی در فایل /etc/secuity/dudit_control تعیین میشود. اطلاعات کامل در مورد این فایل را میتوانید در صفحات راهنمای آن پیدا کنید (بدین منظور دستور man audit _ control را اجرا کنید) اما برای شروع پیکرهبندی زیر درنظر بگیرید:
#dentify the location of the audit file directory
dir: <directory>
#identify the file system free space percentage when a warning should occur
minfree:20
#flags for what to audit. This example audits login, administrative
#functions and failed file reads, writes, and attribute changes
flags: lo,ad,_fm
#This set of flags tellls the system to also audit login and administrative
#events that cannot be attributed to a user
naflags:lo,ad
پس از پیکره فایل، گردآوری گزارشات بازرسی شروع میشود. با استفاده از دستور audit-n میتوان فایل مربوط به گزارشات فعلی را بست و فایل جدیدی را شروع کرد. برای مرور محتوای فایل بازرسی از دستور prudit<audit file name> استفاده کنید.
توجه: BSM بار کاری سیستم را افزایش میدهد لذا فقط زمانی استفاده شود که امنیت سیستم به آن نیاز دارد.
لوگ فایلها
در اکثر سیستمهای یونیکس ابزار نسبتاً جامعی در Syslog فراهم شده که برای واقعهنگاری بکار میرود. Syslog قابلیتی است که مطابق پیکرهبندی انجام گرفته، اطلاعات را ثبت میکند. Syslog از طریق فایل /etc/syslog.conf پیکرهبندی میشود. عموماً گفته میشود فقط root مجاز به دیدن لوگ فالها است و کس دیگری نباید آنها را دستکاری کند.
در بیشتر فایلهای syslog.conf پیامهای واقعهنگاری به فایلهای /var/log/message یا /var/adm/log/messages هدایت میشوند. اگر syslog.conf بدرستی پیکرهبندی شده باشد باید دستور پیکرهبندی زیر در آن لحاظ شده باشد:
auth.info /var/log/auth.log
دستور فوق به یونیکس میگوید اطلاعات مربوط به تلاشهای صورت گرفته برای reboot, su, login و دیگر وقایع مرتبط با امنیت را جمعآوری کند. مطمئن شوید فایل /var/log/auth.log به منظور جمعآوری اطلاعات زیر ایجاد شده است:
#touch / var/ log/ auth. log
#chown root/ var/ loglauth.log
#chmod 600 /var/loglauth.log
در Solaris میتوانید با ایجاد فایل /var/adm/loginlog تلاشهای اشتباهی که برای ورد صورت گرفته است را نیز ثبت نمایید. فایل مذکور را بصورت زیر ایجاد نمایید:
#touch/var/adm/loginlog
#chmod 600/var/adm/loginlog
#chown root/var/adm/loginlog
#chgrp yss/var /adm/loginlog
دایرکتوری /var باید فضای کافی داشته باشد تا لوگ فایلها را جمعآری کند. اگر /var روی پارتیشن قرار داشته باشد و لوگ فایلهای جمعآوری شده خیلی بزرگ باشند. امکان اشغال شدن فایل سیستمهای root وجود دارد،لذا بهتر است دایرکتوری /var در مکان دیگری قرارداشته باشد.
فایلهای مخفی
فایلهای مخفی توان ایجاد مشکل برای سیستم یونیکس را دارند. دستور استاندارد Ls نمیتواند فایلی را که با “.” شروع شده است، نمایش دهد. اما دستور Ls -a تمام فایلهای مخفی را نمایش میدهد. هکرها آموختهاند با استفاده از فایلهای مخفی فعالیت خود را پنهان سازند. بطور مثال هکر میتواند فایل خود را در یک دایرکتوری مخفی قرار دهد و بدینوسیله آنها فایل را مخفی کند. همچنین ممکن است هکر فایل خود را در دایرکتوریهایی مخفی کند که دیدن آن برای مدیریت مشکل است. برای مثال اگر یک دایرکتوری “…” نامیده شود جلب توجه نمی کند. اگر بعد از سومین نقطه در نام این دایرکتوری. کاراکتر space قرار داده شود. (به عبارت دیگر”…” )بررسی آن دایرکتوری سخت میشود مگر اینکه از وجود space در نام دایرکتوری اطلاع داشته باشید. با استفاده از دستور زیر میتوانید تمام فایلها و دایرکتوری مخفی را روی سیستم خود پیدا کنید:
#find / -name “*” -ls
اگر چه میتوان بجای “-ls” از “-print” استفاده کرد اما استفاده از “-ls” اطلاعات جزئیتری درباره مکان فایل ارائه میکند. لازم است این دستور بصورت دورهای اجرا شود و وجود فایلهای مخفی مورد بررسی قرار گیرد.
