چهارشنبه, 23 اسفند 1391 بازدید 7295 بار

پشتیبانی iptables در ردهت (قسمت بیستم)

پشتیبانی iptables در ردهت

 ردهت پشتیبانی از iptables را به عنوان بخشی از پیکر بندی سیستم خود فراهم می کند. وقتی که بسته RPM را برای iptables نصب می کنید ، یک اسکریپت سرویس iptables نصب می شود که دستورات iptables را با استفاده از فایل /etc/sysconfig/iptables می خواند و ذخیره می کند. اگر تنظیم کرده باشید که iptables به طور خودکار وقتی که سیستم خود را راه انداری می کندی ، اجرا شود، این فایل بررسی می شود تا ببیند آیا وجود دارد و خالی نیست یا خیر. اگر چنین بود ، iptables به طور خود کار دستورات iptables را نگه می دارد ، این کار به گرد آوری بیشتر iptables در پردازش تنظیم سیستم کمک می کند.

 اسکریپت /etc/sysconfig/iptables به طور خودکار توسط redhat-config-securitylevel تولید می شود ، که در طول عمل نصب، اجرا می گردد. وقتی که ابندا سیستم خود را روشن می کنید ، فایل /etc/sysconfig/iptables شامل قوانین iptables برای پیکربندی می باشد که هنگام اجرای redhat-config-securitylevel انتخاب کرده اید. در صورتی که دوباره config-securitylevel را اجرا کنید و پیکر بندی خود را تغییر دهید، فایل /etc/sysconfig/iptables با قوانین جدید iptables باز نویسی می شود. می توانید توسط گزینه Security Level روی منو یا پنجره System Setting به redhat-config-securitylevel دسترسی یابید. 

 می توانید عمل تنظیم خودکار iptables را به سادگی با حذف فایل /etc/sysconfig/iptables لغو کنید. اجرای redhat-config-securitylevel و انتخاب No Firewall نیز همین کار را انجام می دهد. حتما قبلا از آن نسخه پشتیبان تهیه کنید، زیرا دارای دستورات مهمی است. امکان ویرایش مستقیم فایل /etc/sysconfig/iptables و وارد کردن دستورات iptables وجود دارد، اما این کار پیشنهاد نمی شود. بلکه باید این فایل را به عنوان محل نگهداری نصب نهایی دستورات iptables خود در نظر بگیرید. 

 باید اسکریپت سرویس iptables که ردهت فراهم می کند را به عنوان یک ابزار مدیریت چند منظوره و نه تنها یک اسکریپت راه اندازی سرویس در نظر بگیرید. استفاده از دستور service برای این اسکریپت می تواند گیج کننده باشد. اسکریپت iptables تنها قوانین Netfilter را مدیریت، حذف، اضافه یا گزارش می کند. اسکریپت iptables ، سرویس iptables را اجرا و متوقف نمی کند. اگر Netfilter در حال اجرا نیست ، باید کاری کنید تا هر بار که سیستم شما راه اندازی می شود، اجرا گردد. برای این کار ، می توانید از redhat-config-service ( Services در پنجره Server Settings ) استفاده کنید و سپس iptables را از لیست سروس ها برگزینید. 

 اسکریپت سرویس /etc/rc.d/init.d/iptables ، چند سوئیچ را پشتیبانی می کند که با آنها قوانین خود را مدیریت می کنید. سوئیچ status ، لیستی از قوانین فعلی شما را نمایش می دهد. سوئیچ stop ، قوانین فعلی را پاک می کند. برخلاف stop و status ، سوئیچ های start و save به طور مستقیم در فایل /etc/sysconfig/iptables عمل می کنند. سوئیچ start ، قوانین فعلی iptables را پاک می کند و آنها را در فایل /etc/sysconfig/iptables ذخیره می کند. به خاطر بسپارید که عملیات stop و status ، روی قوانین فعلی iptables عمل می کنند و مهم نیست اگر آنها به طور دستی روی خط فرمان وارد شوند، یا توسط اسکریپت خودتان اضافه گردند، یاتوسط سوئیچ start از /etc/sysconfig/iptables اضافه شوند. دستور زیر ، قوانین فعلی شما را لیست می کند : 

service iptables status 

شاید مؤثرترین راه در مورد اسکریپت سرویس iptables ، این است که آن را یک ابزار توسعه iptables در نظر بگیرید. وقتی که قوانین پیچیده فایروال ایجاد می کنید ( فراتر از قوانین تولیدی توسط redhat-config-securitylevel ) ابتدا باید یک اسکرپیت ایجاد نمایید و قوانین خود را در آن قرار دهید ( همان طور که بعدا در مثال اسکریپت iptables شرح داده می شود )، اسکریپت را قابل اجرا کنید. هر تغییری که نیاز دارید تا در هنگام اشکال زدایی فایروال خود انجام دهید را در این اسکریپت انجام می دهید. قبل از اجرای آن، اسکریپت سرویس iptables را با سوئیچ stop اجرا کنید تا نمام قوانید قبلی، پاک شود : 

service iptables stop  

سپس یک اسکریپت خود را اجرا کنید، همین طور که در اینجا برای اسکریپت myfilter نشان داده شده است : 

./myfilters

 

برای اینکه ببینید دستورات چطور توسط iptables تفسیر می شوند ، اسکریپت services را با سوئیچ status به کار ببرید : 

service iptables status  

برای هر تغییری ، اسکریپت iptables خود را ویرایش کنید. سپس دوباره اسکریپت service را اجرا کنید تا قوانین قدیمی پاک شوند. دوباره اسکریپت iptables را اجرا نمایید و سوئیچ status را با اسکریپت services به کار برید تا نحوه پیاده سازی آنها را ببینید : 

service iptables stop 
./myfilters
service iptables status 

 

وقتی که مطمئن شدید که قوانین iptables شما درست کار می کنند، می توانید قوانین خود را در فایل /etc/sysconfig/iptables ذخیره نمایید. از اسکریپت سرویس iptables به همراه سوئیچ save استفاده کنید. اکنون قوانین شما، وقتی که سیستم خود را روشن می کنید، به طور خودکار خوانده می شوند. می توانید عمل save را به صورت نصب قوانین iptables خود روی سیستمتان در نظر بگیرید، آنها را بخشی از تنظیم سیستم خود قرار دهید ( هر بار که سیستم خود را روشن می نمایید ). 

service iptables save 

برای انجام تغییرات، اسکریپت iptables خود را تغییر دهید، اسکریپت services را با stop اجرا کنید تا قوانین قدیمی پاک شوند، اسکریپت iptables را اجرا نمایید، و سپس اسکریپت service را با سوئیچ save به کار برید تا یک فایل /etc/sysconfig/iptables جدید تولید کنید. 

 

به جای استفاده از اسکریپت service ، می توانید قوانین خود را با استفاده از اسکریپت iptables-save ذخیره کنید. فایل پیشنهادی جهت استفاده، /etc/iptables.rules می باشد. اسکریپت service در واقع iptables-save را به همراه سوئیچ -c استفاده می کند تا قوانین را در فایل /etc/sysconfig/iptables ذخیره کند. سوئیچ -c برای iptables-save ، شامل شمارنده هایی در خروجی می باشد ( اسکریپت سرویس iptables طراحی شده است تا اطلاعات شمارنده را به همراه دستورات تجزیه کند ). دستور iptables-save قوانین را به خروجی استاندارد می فرستد. برای ذخیره آنها در یک فایل، باید خروجی را با عملگر تغییر مسیر ( > ) ، به یک فایل بفرستید، بدین شکل : 

iptables-save -c > /etc/sysconfig/iptables 

 

همچنین می توانید قوانین خود را در فایل مورد نظر خود، مثل /etc/iptables.rules ذخیره نمایید، اسکریپت سرویس /etc/rc.d/init.d/iptables ، متغیر IPTABLES_CONFIG را تعریف می کند که نام فایل پیکربندی iptables ، یعنی /etc/sysconfig/iptables را نگه می دارد. 

iptables-save -c > /etc/iptables.rules

سپس برای بازیابی قوانین، اسکریپت iptables-restore را به کار برید تا دستورات iptables را از آن فایل ذخیره شده بخوانید : 

iptables-save -c < /etc/iptables.rules
این مورد را ارزیابی کنید
(3 رای‌ها)

پربازدیدترین مطالب

"«قیمتی که در هنگام سفارش مشتري در پیش‌فاکتور منظور گرديده است، معتبر مي‌باشد»."