نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • اخبار
  • راه اندازی netfilter با استفاده از iptables. حداقل مجموعه ای از قوانین Iptables برای کارهای معمولی

راه اندازی netfilter با استفاده از iptables. حداقل مجموعه ای از قوانین Iptables برای کارهای معمولی

وظیفه اصلی دیواره آتش(دیوار آتش) فیلتر کردن و پردازش بسته های عبوری از شبکه. هنگام تجزیه و تحلیل یک بسته ورودی، فایروال در مورد سرنوشت این بسته تصمیم می گیرد: بسته را دور بیندازید ( رها کردن، بسته را بپذیرید ( تایید کنید) یا کار دیگری با آن انجام دهید.

که در لینوکسفایروال یک ماژول هسته به نام netfilter است و مجموعه ای از قلاب ها برای کار با پشته شبکه است. رابط برای اصلاح قوانینی که توسط آن فایروال بسته ها را پردازش می کند، ابزار مفید است iptablesبرای IPv4 و ابزار جدول های ip6برای IPv6

تمام کارهای فیلتر کردن ترافیک توسط هسته سیستم انجام می شود. Iptablesدیمون نیست و فرآیندهای جدیدی در سیستم ایجاد نمی کند. روشن یا خاموش کنید iptablesاین فقط یک سیگنال به هسته ارسال می کند. سرعت فیلتر بیشتر تنها با تجزیه و تحلیل سرصفحه های بسته به دست می آید.

به ویژگی های اصلی iptablesمربوط بودن:

  • فیلتر کردن ترافیک بر اساس آدرس فرستنده و گیرنده بسته، شماره پورت.
  • تغییر مسیر بسته ها با توجه به پارامترهای خاص؛
  • سازمان دسترسی به شبکه (SNAT)؛
  • ارسال پورت از شبکه جهانی به شبکه محلی (DNAT)؛
  • محدود کردن تعداد اتصالات؛
  • تعیین سهمیه ترافیک؛
  • اجرای قوانین طبق برنامه؛

بیایید به روند اصلی کار نگاه کنیم iptables(منبع تصویر rigacci.org).

یک بسته ورودی ابتدا به دستگاه شبکه برخورد می کند، پس از آن توسط راننده رهگیری می شود و به هسته منتقل می شود. پس از این، بسته از طریق تعدادی جداول عبور داده می شود و تنها پس از آن به برنامه محلی منتقل می شود یا اگر بسته انتقالی باشد به سیستم دیگری هدایت می شود.

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

  1. خرد کردن- برای ایجاد تغییرات در هدر بسته استفاده می شود.
  2. nat- برای ترجمه آدرس های شبکه استفاده می شود.
  3. فیلتر کنید- برای فیلتر کردن ترافیک؛

تخته میز

هدف اصلی جدول خرد کردن- ایجاد تغییرات در هدر بسته در این جدول می توان اقدامات زیر را انجام داد:

  • تنظیم بیت نوع خدمات؛
  • تنظیم فیلد Time To Live.
  • تنظیم برچسب روی یک بسته که در قوانین دیگر قابل بررسی است.

زنجیر در میز خرد کردن:

  • پیش پروتینگ- برای ایجاد تغییرات در بسته ها در ورودی iptables، قبل از تصمیم گیری مسیریابی استفاده می شود.
  • پس از استراوتینگ- برای ایجاد تغییرات در بسته هایی که از iptable ها خارج می شوند، پس از تصمیم گیری در مسیریابی استفاده می شود.
  • ورودی- برای ایجاد تغییرات در بسته ها قبل از انتقال آنها به برنامه محلی استفاده می شود.
  • خروجی- برای ایجاد تغییرات در بسته های دریافتی از یک برنامه کاربردی در داخل iptables استفاده می شود.
  • رو به جلو- برای ایجاد تغییرات در بسته های حمل و نقل استفاده می شود.

جدول نات

جدول برای ترجمه آدرس شبکه و هنگامی که بسته ای مواجه می شود که یک اتصال جدید ایجاد می کند استفاده می شود. در این جدول می توان اقدامات زیر را انجام داد:

  • DNAT (ترجمه آدرس شبکه مقصد)- ترجمه آدرس مقصد در هدر بسته؛
  • SNAT (ترجمه آدرس شبکه منبع)- تغییر آدرس منبع بسته؛
  • بالماسکه- برای اهداف مشابه استفاده می شود SNAT، اما به شما امکان می دهد با آدرس های IP پویا کار کنید.

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

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

فیلتر جدول

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

  1. ورودی- زنجیره ای برای بسته های ورودی؛
  2. رو به جلو- زنجیره ای برای بسته های ارسال شده (ترانزیت)؛
  3. خروجی- زنجیره ای برای بسته های خروجی؛

بسته ای که از این زنجیره ها عبور می کند ممکن است در معرض اقدامات زیر باشد: تایید کنید, رها کردن, رد کنید, ورود به سیستم.

به طور خلاصه، بسته دریافتی از زنجیره ای از قوانین عبور می کند. هر قانون شامل وضعیتو هدف(عمل). اگر بسته شرایط را برآورده کند، به هدف منتقل می شود، در غیر این صورت قانون بعدی در زنجیره بر روی بسته اعمال می شود. اگر بسته هیچ یک از شرایط موجود در زنجیره را برآورده نکند، عمل پیش فرض روی آن اعمال می شود.

زنجیر جدول
فیلتر کنید nat خرد کردن
ورودی + +
رو به جلو + +
خروجی + + +
پیش پروتینگ + +
پس از استراوتینگ + +

ابزار iptables

نصب iptables

# در Arch Linux yaourt -S iptables # در اوبونتو sudo apt-get install iptables

اجرای iptables

# تحت آرچ لینوکس sudo systemctl فعال کردن iptables sudo systemctl شروع iptables # در زیر سرویس sudo اوبونتو شروع iptables

قوانین ذخیره سازی

# تحت آرچ لینوکس sudo sh -c "iptables-save > /etc/iptables/iptables.rules" # در اوبونتو sudo sh -c "iptables-save > /etc/iptables.rules"

بازیابی قوانین از یک فایل

Iptables-بازیابی< firewall-config

هر قانون در iptables- این یک خط جداگانه است که بر اساس قوانین خاصی تشکیل شده و حاوی معیارها و اقدامات است. به طور کلی، قانون دارای قالب زیر است:

دستور Iptables [-t table]

  • t جدول - نام جدولی را که قانون برای آن ایجاد می شود مشخص می کند.
  • فرمان - فرمانی که عمل را تعریف می کند iptables- اضافه کردن یک قانون، حذف یک قانون و غیره؛
  • مطابقت - معیارهای بررسی را مشخص می کند که تعیین می کند آیا یک بسته مشمول قانون است یا خیر.
  • هدف / پرش - در صورت برآورده شدن معیار چه اقدامی باید انجام شود.

دستورات iptables:

  • الف - با اضافه کردن یک قانون به زنجیره، قانون به انتهای زنجیره اضافه می شود.
  • -D - یک قانون را از زنجیره حذف کنید.
  • -R - یک قانون را با قانون دیگری جایگزین کنید.
  • -I - یک قانون جدید را در زنجیره وارد کنید.
  • -L - نمایش لیستی از قوانین در یک زنجیره داده شده.
  • -F - تنظیم مجدد تمام قوانین در زنجیره داده شده.
  • -Z - همه شمارنده ها را در یک زنجیره معین بازنشانی می کند.
  • -N - یک زنجیره جدید با نام داده شده ایجاد کنید.
  • -X - زنجیره را حذف کنید.
  • -P - خط مشی پیش فرض را برای زنجیره تنظیم می کند.
  • -E - تغییر نام زنجیره کاربر.

نمونه هایی از دستورات iptables

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

منبع بسته

برای فیلتر بر اساس منبع، از گزینه -s استفاده کنید. به عنوان مثال، اجازه دهید تمام بسته های ورودی از گره 192.168.1.95 را رد کنیم:

Iptables -A INPUT -s 192.168.1.95 -j DROP

می توانید از یک نام دامنه برای تعیین آدرس میزبان استفاده کنید:

Iptables -A INPUT -s test.host.net -j DROP

همچنین می توانید کل شبکه را مشخص کنید:

Iptables -A INPUT -s 192.168.1.0/24 -j DROP

شما همچنین می توانید از نفی (علامت!) استفاده کنید. به عنوان مثال، تمام بسته های میزبانی به غیر از 192.168.1.96 از بین می روند:

Iptables - یک ورودی! -s 192.168.1.96 -j DROP

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

Iptables -A INPUT 1 -i lo -j ACCEPT

تلاش‌های جعلی را با پیشوند «IP_SPOOF A:» ثبت می‌کنیم و اتصال را قطع می‌کنیم

Iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: " iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

آدرس مقصد

برای این کار باید از گزینه -d استفاده کنید. به عنوان مثال، اجازه دهید همه بسته های خروجی را برای میزبانی 192.168.1.95 رد کنیم:

Iptables -A OUTPUT -d 192.168.156.156 -j DROP

عدم دسترسی به منابع

Iptables -A OUTPUT -d vk.com -j REJECT

همانند منبع بسته، می‌توانید از آدرس‌های شبکه و نام دامنه استفاده کنید. انکار هم کار می کند.

پروتکل

گزینه -p پروتکل را مشخص می کند. می تواند به کار رود همه، icmp، tcp، udpیا شماره پروتکل (از /etc/پروتکل ها).

اجازه دادن به درخواست های اکو ورودی

Iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

پورت منبع

اجازه دادن به تمام بسته های خروجی از پورت 80:

Iptables -A INPUT -p tcp --sport 80 -j ACCEPT

مسدود کردن تمام درخواست های دریافتی در پورت 80:

Iptables -A INPUT -p tcp --dport 80 -j DROP

برای تعیین پورت باید پروتکل (tcp یا udp) را مشخص کنید. می توانید از نفی استفاده کنید.

باز کردن محدوده پورت

Iptables -A INPUT -m حالت --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT

بندر مقصد

اجازه اتصال از طریق HTTP

Iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT

اجازه دریافت داده ها از سرور DHCP

Iptables -A INPUT -p UDP --dport 68 --sport 67 -j ACCEPT

  • از راه دور بهره برداری از خطاهای نرم افزاریبه منظور از کار انداختن آن؛
  • سیل- ارسال تعداد زیادی بسته بی معنی به آدرس قربانی. هدف سیل می تواند یک کانال ارتباطی یا منابع ماشینی باشد. در حالت اول، جریانی از بسته‌ها کل پهنای باند را اشغال می‌کند و به ماشین مورد حمله اجازه پردازش درخواست‌های قانونی را نمی‌دهد. در مرحله دوم، منابع ماشین از طریق تماس‌های مکرر و بسیار مکرر به برخی از سرویس‌ها که عملیات پیچیده و با منابع فشرده را انجام می‌دهند، جذب می‌شوند. به عنوان مثال، این می تواند تماس طولانی مدت با یکی از اجزای فعال (اسکریپت) وب سرور باشد. سرور تمام منابع دستگاه را صرف پردازش درخواست های مهاجم می کند و کاربران باید منتظر بمانند. سیل های مختلفی وجود دارد: سیل ICMP، سیل SYN، سیل UDP و سیل HTTP

جمع آوری اطلاعات در مورد اتصالات شبکه

مشاهده اتصالات باز

Netstat -ntu | awk "(چاپ 5 دلاری)" | cut -d: -f1 | مرتب کردن | uniq -c | مرتب کردن -n

تعداد اتصالات به پورت 80

Netstat -na | grep ":80\" | wc -l

تخلیه اتصال TCP (که درخواست های دامنه اغلب به آن ارسال می شود)

دامنه پورت Tcpdump -npi eth0

سیل SYN را می توان با شمارش تعداد اتصالات نیمه باز TCP بررسی کرد

Netstat -na | grep ":80" | grep SYN_RCVD

حفاظت در برابر انواع سیل.

سیل ICMPیک روش بسیار ابتدایی برای مسدود کردن پهنای باند و ایجاد بار در پشته شبکه از طریق ارسال یکنواخت درخواست های ICMP ECHO (پینگ). به راحتی با تجزیه و تحلیل جریان ترافیک در هر دو جهت شناسایی می شود: در طول یک حمله سیل ICMP، آنها تقریباً یکسان هستند. یک روش تقریباً بدون درد برای محافظت مطلق مبتنی بر غیرفعال کردن پاسخ‌ها به درخواست‌های ICMP ECHO است:

Sysctl net.ipv4.icmp_echo_ignore_all=1

یا با استفاده از iptabels:

Iptables -A INPUT -p icmp -j DROP --icmp-type 8

سیل SYN.یکی از راه های رایج نه تنها مسدود کردن کانال ارتباطی، بلکه قرار دادن پشته شبکه سیستم عامل در حالتی است که دیگر نمی تواند درخواست های اتصال جدید را بپذیرد. بر اساس تلاشی برای مقداردهی زیادی از اتصالات TCP همزمان با ارسال یک بسته SYN با آدرس برگشتی ناموجود. پس از چندین بار تلاش برای ارسال یک بسته پاسخ ACK به یک آدرس غیرقابل دسترسی، اکثر سیستم عامل ها اتصال برقرار نشده را در صف قرار می دهند. و فقط پس از تلاش n اتصال بسته می شود. از آنجایی که جریان بسته های ACK بسیار زیاد است، صف به زودی پر می شود و هسته از تلاش برای باز کردن اتصال جدید خودداری می کند. باهوش‌ترین ربات‌های DoS همچنین قبل از شروع حمله، سیستم را تجزیه و تحلیل می‌کنند تا درخواست‌ها را فقط برای باز کردن پورت‌های حیاتی ارسال کنند. شناسایی چنین حمله ای آسان است: فقط سعی کنید به یکی از سرویس ها متصل شوید.

IPTables ابزاری است که برای مدیریت فایروال در لینوکس استفاده می شود. این یک ابزار قدرتمند و راحت برای اتصالات ناخواسته است. کل فرآیند در قوانین iptables گنجانده شده است که می توان آنها را ویرایش و مشاهده کرد. اطلاعات دقیق تر در مقاله ارائه شده است.

تاریخچه خلقت

قبل از IPTables در لینوکس از فایروال IPFW استفاده می کردند که از BSD قرض گرفته شده بود. سپس با نسخه 2.4 هسته لینوکس، فایروال Netfilter و ابزار IPTables برای مدیریت آن آغاز شد. در روش شناسی کار آن، تمام جنبه ها حفظ شد و کمی از نظر عملکردی گسترش یافت.

ساختار و طراحی IPTables

پس از ورود به فایروال، بسته از چندین بررسی عبور می کند. این می تواند یک چک جمع یا هر تحلیل دیگری در سطح هسته باشد. سپس نوبت به عبور از زنجیره PREROUTING می رسد. بعد، بررسی می شود که مطابق آن تغییر جهت به زنجیره بعدی رخ می دهد. اگر بسته آدرسی نداشته باشد، به عنوان مثال، در TCP، آنگاه به زنجیره FORWARD ارسال می شود. در مواردی که آدرس خاصی وجود دارد، زنجیره INPUT دنبال می‌شود و سپس به آن شیاطین یا سرویس‌هایی که برای آن در نظر گرفته شده است می‌آید. پاسخ آنها نیز باید از چندین زنجیره عبور کند، به عنوان مثال OUTPUT. آخرین حلقه در این فرآیند زنجیره POSTROUTING است.

حالا کمی در مورد زنجیر. هر یک از آنها شامل چندین جدول است. ممکن است نام آنها تکرار شود، اما این به هیچ وجه روی کار تأثیر نمی گذارد، زیرا آنها به هم مرتبط نیستند.

جداول به نوبه خود حاوی چندین قانون هستند. اساساً یک قانون شرط خاصی است که بسته مورد بررسی باید آن را داشته باشد. بسته به نتیجه، عمل خاصی روی بسته انجام می شود.

بنابراین، بسته با عبور از تمام مراحل شبکه، به طور متوالی از تمام زنجیره‌ها بازدید می‌کند و در هر کدام از نظر مطابقت با شرط یک قانون خاص بررسی می‌شود. اگر جدول توسط کاربر ایجاد نشده باشد، عمل پیش فرض انجام می شود، اساسا ACCEPT، که به شما امکان می دهد به حرکت رو به جلو ادامه دهید، یا DROP، که بسته را متوقف می کند.

زنجیره های از پیش تعیین شده در دسته بندی های زیر قرار می گیرند:

  • پیش پروتینگ. پردازش اولیه کلیه بسته های دریافتی.
  • ورودی. این شامل بسته هایی است که مستقیماً به رایانه محلی ارسال می شوند.
  • رو به جلو. برای "بسته های حمل و نقل" که از جدول مسیریابی پیروی می کنند استفاده می شود.
  • خروجی. برای بسته های خروجی استفاده می شود.
  • پس از استراوتینگ. آخرین مرحله در عبور یک بسته خروجی از تمام زنجیره ها.

علاوه بر زنجیره های داخلی، کاربران می توانند زنجیره های خود را ایجاد یا حذف کنند.

قوانین IPTables را مشاهده و مدیریت کنید

همانطور که قبلا ذکر شد، تمام زنجیره ها دارای شرایط خاصی برای بسته بندی هستند. ابزار IPTables برای مشاهده و مدیریت قوانین IPTables استفاده می شود. هر قانون منفرد یک خط با مجموعه ای از شرایط برای بسته ها و همچنین اقدامات روی آنها بسته به نتیجه است.

فرمت فرمان به این صورت است: فرمان iptables [-t name of the table در حال پردازش] به نام [معیار] [عمل انجام شده].

هر چیزی که در آن باشد را می توان حذف کرد. اگر این پارامتری است که یک جدول را مشخص می کند، از فیلتر استفاده می شود. برای استفاده از یک نام خاص، باید سوئیچ -t را اضافه کنید. دستور فراخوانی به شما اجازه می دهد تا عمل مورد نیاز را فعال کنید، به عنوان مثال، یک قانون IPTables را اضافه کنید یا آن را حذف کنید. "معیارها" پارامترهایی را نشان می دهد که انتخاب توسط آنها انجام می شود. و در «عمل» عملی است که در صورت تحقق شرط لازم است انجام شود.

دستورات برای ایجاد و مشاهده قوانین IPTables

  • ضمیمه (-A).هنگام استفاده از دستور، زنجیره و جدولی را که می خواهید قانون مورد نیاز را به آن اضافه کنید، مشخص می کنید. ارزش تیم این است که این کار را در انتهای لیست انجام می دهد.
  • حذف شده).همانطور که از نام آن پیداست، یک قانون را حذف می کند. به عنوان پارامتر، می توانید هم نام کامل و هم اعداد اختصاص داده شده به آنها را مشخص کنید.
  • تغییر نام زنجیره (-E).نام زنجیره را تغییر می دهد. دستور نام قدیمی و سپس نام جدید را مشخص می کند.
  • فلاش (-F).پاک کردن کاملاً تمام قوانین یک جدول خاص.
  • Insert(-I).این دستور قانون مورد نیاز را در مکان مشخص شده با شماره وارد می کند.
  • لیست (-L).قوانین Iptables را مشاهده کنید. اگر جدولی مشخص نشده باشد، از فیلتر پیش فرض استفاده می شود.
  • خط مشی (-P).خط مشی پیش فرض برای زنجیره مشخص شده استفاده می شود.
  • (-R) را جایگزین کنید.قانون زیر عدد مشخص شده را به مقدار مورد نیاز تغییر می دهد.
  • حذف زنجیره (-X).این دستور تمام زنجیره های ایجاد شده را حذف می کند. فقط موارد از پیش نصب شده باقی خواهند ماند.
  • صفر (-Z).شمارنده های داده های ارسال شده در زنجیره مشخص شده را بازنشانی می کند.

کمی در مورد پارامترهای انتخاب بسته

آنها را می توان به سه نوع تقسیم کرد:

  • معیارهای عمومی. آنها را می توان برای هر قانون مشخص کرد. آنها نیازی به اتصال افزونه ها و ماژول های خاصی ندارند و همچنین به پروتکل مورد استفاده بستگی ندارند.
  • معیارهای عمومی نیست.آنها با استفاده از معیارهای عمومی در دسترس می شوند.
  • صریح.برای استفاده از این نوع، باید پلاگین های مخصوص netfilter را متصل کنید. علاوه بر این، باید از سوئیچ -m در دستور استفاده کنید.

شایان ذکر است که کمی در مورد پارامترهایی که در هنگام تجزیه و تحلیل بسته ها با آنها مواجه می شوند صحبت کنیم:

  • پروتکل (-p).پروتکل را نشان می دهد.
  • منبع(-ها).این پارامتر آدرس IP منبعی را که بسته از آن آمده است تعیین می کند. از چند طریق می توان آن را مشخص کرد. یک میزبان خاص، آدرس یا یک زیرشبکه کامل.
  • مقصد (-d).آدرس مقصد بسته درست مانند مورد قبلی، می توان آن را به چندین روش توصیف کرد.
  • رابط داخلی (-i).رابط ورودی بسته را مشخص می کند. عمدتاً برای NAT یا در سیستم هایی با چندین رابط استفاده می شود.
  • رابط خارجی (-o).رابط خروجی

چند نمونه

برای مشاهده قوانین nat IPTables؟ شما باید از دستور - "iptables -L -t nat" استفاده کنید. وضعیت کلی فایروال - "iptables -L -n -v" را بیابید. علاوه بر این، این دستور به شما امکان می دهد قوانین IPTables موجود در سراسر سیستم را مشاهده کنید. یک قانون را در یک مکان مشخص در جدول وارد کنید، به عنوان مثال، بین خطوط اول و دوم - "iptables -I INPUT 2 -s 202.54.1.2 -j DROP". سپس ببینید آیا اضافه شده است - "iptables -L INPUT -n --line-numbers".

برای مسدود کردن یک آدرس خاص، به عنوان مثال، 12.12.12.12 - "iptables -A INPUT -s 12.12.12.12 -j DROP".

راهنما برای iptables - "man iptables". اگر به اطلاعاتی در مورد یک دستور خاص نیاز دارید، از "iptables -j DROP -h" استفاده کنید.

سرانجام

شما باید از دستورات IPTables با احتیاط استفاده کنید، زیرا پیکربندی نادرست (به دلیل ناآگاهی) می تواند منجر به خرابی شبکه یا شکست کامل شود. بنابراین، قبل از پیکربندی، ارزش آن را دارد که کتابچه ها و دستورالعمل ها را با جزئیات مطالعه کنید. در دستان ماهر، IPTables را می توان به محافظ قابل اعتماد اتصالات شبکه تبدیل کرد. مدیران سیستم به طور فعال از این ابزار برای ایجاد اتصالات جدا شده از دسترسی غیرمجاز استفاده می کنند.

اصل تنظیم

نحو کلی برای استفاده از iptables به شرح زیر است:

iptables -t<таблица> <команда> <цепочка>[عدد]<условие> <действие>

<таблица>

قوانین netfilter در 4 جدول توزیع شده است که هر کدام هدف خاص خود را دارند (جزئیات بیشتر در زیر). با سوئیچ -t مشخص می شود، اما اگر این پارامتر مشخص نشده باشد، عمل برای جدول - فیلتر پیش فرض انجام می شود.

<команда>

دستورات نشان می دهد که چه نوع عملی را روی netfilter انجام می دهیم، به عنوان مثال، ایجاد یا حذف یک قانون.

<цепочка>

هر جدول دارای زنجیره هایی است که خود قوانین برای هر کدام ایجاد می شود. به عنوان مثال، برای جدول فیلتر بالا سه زنجیره از پیش تعریف شده وجود دارد - INPUT (بسته های ورودی)، OUTPUT (بسته های خروجی) و FORWARD (بسته های انتقال).

[عدد]

برخی از دستورات نیاز به تعیین شماره قانون دارند، به عنوان مثال، برای حذف یا ویرایش.

<условие>

یک شرط معیارهایی را برای تعیین یک قانون خاص توصیف می کند.

<действие>

خوب، در واقع، اگر بسته با معیارهای شرط مطابقت داشته باشد، چه کار کنیم؟

* انصافاً، شایان ذکر است که کلید عمل لازم نیست در پایان بیاید. این فقط این است که این قالب اغلب در دستورالعمل ها یافت می شود و خواندن قوانین را آسان تر می کند.

کلیدهای iptables و نمونه هایی از استفاده از آنها

برای کار با جداول (iptables -t)

اجازه دهید به شما یادآوری کنم که همه قوانین در netfilter در جداول توزیع می شوند. برای کار با یک جدول خاص، باید از سوئیچ -t استفاده کنید.

تیم ها

کلیدهای زیر اقداماتی را که ابزار iptables انجام می دهد مشخص می کند.

کلید توضیحات و نمونه
اضافه کردن یک قانون به انتهای لیست:
iptables -A INPUT -s 192.168.0.15 -j DROP
پیام های دریافتی از 192.168.0.15 را رد کنید.
-دی حذف یک قانون:
iptables -D INPUT 10
قانون را در زنجیره INPUT با شماره 10 حذف کنید.
-من درج یک قانون در قسمت خاصی از لیست:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
قانون پنجم را در لیست وارد کنید.
جایگزینی قانون.
iptables -R OUTPUT 5 -s 192.168.0.15 -j ACCEPT
قانون پنجم را از منع به مجاز جایگزین کنید.
-اف بازنشانی قوانین در یک زنجیره
iptables -F INPUT
-Z بازنشانی آمار
iptables -Z INPUT
ایجاد یک زنجیره
iptables -N CHAINNEW
-ایکس حذف یک زنجیره
iptables -X CHAINNEW
قانون پیش فرض را تعریف کنید.
iptables -P INPUT DROP
-ای تغییر نام یک زنجیره
iptables -E CHAINNEW CHAINOLD

شرایط

این کلیدها شرایط قاعده را مشخص می کنند.

کلید توضیحات و نمونه
پروتکل شبکه گزینه های معتبر TCP، UDP، ICMP یا ALL هستند.
iptables -A INPUT -p tcp -j ACCEPT
تمام اتصالات tcp ورودی را مجاز کنید.
-s آدرس منبع - نام میزبان، آدرس IP یا زیرشبکه در نماد CIDR.
iptables -A INPUT -s 192.168.0.50 -j DROP
پیام های دریافتی از گره 192.168.0.50 را رد کنید
آدرس مقصد. اصل استفاده مشابه کلید -s قبلی است.
iptables -A OUTPUT -d 192.168.0.50 -j DROP
خروجی به نود 192.168.0.50 را رد کنید
-من آداپتور شبکه ای که بسته ها از طریق آن می رسند (INPUT).
iptables -A INPUT -i eth2 -j DROP
غیرفعال کردن ترافیک ورودی برای رابط اترنت eth2.
-o آداپتور شبکه ای که بسته ها از آن ارسال می شوند (OUTPUT).
iptables -A OUTPUT -o eth3 -j ACCEPT
پیام های خروجی از رابط اترنت eth3 مجاز است.
--dport بندر مقصد.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
اجازه تماس های ورودی در پورت 80.
--ورزش پورت منبع
iptables -A INPUT -p tcp --sport 1023 -j DROP
پیام های دریافتی از پورت 1023 را ممنوع کنید.

کلیدهای فهرست شده نیز از ساخت و ساز با استفاده از علامت پشتیبانی می کنند ! . این شرط را وارونه می کند، برای مثال،
iptables -A INPUT -s ! 192.168.0.50 -j DROP
اتصال به همه هاست ها به جز 192.168.0.50 را رد می کند.

اقدامات

اقداماتی که روی بسته ای انجام می شود که با معیارهای شرایط مطابقت دارد. هر جدول مجموعه ای از اقدامات مجاز خود را دارد. با استفاده از یک کلید مشخص شده است -j.

جدول عمل شرح
فیلتر کنید تایید کنید به بسته اجازه می دهد.
رها کردن بسته را رد می کند.
رد کنید ارسال پیام به منبع را ممنوع می کند.
nat بالماسکه برای بسته های خروجی، آدرس IP منبع را با آدرس رابطی که بسته از آن خارج می شود جایگزین می کند.
SNAT مشابه MASQUERADE، اما نشان دهنده یک رابط شبکه خاص است که آدرس آن برای جعل استفاده خواهد شد.
DNAT جایگزینی آدرس برای بسته های دریافتی
تغییر مسیر درخواست را به پورت دیگری در همان سیستم هدایت می کند.
خرد کردن T.O.S. اصلاح فیلد TOS (اولویت بندی ترافیک).
DSCP تغییر DSCP (همچنین اولویت بندی ترافیک).
TTL TTL (طول عمر بسته) را تغییر دهید.
H.L. مشابه TTL، اما برای IPv6.
علامت علامت گذاری بسته بندی برای فیلتراسیون یا شکل دهی بعدی استفاده می شود.
CONNMARK علامت گذاری اتصال.
TCPMSS تغییر مقدار MTU

نمونه هایی از دستورات متداول iptables

دستورات عمومی

قوانین را با شماره آنها مشاهده کنید:

iptables -L --line-numbers

برای هر جدول باید قوانین را جداگانه بررسی کنید:

iptables -t nat -L --line-numbers

حذف همه قوانین:

تنظیم قوانین پیش فرض:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

* در این مثال ها، به طور پیش فرض، قانون انکار (DROP) برای همه بسته های ورودی (INPUT) و خروجی (OUTPUT) کار می کند.

همه اجازه بده

روش 1: با اضافه کردن یک قانون:

iptables -I INPUT 1 -j ACCEPT

iptables -I OUTPUT 1 -j ACCEPT

iptables -I FORWARD 1 -j ACCEPT

* این سه دستور قوانینی را ایجاد می کنند که به همه بسته های ورودی، خروجی و انتقال اجازه می دهد.

روش 2. تمیز کردن قوانین:

* در اینجا ابتدا همه قوانین (-F) را حذف می کنیم، سپس خط مشی پیش فرض را برای اجازه ورودی، خروجی و حمل و نقل (-S) تنظیم می کنیم.

روش 3. غیرفعال کردن سرویس (غیرفعال کردن موقت فایروال برای تشخیص مشکلات راحت است):

سرویس iptables متوقف می شود

کار با قوانین

یک قانون را به انتهای لیست اضافه کنید:

iptables -A INPUT -p tcp --dport 25 -j ACCEPT

iptables -A INPUT -p tcp -s ! 192.168.0.25 --dport 993 -i eth0 -j ACCEPT

افزودن محدوده پورت:

iptables -A INPUT -p tcp --dport 3000:4000 -j ACCEPT

* در این مورد از 3000 تا 4000.

درج قانون:

iptables -I FORWARD 15 -p udp -d 8.8.8.8 --dport 53 -i eth1 -j ACCEPT

مسدود کردن یک آدرس IP خاص برای اتصال در پورت 25:

iptables -I INPUT 1 -s 1.1.1.1 -p tcp --dport 25 -j DROP

پورت حمل و نقل

دو روش راه اندازی وجود دارد.

1. قوانین قبل از پروتینگ + پس از پروتینگ:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 19.8.232.80 --dport 22 -j DNAT --to-destination 192.168.1.15:2222

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.1.15 --sport 2222 -j SNAT --به منبع 19.8.232.80:22

* جایی که 19.8.232.80 - آدرسی که در آن به درخواست های اتصال گوش می دهیم. 22 - پورت حمل و نقل؛ 192.168.1.15 - آدرس IP داخلی که ما تمام درخواست ها را به آن منتقل می کنیم. 2222 - پورت داخلی

2. قوانین PREROUTING + FORWARD:

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --to-destination 192.168.1.15:2222

iptables -A FORWARD -p tcp -d 192.168.1.15 --dport 22 -m state --state NEW,Established,RELATED -j ACCEPT

Iptables در درجه اول مسئول فیلتر کردن بسته ها است. پیکربندی Iptables به صورت دستی کار بسیار سختی است. انتظار نداشته باشید که "با عجله" متوجه این موضوع شوید. خوشبختانه، اگر هنوز iptables را کشف نکرده اید، ابزارهای زیادی وجود دارد که می تواند به شما کمک کند، اما نیاز فوری به ایمن سازی سیستم دارید: fwbuilder، firestarter، guarddog، arno firewall - اساسا این یک رابط کاربری گرافیکی برای iptables است. هیچ پاسخ روشنی وجود ندارد که کدام بهتر است. انتخاب باشماست. با این حال، مقاله امروز به طور خاص به iptables اختصاص دارد و به دو بخش تئوری و عملی تقسیم می شود. بی حوصله ترین ها می توانند بلافاصله بخش عملی را تکمیل کنند، اگرچه این رویکرد توصیه نمی شود.

توجه!تمام اقدامات با iptables از طرف یک کاربر ممتاز انجام می شود!

تئوری

فرمت ورودی iptables iptables [-t table] [command] [action] مثال: iptables -t filter -A INPUT ACCEPT

اقدامات

  • پذیرش - بسته را بپذیرید
  • DROP - یک بسته را رها کنید
  • DNAT - تبدیل آدرس مقصد
  • SNAT - آدرس IP خروجی را در هدر بسته تغییر دهید
  • LOG - ثبت بسته ها و رویدادها
  • MARK - علامتی را روی یک بسته قرار دهید
  • MASQUERADE - آدرس IP خروجی را در هدر بسته تغییر دهید (تفاوت با SNAT - کار با IPهای پویا)
  • QUEUE - یک بسته را برای پردازش در صف قرار دهید
  • REDIRECT - یک بسته/جریان را به پورت دیگری هدایت کنید
  • رد کردن - بسته را رها کنید + سیستم راه دور را در مورد آن مطلع کنید. که بسته او رد شد
  • RETURN - حرکت بسته را در امتداد زنجیره فعلی متوقف کنید و آن را به زنجیره فراخوان بازگردانید

تیم ها

  • -A - یک قانون به زنجیره اضافه کنید
  • -D - یک قانون را از زنجیره حذف کنید
  • -R - یک قانون را با قانون دیگری جایگزین کنید
  • -I - یک قانون جدید درج کنید
  • -L - قوانین موجود را فهرست کنید
  • -F - قوانین را بازنشانی کنید
  • -Z - شمارنده ها را در یک زنجیره مشخص تنظیم مجدد کنید
  • -N - یک زنجیره جدید با نام داده شده ایجاد کنید
  • -X - حذف زنجیره
  • -P - خط مشی پیش فرض را برای زنجیره انتخاب شده تنظیم کنید
  • -E - تغییر نام زنجیره کاربر

معیارها (عمومی)

  • -p - نوع پروتکل را مشخص کنید
  • -s - آدرس IP منبع بسته
  • -d - آدرس IP گیرنده بسته
  • -j - عمل قانون را مشخص کنید
  • -i - رابطی که بسته از آن دریافت شده است
  • -o - نام رابط خروجی را مشخص کنید
  • -f - قانون را به تمام قطعات بسته انتشار دهید

معیارهای TCP:

  • –tcp-flags - ماسک و پرچم بسته را تعریف کنید

معیارهای UDP:

  • –sport - درگاهی که بسته از آن ارسال شده است
  • –dport - درگاهی که بسته به آن آدرس داده می شود

جزئیات بیشتر در man iptables

تمرین

مشاهده پیکربندی فعلی

$ sudo iptables -L Chain INPUT (Policy ACCEPT) target Prot Opt Source مقصد Chain FORWARD (Policy ACCEPT) target Prot Opt Source مقصد Chain OUTPUT (Policy ACCEPT) مقصد Prot Opt Source مقصد

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

تنظیم سیاست پیش فرض

  • iptables -P INPUT DROP - بسته های ورودی را مسدود می کند
  • iptables -P OUTPUT ACCEPT - به بسته های خروجی اجازه می دهد
  • iptables -P FORWARD DROP - پردازش بسته هایی که از دستگاه دیگری به سرور رسیده اند و در انتظار ارسال بیشتر هستند. در مثال مسدود شده است. در این مورد، باید قوانینی را برای ماشین های قابل اعتماد اضافه کنید.

از آنجایی که بسته های INPUT ورودی مسدود هستند، قانون زیر را می نویسیم:

$ sudo iptables -A INPUT -m حالت --state RELATED,ESTABLISHED -j ACCEPT

این امکان پذیرفتن بسته ها از یک اتصال قبلی ایجاد شده و پذیرش بسته های جدید تولید شده توسط این اتصال را فراهم می کند.

یا نشان دادن نوع پروتکل:

$ sudo iptables -A INPUT -p وضعیت TCP -m - وضعیت برقرار شد، مرتبط -j پذیرش $ sudo iptables -A INPUT -p UDP -m حالت - وضعیت برقرار شد، مرتبط -j پذیرفت

حالا رابط محلی:

$ sudo iptables -A INPUT -i lo -j ACCEPT

  • NEW - داده ها شروع به اتصال جدید می کنند.
  • ESTABLISHED - بسته ای که از یک اتصال از قبل ایجاد شده می آید.
  • RELATED - یک بسته داده جدید، اما توسط یک اتصال قدیمی ایجاد شده است
  • نامعتبر - پس واضح است

$ sudo iptables-save > /etc/iptables.up.rules

این قوانین را فعال کنید:

$sudo iptables-restore< /etc/iptables.up.rules

و تفاوت را ببینید:

$sudo iptables -L

iptables را هنگام راه اندازی سیستم راه اندازی کنید:

در پوشه /etc/init.d فایلی به نام iptables ایجاد کنید

$ sudo touch /etc/init.d/iptables

موارد زیر را در آن می نویسیم:

#!/bin/sh /sbin/iptables-restore< /etc/iptables.up.rules

قابل اجرا کردن فایل iptables:

$ sudo chmod +x /etc/init.d/iptables

آن را به autorun اضافه کنید

$ sudo update-rc.d -n پیش فرض iptables

iptables را هنگام اتصال به شبکه راه اندازی کنید:

$ sudo echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables.up.rules $ sudo iptables-save >> /etc/network/if-up.d/iptables. up.rules $ sudo chmod +x /etc/network/if-up.d/iptables.up.rules

توجه داشته باشید:در هر زمان می توانید با وارد کردن iptables-save به عنوان root بررسی کنید که آیا قوانین شما بارگذاری شده اند یا خیر

برای archlinux، ذخیره قوانین iptables با دستور زیر انجام می شود:

$ sudo rc.d iptables را ذخیره کنید

یک اسکریپت اولیه کوچک (قوانین، iptables faq) برای یک دسکتاپ یا یک سرور ساده. در این مورد، نمونه هایی از کار با پورت های یک یا دیگر نرم افزار در حال اجرا بر روی کامپیوتر شما. اقدامات احتیاطی امنیتی باید در هر رایانه ای رعایت شود. این افسانه که لینوکس امن تر است درست نیست؛ همه چیز به دست و پا چلفتی دست مدیر بستگی دارد. همچنین سیستم‌های ویندوزی به خوبی محافظت شده و همچنین سیستم‌های لینوکس وجود دارند که تقریباً برای همه باز هستند. بنابراین، هنوز هم ارزش دارد که کمی در مورد محافظت از شبکه رایانه خود فکر کنید. در زیر برخی از قوانین iptables وجود دارد که ممکن است در ابتدا مفید باشند.

من به طور خاص $IPT را با /sbin/iptables جایگزین کردم، اگر کسی فقط به یک قانون نیاز دارد تا چیزی تغییر نکند، به سادگی آن را کپی کرده و اجرا می کند. طبیعتاً اینجا هنوز قوانین کمی وجود دارد، VPN های مختلف و غیره وجود ندارد، اگر می خواهید آنها را اضافه کنید.

این خطوط را می توان به طور کامل در یک اسکریپت کپی کرد و به سادگی اجرا کرد. برای موارد معمولی این کاملاً کافی است. اگر هر برنامه ای نتواند به شبکه دسترسی پیدا کند، ورود به سیستم به طور ویژه اضافه شده است. فقط tail -f /var/log/syslog (یا شما، اگر با اوبونتو متفاوت است) را باز کنید و تماشا کنید! اگر سؤالی دارید، آنها را به بحث اضافه کنید، تا با هم آنها را حل کنیم.

PS علاوه بر این قوانین، به آنچه باید از مقاله TCP Optimization بردارید، فکر کنید.

نحوه حذف یک قانون در Iptables

ارسال شده توسط Alexey Ubozhenko

چندین بار با این واقعیت مواجه شده ام که حتی افراد باهوش هم اشتباهات کاملا غیر قابل بخشش را مرتکب می شوند. به عنوان مثال، درگاهی که پایگاه داده روی آن اجرا می شود را به کل اینترنت باز می کنند.

وبلاگ در مورد مدیریت سیستم. مقالاتی در مورد لینوکس، ویندوز، سیستم های ذخیره سازی NetApp و مجازی سازی.

این اغلب برای مبتدیان DevOps اتفاق می افتد که در تمام زندگی خود کد می نویسند و اکنون مسئولیت آنها شامل راه اندازی سرور نیز می شود. آموزش های خوبی در اینترنت در مورد راه اندازی اولیه فایروال در لینوکس و سایر *nix وجود دارد، اما اغلب اینها برگه هایی در بسیاری از صفحه نمایش ها هستند. بنابراین، امیدوارم این آموزش مختصرتر برای کسی مفید باشد.

مهم!بسیار آسان است که به اشتباه یک ماشین را چنان فایروال کنید که دیگر نتوانید به آن دسترسی پیدا کنید. این امر به ویژه برای میزبانی ابری صادق است. به عنوان مثال، اگر در AWS همه پورت ها را از 1024 تا 65536 ببندید، به دلایلی دستگاه پس از راه اندازی مجدد بسته می شود. همه چیز به طور کلیپورت ها اگر در فضای ابری میزبانی می کنید، بهتر است فایروال را از طریق رابط وب ارائه شده توسط هاست راه اندازی کنید.

یک نکته کوچک در مورد اصطلاحات فایروال ساخته شده در هسته لینوکس Netfilter نام دارد و iptables ابزاری برای مدیریت این فایروال است. بسیاری از مردم به اشتباه معتقدند که فایروال iptables نامیده می شود. این اشتباه است. با گفتن چیزی مانند "من بسته ها را با استفاده از iptables فیلتر می کنم"، نادانی خود را به دیگران نشان می دهید.

به طور کلی، چه نوع مشکلاتی را می توان با استفاده از Netfilter حل کرد:

  • با استفاده از پروتکل‌های خاص (IPv4/IPv6، TCP/UDP) از آدرس‌های مشخص شده (IP، MAC) یا زیرشبکه‌ها، ترافیک ورودی به پورت‌های خاص را مجاز/رد کنید.
  • همه چیز برای ترافیک خروجی یکسان است.
  • برای مثال، می توانید تمام بسته های ICMP را به طور کامل نادیده بگیرید.
  • راه اندازی NAT، پست مربوط به نصب و پیکربندی OpenVPN را ببینید.
  • شنیده‌ام که گوروهای واقعی می‌توانند DDoS و حفاظت از نیروی brute force را راه‌اندازی کنند، دسترسی شبکه را به برنامه‌ها، کاربران یا گروه‌های خاص محدود کنند، و کارهای احمقانه دیگری انجام دهند.

من می خواهم توجه داشته باشم که در ابتدا من شخصاً ابزار iptables را در مقایسه با ipfw در FreeBSD بسیار ناخوشایند دیدم. خوشبختانه، پس از مدتی کار با آن، همه این پرچم های زیادی مانند -A، -D، -j و دیگران آشنا می شوند، پس صبور باشید. بیایید به دستورات اساسی نگاه کنیم.

نمایش همه قوانین:

ممکن است متوجه شوید که Netfilter دارای "زنجیره" است - حداقل INPUT، OUTPUT و FORWARD.

من شخصاً یک زنجیر DOCKER نیز روی دستگاه خود دارم. برای اولین بار، می توانید دو مورد اول را به ترتیب به عنوان تمام ترافیک ورودی و خروجی در نظر بگیرید و به طور موقت بقیه را فراموش کنید. این احتمال وجود دارد که شما هرگز به آنها نیاز نداشته باشید.

حذف همه قوانین:

سیاست (رفتار پیش فرض) زنجیره را تغییر دهید:

iptables -P INPUT DROP
iptables -P INPUT ACCEPT

عدم دسترسی از میزبان/زیر شبکه:

iptables -A INPUT -s 123.45.67.89 -j DROP
iptables -A INPUT -s 123.45.0.0/16-j DROP

همچنین می توانید از نام های دامنه استفاده کنید:

iptables -A INPUT -s example.ru -j DROP

ممنوعیت اتصالات خروجی:

iptables -A OUTPUT -d 123.45.67.89 -j DROP

می توانید از نفی در قوانین استفاده کنید:

iptables -A INPUT !-s 123.45.67.89 -j DROP

حذف یک قانون با شماره آن در زنجیره:

iptables -D INPUT 1

حذف یک قانون بر اساس آنچه انجام می دهد:

iptables -D INPUT -s 123.45.67.89 -j DROP

گزینه -p پروتکل را مشخص می کند. می توانید از همه، icmp، tcp، udp یا شماره پروتکل از /etc/protocols استفاده کنید. پرچم --sport پورتی را که بسته از آن ارسال شده است و پرچم --dport پورت مقصد را مشخص می کند:

iptables -A INPUT -p tcp --sport80-j ACCEPT
iptables -A INPUT -p tcp --dport80-j ACCEPT

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

iptables -I INPUT ...

یا می توانید موقعیت خاصی را مشخص کنید:

iptables-save >/etc/iptables.rules

قوانین بازیابی:

iptables-restore

حال بیایید به چند نمونه عملی نگاه کنیم. به عنوان مثال، شبیه سازی netsplit در آزمایشی که رفتار برنامه ای را که از Akka Cluster استفاده می کند بررسی می کند، به این صورت است:

run(node1، s"iptables -A INPUT -s $node2 -j DROP")
run(node1، s"iptables -A INPUT -s $node3 -j DROP")
run(node1، s"iptables -A OUTPUT -d $node2 -j DROP")
run(node1، s"iptables -A OUTPUT -d $node3 -j DROP")

بازیابی دقیقاً به همین صورت انجام می شود، فقط پرچم -A با پرچم -D جایگزین می شود.

مثالی دیگر. باید دریابید که کدام پورت ها به دستگاه گوش می دهند و پورت های غیر ضروری را ببندید. سوار ماشین می شویم و می گوییم:

خروجی نمونه:

اتصالات اینترنتی فعال (فقط سرورها)
Proto Recv-Q Send-Q آدرس محلی آدرس خارجی وضعیت PID/نام برنامه
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3210/nginx
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 1789/epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 797/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 990/postgres

Nginx و SSHd به اینترنت نگاه می کنند، این طبیعی است. PostgreSQL فقط به رابط محلی گوش می دهد، بنابراین هیچ مشکلی با آن وجود ندارد. اما epmd باقی می ماند (می توانید آن را با telnet از دستگاه دیگری بررسی کنید) و این خوب نیست. شما فقط می توانید پورت 4369 را ببندید. نحوه انجام این کار در بالا نشان داده شد. یا می توانید حتی فراتر رفته و همه اتصالات خارج از پورت 81 و بالاتر را رد کنید:

iptables -A INPUT -m چند پورت \
-p tcp --dports81:65535!-s 127.0.0.0/8-j DROP

این از پسوند چند پورت استفاده می کند که به شما امکان می دهد محدوده پورت ها را مشخص کنید.

بیایید بررسی کنیم که همه چیز کار می کند. اگر خوب است، قوانین را ذخیره کنید:

iptables-save >/etc/iptables.rules

برای اطمینان از اینکه قوانین هنگام بوت شدن سیستم انتخاب می شوند، یک فایل جدید /etc/network/if-pre-up.d/iptables ایجاد می کنیم:

iptables-restoreexit0

... و می گوییم:

chmod +x /etc/network/if-pre-up.d/iptables

این روش برای کار بر روی اوبونتو 14.04 LTS آزمایش شده است.

باید روی دبیان هم کار کند. در یادداشتی که قبلاً در مورد OpenVPN ذکر شد، شرحی از یک راه جایگزین برای بازیابی قوانین فایروال هنگام راه اندازی سیستم خواهید یافت.

مطالب اضافی برای کسانی که می خواهند درباره Netfilter بیشتر بدانند:

چگونه فایروال ها را روی سرورهای خود راه اندازی می کنید؟

برچسب ها: لینوکس ، امنیت ، شبکه

ابزار خط فرمان iptables برای پیکربندی فایروال netfilter ساخته شده در یک سیستم مبتنی بر هسته لینوکس استفاده می شود.

این دستورالعمل هم برای آدمک هایی که می خواهند جنبه های امنیت شبکه را درک کنند و هم برای متخصصان با تجربه به عنوان یک برگه تقلب مناسب است.

اصل تنظیم

نحو کلی برای استفاده از iptables به شرح زیر است:

iptables -t<таблица> <команда> <цепочка>[عدد]<условие> <действие>

<таблица>

قوانین netfilter در 4 جدول توزیع شده است که هر کدام هدف خاص خود را دارند (جزئیات بیشتر در زیر). با سوئیچ -t مشخص می شود، اما اگر این پارامتر مشخص نشده باشد، عمل برای جدول - فیلتر پیش فرض انجام می شود.

<команда>

دستورات نشان می دهد که چه نوع عملی را روی netfilter انجام می دهیم، به عنوان مثال، ایجاد یا حذف یک قانون.

<цепочка>

هر جدول دارای زنجیره هایی است که خود قوانین برای هر کدام ایجاد می شود. به عنوان مثال، برای جدول فیلتر بالا سه زنجیره از پیش تعریف شده وجود دارد - INPUT (بسته های ورودی)، OUTPUT (بسته های خروجی) و FORWARD (بسته های انتقال).

[عدد]

برخی از دستورات نیاز به تعیین شماره قانون دارند، به عنوان مثال، برای حذف یا ویرایش.

<условие>

یک شرط معیارهایی را برای تعیین یک قانون خاص توصیف می کند.

<действие>

خوب، در واقع، اگر بسته با معیارهای شرط مطابقت داشته باشد، چه کار کنیم؟

* انصافاً، شایان ذکر است که کلید عمل لازم نیست در پایان بیاید. این فقط این است که این قالب اغلب در دستورالعمل ها یافت می شود و خواندن قوانین را آسان تر می کند.

کلیدهای iptables و نمونه هایی از استفاده از آنها

برای کار با جداول (iptables -t)

اجازه دهید به شما یادآوری کنم که همه قوانین در netfilter در جداول توزیع می شوند. برای کار با یک جدول خاص، باید از سوئیچ -t استفاده کنید.

تیم ها

کلیدهای زیر اقداماتی را که ابزار iptables انجام می دهد مشخص می کند.

کلید توضیحات و نمونه
اضافه کردن یک قانون به انتهای لیست:
iptables -A INPUT -s 192.168.0.15 -j DROP
پیام های دریافتی از 192.168.0.15 را رد کنید.
-دی حذف یک قانون:
iptables -D INPUT 10
قانون را در زنجیره INPUT با شماره 10 حذف کنید.
-من درج یک قانون در قسمت خاصی از لیست:
iptables -I INPUT 5 -s 192.168.0.15 -j DROP
قانون پنجم را در لیست وارد کنید.
جایگزینی قانون.
iptables -R OUTPUT 5 -s 192.168.0.15 -j ACCEPT
قانون پنجم را از منع به مجاز جایگزین کنید.
-اف بازنشانی قوانین در یک زنجیره
iptables -F INPUT
-Z بازنشانی آمار
iptables -Z INPUT
ایجاد یک زنجیره
iptables -N CHAINNEW
-ایکس حذف یک زنجیره
iptables -X CHAINNEW
قانون پیش فرض را تعریف کنید.
iptables -P INPUT DROP
-ای تغییر نام یک زنجیره
iptables -E CHAINNEW CHAINOLD

شرایط

این کلیدها شرایط قاعده را مشخص می کنند.

کلید توضیحات و نمونه
پروتکل شبکه گزینه های معتبر TCP، UDP، ICMP یا ALL هستند.
iptables -A INPUT -p tcp -j ACCEPT
تمام اتصالات tcp ورودی را مجاز کنید.
-s آدرس منبع - نام میزبان، آدرس IP یا زیرشبکه در نماد CIDR.
iptables -A INPUT -s 192.168.0.50 -j DROP
پیام های دریافتی از گره 192.168.0.50 را رد کنید
آدرس مقصد. اصل استفاده مشابه کلید -s قبلی است.
iptables -A OUTPUT -d 192.168.0.50 -j DROP
خروجی به نود 192.168.0.50 را رد کنید
-من آداپتور شبکه ای که بسته ها از طریق آن می رسند (INPUT).
iptables -A INPUT -i eth2 -j DROP
غیرفعال کردن ترافیک ورودی برای رابط اترنت eth2.
-o آداپتور شبکه ای که بسته ها از آن ارسال می شوند (OUTPUT).
iptables -A OUTPUT -o eth3 -j ACCEPT
پیام های خروجی از رابط اترنت eth3 مجاز است.
--dport بندر مقصد.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
اجازه تماس های ورودی در پورت 80.
--ورزش پورت منبع
iptables -A INPUT -p tcp --sport 1023 -j DROP
پیام های دریافتی از پورت 1023 را ممنوع کنید.

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

راه اندازی netfilter با استفاده از iptables

این شرط را وارونه می کند، برای مثال،
iptables -A INPUT -s ! 192.168.0.50 -j DROP
اتصال به همه هاست ها به جز 192.168.0.50 را رد می کند.

اقدامات

اقداماتی که روی بسته ای انجام می شود که با معیارهای شرایط مطابقت دارد. هر جدول مجموعه ای از اقدامات مجاز خود را دارد. با استفاده از یک کلید مشخص شده است -j.

جدول عمل شرح
فیلتر کنید تایید کنید به بسته اجازه می دهد.
رها کردن بسته را رد می کند.
رد کنید ارسال پیام به منبع را ممنوع می کند.
nat بالماسکه برای بسته های خروجی، آدرس IP منبع را با آدرس رابطی که بسته از آن خارج می شود جایگزین می کند.
SNAT مشابه MASQUERADE، اما نشان دهنده یک رابط شبکه خاص است که آدرس آن برای جعل استفاده خواهد شد.
DNAT جایگزینی آدرس برای بسته های دریافتی
تغییر مسیر درخواست را به پورت دیگری در همان سیستم هدایت می کند.
خرد کردن T.O.S. اصلاح فیلد TOS (اولویت بندی ترافیک).
DSCP تغییر DSCP (همچنین اولویت بندی ترافیک).
TTL TTL (طول عمر بسته) را تغییر دهید.
H.L. مشابه TTL، اما برای IPv6.
علامت علامت گذاری بسته بندی برای فیلتراسیون یا شکل دهی بعدی استفاده می شود.
CONNMARK علامت گذاری اتصال.
TCPMSS تغییر مقدار MTU

نمونه هایی از دستورات متداول iptables

دستورات عمومی

قوانین را با شماره آنها مشاهده کنید:

iptables -L --line-numbers

برای هر جدول باید قوانین را جداگانه بررسی کنید:

iptables -t nat -L --line-numbers

حذف همه قوانین:

تنظیم قوانین پیش فرض:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

* در این مثال ها، به طور پیش فرض، قانون انکار (DROP) برای همه بسته های ورودی (INPUT) و خروجی (OUTPUT) کار می کند.

همه اجازه بده

روش 1: با اضافه کردن یک قانون:

iptables -I INPUT 1 -j ACCEPT

iptables -I OUTPUT 1 -j ACCEPT

iptables -I FORWARD 1 -j ACCEPT

* این سه دستور قوانینی را ایجاد می کنند که به همه بسته های ورودی، خروجی و انتقال اجازه می دهد.

روش 2. تمیز کردن قوانین:

* در اینجا ابتدا همه قوانین (-F) را حذف می کنیم، سپس خط مشی پیش فرض را برای اجازه ورودی، خروجی و حمل و نقل (-S) تنظیم می کنیم.

روش 3. غیرفعال کردن سرویس (غیرفعال کردن موقت فایروال برای تشخیص مشکلات راحت است):

کار با قوانین

یک قانون را به انتهای لیست اضافه کنید:

iptables -A INPUT -p tcp --dport 25 -j ACCEPT

iptables -A INPUT -p tcp -s ! 192.168.0.25 —dport 993 -i eth0 -j ACCEPT

افزودن محدوده پورت:

iptables -A INPUT -p tcp --dport 3000:4000 -j ACCEPT

* در این مورد از 3000 تا 4000.

درج قانون:

iptables -I FORWARD 15 -p udp -d 8.8.8.8 --dport 53 -i eth1 -j ACCEPT

پورت حمل و نقل

دو روش راه اندازی وجود دارد.

1. قوانین قبل از پروتینگ + پس از پروتینگ:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 19.8.232.80 —dport 22 -j DNAT —به مقصد 192.168.1.15:2222

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.1.15 —sport 2222 -j SNAT —به منبع 19.8.232.80:22

* جایی که 19.8.232.80 - آدرسی که در آن به درخواست های اتصال گوش می دهیم. 22 - پورت حمل و نقل؛ 192.168.1.15 2222 - پورت داخلی

2. قوانین PREROUTING + FORWARD:

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --to-destination 192.168.1.15:2222

iptables -A FORWARD -p tcp -d 192.168.1.15 —dport 22 -m state —state NEW,Established,RELATED -j ACCEPT

* جایی که eth1- رابط شبکه ای که در آن به درخواست ها گوش می دهیم. 22 - پورت حمل و نقل؛ 192.168.1.15 - آدرس IP داخلی که ما تمام درخواست ها را به آن منتقل می کنیم. 2222 - پورت داخلی

شروع راه اندازی

اجازه دادن به SSH:

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

ما این خط‌مشی را به گونه‌ای تنظیم کردیم که پیام‌های دریافتی را ممنوع کرده و به همه پیام‌های خروجی اجازه دهیم:

iptables -P OUTPUT ACCEPT

ما یک قانون برای عملکرد عادی apt-get ایجاد می کنیم:

iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

اجازه دادن به ICMP (برای اجرای دستور ping):

iptables -A INPUT -p icmp -j ACCEPT

قوانین ذخیره (دائمی)

به‌طور پیش‌فرض، پس از راه‌اندازی مجدد شبکه یا رایانه، همه قوانین کار نمی‌کنند. چندین روش پیکربندی برای ذخیره قوانین پس از راه اندازی مجدد وجود دارد.

روش 1. iptables-save

قوانین را در یک فایل ذخیره کنید:

iptables-save > /etc/iptables.rules

باز کردن تنظیمات شبکه:

vi /etc/network/interfaces

و خط را اضافه کنید:

iptables-restore را از قبل آماده کنید< /etc/iptables.rules

روش 2: iptables-persistent

بسته iptables-persistent را نصب کنید:

apt install iptables-persistent

برای ذخیره قوانین، دستور را وارد کنید:

سرویس iptables-save persistent

روش 3. سرویس iptables

روی نسخه های قدیمی لینوکس کار می کند:

روش 4: iptables.init

روی CentOS کار می کند:

/usr/libexec/iptables/iptables.init ذخیره کنید

اوبونتو و CentOS

سیستم عامل های مدرن اوبونتو و CentOS به طور پیش فرض iptable ندارند.

باید آن را نصب کنید یا از ابزارهای جدیدتر استفاده کنید.

در CentOS

فایروال-cmd به عنوان یک برنامه مدیریت فایروال استاندارد استفاده می شود. برای جزئیات بیشتر، دستورالعمل نحوه پیکربندی فایروال در CentOS را بخوانید.

اگر نیاز به استفاده از iptable دارید، بسته را با ابزار زیر نصب کنید:

yum نصب iptables-services

فایروال را غیرفعال کنید:

فایروال استاپ systemctl

systemctl فایروال را غیر فعال کنید

مجوز و راه اندازی iptables:

systemctl iptables را فعال می کند

در اوبونتو

اکنون از ufw برای مدیریت فایروال استفاده می شود.

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

apt-get install iptables-persistent

ufw را غیرفعال کنید:

# شبکه# امنیت# یونیکس# اوبونتو# لینوکس

آیا این دستورالعمل برای شما مفید بود؟

پشت "دیوار آتش":
فایروال (فایروال) و دروازه ورود به اینترنت
در DEBIAN GNU/LINUX 4.0 ETCH

راهنمای عملی برای سازماندهی دسترسی ایمن به اینترنت
از یک کامپیوتر جداگانه و از یک شبکه محلی در Debian GNU/Linux 4.0 Etch
کمی تئوری

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

وضعیت با این واقعیت تشدید می شود که در برخی از سیستم عامل های (هنوز) گسترده، بسیاری از پورت ها به طور پیش فرض باز مانده اند، که به مهاجم از اینترنت اجازه می دهد بدون اینکه کاربر متوجه شود به کاربر متصل شود.

برای جلوگیری از اتصالات غیرمجاز از خارج و فیلتر کردن ترافیک ورودی/خروجی، باید از برنامه خاصی در سیستم عامل استفاده شود - دیواره آتش(فایروال انگلیسی) که به آن نیز معروف است دیواره آتشو دیواره آتش. در زیر یک راه اندازی ساده فایروال در یک سیستم عامل رایگان توضیح داده شده است دبیان گنو/لینوکس 4.0.

اگر بیش از یک کامپیوتر داشته باشید، استفاده از فایروال بسیار مهم می شود شبکه خانگی یا اداری، که کامپیوترهای آن به اینترنت دسترسی دارند.

حتی یک شبکه محلی کوچک باید به درستی سازماندهی شود. فرض کنید یک نقطه دسترسی اتصال به اینترنت پرسرعت (به عنوان مثال، یک مودم ADSL) با یک رابط اترنت (یعنی شبکه) دارید.

وسوسه ای وجود دارد (با توصیه های بی سواد، مانند دستورالعمل های مودم ADSL من) برای اتصال مودم به طور مستقیم به سوئیچ، و سپس اتصال به سوئیچ وجود دارد. همهکامپیوترهای شبکه محلی در این حالت، مودم به صورت پویا آدرس های IP محلی را از طریق سوئیچ صادر می کند، اما معلوم می شود که هر کامپیوتر با اینترنت تنها می ماند! نه مودم و نه سوئیچ نمی توانند مانعی برای بدخواه شوند. مهاجم می تواند اسکن کند همهکامپیوترهای یک شبکه محلی به این ترتیب سازماندهی شده اند.

یک راه حل منطقی و مطمئن ایجاد کردن است مانعبین مودم و شبکه محلی - به شکل یک رایانه جداگانه با "دیوار آتش" (دیوار آتش) پیکربندی شده روی آن. این رایانه دارای دو رابط است - یکی از آنها به اینترنت "نگاه می کند" (یعنی به طور فیزیکی به مودم متصل است)، با دیگری روبروی شبکه محلی است (و از نظر فیزیکی به سوئیچ متصل است که سایر رایانه ها نیز به آن متصل هستند. متصل). از آنجایی که کامپیوتر ما با فایروال اکنون هاب برای دسترسی سایر کامپیوترها به اینترنت است، به آن نیز گفته می شود دروازه(دروازه انگلیسی).

با چنین سازماندهی شبکه محلی، احتمال هک به میزان قابل توجهی کاهش می یابد - مهاجم فقط دروازه را از اینترنت "می بیند" و یک فایروال روی دروازه نصب شده است و هک کردن آن آسان نیست.

راه اندازی iptables در لینوکس برای dummies

رایانه های شبکه محلی می توانند در اینترنت گشت و گذار کنند و نسبتاً ایمن باقی بمانند.

راه اندازی فایروال با استفاده از پیکربندی arno-iptables-firewall

برای سازماندهی فایروال در گنو/لینوکسبرنامه استفاده می شود iptables، که معمولاً هنگام نصب اکثر توزیع ها بلافاصله نصب می شود. که در دبیان گنو/لینوکسشما می توانید با اجرای آن با حقوق مدیر این مورد را بررسی کنید صلاحیت - استعداد - شایستگی. در صورت لزوم نصب می کنیم iptables.

با این حال، پیکربندی دستی iptablesیک کار غیر پیش پا افتاده است و فقط توسط متخصصان در زمینه مدیریت سیستم قابل انجام است. بنابراین، برای پیکربندی قوانینی که فایروال بر اساس آن عمل می کند، بهتر است از آن استفاده کنید پیکربندی خاص. که در دبیان گنو/لینوکساین برنامه arno-iptables-firewall. پس از راه اندازی، یک سری سوالات می پرسد که بر اساس آنها قوانینی برای عملکرد فایروال ایجاد می کند. iptables.

در کنسول با حقوق ابرکاربر تایپ کنید:

#aptitude نصب arno-iptables-firewall

در ابتدای نصب، برنامه از شما می پرسد که آیا واقعاً می خواهیم یک فایروال را با آن پیکربندی کنیم؟ iptables:

ابتدا باید رابط خارجی را مشخص کنید - "نگاه کردن" به اینترنت، یعنی. به مودم متصل است. تنظیمات رابط در فایل پیکربندی تعریف شده است /etc/network/interfaces. ممکن است مانند این به نظر برسد، برای مثال:

# این رابط lo است - به خود دستگاه ما اشاره می کند. auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 # این رابط eth0 است که به اینترنت (مودم ADSL) متصل است # ویژگی آن این است که آدرس IP به صورت پویا توسط ارائه دهنده به آن اختصاص داده می شود، بنابراین # گزینه dhcp auto eth0 تنظیم شده است iface eth0 inet dhcp # این رابطی است که رو به شبکه محلی است # آدرس شبکه محلی 192.168.2.0/24 # برای اهداف امنیتی در شبکه محلی، دروازه دارای یک آدرس IP ثابت است - 192.168.2.1 ، # بنابراین گزینه استاتیک # ماسک شبکه - 255.255.255.0 # آدرس پخش شبکه در این مورد 192.168.2.255 AUTO ETH1 IFACE ETH1 آدرس استاتیک 192.168.2.1 NETMASK 255.255.255.0 پخش 192.168.2.255555555555555555555

بنابراین، به تنظیمات نگاه کنید /etc/network/interfaces، به پیکربندی کننده فایروال نشان می دهیم که رابط ما خارجی است eth0:

در پاسخ به این سوال که آیا یک آدرس IP از طرف ارائه دهنده به ما داده می شود؟ به صورت پویا(با استفاده از پروتکل DHCP)، ما به طور مثبت پاسخ می دهیم:

سوال بعدی این است که چه خدماتی از کامپیوتر ما به کاربران خارجی اینترنت ارائه خواهد شد. ما هیچکدام نداریم! ما به میزبانی وب حرفه ای مشغول نیستیم و قصد نداریم اطلاعات را به خارج توزیع کنیم. خط را خالی می گذاریم.

سپس این سؤال مطرح می شود که آیا ما خدماتی را از طریق UDP ارائه خواهیم داد. همچنین نه - و ما نیز خط را خالی می گذاریم!

آیا باید از دنیای خارج پینگ بگیریم (یعنی بررسی کنیم آیا اتصالی با رایانه ای که فایروال روی آن نصب شده است وجود دارد یا خیر)؟ در مورد ما، این کاملا قابل قبول است:

این کار راه اندازی یک رایانه جداگانه را که دروازه شبکه محلی نیست، تکمیل می کند. اگر قصد داریم از کامپیوتر به عنوان دروازه استفاده کنیم، باید به چند سوال دیگر پاسخ دهیم. ما رابطی را نشان می دهیم که دروازه با آن روبروی شبکه محلی است - در مورد ما چنین است eth1، همانطور که مشخص است /etc/network/interfaces(در غیر این صورت، برای یک کامپیوتر "تنها"، این قسمت را خالی بگذارید):

وقتی از شما پرسیده شد که آیا ترجمه NAT مجاز است یا خیر، i.e. هدایت ترافیک از اینترنت از طریق دروازه به شبکه محلی و برگشت، ما به "بله" پاسخ می دهیم - این یکی از وظایف اصلی ما در این مورد است:

سپس این سوال مطرح می شود: کدام بخش شبکه محلی از طریق هدایت مجدد به شبکه های خارجی قابل دسترسی است؟ همه رایانه های موجود در شبکه محلی ما حق دسترسی به اینترنت را دارند. دوباره مقدار را نشان دهید 192.168.2.0/24

در نهایت، ما تمایل خود را برای راه اندازی تایید می کنیم iptablesبدون تأیید اضافی از طرف ما قوانین فایروال که به طور خودکار توسط پیکربندی ایجاد می شود:

پس از این کار، اگر همه چیز به خوبی پیش رفت، پیامی مشابه تصویر زیر نمایش داده می شود. اکنون هر بار که رایانه دروازه راه اندازی می شود ظاهر می شود و به شما اطلاع می دهد که فایروال با موفقیت راه اندازی شده است:

Arno's Iptables Firewall Script نسخه 1.8.8c —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

بارگیری ماژول های اضافی IPTABLES: همه ماژول های IPTABLES بارگیری شدند! در حال پیکربندی /proc/…. تنظیمات: فعال کردن ضد جعل با rp_filter فعال کردن محافظت در برابر سیل SYN از طریق کوکی‌های SYN غیرفعال کردن ثبت گزارش مریخی‌ها غیرفعال کردن پذیرش پیام‌های تغییر مسیر ICMP تنظیم حداکثر. مقدار اتصالات همزمان به 16384 فعال کردن محافظت در برابر بسته‌های مسیریابی منبع تنظیم زمان‌های پیش‌فرض کنتراک فعال کردن کاهش قابلیت DoS' تنظیم پیش‌فرض TTL=64 غیرفعال کردن ECN (اعلان ازدحام صریح) فعال کردن پشتیبانی از IP پویا Flushing setup route table /proc…/proc قوانین فلاشینگ در جدول فیلتر تنظیم خط مشی های پیش فرض (ایمن) استفاده از "info" loglevel برای syslogd تنظیم قوانین فایروال: ————————————————————————— پذیرش بسته‌ها از دستگاه Loopback محلی فعال کردن تنظیم حداکثر اندازه بسته از طریق MSS فعال کردن مخفی کردن TOS ثبت اسکن‌های مخفیانه (کاوشگرهای nmap و غیره) فعال شد ثبت بسته‌ها با پرچم‌های TCP بد فعال گزارش بسته‌های نامعتبر غیرفعال شد ثبت‌نام بسته‌های غیرفعال ثبت قطعات قطعه‌شده دسترسی از آدرس های رزرو شده فعال شد تنظیم قوانین ضد جعل خواندن قوانین IPTABLES سفارشی از /etc/arno-iptables-firewall/custom-rules بارگیری افزونه ها (کاربر) تنظیم خط مشی INPUT برای شبکه خارجی (INET): فعال کردن پشتیبانی از یک DHCP IP اختصاص داده شده در واسط(های) خارجی: eth0 ثبت میزبانی های صراحتاً مسدود شده فعال است ثبت نام اتصالات خروجی محلی رد شده فعال شده است بسته ها برای آدرس های منبع خصوصی بررسی نمی شوند. (پینگ) بسته‌ها فعال شد ورود به سیستم بسته‌های ICMP حذف‌شده فعال شد ثبت‌نام از اسکن‌های مخفیانه احتمالی فعال شد ثبت‌نام تلاش‌های (سایر) اتصال به پورت‌های TCP ممتاز فعال شد ورود به سیستم (سایر) تلاش‌های اتصال به پورت‌های UDP ممتاز فعال شده است. پورت‌های TCP غیرمجاز فعال شد ورود (سایر) تلاش‌های اتصال به پورت‌های UDP غیرمجاز فعال شد ثبت‌نام سایر پروتکل‌های IP (غیر از TCP/UDP/ICMP) تلاش‌های اتصال فعال گزارش‌گیری سیل ICMP فعال شد اعمال خط‌مشی INET به رابط خارجی (INET) (بدون e) یک زیرشبکه خارجی مشخص شده است) تنظیم خط مشی INPUT برای اینترفیس(های) داخلی (LAN): eth1 اجازه دادن به درخواست های ICMP (پینگ) اجازه دادن به همه پروتکل ها (سایر) راه اندازی خط مشی FORWARD برای رابط(های) داخلی (LAN): eth1 ورود به سیستم رد شد اتصالات LAN->INET FORWARD فعال شد راه‌اندازی خط‌مشی LAN->INET: اجازه دادن به درخواست‌های ICMP (پینگ) اجازه دادن به همه (سایر) پروتکل‌ها فعال کردن پوشش (NAT) از طریق رابط(های) خارجی: eth0 افزودن میزبان(ها) (داخلی) : 192. 168.2.0/24 امنیت برای رابط(های) خارجی در زنجیره FORWARD 16 ژانویه 23:53:12 تمام قوانین فایروال اعمال می شود.

یادداشت 1.در بیشتر موارد، راه اندازی موفقیت آمیز فایروال پس از اولین ارتباط با پیکربندی رخ می دهد. اگر چیزی کار نمی کند، اکیداً توصیه می شود پیکربندی را با اجرای مجدد پیکربندی با حقوق superuser تکرار کنید:

# dpkg-arno-iptables-firewall را دوباره پیکربندی کنید

این خطاهای تصادفی را که ممکن است هنگام پاسخ دادن به سؤالات پیکربندی کننده در اولین تجربه برقراری ارتباط با آن رخ دهد، از بین می برد. اگر این کمکی نکرد، می توانید سعی کنید فایل پیکربندی برنامه را به صورت دستی ویرایش کنید arno-iptables-firewall، برای مثال: /etc/arno-iptables-firewall/firewall.conf. بازدید از سایت اصلی سازنده این برنامه به آدرس: http://rocky.eld.leidenuniv.nl/ ممکن است مفید باشد. این شامل یک راهنمای بسیار آموزنده برای کار با برنامه، یک پرسش متداول جالب و علاوه بر این، اطلاعاتی در مورد نسخه های جدید برنامه وجود دارد.

تبصره 2.ما نباید آن را فراموش کنیم هیچکسفایروال نمی تواند تضمینی 100% برای امنیت عملکرد رایانه شما در اینترنت ارائه دهد. با این حال، حفاظت از فایروال را نمی توان نادیده گرفت. ما باید هر کاری که در توان داریم انجام دهیم تا به رحمت خدا اعتماد کنیم. "تا زمانی که خداوند شهر را حفظ نکند، نگهبان بیهوده مراقب است."(مصور 126:1).

منبع مقاله

من مدتها پیش یک پست وبلاگی در مورد قوانین اساسی Iptables برای یک کاربر تولیدی نوشتم و احتمالاً باید آن و مقاله مربوط به فایروال Stateful را بخوانید.

اما Pre Kernel 2.6.39 (که شامل و اگر بیش از 10 تا در لیست سفید دارید (که 10 دلخواه است) می توانید از آن برای قرار دادن IP در لیست سفید استفاده کنید).

راه اندازی iptables برای dummies

اولین حالت دسته که می دانیم می خواهیم بپذیریم یا حذف کنیم و رابط ها.

اگر فقط می خواهید فقط IP را مجاز کنید، بدون حالت

شما به احتمال زیاد با مشکلات مربوط به این موضوع مواجه خواهید شد و من پیشنهاد می کنم از این شرایط برای آسان کردن زندگی خود استفاده کنید. به عنوان مثال حل نشدن و قطعاً برای برخی اپلیکیشن ها مشکل ایجاد می کند.

بهترین مقالات در این زمینه