Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
0,94 MB
Nội dung
NHÓM 3: Đỗ Xuân Hoàng Đào Đại Dương HỌC VIỆN NIIT ICT-HÀ NỘI SECURITY OF LINUX SECURITY OF LINUX MỤC LỤC Trang 2 SECURITY OF LINUX I. Mở đầu 1. Giới thiệu Hiện nay, trên môi trường máy chủ Linux ngày càng chiếm một vị trí quan trọng. Nguyên nhân khiến Linux trở thành một đối thủ tiền năng của hệ điều hành Microsoft Window là do tính ổn định, độ linh hoạt và khả năng chịu tải lớn: Đây là những đặc điểm quan trọng hàng đầu của một hệ thống máy phục vụ. Tính bảo mật tốt cũng là một trong những đặc điểm nổi bật của Linux. Tuy nhiên, để một hệ thống Linux có khả năng chống lại các cuộc tấn công người quản trị phải nắm được một số kỹ năng nhất định. Trong bài viết này nhóm chúng tôi xin giới thiệu một số cơ chế bảo mật của Linux nhằm nâng cao tính an toàn cho hệ thống. 2. Định nghĩa các thuật ngữ, từ viết tắt 3. Tài liệu tham khảo [1]- http://www.aboutdebian.com/security.htm [2]- Giáo trình Quản trị hệ thống Linux, LPI, năm 2006 [3]- http://www.linux.ie/articles/cryptography/img25.php [4]- Maximum Linux Security second edition, June 21, 2001 [5]- http://www.linuxsecurity.com/docs/SecurityAdminGuide/SecurityAdminGuide- 9.html II. Nội dung trình bày 1. Firewalls 1.1. Tổng quan Để bảo vệ từ xa một máy tính hay cho cả một mạng nội bộ (Intranet), người ta thường dùng các hệ thống đặc biệt gọi là tường lửa (Firewall). Chức năng của tường lửa là ngăn chặn các truy nhập trái phép (theo danh sách truy nhập đó xỏc định trước) và thậm chí có thể lọc các gói tin mà ta không muốn gửi đi hoặc nhận vào với một lý do nào đó. Phương thức bảo vệ này được dùng nhiều trong môi trường liên mạng Internet. Mọi người thường nghĩ firewall cung cấp an toàn tuyệt đối, nhưng họ sai. Trong hầu hết trường hợp cấu hình firewall sai sẽ giảm độ an toàn hơn cả không cài đặt Trang 3 SECURITY OF LINUX firewall. Firewall cũng là một phần mềm và nên được coi như một phần mềm bình thường như mọi phần mềm khác, vì nó cũng có thể gặp lỗi như thường. Vậy hãy suy nghĩ trước khi cài đặt firewall! Bạn có thật sự cần không? Nếu bạn cần nghĩ mình cần, bạn nên viết ra những quy tắc hoặt động của nó, loại firewall nào, và thao tác với nó như thế nào. Trên hết hiểu biết về firewall sẽ giúp bạn trở nên bảo mật tốt cho toàn bộ máy tính,mạng cơ sở hay là cả 1 server. 1.2. Mục đích sử dụng • Bảo vệ người dùng khỏi worm và những kẻ tấn công • Giữ người dùng ở trong phạm vi kiểm soát 1.3. Các loại firewall Có ba loại firewall: • Packet-filtering router • Curcuit-Level Gateway • Application-Level Gateway Cách thức hoạt động ưu nhược điểm của từng loại tường lửa: • Packet-filtering router: Packet-filtering router áp dụng một bộ quy tắc để mỗi gói tin IP vào và ra và sau đó là chuyển đi hay loại bỏ các gói tin. Router thường được cấu hình để lọc các gói tin theo cả hai hướng ( từ trong và ngoài vào mạng nội bộ). Quy tắc lọc dựa trên các thông tin chứa trong một gói tin mạng ( packet): Địa chỉ IP nguồn (Source IP address): Địa chỉ IP của hệ thống là nguồn gốc của các gói tin (sender). Ví dụ: 192.178.1.1 Địa chỉ IP đích ( Destination IP address): Địa chỉ IP của hệ thống mà gói tin IP đang cần được chuyển tới. Ví dụ 192.168.1.2 Trang 4 SECURITY OF LINUX Địa chỉ nguồn và đích của tầng giao vận: gói tin là TCP hay UDP, port number, xác định các ứng dụng như SNMP hay TELNET. IP protocol field: Xác định giao thức vận chuyển. Interface : Đối với một router có nhiều port, các gói tin sẽ đến từ interface nào và đi đến interface nào. Packet-filtering thường được thiết lập là một danh sách các quy tắc dựa trên phù hởp cho các trường trong IP header hoặc TCP header. Nếu có tương ứng với một trong các quy tắc, quy tắc này sẽ được gọi để xác định xem sẽ chuyển tiếp hay loại bỏ các gói tin. Nếy không phù hợp với bất kỳ một quy tắc nào thì hành động mặc định sẽ được thực hiện. Hai hành động được mặc định đó là: Default = discard: gói tin sẽ bị cấm và bị loại bỏ. Default = forward: gói tin được cho phép đi qua. Tuy nhiên, default là discart thường được dùng hơn. Vì như vậy, ban đầu, mọi thứ đều bị chặn và các dịch vụ phải được thêm vào trong từng trường hợp cụ thể. Chính sách này rõ ràng hơn cho người dùng, những người mà ko am hiểu nhiều lắm về firewall( cấm hết là xong, cho phép thằng nào thì mở lối thoát cho nó). Còn cách thứ hai thì liên quan đến vấn đề bảo mật nhiều hơn, đòi hỏi người quản trị phải thường xuyên kiểm tra để có phản ứng với những kiểu đe dọa mới ( sớm bạc đầu Mình thấy cái này thì gần như cài đặt ACLs. Ưu điểm : • Đơn giản của nó và packet-filtering thường là trong suốt cho người sử dụng và rất nhanh. • Có thể cảnh báo trước các cuột tấn công (vd, phát hiện quét cổng). • Ngăn cản SYN attack. Hạn chế : • Thông tin địa chỉ trong gói có thể bị làm giả IP (hoặc ta nói là spoof) từ phía người gửi. • Dữ liệu hoặc request trong gói được phép có thể chứa dữ liệu không mong muốn mà kẻ tấn công có thể dùng để khai thác các lỗi đã biết của các dịch vụ nằm trên hoặc nằm sau firewall.Thường là nguồn gốc của lỗi. Trang 5 SECURITY OF LINUX Tường lửa loại này không thể kiểm tra dữ liệu lớp trên, không thể ngăn chặn các cuộc tấn công có sử dụng các lỗ hổng ứng dụng cụ thể. Ví dụ, một bức tường lửa loại này không thể ngăn chặn các lệnh ứng dụng cụ thể, nếu nó cho phép một ứng dụng nhất định, tất cả các chức năng có sẵn trong ứng dụng đó sẽ được cho phép. Do các thông tin có sẵn hạn chế cho tường lửa, hiện tại thì chức năng đăng nhập vào tường lửa bị hạn chế. Packet-filtering lọc các bản log thông thường chứa các thông tin tương tự được sử dụng để đưa ra quyết định kiểm soát truy cập ( địa chỉ nguồn, địa chỉ đích, và loại hình lưu lượng). Hầu hết các tường lửa loại này không hỗ trợ các chương trình xác thực người dùng cao cấp. Một lần nữa hạn chế này chủ yếu là do thiếu chức năng lớp trên của tường lửa. Chúng thường bị tấn công và khai thác bằng cách tận dụng các problem của các đặc điểm kỹ thuật TCp/IP và chồng giao thức, chẳng hạn như giả mạo địa chỉ lớp network. Nhiều tường lửa packet-filtering không thể phát hiện một gói tin mà trong đó các thông tin của lớp 3 đã bị thay đổi. Các cuộc tấn công giả mạo thường được sử dụng bởi những kẻ xâm nhập để vượt qua kiểm soát an ninh được thực hiện bên trong tường lửa. Cuối cùng, do số lượng nhỏ của các biến được sử dụng trong quyết định kiểm soát truy cập, packet-filtering dễ bị vi phạm an ninh gây ra bởi các cấu hình không phù hợp. Nói cách khác, rất dễ cấu hình tường lửa cho phép các loại lưu lượng, nguồn và đích đáng lẽ nên bị từ loại bỏ dựa trên chính sách đặt ra của tổ chức. Từ đó, có một số cách tấn công có thể được thực hiện trên các tường lửa packet- filtering và một số biện pháp đối phó với chúng: IP address spoofing ( Giả mạo địa chỉ IP): Kẻ xâm nhập truyền các gói dữ liệu từ bên ngoài với địa chỉ nguồn là địa chỉ IP của một máy nội bộ. Kẻ tấn công hy vọng rằng việc sử dụng một địa chỉ giả mạo sẽ co phép xâm nhập vào các hệ thống chỉ sử dụng bảo mật đơn giản địa chỉ nguồn, trong đó, các gói tin từ máy nội bộ sẽ đực chấp nhận. Biện pháp đối phó là loại bỏ các gói tin với địa chỉ nguồn ở nội bộ nếu như gói tin này đến từ interface bên ngoài. Source routing attack: Các trạm nguồn quy định các đường đi mà một gói tin sẽ được đưa vào khi đi trên mạng Internet, với mong muốn rằng điều này sẽ bỏ qua các biện pháp an ninh mà không phân tích các thông tin định tuyến nguồn. Biện pháp đối phó là để lựa chọn loại bỏ tất cả các gói dữ liệu sử dụng tùy chọn này. Tiny fragment attack: Kẻ xâm nhập loại này sử dụng tùy chọn cho phép phân mảnh của gói tin IP để tạo ra các mảnh cực kỳ nhỏ và ép các TCP header vào một đoạn Trang 6 SECURITY OF LINUX gói tin riêng biệt. Tấn công loại này được thiết kế để phá vỡ các quy tắc lọc phụ thuộc vào thông tin tiêu đề TCP. Thông thường, một packet-filtering sẽ đưa ra quyết định lọc trên đoạn đầu tiên của một gói. Tất cả các đoạn tiếp theo của gói tin được lọc ra chỉ duy nhất trên cơ sở đó là một phần của gói có đoạn đầu tiên bị loại bỏ. Kẻ tấn công hy vọng rằng các router chỉ lọc xem xét đoạn đầu tiên và các đoạn còn lại được đưa qua. Cách chống lại tấn công loại này là nguyên tắc thực thi đoạn đầu tiên của một gói tin phải có một số xác định trước tối thiểu của TCP header. Nếu đoạn đầu tiên bị loại bỏ, packet-filtering có thể ghi nhớ các gói tin và loại bỏ tất cả các đoạn tiếp theo. Mọi lưu thông mạng đều được gửi dạng packet. Một lượng lớn lưu thông được chia ra thành những phần nhỏ dễ xử lý và được tập hợp lại khi đến đích. Packet header của mọi packet chứa thông tin cách đến và nơi đến. Và thông tin này chính xác là những thông tin firewall packing filtering dùng. Filter dựa trên. • Application-Level Gateway : Application-Level Gateway, còn được gọi là một proxy server, hoạt động như một chuyển tiếp của các lưu lượng lớp ứng dụng. Người sử dụng sẽ liên lạc với gateway sử dụng các ứng dụng TCP/IP như TELNET hay FTP và gateway sẽ hỏi user tên của máy chủ từ xa sẽ được truy cập. Khi user đáp lại và cung cấp một ID người dùng hợp lệ và xác thực thông tin, gateway sẽ liên lạc đến cổng ứng dụng tương ứng trên máy chủ từ xa và chuyển tiếp các đoạn TCP chứa các dữ liệu giữa hai thiết bị đầu cuối này.Nếu các cổng không thực hiện các proxy code cho một ứng dụng cụ thể, dịch vụ không được hỗ trợ và không thể được chuyển tiếp qua tường lửa. Hơn nữa, gateway có thể được cấu hình để chỉ hỗ trợ tính năng cụ thể của một ứng dụng mà người quản trị xem xét chấp nhận được trong khi từ chối tất cả các tính năng khác. Trang 7 SECURITY OF LINUX Application-Level gateway có xu hướng an toàn hơn packet-filtering router. Thay vì cố gắng để đối phó với hàng loạt kết hợp có thể có từ việc cấm và cho phép ở tầng TCP/IP, application-level gateway chỉ cần rà soát lại một vài ứng dụng cho phép. Ngoài ra, nó rất dễ dàng cho ghi lại và theo dõi tất cả các lưu lượng đến ở tầng ứng dụng. Một nhược điểm chính của loại này là chi phí xử lý bổ sung trên mỗi kết nối. Trong thực tế, có hai kết nối ghép giữa các người dùng đầu cuối, với các cổng ở điểm kết nối và gateway phải kiểm tra lưu lượng trên cả hai chiều. • Curcuit-Level Gateway : Dạng thứ 3 của firewall đó là Circuit-level gateway. Nó có thể là một hệ thống độc lập hoặc có thể là một hoạt động chuyên biết được thực hiện bởi một application- level gateway cho các ứng dụng nhất định. Circuit-level gateway không cho phép một kết nối TCP end-to-end mà thay vào đó, gateway sẽ thiết lập hai kết nối TCP, một là giữa nó và TCP user bên torng và một giữa nó và TCP user bên ngoài. Khi hai kết nối này được thiết lập, gateway sẽ chuyển tiếp các TCP segment từ đầu cuối này đến đầu cuối khác mà không kiểm tra nội dung các segment này. Các chức năng bảo mật bao gồm vệc xác định mà kết nối sẽ được cho phép. Một điển hình của Circuit-level gateway là một tình huống mà trong đó người quản trị hệ thống tin tưởng các user nội bộ. Gateway có thể được cấu hình để hỗ trợ application-level hay dịch vụ proxy cho các kế nối bên trong và chức năng circuit- level cho các kế nối bên ngoài. Trong trường hợp này , gateway có thể phải chịu các chi phí kiểm tra các incoming data cho các chức năng bị cấm nhưng không chịu chi phí của outgoing data. Trang 8 SECURITY OF LINUX Một ví dụ nữa về việc thực hiện của circuit-level gateway là gói SOCKS; phiên bản 5 của SOCKS được địng nghĩa trong RFC 1928. RFC định nghĩa SOCKS như sau: Các giao thức được thiết kế để cung cấp một framework cho các ứng dụng client- server trong cả TCP và UDP để thuận tiện và an toàn bằng việc sử dụng các dịch vụ của network firewall. Giao thức được khải niệm nư một “shim-layer” giửa các lớp ứng dụng và lớp vận chuyển, và như vậy không cung cấp dịch vụ ở lớp network, ví dụ như không forwarding các gói ICMP. SOCKS bao gồm các thành phần sau đây: * Máy chủ SOCKS, chạy trên tường lửa nền UNIX. * Thư viện SOCKS client, chạy trên các host bên trong được bảo vệ bởi tường lửa. * Các phiên bản SOCKS của rất nhiều các chương trình client như FTP và TELNET. Việc hiện thực giao thức trong SOCKS thường liên quan đến việc biên dịch lại hoặc tái liên kết của các ứng dụng client dựa trên TCP (TCP- based client) để sử dụng các dịch vụ đóng gói tương ứng trong thư viện SOCKS. Khi một TCP-based client muốn thiết lập một kết nối đến một đối tượng có thể truy cập chỉ thông qua một tường lửa, nó phải mở một kết nối TCP đến port SOCKS tương ứng trên hệ thống SOCKS server. Dịch vụ SOCKS được dùng trên TCP port 1080. Nếu yêu cầu kết nối thành công, client sẽ bắt đầu một cuộc thương lượng về các phương pháp xác thực được lựa chọn và gửi một yêu cầu được chuyển tiếp. SOCKS server sẽ xem xét các yêu cầu và sau đó cho phép thiết lập kết nối hoặc từ chối nó. Các gói UDP cũng được xử lý tương tự. Về bản chất, một kết nối TCP được mở ra để xác thực người dùng để gửi và nhận các UDP segment, các UDP segement sẽ dược chuyển tiếp khi kết nối TCP được mở. 1.4. Cách cài đặt Có 3 cách cài đặt chính cho 1 tường lửa : Trang 9 SECURITY OF LINUX • Dual homed host Firewall kiến trúc kiểu Dual-homed host được xây dựng dựa trên máy tính dual- homed host. Một máy tính được gọi là dual-homed host nếu nó có ít nhất hai network interface, có nghĩa là máy đó có gắn hai card mạng giao tiếp với hai mạng khác nhau và như thế máy tính này đóng vai trò là Router mềm. Kiến trúc dual- homed host rất đơn giản. Dual-homed host ở giữa, một bên được kết nối với Internet và bên còn lại nối với mạng nội bộ (LAN). Dual-homed host chỉ có thể cung cấp các dịch vụ bằng cách ủy quyền (proxy) chúng hoặc cho phép users đăng nhập trực tiếp vào dual-homed host. Mọi giao tiếp từ một host trong mạng nội bộ và host bên ngoài đều bị cấm, dual-homed host là nơi giao tiếp duy nhất Trang 10 [...]... thực về bản chất là một người nào đó mà bạn tin tưởng có phong bì được đóng dấu bằng thuật toán và xác nhận địa chỉ của người nhận giúp bạn Đó là một sự mô tả khá chi tiết về địa chỉ, dựa trên thuật toán phức tạp Có một vài điều quan trọng cần lưu ý: Do không có trung tâm xác thực nên sự bảo mật an ninh nằm trong các host key này, key public và private.(Hai key này sẽ được cấu hình khi bạn truy cập vào... username và tên host của máy chủ bạn kết nối tới Ví dụ: ssh -o 'StrictHostKeyChecking yatri@192.168.1.50 ask' Ngăn chặn host dựa vào sự thay đổi các key Nếu bạn có một máy chủ và đang thử truy cập vào key đã tự thay đổi, các cấu hình OpenSSH mặc định sẽ ngăn chặn bạn truy cập vào nó Bạn có thể thay đổi giá trị của StrictHostKeyChecking cho host này, nhưng không được triệt để hoàn toàn Thay vào đó, đơn... server Mô hình bảo mật file được chuẩn hoá trong hầu hết các hệ thống tựa Unix và được gọi là mô hình POSIX Mô hình này có 3 quyền truy cập file và thư mục mở rộng cho: người sở hữu, nhóm và các đối tượng khác Tất cả đều được thực hiện giống nhau tại bất kỳ phân phối Linux nào Đó là lý do vì sao chúng ta không tập trung phân tích kỹ vấn đề này Các bạn có thể tham khảo thêm tại các trang “chmod” và “chown”... bàn tay con người can thiệp vào việc bảo mật hệ thống.Tường lửa có thể ngăn chặn Dos nhưng DDos thì không thể,vì vậy để cuộc chiến giữa bảo mật và hacker cân bằng thì cuộc chiến giữa người và máy nên được chuyển thành cuộc chiến giữa người và người… 2 Host security Server là một máy chủ chứa dữ liệu và cho phép các máy trạm có thể kết nối đến qua một cổng nhất định để đọc và lấy dữ liệu, Server Linux... bastion host và mạng nội bộ, giữa bên ngoài và mạng nội bộ không nhất thiết phải giống nhau Giới hạn dịch vụ giữa bastion host và mạng nội bộ nhằm giảm số lượng máy (số lượng dịch vụ trên các máy này) có thể bị tấn công khi bastion host bị tổn thương và thoả hiệp với bên ngoài Chẳng hạn nên giới hạn các dịch vụ được phép giữa bastion host và mạng nội bộ như SMTP khi có Email từ bên ngoài vào, có lẽ chỉ... tập luật với các tiện ích như ipchains và iptables, sẽ xác định một gói tin khi đi qua hoặc giao diện mạng của nó và cũng chỉ ra điều gì sẽ diễn ra đối với gói tin này Có ba chuỗi trong ipchains và iptables, đó là: Input, forward và output cho ipchains Input, forward và output cho iptables Trang 27 SECURITY OF LINUX Ví dụ: Khi sử dụng ipchains tất cả các gói tin đi vào một giao diện mạng sẽ đi qua chuỗi... “StrictHostKeyChecking” (không có dấu nháy kép) Tùy thuộc vào sự cấu hình của bạn, SSH sẽ được kết nối với các host này (không có các key thuộc file know_host của bạn) theo ba cách: • StrictHostKeyChecking được thiết lập là “no”: OpenSSH sẽ tự động kết nối tới bất kỳ máy chủ SSH nào mà không phụ thuộc vào tình trạng của nó Điều này là không an toàn và không được khuyến cáo, trừ khi bạn đang thêm một Trang... forward Tất cả các gói tin được sinh ra bởi host và các gói tin chuyển tiếp sẽ đi qua chuỗi output Luật ipchains và iptables có thể xác định các thông tin như nguồn source(s), đích(d), giao thức(p), và cổng Ví dụ: Tất cả các gói tin từ địa chỉ 192.168.0.254 sẽ bị cấm Các luật ipchains và iptables có thể được thực thi theo các thông số lựa chọn sau: -A thêm vào cuối (Append ) -D Xóa ( Delete ) -P thay đổi... an toàn với Communicator, và phục vụ như là cơ sở cho truyền thông an toàn với Communicator S-HTTP: S-HTTP là một giao thức cung cấp dịch vụ bảo mật trên Internet Nó được thiết kế để cung cấp bảo mật, xác thực, toàn vẹn, và repudiability không (không thể nhầm lẫn cho người khác và tôi không thể phủ nhận hành động của tôi sau) trong khi hỗ trợ cơ chế quản lý nhiều chìa khóa và thuật toán mã hóa thông... (cấm những host này sử dụng dịch proxy thông qua bastion host) Bạn có thể kết hợp nhiều lối vào cho những dịch vụ khác nhau: • Một số dịch vụ được phép đi vào trực tiếp qua packet filtering • Một số dịch vụ khác thì chỉ được phép đi vào gián tiếp qua proxy Bởi vì kiến trúc này cho phép các packet đi từ bên ngoài vào mạng bên trong, nó dường như là nguy hiểm hơn kiến trúc Dual-homed host, vì thế nó được