امنیت شبکه خود با Iptables - Proxy - NAT - IDS: قسمت 2

در پست قبلی پیکربندی IPTables را مشاهده کردیم که به عنوان فایروال عمل می کند. اکنون می توانیم ببینیم که چگونه می توان آن اسکریپت ها را ایجاد کرد تا قوانین هنگام شروع سیستم به طور خودکار اجرا شوند و همچنین چگونه می توانیم برای یک لحظه آن قوانین را حذف یا متوقف کنیم.

قبل از انجام متن و نشان دادن شکل ظاهری آن ، بیایید کمی در مورد NAT و مفهوم کاری که می خواهیم با این تجهیزات انجام دهیم صحبت کنیم.

NAT و زمینه مثال.

وقتی درباره NAT صحبت می کنیم ، می توانیم این مسئله را با مسیریابی اشتباه بگیریم ، زیرا هر دو وظیفه اتصال دو شبکه مختلف به یکدیگر را دارند. تفاوت واقعی این است که مسیریابی برای رفتن از یک شبکه محلی به شبکه دیگر اعمال می شود و این شبکه دیگر می تواند به یک روتر متصل شود و به اینترنت برود.

در حالی که ، وقتی صحبت از NAT می شود ، در مورد مسیریابی بسته ها از یک شبکه محلی یا خصوصی به یک شبکه عمومی یا اینترنت صحبت می کنیم. این کار را با پوشاندن بسته ها با قرار دادن IP عمومی که با آن به اینترنت می رود ، انجام می دهد. به عبارت دیگر ، ما به روتر نیاز نداریم ، زیرا IP عمومی مستقیماً توسط رایانه GNU / Linux متعلق است.

NAT

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

  • که لینوکس ما بین روتر ارائه دهنده خدمات و شبکه محلی است.

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

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

این بدان معنی است که لینوکس ما باید NAT را انجام دهد تا بسته ها به اینترنت دسترسی پیدا کنند.

بنابراین ، برای اهداف این آزمایشگاه کوچک ، خواهیم گفت که لینوکس ما مستقیماً یک IP عمومی را دریافت می کند و بنابراین می تواند اثرات NAT را آزمایش کند.

برای انجام NAT سپس از نحو استفاده می کنیم

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

جایی که eth1 رابطی است که ما IP عمومی را دریافت می کنیم ، یعنی جایی که به اینترنت می رویم.

MASQUERADE وقتی عمومی است که ip استفاده می شود اما می تواند در طول زمان متفاوت باشد (پویا). در غیر این صورت می توانیم از SNAT –to-source ip استفاده کنیم

ایجاد اسکریپت iptables

فرض کنید که: 172.26.0.0 شبکه محلی ما و 81.2.3.4 IP عمومی است که با آن به اینترنت می رویم. (این یک IP ثابت است). من رابط های eth0 (شبکه محلی) را دارم

eth1 (شبکه عمومی).

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

فرض کنید قوانین IPTABLES من عبارتند از:

#! / bin / bash # فایروال خانه من. # نام پرونده / و غیره / فایروال_در # توسط Jlcmux توییتر:Jlcmux # # خط مشی اساسی. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT برای اشتراک اینترنت از eth0 به eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --به منبع 81.2.3.4
# # اجازه دهید اتصالات ورودی که توسط iptables من شروع شده اند -یک وضعیت جلو -m - ایالت تأسیس شده ، مرتبط- j پذیرش # ترافیک خروجی مجاز iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j پذیرش iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j پذیرش قابل قبول -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
فراموش نکنیم که مجوزهای اجرا را می دهیم

توضیح:

این اسکریپت اساساً موارد زیر را انجام می دهد:

  1. ابتدا کلیه پیمایش ها ، ارتباطات و ترافیک را محدود کنید. (سیاست های اساسی فایروال)
  2. سپس NAT را با مقصد eth1 ایجاد کنید. نشان می دهد که ما یک IP عمومی ثابت داریم «81.2.3.4»
  3. این درگاه های لازم برای دریافت بسته های ارتباطی آغاز شده توسط من را باز می کند.
  4. ترافیک خروجی HTTP ، HTTPS و DNS را می پذیرد.
این قوانین برای ترافیک FORWARD تعیین شده است زیرا ما از لینوکس خود به عنوان روتر استفاده می کنیم ، بنابراین سیاست هایی برای ترافیکی که از طریق لینوکس می رود استفاده می شود ، یعنی به عنوان یک واسطه عمل می کند. این بدان معنی است که Linux ما واقعاً نمی تواند مستقیماً داده ای را پیمایش یا دریافت کند. این فقط برای رایانه های متصل به آن اعمال می شود ، اما نه به خود آن

اگر می خواهیم از تجهیزات خود برای پیمایش استفاده کنیم باید خطوط را تکرار کنیم و به صورت مناسب FORWARD را به INPUT یا OUTPUT تغییر دهیم.

لغو متن

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

#! / bin / bash # فایروال خانه من. # نام پرونده / و غیره / فایروال_فعال # توسط Jlcmux توییتر:Jlcmux # # حذف قوانین iptables -F # # اعمال سیاست های پیش فرض (همه ترافیک پذیرفته می شود) iptables -P ورودی ورودی پذیرش iptables -P پذیرش ویژگی های ورودی -P پذیرش به جلو

خودکار کردن

حالا ما باید اسکریپت را در داخل ایجاد کنیم /etc/init.d/ و سرویس به طور خودکار شروع می شود و ما می توانیم آن را به روشی راحت تر مدیریت کنیم.

#! / bin / bash # فایروال خانه من. # نام پرونده /etc/init.d/ فایروال # توسط Jlcmux Twitter:Jlcmux مورد 1 دلار در شروع) / etc / firewall_on ؛؛ توقف) / etc / firewall_off ؛؛ وضعیت) iptables -L ؛؛ *) echo "نحو اشتباه. معتبر = /etc/init.d/ فایروال شروع | توقف | وضعیت ؛؛ esac

توضیح:

این آخرین اسکریپتی که قرار داده ایم /etc/init.d/ با نام دیوار آتش. بنابراین اگر می خواهیم فایروال را مدیریت کنیم می توانیم از دستور استفاده کنیم /etc/init.d/ فایروال شروع می شود. به همین ترتیب می توانیم جلوی آن را بگیریم یا وضعیت را ببینیم.

اکنون می خواهیم پرونده را ویرایش کنیم /etc/rc.local و چیزی مانند این قرار داده ایم: /etc/init.d/ فایروال شروع می شود برای شروع با سیستم

همچنین. این قسمت دوم است. امیدوارم چیزی برای همه شما به ارمغان بیاورد. در مورد بعدی ما پروکسی و IDS را می بینیم.


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

7 نظر ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   خشونت dijo

    اگر از دبیان استفاده می کنید ، بسته ای در repo وجود دارد (iptables-persistent) که دقیقاً همین کار را انجام می دهد ، بسته به آنچه استفاده می کنید ، قوانین جاری را در /etc/iptables/rules.v4 یا v6 ریخته و سپس آنها را برای شما اعمال می کند وقتی سیستم را بلند می کنید.

  2.   OCZ dijo

    در عمل ، برای تمیز کردن پیکربندی فایروال iptables معمولی (و استفاده از NAT از نظر من اینگونه نخواهد بود) ، در اکثر موارد تنظیم مجدد قانون و تنظیم مجدد سیاست های پیش فرض به ACCEPT کافی است.
    اما از لحاظ تئوری ، و تا آنجا که من می دانم ، علاوه بر این شما همچنین باید رشته های غیر پیش فرض را پاک کنید و شمارنده ها را دوباره تنظیم کنید. اقداماتی که باید انجام شود با توجه به اینکه جدا از "فیلتر" جداول دیگری نیز وجود دارد (خواندن پرونده "/ proc / net / ip_tables_names" برای این امر اجباری است).

    به هر حال ، ارتدوکسی می گوید که فایروال باید قبل از شبکه باشد. من نمی دانم که چگونه در سایر سیستم های لینوکس حاصل می شود ، اما در نوع دبیان می توان متن را در دایرکتوری "/etc/network/if-pre-up.d/" تنظیم و تنظیم کرد.

    فایروال خوب همه. 😉

  3.   NauTiluS dijo

    سلام ، پست بسیار خوبی است. من کل 2 جلد را خوانده ام.

    منتظر بعدی

  4.   بی نام dijo

    س Aالی از عدم آگاهی من ، ما با iptables ادامه می دهیم ، اما برای چندین نسخه هسته nftable داریم ، من در حال آزمایش هستم ، س theالات این است ، آیا nftables با توجه به iptables چیزی بتا است؟ آیا استفاده از iptables برای مدت طولانی تری ادامه خواهد یافت؟

    متشکرم.

    1.    یوکیترو dijo

      nftables شامل تمام ویژگی های iptables ، ip6table ، arptables و ebtables می باشد ، همه با استفاده از یک زیرساخت جدید در هر دو هسته و فضای کاربر ، که عملکرد بهتر و عملکرد بهتر را تضمین می کند. nftables جایگزین iptables و سایر ابزارهای ذکر شده خواهد شد اما نه در حال حاضر ، حداقل تا زمانی که استفاده گسترده تری از nftable به عنوان مثال وجود داشته باشد.

  5.   الکساندر dijo

    پست بسیار خوبی ، من می خواستم بیشتر بخوانم ، زیرا بسیار خوب توضیح داده شده است

  6.   اوره dijo

    سلام! بسیار خوب هر دو پست.
    به عنوان یک کمک می توانید در این قسمت به انتها اضافه کنید:

    "اکنون ما می خواهیم پرونده /etc/rc.local را ویرایش کنیم و چیزی مانند: /etc/init.d/firestop را شروع کنیم تا با سیستم شروع شود."

    این را به rc.local اضافه کنید.

    if [-x /etc/init.d/ فایروال] ؛ سپس
    /etc/init.d/ فایروال شروع می شود
    fi

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

    به عنوان مثال: chmod + x /etc/init.d/ فایروال
    برای اجرای آن در هر استارتاپ یا ...
    chmod -x /etc/init.d/ فایروال
    به طور کامل آن را غیر فعال کنید.

    سلام!