Network Security Basics

Network Security Basics

Overview

Network security protects computer networks and data from unauthorized access, misuse, and modification. This chapter covers core network security concepts including firewalls, NAT, VPNs, and encryption basics.

Difficulty: ⭐⭐⭐

Learning Objectives: - Understand basic network security principles - Learn firewall types and operating principles - Understand NAT concepts and security roles - Learn VPN types and usage methods - Acquire basic encryption concepts


Table of Contents

  1. Network Security Overview
  2. Firewalls
  3. NAT
  4. VPN
  5. Encryption Basics
  6. Practice Problems
  7. Next Steps
  8. References

1. Network Security Overview

CIA Triad

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    CIA Triad (Security Elements)                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚                   β”‚ Confidentiality β”‚                           β”‚
β”‚                   β”‚                 β”‚                           β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜                           β”‚
β”‚                            β”‚                                    β”‚
β”‚                    Only authorized users                        β”‚
β”‚                    can access information                       β”‚
β”‚                            β”‚                                    β”‚
β”‚          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚          β”‚                 β”‚                 β”‚                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”         β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚  β”‚   Integrity   β”‚         β”‚         β”‚ Availability  β”‚          β”‚
β”‚  β”‚               │◀───────┼────────▢│               β”‚          β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β”‚
β”‚                            β”‚                                    β”‚
β”‚  Information accurate      β”‚         Information accessible     β”‚
β”‚  and unmodified            β”‚         when needed                β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Security Elements Details

Element Description Threat Examples Countermeasures
Confidentiality Authorized access only Eavesdropping, sniffing Encryption, access control
Integrity Prevent data modification MITM attack, tampering Hashing, digital signatures
Availability Continuous service provision DoS/DDoS attacks Redundancy, load balancing

Additional Security Elements

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Additional Security Elements                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Authentication                                                 β”‚
β”‚  └─ Verify user/system identity                                 β”‚
β”‚     Examples: Passwords, certificates, biometrics               β”‚
β”‚                                                                 β”‚
β”‚  Authorization                                                  β”‚
β”‚  └─ Grant access permissions                                    β”‚
β”‚     Example: Role-Based Access Control (RBAC)                   β”‚
β”‚                                                                 β”‚
β”‚  Non-repudiation                                                β”‚
β”‚  └─ Cannot deny actions performed                               β”‚
β”‚     Examples: Digital signatures, audit logs                    β”‚
β”‚                                                                 β”‚
β”‚  Accountability                                                 β”‚
β”‚  └─ Actions can be traced to actors                             β”‚
β”‚     Examples: Logging, monitoring                               β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Defense in Depth

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Defense in Depth Strategy                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                     Physical Security                    β”‚   β”‚
β”‚  β”‚                  (Server room, access control)           β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚   β”‚
β”‚  β”‚  β”‚                   Perimeter Security             β”‚    β”‚   β”‚
β”‚  β”‚  β”‚               (Firewall, IDS/IPS)                β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚                Network Security          β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚            (VLAN, network segregation)   β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚            Host Security         β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚      (OS security, antivirus)    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  Application Security   β”‚    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  (Input validation, auth)β”‚    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚   Data Security β”‚    β”‚    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚ (Encryption,backup)β”‚    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚    β”‚    β”‚   β”‚
β”‚  β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚    β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. Firewalls

Firewall Overview

A firewall is a network security device that monitors network traffic and allows or blocks traffic according to security rules.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Firewall Position                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  [Internet]                                                     β”‚
β”‚     β”‚                                                           β”‚
β”‚     β–Ό                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                           β”‚
β”‚  β”‚  Border Router   β”‚                                           β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                           β”‚
β”‚           β”‚                                                     β”‚
β”‚           β–Ό                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                           β”‚
β”‚  β”‚    Firewall      │◀─ Traffic filtering                      β”‚
β”‚  β”‚ (External FW)    β”‚                                           β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                           β”‚
β”‚           β”‚                                                     β”‚
β”‚           β–Ό                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                           β”‚
β”‚  β”‚      DMZ         │◀─ Web server, mail server                β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                           β”‚
β”‚           β”‚                                                     β”‚
β”‚           β–Ό                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                           β”‚
β”‚  β”‚    Firewall      │◀─ Internal protection                    β”‚
β”‚  β”‚ (Internal FW)    β”‚                                           β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                           β”‚
β”‚           β”‚                                                     β”‚
β”‚           β–Ό                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                           β”‚
β”‚  β”‚ Internal Network │◀─ Employee PCs, internal servers         β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                           β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Firewall Types

1. Packet Filtering Firewall

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Packet Filtering Firewall                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Operating Layer: L3 (Network), L4 (Transport)                  β”‚
β”‚                                                                 β”‚
β”‚  Inspection criteria:                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚Source IPβ”‚Dest IPβ”‚Protocolβ”‚Source Portβ”‚Dest Portβ”‚        β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                 β”‚
β”‚  Rule example:                                                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ # Rule  Source IP      Dest IP      Port   Protocol Action β”‚β”‚
β”‚  β”‚ 1    192.168.1.0/24   any           80     TCP     ALLOW  β”‚β”‚
β”‚  β”‚ 2    any              192.168.1.10  22     TCP     ALLOW  β”‚β”‚
β”‚  β”‚ 3    10.0.0.0/8       any           any    any     DENY   β”‚β”‚
β”‚  β”‚ 4    any              any           any    any     DENY   β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β”‚  Pros: Fast speed, simple implementation                        β”‚
β”‚  Cons: Cannot inspect packet content, no state tracking         β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. Stateful Inspection Firewall

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Stateful Inspection Firewall                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Operating Layer: L3, L4 + connection state tracking            β”‚
β”‚                                                                 β”‚
β”‚  State Table:                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ Src IP:Port   Dest IP:Port   Protocol  State    Timeout    β”‚β”‚
β”‚  β”‚ 192.168.1.10:45000  93.184.216.34:80  TCP ESTABLISHED 3600 β”‚β”‚
β”‚  β”‚ 192.168.1.10:45001  8.8.8.8:53       UDP  ACTIVE      60   β”‚β”‚
β”‚  β”‚ 192.168.1.20:52000  10.0.0.5:22      TCP ESTABLISHED 7200 β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β”‚  TCP state tracking:                                            β”‚
β”‚                                                                 β”‚
β”‚  [Client]          [Firewall]          [Server]                 β”‚
β”‚       β”‚                  β”‚                 β”‚                    β”‚
β”‚       │──── SYN ────────▢│──── SYN ───────▢│                    β”‚
β”‚       β”‚    (NEW)         β”‚                 β”‚                    β”‚
β”‚       β”‚                  │◀─── SYN-ACK ────│                    β”‚
β”‚       │◀─── SYN-ACK ─────│                 β”‚                    β”‚
β”‚       │──── ACK ────────▢│──── ACK ───────▢│                    β”‚
β”‚       β”‚  (ESTABLISHED)   β”‚                 β”‚                    β”‚
β”‚       β”‚                  β”‚                 β”‚                    β”‚
β”‚                                                                 β”‚
β”‚  Pros: Connection state tracking, auto-allow return traffic     β”‚
β”‚  Cons: Cannot inspect packet content                            β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. Application Layer Firewall

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                Application Layer Firewall                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Operating Layer: L7 (Application)                              β”‚
β”‚                                                                 β”‚
β”‚  Inspection criteria:                                           β”‚
β”‚  - HTTP method, URL, headers, body                              β”‚
β”‚  - DNS query content                                            β”‚
β”‚  - FTP commands                                                 β”‚
β”‚  - SQL query patterns                                           β”‚
β”‚                                                                 β”‚
β”‚  Features:                                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ - Web Application Firewall (WAF)                            β”‚β”‚
β”‚  β”‚ - Block SQL Injection                                       β”‚β”‚
β”‚  β”‚ - Block XSS attacks                                         β”‚β”‚
β”‚  β”‚ - Block malicious file uploads                              β”‚β”‚
β”‚  β”‚ - API request validation                                    β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β”‚  Pros: Detailed traffic analysis, application-level protection  β”‚
β”‚  Cons: High processing load, complex configuration              β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Next-Generation Firewall (NGFW)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Next-Generation Firewall (NGFW)                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                     NGFW Features                        β”‚   β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚   β”‚
β”‚  β”‚  β”‚ Packet Filter β”‚  β”‚ Stateful Insp β”‚  β”‚ Application   β”‚β”‚   β”‚
β”‚  β”‚  β”‚               β”‚  β”‚               β”‚  β”‚ Recognition   β”‚β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚   β”‚
β”‚  β”‚  β”‚ IPS Integratedβ”‚  β”‚ SSL Decryptionβ”‚  β”‚ User Identity β”‚β”‚   β”‚
β”‚  β”‚  β”‚               β”‚  β”‚               β”‚  β”‚               β”‚β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚   β”‚
β”‚  β”‚  β”‚Threat Intel   β”‚  β”‚ Sandboxing    β”‚  β”‚ URL Filtering β”‚β”‚   β”‚
β”‚  β”‚  β”‚               β”‚  β”‚               β”‚  β”‚               β”‚β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                 β”‚
β”‚  Major vendors: Palo Alto, Fortinet, Check Point, Cisco        β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Firewall Rule Example (iptables)

# Set default policy
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Allow localhost
iptables -A INPUT -i lo -j ACCEPT

# Allow established connections (stateful)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow SSH (port 22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Allow HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Allow SSH from specific IP only
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT

# Allow ICMP (ping)
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# View rules
iptables -L -n -v

# Save rules
iptables-save > /etc/iptables.rules

3. NAT

NAT Overview

NAT (Network Address Translation) is a technology that translates IP addresses to different IP addresses.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    NAT Basic Concept                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚                      Private Network                        β”‚β”‚
β”‚  β”‚   192.168.1.0/24                                           β”‚β”‚
β”‚  β”‚                                                            β”‚β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”                    β”‚β”‚
β”‚  β”‚  β”‚ PC-1    β”‚  β”‚ PC-2    β”‚  β”‚ PC-3    β”‚                    β”‚β”‚
β”‚  β”‚  β”‚.10      β”‚  β”‚.20      β”‚  β”‚.30      β”‚                    β”‚β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜                    β”‚β”‚
β”‚  β”‚       β”‚            β”‚            β”‚                          β”‚β”‚
β”‚  β”‚       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                          β”‚β”‚
β”‚  β”‚                 β”‚                                          β”‚β”‚
β”‚  β”‚           β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”                                    β”‚β”‚
β”‚  β”‚           β”‚  Router   β”‚                                    β”‚β”‚
β”‚  β”‚           β”‚   NAT     β”‚                                    β”‚β”‚
β”‚  β”‚           β”‚ 192.168.1.1 (internal)                         β”‚β”‚
β”‚  β”‚           β”‚ 203.0.113.1 (external)                         β”‚β”‚
β”‚  β”‚           β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                                    β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                    β”‚                                           β”‚
β”‚                    β–Ό                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”‚                      Internet                                β”‚
β”‚  β”‚                                                             β”‚
β”‚  β”‚  All PCs appear as 203.0.113.1                              β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

NAT Types

1. Static NAT (1:1)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Static NAT                                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Fixed mapping: Private IP ↔ Public IP (1:1)                    β”‚
β”‚                                                                 β”‚
β”‚  Mapping table:                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚
β”‚  β”‚   Private IP       β”‚    Public IP       β”‚                   β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                   β”‚
β”‚  β”‚  192.168.1.10      β”‚  203.0.113.10      β”‚                   β”‚
β”‚  β”‚  192.168.1.20      β”‚  203.0.113.20      β”‚                   β”‚
β”‚  β”‚  192.168.1.30      β”‚  203.0.113.30      β”‚                   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚
β”‚                                                                 β”‚
β”‚  Use case: When external access to internal server is needed    β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. Dynamic NAT (N:N)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Dynamic NAT                                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Dynamic mapping: Private IP pool β†’ Public IP pool              β”‚
β”‚                                                                 β”‚
β”‚  Private IP Pool           Public IP Pool                       β”‚
β”‚  192.168.1.10           203.0.113.10                            β”‚
β”‚  192.168.1.20   ───▢    203.0.113.11                            β”‚
β”‚  192.168.1.30           203.0.113.12                            β”‚
β”‚  192.168.1.40           (available IP assigned)                 β”‚
β”‚                                                                 β”‚
β”‚  Features:                                                      β”‚
β”‚  - First-come-first-served allocation                           β”‚
β”‚  - Concurrent connections limited to number of public IPs       β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. PAT/NAPT (N:1) - Most Common

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              PAT (Port Address Translation)                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Multiple private IPs share one public IP (distinguished by port)β”‚
β”‚                                                                 β”‚
β”‚  [Private Network]                    [NAT Router]              β”‚
β”‚                                                                 β”‚
β”‚  192.168.1.10:45000 ──────▢  203.0.113.1:10001  ──────▢ Internetβ”‚
β”‚  192.168.1.20:45001 ──────▢  203.0.113.1:10002  ──────▢ Internetβ”‚
β”‚  192.168.1.30:45002 ──────▢  203.0.113.1:10003  ──────▢ Internetβ”‚
β”‚                                                                 β”‚
β”‚  NAT Table:                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”‚
β”‚  β”‚ Internal Address:Port  β”‚ External Address:Port β”‚            β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€            β”‚
β”‚  β”‚ 192.168.1.10:45000     β”‚ 203.0.113.1:10001     β”‚            β”‚
β”‚  β”‚ 192.168.1.20:45001     β”‚ 203.0.113.1:10002     β”‚            β”‚
β”‚  β”‚ 192.168.1.30:45002     β”‚ 203.0.113.1:10003     β”‚            β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚                                                                 β”‚
β”‚  Use case: Home, small business (routers)                       β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

NAT Operation Process

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    NAT Packet Translation                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  1. Internal β†’ External (Outbound)                              β”‚
β”‚  ─────────────────────────                                      β”‚
β”‚                                                                 β”‚
β”‚  [PC]                    [NAT Router]               [Web Server]β”‚
β”‚  192.168.1.10:45000      203.0.113.1              93.184.216.34 β”‚
β”‚       β”‚                       β”‚                        β”‚        β”‚
β”‚       │──────────────────────▢│                        β”‚        β”‚
β”‚       β”‚ Source: 192.168.1.10:45000                     β”‚        β”‚
β”‚       β”‚ Dest: 93.184.216.34:80                         β”‚        β”‚
β”‚       β”‚                       β”‚                        β”‚        β”‚
β”‚       β”‚        [NAT Translation]│───────────────────────▢│        β”‚
β”‚       β”‚                       β”‚ Source: 203.0.113.1:10001β”‚        β”‚
β”‚       β”‚                       β”‚ Dest: 93.184.216.34:80 β”‚        β”‚
β”‚       β”‚                       β”‚                        β”‚        β”‚
β”‚                                                                 β”‚
β”‚  2. External β†’ Internal (Inbound - response)                    β”‚
β”‚  ──────────────────────────────                                 β”‚
β”‚       β”‚                       β”‚                        β”‚        β”‚
β”‚       β”‚                       │◀───────────────────────│        β”‚
β”‚       β”‚                       β”‚ Source: 93.184.216.34:80β”‚        β”‚
β”‚       β”‚                       β”‚ Dest: 203.0.113.1:10001β”‚        β”‚
β”‚       β”‚                       β”‚                        β”‚        β”‚
β”‚       │◀──────────────────────│        [NAT Reverse]   β”‚        β”‚
β”‚       β”‚ Source: 93.184.216.34:80β”‚                       β”‚        β”‚
β”‚       β”‚ Dest: 192.168.1.10:45000                       β”‚        β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

NAT's Security Role

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    NAT Security Characteristics                  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Pros (Security Perspective):                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ 1. Hide internal IP addresses                            β”‚   β”‚
β”‚  β”‚    - Difficult for outsiders to learn internal network   β”‚   β”‚
β”‚  β”‚                                                          β”‚   β”‚
β”‚  β”‚ 2. Natural firewall effect                               β”‚   β”‚
β”‚  β”‚    - Direct external access to internal not possible     β”‚   β”‚
β”‚  β”‚    - Only internally-initiated connections allowed       β”‚   β”‚
β”‚  β”‚                                                          β”‚   β”‚
β”‚  β”‚ 3. Session-based filtering                               β”‚   β”‚
β”‚  β”‚    - Packets not in NAT table are blocked                β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                 β”‚
β”‚  Caution:                                                       β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ ⚠ NAT is address translation, not a security function    β”‚   β”‚
β”‚  β”‚ ⚠ Should be used with firewall                           β”‚   β”‚
β”‚  β”‚ ⚠ Internal exposure with port forwarding                 β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Port Forwarding

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Port Forwarding                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  NAT configuration for external access to internal server       β”‚
β”‚                                                                 β”‚
β”‚  [Internet]                [NAT Router]              [Internal Server]β”‚
β”‚                         203.0.113.1              192.168.1.100  β”‚
β”‚     β”‚                       β”‚                        β”‚          β”‚
β”‚     │───────────────────────▢│                        β”‚          β”‚
β”‚     β”‚ Dest: 203.0.113.1:80   β”‚                        β”‚          β”‚
β”‚     β”‚                       β”‚                        β”‚          β”‚
β”‚     β”‚      [Port Forwarding] │───────────────────────▢│          β”‚
β”‚     β”‚                       β”‚ Dest: 192.168.1.100:80 β”‚          β”‚
β”‚     β”‚                       β”‚                        β”‚          β”‚
β”‚                                                                 β”‚
β”‚  Configuration example:                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ External Port  Internal IP      Internal Port  Protocol    β”‚β”‚
β”‚  β”‚ 80         192.168.1.100     80          TCP              β”‚β”‚
β”‚  β”‚ 443        192.168.1.100     443         TCP              β”‚β”‚
β”‚  β”‚ 22         192.168.1.200     22          TCP              β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β”‚  Linux iptables example:                                        β”‚
β”‚  iptables -t nat -A PREROUTING -p tcp --dport 80 \             β”‚
β”‚    -j DNAT --to-destination 192.168.1.100:80                    β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

4. VPN

VPN Overview

VPN (Virtual Private Network) provides secure private network connections through public networks.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    VPN Basic Concept                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Without VPN (Public Internet)                                  β”‚
β”‚  ──────────────────────                                         β”‚
β”‚  [PC] ───── Plaintext data ───────▢ [Internet] ───────▢ [Server]β”‚
β”‚             Eavesdropping possible                              β”‚
β”‚                                                                 β”‚
β”‚  With VPN                                                       β”‚
β”‚  ────────────                                                   β”‚
β”‚  [PC] ═══ Encrypted tunnel ═══▢ [Internet] ═══▢ [VPN Server] ──▢ [Server]β”‚
β”‚           Secure connection                                      β”‚
β”‚                                                                 β”‚
β”‚  VPN Features:                                                  β”‚
β”‚  - Data encryption (confidentiality)                            β”‚
β”‚  - Data integrity verification                                  β”‚
β”‚  - User authentication                                          β”‚
β”‚  - IP address hiding                                            β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

VPN Types

1. Site-to-Site VPN

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Site-to-Site VPN                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚ HQ Network     β”‚                     β”‚ Branch Network β”‚      β”‚
β”‚  β”‚  10.1.0.0/16   β”‚                     β”‚  10.2.0.0/16   β”‚      β”‚
β”‚  β”‚                β”‚                     β”‚                β”‚      β”‚
β”‚  β”‚ β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β” β”‚                     β”‚ β”Œβ”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β” β”‚      β”‚
β”‚  β”‚ β”‚PC  β”‚ β”‚Srv β”‚ β”‚                     β”‚ β”‚PC  β”‚ β”‚Srv β”‚ β”‚      β”‚
β”‚  β”‚ β””β”€β”€β”¬β”€β”˜ β””β”€β”€β”¬β”€β”˜ β”‚                     β”‚ β””β”€β”€β”¬β”€β”˜ β””β”€β”€β”¬β”€β”˜ β”‚      β”‚
β”‚  β”‚    β””β”€β”€β”¬β”€β”€β”€β”˜   β”‚                     β”‚    β””β”€β”€β”¬β”€β”€β”€β”˜   β”‚      β”‚
β”‚  β”‚       β”‚       β”‚                     β”‚       β”‚       β”‚      β”‚
β”‚  β”‚ β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”‚                     β”‚ β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β” β”‚      β”‚
β”‚  β”‚ β”‚VPN Gatewayβ”‚ β”‚                     β”‚ β”‚VPN Gatewayβ”‚ β”‚      β”‚
β”‚  β”‚ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β”‚                     β”‚ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β”‚          β”‚                                     β”‚              β”‚
β”‚          β”‚      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚              β”‚
β”‚          └──────│    Internet      β”‚β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                 β”‚                  β”‚                         β”‚
β”‚                 β”‚ ═══ VPN Tunnel ══│                         β”‚
β”‚                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β”‚
β”‚                                                                 β”‚
β”‚  Use case: HQ-branch connection, data center connection         β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. Remote Access VPN

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Remote Access VPN                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚      [Remote Users]                                             β”‚
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”                                     β”‚
β”‚  β”‚ PC1 β”‚  β”‚ PC2 β”‚  β”‚ PC3 β”‚                                     β”‚
β”‚  β”‚ VPN β”‚  β”‚ VPN β”‚  β”‚ VPN β”‚                                     β”‚
β”‚  β”‚Clientβ”‚ β”‚Clientβ”‚ β”‚Clientβ”‚                                    β”‚
β”‚  β””β”€β”€β”¬β”€β”€β”˜  β””β”€β”€β”¬β”€β”€β”˜  β””β”€β”€β”¬β”€β”€β”˜                                     β”‚
β”‚     β”‚        β”‚        β”‚                                         β”‚
β”‚     β”‚   β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”                                   β”‚
β”‚     └───│     Internet     β”‚                                   β”‚
β”‚         β”‚                  β”‚                                   β”‚
β”‚         β”‚ ═══ VPN Tunnel ══│                                   β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                   β”‚
β”‚                  β”‚                                             β”‚
β”‚           β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”                                      β”‚
β”‚           β”‚  VPN Server β”‚                                      β”‚
β”‚           β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                                      β”‚
β”‚                  β”‚                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”‚
β”‚  β”‚           Company Network          β”‚                         β”‚
β”‚  β”‚    β”Œβ”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”        β”‚                         β”‚
β”‚  β”‚    β”‚Srv β”‚  β”‚ DB β”‚  β”‚Fileβ”‚        β”‚                         β”‚
β”‚  β”‚    β””β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”˜        β”‚                         β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β”‚
β”‚                                                                 β”‚
β”‚  Use case: Remote work, business trip access to company network β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

VPN Protocols

Protocol Layer Features Security
PPTP L2 Old, fast Weak (not recommended)
L2TP/IPsec L2+L3 Common Strong
IPsec L3 Standard, compatible Strong
OpenVPN L3/L4 Open source, flexible Strong
WireGuard L3 Latest, fast, simple Strong
SSL/TLS VPN L4-L7 Browser-based Strong

IPsec VPN

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    IPsec Protocol                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  IPsec Components:                                              β”‚
β”‚                                                                 β”‚
β”‚  1. IKE (Internet Key Exchange)                                 β”‚
β”‚     - Key exchange and SA(Security Association) establishment   β”‚
β”‚     - Phase 1: IKE SA establishment (auth, encryption negotiation)β”‚
β”‚     - Phase 2: IPsec SA establishment (actual tunnel setup)     β”‚
β”‚                                                                 β”‚
β”‚  2. AH (Authentication Header)                                  β”‚
β”‚     - Data integrity, source authentication                     β”‚
β”‚     - No encryption                                             β”‚
β”‚                                                                 β”‚
β”‚  3. ESP (Encapsulating Security Payload)                        β”‚
β”‚     - Data encryption + integrity + authentication              β”‚
β”‚     - Most commonly used                                        β”‚
β”‚                                                                 β”‚
β”‚  IPsec Modes:                                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚  Tunnel Mode                                                β”‚β”‚
β”‚  β”‚  - Encrypts entire IP packet                                β”‚β”‚
β”‚  β”‚  - Used in Site-to-Site VPN                                 β”‚β”‚
β”‚  β”‚                                                             β”‚β”‚
β”‚  β”‚  Original: [IP Header][Data]                                β”‚β”‚
β”‚  β”‚  Result: [New IP Header][ESP Header][Encrypted Original Packet][ESP Trailer]β”‚β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚
β”‚  β”‚  Transport Mode                                             β”‚β”‚
β”‚  β”‚  - Encrypts data payload only                               β”‚β”‚
β”‚  β”‚  - Used in host-to-host communication                       β”‚β”‚
β”‚  β”‚                                                             β”‚β”‚
β”‚  β”‚  Original: [IP Header][Data]                                β”‚β”‚
β”‚  β”‚  Result: [IP Header][ESP Header][Encrypted Data][ESP Trailer]β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

WireGuard

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    WireGuard VPN                                 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Features:                                                      β”‚
β”‚  - Modern encryption (ChaCha20, Poly1305, Curve25519)          β”‚
β”‚  - ~4,000 lines of code (100x less than IPsec)                 β”‚
β”‚  - Fast connection, low latency                                 β”‚
β”‚  - Built into Linux kernel (5.6+)                               β”‚
β”‚                                                                 β”‚
β”‚  Configuration example (/etc/wireguard/wg0.conf):              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ [Interface]                                                β”‚β”‚
β”‚  β”‚ PrivateKey = <server private key>                          β”‚β”‚
β”‚  β”‚ Address = 10.0.0.1/24                                      β”‚β”‚
β”‚  β”‚ ListenPort = 51820                                         β”‚β”‚
β”‚  β”‚                                                            β”‚β”‚
β”‚  β”‚ [Peer]                                                     β”‚β”‚
β”‚  β”‚ PublicKey = <client public key>                            β”‚β”‚
β”‚  β”‚ AllowedIPs = 10.0.0.2/32                                   β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β”‚  Commands:                                                      β”‚
β”‚  wg-quick up wg0      # Start VPN                               β”‚
β”‚  wg-quick down wg0    # Stop VPN                                β”‚
β”‚  wg show              # Show status                             β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

5. Encryption Basics

Encryption Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Basic Encryption Concepts                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Plaintext              Encryption              Ciphertext      β”‚
β”‚                                                                 β”‚
β”‚  "Hello World"  ──────────────────▢  "Xj2#kL9@mP"              β”‚
β”‚                        β”‚                                        β”‚
β”‚                      [Key]                                      β”‚
β”‚                        β”‚                                        β”‚
β”‚  "Hello World"  ◀──────────────────  "Xj2#kL9@mP"              β”‚
β”‚                                                                 β”‚
β”‚                   Decryption                                    β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Symmetric Encryption

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Symmetric Encryption                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Encrypt/decrypt with same key                                  β”‚
β”‚                                                                 β”‚
β”‚  [Sender]                              [Receiver]               β”‚
β”‚     β”‚                                     β”‚                     β”‚
β”‚     β”‚  Plaintext: "Hello"                 β”‚                     β”‚
β”‚     β”‚     β”‚                               β”‚                     β”‚
β”‚     β”‚     β–Ό                               β”‚                     β”‚
β”‚     β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”                           β”‚                     β”‚
β”‚     β”‚  β”‚Encrypt│◀──── Secret Key ────────▢│                     β”‚
β”‚     β”‚  β””β”€β”€β”¬β”€β”€β”€β”˜      "secretkey"         β”‚                     β”‚
β”‚     β”‚     β”‚                               β”‚                     β”‚
β”‚     β”‚     β–Ό                               β–Ό                     β”‚
β”‚     β”‚  Ciphertext: "Xj2#k" ─────────▢  β”Œβ”€β”€β”€β”€β”€β”€β”                β”‚
β”‚     β”‚                              β”‚Decryptβ”‚                    β”‚
β”‚     β”‚                              β””β”€β”€β”¬β”€β”€β”€β”˜                    β”‚
β”‚     β”‚                                 β”‚                        β”‚
β”‚     β”‚                                 β–Ό                        β”‚
β”‚     β”‚                              Plaintext: "Hello"          β”‚
β”‚                                                                 β”‚
β”‚  Main algorithms:                                               β”‚
β”‚  - AES (Advanced Encryption Standard) - Current standard       β”‚
β”‚  - ChaCha20 - Optimized for mobile                             β”‚
β”‚  - 3DES - Legacy (not recommended)                              β”‚
β”‚                                                                 β”‚
β”‚  Pros: Fast speed                                               β”‚
β”‚  Cons: Key distribution problem (how to share key securely?)    β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Asymmetric Encryption

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Asymmetric Encryption                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Uses public/private key pair                                   β”‚
β”‚                                                                 β”‚
β”‚  [Receiver Key Pair]                                            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚  β”‚ Public Key  β”‚     β”‚Private Key  β”‚                           β”‚
β”‚  β”‚(Public access)β”‚    β”‚(Owner only) β”‚                           β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                           β”‚
β”‚                                                                 β”‚
β”‚  Encryption scenario:                                           β”‚
β”‚                                                                 β”‚
β”‚  [Sender Alice]        Public channel       [Receiver Bob]      β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚          Request Bob's public key   β”‚                   β”‚
β”‚       │◀────────────────────────────────────│                   β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚  Plaintext: "Hello"                 β”‚                   β”‚
β”‚       β”‚     β”‚                               β”‚                   β”‚
β”‚       β”‚     β–Ό                               β”‚                   β”‚
β”‚       β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                     β”‚                   β”‚
β”‚       β”‚  β”‚Encrypt withβ”‚                     β”‚                   β”‚
β”‚       β”‚  β”‚Bob's publicβ”‚                     β”‚                   β”‚
β”‚       β”‚  β”‚    key     β”‚                     β”‚                   β”‚
β”‚       β”‚  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜                     β”‚                   β”‚
β”‚       β”‚        β”‚                            β”‚                   β”‚
β”‚       β”‚        β–Ό                            β–Ό                   β”‚
β”‚       β”‚  Ciphertext ──────────────────▢  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
β”‚       β”‚                             β”‚Decrypt with β”‚            β”‚
β”‚       β”‚                             β”‚Bob's privateβ”‚            β”‚
β”‚       β”‚                             β”‚    key      β”‚            β”‚
β”‚       β”‚                             β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜            β”‚
β”‚       β”‚                                   β”‚                    β”‚
β”‚       β”‚                                   β–Ό                    β”‚
β”‚       β”‚                              Plaintext: "Hello"        β”‚
β”‚                                                                 β”‚
β”‚  Main algorithms:                                               β”‚
β”‚  - RSA (2048+ bit)                                              β”‚
β”‚  - ECC (Elliptic Curve Cryptography)                            β”‚
β”‚  - Ed25519 (specialized for digital signatures)                 β”‚
β”‚                                                                 β”‚
β”‚  Pros: Solves key distribution problem                          β”‚
β”‚  Cons: Slower than symmetric (100~1000x)                        β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Hybrid Encryption

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Hybrid Encryption                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Exchange symmetric key securely with asymmetric key, then      β”‚
β”‚  communicate with symmetric key                                 β”‚
β”‚                                                                 β”‚
β”‚  [Client]                              [Server]                 β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚    ───(1) Request server public key ─▢                  β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚    ◀─(2) Send server public key ────│                   β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”‚                   β”‚
β”‚       β”‚  β”‚ 1. Generate symmetric β”‚         β”‚                   β”‚
β”‚       β”‚  β”‚    key (session key)  β”‚         β”‚                   β”‚
β”‚       β”‚  β”‚    (e.g., AES-256)    β”‚         β”‚                   β”‚
β”‚       β”‚  β”‚                       β”‚         β”‚                   β”‚
β”‚       β”‚  β”‚ 2. Encrypt session    β”‚         β”‚                   β”‚
β”‚       β”‚  β”‚    key with server    β”‚         β”‚                   β”‚
β”‚       β”‚  β”‚    public key         β”‚         β”‚                   β”‚
β”‚       β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚                   β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚    ───(3) Send encrypted session key─▢                  β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”‚
β”‚       β”‚                          β”‚ Decrypt session key   β”‚     β”‚
β”‚       β”‚                          β”‚ with private key      β”‚     β”‚
β”‚       β”‚                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚
β”‚       β”‚                                     β”‚                   β”‚
β”‚       β”‚    ═══(4) Communication encrypted with session key═══▢│  β”‚
β”‚       β”‚    ◀══════════════════════════════│                   β”‚
β”‚                                                                 β”‚
β”‚  β€» TLS/SSL uses this method                                     β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Hash Functions

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Hash Functions                                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Convert input data to fixed-length hash value (one-way)        β”‚
β”‚                                                                 β”‚
β”‚  Input (variable length)           Hash (fixed length)          β”‚
β”‚  ─────────────────────────────────────────────────              β”‚
β”‚  "Hello"             ──▢     a591a6d40bf...  (SHA-256)         β”‚
β”‚  "Hello World"       ──▢     b94d27b9934...                    β”‚
β”‚  "hello"             ──▢     2cf24dba5fb...                    β”‚
β”‚                              (Small change β†’ completely different result)β”‚
β”‚                                                                 β”‚
β”‚  Properties:                                                    β”‚
β”‚  1. One-way: Cannot recover original from hash                  β”‚
β”‚  2. Deterministic: Same input β†’ always same hash                β”‚
β”‚  3. Collision resistance: Difficult for different inputs to have same hashβ”‚
β”‚  4. Avalanche effect: Small input change β†’ large hash change    β”‚
β”‚                                                                 β”‚
β”‚  Main algorithms:                                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ Algorithm β”‚ Output   β”‚ Status                               β”‚β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚
β”‚  β”‚ MD5       β”‚ 128 bit  β”‚ Weak (prohibited)                    β”‚β”‚
β”‚  β”‚ SHA-1     β”‚ 160 bit  β”‚ Weak (prohibited)                    β”‚β”‚
β”‚  β”‚ SHA-256   β”‚ 256 bit  β”‚ Safe (recommended)                   β”‚β”‚
β”‚  β”‚ SHA-3     β”‚ Variable β”‚ Safe (latest)                        β”‚β”‚
β”‚  β”‚ BLAKE2    β”‚ Variable β”‚ Safe (fast)                          β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                                                                 β”‚
β”‚  Use cases:                                                     β”‚
β”‚  - Password storage (hash + salt)                               β”‚
β”‚  - Data integrity verification                                  β”‚
β”‚  - Digital signatures                                           β”‚
β”‚  - File checksums                                               β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Digital Signatures

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Digital Signatures                            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                 β”‚
β”‚  Signature creation (Sender)                                    β”‚
β”‚  ─────────────────                                              β”‚
β”‚                                                                 β”‚
β”‚  Original document                                              β”‚
β”‚      β”‚                                                          β”‚
β”‚      β–Ό                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                   β”‚
β”‚  β”‚  Hash   │──▢ Document hash value                            β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚                                          β”‚
β”‚                     β–Ό                                          β”‚
β”‚               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                    β”‚
β”‚               β”‚Sender's   β”‚                                    β”‚
β”‚               β”‚private key│──▢ Digital signature               β”‚
β”‚               β”‚encryption β”‚                                    β”‚
β”‚               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                    β”‚
β”‚                                                                 β”‚
β”‚  Transmission: [Original document] + [Digital signature]        β”‚
β”‚                                                                 β”‚
β”‚  Signature verification (Receiver)                              β”‚
β”‚  ─────────────────                                              β”‚
β”‚                                                                 β”‚
β”‚  [Original document]      [Digital signature]                   β”‚
β”‚      β”‚                        β”‚                                β”‚
β”‚      β–Ό                        β–Ό                                β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚  β”‚  Hash   β”‚           β”‚Sender's   β”‚                           β”‚
β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜           β”‚public key β”‚                           β”‚
β”‚       β”‚                β”‚decryption β”‚                           β”‚
β”‚       β”‚                β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                           β”‚
β”‚       β”‚                      β”‚                                  β”‚
β”‚       β–Ό                      β–Ό                                  β”‚
β”‚  Calculated hash      =?  Decrypted hash                        β”‚
β”‚                                                                 β”‚
β”‚  Match β†’ Integrity verified + Sender authenticated              β”‚
β”‚                                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

6. Practice Problems

Basic Problems

  1. Security Basics
  2. Explain the three elements of the CIA Triad.
  3. What is Defense in Depth?

  4. Firewalls

  5. What's the difference between packet filtering and stateful firewalls?
  6. What does this iptables rule do? bash iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

  7. NAT

  8. What are the two main purposes of NAT?
  9. Explain the operating principle of PAT (Port Address Translation).

Intermediate Problems

  1. VPN
  2. What's the difference between Site-to-Site VPN and Remote Access VPN?
  3. Explain the difference between IPsec tunnel mode and transport mode.

  4. Encryption

  5. Compare the pros and cons of symmetric and asymmetric encryption.
  6. Why does TLS use hybrid encryption?

  7. Practical Problems

# Suggest appropriate security solutions for these scenarios

# 1. Remote worker needs to access company internal network
#    Answer:

# 2. Need to block SQL Injection attacks on web server
#    Answer:

# 3. Secure communication needed between HQ and branch office
#    Answer:

Advanced Problems

  1. Comprehensive Analysis
  2. Find security vulnerabilities in this network: Internet ─── Router ─── Internal Network β”‚ Web Server

  3. Encryption Application

  4. Explain how to use hashing to verify file integrity.
  5. Why is using only hash insufficient for password storage?

7. Next Steps

In 16_Security_Threats_Response.md, let's learn about specific security threats like sniffing, spoofing, and DDoS, along with response strategies!


8. References

Standards and RFC

Tools

  • iptables/nftables - Linux firewalls
  • OpenVPN - Open source VPN
  • WireGuard - Modern VPN
  • OpenSSL - Encryption tools

Learning Resources

to navigate between lessons