برای مطالعه بخش قبل روی این آدرس کلیک کنید.
فایروالهای مبتنی بر میزبان
یکی از اولین برنامههای امنیتی که باید روی یک سیستم پیکربندی شود، فایروال مبتنی بر میزبان است که به عنوان فایروال شخصی نیز شناخته میشود. فایروال مبتنی بر میزبان نرمافزاری است که ارتباطات ورودی و خروجی سیستم را کنترل میکند. امروزه، اکثر شبکهها دارای یک فایروال تحت شبکه هستند تا ترافیک ورودی و خروجی از شبکه را کنترل کند، اما باید فایروالهای مبتنی بر میزبان را روی ایستگاههای کاری و سرورها نیز پیکربندی کنید.
تجربه شخصی من نشان داده که اکثر مدیران شبکه فایروالهای مبتنی بر میزبان را در تمام ایستگاههای کاری و سرورهای داخل شبکه پیکربندی نمیکنند و میتوانم بفهمم که چرا آنها ممکن است اینکار را نکنند. پیکربندی یک فایروال مبتنی بر میزبان در تمام سیستمهای داخل شبکه، اتصال از راه دور به آن سیستمها و حل مشکلات آنها را دشوار میکند. فایروال مبتنی بر میزبان باید به ترافیک ورودی مناسب در محیط شرکت اجازه عبور دهد، بنابراین پیکربندی آن کار سادهای نیست.
با این حال، مهم است روی سیستمهای خاص یک فایروال مبتنی بر میزبان نصب و پیکربندی شوند. به عنوان مثال، اگر کارمندی دارید که زیاد سفر میکند و لپ تاپ شرکت خود را به شبکه هتل یا فرودگاه متصل می کند، باید آن سیستم را با فایروال مبتنی بر میزبان پیکربندی کنید تا از سیستم در برابر فعالیتهای مخرب در آن شبکهها محافظت کند.
نکته: برای آزمون سکیوریتیپلاس به یاد داشته باشید که سیستمی که به یک شبکه غیرقابل اعتماد مانند شبکه هتل یا هر شبکه بی سیم متصل است، باید توسط یک فایروال مبتنی بر میزبان محافظت شود.
همچنین، میتوانید فایروال مبتنی بر میزبان را روی یک سرور خاص نصب کنید تا اطمینان حاصل کنید که ارتباط با آن سرور فقط به نوع ترافیکی که اجازه عبور از فایروال را دارد محدود میشود. برای مثال، اگر یک سرور FTP در شبکه دارید و FTP تنها هدف سرور است، میتوانید فایروال مبتنی بر میزبان را فعال کنید و فقط پورتهای FTP را باز کنید تا از سرور در برابر هرگونه ترافیک مخرب محافظت کنید.
اکثر فایروالهای مبتنی بر میزبان دارای ویژگیهای مشترک هستند که در ادامه به آنها اشاره میکنیم:
■ میتوانند ترافیک ورودی بستههای ارسال شده به سیستم از یک میزبان در شبکه یا اینترنت را مسدود کنند.
■ میتوانند ترافیک خروجی بستههایی از یک سیستم که قرار است به شبکهای خارج از شبکه سازمانی ارسال شوند را مسدود کنند.
■ میتوان اعلان بیشتر فایروالهای مبتنی بر میزبان را طوری پیکربندی کرد که اگر فردی سعی میکند به سیستم شما متصل شود یا برنامهای روی سیستم شما سعی میکند دادهها را در شبکه یا اینترنت ارسال کند، پیامی را نشان دهند. شکل زیر این موضوع را نشان میدهد.
■ یک قانون پیشفرض پس از فعال شدن، اکثر فایروالها یک قانون پیشفرض برای رد کردن همه ترافیک دارند، مگر اینکه اجازه ورود به ترافیک را بدهید. میتوانید قانون پیشفرض را تغییر دهید تا همه ترافیک به جز بستههایی که مشخص میکنید مجاز باشد، اما این اتفاق به ندرت میافتد.
■ ایجاد قوانین بیشتر فایروالها به شما امکان میدهند قوانینی را در ورای قانون پیشفرض اضافه کنید تا اجازه دهید در شرایط خاصی ترافیک از یک سیستم مجاز خارج یا به آن وارد شود.
نمای کلی پیکربندی
هنگامی که یک فایروال مبتنی بر میزبان را پیکربندی میکنید، معمولاً یا نرمافزار را نصب میکنید، اگر توسط یک شرکت شخص ثالث ارائه شده باشد یا فایروال را فعال میکنید، اگر از نرمافزار فایروال همراه با سیستم عامل استفاده میکنید.
وقتی فایروال را فعال میکنید، معمولاً یک قانون پیشفرض برای رد کردن تمام ترافیک دارد، مگر اینکه ترافیک در پاسخ به درخواست سیستمی باشد که فایروال آنرا تایید کرده است. به عنوان مثال، هنگامی که فایروال ویندوز فعال است، میتوانید در اینترنت به گشت و گذار بپردازید، زیرا صفحه وب را با تایپ URL یک وبسایت درخواست میکنید (در واقع شما یک درخواست HTTP GET ارسال میکنید)، بنابراین پاسخ (در این مورد، صفحه وب) اجازه عبور از فایروال را دارد.
اگر سرویسهایی را سیستم میزبانی میکنید، باید پورتها را در فایروال مبتنی بر میزبان باز کنید تا به درخواستها سرویسها اجازه عبور داده شود. به عنوان مثال، اگر میخواهید از طریق دسکتاپ راه دور به یک سرور دسترسی داشته باشید و فایروال مبتنی بر میزبان را فعال کرده باشید، باید پورت دسکتاپ از راه دور (درگاه TCP 3389) را باز کنید.
دیوارآتش مبتنی بر ویندوز
برای پیکربندی فایروال مبتنی بر میزبان در ویندوز، مراحل زیر را دنبال کنید:
1. روی دکمه Start کلیک راست کرده و Control Panel را انتخاب کنید.
2. System and Security و سپس Windows Firewall را انتخاب کنید.
3. دقت کنید در پنجره فایروال ویندوز لینکهای زیر در سمت چپ قرار دارند:
■ Allow a program or feature through Windows Firewall: به یک برنامه یا ویژگی جدید اجازه برقراری ارتباط با اینترنت را میدهید. برنامه مجاز، برنامهای است که میتواند دادهها را از طریق پورت تعیین شده به اینترنت ارسال کند.
■ Change notification settings: این گزینه برای تغییر تنظیمات اعلان، فایروال ویندوز استفاده میشود. کاربران میتوانند دیوارآتش ویندوز را بهگونهای پیکربندی کنند که اگر برنامهای را مسدود کرد به کاربر اطلاع داده شود.
■ Turn Windows Firewall on or off: به کاربر اجازه میدهد فایروال ویندوز را برای کاربردهای خاصی روشن یا خاموش کند. در این حالت اگر فایروال ویندوز برنامهای را مسدود کند، به شما اطلاع داده شود.
■ Restore defaults: تنظیمات فایروال ویندوز را به حالت پیشفرض باز میگرداند.
■ Advanced Settings: دسترسی به ابزار مدیریتی Windows Firewall و Advanced Security را امکانپذیر میکند که میتوانید از طریق قواعد ورودی و خروجی را به شکل دقیقتری پیکربندی کنید.
4. روی تنظیمات پیشرفته کلیک کنید تا به تنظیماتی دسترسی پیدا کنید که کنترل بیشتری بر قوانین خروجی و ورودی قابل پیکربندی در فایروال میدهد.
5. برای ساخت یک قاعده جدید که به ترافیک اجازه عبور از فایروال را میدهد، روی Inbound Rules در پنجره سمت چپ کلیک راست کرده و New Rule را انتخاب کنید.
6. در مرحله Rule Type از New Inbound Rule Wizard، گزینه Port را انتخاب کنید تا یک قاعده بر اساس پورتهای TCP یا UDP ساخته شود. در ادامه Next را کلیک کنید.
7. در مرحله بعد که در ارتباط با پروتکل و پورتها است، پروتکل و پورت محلی را مشخص کنید که قصد دارید فایروال ترافیک آنرا مسدود نکند. در این مثال، من پورت TCP 3389 را انتخاب میکنم. در ادامه روی Next کلیک کنید.
8. در مرحله Action wizard، مشخص کنید که آیا میخواهید این ترافیک (که به عنوان اتصال شناخته می شود) مجاز باشد یا مسدود شود. توجه داشته باشید که میتوانید تعیین کنید که ترافیک فقط در صورتی مجاز باشد که امن باشد. Allow the Connection را انتخاب کنید و سپس روی Next کلیک کنید.
9. در مرحله Profile wizard، با فعال کردن کادر انتخاب هر یک از پروفایلهای شبکه، اطمینان حاصل کنید که این قانون زمانی اعمال میشود که به یک دامنه شرکتی، در یک شبکه خصوصی و یک شبکه عمومی متصل هستید. سپس، روی Next کلیک کنید.
10. در مرحله آخر ویزارد، RDP Traffic را به عنوان نام قاعده تایپ کنید و روی Finish کلیک کنید.
فایروالهای لینوکس و TCP Wrappers
سیستم عامل ویندوز تنها سیستمی نیست که دارای ویژگی فایروال است. اکثر سیستم عاملها به شما این امکان را میدهند که فایروال مبتنی بر میزبان را فعال کنید. اگر میخواهید ویژگی فایروال را در لینوکس فعال کنید (من از فدورا استفاده ی کنم)، می توانید این مراحل را دنبال کنید:
1. از منوی System گزینه Administration | Security Level and Firewall را انتخاب کنید.
2. همانطور که در شکل زیر نشان داده شده است، در تب گزینههای فایروال، فایروال لینوکس را فعال کنید.
3. در ادامه میتوانید با انجام هر یک از کارهای زیر، پورتهای فایروال را باز کنید:
■ Trusted services: شما میتوانید از فهرست سرویسهای مورد اعتماد برای باز کردن یک درگاه خاص استفاده کنید تا امکان ارتباط با آن سرویس فراهم شود. برای باز کردن یک پورت برای یک سرویس، کافی است کادر مربوط به آن سرویس را انتخاب کنید. به عنوان مثال، اگر من در نظر داشته باشم مشتریان به سرویس FTP در سیستم لینوکس من متصل شوند، کادر FTP را فعال میکنم.
■ Other Ports: اگر میخواهید درگاهی را باز کنید که در سرویسهای مورد اعتماد فهرست نشده است، میتوانید گزینه Other Ports را باز کرده و روی دکمه Add کلیک کنید. در کادر محاورهای افزودن پورت، شماره پورت و پروتکل (اعم از TCP یا UDP) را برای پورتی که میخواهید باز کنید تایپ کنید.
اگرچه این واقعاً یک ویژگی فایروال نیست، TCP wrappers یکی دیگر از ویژگیهای عالی کنترل دسترسی موجود در لینوکس است. TCP wrappers به شما امکان میدهد دسترسی به سرویسهای مختلف در حال اجرا در سیستم لینوکس مانند Telnet، SSH و FTP را کنترل کنید. پیادهسازی ویژگی TCP wrappers آسان است، زیرا شما باید تنها دو فایل را پیکربندی کنید:
■ /etc/hosts.allow این فایل سرویسهای مختلفی را فهرست میکند که میخواهید به کاربران اجازه دسترسی به آنها را بدهید. در اینجا مشخص میکنید کدام کاربران میتوانند به آن خدمات دسترسی داشته باشند.
■ /etc/hosts.deny این فایل سرویسهای مختلفی را فهرست میکند که میخواهید دسترسی کاربران به آنها را رد کنید. در اینجا مشخص میکنید کدام کاربران نباید به سرویسها دسترسی داشته باشند.
با هر یک از این فایلها، میتوانید قواعدی را برای سرویسهایی که دسترسی به آنها توسط کاربران مجاز است (اگر سرویس در فایل hosts.allow پیکربندی شده باشد) و سرویسهایی که اجازه دسترسی به آنها را ندارند (در صورت پیکربندی سرویس) اضافه کنید. در فایل hosts.deny). شما معمولاً با آدرس IP یا نام DNS دسترسی به سیستمهای مختلف را مجاز یا رد ی کنید.
هنگامی که یک کلاینت به یک سرویس خاص مانند Telnet متصل میشود، سیستم لینوکس فایل hosts.allow را میخواند تا تعیین کند آیا کاربر مجاز به دسترسی به آن سرویس است یا خیر. اگر هیچ قانونی قاعدهای برای آن سرویس در فایل hosts.allow وجود نداشته باشد، فایل hosts.deny برای یافتن یک قاعده خوانده میشود. اگر قاعده منطبق با سرویس گیرنده برای سرویس در هیچ یک از فایلها وجود نداشته باشد، کلاینت که سعی در اتصال به سرویس دارد به آن دسترسی پیدا میکند.
به عنوان مثالی از کاربرد Wrapperهای TCP، من به فایل hosts.deny میروم تا مشخص کنم که همه سیستمها از دسترسی به سرویس FTP محروم هستند. برای پیکربندی فایل برای این قاعده ، یک خط جدید اضافه میکنم و نام سرویس را تایپ میکنم، یک دونقطه (:) اضافه میکنم و کلاینتهایی را که قانون برای آنها اعمال میشود فهرست میکنم، همانطور که در کد زیر نشان داده شده است:
Vsftpd : ALL
بعد از اینکه فایل hosts.deny را پیکربندی کردم، دسترسی همه سیستمها ممنوع میشود، اما من دوست دارم هر سیستمی در شبکه 192.168.2.0 به سرویس دسترسی داشته باشد و سیستم با آدرس IP 10.0.0.2 به سرویس FTP دسترسی داشته باشد. برای انجام اینکار، یک خط جدید به فایل hosts.allow اضافه میکنم که نام سرویس را مشخص میکند، سپس یک کولون (:) و به دنبال آن لیستی از آدرسهای IP مجاز، که هر آدرس با کاما از هم جدا شده را مشخص میکنم. در کد زیر دقت کنید که چگونه شناسه شبکه را برای شبکه 192.168.2.0 مشخص کردم (صفر را در آخر قرار ندادم):
Vsftpd : 192.168.2.,10 .0.0.2
نکته: به خاطر داشته باشید که هنگام استفاده از TCP wrappers، اولین قاعده مطابق با درخواست کاربر رعایت میشود. اگر کاربر هم در فایل مجوز و فایل رد قرار داشته باشد، کاربر مجاز به دسترسی است، زیرا ابتدا فایل مجاز خوانده میشود.
آمادهسازی درست قواعد مربوط به TCP wrappers کمی وقتگیر است. در اینجا چند نمونه از قوانینی وجود دارد که میتوان آنها را به فایل hosts.deny یا فایل hosts.allow اضافه کرد. در مثال اول، میتوانید به جای آدرس IP، نام دامنه را مشخص کنید. مثال کد زیر به هر سیستمی از دامنه gleneclarke.com اجازه میدهد در صورت قرار گرفتن در فایل hosts.allow به سرویس SSH دسترسی پیدا کند:
Sshd : .glenclarke.com
قاعده زیر را میتوان برای همه سیستمها به جز سیستمهای موجود در دامنه gleneclarke.com اعمال کرد. اگر این قاعده در فایل hosts.deny قرار داده شود، به این معنا است که همه سیستمها از دسترسی به سرویس FTP محروم هستند، به جز سیستمهایی که از gleneclarke.com میآیند.
Vsftpd : ALL Except *.gleneclarke.com
کار دیگری که میتوانید با فایلهای hosts.allow و hosts.deny انجام دهید، ساخت یک قاعده است که به یک فایل متنی در سیستم اشاره میکند که حاوی فهرستی از سیستمها بر اساس آدرسهای IP است. این تکنیک تغییر لیست آدرسها را آسانتر میکند، زیرا شما به سادگی به فایل متنی میروید و نیازی به تغییر قانون در فایل hosts.allow یا hosts.deny ندارید. مثال زیر مشخص میکند که سرویس Telnet باید به فایل /etc/telnet.hosts مراجعه کند تا لیستی از سیستمهایی که در صورت مطابقت با این قانون در فایل hosts.deny رد میشوند را به دست آورد:
In.telnetd : /etc/telnet.hosts
پیکربندی TCP Wrapper در لینوکس
در این تمرین، با کنترل دسترسی به سرور FTP، پیکربندی TCP Wrappersدر لینوکس را به شکل بهتری بررسی میکنیم.
1. مطمئن شوید که میتوانید با تایپ ftp <IP_of_Linux> به سرور FTP در لینوکس متصل شوید.
2. با نام کاربری ftp و بدون رمز وارد شوید. پس از اینکه با موفقیت وارد شدید، عبارت quit را تایپ کنید تا از نشست FTP خارج شوید.
3. برای جلوگیری از اتصال هر فردی به سرویس FTP در لینوکس، فایل /etc/hosts.deny را باز کنید و یک خط جدید با تنظیم vsftpd : ALL اضافه کنید. هر کسی که سعی میکند به سرویس FTP شما در لینوکس متصل شود، باید یک پیام "اتصال رد شد" دریافت کند.
4. فایل /etc/hosts.allow را تغییر دهید و آدرس IP خود را به عنوان سیستمی که میتواند به سرویس FTP متصل شود با افزودن خط زیر اضافه کنید.
vsftpd: <your_ip>
5. با تایپ دستور زیر و و وارد کردن با نام کاربری ftp بدون رمز عبور، مطمئن شوید که می وانید وارد سرور لینوکس شوید.
ftp <IP_of_Linux>
در شماره آینده مبحث فوق را ادامه میدهیم.
برای مطالعه تمام قسمتهای آموزش سکوریتی پلاس اینجا کلیک کنید.
معرفی آموزشگاه شبکه و امنیت
- تهران: آموزشگاه عصر رایان شبکه
- مهندس اطلاعات
- تلفن: 02188549150 کانال: Asrehshabakeh@
تبلیغات لینکی:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟