آموزش کانفیگ فایروال با UFW در اوبونتو 18.04
فایروال به درستی کانفیگ شده یکی از مهمترین جنبه های امنیت سیستم است. به طور پیش فرض، اوبونتو با یک ابزار پیکربندی فایروال به نام UFW (Uncomplicated Firewall) همراه است. UFW یک سرپناهی کاربر پسند برای مدیریت قوانین فایروال iptables است و هدف اصلی آن این است که iptables را مدیریت کنید و یا به راحتی آن را مدیریت کنید.
پیش نیازها
قبل از شروع این آموزش، مطمئن شوید که شما با یک حساب کاربری با امتیازات sudo یا با کاربر ریشه وارد سرور خود می شوید. بهترین روش این است که دستورات اداری را به عنوان یک کاربر sudo به جای ریشه اجرا کنید. اگر شما یک کاربر sudo در سیستم اوبونتو ندارید، می توانید با دنبال کردن این دستورالعمل ها را ایجاد کنید .
UFW را نصب کنید
فایروال غیر عادی باید به طور پیش فرض در اوبونتو 18.04 نصب شود، اما اگر آن را در سیستم شما نصب نکنید، می توانید بسته را با تایپ کردن نصب کنید:
sudo apt install ufw
وضعیت UFW را بررسی کنید
پس از اتمام نصب، می توانید وضعیت UFW را با دستور زیر بررسی کنید:
sudo ufw status verbose
UFW به طور پیش فرض غیر فعال است. اگر پیش از این هرگز UFW را فعال نکردید، خروجی مانند این خواهد بود:
Status: inactive
اگر UFW فعال باشد، خروجی شبیه به موارد زیر خواهد بود:
سیاست های پیش فرض UFW
به طور پیش فرض، UFW همه اتصالات ورودی را مسدود کرده و تمام اتصالات خروجی را اجازه می دهد. این بدان معنی است که هر کسی که در تلاش برای دسترسی به سرور شما قادر به اتصال نیست، مگر آنکه به طور خاص پورت را باز کنید، در حالی که تمام برنامه های کاربردی و خدماتی که در سرور شما اجرا می شوند، قادر به دسترسی به دنیای خارج خواهند بود.
خط مشی های پیش فرض در /etc/default/ufw
تعریف شده است و می تواند با استفاده از دستور sudo ufw default <policy> <chain>
.
سیاست های فایروال پایه ای برای ایجاد مفاهیم دقیق تر و قوانین تعریف شده توسط کاربر است. در اکثر موارد، سیاست های اولیه UFW پیش فرض یک نقطه شروع خوب است.
پروفایل برنامه
هنگام نصب یک بسته با دستور apt
، یک پرونده کاربردی به دایرکتوری /etc/ufw/applications.d
. مشخصات سرویس را توصیف می کند و شامل تنظیمات UFW می شود.
شما می توانید تمام پرونده های کاربردی موجود در سرور خود را با تایپ کردن لیست کنید:
sudo ufw app list
بسته به بسته های نصب شده بر روی سیستم شما خروجی شبیه به موارد زیر خواهد بود:
Available applications: Dovecot IMAP Dovecot POP3 Dovecot Secure IMAP Dovecot Secure POP3 Nginx Full Nginx HTTP Nginx HTTPS OpenSSH Postfix Postfix SMTPS Postfix Submission
برای پیدا کردن اطلاعات بیشتر در مورد مشخصات خاص و قوانین شامل، از دستور زیر استفاده کنید:
sudo ufw app info 'Nginx Full'
Profile: Nginx Full Title: Web Server (Nginx, HTTP + HTTPS) Description: Small, but very powerful and efficient web server Ports: 80,443/tcp
همانطور که می بینید از خروجی بالای نمای Nginx Full پورت 80
و 443
باز می شود.
اجازه اتصال SSH
قبل از اینکه فایروال UFW را فعال کنیم، باید یک قاعده را که به اتصال SSH های ورودی اجازه می دهد اضافه کنیم. اگر شما از یک مکان از راه دور به سرور خود وصل شده اید، تقریبا همیشه این کار را انجام می دهید و قبل از اینکه به طور صریح اجازه اتصال SSH های ورودی را فعال کنید، فایروال UFW را فعال کنید، دیگر نمی توانید به سرور اوبونتو متصل شوید.
برای پیکربندی فایروال UFW برای اجازه دادن به اتصالات SSH ورودی، دستور زیر را تایپ کنید:
sudo ufw allow ssh
Rules updated Rules updated (v6)
اگر پورت SSH را به پورت دیگری تغییر داده این، آن را در فایروال باز کنید.
برای مثال، اگر پورت SSH شما 4422
است، می توانید از دستور زیر برای اتصال به آن پورت استفاده کنید:
sudo ufw allow 4422/tcp
UFW را فعال کنید
اکنون که فایروال UFW شما پیکربندی شده است تا اتصالات SSH ورودی را فعال کند، می توانیم آن را با تایپ کردن فعال کنیم:
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
شما هشدار می دهید که فعال کردن فایروال ممکن است اتصالات ssh موجود را مختل کند، فقط y
تایپ کرده و Enter
بزنید.
اتصالات را در سایر پورت ها مجاز می سازد
بسته به برنامه هایی که در سرور شما اجرا می شوند و نیازهای خاص شما نیز باید دسترسی ورودی به برخی از پورت های دیگر را مجاز کنید.
در زیر چند نمونه از نحوه دسترسی به برخی از خدمات رایج را به شما نشان خواهیم داد:
پورت 80 – HTTP را باز کنید
اتصالات HTTP با دستور زیر امکان پذیر است:
sudo ufw allow http
به جای http شما می توانید از شماره پورت استفاده کنید، 80:
sudo ufw allow 80/tcp
یا شما می توانید از مشخصات برنامه، در این مورد، ‘Nginx HTTP’ استفاده کنید:
sudo ufw allow 'Nginx HTTP'
پورت 443 – HTTPS را باز کنید
اتصالات HTTP با دستور زیر امکان پذیر است:
sudo ufw allow https
برای به دست آوردن همان به جای پروفایل https
شما می توانید از شماره پورت، 443
:
sudo ufw allow 443/tcp
یا شما می توانید از پروفایل برنامه، ‘Nginx HTTPS’ استفاده کنید:
sudo ufw allow 'Nginx HTTPS'
پورت 8080 را باز کنید
اگر تامکت یا هر برنامه دیگری را اجرا می کنید که از پورت 8080
استفاده میکند از دستور زیر استفاده کنید:
sudo ufw allow 8080/tcp
اجازه رنج پورت
به جای دسترسی به پورت های مجاز UFW اجازه می دهد ما اجازه دسترسی به رنج های پورت را داشته باشیم. هنگامی که اجازه می دهد رنج های پورت با UFW، شما باید پروتکل را مشخص کنید، یا tcp
یا udp
. برای مثال، اگر شما می خواهید پورت ها را از 7100
به 7200
در هر دو tcp
و udp
بگذارید، دستور زیر را اجرا کنید:
sudo ufw allow 7100:7200/tcp sudo ufw allow 7100:7200/udp
درصورتی که با انجام این مراحل مشکل دارید، با خرید سرورمجازی از وان سرور، کلیه این خدمات را برای شما به صورت رایگان انجام می دهیم.
اجازه دادن به آدرس های خاص IP
برای اجازه دادن به دسترسی در تمام پورت ها از دستگاه خانگی خود با آدرس IP 64.63.62.61، بعد از آدرس IP که می خواهید به لیست سفید مشخص کنید، مشخص کنید:
sudo ufw allow from 64.63.62.61
اجازه دادن به IP های خاص در پورت خاص
برای اجازه دادن به دسترسی به یک پورت خاص، می توان پورت 22 را از دستگاه کار خود با آدرس IP 64.63.62.61 استفاده کرد، to any port
که شماره پورت آن است استفاده می شود:
sudo ufw allow from 64.63.62.61 to any port 22
اجازه دادن به زیر شبکه ها
فرمان برای اجازه اتصال به زیر شبکه از آدرس های IP همانند استفاده از یک آدرس IP واحد است، تنها تفاوت این است که شما باید mask netmask را مشخص کنید. به عنوان مثال، اگر می خواهید اجازه دسترسی به آدرس های IP را از 192.168.1.1 به 192.168.1.254 را به پورت 3360 ( MySQL ) بدهید، می توانید از این دستور استفاده کنید:
sudo ufw allow from 192.168.1.0/24 to any port 3306
اتصال به یک رابط شبکه اختصاصی اجازه دهید
برای اجازه دادن به دسترسی در یک پورت خاص، می توان گفت که پورت 3360 تنها به رابط شبکه خاص eth2
، پس باید مشخص کنید allow in on
و نام واسط شبکه مشخص کنید:
sudo ufw allow in on eth2 to any port 3306
رد ارتباطات
خط مشی پیش فرض برای تمام اتصالات ورودی تنظیم شده است که deny
و اگر شما آن را تغییر نداده اید، UFW تمام اتصال های ورودی را مسدود می کند مگر اینکه به طور خاص اتصال را باز کنید.
بگذارید بگوییم شما پورت 80
و 443
را باز کردید و سرور شما از شبکه 23.24.25.0/24
تحت حمله است. برای رد کردن تمام اتصالات از 23.24.25.0/24
می توانید از دستور زیر استفاده کنید:
sudo ufw deny from 23.24.25.0/24
اگر فقط می خواهید دسترسی به پورت های 80
و 443
از 23.24.25.0/24
کنید، می توانید از دستور زیر استفاده کنید:
sudo ufw deny from 23.24.25.0/24 to any port 80 sudo ufw deny from 23.24.25.0/24 to any port 443
نوشتن قوانین انکار همان چیزی است که نوشتن اجازه می دهد قوانین، شما فقط باید جایگزین allow
با deny
.
قوانین UFW را حذف کنید
دو روش مختلف برای حذف قوانین UFW وجود دارد، با شماره قانون و با مشخص کردن قاعده واقعی.
حذف قوانین UFW با تعداد حقیقی آسان تر است، مخصوصا اگر شما UFW جدید هستید. برای حذف یک قاعده با قاعده اول ابتدا باید عدد حقیقی را که می خواهید حذف کنید، پیدا کنید، می توانید این کار را با دستور زیر انجام دهید:
sudo ufw status numbered
Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp ALLOW IN Anywhere [ 3] 8080/tcp ALLOW IN Anywhere
برای حذف قانون شماره 3، قانون اجازه اتصال به پورت 8080 را از دستور زیر استفاده می کند:
sudo ufw delete 2
روش دوم این است که یک حقیقت را با مشخص کردن قاعده واقعی حذف کنید، مثلا اگر یک قانون برای باز کردن پورت 8069
کردید، می توانید آن را با:
sudo ufw delete allow 8069
غیرفعال UFW
اگر به هر دلیلی می خواهید UFW را متوقف کنید و تمامی قوانینی را که می توانید استفاده کنید غیرفعال کنید:
sudo ufw disable
بعدا اگر میخواهید مجدد UTF را فعال کنید و تمام قوانین را فعال کنید، فقط تایپ کنید:
sudo ufw enable
تنظیم مجدد UFW
تنظیم مجدد UFW UFW را غیرفعال می کند و تمامی قوانین فعال را حذف می کند. این کار مفید است اگر شما می خواهید تمام تغییرات خود را لغو کنید و تازه شروع کنید.
برای بازنشانی UFW به سادگی در فرمان زیر تایپ کنید:
sudo ufw reset
نتیجه
شما یاد گرفته اید که چگونه فایروال UFW را بر روی سرور اوبونتو 18.04 نصب و پیکربندی کنید. اطمینان حاصل کنید که تمام اتصالات ورودی که برای عملکرد مناسب سیستم شما لازم است و تمام اتصلات غیرضروری را محدود کنید. همچنین درصورت نیاز به غیر فعال کردن فایروال در اوبنتو 18.04 مقاله ما را مطالعه کنید.
اولین نفری باشید که از آموزشها و تخفیفهای ویژه با خبر میشوید 😉
با عضویت در خبرنامه از 80 درصد تخفیف بهره مند شوید
سلام خسته نباشید ممنون از سایت خوب و کاملتون
یه سرور مجازی لینوکس خریدم
چطور میتونم پورت های مربوطه را در فایروال سرور اضافه کنم
مثلا اجازه بدم پورت های ورودی TCP از پورت
1024 تا پورت 65535
allow incoming TCP connections on ports ranging from 1024 to 65535.
با سلام، با این روش تست کنید:
ufw allow 1024:65535