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
Các dạng đặc biệt của máy chủ pháo đài.
Việc lựa chọn máy.
Vị trí của máy chủ pháo đài trên mạng.
Lựa chọn phục vụ cung cấp bởi máy chủ pháo đài.
Không cho phép account người sử dụng trên máy chủ pháo
đài.
Xây dùng một máy chủ pháo đài.
Điều hành máy chủ pháo đài.
Bảo vệ máy móc và dự trữ.
Một máy chủ pháo đài là sự hiện diện công khai của bạn trên mạng.
Xem xét nó như một hành lang của một toà nhà. Người ngoài có thể không
thể đi lên theo bậc thang hoặc vào trong thang máy, nhưng họ có thể đi bộ tự
do trong hành lang và yêu cầu cái mà họ cần. (Dù có hay không họ sẽ có
được cái mà họ yêu cầu phụ thuộc vào điều khoản an toàn của toà nhà).
Giống như hành lang trong toà nhà của bạn, một máy chủ pháo đài có để
ngăn chăn những phần tử có tiềm năng không thân thiện. Pháo đài là một hệ
thống mà bất kỳ người bên ngoài nào –là bạn hay là kẻ thù – đều cần kết nối
theo cách thông thường với việc truy cập một hệ thống hay một dịch vụ nằm
trong tường lửa của bạn.
Nói chung, một pháo đài được phơi bày ở mức độ cao, bởi vì sự tồn
tại của nó được biết đến trên mạng. Với lý do này, những người xây dựng
tường lửa và những nhà quản lý cần tập trung các nỗ lực bảo mật cho pháo
đài. Bạn sẽ chú ý đặc biệt đến bảo mật của máy chủ khi xây dựng ban đầu và
trong quá trình điều hành. Bởi vì một máy chủ pháo đài là máy chủ được lộ
ra nhiều nhất, nó cũng cần trở thành máy chủ được củng cố nhất.
Tìm hiểu về an toàn và bảo mật trên mạng
Trong phần này chúng ta chỉ bàn về pháo đài đơn, nhưng nên nhớ
rằng có thể có đa pháo đài trong cấu hình tường lửa. Số lượng này phụ thuộc
vào các kích cỡ yêu cầu riêng và các tài nguyên. Nhưng mỗi cái được dựng
lên theo một nguyên lý chung, sử dụng các kỹ thuật chung.
Các pháo đài được sử dụng với nhiều kiến trúc và đường vào tường
lửa khác nhau, hầu hết thông tin trong phần này sẽ là phù hợp kể cả khi bạn
đang xây dựng một pháo đài để sử dụng với một bức tường lửa dựa trên gói
tin lọc, sự uỷ nhiệm, hay một tiếp cận lai. Các nguyên lý và các thủ tục cho
việc xây dựng một pháo đài được mở rộng cho việc bảo mật bất cứ máy chủ
nào. Bạn muốn sử dụng chúng, hay biến thể của chúng, cho máy chủ khác
đang trong tình trạng bảo mật nguy cấp, và có thể cho các máy chủ trong
tình trạng nguy cấp khác (chẳng hạn, máy chủ chính trong mạng nội bộ của
bạn).
1.
Các nguyên lý chung
Đây là hai nguyên lý cơ bản cho việc thiết kế và xây dựng một pháo
đài: giữ cho nó đơn giản, và được chuẩn bị để đề phòng pháo đài bị làm tổn
hại.
Giữ cho nó đơn giản
Pháo đài của bạn càng đơn giản, nó sẽ càng dễ bảo mật hơn.
Bất kể dịch vụ nào pháo đài sử dụng cũng có hỏng hóc phần mềm hay
lỗi cấu hình trong đó, và mỗi hỏng hóc hay lỗi có thể đưa đến các vấn đề về
an toàn. Để bảo mật được tốt nhất nó sẽ cung cấp tập nhỏ nhất các dịch vụ
với đặc quyền Ýt nhất mà nó có thể có, trong khi vẫn hoàn thành được vai
trò của nó.
Được chuẩn bị để đề phòng pháo đài bị làm tổn thương
Tìm hiểu về an toàn và bảo mật trên mạng
Bất chấp các cố gắng nhất của bạn để bảo đảm việc bảo mật của pháo
đài, các cuộc tấn công vẫn có thể xảy ra. Đừng chủ quan về chúng. Chỉ bằng
việc lượng trước điều tệ hại nhất, và lập kế hoạch cho nó, bạn sẽ chắc chắn
ngăn chặn được nó. Thường xuyên đặt câu hỏi: “Điều gì sẽ xảy ra nếu pháo
đài bị tổn hại?” trong suy nghĩ của bạn trong mọi lúc.
Tại sao chóng ta nhấn mạnh vào điểm này? Lý do đơn giản là: pháo
đài là một máy chắc chắn bị tấn công bởi vì nó là máy để lộ nhiều nhất ngoài
mạng Internet. Nó cũng là máy tác động ngược lại các hệ thống trong của
bạn vì thế giới bên ngoài có thể không trao dổi trực tiếp với hệ thống trong
của bạn mà trao đổi thông qua chính nó. Cố gắng đảm bảo pháo đài sẽ không
bị tấn công vào, nhưng luôn nghĩ đến câu hỏi:”Điều gì sẽ đến khi nó xảy
ra?”. Trong trường hợp pháo đài bị tấn công, bạn không muốn cuộc tấn công
này dẫn đến làm tổn hại toàn bộ bức tường lửa. Bạn có thể ngăn chặn nó
bằng cách không cho phép các máy nội bộ uỷ thác cho pháo đài nhiều hơn
những vấn đề cần thiết cho pháo đài thực hiện. Bạn sẽ cần xem xét một cách
cẩn thận mỗi một dịch vụ mà pháo đài cung cấp cho các máy nội bộ, và định
rõ, trên một nền tảng dịch vụ – bởi - dịch vụ, mức độ tin cậy và đặc quyền
mỗi dịch vụ thực sự cần.
Mét khi bạn đã có các quyết định này, bạn có thể sử dụng các kỹ thuật
để áp đặt chúng. Chẳng hạn, bạn có thể cài đặt các kỹ thuật điều khiển truy
cập chuẩn (mật khẩu, các thiết bị xác thực, ...) trong các máy chủ nội bộ,
hoặc bạn có thể đặt lọc gói tin giữa pháo đài và các máy nội bộ.
2.
Các dạng đặc biệt của pháo đài
Hầu hết trong chương này sẽ thảo luận về các pháo đài mà chúng là
các máy chủ được bảo vệ hay các máy chủ cung cấp các dịch vụ trên một
Tìm hiểu về an toàn và bảo mật trên mạng
mạng được bảo vệ. Có rất nhiều loại khác nhau của pháo đài, tuy nhiên,
chúng có cấu hình tương tự nhau nhưng có những yêu cầu đặc biệt riêng.
2.1 Các máy chủ hai giao diện phi lộ trình (Nonrounting
dual_homed host)
Một máy chủ hai giao diện (dual-homed host) không tìm đường có
các kết nối đa mạng, nhưng không qua sự đi lại giữa chúng. Do đó một máy
chủ có thể là chính một bức tường lửa, hoặc có thể là một phần của một
tường lửa phức tạp hơn. Với phần quan trọng nhất, các máy lưỡng đích
không tìn đường được định hình như các pháo đài khác, nhưng cần có sự
phòng ngừa thêm, sẽ thảo luận sau đây, để tạo sự chắc chắn là chúng thực sự
không tìn đường. Nếu một máy chủ phi lộ trình là một bức tường lửa đầy đủ
của bạn, bạn cần một đặc thù riêng trong cấu hình của nó và theo các chỉ dẫn
của pháo đài chuẩn với sự thận trọng đặc biệt.
2.2. Các máy nạn nhân (Victim machines)
Bạn có thể muốn chạy các dịch vụ mà chúng rất khó được cung cấp
một cách an toàn với cả bằng sự uỷ nhiệm hay loc gãi tin, hoặc các dịch vụ
mà quá mới mà bạn không biết các vấn đề bảo mật có liên quan của chúng.
Với mục đích này, một máy nạn nhân (hay vật cúng tế) có thể là hữu Ých.
Đây là một máy không có cái mà bạn quan tâm đến, và không có truy nhập
tới các máy mà một người xâm nhập có thể sử dụng. Nó chỉ cung cấp tập tối
thiểu các ứng dụng mà bạn cần đến. Nếu có thể, nó chỉ cung cấp một dịch vụ
không an toàn hay chưa thử nghiệm, để tránh các tương tác bất ngờ.
Các máy nạn nhân được cấu trúc như các pháo đài chuẩn, không kể
chúng thường được đặt để cho phép người sử dụng truy nhập. Người sử
dụng thường sẽ muốn bạn có nhiều hơn các dịch vụ và các chương trình mà
Tìm hiểu về an toàn và bảo mật trên mạng
bạn có thể có trong pháo đài chuẩn. Bạn không muốn người sử dụng trở nên
thoải mái trên một máy chủ nạn nhân; họ sẽ trở thành phụ thuộc vào nó, và
nó sẽ không làm việc lâu hơn như đã thiết kế. Nhân tố chính cho một máy
nạn nhân là nó có sẵn, và nếu nó bị làm tổn hại cũng không ai quan tâm.
2.3. Các pháo đài nội bộ (Internal bastion host)
Trong hầu hết các cấu hình, pháo đài chính có các giao dịch đặc biệt
với các máy nội bộ nào đó. Chẳng hạn, nó có thể trao đổi thư tín điện tử tới
một máy dịch vụ thư tín nội bộ, kết hợp với một máy dịch vụ định danh nội
bộ, hoặc qua các tin mạng người sử dụng tới máy dịch vụ tin nội bộ. Các
máy này là các pháo đài có hiệu lực cấp hai, và chúng có cấu hình giống với
pháo đài hơn là giống các máy chủ nội bộ chuẩn. Bạn có thể cần bỏ đi các
dịch vụ cho phép trong chúng, nhưng bạn cần thực hiện một tiến trình định
cấu hình tương tự.
3.
Việc lựa chọn máy (Choosing a Machine)
Bước đầu tiên trong việc xây dựng một pháo đài là quyết định loại
máy sẽ sử dụng. Bạn muốn tính tin cậy (nếu pháo đài bị hạ, bạn đánh mất
hầu hết các lợi Ých của việc kết nối mạng máy tính), tính chịu đựng, và tính
cấu hình. Phần này xem xét loại hệ điều hành bạn cần chạy, tốc độ mà một
pháo đài cần, và cấu hình phàn cứng cần được cung cấp.
3.1. Hệ điều hành nào?
Pháo đài phải là cái mà bạn quen thuộc. Bạn đang tiến hành xây dựng
một máy và hệ điều hành bao quát; đây không phải là lúc để học một hệ
thống mới hoàn chỉnh. Vì một pháo đài có cấu hình đầy đủ là một môi
trường rất hạn chế, bạn sẽ muốn có thể phát triển nó trong một máy khác, và
nó giúp cho việc giải quyết tốt để có thể trao đổi ngoại vi với các máy khác
Tìm hiểu về an toàn và bảo mật trên mạng
mà bạn sở hữu. (đây là một phần của vấn đề phần cứng, nhưng nó không
làm tốt cho bạn có thể cắm đĩa UNIX – formatted SCSI vào trong một máy
thuộc dòng Macintosh SCSI: giữa các phần cứng thì có giao diện, nhưng dữ
liệu không đọc được.
Bạn cần một máy đáng tin cậy trong phạm vi của những dịch vụ
Internet mà bạn muốn cung cấp cho những người sử dụng, với nhiều kết nối
tích cực đồng thời. Nếu site của bạn hoàn toàn được tạo ra bằng MS-DOS,
Windows, hoặc những hệ thống Macintosh, thì bạn có thể tìm thấy cho chính
bạn nền tảng cần khác (có thể là UNIX, có thể là Windows NT, có thể cái
khác) để sử dụng như máy chủ pháo đài của bạn. Bạn có thể không có khả
năng cung cấp hoặc truy nhập tất cả các dịch vụ mà bạn mong muốn, bởi vì
những công cụ thích đáng (các dịch vụ uỷ quyền, các hệ thống lọc gói tin,
hoặc những dịch vụ bình thường thậm chí cho những dịch vụ cơ bản như
SMTP và DNS) có thể không sẵn có trên đó.
UNIX là hệ điều hành phổ biến nhất trong việc đề nghị các dịch vụ
Internet, và các công cụ là có sẵn một cách phổ biến để tạo máy chủ pháo
đài trên các hệ thống UNIX. Nếu bạn đã có những máy UNIX, thì bạn cần
phải xem xét cẩn trọng UNIX cho máy chủ pháo đài của bạn. Nếu bạn
không có những nền tảng thích hợp cho một máy chủ pháo đài và cần phải
học một hệ điều hành mới theo cách nào đó, chúng tôi khuyến cáo bạn thử
với UNIX, vì ở đó bạn sẽ tìm thấy nhiều nhất các công cụ để xây dựng máy
chủ pháo đài.
Nếu tất cả người dùng của bạn, các máy IP- có khả năng là cái khác
với máy UNIX (chẳng hạn những hệ thống VMS), bạn có một quyết định
khó khăn để thực hiện. Bạn có thể có khả năng sử dụng một máy mà bạn đã
quen thuộc nh một máy chủ pháo đài và có những lợi thế của sự quen thuộc
Tìm hiểu về an toàn và bảo mật trên mạng
và tính có thể hoán đổi cho nhau được. Mặt khác, những công cụ mở rộng và
vững chắc cho việc xây dựng máy chủ pháo đài sẽ không sẵn sàng cho bạn
lựa chọn, và bạn sẽ phải ứng biến. Bạn có thể có được sự bảo mật nào đó
qua sự mập mờ (đừng tin tưởng vào nó; hệ điều hành của bạn có lẽ không
mập mờ như bạn nghĩ), trừ phi bạn có thể mất như nhiều hoặc nhiều hơn nếu
không có lược sử mà những máy chủ pháo đài dựa trên UNIX đề nghị. Với
UNIX, bạn có lợi thế của việc học qua những những lỗi của người khác cũng
nh của chính mình.
Hầu hết trong phần này giả thiết rằng bạn sẽ sử dụng một loại máy
UNIX nào đó như một máy chủ pháo đài. Đó là vì đa số các máy chủ pháo
đài là những máy UNIX, và một số chi tiết là phụ thuộc nhiều vào hệ điều
hành. Các nguyên lý cũng sẽ tương tự nếu bạn chọn sử dụng hệ điều hành
khác, nhưng các chi tiết sẽ thay đổi đáng kể.
Nếu bạn có một máy UNIX, phiên bản nào của UNIX mà bạn nên
chọn? Một lần nữa, bạn muốn cân bằng giữa cái mà bạn đã quen thuộc với
các công cụ có sẵn cho các phiên bản. Nếu site của bạn đã sử dụng một
phiên bản của UNIX, bạn có lẽ sẽ sử dụng phiên bản đó. Nếu site của bạn có
sự quen thuộc nào đó với vài phiên bản của UNIX, và những công cụ thích
hợp (được thảo luận trong chương này) là có sẵn cho tất cả chúng, hãy sử
dụng một phiên bản phổ biến Ýt nhất mà bạn vẫn thích. Làm cho bạn hài
lòng nhất và giảm đến hết cỡ khả năng xảy ra mà người tấn công có các
phương thức tiền biên dịch có thể việc tấn công vào máy chủ pháo đài của
bạn. Nếu bạn không quen thuộc với UNIX, hãy chọn bất kỳ phiên bản nào
bạn thích, miễn là nó sử dụng hợp lý rộng rãi. Như một quy tắc, nếu sự lựa
chọn của bạn là một phiên bản của UNIX có một nhóm người sử dụng liên
quan đến nó, thì nó đủ nổi tiếng để có thể tin cậy được.
Tìm hiểu về an toàn và bảo mật trên mạng
Mặc dầu các nhà cung cấp UNIX rất khác nhau trong việc mở rộng
của họ về các vấn đề bảo mật, sự khác nhau trong vấn đề bảo mật thực tế
giữa những phiên bản khác nhau của UNIX là Ýt hơn. Đừng giả thiết rằng
sự công khai được đưa ra cho các lỗ hổng bảo mật phản ánh số các lỗ hổng
bảo mật; nó là một phản ánh chính xác hơn tính phổ biến của hệ điều hành
và sự hài lòng của một nhà cung cấp để chấp nhận và đặt các vấn đề bảo
mật. Hài hước thay, những hệ điều hành với đa số các vấn đề tào lao gây rắc
rối có thể là cái an toàn nhất, vì chúng đã trở nên phù hợp.
Những khả năng UNIX hữu Ých
Mỗi hệ điều hành có những khả năng đặc biệt nhất định hoặc những
đặc tính mà có thể hữu Ých trong việc xây dựng một máy chủ pháo đài.
Chúng ta không thể mô tả tất cả những khả năng này cho tất cả các hệ thống,
nhưng chúng ta sẽ thông tin cho bạn một số Ýt đặc tính đặc biệt của UNIX
vì nó là một nền tảng máy chủ pháo đài chung.
setuid / setgid
Mỗi người dùng UNIX có một số xác định người sử dụng (uid) trong
việc bổ sung cho tên đăng nhập của anh ta hay cô ta, và thuộc về một hoặc
các nhóm nhiều những người sử dụng, cũng được xác định bằng các số
(gids). Hạt nhân UNIX sử dụng uid và các gids của một người sử dụng riêng
để xác định những file nào mà người sử dụng truy cập tới. Thông thường,
những chương trình UNIX chạy với các cho phép truy cập file của người sử
dụng, người thực hiện chương trình. Khả năng setuid cho phép cho một
chương trình sẽ được cài đặt để nó luôn luôn chạy với sự cho phép của
người chủ chương trình, kể cả khi có người sử dụng đang chạy chương trình.
Khả năng setgid cũng tương tự; nó cho phép chương trình cấp cho thành
Tìm hiểu về an toàn và bảo mật trên mạng
viên tạm thời trong một nhóm tới những người sử dụng (trong khi chạy
chương trình) mà không phải là những thành viên bình thường của nhóm đó.
chroot
Cơ chế chroot cho phép cho một chương trình có thể đảo ngược sự
thay đổi cảnh quan của nó của hệ thống file bằng việc thay đổi ý tưởng của
chương trình tại nơi gốc của hệ thống file. Mỗi lần một chương trình chroots
tới một phần đặc biệt của hệ thống, phần đó trở thành toàn bộ hệ thống file
cho đến khi chương trình được kết nối; phần còn lại của hệ thống file ngừng
tồn tại, từ điểm chương trình của cảnh quan.
Những thay đổi môi trường, nh những cái mà được tạo bởi
setuid/setgid và chroot, được thừa kế bởi bất kỳ những tiến trình phụ thuộc
nào mà một chương trình khởi động. Một phương thức chung của việc hạn
chế những chương trình trên một máy chủ pháo đài có thể sẽ chạy những
chương trình ở dưới các chương trình “gói”; các chương trình gói thực hiện
bất cứ cái gì mà setuid/ setgid, chroot, hoặc môi trường thay đổi công việc
khác là cần thiết, và khởi động chương trình thực tế.
3.2. Cần một máy tốc độ như thế nào
Máy chủ pháo đài không phải cần là một máy nhanh. Có một vài lý
do, không nói về giá cả, cần một máy chủ pháo đài mạnh để thực hiện công
việc của nó, thì quả thật không cần thiết. Các dịch vụ được yêu cầu trong
máy chủ pháo đài không cần nhiều tài nguyên nh vây.
Nhiều người sử dụng những máy 2 - 5 MIPS ( Cho ví dụ, hãy SUN3, MicroVax II, Hoặc 80386 ... dựa trên nền tản nền tảng UNIX) cho máy
chủ pháo đài của họ. Trung bình chỉ cần như vậy. Máy chủ pháo đài thật sự
không có nhiều công việc để làm. Cái hạn chế tốc độ của nó là sự có hạn bởi