یکی از مهمترین راهکارهای تامین امنیت بر روی سیستم هایی که با شبکه و وب در ارتباط هستند، پیکربندی یک فایروال مطمئن (دیوار آتشین) جهت مدیریت راه های نفوذ به سیستم عامل است.
فایروال چیست؟
با یه مثال ساده متوجه میشین که مفهوم فایروال خیلی پیچیده نیست، فکر کنید تابستونه و هوا خیلی گرمه! توی خونه هستید و از شدت گرما دلتون میخواد پنجره اتاقتون رو باز کنید. اما یه مشکلی هست! وقتی پنجره رو باز میکنید حشرات موذی مثل پشه و مگس هجوم میارن توی اتاق! پس برای ورود هوای تازه به اتاق و جلوگیری از ورود حشرات موذی چه کاری باید کرد؟ نصب یک توری در قاب پنجره اتاقتون، با نصب این توری تبادل هوا به راحتی انجام میشه و دیگه نگرانی بابت ورود حشرات موذی هم نخواهید داشت.
سیستم فایروال هم دقیقا به همین شکل عمل میکنه و نقش یک توری محافظ برای سیستم عامل شما رو بازی میکنه. یعنی اجازه ورود و خروج های بی خطر و مفید امکان پذیر خواهد بود اما در مقابل با مسدود کردن راه های نفوذ ابزارهای ناشناس و خطرناک، اجازه آسیب رساندن به سیستم شما رو به دیگران نخواهد داد.
فایروال UFW در اوبونتو
فایروال رسمی در توزیع سیستم عامل لینوکس اوبونتو، iptables نام دارد. استفاده و تنظیم این ابزار برای مدیران سرور کمی پیچیده و پر دردسره و به همین خاطر ابزار ساده تری به اسم ufw که مخفف Uncomplicated Firewall و به معنای فایروال بدون دردسر منتشر شده که در واقع یک لایه واسط برای کار با iptables است. استفاده از این ابزار به حدی راحته که حتی افراد حرفه ای هم ترجیح میدن از آن به جای iptables برای پیکربندی فایروال استفاده کنند. من هم در این مقاله روش پیکربندی و استفاده از ufw رو توضیح خواهم داد چرا که به شخصه همیشه از همین فایروال بر روی سرور استفاده میکنم.
دقت کنید که فایروال ufw به صورت پیش فرض بر روی اوبونتو وجود داره و نیازی به نصب آن نخواهید داشت، اما به هر دلیل اگر این ابزار بر روی سیستم عامل شما موجود نیست، با اجرای دستور زیر آن را نصب کنید:
سرویس ufw به صورت پیش فرض غیرفعاله و شما باید ابتدا اون رو پیکربندی و سپس فعال کنید. برای نمایش وضعیت جاری سرویس، دستور زیر رو اجرا و خروجی رو مشاهده کنید:
اگر تاکنون از ufw بر روی این سرور استفاده نکرده باشید، خروجی این دستور احتمالا به این صورت خواهد بود: Status: inactive و به این مفهوم است که سرویس ufw هنوز راه اندازی نشده و غیرفعاله!
تعریف قوانین در UFW
قبل از فعال کردن فایروال، ابتدا یک سری قوانین پیش فرض برای ufw تعریف میکنیم تا در عمل تمامی درخواست های ورودی به سرور (incoming) مسدود شده و تمامی خروجی ها (outgoing) آزاد باشند. برای این کار دستورات زیر رو اجرا میکنیم:
sudo ufw default deny incoming
sudo ufw default allow outgoing
در مرحله بعدی برای اینکه ارتباط ssh شما همچنان برقرار بمونه و پس از فعال سازی فایروال بتونید از طریق ssh به سرور متصل بشین، مجبور به تعریف یک قانون جهت دسترسی به پورت ssh هستیم:
نکته: ممکنه شما قبلا پورت پیش فرض ssh رو تغییر داده باشین و از پورت 22 برای اتصال به سرور استفاده نکنید (جهت ارتقاء امنیت سرور این کار اکیدا توصیه میشود) پس در دستور بالا به جای پورت 22 پورت مورد نظر خودتون رو قرار داده و اجازه دسترسی به اون رو بدید.
در صورتی که بر روی سرور شما یک وب سایت میزبانی میشه، پس نیازه که یک قانون برای اجازه دسترسی به پورت مربوط به http تعریف کنید:
اگر بر روی سرور شما سرویس dns هم پیکربندی شده، قانون مربوط به پورت dns رو هم در فایروال تعریف کنید:
sudo ufw allow 53
اجازه دسترسی به بقیه پورت های مورد نیاز خودتون مثل ftp / smtp / https و غیره رو هم در صورت نیاز میتونید بعدا به لیست قوانین فایروال اضافه کنید.
الان دیگه وقتشه که فایروال ufw رو فعال کنید. برای انجام این کار دستور زیر رو اجرا کنید:
و حالا یه بار دیگه وضعیت فایروال رو بررسی کنید:
چیزی که در خروجی میبینید، لیستی از قوانین هست که شما برای فایروال تعریف کردید. برای مدیریت مجدد فایروال، نیازی به غیرفعال کردن آن نیست و میتونید به راحتی تغییرات جدید خودتون رو اعمال کنید. فراموش نکنید که در هنگام تنظیم کردن فایروال نهایت دقت رو انجام بدین چرا که ممکنه با یه اشتباه، حتی ارتباط خودتون با سرور رو هم قطع کنید و کلی دردسر برای خودتون درست کنید.
حذف یک قانون در UFW
برای حذف قوانینی که قبلا تعریف کردین، ابتدا لیست قوانین موجود رو به صورت شماره گذاری شده نمایش بدین:
توی خروجی و در ابتدای هر خط، عددی نمایش داده میشه که در واقع شماره اون قانون هست. حالا مثلا برای حذف قانون شماره [8] دستور زیر رو اجرا میکنیم:
بقیه دستورات ufw رو هم میتونید با اجرای دستور زیر پیدا کنید. دستوراتی جهت تعریف قانونی که موجب عدم دسترسی به یک پورت خاص بشه، اجازه دسترسی به یک پورت تنها در یکی از حالت های ورودی یا خروجی، پاک کردن همه قوانین و ...
امیدوارم این مقاله برای شما مفید بوده باشه، سوال یا مشکلی بود کامنت بذارید حتما پاسخ میدم؛ موفق باشید!
من فقط میخوام ی برنامه خاص برنامه(پارالل استودیو) رو در فایروال غیر فعال کنم که آپدیت نکنه و برام دردسر درست نکنه. چون کرکش کردم و اگه آپدیت بشه غیرفعال میشه. ولی میخوام بقیه تنظیمات و دسترسی ها به حالت اولیه خودش باقی بمونه.