🔐 جلوگیری از SQL Injection با Prepared Statement
یکی از سادهترین و مؤثرترین کارها برای امنکردن برنامه تحت شبکه (API, Web App) استفاده از Prepared Statement / Parameterized Query است. این کار جلوی خیلی از SQL Injectionها را میگیرد حتی اگر validation سمت کلاینت دور زده شود. ⚠️
ایدهاش این است که query و دادهٔ ورودی کاربر از هم جدا شوند؛ دیتابیس ورودی را فقط بهعنوان داده میبیند، نه بخشی از دستور SQL.
نمونهٔ ساده در Python با کتابخانهٔ psycopg2 برای PostgreSQL:
نکتهها:
• همیشه از placeholder مخصوص همان driver استفاده شود (مثل
• حتی روی internal panelها و سرویسهای داخلی هم این عادت را رعایت کنید؛ اغلب حملهها از داخل شبکه شروع میشود. 🚪
مرجع معتبر 👇
OWASP - SQL Injection Prevention
🔖 #Security #امنیت #SQL_Injection #Prepared_Statement #OWASP #Database_Security #Application_Security #Network_Security
👤 Developix
💎 Channel: @DevelopixNetwork
یکی از سادهترین و مؤثرترین کارها برای امنکردن برنامه تحت شبکه (API, Web App) استفاده از Prepared Statement / Parameterized Query است. این کار جلوی خیلی از SQL Injectionها را میگیرد حتی اگر validation سمت کلاینت دور زده شود. ⚠️
ایدهاش این است که query و دادهٔ ورودی کاربر از هم جدا شوند؛ دیتابیس ورودی را فقط بهعنوان داده میبیند، نه بخشی از دستور SQL.
نمونهٔ ساده در Python با کتابخانهٔ psycopg2 برای PostgreSQL:
import psycopg2
conn = psycopg2.connect(...)
cur = conn.cursor()
# ❌ اشتباه (ساخت query با string)
username = input("username: ")
q_bad = f"SELECT * FROM users WHERE username = '{username}'"
cur.execute(q_bad) # آسیبپذیر به SQL Injection
# ✅ درست (استفاده از placeholder)
q_ok = "SELECT * FROM users WHERE username = %s"
cur.execute(q_ok, (username,)) # پارامتر جدا ارسال میشود
rows = cur.fetchall()
نکتهها:
• همیشه از placeholder مخصوص همان driver استفاده شود (مثل
%s در psycopg2 یا ? در بعضی driverها).• حتی روی internal panelها و سرویسهای داخلی هم این عادت را رعایت کنید؛ اغلب حملهها از داخل شبکه شروع میشود. 🚪
مرجع معتبر 👇
OWASP - SQL Injection Prevention
🔖 #Security #امنیت #SQL_Injection #Prepared_Statement #OWASP #Database_Security #Application_Security #Network_Security
👤 Developix
💎 Channel: @DevelopixNetwork
❤1👍1
🚧 تانل EoIP
🔻 یه نوعی از تانلینگه که برخلاف اکثر پروتکلهای دیگه، لایه ۲ رو حمل میکنه. یعنی فریمهای لایه ۲ رو داخل یه بسته IP میذاریم، از روی شبکه لایه ۳ روتش میکنیم و آخر مسیر دوباره همون فریم لایه ۲ رو سالم تحویل میگیریم.
🌀 حالا شاید براتون سوال شه که خب به چه دردی میخوره؟ بههرحال ما که داریم بسته رو میرسونیم به مقصد، چه فرقی میکنه چه لایهای باشه؟
عرضم به خدمتتون که خیلی فرق میکنه. یه مثال کوچیک بخوام بزنم:
در شبکههای مبتنی بر PPPoE، مثل خیلی از سرویسهای xDSL، ارتباط بین کلاینت و PPPoE Server باید در نهایت در قالب لایه ۲ برقرار بشه، چون PPPoE ذاتاً یک پروتکل لایه ۲ هست. حالا ممکنه بین مسیر به هزار و یک دلیل، مثل مدیریت راحتتر یا وجود تجهیزات مسیریاب، مجبور باشیم ترافیک رو از روی یک شبکه لایه ۳ عبور بدیم. اینجاست که EoIP به کمکمون میاد؛ فریمهای لایه ۲ رو داخل بستههای IP کپسوله میکنه، از مسیر لایه ۳ عبورشون میده و در سمت مقابل دوباره همون فریمهای لایه ۲ رو تحویل میده، طوری که از دید PPPoE Server انگار کلاینت همچنان روی همون شبکه لایه ۲ قرار داره.
🔅البته EoIP فقط برای PPPoE نیست و هر جا که نیاز داشته باشیم دو شبکه لایه ۲ رو از طریق یک بستر IP به هم متصل کنیم یا Bridge رو بین دو نقطه گسترش بدیم، میتونه کاربرد داشته باشه. انتقال VLAN، عبور Broadcast و Multicast یا جابهجایی ترافیک وابسته به MAC Address از جمله کاربردهای رایج اون هستند.
❎ این پروتکل علیرغم امکاناتی که در اختیارمون قرار میده و سادگی در راهاندازی، معایبی هم داره؛ مثل اینکه اختصاصی تجهیزات MikroTik هست و اگه یک طرف ارتباطتون سیسکویی یا وندور دیگهای باشه، عملاً نمیتونید ازش استفاده کنید. همچنین به صورت پیشفرض هیچ رمزنگاریای انجام نمیده، بنابراین اگر امنیت ارتباط براتون مهمه، بهتره اون رو همراه با IPsec یا یک VPN امن دیگه استفاده کنید. علاوه بر این، به دلیل سربار ناشی از کپسولهسازی، ممکنه MTU کاهش پیدا کنه و در بعضی سناریوها نیاز به تنظیم MTU یا MSS داشته باشید.
🔖 #Network, #شبکه
👤 Drwcsi
💎 Channel: @DevelopixNetwork
🔻 یه نوعی از تانلینگه که برخلاف اکثر پروتکلهای دیگه، لایه ۲ رو حمل میکنه. یعنی فریمهای لایه ۲ رو داخل یه بسته IP میذاریم، از روی شبکه لایه ۳ روتش میکنیم و آخر مسیر دوباره همون فریم لایه ۲ رو سالم تحویل میگیریم.
🌀 حالا شاید براتون سوال شه که خب به چه دردی میخوره؟ بههرحال ما که داریم بسته رو میرسونیم به مقصد، چه فرقی میکنه چه لایهای باشه؟
عرضم به خدمتتون که خیلی فرق میکنه. یه مثال کوچیک بخوام بزنم:
در شبکههای مبتنی بر PPPoE، مثل خیلی از سرویسهای xDSL، ارتباط بین کلاینت و PPPoE Server باید در نهایت در قالب لایه ۲ برقرار بشه، چون PPPoE ذاتاً یک پروتکل لایه ۲ هست. حالا ممکنه بین مسیر به هزار و یک دلیل، مثل مدیریت راحتتر یا وجود تجهیزات مسیریاب، مجبور باشیم ترافیک رو از روی یک شبکه لایه ۳ عبور بدیم. اینجاست که EoIP به کمکمون میاد؛ فریمهای لایه ۲ رو داخل بستههای IP کپسوله میکنه، از مسیر لایه ۳ عبورشون میده و در سمت مقابل دوباره همون فریمهای لایه ۲ رو تحویل میده، طوری که از دید PPPoE Server انگار کلاینت همچنان روی همون شبکه لایه ۲ قرار داره.
🔅البته EoIP فقط برای PPPoE نیست و هر جا که نیاز داشته باشیم دو شبکه لایه ۲ رو از طریق یک بستر IP به هم متصل کنیم یا Bridge رو بین دو نقطه گسترش بدیم، میتونه کاربرد داشته باشه. انتقال VLAN، عبور Broadcast و Multicast یا جابهجایی ترافیک وابسته به MAC Address از جمله کاربردهای رایج اون هستند.
❎ این پروتکل علیرغم امکاناتی که در اختیارمون قرار میده و سادگی در راهاندازی، معایبی هم داره؛ مثل اینکه اختصاصی تجهیزات MikroTik هست و اگه یک طرف ارتباطتون سیسکویی یا وندور دیگهای باشه، عملاً نمیتونید ازش استفاده کنید. همچنین به صورت پیشفرض هیچ رمزنگاریای انجام نمیده، بنابراین اگر امنیت ارتباط براتون مهمه، بهتره اون رو همراه با IPsec یا یک VPN امن دیگه استفاده کنید. علاوه بر این، به دلیل سربار ناشی از کپسولهسازی، ممکنه MTU کاهش پیدا کنه و در بعضی سناریوها نیاز به تنظیم MTU یا MSS داشته باشید.
🔖 #Network, #شبکه
👤 Drwcsi
💎 Channel: @DevelopixNetwork
👍8
Forwarded from Developix Support
This media is not supported in your browser
VIEW IN TELEGRAM
🏆آفرهای جام جهانی ۲۰۲۶ هاستایران فعال شد!
با کمپین «ترکیب برنده سایتت»، زیرساخت سایتت رو برای روزهای پرترافیک آماده کن:
🔥 ۲۵٪ تخفیف روی پلنهای ۳ ماهه هاست اشتراکی ایران
⚡ ۵۰٪ تخفیف روی پلنهای یکماهه سرویس ابری در دیتاسنترهای تهران، مشهد و اهواز
🧠 مشاوره رایگان زیرساخت توسط کارشناسان هاستایران
فرصت استفاده از تخفیفها و ثبت فرم مشاوره محدود است.
📌 برای کپی کدهای تخفیف و ثبتنام در فرم مشاوره، روی لینک زیر کلیک کنید:
📌صفحه فرم مشاوره
📌تلگرام هاستایران
📌بله هاستایران
#هاست_ایران #سرور_ابری_هاست_ایران #هاست_اشتراکی #دیتاسنتر #مشاوره_زیرساخت #جام_جهانی2026
با کمپین «ترکیب برنده سایتت»، زیرساخت سایتت رو برای روزهای پرترافیک آماده کن:
🔥 ۲۵٪ تخفیف روی پلنهای ۳ ماهه هاست اشتراکی ایران
⚡ ۵۰٪ تخفیف روی پلنهای یکماهه سرویس ابری در دیتاسنترهای تهران، مشهد و اهواز
🧠 مشاوره رایگان زیرساخت توسط کارشناسان هاستایران
فرصت استفاده از تخفیفها و ثبت فرم مشاوره محدود است.
📌 برای کپی کدهای تخفیف و ثبتنام در فرم مشاوره، روی لینک زیر کلیک کنید:
📌صفحه فرم مشاوره
📌تلگرام هاستایران
📌بله هاستایران
#هاست_ایران #سرور_ابری_هاست_ایران #هاست_اشتراکی #دیتاسنتر #مشاوره_زیرساخت #جام_جهانی2026
🟪 مکانیزم BFD در OSPF چیست؟
مکانیزمی برای تشخیص خیلی سریع افتادن همسایگی.
👈🏻 یعنی چی؟ یعنی در حالت عادی قطعا یک روتینگ پروتکل داینامیک، روشی برای تشخیص قطعی داره که اگر سه تا پکت hello در یک بازه زمانی مشخص (dead timer) بیاد و جوابی از طرف همسایه داده نشه، یعنی ارتباط قطع شده و میره سراغ مسیر جایگزین. اما BFD روشی بسیار سریعه که علاوه بر مزیت کاهش تشخیص مسیر جایگرین از چند ثانیه به چند میلی ثانیه، باعث میشه بار رویِ دوشِ روتینگ پروتکلمون هم سبک تر بشه، چون بخشی از پردازش مورد نیازش در یک پروتکل خارجی در حال انجام هست.
♥️ کانفیگش در سیسکو چجوریه؟
زیر اینترفیس میزنید:
bfd interval 50 min_rx 50 multiplier 3
ip ospf bfd
همین.
⚙️ ترجمه کامندی که گفتیم؟ هر ۵۰ میلی ثانیه یک بسته bfd ارسال میشه، حداقل زمان دریافت ۵۰ میلی ثانیه است و اگر ۳ بسته متوالی دریافت نشه، لینک Down در نظر گرفته میشه.
پس در این مثال حدودا در ۱۵۰ میلی ثانیه تشخیص خرابی اتفاق میفته .
- البته در ios های xr و xe کانفیگش متفاوته.
میکروتیک هم میتونید برید سرچ کنید چون من دوست ندارم بریم میکروتیک کانفیگ کنیم :)))
😵💫 شاید براتون سوال شه خب چه کاریه، میایم همون مکانیزم hello/dead رو کاستومایز میکنیم و تایمش رو کاهش میدیم که زودتر قطعی رو بفهمیم. اما این مکانیزم روی اکثر دیوایس ها قابلیت تغییر به میلی ثانیه نداره و در حداقلی ترین حالت میتونی در ۳ ثانیه Down شدن لینک رو تشخیص بدی در حالی که با bfd در ۱۵۰ میلی ثانیه انجام میشه.
همچنین با استفاده از BFD بار روی OSPF کاهش پیدا میکنه. البته این به معنای حذف پکت های hello نیست، صرفا فرض کنید اگه بخوایم برای افزایش سرعت، زمان dead رو از ۱۰ ثانیه به ۱ ثانیه تغییر بدیم در واقع داریم پکت های helloمون رو ۱۰ برابر میکنیم، بجای این کار، کارش رو برون سپاری میکنیم.
🎴سوال بعدیای که پیش میاد اینه که اگه PLR داشته باشیم باعث نمیشه دائما بین مسیرها سوئیچ بشیم و بهرهوری پائین بیاد؟
در واقع سوال اینه که ممکنه ما تاخیر یا پکت لاس داشته باشیم و چون فرصت کوتاهی برای جواب گرفتن از همسایهها داریم، سریع اعلام قطعی بشه و بریم سراغ مسیر بکاپ، و دوباره روی مسیر جدید همین اتفاق تکرار میشه و دچار flap میشیم؛ پس نباید تایم خیلی کم انتخاب کنیم.
🪴 پس اگر بتونیم کانفیگ صحیحی داشته باشیم، مکانیزم اعلامی میتونه خیلی روی سرعت نهائی شبکههامون تاثیر گذار باشه✨
🔖 #Security #امنیت
👤 Drwcsi
💎 Channel: @DevelopixNetwork
مکانیزمی برای تشخیص خیلی سریع افتادن همسایگی.
👈🏻 یعنی چی؟ یعنی در حالت عادی قطعا یک روتینگ پروتکل داینامیک، روشی برای تشخیص قطعی داره که اگر سه تا پکت hello در یک بازه زمانی مشخص (dead timer) بیاد و جوابی از طرف همسایه داده نشه، یعنی ارتباط قطع شده و میره سراغ مسیر جایگزین. اما BFD روشی بسیار سریعه که علاوه بر مزیت کاهش تشخیص مسیر جایگرین از چند ثانیه به چند میلی ثانیه، باعث میشه بار رویِ دوشِ روتینگ پروتکلمون هم سبک تر بشه، چون بخشی از پردازش مورد نیازش در یک پروتکل خارجی در حال انجام هست.
♥️ کانفیگش در سیسکو چجوریه؟
زیر اینترفیس میزنید:
bfd interval 50 min_rx 50 multiplier 3
ip ospf bfd
همین.
⚙️ ترجمه کامندی که گفتیم؟ هر ۵۰ میلی ثانیه یک بسته bfd ارسال میشه، حداقل زمان دریافت ۵۰ میلی ثانیه است و اگر ۳ بسته متوالی دریافت نشه، لینک Down در نظر گرفته میشه.
پس در این مثال حدودا در ۱۵۰ میلی ثانیه تشخیص خرابی اتفاق میفته .
- البته در ios های xr و xe کانفیگش متفاوته.
میکروتیک هم میتونید برید سرچ کنید چون من دوست ندارم بریم میکروتیک کانفیگ کنیم :)))
😵💫 شاید براتون سوال شه خب چه کاریه، میایم همون مکانیزم hello/dead رو کاستومایز میکنیم و تایمش رو کاهش میدیم که زودتر قطعی رو بفهمیم. اما این مکانیزم روی اکثر دیوایس ها قابلیت تغییر به میلی ثانیه نداره و در حداقلی ترین حالت میتونی در ۳ ثانیه Down شدن لینک رو تشخیص بدی در حالی که با bfd در ۱۵۰ میلی ثانیه انجام میشه.
همچنین با استفاده از BFD بار روی OSPF کاهش پیدا میکنه. البته این به معنای حذف پکت های hello نیست، صرفا فرض کنید اگه بخوایم برای افزایش سرعت، زمان dead رو از ۱۰ ثانیه به ۱ ثانیه تغییر بدیم در واقع داریم پکت های helloمون رو ۱۰ برابر میکنیم، بجای این کار، کارش رو برون سپاری میکنیم.
🎴سوال بعدیای که پیش میاد اینه که اگه PLR داشته باشیم باعث نمیشه دائما بین مسیرها سوئیچ بشیم و بهرهوری پائین بیاد؟
در واقع سوال اینه که ممکنه ما تاخیر یا پکت لاس داشته باشیم و چون فرصت کوتاهی برای جواب گرفتن از همسایهها داریم، سریع اعلام قطعی بشه و بریم سراغ مسیر بکاپ، و دوباره روی مسیر جدید همین اتفاق تکرار میشه و دچار flap میشیم؛ پس نباید تایم خیلی کم انتخاب کنیم.
🪴 پس اگر بتونیم کانفیگ صحیحی داشته باشیم، مکانیزم اعلامی میتونه خیلی روی سرعت نهائی شبکههامون تاثیر گذار باشه✨
🔖 #Security #امنیت
👤 Drwcsi
💎 Channel: @DevelopixNetwork
👍4❤2👎2
🛡️ راهاندازی سریع و امن VPN با WireGuard روی لینوکس
WireGuard یکی از سبکترین و امنترین راهحلهای VPN امروزیه؛ هم روی سرور خیلی کمحجم و ساده است، هم روی کلاینتهات (موبایل، دسکتاپ، روتر) عالی جواب میده. برای سناریوهایی مثل دسترسی امن به پنلهای داخلی، SSH از بیرون خونه/شرکت یا دور زدن محدودیت آیپی روی سرویسها خیلی کاربردیه.
در این پست، بر اساس داکیومنت رسمی WireGuard و مستندات Debian/Ubuntu، یه راهاندازی عملی و واقعی روی لینوکس رو مرور میکنیم:
🔧 سناریو
فرض کن یه VPS لینوکسی داری (مثلاً Ubuntu Server) و میخوای از هر جایی با لپتاپ یا موبایل، به صورت امن به شبکه داخلی یا سرویسهای روی اون VPS وصل بشی.
۱️⃣ نصب WireGuard روی Ubuntu/Debian
روی سرور (و بعداً روی کلاینت لینوکسی) دستور زیر رو اجرا کن:
این بسته طبق داکیومنت رسمی Ubuntu از مخازن خودش میاد و ماژول کرنل WireGuard هم روی کرنلهای جدید به صورت پیشفرض پشتیبانی میشه.
۲️⃣ ساخت key pair برای سرور
داخل سرور، توی مثلاً /etc/wireguard:
۳️⃣ ساخت key pair برای کلاینت
روی سیستم خودت (یا حتی روی سرور و بعد انتقال امن به کلاینت):
حواست باشه private keyها هیچوقت لاگ یا share نشن؛ خیلیها اشتباهشون اینه که همین key رو کپی/پیست میفرستن توی چتها 🙂
۴️⃣ کانفیگ سرور: فایل /etc/wireguard/wg0.conf
یه مثال مینیمال (با فرض اینکه آدرس داخلی VPN رو 10.0.0.1/24 برای سرور میذاری و 10.0.0.2 برای کلاینت):
پورت 51820/UDP رو توی فایروال و روی VPS باز کن (روی ufw یا فایروال provider).
۵️⃣ کانفیگ کلاینت (مثلاً روی Linux)
روی کلاینت، فایل مشابه بساز:
اینجا با AllowedIPs = 0.0.0.0/0 همه ترافیکت از داخل تونل عبور میکنه؛ برای سناریو دسترسی فقط به شبکه داخلی، میشه یه subnet خاص ست کرد.
۶️⃣ بالا آوردن تونل
روی هر دو طرف:
و برای فعال شدن خودکار بعد از reboot:
حالا از روی کلاینت، یه ping ساده:
اگر جواب گرفتی، تونل OK هست. بعد میتونی SSH رو فقط روی آدرس داخلی VPN باز بذاری و surface حمله رو شدیداً کم کنی.
✨ نکتهی مهم امنیتی
حتماً private key رو محدود به root کن، لاگها رو چک کن و روی سرور از fail2ban یا معادلش برای سرویسهای دیگه استفاده کن. WireGuard بهخودیخود امنه، ولی بقیه سرویسها همچنان نیاز به hardening دارن.
امتحانش روی یه VPS تستی خیلی ساده است؛ یه بار راهش بندازی، احتمالاً برای خیلی از سناریوهای شبکه و امنیت، ابزار پیشفرضت میشه 🔐
🔖 #Security #امنیت #WireGuard #VPN #Linux #Ubuntu #Network_Security #Server #CLI
👤 Developix
💎 Channel: @DevelopixNetwork
WireGuard یکی از سبکترین و امنترین راهحلهای VPN امروزیه؛ هم روی سرور خیلی کمحجم و ساده است، هم روی کلاینتهات (موبایل، دسکتاپ، روتر) عالی جواب میده. برای سناریوهایی مثل دسترسی امن به پنلهای داخلی، SSH از بیرون خونه/شرکت یا دور زدن محدودیت آیپی روی سرویسها خیلی کاربردیه.
در این پست، بر اساس داکیومنت رسمی WireGuard و مستندات Debian/Ubuntu، یه راهاندازی عملی و واقعی روی لینوکس رو مرور میکنیم:
🔧 سناریو
فرض کن یه VPS لینوکسی داری (مثلاً Ubuntu Server) و میخوای از هر جایی با لپتاپ یا موبایل، به صورت امن به شبکه داخلی یا سرویسهای روی اون VPS وصل بشی.
۱️⃣ نصب WireGuard روی Ubuntu/Debian
روی سرور (و بعداً روی کلاینت لینوکسی) دستور زیر رو اجرا کن:
sudo apt update
sudo apt install wireguard -y
این بسته طبق داکیومنت رسمی Ubuntu از مخازن خودش میاد و ماژول کرنل WireGuard هم روی کرنلهای جدید به صورت پیشفرض پشتیبانی میشه.
۲️⃣ ساخت key pair برای سرور
داخل سرور، توی مثلاً /etc/wireguard:
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
۳️⃣ ساخت key pair برای کلاینت
روی سیستم خودت (یا حتی روی سرور و بعد انتقال امن به کلاینت):
wg genkey | tee client_private.key | wg pubkey > client_public.key
حواست باشه private keyها هیچوقت لاگ یا share نشن؛ خیلیها اشتباهشون اینه که همین key رو کپی/پیست میفرستن توی چتها 🙂
۴️⃣ کانفیگ سرور: فایل /etc/wireguard/wg0.conf
یه مثال مینیمال (با فرض اینکه آدرس داخلی VPN رو 10.0.0.1/24 برای سرور میذاری و 10.0.0.2 برای کلاینت):
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <server_private_key_here>
[Peer]
PublicKey = <client_public_key_here>
AllowedIPs = 10.0.0.2/32
پورت 51820/UDP رو توی فایروال و روی VPS باز کن (روی ufw یا فایروال provider).
۵️⃣ کانفیگ کلاینت (مثلاً روی Linux)
روی کلاینت، فایل مشابه بساز:
[Interface]
Address = 10.0.0.2/24
PrivateKey = <client_private_key_here>
DNS = 1.1.1.1
[Peer]
PublicKey = <server_public_key_here>
Endpoint = <your_server_ip>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
اینجا با AllowedIPs = 0.0.0.0/0 همه ترافیکت از داخل تونل عبور میکنه؛ برای سناریو دسترسی فقط به شبکه داخلی، میشه یه subnet خاص ست کرد.
۶️⃣ بالا آوردن تونل
روی هر دو طرف:
sudo wg-quick up wg0
و برای فعال شدن خودکار بعد از reboot:
sudo systemctl enable wg-quick@wg0
حالا از روی کلاینت، یه ping ساده:
ping 10.0.0.1
اگر جواب گرفتی، تونل OK هست. بعد میتونی SSH رو فقط روی آدرس داخلی VPN باز بذاری و surface حمله رو شدیداً کم کنی.
✨ نکتهی مهم امنیتی
حتماً private key رو محدود به root کن، لاگها رو چک کن و روی سرور از fail2ban یا معادلش برای سرویسهای دیگه استفاده کن. WireGuard بهخودیخود امنه، ولی بقیه سرویسها همچنان نیاز به hardening دارن.
امتحانش روی یه VPS تستی خیلی ساده است؛ یه بار راهش بندازی، احتمالاً برای خیلی از سناریوهای شبکه و امنیت، ابزار پیشفرضت میشه 🔐
🔖 #Security #امنیت #WireGuard #VPN #Linux #Ubuntu #Network_Security #Server #CLI
👤 Developix
💎 Channel: @DevelopixNetwork
👍5❤4
توی خیلی از شبکهها هنوز روی سرورهای SSH پسوردهای ضعیف استفاده میشه و همین، در عمل میتونه تبدیل بشه به سادهترین راه نفوذ 👀
امروز یه آموزش خیلی کاربردی از Kali Linux و ابزار Hydra رو مرور میکنیم که توی دنیای واقعی برای تست password strength سرویس SSH استفاده میشه. این کار توی Penetration Test مجاز یا Internal Audit کمک میکنه زودتر از Attacker، پسوردهای ضعیف رو پیدا کنی.
آموزش مرجع اصلی از خود Kali و ابزار Hydra هست:
kali.org/tools/hydra
سناریو واقعی 🔍
فرض کن توی شبکه داخلی یه سرور Linux با SSH داری که یوزرهای زیادی روی اون Login میکنن. میخوای مطمئن شی هیچ یوزری از پسورد ساده مثل
اینجا Hydra بهت اجازه میده با یه Wordlist مشخص، روی SSH Password Brute Force (قانونمند) انجام بدی و ببینی کدوم یوزرها پسورد ضعیف دارن.
نکته مهم ⚠️
این کار فقط روی سیستمهایی انجام میشه که اجازه مکتوب برای تست داری (شرکت خودت، لابراتوار، سرور تست و ...). روی سیستم دیگران بدون اجازه، کاملاً غیرقانونیه.
نمونه دستور کاربردی Hydra روی SSH 🛠
توضیح سریع سوییچها:
🔹
🔹
🔹
🔹
🔹
🔹
نکات عملی و امنیتی 🧠
• قبل از اجرا، روی سرور SSH حتماً Account Lockout Policy و Fail2ban رو بررسی کن؛ اگه خیلی aggressive باشن، ممکنه یوزرهای واقعی قفل بشن.
• بهتره تست رو توی Maintenance Window یا زمانی که Load سیستم پایینه انجام بدی.
• بعد از پیدا شدن پسوردهای ضعیف، حتماً:
– User رو مجبور کن پسورد رو عوض کنه.
– روی SSH، Password Authentication رو به نفع Public Key تا حد ممکن محدود کن.
– اگه میشه، روی SSH از Port Knocking، AllowUsers و محدودیت IP استفاده کن.
• لاگها رو فراموش نکن. روی Linux معمولاً لاگ SSH توی:
ذخیره میشه؛ بعد از تست، اونا رو برای نشانههای رفتار غیرعادی مرور کن.
این مدل تست ساده، توی خیلی از شبکهها با همون چند پسورد پیشفرض، چندین اکانت ضعیف رو لو میده. دفعه بعد که روی سرور SSH کار میکنی، یه بار توی محیط مجاز این سناریو رو اجرا کن و نتیجه رو با تیمت به اشتراک بذار 🚀
🔖 #Security #امنیت #Hydra #SSH #Brute_Force #Kali_Linux #Password_Audit #Network_Security #PenTest
👤 Developix
💎 Channel: @DevelopixNetwork
امروز یه آموزش خیلی کاربردی از Kali Linux و ابزار Hydra رو مرور میکنیم که توی دنیای واقعی برای تست password strength سرویس SSH استفاده میشه. این کار توی Penetration Test مجاز یا Internal Audit کمک میکنه زودتر از Attacker، پسوردهای ضعیف رو پیدا کنی.
آموزش مرجع اصلی از خود Kali و ابزار Hydra هست:
kali.org/tools/hydra
سناریو واقعی 🔍
فرض کن توی شبکه داخلی یه سرور Linux با SSH داری که یوزرهای زیادی روی اون Login میکنن. میخوای مطمئن شی هیچ یوزری از پسورد ساده مثل
123456 یا password استفاده نکرده.اینجا Hydra بهت اجازه میده با یه Wordlist مشخص، روی SSH Password Brute Force (قانونمند) انجام بدی و ببینی کدوم یوزرها پسورد ضعیف دارن.
نکته مهم ⚠️
این کار فقط روی سیستمهایی انجام میشه که اجازه مکتوب برای تست داری (شرکت خودت، لابراتوار، سرور تست و ...). روی سیستم دیگران بدون اجازه، کاملاً غیرقانونیه.
نمونه دستور کاربردی Hydra روی SSH 🛠
hydra -L users.txt -P passwords.txt \
-t 4 -W 3 -f -vV ssh://192.168.1.10
توضیح سریع سوییچها:
🔹
-L users.txt ⇒ لیست یوزرنیمها (هر خط یه user)🔹
-P passwords.txt ⇒ Wordlist پسوردها؛ میتونی از لیستهای آماده مثل rockyou.txt (توی Kali در مسیر /usr/share/wordlists/) استفاده کنی یا خودت بسازی.🔹
-t 4 ⇒ تعداد parallel tasks. مقدار خیلی بالا نذار که هم سرویس رو overload نکنه، هم لاگهات مشکوک نشه.🔹
-W 3 ⇒ Timeout برای هر تلاش (ثانیه). توی شبکههای کند، یه مقدار بالاتر کمک میکنه.🔹
-f ⇒ به محض پیدا کردن اولین credential معتبر، کار رو متوقف میکنه (برای جلوگیری از فشار اضافه روی سرویس).🔹
-vV ⇒ خروجی verbose و detailed؛ برای دیباگ و دیدن روند تست خیلی کمک میکنه.نکات عملی و امنیتی 🧠
• قبل از اجرا، روی سرور SSH حتماً Account Lockout Policy و Fail2ban رو بررسی کن؛ اگه خیلی aggressive باشن، ممکنه یوزرهای واقعی قفل بشن.
• بهتره تست رو توی Maintenance Window یا زمانی که Load سیستم پایینه انجام بدی.
• بعد از پیدا شدن پسوردهای ضعیف، حتماً:
– User رو مجبور کن پسورد رو عوض کنه.
– روی SSH، Password Authentication رو به نفع Public Key تا حد ممکن محدود کن.
– اگه میشه، روی SSH از Port Knocking، AllowUsers و محدودیت IP استفاده کن.
• لاگها رو فراموش نکن. روی Linux معمولاً لاگ SSH توی:
/var/log/auth.log یا/var/log/secureذخیره میشه؛ بعد از تست، اونا رو برای نشانههای رفتار غیرعادی مرور کن.
این مدل تست ساده، توی خیلی از شبکهها با همون چند پسورد پیشفرض، چندین اکانت ضعیف رو لو میده. دفعه بعد که روی سرور SSH کار میکنی، یه بار توی محیط مجاز این سناریو رو اجرا کن و نتیجه رو با تیمت به اشتراک بذار 🚀
🔖 #Security #امنیت #Hydra #SSH #Brute_Force #Kali_Linux #Password_Audit #Network_Security #PenTest
👤 Developix
💎 Channel: @DevelopixNetwork
👍5❤2
Forwarded from Developix Support
با Migration Boost هاستایران، برای مهاجرت به سرور ابری دوباره هزینه ترافیک نده! 🚀
با خرید اولین سرور ابری غیرساعتی از **هاستایران**، بسته ترافیک هدیه مهاجرت بهصورت خودکار برای سرویس شما فعال میشود:
✅ حداقل ۱۰۰ گیگابایت ترافیک هدیه مهاجرت
✅ افزایش حجم هدیه متناسب با ظرفیت دیسک اولیه
✅ ترافیک آپلود رایگان
✅ بدون محدودیت زمانی
سرور ابری هاستایران را راهاندازی کنید و بکاپها، فایلها و پایگاه داده خود را بدون دغدغه هزینههای پنهان ترافیک منتقل کنید.
👇 مشاهده پلنهای سرور ابری هاستایران
hostiran.club/Migration
hostiran.club/Migration
با خرید اولین سرور ابری غیرساعتی از **هاستایران**، بسته ترافیک هدیه مهاجرت بهصورت خودکار برای سرویس شما فعال میشود:
✅ حداقل ۱۰۰ گیگابایت ترافیک هدیه مهاجرت
✅ افزایش حجم هدیه متناسب با ظرفیت دیسک اولیه
✅ ترافیک آپلود رایگان
✅ بدون محدودیت زمانی
سرور ابری هاستایران را راهاندازی کنید و بکاپها، فایلها و پایگاه داده خود را بدون دغدغه هزینههای پنهان ترافیک منتقل کنید.
👇 مشاهده پلنهای سرور ابری هاستایران
hostiran.club/Migration
hostiran.club/Migration
❤1
Forwarded from Developix Support
🗺 نقشه گنج | بهترین مسیرهای یادگیری بعد از +Network
دوره +Network فقط شروع مسیره؛ اما سوال خیلیها بعد از گذروندن این دوره اینه که:
حالا کدوم مسیر رو ادامه بدم؟ 🤔
شبکه؟ امنیت؟ سرور؟ لینوکس؟ Cloud؟ DevOps؟
در ایونت آنلاین روز یکشنبه بررسی میکنیم:
🔹 بعد از +Network چه مسیرهایی پیش روی توئه
🔹 هر مسیر برای چه افرادی مناسبتره
🔹 برای ورود به هر حوزه چه مهارتهایی لازمه
پس اگر بعد از +Network نمیدونی قدم بعدی چیه، این ایونت میتونه مسیرت رو روشنتر کنه!📍
📅11 مرداد | ساعت 19:30
💻 آنلاین و رایگان
👤با استاد حسامالدین موسویزاده
برای شرکت در ایونت جزو اولین نفرات رزرو کن:
(بدون VPN وارد شو)
🔗https://l.cando.ac/ev-net100
🌻 آموزشگاه مهندسی کندو | We CanDo IT
@cando_ac
دوره +Network فقط شروع مسیره؛ اما سوال خیلیها بعد از گذروندن این دوره اینه که:
حالا کدوم مسیر رو ادامه بدم؟ 🤔
شبکه؟ امنیت؟ سرور؟ لینوکس؟ Cloud؟ DevOps؟
در ایونت آنلاین روز یکشنبه بررسی میکنیم:
🔹 بعد از +Network چه مسیرهایی پیش روی توئه
🔹 هر مسیر برای چه افرادی مناسبتره
🔹 برای ورود به هر حوزه چه مهارتهایی لازمه
پس اگر بعد از +Network نمیدونی قدم بعدی چیه، این ایونت میتونه مسیرت رو روشنتر کنه!📍
📅11 مرداد | ساعت 19:30
💻 آنلاین و رایگان
👤با استاد حسامالدین موسویزاده
برای شرکت در ایونت جزو اولین نفرات رزرو کن:
(بدون VPN وارد شو)
🔗https://l.cando.ac/ev-net100
🌻 آموزشگاه مهندسی کندو | We CanDo IT
@cando_ac
❤2👍1
Forwarded from Developix Support
آیا CCNA خوندی، اما هنوز با تجهیزات واقعی شبکه کار نکردی؟🔥
اگه مفاهیم CCNA رو بلدی اما هنوز با تجهیزات واقعی کار نکردی، این کارگاه برای توئه!
در کارگاه ۸ ساعته CCNA، به صورت عملی سناریوهای واقعی VLAN، Routing، NAT، ACL و OSPF رو اجرا میکنی، با خطاهای شبکه روبهرو میشی و عیبیابیشون میکنی.
✅ کاملا عملی
✅ کار با تجهیزات واقعی
✅ همراهی استاد و منتور
📌 پیشنیاز: آشنایی با CCNA
این کارگاه بهدلیل استقبال دوره قبل، برای بار دوم برگزار میشه👇
حالا ثبتنام کن:
https://l.cando.ac/network-workshop4
(بدون VPN وارد شو!)
🌻 آموزشگاه مهندسی کندو | We CanDo IT
@cando_ac
اگه مفاهیم CCNA رو بلدی اما هنوز با تجهیزات واقعی کار نکردی، این کارگاه برای توئه!
در کارگاه ۸ ساعته CCNA، به صورت عملی سناریوهای واقعی VLAN، Routing، NAT، ACL و OSPF رو اجرا میکنی، با خطاهای شبکه روبهرو میشی و عیبیابیشون میکنی.
✅ کاملا عملی
✅ کار با تجهیزات واقعی
✅ همراهی استاد و منتور
📌 پیشنیاز: آشنایی با CCNA
این کارگاه بهدلیل استقبال دوره قبل، برای بار دوم برگزار میشه👇
حالا ثبتنام کن:
https://l.cando.ac/network-workshop4
(بدون VPN وارد شو!)
🌻 آموزشگاه مهندسی کندو | We CanDo IT
@cando_ac
👍3
🛡 هدرهای امنیتی HTTP؛ دفاع خط اول وباپ
خیلی وقتها اپ امن نوشته میشه، ولی با چند تا HTTP Security Header ساده میشه سطح حمله رو کلی کم کرد؛ بدون تغییر جدی توی کد. این هدرها جلوی کلی XSS، Clickjacking و حملات مشابه رو میگیرن. 🚫
چند هدر خیلی کاربردی برای هر وبسرور:
• Content-Security-Policy (یا CSP): محدودکردن سورس اسکریپتها و استایلها، کاهش ریسک XSS.
• X-Frame-Options: جلوگیری از نمایش سایت داخل iframe و کاهش Clickjacking.
• X-Content-Type-Options: nosniff: جلوگیری از MIME Sniffing.
نمونه تنظیم روی Nginx:
بعد از تنظیم، با ابزارهایی مثل SecurityHeaders.com میشه هدرها رو تست و بهینه کرد.
این تغییرها سبک، سریع و برای هر اپ تحت وب جدی، تقریبا ضروری هستن؛ حتی اگه هنوز وقت Harden کامل سرور رو نداشته باشی. 🔐
🔖 #Security #امنیت #HTTP_Headers #Web_Security #CSP #Nginx #Best_Practices
👤 Developix
💎 Channel: @DevelopixNetwork
خیلی وقتها اپ امن نوشته میشه، ولی با چند تا HTTP Security Header ساده میشه سطح حمله رو کلی کم کرد؛ بدون تغییر جدی توی کد. این هدرها جلوی کلی XSS، Clickjacking و حملات مشابه رو میگیرن. 🚫
چند هدر خیلی کاربردی برای هر وبسرور:
• Content-Security-Policy (یا CSP): محدودکردن سورس اسکریپتها و استایلها، کاهش ریسک XSS.
• X-Frame-Options: جلوگیری از نمایش سایت داخل iframe و کاهش Clickjacking.
• X-Content-Type-Options: nosniff: جلوگیری از MIME Sniffing.
نمونه تنظیم روی Nginx:
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy \
"default-src 'self'; script-src 'self'; object-src 'none'" always;
بعد از تنظیم، با ابزارهایی مثل SecurityHeaders.com میشه هدرها رو تست و بهینه کرد.
این تغییرها سبک، سریع و برای هر اپ تحت وب جدی، تقریبا ضروری هستن؛ حتی اگه هنوز وقت Harden کامل سرور رو نداشته باشی. 🔐
🔖 #Security #امنیت #HTTP_Headers #Web_Security #CSP #Nginx #Best_Practices
👤 Developix
💎 Channel: @DevelopixNetwork
👍3❤2
روی هر سرور لینوکسی که سرویسهایی مثل SSH یا وبسرور در حال اجرا است، حمله Brute Force تقریبا همیشه اتفاق میافتد. رباتها مدام پسورد حدس میزنند و اگر محدود نشوند هم امنیت را پایین میآورند، هم لاگها را شلوغ میکنند و حتی CPU را درگیر میکنند.
اینجا ابزار Fail2ban به درد میخورد؛ لاگها را مانیتور میکند و وقتی چند تلاش لاگین ناموفق از یک IP دید، بهصورت خودکار آن IP را با iptables یا nftables بلاک میکند. 👮♂️
📌 ایده اصلی Fail2ban
ابزار Fail2ban روی لاگها (مثلا /var/log/auth.log یا /var/log/secure) الگوهای مشکوک را جستوجو میکند. بر اساس یک jail (قانون) تعریف میشود که:
• چه لاگی را نگاه کند 🧾
• با چه Regex خطاها را تشخیص دهد 🔍
• بعد از چند خطا IP بن شود 🚫
• برای چند دقیقه یا ساعت بن بماند ⏱
✅ نصب Fail2ban روی Debian/Ubuntu
روی توزیعهای Debian/Ubuntu این دستورها معمولاً کافی است:
در Red Hat / CentOS هم با
🔐 نمونه تنظیم Jail برای حفاظت SSH
فایل اصلی کانفیگ محلی معمولا
توضیح سریع:
• enabled فعالکردن این jail است.
• maxretry یعنی بعد از ۵ تلاش ناموفق، IP بن شود.
• findtime محدوده زمانی بر حسب ثانیه است (اینجا ۱۰ دقیقه).
• bantime مدت زمان بنشدن IP است (اینجا ۱ ساعت).
بعد از ویرایش، سرویس را ریلود کن:
🧠 چند نکته کاربردی
• روی سروری که SSH روی پورت غیرمعمول است، مقدار
• برای سرویسهای وب (مثلا nginx) میتوان از فیلترهای آماده Fail2ban استفاده کرد تا از حملات Login Form یا اسکن بیشازحد جلوگیری شود.
• اگر خودت زیاد پسورد اشتباه میزنی، آیپی ادمین را در ignoreip قرار بده که اشتباهی خودت بن نشوی.
🌐 منابع قابل اعتماد برای مطالعه بیشتر
• مستندات رسمی Fail2ban: ReadTheDocs
• راهنمای امنیت SSH در سایت Ubuntu: Ubuntu Docs
استفاده از Fail2ban یکی از سادهترین و مؤثرترین لایههای دفاعی روی سرور است؛ سبک، اتوماتیک و کاملا قابلسفارشیسازی. امروز روی یک سرور تست فعالش کن و ببین چهقدر سریع لاگهات تمیزتر و حملهها کنترل میشوند. 😉
🔖 #Security #امنیت #Fail2ban #SSH #Linux_Security #Brute_Force #Server_Hardening
👤 Developix
💎 Channel: @DevelopixNetwork
اینجا ابزار Fail2ban به درد میخورد؛ لاگها را مانیتور میکند و وقتی چند تلاش لاگین ناموفق از یک IP دید، بهصورت خودکار آن IP را با iptables یا nftables بلاک میکند. 👮♂️
📌 ایده اصلی Fail2ban
ابزار Fail2ban روی لاگها (مثلا /var/log/auth.log یا /var/log/secure) الگوهای مشکوک را جستوجو میکند. بر اساس یک jail (قانون) تعریف میشود که:
• چه لاگی را نگاه کند 🧾
• با چه Regex خطاها را تشخیص دهد 🔍
• بعد از چند خطا IP بن شود 🚫
• برای چند دقیقه یا ساعت بن بماند ⏱
✅ نصب Fail2ban روی Debian/Ubuntu
روی توزیعهای Debian/Ubuntu این دستورها معمولاً کافی است:
sudo apt update
sudo apt install fail2ban -y
# کپی کانفیگ پیشفرض برای ویرایش امن
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# فعالسازی و استارت سرویس
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# وضعیت کلی
sudo fail2ban-client status
در Red Hat / CentOS هم با
dnf install fail2ban یا yum install fail2ban قابل نصب است (بستههای EPEL را باید فعال کرد).🔐 نمونه تنظیم Jail برای حفاظت SSH
فایل اصلی کانفیگ محلی معمولا
/etc/fail2ban/jail.local است. یک نمونه کانفیگ ساده برای SSH:[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
توضیح سریع:
• enabled فعالکردن این jail است.
• maxretry یعنی بعد از ۵ تلاش ناموفق، IP بن شود.
• findtime محدوده زمانی بر حسب ثانیه است (اینجا ۱۰ دقیقه).
• bantime مدت زمان بنشدن IP است (اینجا ۱ ساعت).
بعد از ویرایش، سرویس را ریلود کن:
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
🧠 چند نکته کاربردی
• روی سروری که SSH روی پورت غیرمعمول است، مقدار
port را با آن پورت هماهنگ کن.• برای سرویسهای وب (مثلا nginx) میتوان از فیلترهای آماده Fail2ban استفاده کرد تا از حملات Login Form یا اسکن بیشازحد جلوگیری شود.
• اگر خودت زیاد پسورد اشتباه میزنی، آیپی ادمین را در ignoreip قرار بده که اشتباهی خودت بن نشوی.
🌐 منابع قابل اعتماد برای مطالعه بیشتر
• مستندات رسمی Fail2ban: ReadTheDocs
• راهنمای امنیت SSH در سایت Ubuntu: Ubuntu Docs
استفاده از Fail2ban یکی از سادهترین و مؤثرترین لایههای دفاعی روی سرور است؛ سبک، اتوماتیک و کاملا قابلسفارشیسازی. امروز روی یک سرور تست فعالش کن و ببین چهقدر سریع لاگهات تمیزتر و حملهها کنترل میشوند. 😉
🔖 #Security #امنیت #Fail2ban #SSH #Linux_Security #Brute_Force #Server_Hardening
👤 Developix
💎 Channel: @DevelopixNetwork
👍4🔥1