Kiến thức cơ bản về Mạng máy tính | Kiến thức An Ninh Mạng
Trước khi bắt đầu khắc phục các sự cố liên quan đến an ninh mạng, bạn phải có kiến thức cơ bản về mạng máy tính. Nội dung website này không chuyên sâu kiến thức về mạng, thay vào đó trong khuôn khổ chương này, chúng tôi sẽ nhắc và tóm lượt lại một số kiến thức chung về mạng máy tính.
Bài viết này sẽ tóm lượt nhanh một số giao thức thông dụng và các khái niệm về mạng liên quan đến an ninh. Nếu có khái niệm nào bạn thấy không nắm rõ, các bạn nên tra cứu thêm. Bài viết này còn để cập đến những loại tấn công phổ biến đến các giao thức hoặc sử dụng các giao thức để giúp bảo vệ các cuộc tấn công. Chi tiết các cách thức tấn công sẽ có ở chương 7 “Phòng thủ trước những cuộc tấn công nâng cao“
Nội Dung Chính
Các giao thức Mạng cơ bản
Các giao thức mạng cung cấp những quy tắc cần thiết để các máy tính giao tiếp được với nhau thông qua mạng. Một số giao thức TCP/IP (Transmission Control Protocol/Internet Protocol), như giao thức TCP, và giao thức IP cung cấp sự kết nối cơ bản. Những giao thức khác như HTTP (Hypertext Transfer Protocol) và SMTP hỗ trợ một số loại dữ liệu lưu thông.
TCP/IP không phải là một giao thức đơn, mà là mộ bộ hoàn chỉnh các giao thức. Các giao thức sử dụng các cổng (port) khác nhau, có rất nhiều các cổng như vậy. Trong bài sẽ trình bày các cổng quan trọng, thường được sử dụng nhiều. Dưới đây liệt kê các giao thức mạng cơ bản:
- TCP: Transmission Control Protocol giao thức điều khiển truyền dữ liệu, cung cấp lưu thông có kêt nối đáng tin cậy và đúng thứ tự theo dạng các gói tin. TCP sử dụng cách gọi là bắt tay 3 lần. Xem hình dưới, Để bắt đầu mt phiên làm việc TCP, máy con sẽ gửi đến đến 1 gói tin SYN đến máy chủ. Máy chủ phản hồi với 1 gói tin SYN/ACK. Và mấy con hoàn thành thành phần thứ 3 của việc bắt tay với một gói tin ACK để thiết lập kết nối.
- UDP: User Datagram Protocol là một trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gửi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.
- IP: Giao thức IP xác định máy tính chủ trong mạng lưới TCP/IP và phân phối lưu thông từ một máy chủ tới một máy khác sử dụng địa chỉ IP. IPv4 sử dụng 32 bit lưu trữ địa chỉ và được viết dưới dạng chữ số hệ thập phân có các dấu chấm ở giữa như là 192.168.90.30. IPv6 sử dụng 128 bit để lưu trữ địa chỉ và sử dụng mã thập lục phân để hiển thị ví dụ như: FE80:0000:0000:0000:20D4:3FF7:003F:DE62
- ICMP: Giao thức tin nhắn điều khiển internet được sử dụng để kiểm tra tầng kết nối cơ bản và bao gồm những công cụ như là ping, pathping và tracert. Nhiều tấn công DoS sử dụng ICMP. Vì ICMP được sử dụng quá nhiều trong các đợt tấn công nên thường người ta chặn ICMP mức tường lửa và bộ định tuyến, tức là vô hiệu hóa phản hồi cho lệnh ping. Chặn ICMP giúp ngăn các kẻ tấn công phát hiện ra những thiết bị trong mạng lưới. Ví dụ như một lần quét mạng có thể để gửi đi một lệnh ping đến mọi địa chỉ IP trong mạng. Những thiết bị nào phản hồi lại thì xác định rằng chúng đang hoạt động và có một địa chỉ IP.
- ARP: Address Resolution Protocol – Giao thức phân giải địa chỉ phân giải các địa chỉ IPv4 sang địa chỉ MAC (Media Access Control – Điều khiển phương tiện truy cập). MAC còn được gọi là địa chỉ vật lý, địa chỉ phần cứng. TCP/IP Sử dụng địa chỉ IP để đưa một gói tin tới máy đích, Một khi gói tin dó tới mạng đích nó sử dụng địa chỉ MAC để có thể đến được đúng máy đích. nói cách khác, ARP được gọi đến khi gói tin đến mạng con (subnet) đích. Kiểu tấn công Đầu độc ARP sử dụng các gói tin ARP đưa máy con địa chỉ vật lý sai và kẻ tấn công sử dụng nó điều hướng hoặc ngắt luồng lưu thông mạng.
- NDP: Giao thức Phát hiện Hàng xóm (Neighbor Discovery Protocol) thực hiện một số chức năng trên IPv6. Các chức năng đó tương tự như IPv4 của ARP. Nó cũng thực hiện cài đặt tự động cho các địa chỉ IPv6 của thiết bị và phát hiện các thiết bị có IPv6 khác trong cùng mạng như là địa chỉ của cổng mặc định của mạng.
Cài đặt Các giao thức
Hệ thống mạng không thể tự động hỗ trợ tất cả các giao thức có được . Thay vào đó các chuyên gia công nghệ thông tin xác định sự cần thiết dựa trên mục tiêu của tổ chức và kích hoạt giao thức tốt nhất để phù hợp với yêu cầu.
Trường hợp Sử dụng Giọng nói và Video
Các tổ chức thường cho chuyển các tập tin âm thanh và hình ảnh trong mạng và có một số giao thức làm việc này tốt hơn với âm thanh và hình ảnh so với với những giao thức khác. UDP là giao thức thường được sử dụng thay thế cho TCP vì UDP là giao thức cấp dưới hơn với và sử dụng tôt hơn cho âm thanh và hình ảnh.
Giao thức RTP (Real time Transport Protocol – Giao thức Truyền thời gian thực) truyền âm thanh và video qua hệ thống mạng IP. Điều này bao gồm giao tiếp VoIP (Voice over Internet Protocol – Giao thức Truyền âm thanh qua internet), truyền tín hiệu truyền thông, họp video và các thiết bị sử dụng các tính năng bấm để nói thông qua web. Tuy nhiên, các tổ chức thường muốn đường truyền được bảo mật hơn. Họ sẽ sử dụng thêm giao thức SRTP – Secure Real-Time Transport Protocol cung cấp thêm mã hóa, xác thực tin nhắn và toàn vẹn cho RTP.
SRTP giúp bảo vệ tính bảo mật dữ liệu từ những tấn công trong khi vẫn bảo đảm tính toàn vẹn của dư liệu trong khi truyền. Điều này cung cấp bảo vệ khỏi tấn công Replay. Trong tấn công Replay, kẻ tấn công chiếm lấy dữ liệu gửi đi giữa 2 thực thể, thay đổi nó và sau đó giả danh một trong 2 thực thể bằng cách gửi lại dữ liệu. SRTP có thể được sử dụng cho cả kiểu truyền đơn phương (như là 1 người gọi điện cho người khác) và cả kiểu truyền đa phương như là một người gửi lưu lượng dữ liệu đến nhiều người nhận một lúc.
Truyền Tập tin
Dữ liệu trong khi truyền là bất kỳ lưu lượng lượng thông tin nào được gửi qua mạng. Khi dữ liệu được truyền đi dạng văn bản thuần túy, những kẻ tấn công có thể sử dụng một chương trình phân tích giao thức để để ăn cắp và đọc nó. Có thể bảo vệ tính bảo mật của thông tin có thể xác định cá nhân (PII Personal Identifiable Information) và những thông tin nhạy cảm khác trong khi truyền bằng cách mã hóa nó. Lưu ý rằng ta có thể mã hóa dữ liệu khi lưu trữ, tức là dữ liệu được lưu trữ trên bất kỳ loại phương tiện nào. chương 10
Một số tình huống liên quan đến truyền tải tập tin như là chuyển dữ liệu thông qua mạng bảo đảm tính bảo mật khi truyền tải dữ liệu qua mạng, bảo đảm các quản trị viên kết nối với những máy chủ sử dụng những đường truyền bảo mật. Danh sách dưới đây xác định những giao thức cơ bản được sử dụng để truyền dữ liệu qua mạng:
- FTP: File Transfer Protocol – Giao thức truyền tập tin, tải lên hoặc tải xuống từ máy chủ FTP những tập tin có dung lượng lớn. Mặc định, FTP truyền dữ liệu ở dạng văn bản thuần, làm cho rất dễ bị mất dữ liệu với chương trình phân tích giao thức. FTP ở dạng chủ động sử dụng TCP, cổng 21 để điều khiển các tín hiện và công 20 để dành cho dữ liệu. FTP ở dạng bị động (PASV) sử dụng TCP cổng 21 điều khiển tín hiệu nhưng nó sử dụng TCP và cổng ngẫu nhiên cho dữ liệu. Nếu dữ liệu lưu thông FTP đi qua một tường lửa thì cổng ngẫu nhiên này thưỡng sẽ bị chặn, vì vậy tốt nhất là vô hiệ hóa PASV FTP trên máy con.
- TFTP: Trivial File Transfer Protocol sử dụng UDP cổng 69 và nó được sử dụng để truyền tập tin dung lượng nhỏ như là khi giao tiếp với những thiết bị mạng. Rất nhiều tấn công đã từng sử dụng TFTP nhưng nó không còn là một giao thức cần thiết trên hầu hết các hệ thống mạng. Vì thế các quản trị viên thường vô hiệu hóa nó.
Danh sách tiếp đây xác định một số giao thức mã hóa được sử dụng để mã hóa dữ liệu trong khi truyền:
- SSH: Secure Shell mã hóa dữ liệu lưu thông trong khi truyền và có thể được sử dụng để mã hóa những giao thức khác như FTP. Quản trị viên Linux thường sử dụng phần mềm Telnet để quản trị hệ thống từ xa, nhưng điều này không nên bởi vì Telnet gửi dữ liệu qua mạng với dạng văn bản thuần túy. Thay vào đó các quản trị viên nên sử dụng SSH nhiều hơn. SCP – Secure Copy dựa trên SSH và được sử dụng để copy tập tin đã được mã hóa qua mạng. SSH còn có thể mã hóa Danh sách điều khiển truy cập được dùng trong Linux để lọc dữ liệu lưu thông. Khi SSH mã hóa dữ liệu lưu thông, nó sử dụng TCP cồng 22.
- SSL: Secure Sockets Layer – là phương thức chính được sử dụng để bảo mật cho HTTP. SSL còn có thể mã hóa những loại dư liệu lưu thông khác như SMTP và LDAP. Tuy nhiên giao thức này đã bị bẻ khóa, nên không còn được khuyên dùng.
- TLS: Transport Layer Security – Bảo mật tầng Truyền dữ liệu là giao thức được thiết kế để thay thế SSL và khuyên nên dùng thay cho SSL. Thêm vào đó có nhiều giao thức hỗ trợ TLS sử dụng STARTTLS. STATTLS nhìn như là từ viết tắt của một cụm từ nhưng không phải. Nó là lệnh được sử dụng để nâng cấp một kết nối chưa được giải mã lên kết nối được mã hóa trên cùng cổng.
- IPSec: Internet Protocol security – Giao thức internet bảo mật được sử dụng để mã hóa dữ liệu lưu thông qua giao thức IP. IPSec dùng riêng cho IPv6 nhưng nó cũng hoạt động được với IPv4. IPsec gói gọn và mã hóa toàn bội gói tin IP và sử dụng dạng hầm để bảo vệ dữ liệu lưu thông của mạng riêng tư ảo. IPsec bao gồm 2 thành phần chính: Authentication Header (AH) Đoạn đầu xác thực, được xác định bởi giao thức ID số 51 và Encapsulating Security Payload ESP – Đóng gói toàn tải An toàn được xác định bởi giao thức có ID số 50. Nó sử dụng Internet Key Exchange IKE, Trao đổi khóa trên Internet, thông qua UDP cổng 500 để tạo một sự kết hợ an toàn cho VPN, mạng riêng tư ảo. Xem tiếp thêm về IPSec trong chương 4.
- SFTP Secure File Transfer Protocol là thiết đặt bảo mật cho FTP. Nó là một phần mở rộng của SSH sử dụng SSH để truyền tập tin ở dạng đã được mã hóa. SFTP truyền tập tin sử dụng TCP cổng 22.
- FTPS: File Transfer Protocol Secure là phần mở rộng của FTP và sử dụng TLS để mã hóa dữ liệu lưu thông của FTP. Một số cài đặt của FTPS sử dụng TCP cổng 989 và 990. Tuy nhiên TLS cũng có thể mã hóa dữ liệu lưu thông thông qua các cổng của FTP 20 và 21. Lưu ý sự khác nhau của SFTP và FTPS là SFTP sử dụng SSH và FTPS sử dụng TLS.
Email và Web
Các tình huống thực tế sử dụng Email là nhận vào gửi email, nhận và gửi email an toàn, và quản lý thư mục email . Còn đối với Web thiết đặt cho các nhân viên thông thường là cung cấp truy cập vào internet và cung cấp truy cập an toàn vào internet. Rất nhiều tổ chức có máy chủ chứa web và thường thì sử dụng các máy chủ web này cung cấp khả năng duyệt nội dung cho khách hàng bên ngoài.
Rất nhiều các giao thức hỗ trợ sử dụng STARTTLS. Thay vì sử dụng 1 cổng để truyền dữ liệu dạng văn bản thuần, và một công thứ hai để truyền dữ liệu mã hóa, lệnh STARTTLS cho phép giao thức sử dụng cùng cổng cho cả 2 việc. Một số giao thức được sử dụng cho email và web:
- SMTP: Simple Mail Transfer Protocol truyền email giữa các máy con và máy chủ SMTP. SMTP sử dụng TCP cổng 25. SMTP còn sử dụng cổng 465 với SSL và cổng 587 với TLS. Tuy nhiên, luôn lưu ý sử dụng SMTP với STARTTLS để khởi tạo một kết nối an toàn.
- POP3 và POP Bảo mật: Post Office Protocol v3 – Giao thức Bưu điện v3 truyền email từ máy chủ đến máy con. POP3 sử dụng TCP cổng 110. POP3 Bảo mật mã hóa tín hiệu truyền với SSL hoặc TLS và có thể sử dụng TCP cổng 995. Tuy nhiên STARTTLS khuyến cáo nên dùng để tạo kết nối an toàn trên cổng 110
- IMAP4 và IMAP4 bảo mật: Internet Message Access Protocol v4 – Giao thức truy cập tin nhắn trên Internet v4 – được sử dụng để lưu trữ email trên một máy chủ email. IMAP4 cho phép một người dùng tổ chức và quản lý email theo thư mục trên máy chủ. Ví dụ như Google Mail sử dụng IMAP4. IMAP4 sử dụng TCP cổng 143. IMAP4 với SSL hoặc TLS có thể sử dụng TCP cổng 993, nhưng STARTTLS nên được dùng với chung cổng 143.
- HTTP: Hypertext Transfer Protocol truyền dữ liệu lưu thông trên internet và trong intranet. Các máy chủ Web sử dụng HTTP để truyền nội dung các trang web đến trình duyệt của máy con. HTML là ngôn ngữ phổ biến để hiển thị nội dung trang web. HTTP sử dụng TCP cổng 80.
- HTTPS: Hypertext Transfer Protocol Secure mã hóa dữ liệu lưu thông để bảo đảm nó được an toàn trong khi truyền dữ liệu. Các trình duyệt thường ra dấu hiệu bằng biểu tượng ổ khóa nhỏ để thể hiện kết nối có HTTPS. HTTPS được mã hóa với SSL hoặc TLS và sử dụng TCP cổng 443.
Các Trường hợp sử dụng dịch vụ Thư mục
Các hệ điều hành mạng thường sử dụng dịch vụ thư mục để tinh giản quản lý và thiết lập bảo mật. Trong thực tế phải tăng cường an toan cho truy cập vào hệ thống mạng. Ví dụ, nhiều tổ chức sử dụng Active Directory Domain Services (AD AS). AD AS cung cấp các phương tiện để quản trị viên tạo tài khoản người dùng cho mỗi người dùng được phép truy cập và tạo các đối tượng máy trên AD cho những máy tính được phép sử dụng. Các quản trị viên sau đó sử dụng nhiều các phương thức khác nhau trên dịch vụ thư mục để áp đặt định danh, xác thực, và phân quyền.
Các phương thức đó đã nhắc trong chương trước: So sánh các Dịch Vụ Xác thực
- Kerberos
- LDAP
- Chính sách Nhóm Group Policy
Truy cập từ xa
Rất có nhiều trường hợp người dùng phải truy cập vào hệ thống từ địa điểm cách xa máy cần truy cập. Thực tế thường có các trường hợp như quản trị hệ thống từ xa và truy cập máy bàn từ xa. Ví dụ như một phòng máy chủ có 100 máy, bao gồm cả máy điều khiển miền. Nếu quản trị viên cần tạo một tài khoản người dùng hoặc thiết đặt một thay đổi trên Các đối tượng chính sách nhóm GPO, hiếm khi lại đi đến phòng máy chủ. Thay vào đó họ sẽ truy cập vào máy chủ đó từ xa và thực hiện các thay đổi đó trên máy tính trên bàn của họ.
Các quản trị viên thường thiết lặp SSH để thõa mãn trường hợp hô trợ truy cập từ xa. Như là các quản trị viên Linux sử dụng netcat khi kết nối với hệ thống từ xa để quản trị, và bảo mật kết nối này với SSH. Xem thêm chương 8 để nắm thêm về netcat.
Quản trị viên và các máy con thường sử dụng Remote Desktop Protocol (RDP – Giao thức Máy tính từ xa) để kết nối vào những hệ thống khác tại những địa điểm khác. Microsoft sử dụng RDP trong các giải pháp khác nhau như là Remote Desktop Service – Dịch vụ máy tính từ xa và Remote Assistance – Hỗ trợ từ xa. RDP sử dụng một trong các cổng TCP 3389 hoặc UDP 3389, TCP 3389 được sử dụng phổ biến hơn. Một trường hợp mà người dùng không thể truy cập vào máy tính từ xa là cổng 3389 bị chặn trên tường lửa của hệ thống mạng hoặc trên chính máy cần truy cập. Một các khác để hỗ trợ truy cập từ xa là sử dụng VPN – Chi tiết hơn sẽ ở chương 4.
Đồng bộ hóa Thời gian
Có rất nhiều hệ thống khác nhau được sử dụng trong tổ chức. Để quản lý và theo dõi các hệ thống này hiệu quả cần phải có sự đồng bộ chính xác về thời gian. Kerberos yêu cầu tấc cả các hệ thống liên quan phải được đồng bộ hóa và sai số là 5 phút.
Trong miền Microsoft: một máy điều khiển miền định kỳ sẽ sử dụng dịch vụ thời gian của Windows để định vị một máy chủ Internet đáng tin cậy chạy NTP – Network Time Protocol – Giao thức thời gian mạng. NTP là giao thức rất phổ biến cho đồng bộ hóa và cho phép các hệ thống cùng thời gian với sai số là chục mili giây. Các điều khiển miền khác trong hệ thống mạng định kỳ đồng bộ thời gian với máy điều khiển miền đầu tiên. Cuối cùng tấc cả các máy trong miền đồng bộ thời gian với một trong những máy điều khiển miền. Quy trình này bảo đảm tấc cả các máy tính có thời gian chính xác.
Simple NTP- giao thức NTP giản đơn còn có thể được sử dụng cho đồng bộ thời gian. Tuy nhiên, NTP sử dụng nhiều thuật toán phức tạp và nhiều truy vấn đến nhiều máy chủ thời gian khác nhau để xác định thời gian chính xác nhất. SNTP không sử dụng những thuật toán này vì thế nó có thể không chính xác bằng NTP.
Phân bổ địa chỉ mạng
Phân bổ địa chỉ mạng nghĩa là phân bổ địa chỉ IP đến các máy tính trong hệ thống mạng. Có thể làm bằng tay nhưng hầu hết các hệ thống mạng sử dụng DHCP – Dynamic Host Configuration Protocol – Giao thức Thiết lập máy tính động- để gán địa chỉ IP đến các máy tình trong mạng tự động. DHCP còn gán những thông tin về TCP khác như là mặt nạ mạng phụ – subnet masks, cổng máy tính mặc định, địa chỉ máy chủ DNS,…
IPv4
Ipv4 sử dụng địa chỉ IP 32bit với đinh dạng gồm 4 nhóm kí tự thập phân và cách bởi dấu chấm. Ví dụ 192.168.1.5 năm là 4 nhóm số thập phân được phân cách với nhau bởi dấu chấm. Ngoài ra còn có thể hiện IP v4 dưới dạng số nhị phân.
Tất cả địa chỉ IP internet đều là địa chỉ IP công cộng, trong nội bộ hệ thống mạng thì sử dụng địa chỉ IP riêng. Các địa chỉ IP công cộng thường được quản lý chặt chẽ vì thế bạn không thể nào sử dụng bất kỳ địa chỉ IP công cộng nào cũng được. Thay vào đó bạn phải mua hoặc thuê nó. ISP – Internet Service Provides – Các nhà cung cấp dịch vụ internet mua một dải các địa chỉ IP và phân phối IP đó cho khách hàng. Nếu bạn truy cập Internet từ nhà mà bạn sẽ nhận được một địa chỉ IP công cộng được cung cấp bởi nhà cung cấp dịch vụ internet ISP.
Các bộ định tuyến trên Internet bao gồm nhiều quy tắc để bỏ qua bất kỳ dữ liệu lưu thông mà đến từ hoặc đi đến một địa chỉ IP nội bộ, vì thế bạn không thể phân bổ địa chỉ IP nội bộ trên mạng internet. Danh sách các giải IP nội bộ bộ bao gồm
- 10.x.y.z: bao gồm IP từ 10.0.0.0 đến 10.255.255.255
- 172.16.y.z: bao gồm IP từ 172.16.0.0 đến 172.16.255.255
- 192.168.y.z: bao gồm IP từ 192.168.255.255
Trên đây là các IP nội bộ sẽ phân bổ trong mạng riêng.
IPV6
Số lượng địa chỉ IP ban đầu giường như là vô hạn. Cơ quan phân bổ những con số trên internet (Internet Assigned Number Authority) đã gán nhóm địa chỉ IP cuối cùng vào tháng 2 năm 2011. Để chuẩn bị, Lực lượng kỹ sư internet (Internet Engeneering Task Force) đã tạo ra IPv6 mà có thể cung cấp một lượng rất là lớn địa chỉ IP, lớn hơn rất nhiều so với IPv4.
IPv6 sử dụng 128 bit Lưu trữ địa chỉ IP và dưới dạng số thập lục phân ví dụ fe80:0000:0000:0000:02d4:3ff7:003f:de62. IPv6 bao gồm 8 nhóm chứa 4 ký tự thập lục phân và phân cách nhau bằng dấu :. Mỗi ký tự thập lục phân là 4 bits.
Thay cho IP nội bộ, IP v6 sử dụng địa chỉ nội bộ độc nhất. Chúng chỉ được phân bổ trong mạng nội bộ và không gán cho các hệ thống trên internet. Các địa chỉ nội bộ độc nhất bắt đầu với fc00.
Phân giải tên miền
Mục đích chính của Hệ thống Tên Miền (Domain Name System – DNS) là để phân giải tên miền. DNS phân giải tên máy chủ sang địa chỉ IP. Các hệ thống truy vấn thường xuyên DNS, do đó thường người dùng không thấy được. Như khi ta vào trình duyệt gõ một địa chỉ trang web hoặc click vào 1 liên kết, hệ thống sẽ truy vấn DNS để lấy địa chỉ IP. DNS sử dụng TCP cổng 53.
Đôi khi máy chủ DNS mà ta gửi yêu cầu tới biết câu trả lời và sẽ hồi âm lại ngay. Nhưng trong trường hợp khác, nó sẽ truy vấn thêm những máy chủ DNS khác để có được câu trả lời. Khi đó nó sẽ lưu lại câu trả lời từ máy chủ DNS khác vào bộ đệm để mà khỏi phải truy vấn lại lần nữa. Tương tự khi máy con nhận câu trả lời từ máy chủ DNS, nó sẽ lưu lại câu trả lời vào bộ nhớ đệm của nó và sau đó sẽ không lặp lại câu truy vấn đó nữa.
Máy chủ DNS lưu trữ dữ liệu vào cái gọi là khu vực, giống như cơ sở dữ liệu. Vùng bao gồm nhiều bản ghi và có các loại bản ghi sau:
- A: Gọi là bản ghi máy chủ. Bàn ghi này nắm giữ thông tin máy chủ và địa chỉ IPv4 và nó được sử dụng rất phổ biến trong máy chủ DNS. Máy con truy vấn DNS với 1 tên sử dụng yêu cầu tìm kiếm chuyển tiếp, và DNS phản hồi với địa chỉ IPv4 từ bản ghi này.
- AAAA: bản ghi này nắm giữ tên máy chủ và IPv6. Nó tương tự như bản ghi A nhưng lưu trữ IPv6.
- PTR: còn gọi là bản ghi con trỏ. Nó đối lập với bản ghi A. Thay vì một máy con truy vấn DNS với tên, máy con truy vấn tới DNS với địa chỉ IP. Khi được thiết lập từ trước, máy chủ DNS sẽ trả về tên từ bản ghi này. Bản ghi này là không bắt buộc nên thường tìm kiếm ngược không cho ra kết quả.
- MX: còn gọi là trao đổi email. Một bản ghi MX xác định một máy chủ mail để sử dụng cho email. Bản ghi MS được liên kết với bản ghi A hoặc AAAA của máy chủ email.
- CNAME: Tên tiêu chuẩn, hay tên hiệu, cho phép một hệ thống đơn có thể có nhiều tên kết hợp với một địa chỉ IP. Ví dụ như một máy chủ tên Maychu1 trong miền bbm.com có thể có tên hiện là FileServer1 trong cùng một miền.
- SOA: Start of Authority – bắt đầu quyền, bao gồm thông tin về vùng DNS và một số thiết lập. Ví dụ như TTL (Time to live – thời gian sống) cho bản ghi DNS. Máy con DNS sử dụng TTL để xác định thời gian lưu trong bộ nhơ đệm kết quả DNS. TTL được tính bằng giây và thấp hơn thời gian làm cho máy con làm mới bản ghi thông thường.
Hầu hết các máy chủ DNS trên Internet chạy phần mềm Berkeley Internet Name Domain (BIND) và chạu trên Unix hay Linux. Các mạng nội bộ có thể sử dụng BIND, nhưng trong mạng Microsoft, máy chủ DNS thường sử dụng phần mềm DNS của Microsoft.
Đôi khi các máy chủ DNS chia sẽ thông tin với nhau trong một tiến trình gọi là chuyển giao vùng, Trong nhiều trường hợp, chuyển giao vùng chỉ bao gồm nâng cấp một số ít các bản ghi. Tuy nhiên một số chuyển giao đó là bao gồm tấc cả bản ghi có trong vùng. Máy chủ DNS sử dụng TCP cổng 53 để chuyển giao vùng. Ngược lại, truy vấn phân giải tên sử dụng UDP cổng 53.
DNSSEC
Một rủi ro lớn liên quan đến DNS là Đầu độc DNS, hay gọi là Đầu độc bộ nhớ đệm DNS. Khi thành công, kẻ tấn công thay đổi bộ nhớ đệm DNS với địa chỉ IP ma. Kẻ tấn công muốn đưa người dùng đến một web chứa mã độc mỗi lần họ truy cập vào msn.com. Có một cách là thay đổi bản ghi A hoặc AAAA trong bộ nhớ đệm DNS cho msn.com. Thay vì hệ thống đưa người dùng địa chỉ thật của msn.com thì nó lại gủi người dùng địa chỉ IP của trang web độc haij.
Một các chính để ngăn đầu độc DNS là sử dụng DNSSEC Domain Name System Security Extensions. DNSSEC là một bộ các bản mở rộng cho DNS cung cấp xác minh các phản hồi DNS. Nó thêm một chữ ký điện tử vào mỗi bản ghi để cung cấp toàn vẹn dữ liệu. Nếu máy chủ DNS nhận một phản hồi có DNSSEC với các bạn ghi đã có chữ ký điện tử, máy chủ DNS sẽ biết được phản hồi đó là hợp lệ.
Nslookup và Dig
Kỹ thuật viên sử dụng lệnh nslookup để dò tìm các vấn đề liên quan đến DNS. Sử dụng nslookup có thể xác minh được DNS đã phân giải tên máy chủ hay FQDN (Fully Qualified Domain Names – Tên miền Đầy đủ Hợp lệ) sang đúng địa chỉ IP. Một tên miền đầy đủ hợp lệ bao gồm tên máy chủ và tên miền.
Lệnh Dig đã được thay thế cho lên nslookup trên Linux. Đôi khi nó còn được sử dụng với chức năng dọ thám thông tin miền. Bạn có thể sử dụng dig để truy vấn các máy chủ DNS nhằm xác minh được máy chủ DNS đó có thể tiếp cận được và xác minh máy chủ DNS có thể phân giải tên ra địa chỉ IP. Ví dụ, nhưng công cụ này có thể xác minh máy chủ DNS có một bản ghi máy con mà gán ghép một cái tên máy chủ với một địa chỉ UPcho một máy chủ web. Dig xác nhận chức năng DNS bằng cách truy vẫn DNS, xác minh một bản ghi tồn tại và xác mình rằng máy chủ DNS có phản hồi.
Một vài phiên bản của cả 2 lệnh có hỗ trợ dấu @ để xác định một máy chủ DNS mà bạn muốn truy vấn. Rất hữu ích nếu bạn muốn lấy mọi bản ghi từ một vùng DNS. Khi làm vậy bạn sẽ sử dụng bất kì bàn ghi nào hay bàn ghi axfr (viết tắt của transfer). Tuy nhiên hầu hết máy chủ DNS được thiệt lập để chặn những truy vấn loại này.
Dịch vụ Hội phí
Dịch vụ hội phí ám chỉ một mô hình kinh doanh dựa trên thu phí định kỳ. Ví dụ như thay vì bán chương trình phần mềm cho người dùng, nhiều nhà cung cấp chuyển sang mô hình thu phí để người dùng trả tiên theo kỳ.
Vài năm trước, mọi người thường mua Microsoft Office để truy cập vào phần mềm Word, Excel, Outlook,… Tuy nhiên ngày nay, các tổ chức thường mua phí hàng tháng hoặc hành năm để truy cập vào Office 365. Điều này giúp họ luôn có được phiên bản hiện tại của các sản phẩm Microsoft Office cùng với nhiều tính năng khác như lưu trữ trên mây. Giao thức sử dụng cho dịch vụ hội phí này là đa dạng phụ thuộc vào dịch vụ được sử dụng. Tuy nhiên thường các dịch vụ này đều sử dụng HTTPS để bảo mật kết nối. Các máy chủ sơ sở dữ liệu bảo trì cơ sở dữ liệu của khách hàng cùng với những sản phẩm họ thuê. Kết nối giữa máy chủ web và máy chủ cơ sở dữ liệu phải được an toàn và thường dùng HTTOS hoặc TLS. Khi gần đến hết kỳ dịch vụ, hệ thống sẽ gửi thông báo cho người dùng thông qua SMTP.
Tìm hiểu và xác định các cổng
Cổng là các con số hệ thập phân được sử dụng bởi TCP/IP để xác định dịch vụ hay chương trình nào sẽ xử lý dữ liệu mà hệ thông nhận được. Cả TCP và UDP đều cỏ thể sử dụng số cổng là 65,536 – từ 0 đến 65,535. Các quản trị viên mở các cổng trên tường lửa và bộ định tuyến để cho phép các giao thức liên quan vào hoặc ra khỏi mạng. Ví dụ HTTP sử dụng cổng 80 và quản trị viên mở cổng 80 này thì dữ liệu lưu thông mới được phép vào hoặc ra khỏi mạng.
Thêm vào đó, các quản trị viên vô hiệu hóa các cổng và dịch vụ không cần thiết để tăng tính an toàn cho mạng. Những cổng và dịch vụ này được kết hợp với các giao thức cụ thể, và nếu vô hiệu hóa chúng, thì nguy cơ bị tấn công vào những cổng, giao thức, dịch vụ này sẽ không còn.
Cơ quan ban hành các con số trên Internet (IANA – Internet Assigned Numbers Authority) có duy trì một danh sách các cổng được gán với giao thức chính thức tại địa chỉ này:
http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
Cơ quan này chia các cổng thành 3 dải số:
- Từ 0 đến 1023, Dãi Hay sử dụng.
- Từ 1024 đến 49.151: Dãi được đăng ký, IANA đăng ký những cổng này cho các công ty để tạo thuận tiện cho cộng đồng Công nghệ thông tin. Một công ty có thể đăng ý một cổng thích hợp để sử dụng, hoặc nhiều công ty cũng có thể sử dụng chung một cổng cho một chuẩn nhất định. Ví dụ như Microsoft SQL Server sử dụng cổng 1433 cho máy chủ cơ sở dữ liệu, Giao thức Hầm Tầng 2 (L2TP – Level 2 Tunneling Protocol) sử dụng cổng 1701 và Point-to-Point Tunneling Protocol PPTP Giao thức Hầm Điểm đến Điểm dử dụng cổng 1723.
- Các cổng động và cổng nội bộ: 49.152 – 65.535, những cổng này luôn sẵn có để cho bất kỳ chương trình nào sử dụng. Các chương trình thường sử dụng những cổng này để tạm gắn kết một chương trình vào một cổng. Những cổng tạm thời được gắn kêt này thường được gọi là cổng sớm tàn, để biểu thị vòng đời ngắn của chúng.
Mặc dù Hầu hết tấc cả các cổng đều có thể bị tấn công, nhưng hầu hết các cuộc tấn công đều nhắm vào các cổng Hay sử dụng. Chương trình Quét cổng thường đơn giản kiểm tra xem nếu các cổng trong nhóm Hay sử dụng có mở hay không. Vì nếu cổng đó ở thì giao thức đó đang chạy. Ví dụ nếu cồng 25 đang mở thì giao thức SMTP đang chạy trên hệ thống.
Quản trị mạng thường làm việc với bộ định tuyến và tường lửa có thể dễ dàng cho bạn biết được giao thức nào đi kèm với cổng trong nhóm hay sử dụng nào như là 20, 21, 22, 23, 25, 80, 443. Lý do là vì họ dùng những cổng này để chặn lưu thông dữ liệu.
Nếu chặn cổng 25 trên bộ định tuyến thì, tấc cả dữ liệu lưu thông đến hoặc đi trên cổng 25 sẽ bị bộ định tuyến chặn lại, thay vì chuyển tiếp.
Kết hợp Địa chỉ IP và Cổng
Ngay lúc này, máy tính đang có thể nhận hàng tá gói tin. Mỗi gói tin bao gồm địa chỉ IP đích và cổng đích. TCP/IP sử dụng địa chỉ IP để đưa dữ liệu đến đúng máy tính. Máy tính sau đỏ sử dụng cổng để đưa gói tin đến đúng dịch vụ, giao thức hay chương trình mà có thể xử lý nó.
Ví dụ, nếu gói tin có cổng đích là 80, hệ thống sẽ chuyển gói tin đó đến tiến trình xử lý HTTP. Chẳng ích gì khi chuyển gói tin SMTP đến trình xử lý tiến trình HTTP.
Cổng trên máy chủ
Có nhiều giao thức khác nhau được kích hoạt và chạy trên một máy chủ. Những giao thức này sử dụng các cổng hay sử dụng hoặc các cổng đã đăng ký, như là cổng 22 cho SSH, 25 cho SMTP, 80 cho HTTP, 443 cho HTTPS,… Khi hệ thống nhận được dữ liệu từ lưu thông với cổng đích là 80, hệ thống biết được sẽ gửi dữ liệu đó đến dịch vụ xử lý HTTP.
Các phần mềm phổ biến xử lý cổng 80 cho máy chủ Web là Apache và IIS và Nginx,… Khi có yêu cầu truy cập cổng 80, các yêu cầu này sẽ được chuyển tiếp đến các dịch vụ từ những chương trình chứa web kể trên, các chương trình này sẽ xử lý các yêu cầu và gửi phản hồi về cho máy con.
Các cổng máy con
TCP/IP làm việc với hệ điều hành của máy con để bảo trì một bảng các cổng chỉ dành cho máy con. Bảng này kết hợp số của cổng với những ứng dụng khác nhau đang lắng nghe tín hiệu lưu thông trả về. Các cổng dành cho máy con bắt đầu tại con số 49.152 và tăng dần đến 65.535. Nếu hệ thống máy con khởi động lại, thì các cổng này sẽ được bắt đầu lại từ đầu.
Khi ta sư dụng trình duyệt để yêu cầu xem nội dung của một trang web, hệ thống sẽ ghi lại một cổng không sử dụng, ví dụ như 49.152 trong một bảng nội bộ để xử lý dữ liệu sẽ trả về. Whi máy chủ trả về nội dung của trang web, nó sẽ bao gồm cổng của máy con và đặt là cổng đích. Khi máy con nhận gói tin từ máy chủ với cổng 49.152, nó sẽ gửi những gói tin này đến trình duyệt. Trình duyệt xử lý gói tin và hiển thị nội dung.
Tổng hợp lại
Phần trước đã mô tả từng mảnh nhỏ, để dễ hiểu hơn ta cần gom chúng lại với nhau. Tưởng tượng bạn sẽ truy cập vào trang web facebook.com. Hình mô phỏng dưới đây tả lại quá trình thực hiện này:
Máy bạn sẽ tạo 1 gói tin với thông tin địa chỉ IP của nguồn và đích, và cổng của nguồn và đích. Nó truy vấn đến máy chủ DNS để kiếm địa chỉ IP của Facebook.com. Giả sử IP trả về là 72.52.206.134. Thêm vào đó máy tính sẽ sử dụng địa chỉ IP của nó làm IP nguồn, trong trường hợp này là 70.150.56.80.
Vì máy chủ web sử dụng HTTP và cổng Hay dùng đang được sử dụng nên cổng đích sẽ là 80, Máy tính sẽ xác định một cổng chưa sử dụng trong dãi các số cổng động (số từ 49.152 đến 65.535) và gán port đó cho trình duyệt web. Trong ví dụ này ta lấy số 49.152 chẳng hạn và đây là cổng nguồn.
- Tại thời điểm này gói tin được tạo ra có thông tin sau
- IP Đích: 72.52.206.134 (IP máy chủ)
- Cổng Đích: 80;
- IP Nguồn: 70.150.56.80
- Cổng Nguồn: 49.152
TCP/IP sử dụng địa chỉ IP (72.50.206.134) để truyền gói tin đến máy chủ Facebook. Khi đến được máy chủ, máy chủ kiểm tra cổng đích của gói tin và xác định chương trình sẽ xử lý gói tin đó là chương trình Máy chủ Web phục vụ HTTP. Sau đó máy chủ web sẽ tạo 1 trang web và đặt nội dung vào một hoặc nhiệu gói tin. Đến thời điểm này nguồn và đich đổi chỗ cho nhau vì gói tin sẽ từ máy chủ Facebook đến lại máy con.
- Thông tin gói tin từ máy chủ Facebook về lại máy của bạn:
- IP Đích: 70.150.56.80 (IP máy của bạn)
- Cổng Đích: 49.152;
- IP Nguồn: 72.52.206.134 (Máy chủ FB)
- Cổng Nguồn: 80
Lại lần nữa TCP/IP sử dụng IP đích để truyền gói tin đi đến máy tính của bạn. Khi gói tin đến, hệ thống đọc cổng đích là 49.152. Vì hệ thống đã gắn kết trình duyệt với cổng 49.152 từ trước rồi nên nó sẽ chuyển gói tin này đến cho trình duyệt xử lý.
Sự quan trọng của Cổng trong An Ninh Mạng
Các bộ định tuyến, và các thành phần định tuyến trong tường lửa thực hiện lọc gói tin dựa tren trên địa chỉ IP, cổng, và một số giao thức như ICMP hoặc IPSec. Vì rất nhiều giao thức sử dụng các cổng thuộc nhóm Hay sử dụng, ta có thể điều khiển dữ liệu lưu thông của giao thức bằng cách cho phép hoặc chặn lưu thông trên cổng đó.
Ở ví dụ trước, tường lửa của máy con phải cho phép dữ liệu lưu thông ra ngoài trên cổng 80. Tường lửa tự động xác định các cổng máy con được sử dụng lắng nghe dư liệu trả về. Nếu đã cho phép dữ liệu đi ra ngoài thông qua cổng đó thì tường lửa cũng sẽ cho phép dữ liệu đi vào từ cổng đó. Nói cách khác, vì tường lửa cho phép gói tin đi đến máy chủ web trên cổng 80, nó cũng sẽ cho phép nội dung trang web trở về trên cổng động đã sinh ra của máy nguồn là 49.152.
Lưu ý tằng tường lửa của máy con không cần cho phép dữ liệu lưu thông vào mạng trên cổng 80. Trình duyệt web trên máy con không cần chứa một máy chủ web với HTTP, vì thế tường lửa máy con sẽ chặn các dữ liệu lưu thông trên cổng 80. Tuy nhiên, nếu tường lửa đang lọc dữ liệu lưu thông đến máy chủ web phải cho phép dữ liệu lưu thông vào trên cổng 80.
Quy trình này có thể áp dụng cho bất kỳ giao thức và cổng nào. Ví dụ như tường lửa cho phép dữ liệu lưu thông trên cổng 25, thì hệ thống mạng hay máy con đó có thể sử dụng được giao thức SMTP. Chuyên gia công nghệ thông tin thay đổi Danh sách điều khiển truy cập (ACL) trên các bộ định tuyến và tường lửa thường được gọi là mở hoặc đóng cổng để điều khiển dữ liệu vào hoặc ra khỏi mạng.