Lớp mạng chuyên sâu về an ninh mạng
IP - Giao thức Internet
IP được sử dụng để liên lạc qua các mạng, không chỉ qua các liên kết vật lý mà còn giữa các mạng của bộ định tuyến. Sơ đồ địa chỉ đang được sử dụng là IPv4 ("IP Phiên bản 4") hoặc IPv6 ("IP Phiên bản 6").
Mạng IP có thể được chia thành nhiều phần khác nhau, thường được gọi là mạng con. Điều này được thực hiện bằng cách thêm một phần thông tin bổ sung, cùng với địa chỉ IP, được gọi là netmask . Mặt nạ mạng cho biết mạng có quy mô như thế nào và gói nào được định tuyến trong mạng và gói nào sẽ được định tuyến bên ngoài mạng.
Mặt nạ mạng có thể được biểu diễn bằng số thập phân hoặc bằng ký hiệu gạch chéo. Khi sử dụng ký hiệu dấu gạch chéo, dấu gạch chéo theo địa chỉ IP của hệ thống. Dưới đây là một số ví dụ:
IP Address | Slash Notation | Netmask |
10.0.0.1 | /8 - Example: 10.0.0.1/8 | 255.0.0.0 |
172.16.1.1 | /12 - Example: 172.16.1.1/12 | 255.240.0.0 |
192.168.0.1 | /16 - Example: 192.168.0.1/16 | 255.255.0.0 |
192.168.0.1 | /24 - Example: 192.168.0.1/24 | 255.255.255.0 |
Một số mạng IP chỉ dành riêng cho một loại lưu lượng nhất định. Các địa chỉ IP trong bảng trên chỉ được dành riêng cho mục đích sử dụng nội bộ của tổ chức, nghĩa là chúng không được định tuyến trên Internet. Những loại địa chỉ IP này thường được gọi là địa chỉ RFC1918.
Mạng khác nhau
Chúng ta hãy xem xét các mạng khác nhau trong RFC1918 và mạng này lớn như thế nào:
- 10.0.0.0/8 - Hơn 16 triệu địa chỉ IP
- 172.16.0.0/12 - Khoảng 1 triệu địa chỉ IP
- 192.168.0.0/16 - 65534 địa chỉ IP
Các phân đoạn IP có thể được chia thành các mạng nhỏ hơn và chi tiết hơn.
Mỗi mạng có một địa chỉ dành riêng để phát lưu lượng truy cập đến mọi máy chủ trong mạng, đây được gọi là địa chỉ quảng bá. Truyền dữ liệu có nghĩa là gửi dữ liệu tới mọi người trên mạng thay vì chỉ gửi đến một máy chủ duy nhất. Có nhiều ứng dụng và giao thức dựa vào lưu lượng phát sóng để chúng hoạt động.
Đối với mỗi phân đoạn mạng, quảng bá luôn là địa chỉ IP cuối cùng trong mạng. Ví dụ: trong mạng 192.168.0.0/24, địa chỉ quảng bá là 192.168.0.255.
Mặt nạ mạng nhỏ nhất có thể là 255.255.255.255, được biểu thị là /32. Mạng này chỉ có một địa chỉ IP.
Nếu lưu lượng truy cập cần được gửi trở lại máy chủ, ví dụ như để liên lạc giữa các ứng dụng, nó sẽ được gửi đến địa chỉ localhost. Địa chỉ này luôn là 127.0.0.1 và là mạng /8.
Trong mạng IP, lưu lượng được định tuyến bởi bộ định tuyến. Bộ định tuyến là một thiết bị mạng hiểu định dạng IP và có thể chuyển tiếp các gói giữa các mạng. Điều này khác với bộ chuyển mạch vì bộ chuyển mạch chuyển tiếp dữ liệu trong mạng, trong khi bộ định tuyến chuyển tiếp giữa các mạng.
Các gói trên mạng có các tiêu đề mô tả nhiều chi tiết quan trọng mà chúng ta đã thảo luận trong giao thức IP. Tiêu đề IPv4 trông như thế này:
Tín dụng hình ảnh: Tác giả Michel Bakni - Postel, J. (tháng 9 năm 1981) RFC 791, Giao thức Internet, Đặc tả giao thức chương trình Internet DARPA, Hiệp hội Internet, tr. 11 DOI: 10.17487/RFC0791., CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=79949694
Địa chỉ nguồn là địa chỉ IP của hệ thống đang gửi gói và đích là địa chỉ của gói. Ngoài ra còn có các trường khác trong tiêu đề được sử dụng bởi nhiều tính năng của giao thức IP nhưng nằm ngoài phạm vi của lớp giới thiệu này.
Bạn có thể kiểm tra địa chỉ IP của mình trên Windows bằng cách chạy lệnh ipconfig
trong Cửa sổ dòng lệnh. Trên Linux, việc này được thực hiện bằng lệnh ip addr show
hoặc ifconfig
.
Khi một máy tính cần liên lạc với thứ gì đó không thể tìm thấy trên mạng LAN, nó sẽ gửi lưu lượng truy cập đến cổng mặc định theo cách cấu hình hệ thống. Cổng mặc định là bộ định tuyến có khả năng chuyển tiếp lưu lượng đến địa chỉ IP đích.
NAT ("Dịch địa chỉ mạng")
NAT cho phép hệ thống chấp nhận các kết nối trên địa chỉ IP công cộng để ánh xạ các yêu cầu đó tới địa chỉ IP RFC 1918 nội bộ hoặc ngược lại. Các hệ thống thực hiện NAT thường là tường lửa và bộ định tuyến.
Cách triển khai NAT điển hình là địa chỉ IP bên ngoài được sử dụng làm mặt trước cho nhiều địa chỉ IP nội bộ và số cổng đích được sử dụng để quyết định dữ liệu sẽ được gửi đến máy chủ nào. Điều này cho phép các địa chỉ IP nội bộ nhận lưu lượng truy cập từ các hệ thống bên ngoài.
Một cách triển khai rất phổ biến khác là cho phép các địa chỉ IP nội bộ truy cập internet bằng địa chỉ IP bên ngoài. NAT theo dõi các kết nối từ địa chỉ nội bộ đến địa chỉ đích và chuyển tiếp lưu lượng truy cập qua các kết nối.
NAT có thể được cấu hình theo nhiều cách, nhưng trong lớp này chúng ta sẽ không đi sâu vào chi tiết hơn về phương thức này.
IPv6 - IP Phiên bản 6
IP phiên bản 6 là tiêu chuẩn mới nhất cho IP và được tạo ra để hỗ trợ nhiều địa chỉ IP hơn. Thay vì sử dụng 32 bit địa chỉ cho địa chỉ IP, 128 bit được sử dụng. Điều này cho phép có đủ địa chỉ IP trong tương lai gần trong khi IPv4 đã hết.
Địa chỉ IPv6 sử dụng 8 nhóm gồm 4 số thập lục phân. Địa chỉ IPv6 có dạng như sau: 2a00:1450:400f:80a::200e:. Lưu ý rằng nó không có 8 nhóm 4 số thập lục phân. Điều này là do địa chỉ IPv6 có thể được rút ngắn thông qua các quy tắc đơn giản:
- Số 0 đứng đầu có thể được rút ngắn
- Dấu hai chấm (::) có thể được sử dụng để biểu thị chuỗi số 0 liên tục.
Địa chỉ IPv6 mở rộng là: 2a00:1450:400f:080a:0000:0000:0000:200e.
Localhost có thể được rút gọn thành ::1 và ::.
IPv6 có mạng, tức là mạng con, giống như IPv4 có.
Tiêu đề IPv6 trông như thế này:
Chúng ta có thể thấy một tiêu đề đơn giản hơn nhiều với nhiều chỗ hơn cho địa chỉ IP.
IPv6 ngày càng được sử dụng nhiều hơn và có nhiều công cụ hỗ trợ giao thức này. Ví dụ: với ping
chúng ta có thể chuyển đổi giữa IPv4 và IPv6 bằng cờ -4 và -6 tương ứng.
Chạy ipconfig
và xem bạn có thấy địa chỉ IPv6 nào không. Nếu bạn đã bật IPv6, hãy thử ping -6 google.com
và ping -4 google.com
. Xem lệnh cho phép chúng ta sử dụng IPv4 hoặc IPv6 như thế nào?
ICMP
ICMP thường được liên kết với Ping và Traceroute. ICMP có thể được sử dụng cho những việc khác, chẳng hạn như yêu cầu một nút về thời gian của nó được gọi là yêu cầu Dấu thời gian ICMP. Yêu cầu Dấu thời gian ICMP chỉ đơn giản cho phép Bộ định tuyến yêu cầu Bộ định tuyến khác đồng bộ hóa thời gian của chúng, một thuộc tính quan trọng trong truyền thông mạng.
Một chiến thuật phổ biến của những kẻ tấn công để kiểm tra xem hệ thống có khả dụng trên mạng hay không là tiến hành Quét Ping. Mục tiêu của hoạt động này là làm cho thiết bị mục tiêu trong phạm vi mạng phản hồi các yêu cầu ping để kẻ tấn công biết rằng nó có sẵn. Cách tiếp cận này đơn giản vì nhiều hệ thống mặc định chặn các ping đến.
Theo dõi lộ trình
Theo dõi là một cách để xác định bộ định tuyến nào có liên quan đến việc gửi gói từ hệ thống A đến B. Việc biết gói của chúng ta sử dụng bộ định tuyến nào có thể hữu ích trong việc hiểu rõ hơn về mạng của chúng ta cũng như hiểu được bề mặt tấn công. Bộ định tuyến có trách nhiệm định tuyến gói đi đúng hướng. Hãy tưởng tượng điều này giống như việc bạn đang lái xe trên một con đường, nơi có biển báo đường ở các giao lộ hướng dẫn bạn đến đích. Những biển báo này tại các giao lộ tượng trưng cho các bộ định tuyến. Traceroute xác định các biển báo và giao lộ này và cho bạn biết chúng cách nhau bao xa, được đo bằng mili giây (ms).
Các tiêu đề IPv4 TTL và IPv6 Hop Limit có cùng chức năng. Mỗi bộ định tuyến định tuyến gói sẽ giảm giá trị này đi 1 và nếu giá trị đạt 0, bộ định tuyến sẽ loại bỏ gói và trả lại gói vượt quá thời gian ICMP cho người gửi.
Để thực hiện theo dõi trên Windows:
tracert google.com
Để thực hiện theo dõi trên Linux (không được cài đặt theo mặc định):
traceroute google.com
Quá trình theo dõi thông qua các công cụ này rất đơn giản:
- Hệ điều hành gửi gói google.com, giá trị TTL được đặt thành 1.
- Gói được định tuyến trên mạng và bộ định tuyến đầu tiên giảm TTL đi 1, để nó ở mức 0. Điều này khiến bộ định tuyến loại bỏ gói và gửi "Đã vượt quá thời gian ICMP" trở lại nguồn.
- Máy khách tăng TTL 1, cho phép gói được định tuyến qua một bước nhảy bổ sung.
Quá trình này được lặp lại, tăng TTL lên 1 cho đến khi đạt được đích.
DNS ("Hệ thống tên miền")
DNS được sử dụng để ánh xạ các ứng dụng, thông qua tên, tới địa chỉ IP. Ví dụ: nếu bạn muốn sử dụng trình duyệt của mình để truy cập https://google.com, trước tiên trình duyệt phải đưa ra yêu cầu tới máy chủ DNS để phân giải địa chỉ IP phía sau google.com
Các hệ thống thường được cấu hình với máy chủ tên miền chính và phụ. Các cài đặt này có thể được cấu hình thủ công hoặc được cung cấp bởi máy chủ DHCP. Điều này cho phép hệ thống máy tính của chúng tôi tiếp cận máy chủ DNS để nó giải quyết cho chúng tôi.
Máy chủ DNS sau đó chịu trách nhiệm giải quyết yêu cầu. Sau đó nó sẽ tiến hành kiểm tra bộ đệm của chính nó để xem liệu nó đã biết câu trả lời chưa. Mỗi câu trả lời DNS có thể được lưu vào bộ nhớ đệm, được lưu trữ tạm thời để tăng tốc các yêu cầu trong tương lai, đối với một TTL nhất định ("Thời gian tồn tại"). TTL thường được đặt thành vài phút, chẳng hạn như 10 phút.
Nếu máy chủ DNS không có câu trả lời trong bộ đệm thì nó sẽ tiến hành kiểm tra xem ai chịu trách nhiệm đưa ra câu trả lời. Điều này được thực hiện thông qua một quy trình đệ quy bao gồm việc yêu cầu một hệ thống phân cấp của các máy chủ tên, hệ thống này chắc chắn sẽ khiến yêu cầu DNS kết thúc tại Máy chủ tên có thẩm quyền.
Bạn có thể thử thực hiện tra cứu DNS bằng Windows hoặc Linux ngay bây giờ. Từ thiết bị đầu cuối dòng lệnh trên Windows, gõ nslookup example.com.vn
hoặc trên Linux gõ dig example.com.vn
. Bạn sẽ thấy đầu ra như thế này:
Địa chỉ IP của example.com.vn có thể được nhìn thấy trong ;; PHẦN ĐÁP ÁN. Khi ảnh chụp màn hình này được chụp, địa chỉ IP phía sau tên example.com.vn là 66.29.212.110 .
Máy chủ tên có thẩm quyền là máy chủ DNS chịu trách nhiệm đưa ra câu trả lời dứt khoát cho một câu hỏi. Ví dụ: địa chỉ IP của google.com sẽ được trả lời bởi máy chủ tên có thẩm quyền của họ và chúng ta có thể thấy máy chủ này bằng cách truy vấn nó:
Tìm máy chủ tên có thẩm quyền trên Windows:
nslookup -type=SOA google.com
Tìm máy chủ tên có thẩm quyền trên Linux:
dig -t SOA google.com
DHCP ("Giao thức cấu hình máy chủ động")
Đúng như tên gọi, giao thức DHCP cho phép mọi hệ thống trên mạng tiếp cận với máy chủ và nhận cấu hình. Cấu hình như vậy thường bao hàm việc nhận địa chỉ IP và phạm vi mạng, cổng mặc định và máy chủ DNS.
DHCP cho phép quản lý dễ dàng các máy khách tham gia và rời khỏi mạng.
Nếu bạn muốn biết liệu hiện tại mình có đang sử dụng DHCP hay không, bạn có thể nhập ipconfig /all
trên hệ thống Windows và tìm "DHCP Enabled: Yes" ở đầu ra. Máy tính của bạn có thể có nhiều giao diện mạng
VPN ("Mạng riêng ảo")
VPN là một hệ thống cho phép hai hệ thống thiết lập các hình thức mã hóa để liên lạc, cho phép lưu lượng truy cập mạng được mã hóa trong quá trình truyền tải. Nhiều VPN là kiến trúc máy khách đến máy chủ, cho phép máy khách truy cập nhiều dịch vụ đằng sau VPN. VPN do nơi làm việc của bạn lưu trữ cũng có khả năng cung cấp quyền truy cập vào các tài nguyên nếu không thì chỉ có thể truy cập được từ bên trong.
Một số dịch vụ VPN được thiết kế để đảm bảo quyền riêng tư của người dùng và mã hóa dữ liệu khi truyền. Các dịch vụ này cho phép người dùng gửi dữ liệu mạng qua VPN, giả mạo địa chỉ IP của người dùng một cách hiệu quả khi điều hướng Internet.
Nhìn chung, cách tốt nhất là sử dụng VPN để bảo mật thông tin liên lạc trên mạng của bạn, tuy nhiên chúng ta không nên sử dụng bất kỳ loại dịch vụ VPN nào. Các dịch vụ VPN miễn phí đôi khi có thể độc hại, kiểm tra, đọc và lưu trữ dữ liệu nhạy cảm của bạn.