یکی از مهمترین اقداماتی که هر مدیر سرور یا ادمین شبکه برای افزایش امنیت لینوکس باید انجام دهد، راهاندازی و تنظیم صحیح فایروال لینوکس است. در توزیعهای مختلف لینوکسی و همچنین سرور مجازی لینوکس ابزارهای گوناگونی برای مدیریت ترافیک شبکه وجود دارد؛ اما یکی از سادهترین و در عین حال کارآمدترین ابزارها، فایروال UFW (مخفف Uncomplicated Firewall) است.
در این مقاله قصد داریم ضمن بررسی ساختار فایروال لینوکس، نحوه کانفیگ اصولی و کاربردی UFW را به شما آموزش دهیم تا بتوانید امنیت سرور لینوکسی خود را تا حد امکان بالا ببرید.
در این مقاله میخوانید:
فایروال خط مقدم دفاع از هر سرور است. این ابزار ترافیک ورودی و خروجی را کنترل میکند و نقش مهمی در جلوگیری از نفوذهای غیرمجاز و حملات سایبری دارد. در سیستمعامل لینوکس، هسته (Kernel) دارای یک چارچوب به نام Netfilter است. این چارچوب وظیفه مدیریت بستههای شبکه (Packet Filtering) و پیادهسازی مفاهیمی مانند NAT و Firewall را بر عهده دارد.
معمولاً ما مستقیم با Netfilter کار نمیکنیم؛ بلکه از ابزارهای سطح بالاتر مانند iptables یا nftables برای اعمال قوانین امنیتی استفاده میکنیم. در عین حال، میتوان با یک لایه بالاتر از این ابزارها – مثل UFW – تنظیمات را به شکل سادهتری مدیریت کرد و در نهایت امنیت را افزایش داد.
UFW مخفف واژهی Uncomplicated Firewall به معنای «فایروالی که پیچیده نیست» است. همانطور که از نامش پیداست، UFW طراحی شده تا فرآیند نوشتن قوانین فایروال سادهتر شود.
در اکثر توزیعهای مبتنی بر دبیان (Debian) و اوبونتو (Ubuntu)، UFW بهصورت پیشفرض نصب است. برای اطمینان از نصب بودن آن، میتوانید دستور زیر را اجرا کنید:
sudo apt update
sudo apt install ufw
اگر UFW نصب نباشد، با این دستور نصب خواهد شد و در صورتی که نصب باشد، پیام مبنی بر نصب بودن آن دریافت خواهید کرد.
sudo systemctl status ufw
نمایش وضعیت سرویس UFW در سطح سیستم:
برای بررسی وضعیت فعال یا غیرفعال بودن فایروال در خود UFW نیز دستور زیر را وارد کنید:
sudo ufw status
active: قوانین فایروال UFW فعال هستند.
inactive: قوانین فایروال UFW غیرفعال است.
به صورت پیشفرض در UFW، سیاست این است که تمام ترافیک ورودی (Incoming) مسدود شود و تمام ترافیک خروجی (Outgoing) باز باشد. برای مشاهده یا تغییر این وضعیت:
sudo ufw default deny incoming
sudo ufw default allow outgoing
با این تنظیم، تنها اتصالاتی که صریحاً مجاز (Allow) اعلام شدهاند، از بیرون قابل دسترسی هستند. این بهترین حالت برای افزایش امنیت لینوکس است.
sudo ufw enable
نکته مهم: پیش از فعالسازی UFW حتماً مطمئن شوید که پورتهای ضروری مانند SSH یا پورتهای مورد نیاز سرویسهایتان را باز کردهاید. در غیر این صورت، ممکن است دسترسی خود را به سرور از دست بدهید.
معمولترین مثال باز کردن پورت SSH (شماره پورت ۲۲) است:
sudo ufw allow ssh
UFW با تشخیص سرویس SSH، به طور خودکار پورت ۲۲ را برای پروتکل TCP باز میکند. برای مشاهده قوانین فعال:
sudo ufw status
یا برای نمایش جزییات بیشتر:
sudo ufw status verbose
باز کردن پورت به روش مستقیم
sudo ufw allow 80/tcp
در این مثال، پورت ۸۰ پروتکل TCP باز خواهد شد.
اگر نیاز دارید رنجی از پورتها را مجاز کنید:
sudo ufw allow 3000:4000/tcp
این دستور پورتهای بین ۳۰۰۰ تا ۴۰۰۰ را برای پروتکل TCP باز میکند.
اگر میخواهید فقط یک آیپی خاص مثلاً آیپی استاتیک خودتان قادر باشد به سرور SSH بزند (یا هر پورت دیگری)، میتوانید با استفاده از گزینه from
(مبدأ ترافیک) و to
(مقصد ترافیک) این کار را انجام دهید:
sudo ufw allow from <YOUR_IP> to any port 22 proto tcp
به این ترتیب تمامی درخواستهای SSH به جز آنهایی که از این آیپی هستند، مسدود خواهند شد.
sudo ufw status numbered
سپس با دستور زیر قانون مورد نظر را حذف کنید (به جای X، عدد مربوط به آن قانون را وارد کنید):
sudo ufw delete X
اگر بخواهید تمام قوانین و تنظیمات به حالت اولیه برگردد:
sudo ufw reset
این دستور تمام تنظیمات UFW را ریست میکند و حتی آن را به حالت غیرفعال برمیگرداند.
UFW میتواند رخدادها را در سطوح مختلفی (Low, Medium, High, Full) گزارش کند. برای تنظیم سطح گزارش:
sudo ufw logging low
یا
sudo ufw logging medium
با این کار میتوانید میزان جزییات گزارشهای ثبت شده در لاگها را مدیریت کنید.
گاه پیش میآید که پورت SSH را فراموش میکنید قبل از فعالسازی فایروال باز کنید و دسترسیتان قطع میشود. در چنین مواقعی میتوانید از کنسول وب یا VNC ارایهدهنده سرور (سرویس دهنده شما) استفاده کرده و مجدداً با دسترسی روت وارد شوید و قوانین را اصلاح کنید.
بسیاری از سرویسدهندگان ابری، گزینه تنظیم فایروال را در پنل مدیریت خود ارائه میدهند. توصیه میشود علاوه بر فایروال لینوکس که در سطح سیستمعامل فعال میکنید، از قوانین فایروال ابری نیز استفاده کنید تا چند لایه حفاظتی داشته باشید.
در دنیای امروزی که امنیت اطلاعات برای هر کسبوکاری حیاتی شده، افزایش امنیت لینوکس و استفاده از یک فایروال لینوکس مناسب اولین گام در مقابله با نفوذگران به شمار میآید. ابزار UFW با ساختاری ساده ولی قدرتمند به شما اجازه میدهد با چند دستور محدود، ترافیک ناخواسته را مسدود کرده و ترافیک ضروری را بر اساس نیاز خود باز کنید.
با رعایت اصول مطرح شده در این مقاله، میتوانید سرور لینوکسی خود را امنتر کرده و خیال خود و کاربرانتان را از بابت افزایش امنیت لینوکس راحت کنید.
نکته: برای آشنایی بیشتر با دستورات، از دستور زیر استفاده کنید:
man ufw
این راهنما به صورت آفلاین در همه سیستمهای مبتنی بر لینوکس در دسترس است و مثالهای متعددی برای پیکربندی فایروال لینوکس ارائه میدهد.
نوشتن دیدگاه و امتیاز شما، برای ما مهم هست. اون رو با ما و دیگران به اشتراک بگذارید.
آخرین مقالات آموزشی سایناسرور
یکی از مهمترین اقداماتی که هر مدیر سرور یا ادمین شبکه برای افزایش امنیت لینوکس باید انجام دهد، راهاندازی و تنظیم صحیح فایروال لینوکس است. در توزیعهای مختلف لینوکسی و همچنین سرور مجازی لینوکس ابزارهای گوناگونی برای مدیریت ترافیک شبکه […]
مقدمه امنیت روتر میکروتیک یکی از مهمترین چالشهایی است که مدیران شبکه و صاحبان کسبوکارها با آن روبهرو هستند. پیکربندی نامناسب یا بیتوجهی به برخی نکات امنیتی میتواند راه را برای نفوذگران باز کند و خسارات جبرانناپذیری به بار آورد. […]
مقدمه اگر تا به حال در دنیای شبکه و اینترنت فعالیت کرده باشید، احتمالاً با واژهی «پینگ» (Ping) مواجه شدهاید. اما پینگ چیست و چرا تا این حد در عیبیابی مشکلات شبکه اهمیت دارد؟ در این مقاله سعی داریم به […]