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
khiển truy cập đơn giản cho việc bảo vệ, cũng như là phát triển đăng nhập,
cho các dịch vụ được bắt đầu bằng inetd.
Việc sử dụng gói tin TCP Wrapper là đơn giản. Đõy là những việc
bạn cần làm:
1. Cài đặt gói tin và đưa ra một cặp file điều khiển truy cập
đơn giản sẽ xác định các máy chủ nào và các mạng được cho phép
để truy cập tới loại dịch vụ nào.
2. Định lại cấu hình inetd của bạn để chạy chương trình
TCP Wrapper chính (gọi là tcpd) thay cho dịch vụ “thực”.
3. Khi một yêu cầu cho một dịch vụ được đưa vào, inetd
khởi động tcpd, nó ước lượng yêu cầu ngược lại các file cấu hình
TCP Wrapper. Chương trình này quyết định khi nào hay không để
đăng nhập yêu cầu, và khi nào hay không thực hiện yêu cầu này.
4. Nếu tcpd quyết định yêu cầu này được chấp nhận, nó bắt
đầu dịch vụ “thực” để thực hiện yêu cầu này.
Ví dụ, nếu bạn muốn để các kết nối Telnet từ một máy chủ đặc biệt
(172.16.1.2) tới máy của bạn, nhưng từ chối các kết nối Telnet từ tất cả các
máy chủ khác, bạn sẽ thay đổi đường truyền cho Telnetd trong file
/etc/inetd.conf của bạn để tuyên bố gì đó như:
telnet stream tcp nowait root /usr/local/libexec/tcpd telnetd
Bạn cũng sẽ không cần tạo một file /etc/host.allow thông tin cho gói
tin TCP Wrapper (chương trình tcpd) máy chủ nào được cho phép kết nối từ
đó:
Telnetd: 172.16.1.2
Tìm hiểu về an toàn và bảo mật trên mạng
Cuối cùng, bạn cần tạo một file /etc/host.deny để thông tin cho gói tin
TCP Wrapper để từ chối tất cả các kết nối từ tất cả các máy chủ bằng nặc
định, và để gửi thư tới gốc về mỗi thăm dò:
ALL : ALL : (/usr/local/etc/safe_finger –1 @%h | \
/usr/ucb/Mail –s “PROBE %d from %C” root)&
Lưu ý rằng file /etc/host.deny chỉ áp dụng cho việc bảo vệ các dịch vụ
bằng gói tin TCP Wrapper (nghĩa là, các dịch vụ mà bạn vủa định cấu hình
inetd để chạy tcpd thay cho dịch vụ thực). Nếu bạn không thông tin cho
inetd để chạy gói tin TCP Wrapper (chương trình tcpd) cho một dịch vụ
được đưa ra, sau đú gói tin TCP Wrapper sẽ không làm bất cứ việc gì để ý
đến dịch vụ đó.
Mặc dù tên của nó, gói tin TCP Wrapper hỗ trợ các dịch vụ dựa trên
UDP trong việc bổ sung tới các dịch vụ dựa trên TCP. Chú ý rằng gói tin
TCP Wrapper chỉ có thể điề khiển khi khởi động các dịch vụ dựa trên UDP;
nó không thể điều khiển truy cập tới các dịch vụ đó mỗi khi chúng được
khởi động, và nhiều dịch vụ dựa trên UDP sẽ treo xung quanh và tiếp tục
thực hiện các yêu cầu cho một thời kỳ nào đó trừ yêu cầu khởi tạo đầu. Một
số thời điểm thoát và huỷ cuối cùng, nhưng mỗi khi chúng vừa được khởi
tạo qua một yêu cầu hợp pháp
7.3.2 Sử dụng netacl để bảo vệ dịch vụ
Thành phần netacl của TIS FWTK cung cấp cùng khả năng với gói
tin TCP Wrapper. Để thực hiện cùng ví dụ nh ở trên ( ngoại trừ khả năng
theo vết từ những hệ thống không hợp pháp) sử dụng netacl, Bạn thay đổi
hàng cho telnetd bên trong file /etc/inetd.conf
telnet stream tcp nowait root /usr/local/lib/netacl telnetd
Tìm hiểu về an toàn và bảo mật trên mạng
Sau đó bạn có thể bổ sung dòng sau vào file cấu hình của FWTK
netperm (bất cứ nơi nào trong hệ thống của bạn)
netacl-telnetd: permit-hosts 172.16.1.2 -exec /usr/libexec/telnetd
7.4. Định lại cấu hình cho sự sản xuất
Bây giờ sẽ là thời gian chuyển máy từ cấu hình hữu Ých đối với bạn
khi bạn đang xây dựng nó tới cấu hình tốt nhất để chạy nó. Bạn sẽ cần làm
vài các thứ :
Xây dựng và định lại cấu hình nhân.
Loại bỏ tất cả các chương trình không cần thiết.
Gán hệ thống file sang dạng chỉ đọc nếu có thể.
Xoá tất cả các dịch vụ mà bạn không được sử dụng hàng ngày, bạn sẽ
gặp nhiều khó khăn trong khi làm việc với máy chủ pháo đài, e.g., khi bạn
cần thiết lập phần mềm mới hoặc nâng cấp những cái hiện hữu. Đấy là một
số đề nghị những việc mà bạn nên làm khi làm việc với máy chủ pháo đài.
Ghi tất cả các công cụ trên đĩa trước khi xóa chúng, và khôi
phục chúng từ đĩa khi cần. Không quên rằng để xóa
chúng mỗi lần sau khi bạn được làm.
Thiết lập một đĩa khởi động nhỏ, ngoài, với tất cả các công cụ
trên nó. Sau đó, hãy đưa đĩa vào và khởi động từ nó khi
bạn cần công cụ. Không tháo đĩa trong suốt thời gian
thao tác, tuy nhiên; bạn không muốn kẻ tấn công có thể
gắn đĩa và sử dụng những công cụ để chống lại bạn.
Bạn không muốn một người nào đó tấn công máy trong khi bạn đang
làm việc trên nó. Để tránh việc đó khỏi xảy ra, hãy đi theo những bước
này :
Tìm hiểu về an toàn và bảo mật trên mạng
1.
Ngắt kết nối của máy chu pháo đài khỏi mạng hoặc
Internet trước khi bạn bắt đầu.
2.
Đưa vào máy chủ pháo đài những công cụ nếu cần thiết.
3.
Sau khi bạn đã kết thúc công việc của bạn, trả lại nó cho
điều kiện điều hành bình thường
4.
Kết nối lại máy chủ pháo đài tới mạng hoặc hoặc mạng
của bạn tới Internet.
Bạn có thể thấy nó đơn giản hơn để đơn giản tháo rời và gắn đĩa của
máy chủ pháo đài tới một máy nội bộ như là một đĩa phi hệ thống; sau đó
bạn có thể sử dụng những công cụ của máy nội bộ không phải lo ngại việc
có chúng vẫn có sẵn khi máy chủ pháo đài được trả lại cho dịch vụ. Thủ tục
này cũng bảo đảm rằng máy chủ pháo đài không thể bị tổn thương để thỏa
hiệp từ bên ngoài trong khi bạn đang làm việc, một khi nó là hoàn toàn phi
chức năng trong khi đĩa của nó bị loại bỏ và không bị ảnh hưởng tới việc kết
nối lại ngẫu nhiên.
7.4.1 Định lại cấu hình và xây dựng lại hạt nhân
Bước đầu tiên trong pha này trong việc xây dựng máy chủ pháo đài
của bạn là xây dựng lại hạt nhân hệ điều hành để loại bỏ những khả năng hạt
nhân mà bạn không cần. Nó có thể có cơ hội đe doạ, nhưng nhìn chung nó là
một thao tác tương đối dễ hiểu; nó là cần thiết, vì bạn sẽ sử dụng cùng các
khả năng đó mà bạn đã sử dụng để cài đặt một kiểu thiết bị mới trên hệ
thống của bạn. Mỗi hệ thống UNIX, nh shipped, chứa dạng nào đó của cấu
hình hỗ trợ ( chúng hạn chế đáng kể trong cách định lại cấu hình hạt nhân
được hỗ trợ và trong đó bạn có thể thực hiện). Ngoài ra việc giảm bớt kích
thước nhân của bạn (và do đó tạo ra nhiều bộ nhớ có sãn hơn cho những
Tìm hiểu về an toàn và bảo mật trên mạng
mục đích khác), xây dựng lại hạt nhân phủ nhận những người tấn công cơ
hội để khai thác những khả năng này.
Một số khả năng là đặc biệt nguy hiểm. Đặc biệt, bạn cần phải chắc
chắn loại bỏ những khả năng sau hoặc các bộ điều khiển thiết bị :
•
NFS và những khả năng liên quan
•
Bất cứ khả năng nào cho phép mạng sniffing, ví
dụ Network Interface Tap (NIT) hay lọc gói tin Berkeley
(BPF)
Mặc dù NIT và BPF được cung cấp cho mục đích kiểm tra và gỡ lỗi,
chúng thường bị sử dụng bởi những người tấn công. NIT và BPF nguy hiểm
vì chúng để cho máy lấy tất cả các gói tin ra khái Ethernet mà nó được gán
vào, thay cho chỉ những gói tin gửi tới nó. Việc vô hiệu hóa những khả năng
này có thể cản trở bạn sử dụng máy nh một hệ thống lọc gói tin, vì vậy bạn
có thể không thể xóa chúng trong tất cả các kiến trúc.
Nếu máy chủ pháo đài của bạn là một máy chủ lưỡng đích, thì đây là
lúc vô hiệu hóa IP đẩy tới.
Bạn phải là cẩn thận khi bạn vô hiệu hóa những khả năng hạt nhân
hơn là khi bạn vô hiệu hóa những dịch vụ bắt đầu bằng inetd hay ở thời điểm
khởi động từ các file /etc/rc (như đã mô tả trước đây). Có nhiều sự phụ thuộc
lẫn nhau giữa những khả năng hạt nhân. Với lý do này, đôi khi khó xác định
chính xác khả năng đã cho nào được sử dụng. Hệ quả của việc vô hiệu hóa
một khả năng thật sự được cần có thể là rất xấu, ví dụ hạt nhân mới có thể
không khởi động.
Đảm bảo rằng bạn theo những chỉ dẫn của nhà cung cấp của bạn cho
việc xây dựng và cài đặt những hạt nhân mới. Luôn luôn giữ một bản sao
Tìm hiểu về an toàn và bảo mật trên mạng
lưu hạt nhân cũ của bạn. Nếu bạn có một bản sao lưu, thì bạn có thể khởi
động từ nó khi bạn tìm thấy cái gì đó bị sai với hạt nhân mới. Chắc chắn bạn
biết cách khởi động một hạt nhân sao lưu và xem thủ tục trước khi bạn thử
khởi động trên hạt nhân mới. Chắc chắn hạt nhân sao lưu ở trong phần dành
riêng gốc; bạn không thể khởi động từ một hạt nhân không nằm trên phần
dành riêng gốc.
Khi bạn có thể khởi động lại máy, qua các file cấu hình hạt nhân với
phương thức giống như khi bạn qua những file khởi động, kiểm tra mỗi
tuyến đơn để chắc chắn rằng nó là cái bạn muốn. Một lần nữa, xem xét
những vị trí mà một file cấu hình chứa file khác, và kiểm tra thư mục của
bạn để đảm bảo rằng bạn đã xem xét tất cả các file cấu hình đã được tham
khảo. Thông thường có một file cho chứa những bộ điều khiển thiết bị và
một hoặc hơn nhiều hơn cho những tham sè; IP đẩy tới sẽ ở trong file đó.
Mét khi bạn đã có một hạt nhân đang hoạt động, bạn có lẽ sẽ muốn
xóa hoặc mã hóa hạt nhân “đầy đủ chức năng” cũ. Thay thế nó bởi một bản
sao lưu của hạt nhân cực tiểu đang hoạt động. Nh vậy sẽ giữ một người bẻ
khoá mà bằng cách nào đó xoay xở để phá hỏng máy của bạn đơn giản sử
dụng hạt nhân cũ để khởi động lại, và do đó khôi phục tất cả các dịch vụ mà
bạn đã cẩn thận vô hiệu hóa. Với những lý do tương tự, bạn có lẽ sẽ cũng
muốn xóa những file và những chương trình cần để xây dựng một hạt nhân
mới.
Nếu hạt nhân của bạn sử dụng các mô đun có thể tải được, thì có thể
khó xác định khi nào chúng được sử dụng. Bạn sẽ muốn xóa hoặc mã hóa
mọi thứ mà bạn không muốn sử dụng, nhưng vì chúng không phải thường
xuyên được tải, bạn có thể không biết chúng là cái gì. Giữ cho một môi
trường khởi động luân phiên thuận tiện, thử di chuyển chúng ra khỏi thư
Tìm hiểu về an toàn và bảo mật trên mạng
mục cho các mô đun có thể tải. Chạy máy qua các bước của nó trước khi bạn
cuối cùng loại bỏ hoặc mã hóa chúng.
Cẩn thận! Nhà cung cấp của bạn có thể đã cung cấp các bản sao của
các hạt nhân “chung” (mà tiêu biểu có mỗi khả năng có thể được cho phép)
trong các định vị bất ngờ cho việc sử dụng trong việc cài đặt máy khách
( không tồn tại) của nó. Ví dụ SunOS 4.x có những hạt nhân như vậy trong
thư mục /Usr/stand. Mò mẫm xung quanh trong tất cả các thư mục nơi
những file cài đặt được giữ và tất cả các thư mục cho các máy khách . Tài
liệu nói chung thông tin cho bạn nơi có các hạt nhân máy khách, nhưng hiếm
khi thông tin cho bạn các nội bộ của tiến trình cài đặt. Kiểm tra tài liệu cho
lời khuyên khôi phục tai hoạ, mà có thể có Ých thông tin cho bạn nơi để
định vị không gian các hình ảnh hạt nhân.
7.4.2. Loại bỏ các chương trình không cần thiết
Bước tiếp theo sẽ loại bỏ tất cả các chương trình mà không cần thiết
đối với thao tác hằng ngày. Nếu một chương trình không ở đó, thì một
người tấn công không thể khai thác bất kỳ những lỗi nào mà nó có thể chứa.
Nó đặc biệt đúng cho các chương trình setuid/setgid, đây là một đích rất hấp
dẫn cho một người tấn công. Bạn cần phải loại bỏ những chương trình mà
bạn thường nghĩ chúng cần thiết. Nhớ rằng máy chủ pháo đài đang thuần túy
cung cấp những dịch vụ Internet; nó không cần là một môi trường thuận tiện
để làm việc trên đó.
Những hệ thống Window và những trình biên dịch là những ví dụ của
các chương trình chính mà bạn có thể giải phóng. Những người tấn công tìm
thấy các chương trình này rất hữu Ých : các hệ thống Window là nền phong
phó cho các vấn đề bảo mật, và những trình biên dịch có thể bị sử dụng để
xây dựng những công cụ cho chính người tấn công.
Tìm hiểu về an toàn và bảo mật trên mạng
Trước khi xóa những chương trình như trình biên dịch, đảm bảo rằng
chính bạn là người sử dụng chúng cuối cùng; đảm bảo rằng bạn xây dựng,
cài đặt, và kiểm tra mọi thứ bạn sẽ cần trên máy này, như những công cụ cho
sự kiểm toán hệ thống (được thảo luận sau trong chương này).
Thay vì đơn giản xóa khóa những công cụ mà bạn chờ đợi một người
tấn công sử dụng, như trình biên dịch, bạn có thể muốn thay thế chúng với
các chương trình đưa lên một báo động (ví dụ, gửi thư hoặc nhả máy nhắn
tin của bạn) khi người nào đó cố gắng chạy chúng. Bạn có thể thậm chí
muốn có các chương trình dừng hệ thống sau đưa lên báo động, nếu bạn tin
tưởng sẽ tốt cho máy khi bị hỏng hơn là dưới là sự tấn công. Đây là một
phương thức đầu tiên làm bẽ mặt chính bạn, tuy nhiên; chính bạn có lẽ là
người hầu nh quên nơi bạn sẽ cố gắng chạy một lệnh ngăn cấm. Nó cũng là
phương thức tốt để thiết lập cho chính bạn cho sự từ chối dịch vụ tấn công.
Bạn sẽ muốn quét qua hai lần tìm kiếm các thứ để xóa :
1.
Qua tất cả các thư mục chuẩn cho các nhị phân trên hệ
thống của bạn (mọi thứ trong đường dẫn gốc hoặc trong đường dẫn
người dùng mặc định). Nếu bạn không chắc chắn liệu một chương
trình được cần đến, hãy bỏ cho phép thực hiện trên nó một thời gian
(mét Ýt ngày) trước khi bạn loại bỏ hoặc mã hóa nó và xem cái gì xảy
ra. Bạn có thể cũng muốn chạy máy một thời gian trước bạn quét và
kiểm tra các thời điểm truy cập trên các file để thấy phải chăng chúng
đã được sử dụng.
2.
Sử dông find để tìm kiếm mỗi file trên hệ thống mà có bit
setuid hoặc setgid được chạy. Các đối số để tìm thấy khác căn bản từ
hệ thống đến hệ thống, nhưng bạn sẽ có thể muốn cái gì đó nh thế.
Tìm hiểu về an toàn và bảo mật trên mạng
find / -type f \( -perm -04000 -o -perm -02000 \) -ls
3.
Vài phiên bản của find cung cấp những căn bản đặc biệt
cho việc xác định các file setuid và setgid.
7.4.3. Gắn các hệ thống file chỉ đọc
Mét khi bạn đã có máy chủ pháo đài được định cấu hình, bạn không
muốn bất cứ ai (đặc biệt là một người tấn công) có thể thay đổi cấu hình. Để
đề phòng điều này xảy ra, hãy đặt các hệ thống file trên máy chủ pháo đài
chỉ được đọc nếu có thể (đặc biệt các hệ thống file chứa lập trình các nhị
phân) để bảo vệ chống lại sự can thiệp.
Nó sẽ tốt hơn nếu bạn có thể sử dụng phần cứng bảo vệ chống ghi;
một người tấn công có thể có khả năng đặt lại các đĩa với việc cho phép ghi
mà không đặt sự truy cập vật lý tới máy, nhưng nó không thực hiện tốt nếu
phần cứng bảo vệ chống ghi trên đĩa đang chạy. Hầu hết các đĩa IPI và SMD
có những chuyển đổi cho điều này trên những bảng đằng trước của chúng.
Nhiều đĩa SCSI có một cầu nối nhảy cóc “Vô hiệu hóa ghi” mà bạn có thể
đặt. Nếu bạn tìm thấy khả năng đĩa hỏng và loại bỏ nó từ trường hợp không
thể chấp nhận như một cách để có truy cập được ghi, bạn có thể báo cầu nối
nhảy cóc này đến một bộ chuyển đổi bên ngoài trên đĩa đính kèm.
Tất nhiên bạn không thể bảo vệ chống ghi mọi thứ. Bạn phải cung cấp
một số lượng nhất định không gian các hệ thống file có thể ghi cho các thứ
nh không gian hỗ tạp, hệ thống các bản ghi, và thư từ đẩy ra đường ống máy
in. Bạn có thể có khă năng sử dụng một đĩa RAM cho việc này; tuy nhiên,
bạn sẽ phải chắc chắn là hệ điều hành của bạn hỗ trợ việc này, mà bạn có đủ
RAM, và bạn nghĩ rằng bạn có thể làm mất nội dung của đĩa RAM (ví dụ,
Tìm hiểu về an toàn và bảo mật trên mạng
thư điện tử trong khi truyền giữa những máy chủ nội bộ và Internet) mỗi khi
máy của bạn khởi động lại.
Với đa số các phiên bản của UNIX, bạn cũng sẽ phải hoặc cung cấp
không gian đĩa có thể ghi cho bộ nhớ trao đổi hoặc bỏ trao đổi. Nhiều phiên
bản của UNIX không cho phép bạn bỏ trao đổi; tuy nhiên, chúng thường sẽ
cho phép bạn sử dụng một đĩa riêng biệt cho không gian trao đổi, và đĩa đó
có thể an toàn được để lại có thể ghi. Việc sử dụng một đĩa RAM sẽ làm
tăng thêm việc sử dụng bộ nhớ của bạn tới mức mà bạn có lẽ sẽ cần không
gian trao đổi.
Những hệ thống dựa trên BSD 4.4 - Lite (chẳng hạn, những phiên bản
hiện thời của NetBSD, FreeBSD, và sản phẩm BSDI) có một thuộc tính
không thay đổi mới có thể được đặt trên một cơ sở bằng file. Nếu một file là
rõ ràng “không thay đổi”, file không thể được thay đổi, thì không chỉ bởi
gốc, trừ khi hệ thống đang chạy trong kiểu đơn người sử dụng. Nếu hệ điều
hành của bạn cung cấp khả năng này, hãy sử dụng nó để bảo vệ các file cấu
hình và các chương trình của bạn khỏi sự xem xét bởi một người tấn công.
(Chúng ta khuyến cáo rằng cách tiếp cận đó chỉ khi bạn không thể sử dụng
phần cứng bảo vệ chống ghi, hoặc một lớp bổ sung bảo mật để sử dụng với
phần cứng bảo vệ chống ghi. Vì nó được thực hiện trong phần mềm, nó sẽ
có vẻ dễ bị tổn hại hơn.)
7.5. Kiểm tra bảo mật
Mét khi bạn có máy chủ pháo đài đã định cấu hình, bước tiếp theo sẽ
là chạy một kiểm toán bảo mật. Có hai lý do để làm việc này. Trước hết, nó
cho cho bạn một cách để bảo đảm rằng bạn chưa có bất cứ giám sát nào
trong thời gian cài đặt hệ thống. Sau nữa, nó thiết lập một “tuyến gốc”, hoặc
Tìm hiểu về an toàn và bảo mật trên mạng
một cơ sở cho sù so sánh, chống lại cái bạn có thể so sánh các kiểm toán
tương lai. Trong cách này, bạn sẽ có thể phát hiện ra bất kỳ phá rối máy nào.
7.5.1. Kiểm tra gãi tin.
Đa số các gói kiểm toán có hai mục đích cơ bản :
•
Kiểm tra cho các lỗ hổng an toàn đã biết. Đó là
những lỗ hổng mà đã bị để hở bởi những người quản trị hệ
thống, bị những người tấn công khai thác cho việc gãy hệ
thống, hoặc đưa ra tài liệu trong những quyển sách và những
giấy máy tính bảo mật.
•
Thiết lập một cơ sở dữ liệu để tổng kiểm tra tất cả
các file trên một hệ thống; việc làm điều này cho phép một
người quản trị hệ thống đoán nhận những những sự thay đổi
tương lai để sắp xếp các thay đổi không hợp pháp của các file
riêng.
Có nhiều các gói tin kiểm toán tự động tốt có sẵn rộng rãi trên
Internet. Ba gói thường được sử dụng nhất là:
•
COPS- The Computer Oracle and Password System,
được phát triển bởi Dan Farmer và Gene Spafford
•
Tiger - được phát triển nh một bộ phận của gói tin
TAMU bởi trường đại học Texas A&M
•
Tripwire- được phát triển bởi Gene H. Kim và Gene
Spafford
Cả COPS và Tiger đều kiểm tra cho những lỗ hổng an toàn nổi tiếng.
Có sự gối lên nhau quan trọng trong việc kiểm tra của COPS và Tiger; tuy