NGHIÊN CỨU CÁC CƠ CHẾ ĐẢM BẢO AN NINH MÁY TÍNH MÀ CÓ THỂ THỰC HIỆN ĐƯỢC TỪ PROXY SERVER
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
-o0o -TIỂU LUẬN
MÔN : AN TOÀN VÀ BẢO MẬT THÔNG TIN
ĐỀ TÀI :NGHIÊN CỨU CÁC CƠ CHẾ ĐẢM BẢO AN NINH MÁY TÍNH MÀ CÓ THỂ THỰC HIỆN ĐƯỢC TỪ PROXY
SERVER
Giáo viên hướng dẫn : Nguyễn Duy Tân Nhóm sinh viên thực hiện : Bá Thị Hà
Hưng Yên, Tháng 12 năm 2009
Trang 21 Tìm hiểu về Proxy Server.
Proxy Server (PS) là một server Internet làm chức năng kiểm soát việc truy cập Internet của các máy khách Sử dụng PS, công ty có thể cấm nhân viên truy cập những địa chỉ Web không mong muốn, cải thiện tốc độ nhờ lưu trữ cục bộ các trang Web và giấu định danh của mạng nội bộ để gây khó khăn cho người muốn thâm nhập từ bên ngoài
Proxy Server là một server đóng vai trò trung gian giữa người dùng trạm( workstation user) và Internet Với Proxy Server, các máy khách( clients) tạo
ra các
kết nối đến các dịch vụ mạng một cách gián tiếp
Khi user yêu cầu( request) một dịch vụ Internet( vd như yêu cầu www.abc.com), thay vì yêu cầu này sẽ được gởi đến trình chủ(Server) www.com liền, nó sẽ được gởi đến proxy server Proxy Server tiếp nhận và xử lý yêu cầu( nếu yêu cầu này là hợp lệ)
Sử dụng chức năng bộ đệm Cache: kiểm tra xem yêu cầu này có trong bộ đệm Cache hay không, nếu có nó sẽ gởi trả lại đáp ứng( response) về cho user( không cần kết nối đến trình chủ chỉ định
Nếu yêu cầu không có trong bộ đệm Cache thì Proxy Server đóng vai trò là user( đại diện cho, chứ không phải là chính user đã gởi yêu cầu) và sử dụng địa chỉ
IP riêng của nó để gởi yêu cầu đến Server chỉ định( www.abc.com) trên Internet Sau khi nhận được Response từ Server chỉ định, Proxy Server sẽ gởi về cho user
2 Lợi ích của việc dùng Proxy Server
Để đáp ứng những nhu cầu của người sử dụng khi cần truy xuất đến những ứng dụng cung cấp bởi internet nhưng vẫn đảm bảo được an toàn cho hệ thống cục bộ Trong hầu hết những phương pháp được đưa ra để giải quyết điều này là cung cấp một host đơn để truy xuất đến internet cho tất cả những người sử dụng Tuy nhiên, phương pháp này không phải là phương pháp giải quyết thỏa mản nhất bởi vì nó
Trang 3tạo cho người sử dung cảm thấy không thoải mái Khi truy xuất đến internet thì họ không thể thực hiện những công việc đó một cách trực tiếp, phải login vào hual_homed host, thực hiện tất cả những công việc ở đây, và sau đó bằng cách nào
đó chuyển đổi kết quả đạt được của công việc trở lại workstation sở hữu Điều này trở nên rất tồi tệ ở những hệ thống với nhiều hệ điều hành khác nhau, vd: nếu hệ
thống là bastion_host nhưng riêng dual_host là unix
Khi dual_home host được thiết kế trên mô hình không có proxy, điều đó sẽ khiến cho người sử dụng thêm bực bội và đáng chú ý hơn là giảm đi những tiện ích mà intenet cung cấp, tồi tệ hơn là chúng thường không cung cấp một cách không an toàn và đầy đủ,khi một máy gồm nhiều người sử dụng tất nhiên độ an toàn của nó
sẽ giảm, đặt biệt khi cố gắn bắt với vạn vật bên ngoài Proxy server giúp người sử dụng thoải mái hơn và an toàn cho dual homed host, thay thế yêu cầu của người sử dụng bằng cách gián tiến thông qua dual homed host Hệ thống proxy cho phép tất
cả những tương tác nằng dưới một hình thức nào đó User có cảm giác làm việc trực tiếp với server trên internetmà họ thật sự muốn truy xuất
PS giống như một vệ sĩ: bảo vệ máy khách khỏi những rắc rối thường có trên Internet Một PS thường nằm bên trong tường lửa, giữa trình duyệt Web và server thực, làm chức năng tạm giữ những yêu cầu Internet của các máy khách để chúng không thể giao tiếp trực tiếp với Internet Điều này bảo đảm rằng người dùng không truy cập được thông tin không mong muốn, chẳng hạn như những cơ sở Web về hình ảnh khiêu dâm hay những trang Web bị công ty “cấm cửa”
Với PS, các công ty có thể kiểm soát được việc truy cập Internet bằng cách loại bỏ một số địa chỉ Web khỏi danh sách các Web site được phép truy cập của máy khách Ví dụ không muốn nhân viên mua bán cổ phiếu trong giờ làm việc thì nhà quản trị mạng có thể dùng PS để khóa việc truy cập vào các site tài chính trong một số giờ
Trang 4Mọi yêu cầu của máy khách đều phải đi đến PS, nếu địa chỉ IP có trên proxy, nghĩa
là Web site này được lưu trữ cục bộ, thì trang này sẽ được phép truy cập mà không cần phải kết nối với Internet; nếu không có trên PS và trang Web không thuộc loại
bị cấm, yêu cầu sẽ được chuyển đến server thực và sau đó ra Internet
PS cho phép các công ty lưu trữ cục bộ các trang Web thường được truy cập nhất trong bộ đệm và như thế sẽ tiết kiệm được chi phí Việc ghi xuống bộ đệm những trang Web cũng làm tăng tốc độ hiển thị các trang Web vì chúng được truy cập nhanh chóng từ đĩa cứng thay vì phải qua Internet
Người dùng phổ biến nhất của PS là những nhà cung cấp dịch vụ Internet như America Online và những công ty lớn, không chỉ muốn tải xuống nhanh mà còn muốn chia sẻ một tập những địa chỉ IP, với số lượng hạn chế, cho các nhóm người dùng của mình; hơn nữa việc gán địa chỉ Internet cho tất cả người dùng rất tốn thời gian
PS cũng bảo vệ mạng nội bộ khỏi bị xác định bởi bên ngoài Nó thực hiện chức năng này bằng cách mang lại cho mạng hai định danh: một để dùng trong nội bộ và một để dùng cho bên ngoài Điều này tạo nên một “bí danh” đối với thế giới bên ngoài, nhờ thế sẽ gây khó khăn nếu người dùng muốn “tự tung tự tác” hay các tay
bẻ khoá muốn xâm nhập trực tiếp đến một máy nào đó Ngoài ra, cách này cũng giúp mạng duy trì được tính “nặc danh tương đối” để những nhà tiếp thị khó lòng lần theo dấu vết những Web site mà người dùng có truy cập đến
PS còn làm cho việc sử dụng băng thông hiệu quả hơn Với băng thông hạn chế mà yêu cầu truy cập Internet lại rất cao, thì PS là cách có lợi Giả sử, một cơ quan có hai kết nối: kết nối 56K bit/s với Internet và kết nối Ethernet cục bộ với 50 PC Nếu không có PS, mỗi yêu cầu và phản hồi Internet đều truyền trên đường 56K, như vậy có thể xảy ra tình trạng tắt nghẽn nếu có nhiều người dùng truy cập đồng thời Internet PS cho phép người dùng truy cập Internet một cách cục bộ qua kết
Trang 5nối Ethernet, nhờ vậy nhiều yêu cầu cho cùng trang Web sẽ không tràn ngập đường kết nối 56K
Tóm lại Proxy Server có các ưu điểm sau:
+ Sử dụng chức năng bộ đệm Cache: tăng hiệu suất dịch vụ mạng( user nhận được response nhanh chóng
+ Dữ liệu request được gởi đến Server chỉ định bằng địa chỉ IP của Proxy Server nên ngăn không cho những truy cập không hợp lệ vào máy user thông qua Internet
+ Dữ liệu response gởi về từ Server chỉ định được Proxy Server xử lý( kiểm tra virus, lọc dữ liệu để loại bỏ những dữ liệu không mong muốn…) trước khi chuyển
về cho user
Tuy nhiên, không phải lúc nào PS cũng hữu ích, ví dụ như khi gặp phải loại thông tin không cho phép lưu lại trên bộ đệm kiểu như CGI (PC World Việt Nam 10/99, trang 74) Mặt khác, tốc độ cũng sẽ bị ảnh hưởng vì PS kiểm tra từng yêu cầu trước khi phản hồi
Đó chính là sự chậm trễ giữa thời gian xuất xuất hiện một dịch vụ mới và proxy cho dịch vụ đó, khoảng thời gian phụ thuộc vào phương pháp thiết kế proxy cho dịch vụ đó, điều này cho thấy khá khó khăn khi đưa dịch vụ mới vào hệ thống khi chưa có proxy cho nó thì nên đặt bên ngoài fire wall, bởi vì nếu đặt bên trong hệ thống thì đó chính là yếu điểm
Đôi khi cần một proxy khác nhau cho mỗi nghi thức, bởi vì proxy server phải hiểu nghi thức đó để xác định những gì được phép và không được phép Để thực hiện nhiệm vụ như là client đến server thật và server thật đến proxy client, sự kết hợp , install và config tất cả những server khác nhau đó có thể rất khó khăn
Những dịch vụ proxy thường sửa đổi chương trình client, procedure hoặc cả hai Ngoại trừ một số dịch vụ được thiết kế cho proxying , proxy server yêu cầu sửa đổi
Trang 6với client hăọc procedure, mỗi sự sửa đổi có những bất tiện riêng của nó, không thể luôn luôn sử dụng công cụ có sẵn với những cấu trúc hiện tại của nó
Proxying dựa vào khà năng chèn vào proxy server giữa server thật và client mà yêu cầu tác động tương đối thẳn thắn cả hai
Những dịch vụ proxy không bảo vệ cho hệ thống ứng với những nghi thức kém chất lượng Như một giải pháp an toàn, proxying dựa vào những khả năng xác định những tác vụ trong nghi thức an toàn Không phải tất cả các dịch vụ đều cung cấp theo khuynh hướng an toàn này, như nghi thức Xwindows cung cấp khá nhiều những tác vụ không an toàn
3 Proxying đã thực hiện như thế nào?
Những chi tiếc trong việc proxying thực hiện như thế nào khác nhau từ dịch vụ này đến dịch vụ khác, khi setup proxying, có một vài dịch vụ thưc hiện dể dàng hoặc tự động, nhưng vài dịch vụ có sự chuyển đổi rất khó khăn Tuy nhiện, trong hầu hết những dịch vụ ngoài yêu cầu những phần mềm proxy server tương ứng, trên client cũng cần phải có những yêu cầu như sau:
Custum client software: phần mềm loại này phải biết như thế nào để liên kết với proxy server thay server thật khi user yêu cầu và yêu cầu proxy server những gì server thật kết nối đến Những phần mềm custom client thường chỉ có hiệu quả chỉ một vài platform
Vd: packet getaway từ Sun là một proxy packet cho FTP và Telnet, nhưng nó chỉ được sử dụng trên hệ thống SUN bởi vì nó cung cấp recompiled Sun binaries Mặc dù nếu phần mềm hiệu quả cho platform tương ứ ng, nó cũng có thể không phải điều mà user mong muốn, vd: macintosch có hàng chục chương trình PTF client, một trong vài số đó có những giao diện khá ấn tượng với user, những phần khác có những đặc điểm hửu dụng khác Anarchie là chương trình mà nó kết hợp một archie client và FPT client bên trong chương trình đơn, vì vậy user có thể tìm
Trang 7file với archie và dùng FPT để lất nó, tất cả với giao diện người sử dụng thích hợp, điều này sẽ không may mắn cho chúng ta nếu muốn hổ trợ proxy server
Sử dụng những chuyển đổi client cho proxying không dễ dàng thuyết phục user Trong hầu hết những hệ thống sử dụng client không chuyển đổi những kết nối bên trong và một số chuyển đổi chỉ với những kết nối bên ngoài
Custom user procedure: user dùng phần mềm client chuẩn để giao tiếp với proxy server và nó kết nối với server thật, thay thế trực tiếp server thật
Proxy server được thiết kế thực thi với phần mềm client chuẩn Tuy nhiên, chúng yêu cuầ user theo những custom procedure User trước tiên kết nối với proxy server và sau đó cung cấp proxy server tên host mà nó muốn kết nối đến Bởi vì một vài nghi thức được thiết để chuyển những thông tinnày, user không phải nhớ tên proxy server nhưng củng phải nhớ tên host mà nó muốn giao tiếp
Như thế nào để thực hiện công việc này, cần phải nắm được những thủ tục đặc trưng theo sau mỗi nghi thức
Vd: với FTP, có thể user muốnn nhận một file từ anonymous FTP server, user cần thực hiện những bước sau:
Sử dụng bất kỳ FTP client , user kết nối đến proxy server thay thế trực tiếp đến anonumous FTP server
Tại dấu nhắc user name, trong việc thêm vào tên chỉ định muốn sử dụng, user phải chỉ định tên server thật muốn kết nối
4 Các dạng Proxy System
a,Dạng kết nối trực tiếp
Phương pháp đầu tiên được sử dụngtrong kỹ thuật proxy là cho user kết nối trực tiếp đến firewall proxy, sau đó proxy hỏi user cgo địa chỉ host hướng đến, đó là một phương pháp brute force sử dụng bởi firewall một cách dể dàng, và đó cũng là nguyên nhân tại sao nó là phương pháp ít thích hợp
Trang 8Trước tiên, yêu cầu user phải biết địa chỉ của firewall, kế tiếp nó yêu cầu user nhập vào hai địa chỉ hai địa chỉ cho mỗi kết nối: địa chỉ của filewall và địa chỉ đích hướng đến Cuối cùng nó ngăn cản những ứng dụng hoặc những nguyên bản trên máy tính của user điều đó tạo sự kết nối cho user, bởi vì chúng không biết như thế nào điều khiển những yêu cầu đặc biệt cho sự truyền thông với proxy
b,Dạng thay đổi Client
Phương pháp kế tiếp sử dụng proxy setup phải thêm vào những ứng dụng tại máy tính của user User thưc thi những ứng dụng đặc biệt đó với việc tạo ra sự kết nối thông qua firewall User với ứng dụng đó hành động chỉ như những ứng dụng không sửa đổi User cho địa chỉ của host hướng tới Những ứng dụng thêm vào biết địa chỉ firewall từ file config cuc bộ, setup sự kết nối đến ứng dụng proxy trên firewall, và truyền cho nó địa chỉ cung cấp bởi người sử dụng Phương pháp này rất khó hiệu quả và có khả năng che dấu người sử dụng, tuy nhiên, cần có một ứng dụng client thêm vào cho mỗi dịch vụ mạng là một đặt tính trở ngại
c,Proxy vô hình
Một phương pháp phát triển gần đây cho phép truy xuất đến proxy, trong vài hệ thống firewall được biết như proxy vô hình Trong mô hình này, không cần có những ứng dụng thêm vào với user và không kết nối trực tiếp đến firewall hoặc biết rằng firewall có tồn tại Sử dụng sự điều khiển đường đi cơ bản, tất cả sự kết nối đến mạng bên ngoài được chỉ đường thông qua firewall Như những packet nhập vào firewall, tự động chúng được đổi hướng đến proxy đang chờ Theo hướng này,firewall thực hiện rất tốt việc giả như host đích Khi kết nối tạo ra firewall proxy , client applycation nghỉ rằng nó được kết nối đến server thật, nếu được phép, proxy applycation sau đó thực hiện hàm proxy chuẩn trong việc tạo kết nối thứ hai đến server thật
Proxy lớp ứng dụng thì đối nghị với proxy lớp circuuit: application_level proxy được thực thi ở lớp ứng dụng Nó cung cấp cho từng dịch vụ riêng và interpret
Trang 9những dòng lệnh trong nghi thức đó Một circuit_level proxy tạo nên một circuit giữa server và client không cần phải interpret những nghi thức này Nói chung, application_level proxy sử dung modified client Để tạo ra kết nối proxy, phải biết
vị trí nào muốn kết nối đến Một hybrid gateway đơn giản có thể chặn đứng kết nối, nhưng một proxy host chỉ có thể nhận kết nồima đề nghị với nó, và phải chỉ ra
vị trí muốn kết nối Một application_level proxy có thể nhận thông tin trong từng nghi thức riêng Một circuit_level proxy không thể interpret theo từng nghi thức và cần phải có thông tin hổ trợ cho nó thông qua một cách nào khác ưu điểm của circuit_level proxy server là ở đó nó cung cấp cho hầu hết các nghi thức khác nhau , hầu như circuit_level proxy cũng là proxy server chung cho tất cả các dạng nghi thức, tuy nhiên không phải tất cả các nghi thức đều dễ dàng được điều khiển bởi circuit_level proxy , khuyết điểm của circuit_level proxy là nó điều khiển những gì xảy ra thông qua proxy này như là packet filter, nó điều khiển những kết nối cơ bản dựa vào địa chỉ nguồn và địa chỉ đích và không thể xác định những lệnh đi qua
nó là an toàn hoặc những sự kiện mà nghi thức đó mong muốn, circuit_level proxy
dể dàng bị đánh lừa bởi những server setup lại những cổng gán đến những server khác
Proxy chung thì đối nghịch với những proxy chuyên biệt: mặc dù
“application_level” và “circuit_level” thường được dùng, nhưng đôi khi cũng phân biệt giữa “dedicated” và “generic” proxy server là server chỉ phục vụ một nghi thức đơn , generic proxy server là server phục vụ cho nhiền nghi thức Thật ra, dedicated proxy server là application_level, và generic proxy server là circuit_level
Intelligent proxy server: một proxy server có thể làm nhiều điều chứ không phải chỉ chuyễn tiếp những yêu cầu, đó chính là một intelligent proxy server, vd: cern http proxy server caches data, vì vậy nhiều yêu cầu data không ra khỏi hệ thống khi chưa có sự xử lý ccủa proxy server Proxy server (đặt biệt là application level
Trang 10server) có thể cung cấp login dễ dàng và điều khiển truy xuất tốt hơn, còn circuit proxy thường bị giới hạn bởi những khả năng này
Using proxying với những dịch vụ internet:vì proxy server chèn vào giữa sự kết nối client và server, nó phải được thích ứng với từng dịch vụ riêng, đội khi một số dịch vụ rất dễ với cách phục vụ bình thường nhưng lại rất khó khi thêm vào proxy
5, Các tính năng cơ bản của Proxy Server.
Proxy server cung cấp ba chức năng chính:
1 Tường lửa và filtering
2 Chia sẻ kết nối
3 Caching
Các tính năng của Proxy server rất quan trọng trên các mạng diện rộng giống như các mạng nội bộ của công ty và các mạng ISP Càng nhiều người dùng trong một mạng LAN và càng cần giữ bảo mật cho thông tin riêng tư thì chức năng của Proxy server càng cần thiết
5.1.Tường lửa và Filtering.
Proxy servers làm việc ở lớp Application, lớp 7 trong mộ hình tham chiếu OSI Chúng không được phổ biến như các tường lửa thông thường mà làm việc ở mức thấp hơn và hỗ trợ lọc ứng dụng một cách độc lập Proxy servers cũng khó khăn hơn trong việc cài đặt và duy trì so với tường lửa Mặc dù vậy, nếu proxy server
được cấu hình đúng cách sẽ cải thiện được vấn đề bảo mật và hiệu suất cho mạng Các proxy đều có khả năng mà các tường lửa thông thường không thể cung cấp