Như tên gọi của nó, NTP là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu chuyển mạch gói với độ trễ biến đổi.. Thực hiện trong UNIX và các hệ thống ph
Trang 3TRƯỜNG ĐẠI HỌC SÀI GÒN
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỀ TÀI
Trang 6Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
NHẬN XÉT GIÁO VIÊN
Đề tài: NTP và các vấn đề bảo mật liên quan.
STT MSSV Họ tên Khối lƣợng công việc(%)
1 3108410145 Nguyễn Hoài Niên
2 3108410026 Lưu Thế Chi
3 3108410174 Phạm Huỳnh Sang
Nhận xét:
Trang 7
.
Trang 2
1 1 1
Trang 10Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
a Local time và Universal time 5
b Hardware clocks và software clocks 5
II Khái niệm thời gian trên
Trang 14Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
I GIỚI THIỆU TỔNG QUAN
1 NTP là gì và tại sao phải sử dụng NTP?
Thật hài hước khi mở Hộp thư điện tử, bạn phát hiện ra rằng thời gian nhận thư lại sớm hơn thời gian lá thư được gửi đi Hay một giao dịch thương mại điện tử lúc 7:30 PM 21/12/2012 lại có một thư xác nhận giao dịch hoàn tất lúc 6:26 PM 21/12/2012…Tất cả xảy ra do sự sai khác thời gian trên các máy chủ hoặc hệ thống khác nhau, mà điều này là không cần thiết cho các giao dịch điện tử, và chứng thực điện
tử “Làm gì để khắc phục điều này?” Câu hỏi được đặt ra và dự án NTP đầu tiên đã ra đời
NTP (Network time protocol) là một giao thức nằm trong tầng ứng dụng
(Application layer) của bộ giao thức TCP/IP Như tên gọi của nó, NTP là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu chuyển mạch gói với độ trễ biến đổi Giao thức này được thiết kế để tránh ảnh hưởng của độ trễ biến đổi bằng cách sử dụng bộ đệm jitter
NTP là một trong những giao thức Internet lâu đời nhất vẫn còn được sử dụng (từ trước năm 1985) NTP được phát minh và thiết kế bởi một kỹ sư người Mỹ tên là David L Mills, người hiện là giáo sư tại Đại học Delaware Thực hiện trong UNIX và các hệ thống phần mềm Mircosoft, NTP đã trở thành một trong những phương pháp đáng tin cậy nhất về đồng bộ thời gian một cách chính xác giữa các hệ thống máy tính và máy chủ trên khắp thế giới
Phiên bản hiện tại của NTP là phiên bản 4, NTPv4 thông thường có thể đảm bảo độ chính xác trong khoảng 10 mili giây (1/100 s) trên mạng Internet công cộng, và có thể đạt đến độ chính xác 200 micro giây (1/5000 s) hay hơn nữa trong điều kiện lý tưởng của môi trường mạng cục bộ Trên Internet, NTP đồng
bộ đồng hồ của các hệ thống máy tính theo UTC (Universal time) Trong môi trường LAN độc lập, NTP cũng thường được sử dụng để đồng bộ với UTC, nhưng về nguyên tắc nó có thể được sử dụng để đồng bộ với một mốc thời gian khác, ví dụ như múi giờ tại chỗ
Chú ý rằng NTP chỉ cung cấp thời gian UTC, và không có thông tin về múi giờ hay giờ tiết kiệm ánh sáng ngày (Daylight saving time)
Một phiên bản đơn giản hơn của NTP không cần yêu cầu lưu trữ thông tin
Trang 15trao đổi cũ được gọi là Giao thức Đồng bộ Thời gian mạng Đơn giản - Simple Network Time Protocol hay SNTP Giao thức này được sử dụng cho các thiết bị nhúng và trong các ứng dụng không cần độ chính xác cao về thời gian.
2 Các khái niệm cơ bản
Trước khi tìm hiểu sâu hơn về NTP, ta sẽ tìm hiểu về các khái niệm liên quan
Trang 4
Trang 18Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
a Local time và Universal time
Trưa là thời gian trong ngày khi Mặt Trời nằm ở vị trí cao nhất của nó Theo nghiên cứu Trái đất là tròn, trưa xảy ra tại thời điểm khác nhau ở những nơi khác nhau Điều này dẫn đến các khái niệm về Local time Nó là thời gian ở từng vùng khác nhau trên Trái đất
Do nhu cầu liên lạc ngày càng được mở rộng nên con người cần thống nhất
về thời gian chung, thời gian này được gọi là thời gian phổ quát (Universal time) Universal time (UT hay UTC) trước đây gọi là Greenwich Mean Time hoặc GMT, lấy giờ địa phương tại Greenwich, Anh
Trong địa lý sẽ cho phép tất cả những nơi có trưa cùng một lúc có cùng múi giờ (time zone) Thông qua GMT và time zone người ta sẽ tính được thời gian hiện tại của từng địa phương nhờ sự sai khác
b Hardware clocks và software clocks
Máy tính có một đồng hồ pin điều khiển phần cứng, pin đảm bảo đồng hồ sẽ làm việc ngay cả khi máy tính không có điện, gọi là Hardware clocks Hardware clocks có thể được thiết lập từ màn hình BIOS setup hoặc từ bất cứ hệ điều hành đang chạy
Software clock là thời gian mà máy tính hiển thị khi làm việc Khi không cung cấp điện, nó sẽ ngừng hoạt động Vậy sao nó vẫn chính xác trong trong lần kích hoạt tiếp theo? Điều này sẽ được làm rõ ở phần sau
Trang 5
Trang 21Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
II THỜI GIAN TRÊN LINUX
Hầu hết các máy tính đều hiển thị thời gian địa phương (Local time), đó là Software clock Mỗi khi boot vào hệ thống, sự đồng bộ giữa Hardware clocks
và Software clock được thực hiện Và sau đó cả 2 sẽ chạy độc lập với nhau Hardware clocks có thể là UTC hoặc Local time nhưng thường khuyến cáo là UTC
Trên Linux các time zone được lưu trữ trong /usr/share/zoneinfo hoặc
/usr/lib/zoneinfo tùy bản phân phối Window là các khóa trong registry
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\ Time Zones\ Do đó máy tính có thể hiện thị chính xác Local time mặc cho
Hardware clocks là UTC Ở Linux múi giờ hệ thống được xác định liên kết tượng trưng /etc/localtime Để thay đổi time zone là Ho_Chi_Minh ta sử dụng câu lệnh sau:
#ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
Truy vấn thời gian hiện hành của hệ thống với #date command
#date
Sun Jul 14 21:53:41 EET DST 1996
“EET DST” là quy ước viết tắt múi giờ của từng vùng Để xem UTC time trên hardware clock sử dụng option -u
#date –u
Sun Jul 14 18:53:42 UTC 1996
Ta cũng có thể thay đổi thời gian hiện hành của hệ thống với #date <time>
$date 07142157
Sun Jul 14 21:57:00 EET DST 1996
Tham khảo #man date Với lệnh &date không thay đổi được hardware clock, muốn làm điều đó cần #clock –w Lệnh này khi không có option hoặc lệnh
#hwclock -w dùng để đồng bộ hardware và software clock khi cần Xem thêm
#man clock và #man hwclock
Sở dĩ phải đồng bộ là do software clock không phải lúc nào cũng duy trì sự chính xác Nó hoạt động nhờ timer interrupt của hardware Khi có quá nhiều tiến trình chạy cùng lúc thì dịch vụ này gián đoạn dẫn đến sự trễ cho software clock
Trang 22Trang 6
Trang 25Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
III CẤU HÌNH NTP CƠ BẢN
1 Giới thiêu sơ lƣợc NTP
Thời gian trên máy tính là rất quan trọng nên nó cần độ chính xác cao Các quản trị không thể trực tiếp theo dõi từng sai khác của thời gian hệ thống để khắc phục kịp thời bằng các lệnh đồng bộ Điều này quá nhiều rủi ro và lãng phí
Như đã giới thiệu, NTP là giao thức đồng bộ thời gian mạng, nó tự động kiểm tra thời gian hệ thống của riêng nó bằng cách so sánh với thời gian trên máy tính khác được biết đến với thời gian chính xác Nó là một phương pháp xác minh, điều chỉnh thời gian máy tính của bạn một cách chính xác với các máy chủ thời gian NTP Những máy chủ NTP gốc được xây dựng rất phức dựa trên các máy đếm xung nhịp, bộ định vị GPS, kết nối vệ tinh…nhằm đảm bảo lun cung cấp thời gian chính xác nhất cho hệ thống mạng sử dụng NTP Các máy chủ này có stratum 0 Ta sẽ nói rõ hơn về Stratum ở phụ lục
NTP được nghiên cứu từ rất sớm khoản 1980 với tên Internet Clock Service cùng các đặt tả kĩ thuật trong [RFC 778] Phiên bản chính thức đầu tiên 1988 đặt
tả [RFC 1059] với hoạt động server-client
Chỉ 1 năm sau phiên bản NTP 2, đã giới thiệu “symmetric-key authentication” trong [RFC 1119]
Năm 1992 NTP v3 ra đời [RFC 1305] với sự góp mặt của chế độ broadcast
Một loạt các cải tiến phiên bản 3 đã tạo nên NTP v4 (1999) như: Simple Network Time Protocol (SNTP) phiên bản 4 cho IPv4, IPv6 và OSI…
Trong Linux, NTP có daemon là ntpd
Trang 7
NTP server stratum 0
Trang 28Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
2 Cấu hình NTP server.
+ Kiểm tra gói ntp đã được cài đặt trên máy chưa với lệnh #rpm
Thông thường gói này luôn được cài đặt vì hệ thống cần nó
+ File cấu hình NTP là /etc/ntp.conf Ta không nên tự tạo ra một file config mà hãy thừa kế từ file gốc Backup file cấu hình gốc trước khi cấu hình
+ Cấu hình file với lệnh #vim Bạn phải chắc rằng gói Vim đã sẵn sàng
+ Những NTP server mặc định được chọn Ta có thể thêm hoặc thay đổi những server này với domain hoặc địa chỉ IP
Xem thêm các NTP server : http://support.ntp.org/bin/view/Servers/
Trang 31Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
Xem bảng giải thích sau:
Từ khóa Định nghĩa ignore Khóa tất cả các gói và truy vấn kod Gửi gói Death nomodify Không cho phép thay đổi cấu hình server noquery Khóa truy vấn ntpq / ntpdc notrap Khóa việc điều khiển dich vụ tin nhắn bẩy nopeer Khóa việc thiết lâp peer notrust Khóa những truy cập nếu chưa chứng thực
Kiss-Of-+ Cho phép đầy đủ những điều khiển trên localhost Bạn có thể thêm các từ khóa trong bảng để hạn chế những điều khiển không cần thiết
+ Tương tự đối với các NTP server thì chỉ vần tham chiếu
+ Dòng lệnh trên cho phép các máy trạm trong mạng cục bộ có thể truy vấn đến NTP server
+ Hoàn tất với những dòng lệnh sau:
fudge: bổ sung thông tin cho local clock Driftfile: Đường dẫn đến file chỉ số trôi của thời gian hệ thống Keys: file chứa key chứng thực của NTP
Trang 9
1
Trang 34Đề tài: NTP và các vấn đề bảo mật liên quan Quản trị Mạng
+ Khởi động lại dịch vụ
Cơ bản việc cấu hình NTP server đã hoàn tất
+ Kiểm tra file log: #grep ntpd /var/log/messages.
Trang 10
+ Do các gói NTP hoạt động trên port 123 nên ta phải đảm bảo firewall không khóa port này Mở port 123 với lệnh #iptables –A INPUT –j ACCEPT –p tcp –dport 123