فهرست محتوا
فایروال (Firewall) یک نرمافزار یا سختافزار امنیتی است که با کنترل ترافیک ورودی و خروجی در یک شبکه، از دسترسیهای غیرمجاز به سیستم جلوگیری میکند. یکی از محبوبترین فایروالهای نرمافزاری در لینوکس اوبونتو، UFW یا Uncomplicated Firewall نام دارد. UFW یک فایروال ساده و کاربرپسند برای سیستمعاملهای لینوکس است که به صورت پیشفرض در توزیعهای مختلف اوبونتو نصب میشود. این فایروال با هدف ارائه یک رابط کاربری ساده و قابل فهم برای مدیریت قوانین فایروال طراحی شده است.
UFW چیست؟
UFW یا Uncomplicated Firewall یک فایروال داخلی ساده اما قدرتمند برای سیستم عاملهای لینوکس است. این ابزار مدیریت iptables را آسانتر می کند و امکان کنترل دقیق ترافیک ورودی و خروجی به سیستم را برای کاربران فراهم میکند.
در دنیای امروز که تهدیدات امنیتی روز به روز در حال افزایش است، وجود یک فایروال قدرتمند برای محافظت از سیستمها اهمیت ویژه ای دارد. UFW با فراهم آوردن یک رابط کاربری ساده، امکان پیکربندی و مدیریت فایروال را برای کاربران فراهم می کند. از مزایای اصلی استفاده از UFW می توان به موارد زیر اشاره کرد:
- افزایش امنیت سیستم: با استفاده از UFW می توانید به راحتی پورتها و سرویسهای مختلف را مسدود یا باز کنید تا از نفوذ احتمالی به سیستم جلوگیری شود.
- کنترل دقیق ترافیک: با قوانین منعطف UFW، امکان کنترل دقیق ترافیک ورودی و خروجی بر اساس آدرس IP، پورت و پروتکل وجود دارد.
- پشتیبانی از IPv4 و IPv6: این فایروال هر دو نسخه IPv4 و IPv6 را پشتیبانی میکند.
- صرفه جویی در منابع سیستم: برخلاف برخی فایروالهای پیچیده، UFW به دلیل ساده بودن، منابع کمتری از سیستم را مصرف میکند.
- ذخیره سازی قوانین: قوانین تنظیم شده در UFW به صورت خودکار در فایلهای پیکربندی ذخیره میشوند تا پس از راهاندازی مجدد سیستم نیز اعمال شوند.
UFW با توجه به ویژگی های منحصر به فرد خود، در موارد مختلفی برای افزایش امنیت سیستمهای لینوکس مورد استفاده قرار می گیرد:
- سرورهای وب: در سرورهای میزبان وب سایتها، UFW میتواند برای باز گذاشتن پورت های HTTP و HTTPS و مسدود کردن سایر پورتهای غیرضروری استفاده شود تا امنیت سرور افزایش یابد.
- سرورهای ایمیل: در سرورهای ارائه دهنده خدمات ایمیل، UFW میتواند برای اجازه دسترسی به پروتکلهای SMTP، POP3 و IMAP و دیگر پورت های مرتبط استفاده شود.
- سرورهای FTP: در سرورهای FTP، این فایروال میتواند برای باز گذاشتن پورت های FTP و مسدود کردن سایر پورتها به کار رود.
- سیستمهای شخصی: استفاده از UFW حتی در سیستم های شخصی نیز میتواند امنیت را افزایش دهد و از دسترسیهای غیرمجاز جلوگیری کند.
نصب فایروال UFW
در اوبونتو و سایر توزیع های مبتنی بر دبیان، می توانید از دستور apt برای نصب UFW استفاده کنید. برای این کار میتوانید از دستورات زیر استفاده کنید:
sudo apt update
sudo apt install ufw
پس از نصب موفقیت آمیز UFW، با استفاده از دستور sudo ufw enable میتوانید آن را فعال کنید.
تنظیم اولیه UFW
پس از نصب UFW در سیستم عامل لینوکس، گام بعدی تنظیم اولیه آن است. UFW پس از نصب به طور پیشفرض غیرفعال است. برای فعال کردن آن باید از دستور زیر استفاده کنید:
sudo ufw enable
این دستور UFW را فعال میکند و قوانین پیشفرض آن را اعمال میکند. قوانین پیشفرض شامل بستن تمام پورتهای ورودی و خروجی به جز پورت 22 (SSH) که برای دسترسی از راه دور استفاده میشود، است. قبل از فعال کردن UFW، حتما باید از باز بودن پورت SSH یا هر پورت دیگری که برای دسترسی از راه دور استفاده میکنید، اطمینان حاصل کنید. در غیر این صورت، ممکن است دسترسی از راه دور به سیستم قطع شود.
UFW دارای قوانین پیشفرض خاصی است که میتوانید آنها را بر اساس نیازهای خود تغییر دهید. برای مشاهده قوانین پیشفرض، میتوانید از دستور زیر استفاده کنید:
sudo ufw show raw
این دستور، قوانین پیشفرض UFW را نمایش میدهد. خروجی این دستور شامل سه بخش اصلی فایروال است:
- INPUT: قوانین مربوط به ترافیک ورودی
- OUTPUT: قوانین مربوط به ترافیک خروجی
- FORWARD: قوانین مربوط به ترافیک عبوری (برای سیستم های مسیریاب)
در هر بخش، میتوانید قوانین (policy) پیشفرض را مشاهده کنید. قوانین پیشفرض دو حالت “ACCEPT” (اجازه دسترسی) یا “Deny” (رد دسترسی) را میتوانند داشته باشد.
برای تغییر قوانین پیشفرض هر بخش، از دستور sudo ufw default policy chain استفاده میشود. به عنوان مثال، برای تغییر قوانین پیشفرض برای ترافیک ورودی به حالت “اجازه دسترسی” از دستور زیر استفاده میشود:
sudo ufw default allow incoming
این دستور باعث می شود که تمام ترافیک ورودی به طور پیش فرض مجاز باشد. البته، همچنان میتوانید پورتهای خاصی را با استفاده از قوانین مسدود کنید.
برای تغییر قوانین پیشفرض برای ترافیک خروجی به حالت “رد دسترسی”، از دستور زیر استفاده کنید:
sudo ufw default deny outgoing
این دستور باعث میشود که تمام ترافیک خروجی به طور پیشفرض رد شود، مگر اینکه شما به پورتهای خاصی با استفاده از قوانین اجازه دهید.
UFW دارای پروفایلها و تنظیمات از پیش تعریف شدهای برای سرویسهای مختلف است که میتوانید آنها را فعال کنید. برای مشاهده لیست پروفایلها، از دستور زیر استفاده میشود:
sudo ufw app list
سپس برای فعال کردن یک پروفایل خاص، باید از دستور sudo ufw allow profile_name استفاده کنید. به عنوان مثال، برای فعال کردن پروفایل Apache، باید دستور زیر را اجرا کنید:
sudo ufw allow Apache
با تنظیم و تغییر قوانین پیشفرض، میتوانید سطح امنیت اولیه سیستم خود را تعیین کنید.
باز کردن و بستن پورتها در UFW
یکی از کاربردهای اصلی فایروال UFW، کنترل دسترسی به پورتهای شبکه است. با استفاده از UFW، میتوانید پورتهای مختلف را برای سرویسهای خاص باز یا بسته کنید تا امنیت سیستم خود را افزایش دهید.
باز کردن پورتها در UFW
برای باز کردن یک پورت در UFW، از دستور زیر استفاده کنید:
sudo ufw allow port/protocol
در این دستور، port شماره پورت مورد نظر است و protocol پروتکل مربوطه (tcp یا udp) میباشد. اگر پروتکل را مشخص نکنید، این دستور به طور پیشفرض برای هر دو پروتکل اعمال می شود. برای مثال، برای باز کردن پورت 80 (HTTP) برای هر دو پروتکل TCP و UDP، باید دستور زیر را اجرا کنید:
sudo ufw allow 80
یا اگر می خواهید پورت 80 را فقط برای پروتکل TCP باز کنید، باید از دستور زیر استفاده کنید:
sudo ufw allow 80/tcp
پس از اجرای این دستورات، پورت مورد نظر در UFW باز خواهد شد و ترافیک مربوط به آن پورت مجاز خواهد بود.
بستن پورتها در UFW
برای بستن یک پورت در UFW، میتوانید از دستور زیر استفاده کنید:
sudo ufw deny port/protocol
این دستور مشابه دستور باز کردن پورت است، با این تفاوت که به جای allow، از deny استفاده میشود. برای مثال، برای بستن پورت 22 (SSH) برای پروتکل TCP، باید دستور زیر را اجرا کنید:
sudo ufw deny 22/tcp
این دستور باعث میشود که ترافیک ورودی برای پورت 22 با پروتکل TCP رد شود.
باز کردن و بستن پورتها بر اساس سرویس
علاوه بر باز کردن و بستن پورتها به صورت مستقیم، UFW به شما این امکان را میدهد تا پورتهای مرتبط با یک سرویس خاص را نیز باز یا بسته کنید. برای این کار، میتوانید از دستور زیر استفاده کنید:
sudo ufw allow|deny service_name
برای مثال، برای باز کردن پورت های مرتبط با سرویس Apache، باید دستور زیر را اجرا کنید:
sudo ufw allow Apache
این دستور باعث میشود که پورتهای 80 (HTTP) و 443 (HTTPS) که برای سرویس Apache مورد نیاز هستند، باز شوند.
برای باز کردن پورتهای مرتبط با سرویس SSH، میتوانید از دستور زیر استفاده کنید:
sudo ufw allow ssh
بررسی وضعیت فایروال UFW
یکی از مزایای استفاده از UFW این است که میتوانید به راحتی وضعیت فعلی آن را بررسی کنید و لاگهای مربوط به فعالیتهای فایروال را مشاهده نمایید. این امر به شما این امکان را میدهد تا از قوانین و تنظیمات موجود آگاه شوید، مشکلات احتمالی را شناسایی کنید و در صورت لزوم، تغییرات لازم را اعمال نمایید.
بررسی وضعیت فعلی UFW
برای مشاهده وضعیت کلی UFW، میتوانید از دستور زیر استفاده کنید:
sudo ufw status
این دستور اطلاعات زیر را نمایش میدهد:
- وضعیت فعلی UFW (فعال یا غیرفعال)
- پورتهای باز برای ترافیک ورودی
- پورتهای باز برای ترافیک خروجی
این اطلاعات به شما کمک میکند تا به سرعت بفهمید که چه پورتهایی در حال حاضر در UFW باز هستند و فایروال در چه وضعیتی قرار دارد.
مشاهده لاگهای UFW
UFW همچنین امکان مشاهده لاگهای فایروال را نیز فراهم میکند. برای این کار، باید از دستور زیر استفاده کنید:
sudo ufw status verbose
این دستور، علاوه بر اطلاعات وضعیت کلی، لاگهای اخیر مربوط به فعالیتهای فایروال را نیز نمایش میدهد. این لاگها میتوانند شامل موارد زیر باشند:
- ترافیک رد شده توسط فایروال
- ترافیک مجاز شده توسط فایروال
- خطاهای احتمالی در فایروال
با مطالعه این لاگها، میتوانید بهتر درک کنید که چه اتفاقاتی در فایروال در حال رخ دادن است و در صورت لزوم، اقدامات لازم را انجام دهید.
مشاهده لاگهای کامل UFW
اگر میخواهید لاگهای کامل UFW را مشاهده کنید، میتوانید از دستور زیر استفاده کنید:
sudo ufw logging on
این دستور باعث میشود تا UFW همه رویدادهای مربوط به فایروال را در فایل لاگ var/log/ufw.log ثبت کند. سپس میتوانید با استفاده از دستور زیر، میتوانید محتویات این فایل لاگ را مشاهده کنید:
sudo tail -n 20 /var/log/ufw.log
این دستور، 20 خط آخر فایل لاگ را نمایش میدهد. میتوانید عدد 20 را با عدد دیگری جایگزین کنید تا تعداد خطوط بیشتری از لاگها را مشاهده کنید.
با مطالعه لاگهای کامل UFW، میتوانید فعالیتهای فایروال را به طور دقیقتر بررسی کنید و در صورت لزوم، اقدامات لازم را برای رفع مشکلات احتمالی انجام دهید.
حذف قوانین در فایروال UFW
هنگام استفاده از فایروال UFW، ممکن است به دلایل مختلف نیاز داشته باشید که قوانین موجود را حذف کنید. این امر میتواند شامل حذف قوانین پورتهای باز، قوانین مربوط به آدرسهای IP خاص یا حتی حذف کامل قوانین فایروال باشد.
حذف قوانین مربوط به پورتهای باز
اگر میخواهید یک پورت خاص را که قبلاً در UFW باز کردهاید، ببندید، باید از دستور زیر استفاده کنید:
sudo ufw delete allow port/protocol
در دستور بالا باید عبارت port را با شماره پورت مورد نظر و عبارت protocol را با پروتکل مربوطه (tcp یا udp) جایگزین کنید. اگر پروتکل خاصی را مشخص نکنید، دستور بالا به طور پیشفرض برای هر دو پروتکل اعمال میشود. برای مثال، اگر میخواهید پورت 80 (HTTP) را برای پروتکل TCP ببندید، باید دستور زیر را اجرا کنید:
sudo ufw delete allow 80/tcp
حذف قوانین مربوط به آدرسهای IP خاص
اگر قبلاً قوانینی برای اجازه یا عدم اجازه دسترسی به آدرسهای IP خاص تعریف کردهاید، میتوانید آنها را با استفاده از دستور زیر حذف کنید:
sudo ufw delete allow from ip_address
sudo ufw delete deny from ip_address
در دستورات بالا باید عبارت ip_address با آدرس IP مورد نظر جایگزین کنید. به عنوان مثال، برای حذف قانون اجازه دسترسی از آدرس IP 192.168.1.100، میتوانید از دستور زیر استفاده کنید:
sudo ufw delete allow from 192.168.1.100
حذف تمام قوانین فایروال
اگر میخواهید تمام قوانین تعریف شده در UFW را حذف کنید، میتوانید از دستور زیر استفاده کنید:
sudo ufw reset
این دستور باعث میشود تا تمام قوانین موجود در UFW، از جمله قوانین پورتهای باز، قوانین آدرسهای IP و سایر قوانین حذف شوند. پس از اجرای این دستور، UFW به حالت پیشفرض خود بازمیگردد و تنها پورت 22 (SSH) برای دسترسی از راه دور باز خواهد بود. قبل از حذف قوانین فایروال، حتماً باید از پیامدهای احتمالی آن آگاه باشید. حذف قوانین میتواند منجر به از دست رفتن دسترسی به برخی سرویسها یا کاهش امنیت سیستم شود. بنابراین، توصیه میشود که قبل از انجام این کار، از وضعیت فعلی فایروال و قوانین موجود مطلع باشید.
غیرفعال کردن فایروال UFW
گاهی اوقات ممکن است به دلایل مختلف نیاز داشته باشید تا فایروال UFW را در سیستم لینوکس خود غیرفعال کنید. این امر میتواند به دلیل انجام تنظیمات، رفع مشکلات یا حتی برای دسترسی موقت به سرویسهای خاص باشد.
برای غیرفعال کردن UFW به طور موقت، میتوانید از دستور زیر استفاده کنید:
sudo ufw disable
این دستور باعث میشود که UFW به صورت موقت غیرفعال شود و تمام قوانین آن لغو گردد. در این حالت، تمام ترافیک ورودی و خروجی به صورت آزادانه مجاز خواهد بود. پس از انجام کارهای مورد نظر، میتوانید با استفاده از دستور زیر، UFW را دوباره فعال کنید:
sudo ufw enable
این دستور باعث میشود که UFW دوباره فعال شده و قوانین قبلی آن اعمال گردد.