[NETWORK SECURITY] Làm sao để xây dựng hệ thống mạng doanh nghiệp an toàn [P1]

VSEC - BLOG Bảo mật cho người mới

Lời đầu tiên cho mình xin gửi lời chào tới toàn thể các bạn/anh/chị/em trong lĩnh vực Network Security. Ý tưởng chính của series này nhằm cung cấp những kiến thức cơ bản nhất cho những ai muốn tìm tìm hiểu về “networking security” .

Trong bài viết này, mình sẽ giới thiệu một số dịch vụ triển khai dựa trên cở sở hạng tầng mạng của thiết bị Cisco, nhằm giúp cho người quan trị làm chủ hệ thống mạng như bảo mật, kiểm soát và xử lý sự cố được tốt hơn

Hiện nay, vấn đề bảo mật mạng là một vấn đề rất nan giải cho các công ty, cơ quan nhà nước, trường học và cả những người quản trị mạng…và làm sao để có thể xây dựng một hệ thống mạng an toàn ? Series này mình sẽ đề cập đến việc để thiết lập, cấu hình các giao thức syslog, NTP và SSH dưới góc độ “security“. Ở trong phần này mình sẽ nói về giao thức NTP và cách cấu hình an toàn với NTP trong một hệ thống mạng.

NTP là gì ?

NTP – Network Time Protocol 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 và nó hoạt động trên port 123/UDP.

Một câu hỏi được đặt ra là máy chủ NTP này nó lấy thời gian chuẩn ở đâu ?

Một nguồn thời gian chuẩn ở đây được gọi là đồng hồ nguyên tử (atomic clock) , nghe có vẻ nguy hiểm nhưng thực chất cơ chế của nó là điều chỉnh thời gian theo giao động của nguyên tử, tần số giao động của nguyên tử nó sẽ không đổi và có thể đo được, dựa vào tất cả các yếu tố đó người ta khẳng định đồng hồ nguyên tử là loại chính xác nhất hiện tại mà dựa vào cái đồng hồ này mà toàn bộ thiết bị trên thế giới sẽ theo quy chuẩn này.

Một câu hỏi nữa được đặt ra là thu thập nó theo cách nào ?

  • Thứ nhất là kết nối trực tiếp với đồng hồ nguyên tử hay từ các máy chủ khác có sử dụng NTP
  • Thứ 2 thông qua hệ thống GPS, các hệ thống định vị toàn cầu này sẽ lấy các tín hiệu từ những trạm đồng hồ nguyên tử đó và chuyển các tín hiệu đó cho các thiết bị thu đầu cuối, như điện thoại hoặc các thiết bị có khả năng thu sóng vệ tinh
  • Thứ 3 thông qua tín hiệu sóng radio

 

Các tín hiệu thời gian được sử dụng bởi hầu hết các máy chủ NTP là nguồn thời gian UTC (Coordinated Universal Time). UTC nó là thời gian toàn cầu dựa trên thời gian của đồng hồ nguyên tử và là một tiêu chuẩn được dùng để thiết lập tất cả các múi giờ trên thế giới. UTC gồm 2 phần chính là TAI, UT1

  • TAI (International Atomic Time): giờ nguyên tử quốc tế, đây là thang đo thời gian của hơn 400 đồng hồ nguyên tử trên thế giới, cung cấp độ chính xác cho đồng hồ của chúng ta
  • UT1 (Universal Time): Giờ thiên văn nó đề cập đến chuyển động quay của trái đất. Nó được sử dụng để so sánh tốc độ do TAI cung cấp với độ dài thực tế của một ngày trên Trái đất.

Dựa vào 2 yếu tố này nó tạo ra giờ UTC là giờ chuẩn nhất hiện nay

Tóm gọn lại, nói một cách đơn giản, máy chủ NTP tức là nó chạy một cái đồng hồ và đồng hồ này sẽ cung cấp thông tin về thời gian chuẩn cho các thiết bị mạng

 

Vấn đề bảo mật trong NTP

Tại sao phải sử dụng NTP, nếu ta sử dụng đồng hồ cục bộ trên các thiết bị thì vấn đề có thể xảy ra là các đồng hồ này có thể không chính xác hoặc không đồng bộ với nhau chính vì vậy mà các bản tin nhật ký mà các thiết bị này gửi về máy chủ log có thể là không chính xác nữa cho nên là sẽ khó khăn cho việc khi chúng ta muốn kiểm tra nhật ký xem là một cái sự kiện A diễn ra trong mạng tại thời điểm nào, nếu thời gian không chính xác thì rõ ràng việc điều tra về sự cố an ninh mạng nó không còn chính xác nữa cũng như là khó khăn trong việc xác định thời điểm.

Chính vì thế nếu ta chạy 1 cái đồng hồ đồng bộ cho toàn thiết bị mạng, lúc này ta chỉ cần cấu hình chính xác thời gian trên máy chủ này chính xác là được khi đó các thiết bị mạng sẽ đồng bộ theo đồng hồ ở trên máy chủ NTP này. Điều này rất là hữu ích, nó thể hiện khả năng quản lí tập trung đối với vấn đề về thời gian của các thiết bị mạng

Liệu vậy đã đủ ?

Lúc này kẻ tấn công nghĩ ra 1 thủ đoạn đó là gửi các cái bản tin thời gian giả mạo tới các thiết bị mạng này, khiến các thiết bị hoạt động sai lệch về mặt thời gian và gây khó khăn cho người quản trị mạng khi kiểm tra log, ngoài ra việc sai lệch thời gian còn làm cho các chứng chỉ số sẽ hoạt động không còn chính xác nữa vì vậy đây có thể là một trong những nguyên nhân gây ra gây ra các cuộc tấn công từ chối dịch vụ (DoS, DDoS) trên hệ thống của bạn, do đó cần phải xác thực các bản tin được trao đổi giữa NTP Server và các thiết bị mạng. Từ đó người ta nghĩ ra việc xác thực giữa máy chủ NTP và các thiết bị.

Lab

Để hiểu rõ hơn vấn đề, mình sẽ minh họa rõ hơn trong bài lab bằng thiết bị Router Cisco

Sơ đồ ví dụ

Bước 1: Cấu hình ban đầu

  • Thực hiện đặt ip trên các interace của các router như trên hình
  • Cấu hình định tuyến bất kỳ đảm bảo các mạng thông nhau

Bước 2: Cấu hình NTP & Xác thực

  • Cấu hình R1 đóng vai trò là nguồn đồng bộ thời gian thực cho hệ thống mạng
  • Cấu hình xác thực các gói tin NTP đến từ R1 của các router R2, R3, R4

Trên R1 (NTP master):

Setup thời gian chuẩn

R1(config)#clock timezone GMT +7 // múi giờ VN là GMT +7

R1(config)#ntp master 6

Xác định nguồn NTP, có thể là NTP server public, NTP từ mạng nội bộ, internal clock, trong bài lab này mình sẽ sử dụng internal clock của chính router này

R1(config)#ntp source loopback 0

R1(config)#ntp authenticate

R1(config)#ntp authentication-key 12 md5 ntppass12

R1(config)#ntp authentication-key 13 md5 ntppass13

R1(config)#ntp authentication-key 14 md5 ntppass14

R1(config)#ntp trusted-key 12

R1(config)#ntp trusted-key 13

R1(config)#ntp trusted-key 14

 

Trên R2 (NTP client):

R2(config)#ntp server 172.16.10.1 key 12

R2(config)#ntp authenticate

R2(config)#ntp authentication-key 12 md5 ntppass12

R2(config)#ntp trusted-key 12

 

Trên R3 (NTP client):

R3(config)#ntp server 172.16.10.1 key 13

R3(config)#ntp authenticate

R3(config)#ntp authentication-key 13 md5 ntppass13

R3(config)#ntp trusted-key 13

 

Trên R4 (NTP client):

R4(config)#ntp server 172.16.10.1 key 14

R4(config)#ntp authenticate

R4(config)#ntp authentication-key 14 md5 ntppass14

R4(config)#ntp trusted-key 14

 

Lưu ý: phải mất một khoảng thời gian việc đồng bộ mới diễn ra

Kiểm tra

R2#show ntp status

Clock is synchronized, stratum 7, reference is 172.16.1.1

nominal freq is 250.0000 Hz, actual freq is 250.0001 Hz, precision is 2**10

ntp uptime is 216200 (1/100 of seconds), resolution is 4000

reference time is E3057EDD.845A1E18 (11:43:09.517 GMT Fri Sep 11 2020)

clock offset is 0.0000 msec, root delay is 0.00 msec

root dispersion is 9.06 msec, peer dispersion is 5.19 msec

loopfilter state is ‘CTRL’ (Normal Controlled Loop), drift is -0.000000539 s/s

system poll interval is 64, last update was 161 sec ago.

 

R3#show ntp status

Clock is synchronized, stratum 7, reference is 172.16.1.1

nominal freq is 250.0000 Hz, actual freq is 250.0001 Hz, precision is 2**10

ntp uptime is 216200 (1/100 of seconds), resolution is 4000

reference time is E3057EDD.845A1E18 (11:46:02.567 GMT Fri Sep 11 2020)

clock offset is 0.0000 msec, root delay is 0.00 msec

root dispersion is 10.84 msec, peer dispersion is 5.86 msec

loopfilter state is ‘CTRL’ (Normal Controlled Loop), drift is -0.000000539 s/s

system poll interval is 64, last update was 518 sec ago.

 

R4#show ntp status

Clock is synchronized, stratum 7, reference is 172.16.1.1

nominal freq is 250.0000 Hz, actual freq is 250.0001 Hz, precision is 2**10

ntp uptime is 216200 (1/100 of seconds), resolution is 4000

reference time is E3057EDD.845A1E18 (11:51:02.767 GMT Fri Sep 11 2020)

clock offset is 0.0000 msec, root delay is 0.00 msec

root dispersion is 13.20msec, peer dispersion is 4.36 msec

loopfilter state is ‘CTRL’ (Normal Controlled Loop), drift is -0.000000539 s/s

system poll interval is 64, last update was 961.89 sec ago.

 

Kết quả show cho thấy R2, R3 và R4 đã đồng bộ thông tin thời gian thực với R1. Việc đồng bộ thành công cho thấy xác thực NTP đã diễn ra thành công.

Chúc các bạn thành công và hẹn mọi người vào blog tiếp theo về cấu hình an toàn trên server lưu log và SSH

References:

https://blog.apnic.net/2019/11/08/network-time-security-new-ntp-authentication-mechanism/

http://nelsonherron.tripod.com/itdir/cisco/ntp/ntp.htm