1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

Xây dựng một pháo đài phòng thủ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (613.59 KB, 124 trang )


Tìm hiểu về an toàn và bảo mật trên mạng



mỏy vừa bị tấn công trong vài phút khi bắt đầu kết nối Internet; hiếm khi nó

có thể xảy ra.

Các phần tiếp theo mô tả từng bước chính trong xây dựng một máy

chủ pháo đài. Chúng cũng đề cập một cách ngắn gọn đến quá trình tiếp tục

duy trì và bảo vệ máy chủ pháo đài; lưu ý, các vấn đề về sự duy trì được

thảo luận chủ yếu ở chương 12.



7.1 Bảo vệ máy

Để bắt đầu, xây dựng một máy với một hệ điều hành chuẩn, bảo mật

đến mức có thể. Bắt đầu với một hệ điều hành không lỗi và tiếp theo là các

thủ tục mà chúng ta sẽ mô tả trong phần này.

Bắt đầu với việc cài đặt hệ điều hành ít lỗi nhất

Bắt đầu với việc cài đặt một hệ điều hành không lỗi, từ các nhà cung

cấp phân phối truyền thông. Nếu bạn làm như thế, bạn sẽ biết chính xác vấn

đề bạn cần làm. Bạn sẽ không cần trang bị thêm thiết bị mới . Sử dụng một

hệ thống như vậy cũng sẽ làm cho các công việc sau dơn giản hơn. Hầu hết

các sửa tạm bảo mật nhà cung ứng, cũng nh là các chỉ dẫn cấu hình nhà cung

ứng và tài liệu khác, giả sử rằng bạn đang bắt đầu với một cài đặt không thay

đổi.

Trong khi bạn đang cài đặt hệ điều hành, cài đặt ít như là bạn có thể

tránh. Sẽ đơn giản khi tránh cài đặt it các mẫu tin hơn là xoá toàn bộ các

mẫu tin này sau đó. Với vấn đề này, một khi hệ điều hành của bạn ít chức

năng nhất, nó sẽ khụng khú để thờm cỏc thành phần nếu bạn nhận ra bạn cần

chúng. Đừng cài đặt các hệ thống con không cần thiết trừ khi bạn biết rằng

bạn sẽ cần nó.

Sửa chữa tất cả các lỗi đã biết



Tìm hiểu về an toàn và bảo mật trên mạng



Tạo một danh sách của các đoạn sửa tạm bảo mật đã biết và các tư

vấn cho hệ điều hành của bạn; qua chỳng xỏc định cái phù hợp với hệ thống

của riêng bạn, và sửa tất cả các vấn đề được mô tả trong các đoạn sửa tạm và

các tư vấn. Bạn nhận được thông tin này từ nhà tư vấn hay các nhà liên hệ

cung cấp kỹ thuật, hoặc từ các nhóm người sử dụng, hay từ danh sách thư

diện tử dành cho nền riêng của bạn.

Một danh sách hữu ích của các liên hệ có sẵn qua FTP nặc danh tại

các tường lửa danh sách lưu trữ thư:

ftp://ftp.greatcircle.com/pub/firewalls/vendor_security_contacts"

Bổ sung thêm, chắc chắn có được từ Compurter Emergency Response

Team Coordination Center (CERT-CC) tư vấn hợp lệ cho nền tảng của bạn,

và làm việc với chúng. (Cho thông tin trên cách liên hệ CERT-CC và phục

hồi thông tin của nó, xem danh sách của các phương pháp trong phụ lục A).

Sử dụng bản liệt kê các mục cần kiểm tra

Chắc chắn là bạn không bỏ qua bất cứ điều gì trong bảo mật máy chủ

pháo đài của bạn, sử dụng một bảng liệt kê các mục cần kiểm tra. Có rất

nhiều các mục cần kiểm tra. Chắc chắn khi sử dụng một bản mục phù hợp

với phần nền của bạn và phiên bản hệ điều hành.

Phụ lục A của Practicakl UNIX security, được nhắc đến từ trước, bao

gồm một bảng liệt kê các mục cần kiểm tra cho phần lớn các phần nền

UNIX. Các bảng liệt kê các mục cần kiểm tra cụ thể cho từng hệ điều hành

riêng thường tồn tại qua cỏc kờnh xác nhận chuẩn hoặc không chuẩn cho các

phần nền đó; kiểm tra với các nhà liên hệ cung cấp kỹ thuật, hoặc từ các

nhóm người sử dụng, hay từ các danh sách thư dành cho phần nền.

Bảo vệ cho các truy cập hệ thống



Tìm hiểu về an toàn và bảo mật trên mạng



Bước tiếp theo trong việc xây dựng máy chủ pháo đài là đảm bảo rằng

bạn có một phương thức bảo vệ cho các truy cập hệ thống cho máy chủ pháo

đài. Các truy cập hệ thống trên máy chủ pháo đài là quan trong vì hai lý do

sau:





Chúng là một trong các phương thức tốt nhất của việc



quyết định nếu máy chủ pháo đài của bạn đang hoạt động như là nó

cần. Nếu mọi việc mà máy chủ pháo đài làm là truy cập (và nó cần

làm thế), bạn nờn cú khả năng kiểm tra các truy cập để xác định chính

xác cái mà nó đang thực hiện và quyết định công việc mà nó dự tính

phải làm.





Khi một ngày nào đó, một người nào đó thành công trong



việc phá huỷ máy chủ pháo đài, các truy cập hệ thống là một trong

những kỹ thuật căn bản để xác định chính xác điều gì đã xảy ra. Bằng

việc kiểm tra các truy cập và đoán nhận những sai sót, bạn cần có khả

năng giữ lại cuộc tấn công tránh xảy ra thêm một lần nữa.

Bạn nên đặt các truy cập hệ thống ở đâu? Một mặt, bạn muốn các truy

cập hệ thống ở nơi tiện lợi; bạn muốn chúng ở tại nơi chúng có thể đơn giản

kiểm tra và xác định công việc mà máy chủ pháo đài đang làm. Mặt khác,

bạn muốn các truy cập hệ thống được đặt ở nơi an toỏn; nú sẽ giữ chỳng

trỏnh cỏc can thiệp trong trường hợp bạn cần sử dụng chúng để khôi phục lại

một sự việc đã xảy ra.

Giải pháp cho hai yêu cầu có vẻ trái ngược này là giữ hai bản sao của

các truy cập hệ thống - một cho vấn đề tiện dụng và một cho các tai biến.

Các truy cập hệ thống cho mục đích tiện lợi



Tìm hiểu về an toàn và bảo mật trên mạng



Bản sao đầu tiên của các truy cập hệ thống là bản mà bạn sẽ sử dụng

trên một nền tảng thông thường để giám sát các hoạt động đang diễn ra của

máy tính. Các truy cập này ngược lại với những truy cập mà bạn chạy các

bản ghi phân tích tự động hàng ngày và hàng tuần. Bạn có thể giữ các truy

cập trờn chớnh cỏc máy chủ pháo đài hay trên một máy chủ nội bộ nào đó.

Lợi thế của việc giữ chỳng trờn máy chủ pháo đài là dễ hiểu: bạn

không phải thực hiện truy cập tới một hệ thống nào khác, và bạn cũng không

phải định cấu hình lọc gói tin để chấp nhận nó. Lợi thế của việc đặt chỳng

trờn một máy chủ nội bộ là đơn giản cho truy cập: bạn không phải vào máy

chủ pháo đài, nơi không có các công cụ đại khái, để kiểm tra các truy cập.

Tánh truy cập tới pháo đài phòng thủ, trong bất cứ trường hợp nào.

Các truy cập hệ thống cho các tai biến

Bản sao thứ hai của các truy cập hệ thống là bản sao bạn sẽ sử dụng

sau khi có tai biến. Bạn không thể sử dụng các truy cập tiện ích của bạn

trong trường hợp này. Các truy cập tiện lợi sẽ không thể dùng được, hoặc

bạn sẽ không thể chắc chắn về tính toàn vẹn của chúng.

Một trong các phương thức đơn giản để tạo các bản ghi cho tai biến là

tấn công vào một tới cổng nối tiếp của máy chủ pháo đài, và đơn giản truy

cập một bản sao của mọi thứ tới cổng này. Có một số vấn đề với tiếp cận

này. Trước hết, bạn phải giữ cho máy in đầy giấy, không được chặt, và với

một giải băng mới. Sau nữa, mỗi khi các bản ghi được in ra, không có nhiều

việc cho bạn làm với chúng chỉ trừ bạn nhỡn chỳng. Bởi vì chúng ở dạng

điện từ, bạn không có cách nào tìm kiếm hay phân tích chúng trong dạng tự

động.



Tìm hiểu về an toàn và bảo mật trên mạng



Một phương thức hiệu quả hơn để tạo các truy cập cho tai biến là kết

nối một máy tính cá nhân chuyên môn tới một cổng nối tiếp trờn phỏo đài

phòng thủ, như một thiết bị truy cập. Cấu hình máy PC trong phương thức

mà nó khởi động vào một chương trình đầu cuối trong dạng “bản ghi”, và

thỉnh thoảng (ví dụ thường là 100,000 bytes), các tệp truy cập được luân

phiên nhau và được chặt khúc sao cho hệ thống không bao giờ bị tràn không

gian đĩa. Trong phương thức này, mỗi vấn đề mà máy chủ pháo đài để lộ ra

cổng nối tiếp đều sẽ được ghi lại trên đĩa của máy tính cá nhân. Trừ khi một

ai đú có truy cập vật lý tới PC (PC phải không được kết nối tới mạng), các

truy cập sẽ vẫn an toàn ngoài tầm với. Thuận lợi của cách tiếp cận phương

thức đầu tiên này là các dữ liệu vần ở dạng điện từ. Nếu bạn phải tìm kiếm

và phân tích trên dữ liệu (sau một tai biến chẳng hạn), bạn có thể khôi phục

nó từ từ máy thiếu an toàn.

Nếu bạn có sẵn một thiết bị ghi một lần, sử dụng thiết bị này; thực

hiện, đặc biệt nếu thiết bị ghi một lần của bạn có thể mô phỏng một hệ thống

file. Đảm bảo rằng bạn có thể tin tưởng vào tính năng viết một lần. Một số

từ quang có khả năng chứa cả toán tử ghi một lần và ghi nhiều lần, và giữ

rãnh ghi dạng của chúng bằng phần mềm. Nếu hệ thống bị làm tổn hại, nó có

thể có khả năng ghi lại như là một phương tiện ghi một lần.

Một số hệ điều hành (đặc biệt là BSD 4.4-Lite và các hệ thống bắt

nguồn từ nó, như là các bản phát hành hiện thời của BSDI, FreeBSD, và

NetBSD) hỗ trợ các tệp bổ sung dữ liệu. Đõy không phải là một lựa chọn

thích hợp cho phương tiện ghi một lần hoặc cho một máy thiếu an toàn. Dù

là bạn có thể tin cậy sự thực hiện của các tệp chỉ bổ sung dữ liệu, đĩa mà

chúng ở trên đó có thể ghi được, và có thế có phương tiện truy cập nó bên

ngoài hệ thống tệp, đặc biệt cho người xâm nhập muốn phá huỷ các bản ghi.



Tìm hiểu về an toàn và bảo mật trên mạng



Hình 5.2 chỉ ra cách thức bạn có thể kết nối một máy tính cá nhân tới

hệ thống của bạn để thực hiện việc truy cập.

Xây dựng các bản ghi hệ thống

Trên một hệ thống UNIX, việc truy cập được thực hiện bằng syslog.

Các bản ghi trình tiện Ých syslog đưa vào cỏc thụng điệp từ vùng khác nhau

của mỏy khỏch từ xa (các chương trình với cỏc thụng điệp mà chúng muốn

đưa vào). Mỗi thông điệp được gắn thẻ với cỏc mó tiện ích và có quyền ưu

tiên; mã tiện ích thông tin syslog biết hệ thống con chung nào thông điệp từ

đó đến (ví dụ, hệ thống thư, nhân, hệ thống in, hệ thống tin tức Usenet, …),

và mã quyền ưu tiên thông tin syslog tầm quan trọng của thông điệp (xếp

loại từ thông tin gỡ rối và cỏc thụng điệp có tin tức thường lệ qua nhiều mức

tuỳ theo tình trạng khẩn cấp của thông tin). Tệp /etc/syslog.conf điều khiển

công việc mà syslog tiến hành với cỏc thụng điệp, dựa trên quyền ưu tiên và

tiện ích của chúng. Một thông điệp được đưa ra có thể bị bỏ qua, được đưa

vào một hay nhiều file, gửi tới trình tiện ích syslog trên một hệ thống khác,

xuất hiện trờn cỏc màn hình của người sử dụng nào đó hoặc của tất cả người

sử dụng đang trực tiếp truy cập, hay bất kỳ kết hợp nào.



Tìm hiểu về an toàn và bảo mật trên mạng



Hình 2: Sử dụng máy tính nối nối tiếp để tạo ra những bản ghi tai

biến.

Khi bạn định cấu hình syslog để ghi nhận cỏc thụng điệp tới các file,

bạn có thể định cấu hình nó để gửi tất cả cỏc thụng điệp tới một file đơn lẻ,

hoặc tỏch cỏc thụng điệp tới các file phức tạp bằng cỏc mó tiện ích và quyền

ưu tiên. Nếu bạn tỏch cỏc thụng điệp bằng cỏc mó tiện ích và có quyền ưu

tiên, mỗi truy cập file sẽ mạch lạc hơn, nhưng bạn sẽ phải giám sát các file

phức tạp; bạn có thể có thời gian đơn giản hơn để tìm kiếm cỏc thụng điệp

từ một dịch vụ riêng. Mặt khác, nếu bạn gửi tất cả đến một file đơn, bạn sẽ

chỉ có một file đơn để kiểm tra tất cả cỏc thụng điệp, nhưng file sẽ rất lớn.

Nhiều hệ thống phi UNIX, đặc biệt các thiết bị mạng như các router,

có thể được định cấu hình để đưa vào cỏc thụng điệp qua syslog. Nếu các hệ

thống của bạn có khả năng này. định cấu hình chúng để vì vậy tất cả chúng

đưa vào pháo đài phòng thủ của bạn cung cấp một phương thức hữu hiệu

cho việc tập trung tất cả cỏc thụng điệp trong một vị trí đơn nhất.



Tìm hiểu về an toàn và bảo mật trên mạng



Nhận thấy rằng truy cập từ xa qua syslog (ví dụ, từ một router tới pháo

đài phòng thủ của bạn, hoặc từ pháo đài phòng thủ của bạn tới một máy chủ

nội bộ nào đó) là không đảm bảo độ tin cậy 100%. Trước hết là, syslog là

một dịch vụ dựa trên UDP, và người gửi một gói tin UDP khụng cỏch nào

biết được khi nào hay không người nhận có được gói tin đó trừ khi người

nhận thông tin lại cho người gửi (cỏc trỡnh tiện ích syslog không xác nhận

cho người gửi tới họ). Mặt khác, ngay cả nếu syslog đã dựa trên TCP, bạn

vẫn không thể phụ thuộc vào nó tuyệt đối hay không làm mất cỏc thụng

điệp; điều gì sẽ xảy ra nếu hệ thống nhận bị hỏng hoặc nếu không tồn tại?

Đõy là một lý do để cần thiết phải có một máy một máy tính nội bộ thiếu an

toàn để đạt được độ tin cậy cho tất cả cỏc thụng điệp syslog.

Không kể các điểm yếu của nó, syslog là một dịch vụ hữu ích; bạn nên

sử dụng chúng rộng rãi.



7.2. Vô hiệu hoỏ cỏc dịch vụ không được yêu cầu

Mỗi khi bạn vừa hoàn thành tiến trình cơ bản cho việc bảo mật pháo

đài phòng thủ của bạn, tiếp tục với bước tiếp theo: loại bỏ bất cứ dịch vụ nào

hoàn toàn không cần thiết cho pháo đài phòng thủ.

Bất cứ dịch vụ nào được cung cấp bởi pháo đài phòng thủ cũng có thể

có các lỗi hoặc các vấn đề về cấu hình có thể dẫn đến các vấn đề về bảo mật.

Rõ ràng, bạn sẽ phải cung cấp một số dịch vụ mà người sử dụng cần, chừng

nào chính sách bảo mật của bạn cho phép họ. Nhưng nếu dịch vụ này không

hoàn toàn cần thiết, đừng rước hoạ bằng việc cung cấp nó. Nếu một dịch vụ

không được cung cấp bởi pháo đài phòng thủ, bạn sẽ không phải lo lắng về

khả năng lỗi và các vấn đề về cấu hình.



Tìm hiểu về an toàn và bảo mật trên mạng



Nếu bạn có thể hoạt động mà không cần một dịch vụ, nó sẽ bị bỏ đi.

Nó đáng chịu đựng một số bất lợi. Điều đó có nghĩa là bạn cần suy nghĩ cẩn

thận về các dịch vụ. Bạn sẽ loại bỏ không chỉ những dịch vụ chưa bao giờ

nghe đến và không bao giờ sử dụng, mà cả các dịch vụ đã cho phép có chủ

định trờn cỏc mỏy khỏc. Xem xét mỗi dịch vụ và hỏi chính bạn “Làm thế

nào tối có thể tránh được nú? Tụi sẽ mất gì nếu tôi loại bỏ nú?”.

7.2.1. Các dịch vụ được quản lý như thế nào?

Trờn cỏc mỏy UNIX, hầu hết các dịch vụ được quản lý bằng một

trong hai phương thức sau:





Bằng việc điều khiển khi chúng bắt đầu và ai có thể sử



dụng chúng.





Bằng các file cấu hình dịch vụ đặc biệt.



Có hai phương thức mà các dịch vụ bắt đầu trong các hệ thống UNIX:





Tại thời điểm khởi động từ các file /etc/rc của một máy.







Trên yêu cầu bằng trình tiện ích inetd (được bắt đầu ngay



tại thời điểm khởi động).

Một vài dịch vụ , ví dụ như gửi thư, có thể được định cấu hình để chạy

dưới một hoặc cả hai kỹ thuật.

Các dịch vụ bắt đầu bằng các file /etc/rc

Các dịch vụ trong trường hợp đầu được thiết kế để chạy vô hạn định.

Chúng được bắt đầu ngay lập tức (khi máy khởi động), và chúng không bao

giờ được giả định là biến mất. (Tất nhiên, thỉnh thoảng chúng bị mất, khi

chúng bị tiêu diệt bởi người quản lý hệ thống, hoặc khi chúng gặp rối hoặc

một lỗi nào dú khỏc.) Cỏc máy chủ thường được viết trong phương thức này

nếu chúng cần thực hiện các giao dịch nhỏ một cách nhanh chóng, hoặc nếu



Tìm hiểu về an toàn và bảo mật trên mạng



chúng cần “nhớ” thông tin. Việc viết chúng theo phương thức này trỏnh cỏc

trì hoãn kết hợp với việc bắt đầu một bản sao mới của máy chủ để điều khiển

mỗi yêu cầu được tạo ra.

Các máy chủ của loại này được bắt đầu từ các file /etc/rc của một hệ

thống UNIX, chính là các chỉ lệnh trình tiện ích giao diện được chạy khi

máy khởi động. Các ví dụ của các máy chủ điển hình bắt đầu từ các file

/etc/rc để điều khiển NFS, SMTP, và DNS. Trong các phiên bản dựa trên

BSD của UNIX, thông thường có một vài file trong /etc với cỏc tờn bắt đầu

với “rc” (ví dụ /etc/rc.boot). Trong các phiên bản hệ thống dựa trên Version

của UNIX, thông thường cú cỏc thư mục trong /etc thay cho các file (ví

dụ, /etc/rc.0.d); các thư mục bao gồm cỏc cõu lệnh khởi động khác nhau,

mỗi cái trong một file nhỏ.

Trong mỗi trường hợp, bạn cần cẩn thận xem xét tất cả các chỉ lệnh

khởi động và tất cả các chỉ lệnh mà chúng gọi, theo đệ quy. Thường nhiều

hơn một lệnh được chạy trong tiến trình của việc đưa ra một hệ thống trên

tất cả các phương thức. Trờn cỏc hệ thống UNIX hiện đại, các lệnh đó

thường gọi các lệnh khác, thỉnh thoảng gián tiếp qua đa mức. Ví dụ, bạn có

thể tìm thấy một lệnh khởi động gọi một lệnh khác để khởi động mạng, và

lệnh này lại gọi một lệnh khác để khởi động dịch vụ file. Bạn cũng có thể

tìm thấy các lệnh khởi động sử dụng các tuỳ chọn bí ẩn cho các lệnh tương

tự nhau (ví dụ, chúng thường chạy ifconfig với các tuỳ chọn ít sử dụng làm

cho ifconfig lấy được thông tin cấu hình từ các vị trí mơ hồ). Đảm bảo chắc

chắn bạn hiểu các tuỳ chọn này và bạn thay thế tuỳ chọn nào đó để thông tin

cho máy lấy được thông tin về chính nó từ mạng (hoặc từ các dịch vụ mà nó

thường cung cấp nhưng bạn đang tiến hành loại bỏ).



Tìm hiểu về an toàn và bảo mật trên mạng



Một số phiên bản của UNIX cũng có một tiến trình bổ sung bắt đầu từ

những file này được thiết kế để khởi động lại các máy chủ khác nếu nó bị

hỏng. Nếu một chương trình như vậy tồn tại trên một hệ thống, nó sẽ thử

khởi động các máy chủ khác nếu chúng được gỡ bỏ từ các file khởi động

nhưng không phải từ file cấu hình của nó. Mỗi khi loại bỏ chương trình này

hay hoặc đảm bảo chắc chắn để gỡ bỏ từ file cấu hình của chương trình bất

cứ máy chủ gỡ bỏ từ các file khởi động. Bạn sẽ lưu ý tới chương trình khi

bạn làm việc với các file khởi động.

Các dịch vụ bắt đầu bằng inetd

Một số dịch vụ được thiết kế để bắt đầu “trờn yờu cầu” và biến mất

sau khi chúng cung cấp dịch vụ được yêu cầu. Các máy chủ loại này được sử

dụng đặc trưng cho các dịch vụ hiếm khi được yêu cầu; cho các dịch vụ

không nhạy cảm để trì hoãn trong việc bắt đầu một máy chủ mới; và cho các

dịch vụ yêu cầu một tiến trình phục vụ mới để giải quyết với mỗi yêu cầu (ví

dụ, Telnet hay cỏc phiờn FTP, ở đó một máy chủ chia sẻ được sử dụng cho

mỗi phiên động).

Các máy chủ loại này thường được chạy từ dịch vụ inetd. (Innetd

phục vụ chính nó, vỡ nú chạy vô hạn định, được bắt đầu từ các file /etc/rc,

như được mô tả trong phần trước). Dịch vụ inetd nghe các yêu cầu cho các

dịch vụ đặc biệt trong file cấu hình /etc/inetd.conf. Khi nó nghe thấy một

yêu cầu như vậy, nó bắt đầu một dịch vụ đúng để xử lý yêu cầu.

7.2.2. Cách thức loại bỏ các dịch vụ

Nếu bạn loại bỏ một dịch vụ tới hạn, trước hết bạn cần tạo sự chắc

chắn bạn có một phương thức khởi động máy tính. Nó có thể là một đĩa

cứng thứ hai với một phân chia gốc đầy đủ trờn nú hoặc một ổ đĩa CD-ROM



Xem Thêm
Tải bản đầy đủ (.doc) (124 trang)

×