Hệ điều hành nhúng Bering-Uclibc cho thiết bị an toàn mạng chuyên dụng

14:02 | 04/01/2010

Với sự phát triển mạnh mẽ của công nghệ thông tin và truyền thông, việc bảo vệ các thông tin dữ liệu trong quá trình truyền tin hay lưu giữ trên các mạng máy tính là hết sức cần thiết và cũng hết sức khó khăn, bởi các đối tượng lấy cắp thông tin (hacker/attacker) ngày càng trở lên tinh vi hơn.

Đã có rất nhiều giải pháp an toàn tương ứng với các sản phẩm an toàn thông tin khác nhau, với những ưu, nhược điểm nhất định. Để đáp ứng được nhu cầu phát triển của công nghệ thông tin, các thiết bị hay các sản phẩm an toàn cũng phải thường xuyên nâng cấp, hoàn thiện và đổi mới.
Trước các vấn đề đó, một xu hướng hiện đang được quan tâm, đó là xây dựng các ứng dụng an toàn dựa trên các dòng hệ điều hành nhúng (Embedded OS) và thiết bị nhúng (Embedded Devices).
Phần mềm nhúng thường được xây dựng dựa trên các phần mềm chuẩn, sau khi lược trỏ (strip) các thành phần không cần thiết cho đối tượng cần sử dụng và được biên dịch, đóng gói thông qua các công cụ chuyên dụng để tạo lên ứng dụng có kích thước nhỏ gọn, tối ưu cả trong quá trình lưu giữ cũng như trong quá trình hoạt động.
Phần mềm nhúng có các ưu điểm:
- Chiếm không gian lưu giữ ít, có thể tích hợp lên các thiết bị nhỏ gọn và cơ động.
- Khi hoạt động chiếm ít năng lực hệ thống, hay nói cách khác là hoạt động với tốc độ cao, phù hợp với các hệ thống di động và chuyên dụng.
- Có đầy đủ các tính năng mạng (networking), hay các ứng dụng an toàn.
- Tích hợp trên các thiết bị nhúng để tạo thành một hệ thống chuyên dụng, đảm bảo các yêu cầu về chi phí, độ an toàn vật lý, độ bền cơ học, khả năng cơ động, tốc độ xử lý,...
Dưới đây giới thiệu về một hệ điều hành (HĐH) nhúng là Bering-uClibc với khả năng hỗ trợ các ứng dụng an toàn (firewall, vpn, ipsec,...) và tích hợp trên các thiết bị nhúng chuyên dụng của Bering-uClibc.
Hệ điều hành Bering-uClibc
HĐH nhúng Bering được xây dựng trên HĐH Linux chuẩn. Phiên bản LEAF Bering-uClibc được phát triển ban đầu bởi Jacques Nilo và Eric Wolzak từ năm 2003 thay cho các phiên bản Bering thường trước đó. Sự khác nhau cơ bản giữa hai dòng Bering này là tất cả các thư viện của Bering-uClibc được dịch trên uClibc thay cho glibc 2.x dùng cho Bering thường.
Phiên bản Bering-uClibc cho phép tích hợp các ứng dụng mạng và an toàn, hỗ trợ các phần cứng một cách dễ dàng hơn, các phần mềm được thu nhỏ và có khả năng chạy với tốc độ cao hơn.
Các phiên bản của Bering-uClibc gần đây như: Bering-uClibc v 2.3.x dựa trên Linux kernel version 2.4.31; Bering-uClibc v 2.4.x dựa trên Linux kernel version 2.4.32 và Bering-uClibc v 3.x dựa trên Linux kernel version 2.6.
Với dung lượng nhỏ gọn, Bering-uClibc có thể được cài đặt lên nhiều thiết bị lưu trữ cơ động khác nhau như: đĩa mềm, đĩa cứng, đĩa CDROM, thẻ nhớ USB, thẻ nhớ flash,…. Tuy nhiên hệ thống Bering-uClibc cũng có đầy đủ các ứng dụng mạng, các ứng dụng an toàn cần thiết cho việc tạo ra các hệ thống an toàn mạng chuyên dụng như Firewall, các thư viện mật mã, VPN,…
Tạo đĩa mềm khởi động Bering-uClibc
HĐH Bering-uClibc có thể được cài đặt lên đĩa mềm 1,44M. Quá trình cài đặt có thể thực hiện thông qua HĐH Linux hoặc Windows. Một cách đơn giản là dùng gói cài đặt Bering-uClibc_2.x_img_bering-uclibc-1680.exe chạy trên HĐH Windows.  Download file này từ Leaf Sourceforge, sau đó chạy file này và đưa đĩa mềm vào ổ A, quá trình cài đặt sẽ định dạng đĩa mềm về dạng fd0u1680 để có thể lưu được với dung lượng là 1,68M, tất cả dữ liệu trước đó trên đĩa mềm sẽ bị xoá.
Thiết lập cấu hình trong BIOS máy tính để hệ thống khởi động từ đĩa mềm. HĐH Bering-uClibc sẽ được khởi động và tải toàn bộ chương trình, ứng dụng từ đĩa mềm vào bộ nhớ RAM. Quá trình khởi động thành công, hệ thống sẽ yêu cầu truy cập (logon), nhập vào tên người dùng quản trị “root”- ban đầu không có mật khẩu. Lúc này có thể bỏ đĩa mềm ra khỏi ổ đĩa vì toàn bộ chương trình đã được tải vào bộ nhớ RAM.
Quản trị Bering-uClibc
Với những người đã quản trị trên HĐH Linux ở chế độ lệnh (command line), thì quản trị trên Bering-uClibc cũng có các lệnh quản trị như: quản trị người dùng (adduser, passwd,…), quản trị mạng (ip addr, ifconfig, ping, traceroute, ip route,….), quản trị file/thư mục (cat, ls, mkdir, mv, copy, chwon, chmod,…) hay các chương trình soạn thảo (cat, vi, edit,...) tương tự như trên Linux. Tuy nhiên, vì với mục đích tối ưu về dung lượng cũng như tốc độ nên có một số lệnh hay ứng dụng trên Linux không được cài đặt mặc định trên Bering-uClibc, người quản trị cần phải cài bổ sung nếu thấy cần thiết.
Khi tích hợp Bering-uClibc lên thiết bị nhúng (mip/mips, powerpc,...) trên đó không có giao diện bàn phím hay màn hình. Ngoài việc quản trị Bering-uClibc từ terminal console thông qua giao diện cổng COM (môi trường quản trị này thường có rất nhiều hạn chế) có thể quản trị Bering-uClibc từ xa thông qua dịch vụ ssh, dropbear hay webconfig. Dịch vụ ssh và dropbear có tính tương đồng và đều chạy trên cổng 22, người quản trị có thể sử dụng một trong hai dịch vụ này. Một lựa chọn khác cho quản trị từ xa là thông qua giao diện web, Bering-uClibc sử dụng files cài đặt cho dịch vụ này là httpd.lrp và webconf.lrp, chương trình được xây dựng bằng ngôn ngữ lập trình perl rất tiện ích và phù hợp cho hệ thống nhúng.
Khả năng tối ưu hệ thống
Các ứng dụng của Bering-uClibc được tổ chức thành các file có dạng *.lrp hay các môđun *.o. Một số file đã được tích hợp mặc định trong mỗi bộ cài đặt, các file ứng dụng khác có thể download từ internet hoặc tự biên dịch bằng công cụ uClibc kết hợp với công cụ Busybox.
Trong quá trình sử dụng, người quản trị có thể tối ưu hóa hệ thống bằng cách thêm hoặc bớt các file ứng dụng hay các môđun. Với các file *.lrp, quá trình thêm hoặc bớt là đặt file đó vào trong đĩa khởi động và khai báo cho tham số LRP trong file leaf.cfg. Với các môđun, quá trình thêm hoặc bớt là copy môđun *.o đó vào trong thư mục /lib/modules và khai bóa trong file /etc/modules.
Một số môđun thường gặp như:
- cdrom.o, ide-cd.o, ide-detect.o, ide-core.o, ide-disk.o: dùng để điều khiển thiết bị ổ đĩa cdrom và ổ đĩa cứng IDE.
- scsi_mod.o, usb-uhci.o, usbcore.o, usb-storage.o, sd_mod.o: dùng để điều khiển thiết bị USB.

Xây dựng Firewall trên Bering-uClibc: Bering-uClibc mặc định hỗ trợ hai phần mềm firewall mạnh  đó là Iptables và Shorewall. Cả hai phần mềm này cho phép xây dựng một hệ thống firewall linh hoạt và hiệu quả.
Thông thường Iptables đã được tích hợp trong các bộ cài đặt Bering-uClibc. Tuy nhiên, người dùng cũng có thể bổ sung hay thay đổi phiên bản Iptables một cách đơn giản. File cài đặt Iptables.lrp có thể được download từ trên mạng internet.



Shorewall được phát triển từ Iptables, và nó có thêm các tính năng mềm dẻo như: Masquerading/SNAT, Port forwarding, Static NAT, Proxy ARP, VPN support, Traffic Control/Shaping. Cài đặt shorewall hoàn toàn tương tự như cài các gói ứng dụng khác vào Bering-uClibc.
OpenVPN trên Bering-uClibc: Bering-uClibc cho phép cài đặt cấu hình hệ thống OpenVPN một cách đơn giản và linh hoạt. Các file ứng dụng cho OpenVPN bao gồm: easyrsa.lrp, libcrpto.lrp, liblzo.lrp, libssl.lrp, openssl.lrp, openvpnz.lrp. Ngoài ra, hệ thống còn cần được cài môđun tun.o. Môđun tun.o được lưu trong bộ các môđun hỗ trợ nhân HĐH tại đường dẫn: 2.4.*/kernel/drivers/net/tun.o. Copy file này vào trong thư mục /lib/modules của Leaf Bering-uClipc và khai báo trong file /etc/modules. Quá trình sinh khóa, cấu hình và vận hành hệ thống OpenVPN là tương tự như trên hệ điều hành Linux thường.
Openswan trên Bering-uClibc: HĐH nhúng Leaf bering-uClibc hỗ trợ tất cả các phiên bản OpenSwan khác nhau. Các file cài đặt cần thiết cho OpenSwan bao gồm: openswan.lrp, libpthead.lrp, libm.lrp và mawk.lrp. Môđun cần thiết cho việc tạo các giao diện mạng ảo của OpenSwan là ipsec.o, copy môđun này từ bộ lưu giữ các môđun của Bering-uClibc trong đường dẫn 2.4.*/kernel/net/ipsec.o vào trong thư mục /lib/modules sau đó khai báo trong file /etc/modules. Quản trị hệ thống OpenSwan trên Bering-uClic cũng tương tự như trên HĐH Linux.
Kết luận
Leaf Bering-uClibc được xây dựng và phát triển dựa trên mã nguồn mở của Linux. Khả năng tương thích với các phần cứng, các ứng dụng mạng và các ứng dụng an toàn là khá đầy đủ với các tài liệu quản trị, phát triển chi tiết.
Các ứng dụng an toàn sau khi được cài đặt, cấu hình và tối ưu hóa trên Bering-uClibc có thể được lưu trên thiết bị lưu trữ cơ động có tốc độ và độ ổn định cao như thẻ nhớ flash, usb,... hay cao hơn là chuyển toàn bộ HĐH vào một máy tính nhúng để tạo thành một thiết bị an toàn chuyên dụng.
Một giải pháp khác là tích hợp Bering-uClibc lên thiết bị nhúng chuyên dụng Soekris, đây là thiết bị nhỏ gọn đã tích hợp các giao diện mạng và các môđun phần cứng cần thiết cho việc xây dựng thiết bị bảo mật chuyên dụng.