Kodax

فهم بروتوكولات الشبكات — أمن الشبكات

بروتوكولات الشبكات

ما هو البروتوكول؟

قواعد ومعايير للتواصل بين الأجهزة عبر الشبكة.

نموذج OSI (7 طبقات)

1. Physical - الطبقة الفيزيائية (كابلات)

2. Data Link - رابط البيانات (MAC address)

3. Network - الشبكة (IP address)

4. Transport - النقل (TCP/UDP)

5. Session - الجلسة

6. Presentation - العرض

7. Application - التطبيق (HTTP, FTP, DNS)

البروتوكولات الأساسية

TCP vs UDP

| TCP | UDP |

|-----|-----|

| موثوق | غير موثوق |

| بطيء نسبياً | سريع |

| HTTP, FTP | DNS, VoIP |

HTTP vs HTTPS

- HTTP: غير مشفر ⚠️

- HTTPS: مشفر بـ TLS/SSL ✅

DNS

تحويل أسماء النطاقات إلى عناوين IP:

google.com → 142.250.185.46

المنافذ الشائعة

- 21: FTP

- 22: SSH

- 23: Telnet ⚠️

- 25: SMTP

- 53: DNS

- 80: HTTP

- 443: HTTPS

- 3306: MySQL

- 3389: RDP

# فحص المنافذ المفتوحة باستخدام Python
import socket

def scan_ports(host, start_port, end_port):
    """
    فحص المنافذ المفتوحة على هوست معين
    """
    open_ports = []
    
    print(f"[*] بدء فحص {host}")
    print(f"[*] المنافذ من {start_port} إلى {end_port}")
    print("-" * 40)
    
    for port in range(start_port, end_port + 1):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(1)  # timeout بعد ثانية
        
        result = sock.connect_ex((host, port))
        
        if result == 0:
            try:
                service = socket.getservbyport(port)
            except:
                service = "غير معروف"
            
            print(f"[+] المنفذ {port} مفتوح ({service})")
            open_ports.append(port)
        
        sock.close()
    
    print("-" * 40)
    print(f"[*] تم العثور على {len(open_ports)} منفذ مفتوح")
    return open_ports

# مثال الاستخدام (على localhost فقط للتجربة)
# scan_ports("127.0.0.1", 1, 1024)
اختبر فهمك