IP, port, client và server: dữ liệu được gửi tới đâu
Từ bài này ta theo đường đi của dữ liệu trên mạng. Cần đọc được hai đầu của một kết nối: ai gửi, ai nhận, qua địa chỉ IP và cổng nào, và điểm này liên quan gì đến bảo mật.
Client và server
Khi mở website, trình duyệt gửi một yêu cầu và chương trình web trả nội dung về. Bên gửi yêu cầu là , bên nhận và phục vụ là . Đây là vai trò của chương trình, không phải loại máy: client và server có thể chạy trên cùng một máy.
Về bảo mật, điều này quan trọng vì mỗi chương trình đang chờ yêu cầu từ mạng là một điểm có thể bị người khác gửi yêu cầu tới. Ta gọi tổng các điểm đó là bề mặt tấn công (attack surface). Càng ít dịch vụ lắng nghe ra ngoài, bề mặt càng nhỏ.
Địa chỉ IP và cổng (port)
xác định máy (chính xác hơn là một giao diện mạng) trên mạng. là số từ 0 đến 65535, xác định chương trình nào trên máy đó nhận dữ liệu. Một kết nối được ghi dạng IP:port cho cả hai đầu:
192.168.1.10:51514 → 203.0.113.10:443192.168.1.10: IP của máy khách trong mạng riêng giả định.51514: port nguồn tạm thời, hệ điều hành chọn cho kết nối này.203.0.113.10: IP máy chủ (dải địa chỉ dùng cho tài liệu).443: port đích, quy ước dùng cho HTTPS. Port 80 là HTTP, 22 là SSH.
Cách nhớ: IP như địa chỉ tòa nhà, port như số cửa của từng bộ phận trong tòa nhà. Nhưng số port chỉ là quy ước: 443 không bảo đảm dịch vụ phía sau là đúng loại hay đáng tin.
Phân biệt nhiều kết nối
| Kết nối | IP nguồn | Port nguồn | IP đích | Port đích |
|---|---|---|---|---|
| A | 192.168.1.10 | 51514 | 203.0.113.10 | 443 |
| B | 192.168.1.10 | 51515 | 203.0.113.10 | 443 |
Hai kết nối chỉ khác port nguồn, đủ để hệ điều hành phân biệt. Phản hồi cho A đi theo chiều ngược: 203.0.113.10:443 → 192.168.1.10:51514. Số kết nối không bằng số tab: trình duyệt có thể dùng lại hoặc mở thêm kết nối nền.
Mạng LAN, router và gateway
là mạng nội bộ như mạng Wi-Fi ở nhà. Để gửi dữ liệu ra ngoài LAN, máy gửi cho , thiết bị chuyển tiếp dữ liệu giữa các mạng. Địa chỉ router mà máy dùng làm lối ra mặc định là , ở ví dụ là 192.168.1.1.
Router chỉ là một điểm chuyển tiếp. Thực tế còn nhiều router trung gian giữa nhà bạn và máy chủ. Router, và những thiết bị trên đường đi, đều có thể nhìn thấy IP và port của gói dữ liệu, nên nội dung nhạy cảm phải được mã hóa (bài 6).
Ba dải IPv4 dành cho mạng riêng, dùng trong nội bộ và không định tuyến thẳng ra Internet:
| Dải | Ví dụ |
|---|---|
| 10.0.0.0/8 | 10.1.2.3 |
| 172.16.0.0/12 | 172.20.1.5 |
| 192.168.0.0/16 | 192.168.1.10 |
Hai nhà có thể cùng dùng 192.168.1.10 trong hai mạng riêng độc lập mà không xung đột. Hai dải 198.51.100.0/24 và 203.0.113.0/24 trong bài là dải dành cho tài liệu, không phải máy để thử kết nối.
Xem địa chỉ trên máy của bạn
Đối chiếu sơ đồ với máy thật bằng lệnh hệ điều hành. Kết quả dưới đây là ví dụ, không phải máy của bạn:
IPv4 Address . . . : 192.168.1.10
Subnet Mask . . . : 255.255.255.0
Default Gateway . : 192.168.1.1| Hệ điều hành | Xem địa chỉ | Xem đường ra |
|---|---|---|
| Windows | ipconfig | route print |
| macOS | ifconfig | route -n get default |
| Linux | ip addr | ip route |
Biểu diễn địa chỉ
dài 32 bit, viết thành bốn số từ 0 đến 255. cho biết bao nhiêu bit đầu xác định mạng: trong 192.168.1.10/24, 24 bit đầu là phần mạng (192.168.1), phần còn lại phân biệt từng máy. Không giả định mọi mạng đều là /24.
dài 128 bit, viết bằng nhóm số hệ 16 cách nhau dấu hai chấm. Một máy thường có cả IPv4 và IPv6; thấy hai loại địa chỉ là bình thường.
Về bảo mật, quản trị viên nên biết máy mình đang dùng giao diện nào, đang lắng nghe port nào, và dịch vụ nào cần mở ra ngoài. Bài 6 nói về việc kiểm soát điều đó.
Tóm tắt
- gửi yêu cầu, xử lý. Đó là vai trò của chương trình.
- Một kết nối được xác định bằng IP và port nguồn, IP và port đích.
- Số chỉ là quy ước; không chứng minh dịch vụ phía sau là gì.
- Dữ liệu ra khỏi qua (gateway); các thiết bị trên đường có thể thấy IP và port.
- Mỗi dịch vụ lắng nghe từ mạng làm tăng bề mặt tấn công.
Tự kiểm tra · 3 câu có giải thích +
Ghi chú cá nhân +
Tự lưu trên trình duyệt. Không nhập thông tin bí mật.