Xin chào các bạn,
Với sự ra đời của hệ điều hành Linux, các IT men thực sự có thêm nhiểu công việc để làm và nghiên cứu, khám phá những chức năng mạnh mẽ và linh động mà thế giới cộng đồng mã nguồn mở đã đem lại (nếu ai đã từng làm việc qua với Sun Solaris và HP-UX thì có lẽ sẽ thấy Linux thật sự là một O/S mang tính uyển chuyển và sáng tạo, cũng có thể nói những gì hay nhất của các O/S Unix đã được mang dần sang Linux :-) )
Khi dùng Unix nói chung và đặc biệt là Linux hầu như chúng ta có thể "nhốt" bất cứ một network service nào vào một khu vực dành riêng được tạo ra ngay trong / (root folder) mà nó có thể hoạt động độc lập mà không cần tham khảo đến bất cứ một file system nào của root folder.
Tại sao lại phải cần như vậy? Như các bạn đã biết tất cả các software hầu như đều có bugs mà nguy hiểm nhất là lỗi buffer overflow (chắc các bạn cũng đã nghe nói đầy cái lỗ tai về cái bug này rồi), khi các network services như httpd, smtpd, pop3d, snmpd....bị buffer overflow thì nó thường bị khai thác từ xa qua môi trường network (remote exploit) và kết quả là toàn bộ O/S của bạn sẽ bị "tiếp quản" bởi một tay anh chị black hat nào đó, quyền tiếp quản hệ thống sẽ tùy thuộc vào mode mà bạn dùng để run daemon (service) đó có thể là root hay các user bình thường khác, nhưng một khi O/S đã bị thâm nhập ở mức local system rồi thì toàn bộ hệ thống coi như lên đường là cái chắc (cũng giống việc một tay anh chị black hat nào đó đã trà trộn được vào và làm việc trong công ty của bạn :-< ).
Để khắc phục được yếu điểm trên, các hệ thống Unix & Linux đưa ra một cách đó là chroot network service (change root) có nghĩa là tạo ra một folder trong root folder mà có các system files và libraries cần thiết để có thể chạy được network service giới hạn trong chroot folder đó, đó cũng có ý nghĩa là một khi network service đó bị "lủng" thì tay anh chị black hat nào đó chỉ có thể quay quẩn trong cái chroot folder đó thôi mà không thể nào đụng chạm vào toàn bộ hệ thống được, và khi thiết lập một chroot folder mà ta chỉ copy vào cái jail folder đó các system files và libraries cần thiết đủ để chỉ cho cái chroot service đó chạy thôi thì làm sao mà tay anh chị đó có thể thực hiện các lênh nguy hiểm như rm, vi, ftp, wget... như ở ngoài root folder được phải không các bạn, và có lẽ tay anh chị đó chỉ có nước khóc mà thôi :x
Chi tiết dùng để chroot các services như httpd, smtpd.... trên Internet cho ví dụ rất nhiều, các bạn có thể dựa theo mà áp dụng vào cho hệ thống của mình
P.S. Nếu bạn có thể download được một bản Astaro Firewall (www.astaro.com) và nếu có thời gian nhìn vào bên trong thì bạn sẽ thấy tất cả các network services trong đó đểu đã được chroot cả rồi đấy
Happy weekend!
Với sự ra đời của hệ điều hành Linux, các IT men thực sự có thêm nhiểu công việc để làm và nghiên cứu, khám phá những chức năng mạnh mẽ và linh động mà thế giới cộng đồng mã nguồn mở đã đem lại (nếu ai đã từng làm việc qua với Sun Solaris và HP-UX thì có lẽ sẽ thấy Linux thật sự là một O/S mang tính uyển chuyển và sáng tạo, cũng có thể nói những gì hay nhất của các O/S Unix đã được mang dần sang Linux :-) )
Khi dùng Unix nói chung và đặc biệt là Linux hầu như chúng ta có thể "nhốt" bất cứ một network service nào vào một khu vực dành riêng được tạo ra ngay trong / (root folder) mà nó có thể hoạt động độc lập mà không cần tham khảo đến bất cứ một file system nào của root folder.
Tại sao lại phải cần như vậy? Như các bạn đã biết tất cả các software hầu như đều có bugs mà nguy hiểm nhất là lỗi buffer overflow (chắc các bạn cũng đã nghe nói đầy cái lỗ tai về cái bug này rồi), khi các network services như httpd, smtpd, pop3d, snmpd....bị buffer overflow thì nó thường bị khai thác từ xa qua môi trường network (remote exploit) và kết quả là toàn bộ O/S của bạn sẽ bị "tiếp quản" bởi một tay anh chị black hat nào đó, quyền tiếp quản hệ thống sẽ tùy thuộc vào mode mà bạn dùng để run daemon (service) đó có thể là root hay các user bình thường khác, nhưng một khi O/S đã bị thâm nhập ở mức local system rồi thì toàn bộ hệ thống coi như lên đường là cái chắc (cũng giống việc một tay anh chị black hat nào đó đã trà trộn được vào và làm việc trong công ty của bạn :-< ).
Để khắc phục được yếu điểm trên, các hệ thống Unix & Linux đưa ra một cách đó là chroot network service (change root) có nghĩa là tạo ra một folder trong root folder mà có các system files và libraries cần thiết để có thể chạy được network service giới hạn trong chroot folder đó, đó cũng có ý nghĩa là một khi network service đó bị "lủng" thì tay anh chị black hat nào đó chỉ có thể quay quẩn trong cái chroot folder đó thôi mà không thể nào đụng chạm vào toàn bộ hệ thống được, và khi thiết lập một chroot folder mà ta chỉ copy vào cái jail folder đó các system files và libraries cần thiết đủ để chỉ cho cái chroot service đó chạy thôi thì làm sao mà tay anh chị đó có thể thực hiện các lênh nguy hiểm như rm, vi, ftp, wget... như ở ngoài root folder được phải không các bạn, và có lẽ tay anh chị đó chỉ có nước khóc mà thôi :x
Chi tiết dùng để chroot các services như httpd, smtpd.... trên Internet cho ví dụ rất nhiều, các bạn có thể dựa theo mà áp dụng vào cho hệ thống của mình
P.S. Nếu bạn có thể download được một bản Astaro Firewall (www.astaro.com) và nếu có thời gian nhìn vào bên trong thì bạn sẽ thấy tất cả các network services trong đó đểu đã được chroot cả rồi đấy
Happy weekend!
Comment