Academy and Foundation unixmens | Your skills, Your future
2.28K subscribers
6.65K photos
1.36K videos
1.23K files
5.97K links
@unixmens_support
@yashar_esm
unixmens@gmail.com
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
یک دیواره آتش بخشی از یک شبکه ی کامپیوتری است که به منظور مسدودکردن دسترسی های ناخواسته به آن شبکه طراحی شده است. همچنین، یک ابزار یا مجموعهای از ابزارها است که به منظور اجازه دادن، ردکردن، رمزنگاری و رمزگشایی یا پراکسی نمودن کل ترافیک کامپیوتری بین دامنه های امنیتی مختلف بر اساس مجموعه ای از قوانین و
معیارها استفاده میشود. دیواره آتش میتواند روی سخت افزار، نرم افزار و یا ترکیبی از این دو پیاده سازی شود.
دیوارههای آتش معمو ل برای جلوگیری از دسترسی کاربران ناخواسته اینترنت به شبکه ی داخلی متصل به اینترنت استفاده میشوند. کلیه پیامهای ارسالی و دریافتی از اینترنت از دیواره آتش عبور میکنند. دیواره آتش همه ی پیامها را بررسی میکند و آنهایی که معیارهای امنیتی مشخص شده را برآورده نمیکنند، مسدود میکند. برای تنظیم دیواره آتش سیستم عامل لینوکس از ابزاری به نام IPTables استفاده میشود. Netfilter و IPTables ساختارهای نرمافزاری درون هسته ی 4.2. x و هسته ی 6.2. x میباشند که به کمک آنها میتوان فیلترکردن بستهها ، ترجمه ی آدرس شبکه و اصلاح بسته ها را انجام داد.
#security #iptables @unixmens
دیواره آتش چندین سرویس ارائه میدهد که شامل موارد زیر است:
•حفاظت از آدرس IP و کنترل ترافیک: بسیاری از دیوارهای آتش مانند یک مسیریاب عمل میکنند. شبکه های مختلف )به عنوان مثال شبکه های 192.168.1.1/24و 10.100.100.0/24( میتوانند با یکدیگر ارتباط برقرار کنند. بسیاری از مدیران شبکه فقط از این ابزار برای کمک به ایجاد زیرشبکه اضافی استفاده میکنند. این خصوصیت یکی از اجزای دیواره آتش است و با استفاده از IPTables و IPChains کامل شده است. بنابراین با یک آدرس IP میتوانیم یک شبکه ی محلی یا شبکه ی گسترده به وجود آوریم. اگرچه دیواره آتش لزوما ترجمه ی
آدرس شبکه را انجام نمیدهد، اما اکثر دیواره های آتش مانند IPTables این امکان را فراهم میکنند.
👮•تفکیک شبکه : دیواره آتش یک ابزار ابتدایی برای ایجاد یک مرز بین یک شبکه و دیگر شبکه ها است و در مدیریت ترافیک کمک میکند.
👮• محافظت در برابر حمله های جلوگیری از سرویس د هی ، پویشی و استراق سمع : دیواره آتش به عنوان یک نقطه منفرد عمل میکند که ترافیک ورودی و خروجی از شبکه را کنترل میکند.
👮 •فیلتر کردن IP و پورت: دیواره آتش توانایی پذیرفتن یا ردکردن اتصال را بر مبنای آدرس و پورت دارد. فیلتر کردن شناخته شده ترین کاربرد یک دیواره آتش است. این نوع از فیلتر کردن با فیلتر کردن بسته ها همراه است و میتواند بسیار پیچیده بوده و نه تنها بر مبنای مقصد بسته ها بلکه بر اساس مبدا بسته نیز باشد.
• فیلتر کردن محتوا: به طور کلی سرویس دهنده پراکسی یک نوع دیواره آتش است که ترافیک را با بررسی URL و محتوای صفحه، مدیریت میکند. اگر دیواره آتش مبتنی بر پراکسی، به درستی تنظیم شود، میتواند محتوایی که مدنظر است، شناسایی و مسدود کند.
👮•تعویض مسیر بسته : بعضی اوقات دیواره آتش باید ترافیک را به یک پورت دیگر یا یک میزبان دیگر بفرستد. مثل اگر سرویسدهنده ی Squid روی میزبانی غیر از دیواره آتش نصب شده است، با این کار دیواره آتش تمام ترافیک فرستاده شده به پورت 80 و 443 )پورتهای استاندارد در اتصالهای HTTP و (HTTPS را برای پردازش بیشتر به سرویس دهنده ی پراکسی میفرستد.

انواع دیواره آتش عبارتند از:
✍️ • فیلترکننده بسته: به هر بسته وارد شده یا خارج شده از شبکه نگاه میکند و بر اساس قوانین تعریف شده توسط کاربر آن را قبول یا رد میکند. نرم افزار فیلترکننده بسته به طور موثر عمل میکند و برای کاربران، شفاف است اما پیکربندی آن مشکل بوده و برای جعل IP مستعد است.
✍️ •دروازه ی کاربرد : در کاربردهای خاص مانند سرویسدهنده های FTP و Telnet مکانیزمهای امنیتی را اعمال میکند. این نرم افزار بسیار مفید است، اما ممکن است باعث کاهش کارآیی شود.
✍️ •دروازه سطح مدار : هنگامیکه یک اتصال TCP یا UDP برقرار میشود، مکانیزمهای امنیتی را اعمال میکند. از لحظه ای که اتصال برقرار میشود، بسته ها میتوانند بین میزبانها بدون کنترل بیشتر مبادله شوند.
✍️ • سرویسدهنده ی پراکسی: کلیه ی پیامهای ورودی و خروجی از شبکه را مسدود میکند و به طور موثری آدرسهای واقعی شبکه را پنهان میکند.
#security #iptables @unixmens
#IPTables
هسته‌ی لینوکس از سری1.1 داری #IPFilter# بوده است. برای تنظیم قوانین فیلترکردن بسته‌ها از ابزاری به نام ipfwadm استفاده می‌شد. در لینوکس 2.2 ابزاری به نام IPChains معرفی شد و سرانجام برای لینوکس 2.4 ابزار IPTables معرفی شد. در حقیقت IPTables ابزاری است که با هسته سخن می‌گوید و به آن می‌گوید که چه بسته‌هایی را فیلتر کند. علاوه بر فیلتر کردن بسته‌ها، برای ایجاد و دستکاری قوانین ماژول‌های NAT نیز استفاده می‌شود، زیرا NAT نیز از طریق مجموعه قوانین IPFilter پیکربندی می‌شود. اغلب نام IPTables برای کل زیرساخت دیواره آتش که شامل Netfilter، پیگیری اتصال و NAT است، استفاده می‌شود. ویژگی‌های اصلی IPTables عبارتند از:
فهرست‌کردن کلیه‌ی مجموعه‌ی قوانین فیلتر بسته
افزودن/ کم کردن/ اصلاح قوانین در مجموعه‌ی قوانین فیلتر بسته
فهرست/ صفر کردن شمارنده‌های هر قانون در مجموعه‌ی قوانین فیلتر بسته
به دلیل این که IPTables به امتیازات خاصی برای اجرا نیاز دارد، باید حتما توسط کاربر root اجرا شود. در اکثر سیستم‌های لینوکس IPTables در شاخه‌ی usr/sbin/iptables نصب می‌شود و با اجرای دستور man iptables می‌توان به مستندات مربوط به آن دسترسی پیدا کرد. پروژه‌ی netfilter/IPTables در سال 1998 میلادی توسط Rusty Russell که توسعه‌دهنده‌ی IPChains نیز بود شروع شد. با پیشرفت پروژه، تیم Netfilter شکل گرفت. نرم‌افزار توسعه داده شده توسط آن‌ها تحت لیسانس GNU/GPL است. چارچوب Xtables به مدیر سیستم امکان تعریف جدول‌هایی را می‌دهد که شامل زنجیره‌هایی از قوانین هستند. هر قانون مشخص می‌کند که با بسته چگونه برخورد شود. هر جدول با نوع خاصی از پردازش بسته، سروکار دارد. بسته‌ها با پیمایش زنجیره‌ها پردازش می‌شوند. یک قانون در یک زنجیره می‌تواند یک بسته را به زنجیره دیگری بفرستد و این روند تا هر جایی می‌تواند ادامه داشته باشد. هر بسته ورودی یا خروجی از شبکه حداقل یک زنجیره را می‌پیماید. منبع بسته مشخص می‌کند که در ابتدا چه زنجیره‌ای را بپیماید. جداول توکار سیاست‌هایی دارند. برای مثال بسته‌ای که به انتهای زنجیره برسد، حذف می‌شود. مدیر سیستم می‌تواند به تعداد دلخواه زنجیره ایجاد کند. برای این زنجیره‌ها سیاست تعریف نشده است و اگر بسته‌ای به انتهای این‌گونه زنجیره‌ها برسد، دوباره به زنجیره‌ای که آن را فراخوانی کرده است، باز‌ می‌گردد. هر قانون در یک زنجیره‌ با انواع بسته‌های خاصی انطباق می‌یابد. همچنین قانون ممکن است یک هدف داشته باشد. وقتی بسته‌ای یک زنجیره را می‌پیماید، هر قانون، آن را بررسی می‌کند. اگر قانون با بسته انطباق پیدا نکند، بسته به قانون بعدی فرستاده می‌شود و اگر قانون با بسته انطباق یابد، طبق آن‌چه در هدف مشخص شده با بسته برخورد می‌شود. بسته به پیمایش پیوسته در زنجیره ادامه می‌دهد تا یک قانون با آن بسته انطباق یابد که در این صورت در مورد سرنوشت نهایی بسته تصمیم گرفته می‌شود (مثلا بسته قبول یا حذف می‌شود) یا یک قانون، هدف بازگشت را فراخوانی کند و بسته به زنجیره‌ی فراخواننده بازگردد یا بسته به انتهای زنجیره برسد.
عبارات و اصطلاحات #IPTables
در ادامه این بخش، تعدادی از عبارات و اصطلاحاتی که بیشترین کاربرد را دارند و برای درک مطالب بعدی لازم هستند، شرح داده می‌شوند.
انطباق - تقدم :
این کلمه با دو معنی مختلف به‌کار می‌رود. معنی اول: یک انطباق منفرد که به یک قانون می‌گوید که یک سرآیند بایدمحتوی چه اطلاعاتی باشد. مثلا انطباق —source به ما می‌گوید که آدرس منبع باید یک میزبان خاص یا محدوده خاصی از شبکه باشد. هر قانون از یک یا چندین انطباق تشکیل شده است. معنی دوم: اگر کل یک قانون در مورد یک بسته صدق کند می‌گوییم بسته با قانون انطباق یافته است. چند نمونه از پرکاربردترین انطباق‌ها در ادامه آورده شده‌اند:
انطباق (--source (-s: یک آدرس IP مبدا یا شبکه را انطباق می‌دهد.
انطباق(--destination (-d: یک آدرس IP مقصد یا شبکه را انطباق می‌دهد.
انطباق(--protocol (-p: روی یک IP انطباق انجام می‌دهد.
انطباق(--in-interface (-i: یک رابط ورودی ایجاد می‌کند.
انطباقinterface: یک رابط خروجی ایجاد می‌کند.
انطباق--state: روی مجموعه‌ای از حالات اتصال انطباق می‌دهد.
انطباق--string: روی رشته‌ای از بایت‌های داده لایه‌ی کاربردی، انطباق انجام می‌دهد.
قانون (rule ) :
مجموعه‌ای از یک یا چندین انطباق به همراه یک هدف است که در اکثر پیاده‌سازی‌های IPTables، یک قانون مجموعه‌ای از چندین انطباق است. در بعضی از پیاده‌سازی‌ها می‌توانیم چندین هدف برای هر قانون داشته باشیم.
مجموعه‌ی قوانین :
مجموعه‌ای از قوانین در پیاده‌سازی IPTables می‌باشد. مجموعه‌‌ی قوانین در یک فایل پیکربندی نوشته می‌شوند.
پرش : jump
دستورالعمل JUMP مانند یک هدف است و دقیقا مانند آن نوشته می‌شود. با این تفاوت که به جای نوشتن نام هدف، نام یک زنجیره‌ی دیگر نوشته می‌شود. اگر قانون انطباق داشت، بسته به زنجیره‌ی بعدی فرستاده می‌شود و در آن پردازش می‌شود.
هدف : target
به طور کلی هر قانون موجود در مجموعه‌ی قوانین یک مجموعه‌ی هدف دارد. اگر کل قانون به طور کامل انطباق پیدا کند، تعریف هدف مشخص می‌کند که باید با بسته چه کرد. مثلا می‌گوید که باید آن را قبول، حذف و یا آدرس IP آن را ترجمه کرد. یک قانون ممکن است پرش یا هدف داشته باشد یا نداشته باشد. در ادامه چند هدف پرکاربرد آورده شده است:
مفهوم ACCEPT: به یک بسته اجازه می‌دهد که به راه خود ادامه دهد.
مفهومDROP: یک بسته را حذف می‌کند و هیچ پردازش دیگری روی آن انجام نمی‌شود.
مفهومLOG: یک بسته را در syslog ثبت می‌کند.
مفهومREJECT: یک بسته را حذف می‌کند و همزمان یک پاسخ مناسب، ارسال می‌کند.
مفهومRETURN: باعث ادامه پردازش یک بسته در زنجیره‌ی فراخواننده می‌شود.
#iptables #security @unixmens
جدول : table
هر جدول هدف خاصی دارد و در IPTables، چهار جدول وجود دارد: جداول Filter، Nat، Raw و Mangle. به عنوان مثال، جدول Filter به منظور فیلتر کردن بسته‌ها طراحی شده است و جدول Nat فقط برای ترجمه‌ی آدرس IP بسته‌ها استفاده می‌شود.
پیگیری اتصال :
یکی از مهم‌ترین ویژگی‌های Netfilter پیگیری اتصال است. پیگیری اتصال این امکان را به هسته می‌دهد که کلیه اتصال‌های شبکه یا جلسه‌ها را پیگیری کند و بدین‌وسیله کلیه بسته‌هایی که با هم یک اتصال را تشکیل می‌دهند، به هم مرتبط کند. NAT به این اطلاعات برای ترجمه‌ی بسته‌های مرتبط به هم نیاز دارد و IPTables می‌تواند از این اطلاعات استفاده کند و مانند یک دیواره آتش حالت‌دار عمل کند. پیگیری اتصال، هر بسته را به حالت‌های ‌ مختلف به شرح زیر طبقه‌‌بندی می‌کند:
جدید : اولین بسته‌‌ی یک اتصال جدید.
برقرار‌شده : بسته‌ای که قسمتی از اتصالی است که وجود دارد.
وابسته : بسته‌ای که یک اتصال جدید را شروع کرده است و این اتصال به یک اتصال موجود مرتبط است.
نامعتبر : قسمتی از هیچ اتصال شناخته‌شده‌‌ای نیست.
عدم ردیابی : حالت خاصی است که توسط مدیر به یک بسته نسبت داده می‌شود تا پیگیری اتصال را برای یک بسته خاص انجام ندهد.
درواقع Netfilter و IPTables ساختاری نرم افزاری درون کرنل 2.4.x و کرنل 2.6.x می باشد که باعث می شود به کمک آن بتوان packet filtering ( فیلتر کردن بسته های پرتکل معرفی )، NAT ( ترجمه آدرس شبکه ) و سایر اعمال مربوط به بسته ها ( mangle ) را انجام داد.
#iptables #security @unixmens
زنجیره : chain
یک زنجیره یک مجموعه‌ی قانون است که بر روی بسته‌هایی که زنجیره را می‌پیمایند، اعمال می‌شود. هر زنجیره یک هدف خاص دارد. هر جدول یک مجموعه‌ی زنجیره توکار دارد اما کاربر نیز می‌تواند زنجیره‌هایی را تعریف کند.

مهم‌ترین زنجیره‌های توکار عبارتند از INPUT، OUTPUT و FORWARD
مفهوم INPUT: این زنجیره توسط بسته‌هایی پیمایش می‌شود که به شبکه‌ی محلی وارد می‌شوند. البته بعد از این‌که در هسته عمل مسیریابی آن‌ها انجام شود.
مفهوم OUTPUT: برای بسته‌هایی است که در سیستم لینوکس تولید می‌شوند.
مفهوم FORWARD: وقتی دیواره آتش برای متصل‌کردن یک شبکه به شبکه‌ی دیگر استفاده می‌شود، بسته‌ها باید در دیواره آتش مسیریابی شوند که در این مورد این زنجیره به‌کار می‌رود.
دو زنجیره‌ی دیگر عبارتند از PREROUTING و POSTROUTING که اصلاح سرآیند بسته‌ها را قبل و بعد از عمل مسیریابی توسط هسته، انجام می‌دهند.
#iptables #security @unixmens
به طور کلی چنین میتوان گفت :

در واقع Rule یا قانون، دربرگیرنده دستوری است که برای انتخاب بسته ها وانجام یک کار بر روی آن باید بکار رود.
مثل: تمام بسته های ارسال شده از مبدأ ۱۹۲.۱۶۸.۰.۱ حذف شوند. یا آدرس IP مبدا تمام بسته های ارسال شده از کامپیوتر ۱۹۲.۱۶۸.۰.۵ به ۸۰.۴۰.۵۰.۶۰ تغییر یابد.
در واقع Chain یا زنجیر، مجموعه ای از قوانین می باشد. مثل دو قانون بال می توانند با یکدیگر تشکیل یک chain به نام . testchain را بدهند
#iptables #security @unixmens
در واقع Iptables/Netfilter یکی از محبوبت ترین فایروال های مبتنی بر خط فرمان(command line) است. این گزینه اولین خط دفاعی برای امنیت سرورهای لینوکسی است. بیشتر مدیران از این گزینه برای امنیت سرورهای خود استفاده می کنند.

ویژگی های Iptables:

محتوای مجموعه قوانین فیلتر بسته ها را فهرست می کند
به اندازه کافی سبک است زیرا تنها هدر بسته ها(packet) را بررسی می کند
می توانید قوانین را بر اساس نیازهای خود اضافه/ حذف یا اصلاح کنید
لیست کردن / صفر کردن شمارنده های هر ردیف مجموعه قوانین فیلتر بسته
پشتیبانی از بک آپ و بازیابی فایل ها
و ...

#iptables #firewall #security @unixmens
#سوال :‌ چطور در iptables فیلتر براساس کشور انجام شود ؟



#!/bin/bash
###PUT HERE COMA SEPARATED LIST OF COUNTRY CODE###
COUNTRIES="AK,AR"
WORKDIR="/root"
#######################################
cd $WORKDIR
wget -c --output-document=iptables-blocklist.txt http://blogama.org/country_query.php?country=$COUNTRIES
if [ -f iptables-blocklist.txt ]; then
iptables -F
BLOCKDB="iptables-blocklist.txt"
IPS=$(grep -Ev "^#" $BLOCKDB)
for i in $IPS
do
iptables -A INPUT -s $i -j DROP
iptables -A OUTPUT -d $i -j DROP
done
fi
rm $WORKDIR/iptables-blocklist.txt

#linux #firewall #iptables #security #ip #ban

https://t.me/unixmens
#سوال ‌ چطور در iptables فیلتر براساس کشور انجام شود ؟

برای فیلتر کردن ترافیک بر اساس کشور در iptables، معمولاً از ماژول xt_geoip استفاده می‌شود. این ماژول به شما اجازه می‌دهد تا ترافیک را بر اساس آدرس‌های IP و کشور مبدا آن‌ها فیلتر کنید. در زیر مراحل کلی برای انجام این کار آورده شده است:
مراحل انجام کار:

نصب بسته‌های لازم:
ابتدا باید بسته‌های لازم را نصب کنید. در اکثر توزیع‌های لینوکس، می‌توانید از GeoIP و xtables-addons استفاده کنید. برای نصب آن‌ها، از دستورات زیر استفاده کنید:



sudo dnf install geoip geoip-devel xtables-addons

sudo apt install geoip-bin xtables-addons-common


دانلود و به‌روزرسانی پایگاه داده GeoIP:
شما باید پایگاه داده GeoIP را دانلود کنید. می‌توانید از دستور زیر استفاده کنید:



sudo geoipupdate


ایجاد پایگاه داده برای xt_geoip:
پس از دانلود پایگاه داده، باید آن را به فرمت مورد نیاز xt_geoip تبدیل کنید:



sudo mkdir -p /usr/share/xt_geoip
sudo geoipupdate -f /usr/share/xt_geoip/GeoIP.dat
sudo xt_geoip_build /usr/share/xt_geoip/GeoIP.dat


استفاده از iptables برای فیلتر کردن بر اساس کشور:
حالا می‌توانید از iptables برای فیلتر کردن ترافیک بر اساس کشور استفاده کنید. به عنوان مثال، برای مسدود کردن ترافیک از یک کشور خاص (مثلاً ایران)، می‌توانید از دستور زیر استفاده کنید:



sudo iptables -A INPUT -m geoip --src-cc IR -j DROP


در اینجا IR کد کشور ایران است. شما می‌توانید کد کشور مورد نظر خود را جایگزین کنید.

ذخیره تنظیمات iptables:
پس از انجام تغییرات، مطمئن شوید که تنظیمات iptables را ذخیره کنید تا پس از راه‌اندازی مجدد سیستم، اعمال شوند:



sudo iptables-save > /etc/iptables/rules.v4

نکات مهم:

اطمینان حاصل کنید که ماژول xt_geoip در هسته لینوکس شما فعال باشد.
پایگاه داده GeoIP ممکن است نیاز به به‌روزرسانی منظم داشته باشد تا اطلاعات جدیدترین IPها را شامل شود.
فیلتر کردن بر اساس کشور ممکن است به دلیل تغییرات IP و استفاده از VPNها و پروکسی‌ها همیشه دقیق نباشد.

با این مراحل، شما می‌توانید ترافیک را بر اساس کشور در iptables فیلتر کنید.

#firewall #linux #kernel #iptables

https://t.me/unixmens
firewall-iptables.pdf
2.8 MB
کتاب فایروال گنو/لینوکس ( iptables) تقدیم عزیزان . که به صورت آزاد منتشر کردم .
سعی کردم این کتاب مرجعی باشه برای عزیزان
نویسنده : مهندس یاشار اسمعیل دخت
سعی کنید تا جای امکان در شبکه خودتان این کتاب را منتشر کنید .
آنچه داریم ، و میدهیم . آنچه را که به دنبال آن هستیم را بدست خواهیم آورد (سقراط )
بگذار دهش خصلت تو باشد .


فایروال‌ها ابزارهای امنیتی هستند که برای کنترل ترافیک ورودی و خروجی شبکه استفاده می‌شوند. در سیستم‌عامل لینوکس، یکی از معروف‌ترین و قدرتمندترین فایروال‌ها، iptables است. اهمیت فایروال‌ها به دلایل زیر است:
اهمیت فایروال

حفاظت از شبکه: فایروال‌ها به عنوان اولین خط دفاعی در برابر حملات سایبری عمل می‌کنند. آن‌ها می‌توانند ترافیک مشکوک را شناسایی و مسدود کنند.

کنترل دسترسی
پیشگیری از نفوذ
گزارش‌گیری و نظارت
و ...
#linux #security #yashar_esmaildokht #iptables #firewall

https://t.me/unixmens
👏2👎1