باز یا بستن پورت ها در سرور لینوکس توسط iptables
منظور از iptables چیست؟
iptables یک برنامه فایروال قدرتمندرایگان برای سیستم عامل لینوکس است که می توانید از آن برای امنیت سرور لینوکس و یا سرور مجازی VPS استفاده کنید فایروال IPtables امکان اعمال قوانین و محدودیت های خاص برای تبادل اطلاعات در شبکه را برای مدیر سرور فراهم می کند، در عین سادگی بسیار توانمند است و اجازه کنترل ترافیک شبکه در لایه چهارم شبکه (transport) و همچنین لایه های بالاتر و پایین تر را به ما می دهد.
باز یا بستن پورت ها در سرور لینوکس توسط iptables
برای اینکه قادر به باز و بسته کردن پورت ها روی هاست لینوکسی باشید قبل از هرچیز باید دسترسی root به سرور لینوکسی داشته باشید.
ابتدا از طریق ssh به سرور متصل شوید.
قبل از اینکه سرویس iptables را فعال کنید بایستی سرویس ip6tables را غیرفعال کنیم .برای این منظور دستورات زیر را وارد کنید:
service ip6tables stop
chkconfig ip6tables off
برای باز کردن پورت ۸۰ در فایروال از دستور زیر استفاده کنید :
iptables -A INPUT -p tcp -m tcp –sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
-p معادل protocol و sport معادلپورت مبدا و dport معادل پورت مقصد می باشد.
در صورت نیاز به استفاده از https بایستی پورت ۴۴۳ نیز باز باشد :
iptables -A INPUT -p tcp -m tcp –sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp –dport 443 -j ACCEPT
ساختار دستور iptables :
گرامر این دستور به دو بخش تقسیم می شود :chain,target
iptables -A chain -j target
chain قسمت اصلی است و پارامتر –A (append )یک rule را اضافه می نماید.chain می تواند معادل input,ouput,forward باشد که پارامترهای دائمی می باشند.
پارامتر –j (jump )محلی در مجموعه قوانین iptables را مشخص می کند که پرش به آنجا انجام می گیرد.مقادیر آن به ترتیب شامل accept,drop,reject می باشند. توسط پارامتر –n نیز می توانید chain های جدید و سفارشی اضافه کنید.
کار با policy های firewall :
Iptbles از پارامتر –p برای ایجاد rule های پیش فرض استفاده می کند.مثلا دستورات زیر کلیه پکت های ارسالی و دریافتی در درگاه شبکه را بلاک می کند
iptables -P INPUT DROP
iptables -P OUTPUT DROP
همچنین توصیه می شود که پکت های forward شده نیز denied شوند تا کاربران شبکه داخلی به طور ناخواسته در اینترنت نمایان نشوند.rule زیر برای انجام این کار به کار می رود:
iptables -P FORWARD DROP
بعد از تنظیم policy chain می توانید rule های مورد نظر را تعریف کنید:
نحوه ی ذخیره و بازیابی قوانین iptables :
Rule های firewall تا زمانیکه کامپیوتر on باشد معتبر می باشند و با راه اندازی مجدد سیستم به صورت اتوماتیک reset می شوند. برای اینکه این قوانین بعد از راه اندازی مجدد، به صورت اتوماتیک اجرا شوند از دستور زیراستفاده کنید:
/sbin/service iptables save
نکته :سایر Rule ها در مسیر /etc/sysconfig/iptables ذخیره می شوند.
لطفا توجه کنید که حتما پس از اضافه کردن Rule های خود در پایان دستور زیر را برای ذخیره شدن rule ها اجرا نمایید. در غیر این صورت پس از اولین ریستارت سرور، تمامی دستورات از بین می روند.
در CentOS از دستور زیر استفاده کنید.
service iptables save
و در Ubuntu نیز از دستور زیر استفاده نمایید.
iptables-save