فایروال اوبونتو
فایروال یک جزء حیاتی در محافظت از یک سیستم کامپیوتری فردی یا شبکه کامپیوترها در برابر حملات خارجی (معمولا از اتصال به اینترنت) است. هر رایانهای که مستقیما به یک اتصال اینترنتی متصل میشود، باید یک فایروال برای محافظت در برابر فعالیتهای مخرب اجرا کند. به طور مشابه، هر شبکه داخلی باید نوعی فایروال بین خود و یک اتصال اینترنتی خارجی داشته باشد.
هدف این درس پوشش برخی از مفاهیم اساسی فایروالها، پورتهای TCP/IP و سرویسها است.
آشنایی با پورتها و سرویسها
پروتکل غالب ارتباطات شبکهای که این روزها مورد استفاده قرار میگیرد TCP/IP است. این پروتکلی است که توسط اینترنت استفاده میشود و به همین دلیل بسیاری از پروتکلهای محبوب سابق مورد استفاده برای شبکههای محلی (LAN) را از بین برده است.
TCP/IP در مجموع 65535 پورت تعریف میکند که 1023 پورت آن به عنوان پورتهای شناخته شده در نظر گرفته میشوند. درک این نکته مهم است که اینها درگاههای فیزیکی نیستند که کابلهای شبکه به آن متصل میشوند، بلکه پورتهای مجازی در هر اتصال شبکه هستند که میتوانند توسط برنامهها و سرویسها برای برقراری ارتباط از طریق یک اتصال شبکه TCP/IP استفاده شوند. در واقع تعداد پورتهایی که توسط سرویسگیرندگان و سرویسهای شبکه محبوب استفاده می شود، زیرمجموعه کوچکتری از گروه شناخته شده پورتها را تشکیل میدهد.
تعدادی سرویس TCP/IP مختلف وجود دارد که میتواند توسط یک سیستمعامل ارائه شود. فهرست جامعی از چنین خدماتی در جدول انتهای این فصل ارائه شده است، اما چنین خدماتی شامل HTTPS برای اجرای یک وبسرور امن، FTP برای اجازه انتقال فایل، SSH برای ارائه دسترسی ایمن ورود از راه دور و انتقال فایل و SMTP برای حمل و نقل پیامهای ایمیل هر سرویس به نوبه خود به یک پورت استاندارد TCP/IP اختصاص داده میشود. به عنوان مثال، HTTPS به پورت 443 اختصاص داده میشود در حالی که ارتباط SSH در پورت 22 انجام میشود.
ایمنسازی پورتها و سرویسها
بخش بزرگی از ایمنسازی سرورها شامل تعریف نقشها میشود و بر اساس نقشها، مشخص میشود که کدام سرویسها و پورتها باید فعال شوند. به عنوان مثال، سروری که قرار است صرفا به عنوان یک وبسرور عمل کند، فقط باید سرویس HTTPS را اجرا کند (علاوه بر احتمالا SSH برای دسترسی مدیریت از راه دور). همه سرویسهای دیگر باید غیرفعال شوند و در حالت ایدهآل، بهطور کامل از سیستمعامل حذف شوند (در نتیجه فعال کردن مجدد سرویس برای مهاجمان سختتر میشود).
ایمنسازی یک سیستم هم شامل حذف هر گونه سرویس غیرضروری از سیستمعامل و هم حصول اطمینان از مسدود شدن پورتهای مرتبط با سرویسهای غیرضروری با استفاده از فایروال است. قوانینی که تعیین میکنند کدام پورتها در دسترس هستند و تحت چه شرایطی با استفاده از iptable تعریف میشوند.
بسیاری از سیستمعاملها با تعدادی سرویس نصب شده و بهطور پیش فرض فعال میشوند. قبل از نصب یک سیستمعامل جدید، ضروری است که نصب به دقت برنامهریزی شود. این امر شامل تصمیمگیری در مورد خدماتی است که مورد نیاز نیستند و شناسایی سرویسهایی که به طور پیشفرض نصب و فعال شدهاند. هر چه تعداد سرویسها و پورت های باز موجود در یک سیستم کمتر باشد، سطح و فرصتها برای مهاجمان کمتر است.
خدمات اوبونتو و قوانین iptables
بهطور پیشفرض، یک سیستم اوبونتو که به تازگی نصب شده است، هیچ قانون iptables برای محدود کردن دسترسی به پورتها تعریف نشده است. برای مشاهده تنظیمات فعلی iptables، فرمان زیر ممکن است در یک پنجره ترمینال اجرا شود:
1 2 3 4 5 6 7 8 9 |
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination |
همانطور که در خروجی بالا نشان داده شده است، هیچ قانونی در حال حاضر تعریف نشده است. در حالی که به نظر میرسد این یک پیکربندی ناامن است، مهم است که به خاطر داشته باشید که یک سیستم اوبونتو تازه نصب شده نیز خدمات کمی دارد که بهطور پیشفرض اجرا میشود، و اساسا پورتها را برای یک مهاجم بالقوه بیفایده میکند. به عنوان مثال، ورود از راه دور به یک سیستم اوبونتو که به تازگی نصب شده است یا به یک وبسرور دسترسی پیدا میکند، امکانپذیر نیست، به این دلیل ساده که نه سرویسهای ssh و نه وبسرور بهطور پیشفرض نصب یا اجرا نمیشوند. با این حال، هنگامی که سرویسها در سیستم فعال میشوند، شروع به ایجاد یک استراتژی فایروال با تعریف قوانین iptables مهم خواهد بود.
تعدادی روش برای تعریف قوانین iptables موجود است، از جمله استفاده از ابزارهای خط فرمان و فایلهای پیکربندی. به عنوان مثال، برای مسدود کردن دسترسی به پورت 25 (که توسط پروتکل انتقال نامه SMTP استفاده میشود) از آدرس IP 192.168.2.76، فرمان زیر را میتوان در یک پنجره ترمینال صادر کرد:
1 2 3 4 5 6 7 8 9 10 |
# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination DROP tcp -- 192.168.2.76 anywhere tcp dpt:smtp Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination |
این قانون ممکن است متعاقبا به شرح زیر حذف شود:
1 |
# iptables -D INPUT -s 192.168.2.76 -p tcp --destination-port 25 -j DROP |
با توجه به پیچیدگی iptables، عجیب نیست که تعدادی از ابزارهای پیکربندی گرافیکی کاربرپسند برای تسهیل فرآیند ایجاد قانون ایجاد شده است. یکی از این ابزارها فایروال کامپایل نشده با ابزار خط فرمان ufw و معادل گرافیکی آن (gufw) است که در دروس آینده پوشش داده خواهد شد.
پورتها و سرویسهای شاخص
قبل از پرداختن به قوانین پیچیدهتر فایروال، ابتدا ارزش آن را دارد که برخی از خدمات کلیدی را که میتواند توسط یک سیستم اوبونتو ارائه میشود، همراه با شمارههای پورت مربوطه، اختصاص دهید:
پورت | وظیفه | شرح |
---|---|---|
20 | FTP | پروتکل انتقال فایل (داده) – پروتکل انتقال فایل مکانیزمی برای انتقال فایلهای خاص بین سیستمهای کامپیوتری متصل به شبکه فراهم میکند. انتقال معمولا با استفاده از کلاینت ftp انجام میشود. اکثر مرورگرهای وب مدرن همچنین توانایی مرور و دانلود فایلهای واقع در یک سرور FTP راه دور را دارند. FTP برای انتقال فایلها از TCP (به جای UDP) استفاده میکند، بنابراین مکانیزم انتقال بسیار قابل اعتماد در نظر گرفته میشود. FTP دادهها را رمزگذاری نمیکند و به عنوان یک پروتکل امن انتقال فایل در نظر گرفته نمیشود. استفاده از پروتکل SCP و SFTP اکیدا به جای FTP توصیه میشود. |
21 | FTP | انتقال فایل (کنترل) - به طور سنتی FTP دارای دو پورت اختصاص داده شده است (پورت 20 و پورت 21). پورت 20 در ابتدا به عنوان پورت انتقال داده در نظر گرفته میشد، در حالی که پورت 21 برای برقراری ارتباط اطلاعات کنترلی اختصاص داده شد. در پیادهسازیهای مدرن، پورت 20 به ندرت مورد استفاده قرار میگیرد و تمام ارتباطات در پورت 21 انجام میشود. |
22 | SSH | Secure Shell – Secure Shell برای ارائه یک جلسه ورود امن، رمزگذاری شده و راه دور به یک میزبان راه دور از طریق یک شبکه TCP/IP استفاده میشود. مکانیزم اصلی برای دسترسی از راه دور پروتکل Telnet بود. از آنجایی که Telnet دادهها را به صورت متن ساده منتقل می کند، اکنون استفاده از آن به نفع پوسته ایمن که همه ارتباطات، از جمله اطلاعات ورود به سیستم و رمز عبور را رمزگذاری میکند، به شدت منع شده است. SSH همچنین مکانیزمی را فراهم میکند که توسط آن فایلها میتوانند به طور ایمن با استفاده از پروتکل SCP منتقل شوند، و همچنین مبنایی برای پروتکل SFTP است. SSH همچنین جایگزین کلاینتهای rsh و rlogin میشود. |
23 | Telnet | Telnet - Telnet یک پروتکل شبیه سازی ترمینال است که امکان ورود به یک سیستم راه دور را از طریق اتصال TCP/IP فراهم میکند. دسترسی مبتنی بر متن است و به کاربر اجازه میدهد تا در یک خط فرمان روی هاست راه دور تایپ کند و متن نمایش داده شده توسط هاست راه دور در سرویس گیرنده Telnet لوکال نمایش داده میشود. Telnet نه رمز عبور و نه متن ارسال شده بین مشتری و سرور را رمزگذاری نمیکند. به این ترتیب، استفاده از telnet به شدت ممنوع است. اکثر سیستمهای مدرن دارای پورت 23 بسته و سرویس telnet غیرفعال هستند تا از استفاده از آن جلوگیری شود. SSH باید به جای Telnet استفاده شود. |
25 | SMTP | پروتکل SMTP مکانیسمی را تعریف میکند که توسط آن پیامهای ایمیل از یک هاست شبکه به هاستی دیگر ارسال میشود. SMTP یک پروتکل بسیار ساده است و نیاز دارد که سرویس پستی همیشه در هاست دریافتکننده در دسترس باشد. معمولا هاست دریافتکننده پیامهای دریافتی را در یک قرقره برای دسترسی بعدی گیرنده با استفاده از پروتکلهای POP3 یا IMAP ذخیره میکند. SMTP از پروتکل انتقال TCP برای اطمینان از تحویل پیام بدون خطا استفاده میکند. |
53 | DNS | DNS - سرویسی که توسط شبکههای TCP/IP برای ترجمه نام هاست وFQDN به آدرسهای IP استفاده میشود. |
69 | TFTP | پروتکل TFTP یک نسخه حذف شده از پروتکل انتقال فایل (FTP) است. این مجموعه دستورات کاهش یافته و فاقد احراز هویت است. مهمترین ویژگی TFTP این است که از UDP برای انتقال داده استفاده میکند. این امر منجر به سرعت انتقال بسیار سریع میشود، اما در نتیجه، قابلیت اطمینان دادهها را ندارد. TFTP معمولا در راهاندازی شبکهای برای ایستگاههای کاری بدون دیسک استفاده میشود. |
80 | HTTP | پروتکل HTTP پروتکلی است که برای دانلود متن، گرافیک و چندرسانهای از سرور وب و به مرورگر وب استفاده میشود. اساسا مکانیسم فرمان و کنترل بین مرورگر و سرور را تعریف می کند که درخواستهای مشتری و پاسخهای سرور را تعریف می کند. HTTP بر اساس پروتکل TCP است و به این ترتیب، یک پروتکل اتصالگرا است. |
110 | POP3 | پروتکل POP3 مکانیزمی برای ذخیره و بازیابی پیامهای ایمیل دریافتی از سرور است. در اکثر محیطهای شرکتی، ایمیل دریافتی در سرور ایمیل ذخیره میشود و زمانی که کاربر ایمیل را بررسی میکند، در یک کلاینت ایمیل که روی دسکتاپ یا لپتاپ کاربر اجرا میشود، دانلود میشود. POP3 همه پیامهای جدید را برای مشتری دانلود میکند و به کاربر این امکان را نمیدهد که انتخاب کند کدام پیامها را دانلود نماید، هدرها را مشاهده کند یا فقط بخشهایی از پیامها را دانلود کند. به همین دلیل است که پروتکل IMAP به طور فزایندهای به جای POP3 استفاده میشود. |
119 | NNTP | پروتکل NNTP پروتکلی که مسئول ارسال و بازیابی پیامها به و از سرورهای Usenet News (یعنی گروههای خبری و انجمنهای گفتگوی هاست شده در سرورهای راه دور) است. NNTP در لایه Application پشته OSI عمل می کند و از TCP برای اطمینان از بازیابی و انتقال پیام بدون خطا استفاده می کند. |
123 | NTP | پروتکل NTP پروتکلی که برای همگامسازی ساعتهای کامپیوتری با منبع زمانی خارجی طراحی شده است. با استفاده از این پروتکل، یک سیستمعامل یا برنامه کاربردی میتواند زمان جاری را از یک سرور NTP راه دور درخواست کند. NTP برای اطمینان از اینکه همه سیستمهای یک شبکه در یک زمان دقیق و یکسان از روز تنظیم شدهاند مفید است. این موضوع در موقعیتهای امنیتی از اهمیت ویژهای برخوردار است، بهعنوان مثال، زمانی که یک فایل در یک کلاینت یا سرور مورد نظر قرار گرفته یا تغییر داده شده است. |
143 | IMAP4 | پروتکل دسترسی به پیام اینترنتی – IMAP4 یک پروتکل بازیابی ایمیل پیشرفته و ایمن است. IMAP شبیه POP3 است زیرا مکانیزمی را برای کاربران فراهم میکند تا به پیامهای ایمیل ذخیره شده در سرور ایمیل دسترسی پیدا کنند، اگرچه IMAP شامل بسیاری از ویژگیهای اضافی مانند امکان دانلود انتخابی پیامها، مشاهده سرصفحههای پیام، جستجوی پیامها و دانلود بخشی از یک پیام است. IMAP4 از احراز هویت استفاده میکند و بهطور کامل از احراز هویت Kerberos پشتیبانی میکند. |
161 | SNMP | پروتکل SNMP مکانیزمی را ارائه میدهد که به موجب آن مدیران شبکه قادر به جمعآوری اطلاعات در مورد دستگاهها (مانند هابها، روترها و سوئیچها) در یک شبکه هستند. پروتکل SNMP به عوامل در حال اجرا در دستگاههای شبکه امکان میدهد وضعیت خود را به یک مدیر مرکزی ارتباط دهند و به نوبه خود مدیر را قادر میسازد تا پارامترهای پیکربندی جدید را به عامل دستگاه ارسال کند. عوامل را میتوان به گونهای پیکربندی کرد که هنگام رخ دادن رویدادهای خاص، به نام تله، به مدیر اطلاع دهند. SNMP از UDP برای ارسال و دریافت داده استفاده میکند. |
443 | HTTPS | پروتکل استاندارد HTTP (غیر ایمن) داده ها را به صورت متن واضح (یعنی بدون رمزگذاری و قابل مشاهده برای هر کسی که ممکن است ترافیک را رهگیری کند) منتقل میکند. در حالی که این مورد برای اکثر اهداف مرور وب قابل قبول است، اما زمانی که اطلاعات محرمانه مانند جزئیات کارت اعتباری باید از مرورگر به سرور وب منتقل شود، خطر امنیتی جدی ایجاد میکند. HTTPS با استفاده از لایه سوکتهای امن (SSL) برای ارسال دادههای رمزگذاری شده بین مشتری و سرور این مشکل را برطرف می کند. |
2049 | NFS | در ابتدا توسط Sun Microsystems توسعه یافت و متعاقبا بهطور مستقیم در سراسر صنعت مورد استفاده قرار گرفت، NFS به سیستمفایل روی یک سیستم راه دور اجازه میدهد تا از طریق شبکه سیستم دیگری دسترسی داشته باشد. روی یک درایو دیسک محلی است. NFS بهطور خاص در سیستمهای مبتنی بر یونیکس و لینوکس استفاده میشود. نسخههای بالاتر مایکروسافت این قابلیت را دارند که به سیستمهای فایلهای مشترک NFS در سیستمهای مبتنی بر یونیکس و لینوکس نیز دسترسی داشته باشند. |
خلاصه
یک سیستم اوبونتو که به تازگی نصب شده است، عموما به دلیل عدم وجود هر گونه سرویسی که روی پورتهای سیستم اجرا میشود، ایمن در نظر گرفته میشود. با این حال، هنگامی که سیستم شروع به پیکربندی برای استفاده کرد، مهم است که اطمینان حاصل شود که از طریق اجرای یک فایروال از حمله محافظت میشود. هنگام پیکربندی فایروالها، درک درستی از پورتهای مختلف و سرویسهای مربوطه مهم است.
تعدادی از گزینه های فایروال در دسترس است که اساسیترین آنها پیکربندی خط فرمان رابط فایروال iptables است. گزینههای بصری و پیشرفتهتر از طریق فایروال کامپایل نشده (ufw) و فایروال در دسترس هستند، که هر دو در دروس بعدی پوشش داده خواهند شد.
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
دیدگاهتان را بنویسید