UFW ، يا فايروال ساده (غير پيچيده) ، يك رابط مديريت ساده فايروال است كه پيچيدگي فن آوري هاي فيلترينگ سطح پايين تر مانند iptables و nftables را پنهان مي كند. اگر به دنبال شروع به كار در تأمين امنيت شبكه خود هستيد و مطمئن نيستيد از كدام ابزار استفاده كنيد ، UFW ميتواند انتخاب مناسبي براي شما باشد.
در اين آموزش نحوه تنظيم فايروال با UFW در اوبونتو 20.04 به شما نشان داده خواهد شد.
پيش نيازها
براي دنبال كردن اين آموزش ، به موارد زير نياز داريد:
• يك سرور مجازي Ubuntu 20.04 با يك كاربر sudo غير ريشه ، كه مي توانيد با دنبال كردن ستاپ اوليه سرور مجازي با آموزش اوبونتو 20.04 آن را تنظيم كنيد.
UFW به طور پيش فرض در اوبونتو نصب شده است. اگر به دلايلي نصب نشده ، مي توانيد آن را با sudo apt install ufw نصب كنيد.
مرحله 1 – استفاده از IPv6 با UFW (اختياري)
اين آموزش با در نظرگيري IPv4 نوشته شده است ، اما وقتي آن را فعال كنيد ، براي IPv6 نيز كار خواهد كرد. اگر سرور مجازي Ubuntu شما IPv6 را فعال كرده است ، اطمينان حاصل كنيد كه UFW براي پشتيباني از IPv6 تنظيم شده باشد تا بتواند علاوه بر IPv4 ، قوانين فايروال را براي IPv6 نيز مديريت كند. براي انجام اين كار ، پيكربندي UFW را با nano يا ويرايشگر مورد علاقه خود باز كنيد.
$ sudo nano /etc/default/ufw
سپس مطمئن شويد كه مقدار IPV6 بله است. مي بايست شبيه به اين باشد:
/etc/default/ufw excerpt
IPV6=yes
فايل را ذخيره كنيد و ببنديد. حال ، هنگامي كه UFW فعال است ، به گونه اي تنظيم مي شود كه قوانين IPv4 و IPv6 را بنويسيد. با اين حال ، قبل از فعال كردن UFW ، مي خواهيم اطمينان حاصل كنيم كه فايروال شما پيكربندي شده است تا به شما امكان اتصال از طريق SSH را بدهد. بياييد با تنظيم رويكرد پيش فرض شروع كنيم.
مرحله 2 – تنظيم رويكرد هاي پيش فرض
اگر به تازگي كار با فايروال را شروع كرده ايد ، اولين قوانيني كه بايد تعريف كنيد رويكرد پيش فرض شما هستند. اين قوانين نحوه كنترل ترافيك را كه صريحاً با ساير قوانين مطابقت ندارد ، كنترل مي كنند. به طور پيش فرض ، UFW قرار است تمام اتصالات ورودي را رد كند و به همه اتصالات خروجي اجازه دهد. اين بدان معناست كه هركسي كه سعي در دستيابي به سرور مجازي شما داشته باشد قادر به اتصال نخواهد بود ، در حالي كه هر برنامه اي در سرور مجازي قادر به دستيابي به دنياي خارج خواهد بود.
بياييد قوانين UFW را به صورت پيش فرض تنظيم كنيم ، بنابراين مي توانيم اطمينان حاصل كنيم كه شما قادر خواهيد بود اين آموزش را دنبال كنيد. براي تنظيم پيش فرض هاي استفاده شده توسط UFW ، از اين دستورات استفاده كنيد:
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
اين دستورات پيش فرض ها را براي رد ورودي و اجازه دسترسي به اتصالات تنظيم مي كنند. اين پيش فرض هاي فايروال به تنهايي ممكن است براي يك رايانه شخصي كافي باشد ، اما به طور معمول سرور مجازي ها بايد به درخواست هاي دريافتي از كاربران خارجي پاسخ دهند. در ادامه به آن خواهيم پرداخت.
مرحله 3 – اجازه اتصال به SSH
اگر اكنون فايروال UFW خود را فعال كنيم ، تمام اتصالات ورودي را رد مي كند. اين بدان معناست كه بايد قوانيني را ايجاد كنيم كه صريحاً اجازه ورود به اتصالات ورودي قانوني را بدهد – براي مثال اتصالات SSH يا HTTP- اگر ميخواهيم سرور مجازي ما به آن نوع درخواستها پاسخ دهد. اگر از سرور مجازي ابري استفاده مي كنيد ، احتمالاً بايد به اتصالات SSH ورودي اجازه دهيد تا بتوانيد به سرور مجازي خود متصل شويد و مديريت كنيد.
براي پيكربندي سرور مجازي خود جهت اجازه دادن به اتصالات SSH ، مي توانيد از اين دستور استفاده كنيد:
$ sudo ufw allow ssh
با اين كار قوانين فايروال ايجاد مي شود كه به كليه اتصالات در پورت 22 اجازه مي دهد ، يعني پورتي كه Daemon SSH بطور پيش فرض در آن گوش مي دهد. UFW مي داند كه پورت allow ssh به چه معني است زيرا به عنوان يك سرويس در فايل / etc / service ليست شده است.
با اين وجود ، ما در واقع مي توانيم با مشخص كردن پورت به جاي نام سرويس ، قانون معادل آن را بنويسيم. به عنوان مثال ، اين دستور مانند دستور فوق كار مي كند:
$ sudo ufw allow 22
اگر Daemon SSH خود را براي استفاده از پورت ديگري پيكربندي كرده ايد ، بايد پورت مناسب را مشخص كنيد. به عنوان مثال ، اگر سرور مجازي SSH شما پورت 2222 را گوش مي دهد ، مي توانيد از اين دستور براي اتصال در آن پورت استفاده كنيد:
$ sudo ufw allow 2222
اكنون كه فايروال شما پيكربندي شده است تا امكان اتصال SSH ورودي را فراهم كند ، مي توانيم آن را فعال كنيم.
مرحله 4 – فعال كردن UFW
براي فعال كردن UFW ، از اين دستور استفاده كنيد:
$ sudo ufw enable
هشداري دريافت خواهيد كرد كه مي گويد ممكن است اين فرمان اتصالات SSH موجود را مختل كند. ما قبلاً يك قانون فايروال تنظيم كرده ايم كه اتصالات SSH را امكان پذير مي سازد ، بنابراين ميتوان ادامه داد. در پاسخ به اعلان y را وارد كنيد و ENTER را بزنيد.
فايروال اكنون فعال است. براي مشاهده قوانيني كه تنظيم شده است ، دستور verbose status sudo ufw را اجرا كنيد. بقيه اين آموزش نحوه استفاده از UFW را با جزئيات بيشتر ، مانند قبول يا رد انواع مختلف اتصالات را ارائه مي دهد.
مرحله 5 – اجازه برقراري ساير اتصالات
در اين مرحله ، شما بايد به ساير اتصالات مورد نياز سرور مجازي خود براي پاسخگويي اجازه دهيد. اتصالاتي كه شما بايد به آنها اجازه دهيد بستگي به نيازهاي خاص شما دارد. خوشبختانه ، شما مي دانيد چگونه مي توانيد قوانيني را بنويسيد كه به اتصالات مبتني بر نام سرويس يا پورت اجازه مي دهد. ما قبلاً اين كار را براي SSH در پورت 22 انجام داديم.
HTTP در پورت 80 ، همان چيزي كه سرور مجازي هاي وب رمز گذاري نشده از آن استفاده مي كنند ، از sudo ufw allow http يا sudo ufw allow 80 استفاده مينمايد.
HTTPS در پورت 443 ، همان چيزي كه سرور مجازي هاي رمزگذاري شده از آن استفاده مي كنند ، از sudo ufw allow https يا sudo ufw allow 443 استفاده مينمايد.
به غير از مشخص كردن پورت يا سرويس شناخته شده ، راه هاي ديگري براي اجازه ساير اتصالات وجود دارد.
محدوده هاي خاص پورت
شما مي توانيد محدوده پورت را با UFW مشخص كنيد. برخي از برنامه ها به جاي يك پورت واحد از پورت هاي مختلف استفاده مي كنند.
به عنوان مثال ، براي اجازه دادن به اتصالات X11، كه از پورت هاي 6000-6007 استفاده مي كنند ، از اين دستورات استفاده كنيد:
$ sudo ufw allow 6000:6007/tcp
$ sudo ufw allow 6000:6007/udp
هنگام مشخص كردن محدوده پورت با UFW ، بايد پروتكل (tcp يا udp) را مشخص كنيد كه قوانين بايد روي آن اعمال شود. ما قبلاً به اين موضوع اشاره نكرده ايم زيرا مشخص نكردن پروتكل، به طور خودكار به هر دو پروتكل اجازه مي دهد ، كه در اكثر موارد مطلوب است.
آدرس هاي IP خاص
هنگام كار با UFW ، مي توانيد آدرس IP را نيز مشخص كنيد. به عنوان مثال ، اگر مي خواهيد از يك آدرس IP خاص مانند آدرس IP محل كار يا خانه 203.0.113.4 به اتصالات اجازه دهيد ، بايد from و سپس آدرس IP را مشخص كنيد:
$ sudo ufw allow from 203.0.113.4
همچنين مي توانيد با افزودن to any port به اضافه شماره پورت ، پورت خاصي را تعيين كنيد كه آدرس IP مجاز به اتصال به آن باشد. به عنوان مثال ، اگر مي خواهيد 203.0.113.4 به پورت 22 (SSH) وصل شود ، از اين دستور استفاده كنيد:
$ sudo ufw allow from 203.0.113.4 to any port 22
زيرشبكه ها
اگر مي خواهيد به يك زير شبكه از آدرس هاي IP اجازه دهيد ، مي توانيد با استفاده از نماد CIDR اين كار را براي مشخص كردن يك netmask انجام دهيد. به عنوان مثال ، اگر مي خواهيد تمام آدرسهاي IP از 203.0.113.1 تا 203.0.113.254 را مجاز كنيد ، مي توانيد از اين دستور استفاده كنيد:
$ sudo ufw allow from 203.0.113.0/24
به همين ترتيب ، همچنين مي توانيد پورت مقصد را تعيين كنيد كه زير شبكه 203.0.113.0/24 به آن وصل شود. باز هم ، ما از پورت 22 (SSH) به عنوان نمونه استفاده خواهيم كرد:
$ sudo ufw allow from 203.0.113.0/24 to any port 22
اتصالات به يك رابط شبكه خاص
اگر مي خواهيد يك قانون فايروال ايجاد كنيد كه فقط مربوط به يك رابط شبكه خاص باشد ، مي توانيد با مشخص كردن ” allow in on ” و به دنبال آن نام رابط شبكه ، اين كار را انجام دهيد.
ممكن است بخواهيد قبل از ادامه ، رابط هاي شبكه خود را جستجو كنيد. براي انجام اين كار ، از اين دستور استفاده كنيد:
$ ip addr
Output Excerpt
2: eth0:
. . .
3: eth1:
. . .
خروجي هايلايت شده نشانگر نام هاي رابط شبكه است. معمولاً چيزي مانند eth0 يا enp3s2 نامگذاري ميشوند.
بنابراين ، اگر سرور مجازي شما يك رابط شبكه عمومي به نام eth0 دارد ، مي توانيد با اين دستور ترافيك HTTP (پورت 80) را به آن مجاز كنيد:
$ sudo ufw allow in on eth0 to any port 80
اين كار به سرور مجازي شما امكان مي دهد درخواستهاي HTTP را از طريق اينترنت عمومي دريافت كند.
يا اگر مي خواهيد به عنوان مثال سرور مجازي پايگاه داده MySQL (پورت 3306) شما را به اتصالات رابط شبكه خصوصي eth1 گوش دهد ، مي توانيد از اين دستور استفاده كنيد:
$ sudo ufw allow in on eth1 to any port 3306
اين دستور به سرور مجازي هاي ديگر در شبكه خصوصي شما اجازه مي دهد تا به پايگاه داده MySQL متصل شوند.
مرحله 6 – رد اتصالات
اگر رويكرد پيش فرض اتصالات ورودي را تغيير نداده ايد ، UFW به گونه اي پيكربندي ميشود تا تمام اتصالات ورودي را رد كند. به طور كلي ، اين كار با ملزم كردن شما به ايجاد قوانيني كه صريحاً اجازه ورود به پورت هاي خاص و آدرس هاي IP را ميدهند ، فرايند ايجاد يك فايروال ايمن را ساده تر مي كند.
با اين وجود ، گاهي اوقات مي خواهيد اتصالات خاص را بر اساس آدرس IP منبع يا زير شبكه رد كنيد ، شايد به اين دليل كه مي دانيد كه سرور مجازي شما از آنجا مورد حمله قرار مي گيرد. همچنين ، اگر مي خواهيد رويكرد ورودي پيش فرض خود را به allow تغيير دهيد (كه توصيه نمي شود) ، لازم است براي هرگونه خدمات يا آدرسهاي IP كه نمي خواهيد مجوزهاي اتصال را ايجاد كنيد ، قوانين deny را ايجاد كنيد.
براي نوشتن قوانين deny (رد)، مي توانيد از دستوراتي كه در بالا توضيح داده شده استفاده كنيد ، و allow را با deny جايگزين كنيد.
به عنوان مثال ، براي رد اتصالات HTTP ، مي توانيد از اين دستور استفاده كنيد:
$ sudo ufw deny http
يا اگر مي خواهيد تمام اتصالات را از 203.0.113.4 رد كنيد ، مي توانيد از اين دستور استفاده كنيد:
$ sudo ufw deny from 203.0.113.4
حال اجازه دهيد نگاهي به نحوه حذف قوانين بيندازيم.
مرحله 7 – حذف قوانين
دانستن چگونگي حذف قوانين فايروال به همان اندازه مهم است كه بدانيد چگونه مي توانيد آنها را ايجاد كنيد. دو روش مختلف براي تعيين اينكه كدام قوانين بايد حذف شوند وجود دارد: با شماره قانون يا با قانون واقعي (شبيه به نحوه تعيين قوانين هنگام ايجاد ان ها). ما با روش حذف با شماره قانون شروع خواهيم كرد زيرا ساده تر است.
به واسطه شماره قانون
اگر از شماره قانون براي حذف قوانين فايروال استفاده مي كنيد ، اولين كاري كه بايد انجام دهيد اين است كه ليستي از قوانين فايروال خود را تهيه كنيد. فرمان وضعيت UFW گزينه اي براي نمايش شماره ها در كنار هر قانون دارد ، همانطور كه در اينجا نشان داده شده است:
$ sudo ufw status numbered
Numbered Output:
Status: active
To Action From
— —— —-
[ 1] 22 ALLOW IN 15.15.15.0/24
[ 2] 80 ALLOW IN Anywhere
اگر تصميم بگيريم كه مي خواهيم قانون 2 را حذف كنيم ، يكي از مواردي كه امكان اتصال به پورت 80 (HTTP) را فراهم مي كند ، مي توانيم آن را در يك فرمان حذف UFW مانند اين مشخص كنيم:
$ sudo ufw delete 2
يك تأييد اعلان را نشان ميدهد و سپس قانون 2 را، كه به اتصالات HTTP اجازه مي دهد، حذف ميكند. توجه داشته باشيد كه اگر IPv6 را فعال كرده ايد ، بايد قانون IPv6 مربوطه را نيز حذف كنيد.
به واسطه قانون واقعي
گزينه جايگزين براي شماره ها ، تعيين قانون واقعي براي حذف است. به عنوان مثال ، اگر مي خواهيد قانون http را حذف كنيد ، مي توانيد آن را به صورت زير بنويسيد:
$ sudo ufw delete allow http
همچنين مي توانيد به جاي نام سرويس ، قانون را با allow 80 مشخص كنيد:
$ sudo ufw delete allow 80
اين روش، در صورت وجود، هر دو قانون IPv4 و IPv6 را حذف مي كند.
مرحله 8 – بررسي وضعيت و قوانين UFW
در هر زمان ، مي توانيد وضعيت UFW را با اين دستور بررسي كنيد:
$ sudo ufw status verbose
اگر UFW غيرفعال باشد ، كه به طور پيش فرض چنين است ، خروجي زير را مشاهده خواهيد كرد:
Output
Status: inactive
اگر UFW فعال باشد ، كه اگر مرحله 3 را دنبال كرده باشيد ، فعال خواهد بود، خروجي مي گويد كه فعال است و قوانيني را كه تنظيم شده ليست مي كند. به عنوان مثال ، اگر فايروال تنظيم شود تا اتصالات SSH (پورت 22) را از هر مكاني امكان پذير كند ، ممكن است خروجي چيزي شبيه به اين باشد:
Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
— —— —-
22/tcp ALLOW IN Anywhere
اگر مي خواهيد بررسي كنيد چگونه UFW فايروال را تنظيم كرده است ، از دستور وضعيت استفاده كنيد.
مرحله 9 – غيرفعال كردن يا تنظيم مجدد UFW (اختياري)
اگر تصميم داريد كه از UFW استفاده نكنيد ، مي توانيد با اين دستور آن را غيرفعال كنيد:
$ sudo ufw disable
هر قانوني كه با UFW ايجاد كرده باشيد ديگر فعال نخواهد بود. اگر لازم باشد بعداً آن را فعال كنيد ، همواره مي توانيد sudo ufw را اجرا كنيد.
اگر قبلاً قوانين UFW را پيكربندي كرده ايد اما تصميم داريد كه دوباره شروع كنيد ، مي توانيد از دستور تنظيم مجدد استفاده كنيد:
$ sudo ufw reset
با اين كار UFW غيرفعال مي شود و قوانيني را كه قبلاً تعريف شده بودند حذف مي شوند. به خاطر داشته باشيد كه اگر هر موقع آنها را تغيير دهيد ، رويكرد پيش فرض به تنظيمات اصلي آنها تغيير نمي كند. اين كار شروع تازه اي با UFW به شما ارائه ميدهد.
نتيجه
فايروال شما اكنون پيكربندي شده است كه (حداقل) اتصالات SSH را امكان پذير كند. مطمئن شويد كه هرگونه اتصالات ورودي ديگر كه سرور مجازي شما نياز دارد امكان پذير هستند ، و در عين حال اتصالات غير ضروري را محدود ميكند ، بنابراين سرور مجازي شما عملكردي و ايمن خواهد بود.
براي كسب اطلاعات بيشتر در مورد تنظيمات رايج UFW ، از راهنماي ضروريات UFW: قوانين و فرمان هاي معمول فايروال استفاده كنيد.
روش قرار دادن یک نرم افزار در فایروال
بسیاری از نرم افزارهایی که به عنوان کاربر استفاده می کنیم خارجی هستند. این نرم افزارهای خارجی عمدتا به همراه سریال های تقلبی و کرک ارائه می شوند.
معمولا نرم افزارها بعد از نصب و رجیستر شدن برای چک شدن به سایت خود وصل می شوند. بعد از بررسی سریال، نرم افزارهای غیر قانونی غیر فعال (Expire) می شوند. در نتیجه کاربر دیگر قادر به کار با نرم افزار نخواهد بود.
برای حل این مشکل، شما می توانید با قرار دادن برنامه مورد نظر در فایروال، مانع از وصل شدن آن به اینترنت شوید. در ادامه نحوه انجام این کار بررسی خواهیم کرد.
منبع