Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Quản trị mạng Tìm hiểu và cấu hình về isas...

Tài liệu Tìm hiểu và cấu hình về isas

.PDF
28
422
61

Mô tả:

HỌC VIỆN NIIT ICT-HÀ NỘI SECURITY OF LINUX NHÓM 3: Đỗ Xuân Hoàng Đào Đại Dương 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/SecurityAdminGuide9.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 packetfiltering 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 applicationlevel 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 circuitlevel 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 clientserver 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 (TCPbased 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 dualhomed 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 dualhomed 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 SECURITY OF LINUX • Screenedhost: Screened Host có cấu trúc ngược lại với cấu trúc Dual-homed host. Kiến trúc này cung cấp các dịch vụ từ một host bên trong mạng nội bộ, dùng một Router tách rời với mạng bên ngoài. Trong kiểu kiến trúc này, bảo mật chính là phương pháp Packet Filtering. Bastion host được đặt bên trong mạng nội bộ. Packet Filtering được cài trên Router. Theo cách này, Bastion host là hệ thống duy nhất trong mạng nội bộ mà những host trên Internet có thể kết nối tới. Mặc dù vậy, chỉ những kiểu kết nối phù hợp (được thiết lập trong Bastion host) mới được cho phép kết nối. Bất kỳ một hệ thống bên ngoài nào cố gắng truy cập vào hệ thống hoặc các dịch vụ bên trong đều phải kết nối tới host này. Vì thế Bastion host là host cần phải được duy trì ở chế độ bảo mật cao. Packet filtering cũng cho phép bastion host có thể mở kết nối ra bên ngoài. Cấu hình của packet filtering trên screening router như sau: • Cho phép tất cả các host bên trong mở kết nối tới host bên ngoài thông qua một số dịch vụ cố định. • Không cho phép tất cả các kết nối từ các host bên trong (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 thiết kế để không một packet nào có thể tới được mạng bên trong. Tuy nhiên Trang 11 SECURITY OF LINUX trên thực tế thì kiến trúc dual-homed host đôi khi cũng có lỗi mà cho phép các packet thật sự đi từ bên ngoài vào bên trong (bởi vì những lỗi này hoàn toàn không biết trước, nó hầu như không được bảo vệ để chống lại những kiểu tấn công này). Hơn nữa, kiến trúc dual-homed host thì dễ dàng bảo vệ Router (là máy cung cấp rất ít các dịch vụ) hơn là bảo vệ các host bên trong mạng.Xét về toàn diện thì kiến trúc Screened host cung cấp độ tin cậy cao hơn và an toàn hơn kiến trúc Dual-homed. So sánh với một số kiến trúc khác, chẳng hạn như kiến trúc Screened subnet thì kiến trúc Screened host có một số bất lợi. Bất lợi chính là nếu kẻ tấn công tìm cách xâm nhập Bastion Host thì không có cách nào để ngăn tách giữa Bastion Host và các host còn lại bên trong mạng nội bộ. Router cũng có một số điểm yếu là nếu Router bị tổn thương, toàn bộ mạng sẽ bị tấn công. Vì lý do này mà Sceened subnet trở thành kiến trúc phổ biến nhất. • Screened Subnet: Nhằm tăng cường khả năng bảo vệ mạng nội bộ, thực hiện chiến lược phòng thủ theo chiều sâu, tăng cường sự an toàn cho bastion host, tách bastion host khỏi các host khác, phần nào tránh lây lan một khi bastion host bị tổn thương, người ta đưa ra kiến trúc firewall có tên là Sreened Subnet. Kiến trúc Screened subnet dẫn xuất từ kiến trúc screened host bằng cách thêm vào phần an toàn: mạng ngoại vi (perimeter network) nhằm cô lập mạng nội bộ ra khỏi Trang 12 SECURITY OF LINUX mạng bên ngoài, tách bastionhost ra khỏi các host thông thường khác. Kiểu screened subnet đơn giản bao gồm hai screened router: • Router ngoài (External router còn gọi là access router): nằm giữa mạng ngoại vi và mạng ngoài có chức năng bảo vệ cho mạng ngoại vi (bastion host, interior router). Nó cho phép hầu hết những gì outbound từ mạng ngoại vi. Một số qui tắc packet filtering đặc biệt được cài đặt ở mức cần thiết đủ để bảo vệ bastion host và interior router vì bastion host còn là host được cài đặt an toàn ở mức cao. Ngoài các qui tắc đó, các qui tắc khác cần giống nhau giữa hai Router. • Interior Router (còn gọi là choke router): nằm giữa mạng ngoại vi và mạng nội bộ, nhằm bảo vệ mạng nội bộ trước khi ra ngoài và mạng ngoại vi. Nó không thực hiện hết các qui tắc packet filtering của toàn bộ firewall. Các dịch vụ mà interior router cho phép giữa 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ỉ giới hạn kết nối SMTP giữa bastion host và Email server bên trong. 1.5. Giới hạn của Firewall (tường lửa) Tường lửa-Firewall cũng là một phần mềm và nó nên được coi là một phần mềm hơn là một lá chắn siêu việt.Vận hành tường lửa là một nghệ thuật,nó có thể giúp cho hệ thống an toàn hơn hoặc kém an toàn hơn đều dựa vào tay người cài đặt và quản trị.Trên hết tường lửa an toàn nhưng không phải là 1 lá chắn đa năng nên vẫn cần 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 mà chủ yếu là ubuntu hoạt động trên cơ chế bảo mật cấp quyền phân tán cho các user và user có quyền tối cao là Admin,khi tạo mới 1 user muốn chạy Trang 13 SECURITY OF LINUX bất kì lệnh gì quan trọng hay cài đặt phần mềm trên server linux thì cần gõ lệnh sudo.Cụ thể như: • Ubuntu không cho phép đặt mặc định root, administrator, account. Nó có cách xử lý lợi ích bảo mật khá hay và một số phương án giảm cấp đáng kinh ngạc. Đó là văn bản hoá tất cả trong các trang chính của file gốc sudo_root. • Trong quá trình cài đặt, bạn thêm vào người dùng nào thì mặc định người dùng đó sẽ được đặt trong nhóm admin và có thể dùng sudo để thực hiện các nhiệm vụ quản trị hệ thống. Sau khi thêm tên người dùng mới vào hệ thống, bạn có thể đưa họ vào nhóm admin bằng câu lệnh: - $ sudo adduser username admin - Nếu muốn loại một người nào ra khỏi nhóm admin, đơn giản bạn chỉ cần đặt lệnh deluser thay thế adduser. • Bảo mật hệ thống filetrong 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” trong phần trợ giúp của Linux hoặc trên Internet. Bây giờ chúng ta sẽ tập trung vào việc phân vùng bảo mật thông qua các tuỳ chọn lắp ghép, một vấn đề quan trọng cần chú ý khi xử lý bảo mật hệ thống. Việc phân vùng sẽ có tác động mạnh nếu được dùng thích hợp. Khi giải thích cách thức phân vùng hệ thống chúng tôi đã nhấn mạnh ưu điểm của Linux trong việc cung cấp các thư mục “/home”, “/tmp”, “/var” cho các phân vùng riêng. Các thư mục này đề cập đến cách dùng các tuỳ chọn đặc biệt khi ghép các phần vùng vào hệ thống file. Nhiều tuỳ chọn lắp ghép là kiểu hệ thống file phụ thuộc. Nhưng những tuỳ chọn chúng ta xét đến không phải loại này. Chúng ta có một số tuỳ chọn sau: nodev: Một hệ thống file lắp ghép với tuỳ chọn nodev sẽ không cho phép sử dụng hay tạo các file “device” đặc biệt. Chẳng có lý do tốt đẹp nào khi cho phép hệ thống file biên dịch các ổ đặc biệt block, character vì như thế tức là cho phép chúng tạo ra các nguy hiểm bảo mật tiềm ẩn. nosuid Các file trong Unix nói chung và trong Linux nói riêng đều có thể được đánh dấu bằng cờ để cho phép một người nào đó thực thi file bằng quyền của người khác Trang 14 SECURITY OF LINUX hay nhóm khác, thông thường là của người quản trị hệ thống. Cờ này được gọi là setuid (suid) hay cờ nhị phânsetgid bit. Nó cũng cho phép thực thi file bên ngoài thư mục chứa các mã nhị phân hệ thống không cần thiết, làm giảm độ an toàn. Nếu một người dùng được quyền sử dụng thì anh ta có thể tạo hoặc lấy một cờ nhị phân suid theo cách chọn riêng. Sau đó có thể sử dụng hệ thống một cách hiệu quả. noexec: nếu một hệ thống file được đánh dấu cờ là noexec, người dùng sẽ không thể chạy bất kỳ chương trình thực thi nào nằm trong nó. noatime cờ này nói rằng hệ thống file không giữ bản ghi lần truy cập cuối cùng của các file. Nếu sử dụng một cách bừa bãi có thể khiến giảm an toàn hệ thống. Vì nó giới hạn thông tin ghi sự cố bảo mật. Cờ này cũng cung cấp các lợi ích thực thi cho bất kỳ kiểu dùng nào. Bạn nên dùng trên các phân vùng, nơi bảo mật cân bằng với tốc độ. Quyết định sử dụng tuỳ chọn lắp ghép nào trong phân vùng nào là một kỹ thuật cao. Bạn sẽ thường xuyên phải phát triển các tham chiếu khi trở nên quen thuộc hơn với cơ chế quản trị. 3. Server security Host Linux an toàn hơn host window rất nhiều nhờ cơ chế phân quyền rõ ràng bằng câu lệnh chmod giúp tránh việc hack local ngay cả khi có shell trên host. Hơn hết nhờ cơ chế bảo mật cùng một nhân khỏe host Linux có thể chạy trên một máy chủ yếu hơn host window rất nhiều giúp tránh lãng phí tài nguyên đầu tư cho máy chủ. Host Linux có nhân khỏe chạy không để lại nhiều “rác” nên thường chạy lâu bền lên tới hàng năm mà không cần restart. Kết hợp với tường lửa host Linux vô cùng an toàn. 4. Cryptography Một phần không thể tách rời đối với máy chủ lưu trữ và an ninh mạng là mã hóa dữ liệu. 4.1. Mật khẩu Một trong những tính năng quan trọng nhất trong việc bảo mật hiện này là mật khẩu. Hầu hết các bản phân phối Linux gần đây bao gồm các chương trình mật khẩu không cho phép bạn thiết lập một mật mẩu dễ dàng đoán. Trang 15 SECURITY OF LINUX Hầu hết các hệ điều hành Linux chủ yếu sử dụng một thuật toán mã hóa hai chiều được gọi là DES để mã hóa mật khẩu của bạn. Sau đó mật khẩu mã hóa này thông thường được lưu trữ trong /etc/passwd hoặc /etc/shadow. Khi bạn đăng nhập thì tất cả các nhưng gì bạn gõ vào ô đăng nhập sẽ được mã hóa một lần nữa và so sánh với các mục nhập trong tệp tin lưu trữ mật khẩu của bạn. Nếu phù hợp bạn sẽ được truy cập. Mặc dù DES là một thuật toán mã hóa hai chiều(Bạn có thể mã hóa và giải mã). Điều này có nghĩa rằng nó không nên có thể đảo ngược mã hóa để có được mật khẩu từ các nội dung của / etc / passwd (hoặc / etc / shadow ). 4.2. PGP và các mã hóa công khai Mật mã công khai chẳng hạn như là sử dụng PGP, liên quan đến mật mã sử dụng một chìa khóa để mã hóa và một chìa khóa để giải mã. Theo truyền thống, mật mã liên quan đến đều sử dụng cùng một khóa cho quá trình mã hóa và giải mã. “Chìa khóa bí mật” được biết đến bởi các bên có liên quan. Bằng cách nào đó có thể chuyển tới các bên liên quan một cách an toàn. Mã hoá bằng khoá công khai (MHKCK - public-key) dùng để gửi dữ liệu một cách an toàn qua các mạng không an toàn như Internet. Cách mã hoá này làm cho những cặp mắt tò mò không thể đọc được dữ liệu. Mỗi người dùng đều có hai khoá, một khoá công khai, một khoá riêng. Khoá công khai được giữ trong một thư mục. Ai cũng có thể truy cập khoá này để mã hoá một thông điệp trước khi gửi tới người có khoá riêng tương ứng. Còn khoá riêng thì chỉ người nhận mới có thể truy cập được và dùng nó để giải mã thông điệp. 4.3. SSL, S-HTTP, HTTPS, S/MIME SSL: SSL, hoặc Secure Sockets Layer, là một phương pháp mã hóa được phát triển bởi Netscape để cung cấp an ninh trên Internet. Nó hỗ trợ các giao thức mã hóa khác nhau, và cung cấp cho khách hàng và xác thực máy chủ. SSL hoạt động tại tầng giao thông vận tải, tạo ra một kênh an toàn được mã hóa dữ liệu, và do đó liên tục có thể mã hóa dữ liệu của nhiều loại. Điều này là phổ biến nhất là nhìn thấy khi đi đến một trang web an toàn để xem một tài liệu trực tuyến 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 qua đàm phán lựa chọn giữa các bên trong mỗi giao dịch . S-HTTP được giới hạn trong các phần mềm cụ thể là thực hiện nó, và mã hóa mỗi tin nhắn cá nhân. Trang 16 SECURITY OF LINUX S / MIME: S / MIME, hoặc Secure Internet Mail Extension, đa năng là một tiêu chuẩn mã hóa được sử dụng để mã hóa thư điện tử, hoặc các loại tin nhắn trên Internet. Nó là một tiêu chuẩn mở được phát triển bởi RSA. 4.4. IPSec và triển khai mã hóa IPSec là một nỗ lực của IETF để tạo ra các thông tin liên lạc mã hóa an toàn ở mức độ mạng IP, mà còn cung cấp xác thực, tính toàn vẹn, kiểm soát truy cập, và bảo mật. IPsec là cơ chế bảo mật cơ bản host-to-host. Thích hợp để sử dụng bất kỳ thời điểm nào bảo vệ dựa trên địa chỉ sẽ được sử dụng, bao gồm cả với các chương trình như rsh , rlogin. 4.5. SSH SSH là một bộ các chương trình được sử dụng như là một thay thế an toàn cho rlogin, rsh và rcp. Nó sử dụng mật mã khóa công khai để mã hóa các thông tin liên lạc giữa hai máy, cũng như cho người sử dụng xác thực. Điều này có thể được sử dụng để bảo mật đăng nhập vào một máy chủ từ xa hoặc sao chép dữ liệu giữa các máy, trong khi ngăn chặn các cuộc tấn công man-in-the-middle (cướp quyền đăng nhập) và giả mạo DNS Với cơ chế mã hóa mạnh nhằm ngăn chặn các hiện tượng nghe trộm, đánh cắp thông tin trên đường truyền Trước đây khi thực hiện một kết nối từ máy tính này đến máy tính khác, chúng ta thường sử dụng các giao thức đơn giản dễ sử dụng như Telnet và FTP. Chúng ta sẽ gửi thông tin đến máy chủ từ xa, sau đó xác nhận về các kết nối. Để an toàn, các giao thức này thường sử dụng username và password. Điều này có nghĩa là an toàn? Nhưng đây là một điều hoàn toàn không đúng. Quá trình kết nối như email bằng cách sử dụng FTP hay Telnet giống như tấm bưu thiếp. Nếu một ai đó đứng ở giữa, họ có thể nhìn thấy toàn bộ thông tin, bao gồm địa chỉ hai bên và cả username, password được gửi ra. Do đó họ có thể thay đổi nội Trang 17 SECURITY OF LINUX dung tin nhắn, giữ lại thông tin và mạo danh một trong hai bên. Bạn không thể chắc chắn rằng mình đang thực sự nói chuyện với người gửi hay không, và ngay cả khi đang làm điều đó, bạn cũng không thể chắc chắn không có ai đang nhòm ngó giữa hai người. Còn đối với SSH, không có một trung tâm nào xác thực ở đây. Bạn sẽ gửi thư cho người mình đã biết bằng cách sử dụng một thuật toán mã hóa, chỉ khi người nhận dùng đúng thuật toán phù hợp để giải mã mới nhận được. Sau đó bạn sẽ nhận được thư hồi âm cũng được bảo vệ bằng thuật toán tuyệt vời này. Cuối cùng thông tin của bạn sẽ được để ở trong một phong bì áp dụng thuật toán bí mật tới đích. Nếu thuật toán không phù hợp, người nhận sẽ xác minh lại địa chỉ lần nữa. Các tính năng quan trọng nhất của SSH • Các hostkey Máy chủ chứng 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 hệ thống ). Thông thường khi bạn kết nối máy tính khác thông qua SSH, host key được lưu trữ. Điều này giúp cho các hành động sau này nhanh hơn( hoặc ít rườm rà). Nếu các host key bị thay đổi bạn sẽ nhận được cảnh báo nên thận trọng! Trang 18 SECURITY OF LINUX Từ khi host key được sử dụng trước khi thiết lập sự xác minh danh tính của máy chủ SSH, bạn phải chắc chắn việc kiểm tra các key trước khi kết nối. Bạn sẽ thấy một hộp thoại xác nhận như dưới đây: Chúng ta không cần lo lắng về điều này. Thường thì khi vấn đề bảo mật trở thành mối quan tâm, host key sẽ có vị trí đặc biệt (trên cả nhận dạng vân tay ECDSA). Trong kinh doanh trực tuyến, thường nó sẽ có một sự đăng nhập an toàn duy nhất trên website. Bạn có thể phải( hoặc chọn) điện thoại cho bộ phận IT để xác nhận key này qua điện thoại. • Kiểm tra host key trong hệ thống: Có 4 loại thuật toán mã hóa được sử dụng cho các key nhưng mặc định cho OpenSSH là ECDSA. Sau đây là dòng lệnh bạn có thể chạy trên máy chủ SSH mà bạn truy cập: ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l Đầu ra của bạn sẽ có dạng như thế này: 256 ca:62:ea:7c:e4:9e:2e:a6:94:20:11:db:9c:78:c3:4c /etc/ssh/ssh_host_ecdsa_key.pub Con số đầu tiên là độ dài bit của key, sau đó là key của chính nó, cuối cùng bạn sẽ có một tập tin được lưu trữ. Bạn cần so sánh phần giữa của dòng trên khi được nhắc nhở đăng nhập từ xa. Chúng phải phù hợp với nhau, nếu không sẽ có một vài sự khác biệt xảy ra. Bạn có thể xem toàn bộ các host được kết nối thông qua SSH bằng cách nhìn vào tập tin known_hosts: ~/.ssh/known_hosts Trang 19 SECURITY OF LINUX Bạn có thể mở nó bằng bất cứ trình soạn thảo văn bản nào. Nếu sát, hãy chú ý đến những key được lưu trữ. Chúng sẽ được lưu lại với tên máy chủ (hoặc địa chỉ trang web và địa chỉ ip của nó). • Sự thay đổi host key và các vấn đề phát sinh Có một vài lý do tại sao host key bị thay đổi hoặc không phù hợp với những gì được đăng nhập trong tập tin knows_hosts của bạn: • Hệ thống đã được cài đặt/cấu hình lại (re-installed/re-configured). • Các host key đã được thay đổi thủ công do giao thức bảo mật. • IP hoặc DNS bị thay đổi. • Hệ thống bị xâm nhập khiến host key bị thay đổi. Nhiều khả năng lý do là ở ba câu đầu tiên, và bạn có thể bỏ qua sự thay đổi đó. Nếu IP/DNS bị sửa đổi, bạn sẽ được chuyển đến một máy chủ khác. Nếu bạn không chắc chắn 3 lý do trên, rất có thể lý do cuối cùng đã dẫn đến sự cố các host key bị đổi. Làm thế nào để OpenSSH xử lý các host “vô danh”? OpenSSH được thiết lập để xử lý các host chưa được biết đến, được phản ánh trong biến “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 20
- Xem thêm -

Tài liệu liên quan