| کانال امنیت و شبکه |
3.42K subscribers
43 photos
3 videos
6 files
41 links
⭕️ کانال امنیت و شبکه دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
🔹 ssh فقط برای لاگین نیست!

خیلی وقت‌ها لازم می‌شه به یه سرویس روی سرور (مثلاً پنل وب، پایگاه‌داده یا یه پورت مدیریت) از راه دور وصل بشیم، ولی نمی‌خوایم پورتی رو روی اینترنت باز بذاریم. این‌جا ssh می‌تونه مثل یه تونل امن عمل کنه و ترافیک رو از داخل کانال رمز‌شده رد کنه.

این تکنیک تو دنیای Network & Security خیلی کاربردیه؛ مخصوصاً وقتی طبق توصیه‌های OWASP و NIST می‌خوای سطح حمله (Attack Surface) رو کم کنی و پورت‌های غیرضروری رو Public نگه نداری.


📌 سناریو واقعی

فرض کن روی سرورت یه وب‌اپلیکیشن ادمین داری که فقط روی localhost:8080 گوش می‌ده و پشت فایروال مخفیه. نمی‌خوای Port 8080 رو تو اینترنت باز کنی، ولی از خونه باید بهش دسترسی داشته باشی.

با ssh Local Port Forwarding می‌تونی کاری کنی که روی سیستم لوکال خودت یه پورت (مثلاً 9090) باز شه و هرچی بهش می‌زنی، به صورت امن بره سمت سرور و به localhost:8080 اونجا وصل شه.


🛠 دستور اصلی

روی سیستم لوکال (لپ‌تاپ خودت) این رو بزن:

ssh -L 9090:localhost:8080 user@example.com -N -C


🔹 -L 9090:localhost:8080 یعنی هر درخواست به 127.0.0.1:9090 روی سیستم تو، از داخل تونل ssh بره به localhost:8080 روی سرور.

🔹 user@example.com هم یوزر و سرور مقصدت هست (می‌تونه IP هم باشه).

🔹 -N یعنی شل باز نکن، فقط تونل رو نگه دار.

🔹 -C هم Compression روشن می‌کنه که روی لینک‌های کند مفیده.

بعد از اجرا، توی مرورگر خودت بزن:

http://127.0.0.1:9090


درحالی‌که هیچ پورتی روی اینترنت برای اون سرویس باز نشده، فقط کسی که ssh-access داره به سرور، می‌تونه به پنل ادمین دسترسی داشته باشه. این یعنی هم Segmentation هم نوعی Defense in Depth ساده ولی مؤثر. 😎


چند نکته امنیتی مهم

• بهتره Login با Password رو روی ssh ببندی و فقط از SSH Key استفاده کنی (توصیه‌ی OWASP هم همینه).

• حتماً AllowUsers یا AllowGroups رو توی /etc/ssh/sshd_config محدود کن که هر یوزری نتونه تونل بسازه.

• لاگ‌ها رو توی /var/log/auth.log (روی Debian/Ubuntu) زیر نظر داشته باش تا سوء‌استفاده از تونل‌ها رو زودتر ببینی.


📚 منبع برای عمیق‌تر شدن

مستند رسمی OpenSSH توضیح کامل و به‌روز درباره Port Forwarding داره:
https://www.openssh.com/manual.html


🌱 یه بار روی یه سرور تست این تونل رو بساز، با خیال راحت بازی کن، لاگ‌ها رو نگاه کن و ببین چطور می‌شه سرویس‌های حساس رو بدون باز کردن Port روی اینترنت در دسترس نگه داشت. اگه خوشت اومد، این تکنیک رو توی محیط کاری‌ات هم پیشنهاد بده.

🔖 #Security #امنیت #ssh #tunneling #port_forwarding #linux #security #networking

👤 Developix

💎 Channel: @DevelopixNetwork
8
🔒 اسکن امن شبکه با nmap – از کجا شروع کنیم؟

خیلی وقت‌ها تو شبکه یا تیم DevOps یه سرور جدید بالا میاد و دقیقاً معلوم نیست چه پورت‌هایی روش بازه. این‌جا جاییه که nmap واقعاً نجات‌دهنده‌ست؛ هم برای Adminها، هم برای کارهای اولیه PenTest 👀

nmap یه ابزار Open Source و قدیمیه که تو دنیای Network & Security کاملاً استاندارده. داکیومنت رسمی‌ش هم اینجاست:
https://nmap.org/book/man.html

ایده اصلی ساده‌ست:

🎯 فهمیدن این‌که روی یک Host چه پورت‌هایی باز (open) یا فیلتر شده‌ان.
🧩 تشخیص احتمالی OS و Serviceها (مثلاً nginx، OpenSSH، MySQL).
🛡️ کمک به Hardening؛ یعنی بستن پورت‌هایی که نباید در دسترس باشن.

مثلاً فرض کن یه سرور Linux داری روی اینترنت، و فقط انتظار داری SSH و HTTP باز باشن، ولی نمی‌دونی واقعاً چیز دیگه‌ای بازه یا نه. با یه اسکن ساده می‌شه دید چه خبره.

یک نمونه اسکن کاربردی (با تشخیص Service و OS) 👇

nmap -sS -sV -O -p- --min-rate 1000 192.0.2.10


توضیح سریع سوییچ‌ها:

-sS ➜ TCP SYN scan (نیمه‌مخفی، سریع و استاندارد برای Security تست‌ها).
-sV ➜ تلاش برای تشخیص نسخه Serviceها (مثلاً OpenSSH 8.9).
-O ➜ تشخیص تقریبی سیستم‌عامل Target.
-p- ➜ اسکن همه پورت‌های TCP از 1 تا 65535، نه فقط پورت‌های معروف.
--min-rate 1000 ➜ حداقل ۱۰۰۰ پکت در ثانیه؛ برای اسکن نسبتا سریع (روی شبکه‌های ضعیف می‌تونی این عدد رو کمتر بذاری).

چند نکته ریز ولی مهم

• قبل از اسکن حتماً مجوز قانونی داشته باش. طبق Policy خیلی از سازمان‌ها، اسکن بدون هماهنگی، عملاً حمله محسوب می‌شه.
• روی شبکه خودت یا محیط Lab (مثلاً با VirtualBox / VMware و چند VM) تمرین کن.
• اگر Firewalld یا iptables روی Target فعاله، ممکنه وضعیت پورت‌ها رو filtered ببینی، که یعنی Packetها Drop می‌شن و جواب واضحی نمی‌گیری.
• خروجی nmap رو همیشه ذخیره کن تا بعداً مقایسه کنی؛ مثلاً:

nmap -sS -sV -O -p- -oN scan.txt 192.0.2.10


کم‌کم اگر با این Commandها راحت شدی، می‌شه رفت سراغ اسکن‌های پیشرفته‌تر مثل --script (استفاده از NSE Scriptها برای چک کردن Vulnerabilityهای رایج، طبق لیست owasp و غیره).

این هفته روی یکی دو تا Host امن تست کن، خروجی رو بخون، و پورت‌های غیرضروری رو روی فایروال ببند. هرچی دید بهتری از سطح حمله (Attack Surface) داشته باشی، دفاعت قوی‌تر می‌شه 🔐

🔖 #Security #امنیت #nmap #network #security #linux #pentest #scan #tcp #hardening

👤 Developix

💎 Channel: @DevelopixNetwork
👍2🔥1
اسکن شبکه با Nmap از اون چیزهایی‌ـه که تو هر تیم Network & Security زود یا دیر سراغش میاد. 🤝

خیلی وقت‌ها یه شبکه تحویل می‌گیری، فقط یه رنج IP داری و تقریبا هیچ مستندی وجود نداره. اینجا Nmap مثل یه چراغ قوه میاد وسط، ولی اگر درست استفاده نشه هم سروصدا تو لاگ‌ها درست می‌کنه، هم ممکنه باعث سوءتفاهم تیم‌های دیگه بشه. 😅

اینجا یه سناریوی واقعی رو مرور می‌کنیم: اسکن امن و نسبتا کم‌سر و صدا روی یه subnet داخلی برای پیدا کردن سرویس‌های باز.

ایده اصلی چیه؟ 🔑

Nmap می‌تونه کلی کار کنه، ولی برای شروع این چندتا کار خیلی کاربردیه:

• پیدا کردن hostهای فعال تو شبکه
• پیدا کردن پورت‌های مهم مثل 22، 80، 443، 3389
• جمع کردن یه خروجی تمیز برای مستندسازی یا گزارش

کلید کار اینه که:

1️⃣ با اسکن سریع و ساده شروع بشه، نه از همون اول aggressive mode.
2️⃣ روی رنج IP مشخص کار بشه، نه روی کل دنیا!
3️⃣ فقط روی شبکه‌هایی که اجازه قانونی و مکتوب برای اسکن‌شون هست کار بشه. (این جدیه 👀)

نمونه دستور کاربردی Nmap 🛠️

این یه مثال واقعی و امن برای اسکن رنج داخلیه، با timeout و سرعت منطقی:

nmap -sS -T3 -Pn \
-p 22,80,443,3389 \
--open \
-oA internal_scan_2025-12-03 \
10.10.0.0/24


🧩 توضیح کوتاه سوییچ‌ها:

-sS → TCP SYN scan (نسبتاً کم‌سر و صدا، ولی هنوز در لاگ‌ها دیده می‌شه)
-T3 → سرعت متوسط؛ نه خیلی کند، نه مشکوک‌طور سریع
-Pn → پینگ رو skip می‌کنه؛ مفیده وقتی ICMP بسته شده
-p 22,80,443,3389 → فقط پورت‌های مهم رو چک می‌کنه
--open → فقط hostهایی که حداقل یه پورت باز دارن رو نشون می‌ده
-oA → خروجی رو تو سه فرمت (normal/xml/grepable) ذخیره می‌کنه؛ عالی برای بعداً feed دادن به ابزارهای دیگه

لینک مرجع رسمی 📚

Doc رسمی Nmap و توضیح کامل سوییچ‌ها اینجاست:
https://nmap.org/book/man.html

این ترکیب تو کار واقعی کمک می‌کنه:

• بتونی سریع یه تصویر اولیه از شبکه بگیری
• سرویس‌های حساس لو نرن چون الکی کل 65535 پورت روی کل رنج رو نمی‌کوبی
• نتیجه‌هات قابل تکرار و مستند باشن (به‌خاطر -oA)

یه نکته عملی: همیشه قبل اسکن روی محیط production، اول روی یه subnet تست یا lab همین دستور رو اجرا کن، latency و رفتار IDS/IPS رو ببین، بعد روی شبکه اصلی apply کن.

اگر تو تیمت هنوز مستند درست‌وحسابی از سرویس‌ها ندارین، همین یه اسکن ساده با Nmap می‌تونه شروع یه inventory تمیز باشه. 😉

امتحانش روی لاب‌هات، VMها یا test environment ارزشش رو داره؛ خروجی‌هاش رو نگه‌دار، بعداً برای hardening خیلی به کارت میاد.

🔖 #Security #امنیت #Nmap #Network_Scanning #امنیت_شبکه #PenTest #Linux #Recon

👤 Developix

💎 Channel: @DevelopixNetwork
4
🔹 تو خیلی از سیستم‌های شبکه و امنیت، لاگ‌ها منبع اصلی عیب‌یابی و Incident Response هستن، ولی همون‌قدر که کمک می‌کنن، اگه حواس‌مون نباشه می‌تونن لو‌دهنده‌ی اطلاعات حساس باشن؛ مثل Token، Password، شماره کارت و حتی Session ID.

اینجا بحث مهمی به اسم Log Scrubbing داریم؛ یعنی قبل از نوشتن لاگ، داده‌های حساس رو ماسک یا حذف کنیم تا هم با Best Practiceهای امنیتی (مثل توصیه‌های OWASP) هماهنگ باشیم، هم ریسک نشت داده رو کم کنیم. 🧼

یک سناریوی ساده: سرویس Python که Request/Response رو لاگ می‌کنه. اگه همون‌طوری Body رو بنویسیم، Password کاربر ممکنه مستقیم بره تو فایل لاگ، ابزار مانیتورینگ، یا حتی Log Aggregator خارجی.

نمونه‌ی خیلی خلاصه با Python:

import re

SENSITIVE_KEYS = ["password", "token", "authorization"]

def scrub_log(data: str) -> str:
pattern = r"(password|token|authorization)" \
r"\s*[:=]\s*([^&\s]+)"
return re.sub(pattern, r"\1=***", data, flags=re.IGNORECASE)

# مثال استفاده
raw_log = "user=ali password=MyP@ssw0rd token=abc123"
clean_log = scrub_log(raw_log)
print(clean_log)
# خروجی: user=ali password=*** token=***


نکته‌های عملی 🛡️

• لاگ سطح DEBUG رو روی محیط Production به‌صورت دائمی فعال نکن، چون معمولاً پر از داده‌ی حساس می‌شه.
• هر داده‌ای که برای Authentication یا Authorization استفاده می‌شه، کاندید حذف یا ماسکه: Password، API Key، JWT، Cookie، Session ID.
• Scrubbing رو نزدیک‌ترین نقطه به تولید لاگ انجام بده (مثلاً Middleware لاگینگ در Web Framework) تا هیچ لایه‌ی دیگه‌ای نسخه‌ی خام رو نبیند.
• در SIEM / Log Collector هم می‌شه فیلترهای Masking اضافه کرد تا اگر چیزی در لایه‌ی اپلیکیشن جا موند، آن‌جا پوشش داده شود.

این کار در کنار مزایایی مثل Compliance (مثل GDPR/PCI-DSS) یک عادت ساده اما مهم برای هر کسی‌ست که روی سرویس‌های شبکه و امنیت کار می‌کند.

🔖 #Security #امنیت #logging #security #owasp #scrubbing #python #network

👤 Developix

💎 Channel: @DevelopixNetwork
👍32
🛡️ اسکن شبکه با nmap برای پیدا کردن سرویس‌های باز

گاهی روی یک سرور جدید کلی سرویس نصب شده، ولی دقیق معلوم نیست چه پورت‌هایی واقعاً باز و از بیرون قابل دسترس‌اند. اینجاست که nmap واقعاً به درد می‌خوره؛ هم برای Adminها، هم برای کارهای Pentest و ارزیابی امنیت.

تو این پست، خلاصه‌ی یه آموزش عملی و معروف از خود nmap رو مرور می‌کنیم (مستندات رسمی: nmap.org) و می‌بینیم چطور می‌شه خیلی سریع یه شبکه کوچک رو اسکن کرد و سرویس‌های حساس رو پیدا کرد.

سناریو
روی شبکه داخلی یه بازه IP مثل ‎192.168.1.0/24‎ داری و می‌خوای ببینی:

• چه Hostهایی روشن و در دسترس‌اند 🔍
• چه پورت‌هایی روی این Hostها باز است (مثل SSH, RDP, HTTP) 🌐
• نسخه سرویس‌ها چیه (برای چک کردن Vulnerability) 🧩

🚀 یک دستور کاربردی nmap
دستور زیر یه اسکن نسبتاً کامل روی شبکه داخلی انجام می‌ده:

nmap -sS -sV -O -p 1-1000 192.168.1.0/24


توضیح دوستانه پارامترها:

-sS → اسکن SYN (Half-open). هم سریع‌تره، هم معمولاً کمتر Log می‌شه نسبت به اسکن کامل TCP.
-sV → Version Detection. nmap سعی می‌کنه نسخه سرویس (مثلاً OpenSSH 8.9p1) رو تشخیص بده.
-O → حدس زدن نوع سیستم‌عامل (OS Detection). به درد Report و فهمیدن نوع Target می‌خوره.
-p 1-1000 → فقط پورت‌های ۱ تا ۱۰۰۰ رو اسکن می‌کنه (رِنج پورت رو می‌شه بسته به نیاز تغییر داد).
192.168.1.0/24 → Subnet شبکه داخلی. می‌تونی به‌جاش یک Host مثل ‎192.168.1.10‎ یا یه رنج دیگه بذاری.

💡 چند نکته‌ی مهم امنیتی
• nmap یه ابزار قدرتمند Pentest هست؛ روی شبکه‌هایی که مالک‌ش نیستی یا اجازه کتبی نداری ازش استفاده نکن. طبق توصیه‌های OWASP، همیشه Scanning رو با مجوز و در محدوده تعریف‌شده انجام بده.

• قبل از اسکن، بهتره روی سرور Logها (مثل syslog یا ابزار SIEM) رو زیر نظر بگیری تا بفهمی چطور اسکن توی Log ثبت می‌شه. این کمک می‌کنه نگاه Defensive هم پیدا کنی.

• برای شروع، رِنج پورت کوچیک رو اسکن کن. اسکن کل پورت‌ها (مثلاً ‎-p 1-65535‎) روی شبکه بزرگ می‌تونه طولانی و سنگین باشه.

📌 کاربرد عملی
• پیدا کردن سرویس‌های فراموش‌شده (مثلاً یه Telnet قدیمی که روی یه سرور جا مونده).
• چک کردن بعد از Hardening که فقط پورت‌های موردنیاز باز باشند.
• آماده کردن لیست سرویس‌ها برای مرحله بعدی Pentest یا Vulnerability Assessment.

امتحانش روی یه لَب محیط تست یا Lab مجازی (مثلاً با چند VM روی VirtualBox/VMware) بهترین روش یادگیریه. اگه مفید بود، برای دوستات که تو حوزه Network & Security کار می‌کنن هم بفرست تا همه‌مون شبکه‌هامون رو امن‌تر نگه داریم 🔐

🔖 #Security #امنیت #nmap #Network_Security #Port_Scanning #Linux #Pentest #OWASP

👤 Developix

💎 Channel: @DevelopixNetwork
5
خیلی وقت‌ها روی سرور فقط به پسورد قوی اکتفا می‌شود، اما لاگ‌گیری درست از لاگین‌های SSH نصف امنیت ماجراست. چند خط تنظیم ساده در Linux کمک می‌کند سریع‌تر brute-force و لاگین‌های مشکوک را ببینی و به‌موقع واکنش نشان بدهی. 🔍

۱️⃣ فعال‌سازی لاگ دقیق برای sshd
به‌صورت پیش‌فرض، لاگ‌ها در /var/log/auth.log (روی Debian/Ubuntu) یا /var/log/secure (روی CentOS/RHEL) می‌آیند، ولی سطح جزئیات را می‌شود بالاتر برد.

در فایل تنظیمات SSH:
sudo nano /etc/ssh/sshd_config

این خطوط را اضافه یا اصلاح کن:
LogLevel VERBOSE
UseDNS no

سپس:
sudo systemctl restart sshd

LogLevel VERBOSE باعث می‌شود حتی key fingerprint ها و تلاش‌های لاگین ناموفق با جزئیات ثبت شوند. این برای incident response و تحلیل حملات خیلی کمک می‌کند. 🔐

۲️⃣ فیلتر ساده لاگین‌های ناموفق
یک مثال سریع برای دیدن آی‌پی‌های پرریسک:
sudo grep "Failed password" /var/log/auth.log \
| awk '{print $(NF-3)}' \
| sort | uniq -c | sort -nr | head

این دستور آی‌پی‌هایی را که بیشترین تلاش ناموفق داشته‌اند نشان می‌دهد و می‌شود آن‌ها را در فایروال بلاک کرد یا به fail2ban سپرد.

۳️⃣ چند نکته‌ عملی
• همیشه PasswordAuthentication را روی no قرار بده و از SSH Key استفاده کن.
• لاگ‌ها را روی یک remote syslog / SIEM هم ارسال کن تا اگر سرور compromise شد، attacker نتواند لاگها را پاک کند.
• rotation و retention لاگ‌ها را با logrotate درست تنظیم کن تا هم دیسک پر نشود هم دادهٔ تاریخی کافی داشته باشی.

برای جزئیات بیشتر تنظیمات sshd می‌شود مستندات رسمی OpenSSH را دید:
https://man.openbsd.org/sshd_config

امتحان این تنظیم‌ها روی یک test server شروع خوبی برای ساختن یک baseline امن برای SSH است. 🚀

🔖 #Security #امنیت #SSH #Logging #Linux #Security #Network #Hardening

👤 Developix

💎 Channel: @DevelopixNetwork
👍61
Forwarded from ابر ویراک
⭕️ ویراک کلود
زیرساختی مطمئن برای کسب و کارهای آنلاین
🎁 20% شارژ بیشتر روی اولین واریزی
⚡️با کد معرف: 10%  شارژ برای شما و 10% برای دوستتان!

🔘با IPv6 رایگان
🔘با IP مازاد
🔘تست رایگان 2 روزه
🔘فایروال اختصاصی
🔘با API برای حرفه‌ای ها
🔘پشتیبانی 24 ساعته
🔘آپلود رایگان


📞 همین حالا با ما تماس بگیرید و این فرصت فوق‌العاده رو از دست ندید!
🔻02191555530
🌐Virakcloud.com
Please open Telegram to view this post
VIEW IN TELEGRAM
1
یکی از ساده‌ترین راه‌ها برای بالا بردن امنیت سرور لینوکسی اینه که لاگ‌های ssh رو جدی بگیریم و به شکل هوشمند بررسی‌شون کنیم تا الگوی لاگین مشکوک و حملات Brute Force زود شناسایی بشه. 🔍

با یک اسکریپت خیلی سبک می‌شه توی لاگ‌ها گشت و IPهایی که تعداد زیادی Login Fail دارن رو پیدا کرد و بعداً اون‌ها رو توی firewall بلاک یا محدود کرد (مثلاً با iptables یا UFW یا حتی Fail2ban).

نمونه‌کد زیر روی لاگ پیش‌فرض Debian/Ubuntu یعنی /var/log/auth.log کار می‌کنه و IPهایی که بیشتر از ۵ بار لاگین ناموفق داشتن رو چاپ می‌کنه:

#!/usr/bin/env python3
import re
from collections import Counter

LOG_FILE = "/var/log/auth.log"
FAILED_THRESHOLD = 5

pattern = re.compile(r"Failed password for .* from (\d+\.\d+\.\d+\.\d+)")

ips = []
with open(LOG_FILE, "r", encoding="utf-8", errors="ignore") as f:
for line in f:
match = pattern.search(line)
if match:
ips.append(match.group(1))

counts = Counter(ips)
for ip, c in counts.items():
if c >= FAILED_THRESHOLD:
print(f"{ip} - failed logins: {c}")


👨‍💻 چند نکته کاربردی:
• این اسکریپت رو با کران (cron) زمان‌بندی می‌شه دوره‌ای اجرا کرد و خروجی رو لاگ یا برای ادمین ایمیل کرد.
• روی توزیع‌هایی مثل CentOS/RHEL مسیر لاگ ssh معمولاً /var/log/secure هست، فقط همون رو عوض کن.
• بعد از شناسایی IP مشکوک، می‌شه به‌صورت خودکار ruleهای firewall تولید کرد یا این منطق رو به ابزارهایی مثل Fail2ban سپرد تا به شکل استاندارد و امن Ban انجام بشه.

این رویکرد کمک می‌کنه رفتار مهاجم قبل از موفق شدن شناسایی بشه و در کنار تنظیمات درست ssh (مثل غیرفعال کردن Login با پسورد و استفاده از Key) یک لایه دفاعی مهم اضافه می‌کنه. 🔐

برای مطالعه عمیق‌تر روی لاگ‌گیری و مانیتور امنیتی روی ssh می‌شه بخش مربوط به Brute Force در OWASP Cheat Sheet رو دید:
OWASP Authentication Cheat Sheet


🔖 #Security #امنیت #SSH #BruteForce #Logging #Linux #Security #Python

👤 Developix

💎 Channel: @DevelopixNetwork
🔥3
🚀 سرور اختصاصی با تنوع منابع برای هر نوع نیاز 
پورت اختصاصی
آپلود رایگان
تخفیف پلکانی ترافیک
آپتایم 99.99%
24 ساعت تست رایگان
رائه IP مازاد 
پشتیبانی 24/7 
تحویل فوری 
ارائه سرویس Colocation 
بدون قطعی
پرداخت ماهیانه

تعداد محدود – برای استفاده از این تخفیف ویژه سریع اقدام کن!
برای اطلاعات بیشتر و سفارش، تماس بگیر:
🔺 02191555530
💻 خرید سرور اختصاصی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
خیلی وقت‌ها روی backend فقط remote_addr رو لاگ می‌گیریم و فکر می‌کنیم IP واقعی کاربره؛ اما پشت Nginx / Proxy / Load Balancer، این IP معمولاً IP همون Proxy هست، نه کلاینت 🎯

راه‌حل استاندارد استفاده از هدر X-Forwarded-For (یا X-Real-IP) و تنظیم درست اپلیکیشن و Reverse Proxy ـه. این کار برای تحلیل Incident، تشخیص حملات و Alert کردن روی IP خیلی مهمه.

مثال ساده با Flask پشت Nginx:
from flask import Flask, request

app = Flask(__name__)

TRUSTED_PROXIES = {"127.0.0.1", "10.0.0.1"} # IP های Nginx / LB

@app.before_request
def log_real_ip():
remote = request.remote_addr
xff = request.headers.get("X-Forwarded-For", "")

if remote in TRUSTED_PROXIES and xff:
# اولین IP معمولا نزدیک‌ترین کلاینت است
real_ip = xff.split(",")[0].strip()
else:
real_ip = remote

app.logger.info(f"real_ip={real_ip} path={request.path}")

@app.route("/")
def index():
return "OK"

if __name__ == "__main__":
app.run()


نکات مهم
• فقط وقتی به X-Forwarded-For اعتماد کن که درخواست از Proxyهای شناخته‌شده می‌آد (مثل لیست بالا). هدر رو کاربر نهایی هم می‌تونه جعل کنه.
• روی Nginx مطمئن شو real_ip_header و set_real_ip_from درست ست شدن تا remote_addr سمت اپ منطقی باشه.
• IP واقعی در لاگ‌ها برای Rate Limit، تشخیص حملات Brute Force و Audit لاگ‌ها حیاتی است.

مناسب‌ترین رفرنس برای Best Practice لاگ‌گیری و هدرها در اپ‌های وب:
OWASP Logging Cheat Sheet

امتحان این الگو روی یک سرویس تستی پشت Nginx کمک می‌کند قبل از رفتن به محیط Production، رفتار لاگ‌گیری IP را دقیق ببینی و تنظیمات را سفت و تمیز کنی 🔍

🔖 #Security #امنیت #Logging #X_Forwarded_For #Reverse_Proxy #OWASP #Flask #Nginx #Security #Network

👤 Developix

💎 Channel: @DevelopixNetwork
2
Forwarded from ابر ویراک
ویراک کلود | تجربه‌ی ابری بدون محدودیت ☁️🚀

🎁 ۲۰٪ شارژ هدیه روی اولین واریزی

مزیت‌هایی که واقعاً فرق می‌سازن:
⚡️ پهنای باند 980 مگ
🌐با IP مازاد
⏱️ راه‌اندازی فوری
💳 پرداخت ساعتی
🛡 پشتیبانی ۲۴/۷

💬 هر سوالی داشتی، تیم ما کنارتـه
مناسب استارتاپ‌ها، تیم‌های فنی، تا سازمان‌های بزرگ

همین الان شروع کن و با حداکثر منابع، سریع‌تر رشد کن 👇🏻

📞 تماس سریع: 02191555530
🔗 https://virakcloud.com
👎1
وقتی حرف از امنیت شبکه میاد، یکی از اولین ابزارهایی که تقریباً همه سراغش می‌رن، Nmap هست. یه ابزار سبک، قدرتمند و کاملاً رایگان که اگر درست استفاده بشه، نصف راه Vulnerability Assessment رو رفتی ✔️

اینجا یه سناریوی واقعی رو در نظر بگیر: روی یه سرور تازه‌راه‌اندازی‌شده دسترسی گرفتی و می‌خوای مطمئن بشی فقط همون سرویس‌هایی باز هستن که واقعاً لازم داری. قبل از این‌که یه Attacker برات اسکن بزنه، خودت با Nmap این کار رو می‌کنی 😄

منبع اصلی آموزش که این نکات ازش الهام گرفته شده:
nmap.org/book/man.html

۱️⃣ اسکن سریع پورت‌های مهم
برای شروع، معمولاً همین که بدونی روی Target چه پورت‌های معروفی بازه، کلی کمک می‌کنه:
nmap -Pn -sS -F 192.168.1.10

🔸 -Pn: از Ping اولیه رد می‌شه (مواقعی که ICMP بسته شده).
🔸 -sS: TCP SYN scan؛ هم سریع‌تره هم کم‌سر و صدا‌تر از Connect Scan.
🔸 -F: فقط پورت‌های معروف (Top Ports) رو اسکن می‌کنه، برای یه چک سریع عالیه.

۲️⃣ فهمیدن دقیق سرویس‌ها و نسخه‌ها
فقط دونستن «پورت 80 بازه» کافی نیست. این‌که اون پشت Apache هست یا Nginx و چه نسخه‌ای، برای Exploit و Patch خیلی مهمه:
nmap -sV 192.168.1.10

🔹 اینجا -sV تلاش می‌کنه نوع و Version سرویس‌ها رو تشخیص بده؛ مثلاً:
Apache httpd 2.4.57

۳️⃣ اسکن با اسکریپت‌های امنیتی Nmap (NSE)
Nmap یه موتور اسکریپت‌نویسی قوی به اسم NSE داره که کلی اسکریپت آماده برای Security داره. مثلاً برای پیدا کردن ضعف‌های HTTP:
nmap --script http-vuln* -p80,443 192.168.1.10

🔸 با این کار کلی چک امنیتی مرتبط با HTTP انجام می‌شه (وابسته به اسکریپت‌ها و Database موجود).

۴️⃣ اسکن Stealth روی کل یک Subnet
وقتی روی شبکه داخلی هستی و می‌خوای سریعاً ببینی چه سیستم‌هایی چه پورت‌هایی دارن:
nmap -sS -T2 192.168.1.0/24

🔹 -T2: سرعت متوسط و نسبتاً آروم، که کمتر جلب توجه کنه و همزمان شبکه رو هم خفه نکنه.

۵️⃣ چند نکته مهم و حرفه‌ای 🧠
• همیشه روی سیستم خودت و سیستم‌هایی که اجازه کتبی/رسمی داری اسکن انجام بده؛ هر چیز دیگه‌ای می‌تونه وارد حریم قانونی بشه.
• بعد از هر اسکن، لیست پورت‌های باز رو با Policy سازمان یا Best Practiceها (مثلاً NIST یا CIS Benchmarks) مقایسه کن.
• برای سرویس‌هایی که لازم نیست، سرویس رو ببند یا پشت Firewall محدودش کن؛ Nmap فقط «وضعیت فعلی» رو نشون می‌ده، Fix دست خودته 🔧

اسکن‌های کوچیک ولی منظم با Nmap کمک می‌کنه قبل از مهاجم‌ها، از وضعیت شبکه‌ات خبر داشته باشی. دفعه بعد که روی یه سرور تازه Login شدی، یکی از این Commandها رو امتحان کن و نتیجه‌اش رو یادداشت کن؛ کم‌کم یه تصویر دقیق از شبکه‌ات تو ذهنت شکل می‌گیره 🚀

🔖 #Security #امنیت #Nmap #Network_Security #Linux #Vulnerability_Assessment #Pentest #امنیت_شبکه #اسکن_پورت #NSE

👤 Developix

💎 Channel: @DevelopixNetwork
🔥21
🛡 راه‌اندازی فایروال عملی با iptables روی لینوکس

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

توی این پست، بر اساس داکیومنت رسمی کرنل لینوکس و راهنمای Arch & Debian، یک سناریوی واقعی رو می‌ریم جلو: سروری که فقط SSH و وب (HTTP/HTTPS) باید براش باز باشه و بقیه پورت‌ها Drop بشن.

🔥 ایده‌ی اصلی

تصور کن یک سرور Ubuntu/Debian داری که روی اینترنت پابلیکه:

• فقط پورت ۲۲ برای SSH
• پورت ۸۰ برای HTTP
• پورت ۴۴۳ برای HTTPS

بقیه‌ی ترافیک ورودی باید رد بشه، ولی اتصال‌های جاری (مثل SSH در حال استفاده) نباید قطع بشن. این دقیقاً کاریه که با iptables و stateful firewall انجام می‌دیم.

🔧 چند نکته قبل از شروع

• این کار نیاز به دسترسی root یا sudo داره.
• قبل از تغییرات جدی، بهتره یک جلسه SSH دوم باز نگه داری تا اگر اشتباهی همه چیز رو بستی، بتونی برگردونی.
• برای جزئیات بیشتر، از راهنمای iptables استفاده کن:
https://www.netfilter.org/documentation/index.html

📌 مثال واقعی: پالیسی امن پایه

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

sudo iptables -F
sudo iptables -X

# اجازه به ترافیک لوکال
sudo iptables -A INPUT -i lo -j ACCEPT

# اجازه به کانکشن‌های جاری و مرتبط
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# اجازه به SSH روی پورت 22
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# اجازه به HTTP
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# اجازه به HTTPS
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Drop کردن بقیه ترافیک ورودی
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT


💡 این قوانین چه کار می‌کنند؟

• با ESTABLISHED,RELATED، فقط ترافیک مربوط به کانکشن‌های مجاز قبلی اجازه عبور می‌گیرند؛ این هم امن است، هم باعث نمی‌شود اتصال‌های فعلی‌ات قطع شوند.
lo را باز می‌گذاریم تا سرویس‌هایی که با خود سیستم حرف می‌زنند (مثل دیتابیس لوکال) از کار نیفتند.
• با DROP کردن پالیسی INPUT و FORWARD، عملاً فقط پورت‌هایی که صراحتاً Allow شده‌اند باز می‌مانند.

📝 چند نکته‌ی ریز ولی مهم

• بعد از تنظیم، با این دستور لیست قوانین را ببین:
sudo iptables -L -n -v


• برای دائمی نگه داشتن قوانین روی Debian/Ubuntu می‌توان از iptables-persistent استفاده کرد:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save


• روی سیستم‌های جدیدتر، ممکن است nftables پیشنهاد شود، ولی هنوز خیلی از سرورها از iptables استفاده می‌کنند و دانستنش برای دیباگ و امنیت حیاتی است.

در یک سرور تست یا لابراتوار کوچک این تنظیم‌ها را امتحان کن، لاگ‌ها را چک کن و کم‌کم قوانین دقیق‌تر برای سرویس‌های خودت بساز. امنیت شبکه دقیقاً از همین قدم‌های کوچک و درست شروع می‌شود

🔖 #Security #امنیت #Linux #iptables #Firewall #Network_Security #Server_Hardening

👤 Developix

💎 Channel: @DevelopixNetwork
👍43
🔒 ساده‌ترین ارتقا امنیت: غیرفعال کردن TLS قدیمی روی Nginx

خیلی از سرورهای وب هنوز TLS 1.0 و TLS 1.1 را روشن نگه می‌دارند، درحالی‌که این نسخه‌ها سال‌هاست ناامن و Deprecated شده‌اند 🚨 و امکان Downgrade Attack و ضعف در Cipherها را زیاد می‌کنند.

اگر روی سرور لینوکسی از Nginx استفاده می‌کنی، با یک تنظیم کوتاه می‌شود فقط نسخه‌های امن‌تر را فعال نگه داشت، یعنی TLS 1.2 و TLS 1.3

در یکی از بلاک‌های server (یا در تنظیمات عمومی) این بخش را اضافه یا اصلاح کن:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;


بعد از ویرایش کانفیگ:
sudo nginx -t
sudo systemctl reload nginx


این کار:
• سطح پایه امنیت ارتباطات HTTPS را بالا می‌برد 🔐
• با استانداردهای جدید مثل توصیه‌های NIST و مرورگرهای مدرن هم‌راستا است

برای چک کردن نسخه‌های فعال TLS روی سرورت می‌توان از سرویس‌هایی مثل SSL Labs Server Test استفاده کرد.

📚 مرجع رسمی (Nginx):
https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols

امتحان این تنظیم روی محیط تست، قبل از محیط Production، همیشه ایده خوبی است 😉

🔖 #Security #امنیت #Nginx #TLS #Network_Security #TLS_1_2 #TLS_1_3 #Hardening

👤 Developix

💎 Channel: @DevelopixNetwork
4
📡 تحلیل ترافیک شبکه با tcpdump؛ از صفر تا یک ابزار حرفه‌ای

توی دنیای Network & Security یکی از مهم‌ترین مهارت‌ها اینه که بتونی ترافیک واقعی شبکه رو ببینی و بفهمی چی داره رد و بدل می‌شه. اینجاست که ابزار خط فرمانیِ tcpdump می‌درخشه

این پست بر اساس مستندات رسمی tcpdump و man page لینوکسه و کاملاً قابل تست روی هر سیستم Linux/Unix هست:
tcpdump.org/manpages/tcpdump.1


🔍 tcpdump دقیقاً به چه درد می‌خوره؟

مثل یک «دوربین مداربسته» برای شبکه‌ست. باهاش می‌شه:

• ترافیک مشکوک روی یک پورت خاص رو دید (مثلاً حمله brute force روی SSH)
• ببینی کدوم سرویس واقعاً روی شبکه صحبت می‌کنه، نه فقط چی روی سیستم نصبه
• موقع عیب‌یابی (troubleshooting) بفهمی مشکل از شبکه‌ست یا از برنامه


⚙️ نصب سریع tcpdump

روی اکثر توزیع‌های لینوکسی به‌صورت پیش‌فرض هست، ولی اگر نبود:
sudo apt install tcpdump     # روی Debian/Ubuntu
sudo yum install tcpdump # روی CentOS/RHEL قدیمی
sudo dnf install tcpdump # روی Fedora/RHEL جدید



👁‍🗨 اولین تست: دیدن همه‌چیز روی یک اینترفیس

فرض کن اینترفیس شبکه‌ات eth0 است:
sudo tcpdump -i eth0


• این دستور همه‌ی بسته‌ها رو روی eth0 نشون می‌ده
• خروجی خیلی شلوغ می‌شه، پس برای کار جدی حتماً فیلتر بذار


🎯 فیلتر کردن ترافیک SSH برای تشخیص brute force

حالا یک سناریوی امنیتی واقعی 👇

فرض کن روی سرورت login های مشکوک روی SSH می‌بینی. می‌خوای ببینی از چه IPهایی ترافیک زیادی روی پورت 22 میاد.

sudo tcpdump -i eth0 tcp port 22 and 'tcp[tcpflags] & (tcp-syn) != 0'


این یعنی:
• فقط ترافیک TCP روی پورت 22 (SSH)
• فقط بسته‌هایی که فلگ SYN دارن (شروع اتصال جدید)

اگر از یک IP خاص مدام SYN ببینی، احتمال brute force یا اسکن بالا می‌ره.


🧪 نمونه‌ی کاربردی با ذخیره در فایل pcap

برای تحلیل حرفه‌ای‌تر با Wireshark، خروجی رو توی فایل ذخیره کن:
sudo tcpdump -i eth0 port 22 -w ssh_traffic.pcap


بعداً می‌تونی این فایل رو روی سیستم دسکتاپ با Wireshark باز کنی و عمیق‌تر آنالیز کنی.


🧵 چند نکته‌ی ریز ولی مهم

• روی سرورهای شلوغ حتماً از گزینه -c برای محدود کردن تعداد پکت استفاده کن، مثلاً:
sudo tcpdump -i eth0 port 22 -c 200


• اگر فقط هدرها رو می‌خوای و نه payload کامل، از -s 96 یا مشابه استفاده کن تا فشار روی سیستم کم بشه
• یادت باشه tcpdump نیاز به دسترسی root داره؛ روی سیستم‌های حساس مراقب باش کی و چطور اجراش می‌کنی


🛡️ چرا برای امنیت‌کارها واجبه؟

• کمک می‌کنه الگوی حمله رو ببینی، نه فقط لاگ‌ها رو
• توی Incident Response می‌تونی سریع بفهمی کجا داره چه نوع ترافیکی رد و بدل می‌شه
• برای تست تنظیمات فایروال (مثل iptables یا nftables) می‌فهمی واقعاً چه چیزی اجازه عبور داره


یک تمرین ساده

روی یک VM آزمایشی یا سرور تست، tcpdump رو اجرا کن، بعد از سیستم دیگه‌ای با ssh وصل شو و ببین چطور ترافیک SSH جلوی چشم‌ات رد می‌شه. همین تمرین ساده دید خیلی خوبی بهت می‌ده.

امروز چند دقیقه وقت بذار و tcpdump رو روی یک محیط امن امتحان کن؛ این مهارت، پای ثابت کار هر آدم امنیتی حرفه‌ایه 🚀

🔖 #Security #امنیت #tcpdump #Linux #Packet_Capture #Network_Security #SSH #Traffic_Analysis

👤 Developix

💎 Channel: @DevelopixNetwork
👍51
🚨 اسکن امنیتی وب‌سرور با Nikto (روی Kali)

خیلی وقت‌ها یه وب‌سرور بالا آوردیم (مثلاً Apache یا Nginx) و خیال‌مون راحته که چون «جواب می‌ده»، پس اوضاع امنه. اما تو دنیای واقعی، کلی misconfig ساده و باگ قدیمی هست که فقط منتظر یه اسکنر مثل Nikto نشسته 🙂

Nikto یه Web Server Scanner اوپن‌سورس و قدیمیه که هنوزم تو Kali Linux و خیلی از تست‌های OWASP به‌صورت جدی استفاده می‌شه:
https://cirt.net/Nikto2

تو این پست، روی خود Kali یه اسکن واقعی روی یه تارگت تست (یا لَب داخلی) انجام می‌دیم و خروجی رو طوری می‌خونیم که واقعاً به درد Hardening بخوره.

🔧 نصب و اجرای پایه روی Kali
روی Kali معمولاً Nikto از قبل نصبه، ولی برای اطمینان:
sudo apt update
sudo apt install nikto


حالا یه اسکن ساده روی یه تارگت تست (مثلاً یه لَب داخلی روی 192.168.1.10):
nikto -h http://192.168.1.10


Nikto شروع می‌کنه به چک‌کردن:
• نسخه و بنر وب‌سرور
• فایل‌ها و دایرکتوری‌های معروف (مثل /phpmyadmin/ یا backup ها)
• misconfigهای رایج و vulnerabilityهای شناخته‌شده (طبق DB داخلی خودش)

💡 چند گزینه خیلی کاربردی

۱️⃣ مشخص‌کردن پورت خاص (مثلاً 8080):
nikto -h 192.168.1.10 -p 8080


۲️⃣ خروجی به فرمت HTML برای گزارش:
nikto -h 192.168.1.10 \
-o report.html -Format html

بعداً همین فایل رو می‌شه برای تیم یا مدیر شبکه فرستاد که دقیق ببینه چه چیزهایی پیدا شده.

۳️⃣ اسکن با Virtual Host (وقتی چند سایت روی یه IP هست):
nikto -h 192.168.1.10 -vhost example.com


⚠️ چند نکته مهم (و کاملاً واقعی)
• Nikto صدای زیادی روی لاگ‌ها تولید می‌کنه؛ برای تست نفوذ قانونی عالیه، برای تست «مخفی» اصلاً مناسب نیست.
• حتماً فقط روی سیستم‌هایی که اجازه مکتوب داری اجرا بشه؛ لاگ وب‌سرور به‌وضوح نشون می‌ده یه اسکن گسترده انجام شده.
• نتیجه Nikto «Final Verdict» نیست؛ بیشتر یه لیست «چیزهایی که باید چک کنی». هر Finding رو باید با مستندات رسمی (مثلاً Apache, Nginx یا OWASP) تطبیق بدی.

📌 چرا برای ادمین‌ها و DevOpsها مهمه؟
چون خیلی وقت‌ها تیم Dev یه Feature رو سریع بالا می‌آره و چیزهایی مثل directory listing باز می‌مونه، یا نسخه یه CMS قدیمی عوض نمی‌شه. یه اسکن ساده Nikto قبل از پابلیک‌کردن سرویس، می‌تونه کلی ریسک رو زود شناسایی کنه.

امتحانش روی یه لَب امن یا تست‌سرور داخلی واقعاً دید خوبی از سطح حمله وب‌سرورت می‌ده؛ چند بار که با گزارش‌هاش کار کنی، کم‌کم موقع تنظیم وب‌سرور خودت از همون اول امن‌تر کانفیگ می‌کنی 🔐

🔖 #Security #امنیت #Nikto #Kali_Linux #Web_Security #Vulnerability_Scanning #امنیت_وب #PenTest #Network_Security

👤 Developix

💎 Channel: @DevelopixNetwork
5
🛡️ فعال‌سازی HSTS؛ قفل‌کردن سایت روی HTTPS

خیلی وقت‌ها کاربر یک بار با HTTP به سایت وصل می‌شود و اگر وسط راه مهاجم وارد شود، می‌تواند ترافیک را به سمت خودش هدایت کند (SSL Stripping). با HSTS به مرورگر می‌گوییم از این به بعد فقط و فقط با HTTPS وصل شود. 🔐

📌 ایده: یک هدر ساده سمت وب‌سرور اضافه می‌شود و ریسک Downgrade Attack را کم می‌کند.

مثال برای Nginx:
add_header Strict-Transport-Security \
"max-age=31536000; includeSubDomains; preload" always;


نکات مهم
• فقط وقتی گواهی TLS درست و پایدار دارید این هدر را فعال کنید.
• مقدار max-age هرچه بزرگ‌تر باشد، مرورگر مدت بیش‌تری فقط روی HTTPS قفل می‌ماند.
• پارامتر includeSubDomains یعنی تمام ساب‌دامین‌ها هم باید HTTPS باشند.
• قبل از اضافه‌کردن preload حتما مطمئن باشید همه چیز روی HTTPS بدون خطاست، چون برگشت از آن سخت است.

برای جزئیات بیش‌تر:
MDN: Strict-Transport-Security

امتحان این هدر روی محیط تست، یک قدم کوچک ولی مؤثر برای بالا بردن Security سطح وب‌سرویس است. 🚀

🔖 #Security #امنیت #HSTS #HTTPS #Web_Security #Nginx #TLS

👤 Developix

💎 Channel: @DevelopixNetwork
1
| کانال امنیت و شبکه |
Photo
☑️ RTP (Real-time Transport Protocol)

پروتکل RTP چیه و چه نقشی داره؟!

☎️ در شبکه‌های VoIP، بعد از اینکه پروتکل SIP تماس را برقرار می‌کند، پروتکل RTP وظیفه انتقال صدا را بر عهده می‌گیرد.
طبق تصویر، داخل هدرِ پکت‌های RTP پارامترهای مهمی وجود دارد:
Time Stamp
این پارامتر زمان‌بندی نمونه‌های صوتی را مشخص می‌کند تا گیرنده بتواند صدا را در زمان درست پخش کند. همچنین با کمک Jitter Buffer می‌توان اثر جیتر (اختلاف تأخیر بین رسیدن پکت‌ها) را کاهش داد.
Sequence Number
به هر پکت یک شماره ترتیبی اختصاص داده می‌شود تا در مقصد:
• ترتیب پکت‌ها مشخص باشد
• پکت لاس تشخیص داده شود
• پکت‌ها به ترتیب صحیح کنار هم قرار بگیرند
Payload Type
نوع Media و Codec استفاده‌شده را مشخص می‌کند؛ مثل:
• G.729
• Opus
• Video Codec
📞 مثال واقعی:
وقتی دو نفر شروع به مکالمه می‌کنند، RTP برای هر مسیر صدا یک Stream جدا ایجاد می‌کند.
یعنی:
یک جریان RTP برای ارسال صدای شخص اول به نفر دوم و یک جریان RTP دیگر برای برگشت صدا از نفر دوم به شخص اول
به همین دلیل RTP را عملاً Full Duplex در نظر می‌گیرند.
پروتکل RTP معمولاً روی UDP و پورت‌های داینامیک فعالیت می‌کند. در بسیاری از تجهیزات بازه‌ای مثل 10000 تا 20000 تعریف می‌شود.

📞 بعد از برقراری جریان RTP، پروتکل RTCP هم فعال می‌شود. RTCP معمولاً روی پورتی نزدیک به RTP کار می‌کند و وظیفه‌اش بررسی کیفیت تماس و جمع‌آوری آمار ارتباط است.
Packet Count
تعداد پکت‌های رد و بدل شده
Packet Delay
مدت زمانی که طول می‌کشد یک پکت از مبدا به مقصد برسد
Packet Loss
تعداد پکت‌های از دست‌رفته در ارتباط
Jitter
اختلاف تأخیر بین رسیدن پکت‌ها
🔻 یاداوری مفهوم Jitter:
فرض کنید پکت اول با تأخیر ۲۰۰ms به مقصد برسد و پکت دوم با تأخیر ۱۰۰ms دریافت شود. در این حالت میزان Jitter برابر اختلاف این دو مقدار، یعنی ۱۰۰ms خواهد بود.

📌 جمع‌بندی:
پروتکل SIP تماس را برقرار می‌کند، RTP صدا و تصویر را منتقل می‌کند و RTCP کیفیت ارتباط را بررسی می‌کند.
اگر RTP به‌درستی کار نکند یا کیفیت شبکه ضعیف باشد، مشکلاتی مثل:
• صدای رباتی
• قطع و وصل شدن صدا
• تأخیر در مکالمه
• صدای یک طرفه
• و حتی قطع کامل تماس
در ارتباط VoIP به وجود می‌آید.


🔖 #Network, #شبکه

👤 Drwcsi

💎 Channel: @DevelopixNetwork
🔥81
🔐 جلوگیری از SQL Injection با Prepared Statement

یکی از ساده‌ترین و مؤثرترین کارها برای امن‌کردن برنامه‌ تحت شبکه (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
👍8