آموزش جامع Iptables؛ دیوار آتشین لینوکس

Iptables

16 فروردین 1400
آموزش جامع Iptables، دیوار آتشین لینوکس

Iptables یک firewall برای سیستم های لینوکس است و با کمک آن می توانید سرورها و VPS های خود را فعال کنید. برای مطالعه و استفاده عملی از این مقاله باید پیش نیازهای زیر را داشته باشید:

  • دسترسی حساب لینوکسی شما به Sudo (دسترسی ادمین)
  • دسترسی به ترمینال سیستم لینوکس
  • مطالعه این مقاله برای آشنایی با packet ها در شبکه

نحوه کار iptables

همانطور که می دانید ترافیک اینترنت از packet یا بستک تشکیل شده است. در یک شبکه (مانند اینترنت)، داده ها در قالب قسمت های کوچک و جدا شده ای به نام Packet ارسال می شوند و در نهایت این کامپیوترِ مقصد است که این پکت ها را سر هم کرده و به هم می چسباند تا داده کامل را بسازد. کار iptables این است که این پکت ها را شناسایی کرده و بر اساس قوانینی که شما به آن داده اید،‌ عملیات خاصی را روی آن ها انجام می دهد.

عملیات فیلتر کردن این پکت ها بر اساس چهار مفهوم زیر انجام می شود:

  • tables (جدول ها): جدول ها فایل هایی هستند که دارای قوانین خاصی هستند. در واقع هر جدول مجموعه ای از chain ها است.
  • chain (زنجیره): هر زنجیره، مجموعه ای از قوانین یا rule ها است. زمانی که سیستم شما یک پکت را دریافت می کند، iptables جدول مربوط به آن را پیدا کرده و سپس آن پکت را آنقدر با rule ها یا قوانین مختلف بررسی می کند تا قانون خاص مربوط به آن را پیدا کند.
  • Rule (قانون): هر قانون دستوری است که به سیستم می گوید با پکت مورد نظر چه کار کند. به طور مثال ممکن است قوانین به سیستم بگویند که نوع خاصی از پکت را مسدود کند یا به نوع خاصی از پکت اجازه عبور بدهد.
  • target (هدف): هدف همان نتیجه یا جایی است که پکت به آن ارسال می شود. معمولا در این بخش سه حالت accept و drop و reject را داریم.

accept کردن یک پکت به معنی اجازه دادن به پکت برای عبور از فایروال است، drop کردن پکت به معنای مسدود کردن آن پکت است (انگار چنین پکتی دریافت نشده است) و reject کردن یک پکت به معنای رد کردن آن پکت است که یعنی برای ارسال کننده پکت خطایی را ارسال می کنیم. در حالت drop هیچ خطایی برای ارسال کننده نمی فرستادیم بلکه بدون اعلام به کسی، پکت را حذف می کردیم. return کردن پکت نیز به معنای متوقف کردن پکت از گردش در chain فعلی و برگرداندن آن به chain قبلی است.

جدول ها در iptables

iptables به صورت پیش فرض چهار جدول دارد و ما می خواهیم در این قسمت هر چهار جدول را به همراه chain هایش بررسی کنیم.

جدول اول Filter نام دارد و معمولا پرکاربردترین جدول از بین تمامی جدول های موجود است. کار این جدول مانند کار یک نگهبان است،‌ یعنی تصمیم می گیرد چه پکت هایی وارد شبکه شما شده یا از آن خارج شوند. جدول filter شامل سه chain زیر است:

  • Input (زنجیره ورودی): زنجیره ورودی مجموعه ای از قوانین مربوط به دریافت داده توسط سرور است. این زنجیره مشخص می کند که سرور با پکت های دریافتی چه کار کند. به طور مثال اگر سیستمی بخواهد به سرور شما SSH کند،‌ iptables ابتدا IP آن سیستم و پورت اتصال را در قوانین موجود در این زنجیره بررسی می کند.
  • Forward (زنجیره فوروارد): این زنجیره برای پکت هایی کاربرد دارد که درون سیستم شما گردش خواهند داشت و سپس به جای دیگری فوروارد (ارسال دوباره) می شوند. در این حالت سرور شما مانند یک مودم عمل می کند؛ اطلاعات ارسال شده به مودم برای خود مودم نیستند بلکه مودم آن را به مقصد دیگری ارسال می کند.
  • Output (زنجیره خروجی): این زنجیره حاوی قوانین مربوط به ترافیک خروجی است و داده ها قبل از خروج از سیستم باید بر اساس قوانین این زنجیره اجازه انجام این کار را داشته باشند. توجه کنید که این زنجیره مخصوص داده هایی است که درون سیستم شما تولید شده اند و حالا می خواهند از آن خارج شوند (مثلا ping کردن سایت google).

جدول دوم NAT یا Network Address Translation (ترجمه نشانی شبکه) است. این جدول شامل ارسال پکت ها به شبکه هایی است که به صورت مستقیم قابل دسترسی نیستند. زمانی که لازم است منبع یا مقصد پکت ها ویرایش شوند از جدول NAT استفاده می کنیم. این جدول نیز سه زنجیره زیر را دارد:

  • Prerouting (پیش مسیریابی): این زنجیره به محض دریافت یک پکت آن را ویرایش می کند.
  • Output (خروجی): این زنجیره دقیقا مانند زنجیره output در جدول filter است؛ یعنی مسئول مدیریت پکت های تولید شده در سیستم شما است که قرار است به خارج از سیستم شما ارسال شوند.
  • Postrouting (پس مسیریابی): پس از آنکه پکت ها از زنجیره output رد شدند و قبل از اینکه از سیستم ما خارج شوند، می توانیم با استفاده از زنجیره Postrouting آن ها را ویرایش کنیم.

جدول سوم Mangle نام دارد که مسئول ویرایش IP Header در پکت ها است. این جدول تمام زنجیره های ذکر شده در موارد بالا را دارد:

  • Prerouting
  • Postrouting
  • Output
  • Input
  • Forward

توضیحات این زنجیره ها را در موارد قبلی ارائه کردم بنابراین دوباره آن ها را توضیح نمی دهم.

جدول چهارم Raw نام دارد و مسئول استثناء کردن پکت ها از رهگیری اتصال است. آیا می دانید این مسئله به چه معنی است؟ Iptables یک stateful firewall است، یعنی پکت های ورودی را تشخیص داده و state آن ها را به خاطر می سپارد. یعنی چه؟ زمانی که یک پکت وارد سیستم شما می شود، ممکن است بخشی از یک اتصال (connection) قبلی باشد و یا اینکه ممکن است بخشی از اتصالی جدید باشد. جدول raw به شما اجازه می دهد که قبل از بررسی پکت ها توسط کرنل لینوکس، وارد کار شده و با پکت کار کنید.

این جدول دو زنجیره از زنجیره های قبلی را دارد:

  • Prerouting
  • Output

وظایف این دو زنجیر نیز همانطور است که قبلا توضیح داده شد. شما می توانید روابط بین این زنجیره ها و جدول ها را در تصویر زیر مشاهده کنید:

زنجیره های مختلف iptables
زنجیره های مختلف iptables

هدف ها در iptables

همانطور که در ابتدای مقاله توضیح دادم هدف یا Target نتیجه یا جایی است که پکت به آن ارسال می شود. زنجیره ها به ما اجازه می دادند که با تعیین قوانین، ترافیک سیستم یا سرور خود را فیلتر کنیم. فرض کنید روی زنجیره INPUT از جدول Filter قانونی را گذشته اید که روی پورت 22 اعمال می شود اما حالا چه؟ هدف ها مشخص می کنند که چه اتفاقی برای ترافیک منطبق با این قانون بیفتد. برخی از target ها terminating هستند که یعنی به محض برخورد پکت با آن ها، آینده آن مشخص شده و پکت دیگر به بقیه قوانین مراجعه نمی کند. پرکاربردترین هدف های terminating سه هدف زیر هستند:

  • ACCEPT: این هدف به iptables می گوید که پکت را قبول کند و مانع راهش نشود.
  • DROP: این هدف به iptables می گوید که پکت را نادیده بگیرد و قبول نکند. با انجام این کار پکت مسدود می شود و کسی که سعی در اتصال به سیستم شما را داشته است اصلا نمی فهمد سیستمی در این آدرس وجود داشته است یا خیر، چرا که iptables نتیجه ای را به آن برنمی گرداند.
  • REJECT: در این حالت iptables پکت را رد می کند. اگر اتصال از نوع TCP باشد، پاسخ iptables یک پکت connection reset (اتصال دوباره) خواهد بود اما اگر اتصال از نوع UDP یا ICMP باشد یک پکت destination host unreachable ارسال خواهد شد. در هر حال سیستمی که قصد اتصال به سرور شما را داشته است متوجه می شود که چنین سروری وجود دارد اما اجازه اتصال به آن را نمی دهد.

از طرف دیگر برخی از Target ها در iptables از نوع non-terminating هستند که یعنی اگر پکت مورد نظر با rule یا قانون خاصی منطبق بود، جست و جو برای انطباق آن با قوانین دیگر متوقف نمی شود. یک مثال از این دسته از target ها، LOG است که مسئول log کردن (ثبت وقایع) است اما پکت را متوقف نمی کند بلکه فقط گزارشی را در این زمینه ثبت می کند.

نحوه نصب iptables

Iptables به صورت پیش فرض روی اکثر distro های لینوکس نصب شده است اما در صورتی که برای شما نصب نشده است باید به شکل زیر آن را نصب کنید. در ابتدا ترمینال خود را باز کرده و مطمئن شوید دسترسی sudo دارید. در مرحله بعد دستور زیر را اجرا کنید تا لیست پکیج هایتان به روز رسانی شود:

sudo apt-get update

سپس با دستور زیر iptables را نصب کنید:

sudo apt-get install iptables

در صورتی که پس از هر بار ریستارت شدن سیستم یا سرور، قوانین و تنظیمات iptables شما حذف شدند، دو راه دارید. راه اول که بسیار ساده و راه پیشنهاد شده توسط من است و در انتهای این مقاله آن را توضیح خواهم داد اما راه دوم این است که به جای پکیج عادی iptables، پکیج زیر را نصب کنید:

sudo apt-get install iptables-persistent

من پیشنهاد می دهم که این کار را نکنید بلکه همان پکیج عادی iptables را نصب کرده و از توضیحات انتهای مقاله استفاده نمایید.

پس از نصب می توانید دستور زیر را در ترمینال خود اجرا کنید تا تنظیمات فعلی iptables خود را مشاهده نمایید:

sudo iptables -L -v

آرگومان L- به معنی list یا لیست کردن تمام قوانین (rule) موجود در iptables سیستم شما است و آرگومان v- نیز به معنی verbose یا نمایش کامل و با جزئیات است. زمانی که این دستور را اجرا کنید، چنین نتیجه ای را دریافت می کنید:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target     prot opt in out   source destination




Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target     prot opt in out   source destination




Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target     prot opt in out   source destination

همانطور که می بینید ما در ابتدای کار هستیم بنابراین همه چیز صفر است و هیچ قانونی نداریم.

نصب مخصوص کاربران CentOS 7

همچنین در صورتی که که از CentOS 7 استفاده می کنید باید بدانید که این Distro پکیج جدیدی به نام firewalld را جایگزین iptables کرده است. در صورتی که می خواهید حتما از iptables استفاده کنید باید ابتدا firewalld را در سیستم خود غیر فعال کنید. این کار با اجرای سه دستور زیر در ترمینال انجام می شود:

sudo systemctl stop firewalld




sudo systemctl disable firewalld




sudo systemctl mask firewalld

این سه دستور ابتدا از ریستارت شدن firewalld در هنگام ریستارت شدن سرور جلوگیری می کنند و همچنین به دیگر سرویس ها اجازه نمی دهند که firewalld را اجرا کنند. در مرحله بعدی باید iptables را نصب کنید که با دستور زیر انجام می شود:

sudo yum –y install iptables-services

حالا باید کاری کنیم که پس از هر بار ریستارت شدن سیستم یا سرور، iptables نیز شروع به کار کند. این کار با اجرای دو دستور زیر انجام می شود:

sudo systemctl enable iptables




sudo systemctl start iptables

در نهایت می توانید با استفاده از دستور systemctl status وضعیت iptables (فعال بودن یا نبودن) را بررسی کنید:

sudo systemctl status iptables

تعریف قوانین زنجیره

تعریف یک قانون (rule) به معنی اضافه کردن آن به زنجیره است. برای اضافه کردن یک قانون به زنجیره باید از A- استفاده کنیم که مخفف append (ضمیمه یا همان اضافه کردن) است. ساختار کلی انجام این کار به شکل زیر است:

sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.>  -j <target>

در نظر داشته باشید که iptables نسبت به بزرگی و کوچکی حروف حساس است بنابراین نوشتن A- به صورت a- غلط است. ما می توانیم بخش های مختلف این دستور را به شکل زیر توضیح بدهیم:

  • i- همان interface است و به network interface ای اشاره دارد که می خواهید ترافیک آن را فیلتر کنید. به طور مثال ppp0 یا eth0 و امثال آن.
  • p- همان protocol است و به پروتکل خاصی اشاره دارد که عملیات فیلترینگ روی آن اعمال می شود. پروتکل های موجود در iptables پروتکل های عادی وب مانند tcp و udp و udplite و icmp و sctp و icmpv6 هستند. شما می توانید با انتخاب all تمام پروتکل ها را انتخاب نمایید.
  • s- همان source است و به آدرسی اشاره می کند که داده ها از سمت آن به سیستم یا سرور شما رسیده اند. این مقدار می تواند یک hostname (نام میزبان) یا IP باشد.
  • dport- همان destination port یا پورت مقصد است و شماره پورت یک پروتکل را مشخص می کند. از پورت های معروف می توان به پورت ۲۲ برای SSH و پورت ۴۴۳ برای HTTPS اشاره کرد.
  • j- همان target یا هدف است که یکی از سه مقدار ACCEPT یا DROP یا RETURN را می گیرد و قبلا در موردشان صحبت کرده ایم. هر زمانی که بخواهید قانون (rule) جدیدی را وضع کنید باید target آن را نیز مشخص کنید.

زمانی که شروع به نوشتن مثال های مختلف کنیم با این ساختار بهتر آشنا می شوید.

در نظر داشته باشید که IP ها در دنیای واقعی دو نوع هستند: IPv4 و IPv6. به همین خاطر iptables نیز دستورات خود را به دو صورت iptables و ip6tables دریافت می کند. از آنجایی که استفاده از هر دو به یک صورت است من از iptables استفاده می کنم.

مثال های کاربردی از iptables

حالا که با ساختار کلی دستورات iptables آشنا شده ایم وقت مشاهده چند مثال عملی رسیده است. من سعی کرده ام مثال هایی را برایتان پیدا کنم که بیشتری کاربرد را برای مدیران وب سایت ها داشته باشند بنابراین می توانید این مقاله را به عنوان رفرنس برای خودتان ذخیره کنید.

۱. فعال کردن ترافیک در Localhost

برای فعال کردن تمام ترافیک روی Localhost باید دستور زیر را اجرا کنید:

sudo iptables -A INPUT -i lo -j ACCEPT

همانطور که می بینید ما در دستور بالا از interface ای به نام lo (مخفف loopback) استفاده کرده ایم. این interface مسئول تمام تبادلات اطلاعات در Localhost است و هر تعامل و تبادل داده ای که روی سیستم خودمان اتفاق بیفتد از این interface انجام می شود. شاید بپرسید چرا این کار را کرده ایم؟ در اکثر سرورها، برنامه های مختلف نیاز به ارتباط با یکدیگر دارند؛ به طور مثال پایگاه داده و اسکریپت برنامه شما باید با هم تعامل برقرار کنند بنابراین دستور بالا به ما اطمینان می دهد که چنین تعاملاتی حتما بدون اشکال انجام می شوند.

۲. فعال کردن اتصال با پورت های HTTP و SSH و SSL

http روی پورت 80 و https روی پورت 443 و SSH روی پورت 22 قرار دارد. اگر می خواهید هر کدام از این پورت ها را فعال کنید ابتدا باید پروتکل اتصال را مشخص کرده و سپس پورت مورد نظر را به آن بدهید:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

همانطور که می بینید ما از پروتکل TCP استفاده کرده ایم و dport نیز برای مشخص کردن پورت مورد نظر روی TCP استفاده شده است.

نکته: در صورتی که می خواهید قوانین ثبت شده تا این لحظه را مشاهده کنید باید دستور sudo iptables -L -v را اجرا کنید.

۳. مسدود کردن IP ها

فرض کنید که متوجه حملات مختلفی روی سایت خود شده اید و پس از بررسی بیشتر می فهمید که سیستمی با آیپی 192.168.1.3 دائما قصد حمله به سرور شما را دارد بنابراین باید تمام پکت های ورودی از این آدرس را مسدود یا بلاک کنید. طبیعتا این کار وظیفه زنجیره INPUT در جدول Filter است:

sudo iptables -A INPUT -s 192.168.1.3 -j DROPT

با انجام این کار تمام پکت های ورودی از این IP بلاک می شوند. حالت برعکس آن نیز زمانی است که می خواهید از این IP خاص ترافیک دریافت کنید:

sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT

در ضمن برخی از اوقات نیاز است که به جای یک IP خاص، بازه ای از IP های مختلف را بلاک کنید. در این صورت باید از ماژولی به نام iprange استفاده کنید. به مثال زیر توجه نمایید:

sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP

m- مخفف match (انطباق) است و برای فعال سازی ماژول های iptables به کار می رود.  iprange نیز نام ماژول مورد نظر است و  src-range-- نیز برای مشخص کردن آدرس IP ها استفاده می شود. توجه کنید که ما در دستور بالا تمام IP های بین 192.168.1.100 و 192.168.1.200 را مسدود کرده ایم.

مسدود کردن IP ها علاوه بر جلوگیری از حملات سیستم های مخرب، جلوی دسترسی غیر مجاز را نیز می گیرد. به طور مثال اگر می دانید فقط یک IP خاص به سرور شما متصل می شود، می توانید به راحتی تمام اتصالات به غیر اتصالات آن IP خاص را مسدود کنید تا شانس هک شدن شما به شدت کاهش پیدا کند. زمانی که قوانین dport از سیستم خود را تعریف کردید باید تمام ترافیک های دیگر را مسدود کنید تا سرور امنی داشته باشید:

sudo iptables -A INPUT -j DROP

این دستور به عنوان قاعده ای کلی مشخص می کند که تمام ترافیک ها باید مسدود شوند و ما هرگونه INPUT ای را غیر فعال کرده ایم. توجه داشته باشید که این دستور، قوانین قبلی ما را حذف نمی کند بلکه قوانین تعیین شده توسط ما به عنوان استثناء خواهند بود؛ به عبارت دیگر تا زمانی که قانون خاصی به صورت صریح اجازه اتصال نداده باشد تمام ترافیک مربوط به آن مسدود خواهد شد.

۴. حذف قوانین (rule)

فرض کنید قانون خاصی را به اشتباه ثبت کرده اید و حالا می خواهید آن را حذف کنید. برای انجام این کار ابتدا باید لیستی از تمام قوانین خود را داشته باشیم که با دستور زیر قابل انجام است:

sudo iptables -L --line-numbers

با اجرای این دستور لیستی از تمام قوانین ثبت شده توسط خودتان را دریافت می کنید:

Chain INPUT (policy ACCEPT)




num  target     prot opt source               destination




1    ACCEPT     all -- 192.168.0.4          anywhere

2    ACCEPT     tcp -- anywhere             anywhere tcp dpt:https

3    ACCEPT     tcp -- anywhere             anywhere tcp dpt:http

4    ACCEPT     tcp -- anywhere             anywhere tcp dpt:ssh

همانطور که می بینید در کنار هر کدام از این قوانین یک شماره خاص (ستون num) قرار دارد. برای حذف آن قانون باید این شماره را به دستور زیر بدهید به طوری که به جای NUM عدد مورد نظر باشد:

sudo iptables -D INPUT NUM

مثلا اگر بخواهیم قانون سوم (HTTP) را حذف کنیم می گوییم:

sudo iptables -D INPUT 3

همچنین در صورتی که می خواهید تمام قوانین را حذف کرده و از صفر شروع کنید باید از دستور F- استفاده نمایید:

sudo iptables -F

این دستور تمام قوانین را حذف کرده و با اجرای آن از صفر شروع خواهید کرد.

۵. جابجایی قوانین

من در یکی از مثال های قبلی گفتم که ما تمام IP های بین 192.168.1.100 و 192.168.1.200 را با دستور زیر مسدود کرده ایم:

sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP

از طرفی می دانیم که قوانین iptables دارای اولیت هستند که چه قانونی اول آمده باشد و اگر به یک target یا هدف terminating برسیم، iptables به قوانین دیگر توجه نمی کند. با این حساب اگر بخواهیم یک IP خاص از بازه بالا را مجاز بدانیم (whitelist کنیم) چه کار باید کرد؟ ما می توانیم قانون خاصی را تعریف کنیم که به این IP اجازه اتصال بدهد اما باید این قانون قبل از (بالاتر از) قانون مسدود سازی بازه IP مورد نظر باشد بنابراین:

iptables -I INPUT 1 -s 192.168.1.313 -j ACCEPT

مشخص کردن عدد 1 در دستور بالا یعنی این قانون را به عنوان قانون اول ثبت کن! حالا اگر دستور sudo iptables -L --line-numbers را اجرا کنید متوجه می شوید که این قانون قبل از قوانین دیگر ثبت شده است.

۶. جایگزینی قوانین

مسئله دیگر، جایگزینی یک قانون با قانون دیگری است؛ مثلا یک IP خاص را whitelist کرده اید اما حالا می خواهید آن IP را با IP دیگری عوض کنید یا این قانون را به هر شکل دیگری تغییر بدهید. این کار با پارامتر R- انجام می شود:

iptables -R INPUT 1 -s 192.168.1.110 -j ACCEPT

با این کار اولین قانون را که روی IP خاص 192.168.1.313 بود، به آیپی 192.168.1.110 تغییر داده ایم.

ثبات قوانین پس از ریستارت

قوانین iptables ما تا این لحظه روی مموری سیستم ذخیره شده اند بنابراین با هر بار ریستارت شدن به طور کامل حذف می شوند. راه حل چیست؟ در ابتدای مقاله توضیح دادم که روش اول نصب نسخه ای خاص از iptables است اما شخصا این روش را پیشنهاد نمی کنم. روش بهتر اجرای دستور زیر است:

sudo /sbin/iptables-save

با اجرای این دستور قوانین فعلی در هارد دیسک ذخیره می شوند بنابراین پس از هر ریستارت به طور خودکار روی مموری بارگذاری می شوند. نکته مهمی درباره این دستور وجود دارد. فرض کنید من در حال حاضر دستور بالا را اجرا کنم. این دستورات در یک فایل روی هارد دیسک ذخیره می شوند و در ریستارت بعدی در مموری سیستم بارگذری می شوند. حالا من تصمیم گرفته ام که یکی از قوانین را حذف کنم. اگر بعد از حذف یکی از قوانین سیستم را ریستارت کنیم، این قانون دوباره برمی گردد! چرا؟ همانطور که گفتم این دستورات در مموری اجرا و ذخیره می شوند بنابراین پس از حذف قانون مورد نظرمان، فایل پیکربندی را به روز رسانی نکرده ایم و فقط مقدار موجود در مموری را تغییر داده ایم. با این حساب متوجه می شویم که پس از ایجاد هر تغییری در iptables باید دستور بالا را اجرا کنید تا این تغییرات در فایل پیکربندی ذخیره شوند و در ریستارت های بعدی به مشکل نخوریم. مثال:

sudo iptables -F

sudo /sbin/iptables-save

این دستور تمام قوانین را حذف می کند بنابراین باید دستور iptables-save را پس از آن اجرا کنیم تا تغییرات در فایل پیکربندی نیز ذخیره شوند.


منابع: وب سایت های phoenixnap و hostinger

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.