FreeBSD 5.5 RELEASE [email protected]
1. บทนำ
FreeBSD 5.5-RELEASE เป็น release สุดท้ายของ 5.5-STABLE
จากนี้ทีมพัฒนา FreeBSD จะไปมุ่งเน้นการพัฒนา 6-STABLE และ CURRENT
ซึ่งใน 5.5-STABLE จะไม่มีการเพิ่ม feature ใหม่เข้าไป
แต่จะเป็นการแก้ปัญหาเล็ก ๆ น้อย ๆ รวมอยู่ด้วย
ทีมพัฒนาระบบรักษาความปลอดภัยจะให้การสนับสนุนไปจนถึงวันที่ 31
พฤษภาคม 2008
2. What's New
ส่วนใหญ่จะเป็นการแก้ไขปัญหาด้านความปลอดภัยของ 5.4-RELEASE, เพิ่ม
drivers ให้สนับสนุน hardware ใหม่ ๆ, เพิ่มคำสั่งหรือ option, แก้
bug, ปรับปรุงซอฟต์แวร์
2.1 Security Advisories
ระบบที่ใช้ Hyper-Threading Technology (HTT) จะมี
machdep.hyperthreading_allowed เพิ่มเข้าไปใน sysctl โดยใน FreeBSD
CURRENT จะมีค่าเป็น 1 (ใช้ HTT) และมีค่าเป็น 0 (ไม่ใช้ HTT) สำหรับ
4-STABLE และ 5-STABLE
แก้ปัญหาของ tcpdump ที่เกิดขึ้นเมื่อได้รับ packet บางอย่าง
แก้ 2 ปัญหาของ gzip ที่ทำให้ผู้ใช้เปลี่ยน permission
ของไฟล์ต้นฉบับได้ และปัญหาเขียนทับไฟล์ต้นฉบับตอนขยายไฟล์
แก้ปัญหาของ ipfw ที่ตรวจสอบ packet บางอย่างผิดพลาด ซึ่งจะเกิดในระบบ
SMP หรือ UP ที่มีการใช้ PREEMPTION ใน kernel
แก้ 2 ปัญหาของ bzip2 ซึ่งทำให้เกิด Denial of Service
และปัญหาการแก้ไข permission ของไฟล์โดยไม่ได้รับอนุญาต
แก้ 2 ปัญหาของ TCP Stack ที่ทำให้ผู้บุกรุกเชื่อมต่อ TCP ค้างเอาไว้
แล้วสร้างสถานการณ์ Denial of Service
แก้ 2 buffer overflow ของ zlib
แก้ปัญหาความปลอดภัยของ jail ที่สามารถเข้าถึง devfs
ซึ่งซ่อนอยู่ได้
แก้ข้อผิดพลาดของ ipsec ซึ่งส่งผลกับการเข้าใช้แบบ AES-XCBC-MAC
แก้ปัญหา temporary file ของ cvsbug
ซึ่งทำให้ผู้บุกรุกสามารถแก้ไขไฟล์ขณะเรียก cvsbug ขึ้นมาทำงาน
แก้ข้อผิดพลาดของ OpenSSL ที่ทำให้ผู้บุกรุกสามารถใช้ SSL
ล้าสมัยมาโจมตี
แก้ปัญหา temporary file ของ texindex
ซึ่งทำให้ผู้บุกรุกจากภายในสามารถเขียนไฟล์ของผู้ใช้ที่เรียก texindex
ขึ้นมาทำงาน
แก้ปัญหา temporary file ของ ee
ซึ่งทำให้ผู้บุกรุกจากภายในสามารถเขียนไฟล์ของผู้ใช้ที่เรียก ee
ขึ้นมาทำงาน
แก้ไข cpio
แก้ปัญหา Memory ของ Kernel
แก้ไขวิธีจัดการ IP Fragment ของ pf
ซึ่งสามารถก่อให้เกิดความเสียหายได้
แก้ไขความผิดพลาดของ Selective Acknowledgement (SACK) ใน TCP/IP
Stack ซึ่งสามารถทำให้เกิด loop ไม่รู้จบหากได้รับ packet
ที่ไม่ถูกต้อง
แก้ไขวิธีจัดการ account ของ OpenSSH ซึ่งส่งผลให้ master
สามารถให้สิทธิหรือหยุดการทำงานผู้ใช้ได้
แก้ไข NFS server ซึ่งสามารถทำให้ server ล่มได้
หากได้รับข้อมูลที่มีความยาวเป็นศูนย์
แก้ไขโปรแกรม fast_ipsec เนื่องจากใช้ Security Association
ที่ไม่ทันสมัย
แก้ไข opiepasswd ที่ให้สิทธิผู้ใช้แก้ไข OPIE ของ root
แก้ปัญหา asynchronous signal ของ sendmail
ซึ่งทำให้ผู้บุกรุกจากข้างนอกสามารถเรียกโปรแกรมของผู้ใช้ที่ส่งเมล์ขึ้นมาท
ำงานได้ (ซึ่งมักจะเป็น root)
แก้ปัญหา Kernel ที่ทำงานกับ AMD รุ่น 7, 8
2.2 Kernel Changes
2.2.1 Boot Loader Changes
คำสั่ง autoboot จะไม่ได้รับผลกระทบจากผู้ใช้เมื่อตั้งค่า
autoboot_delay = -1
2.2.2 Hardware Support
สนับสนุน Cronyx Tau32-PCI และ CPU แบบ Dual Core โดยใช้ Kenel แบบ
SMP
2.2.2.1 Multimedia Support
uaudio สามารถทำงานได้ตามปกติแล้ว
2.2.2.2 Network Interface Support
bge จะรองรับชิป BCM5714 และ 5789
ixgb จะเป็น MPSAFE
ndis สามารถทำเป็น module หรือ compile รวมเข้าไปใน kernel
ก้ได้
xl สนับสนุน polling
2.2.3 Network Protocols
นำ if_bridge ของ NetBSD มาใช้ สนับสนุนการทำงาน IEEE 802.1D Spanning
Tree Protocol, การทำงานแบบ bridge, การ filter packet,
และการกระจายข้อมูล
ifconfig สนับสนุน if_bridge
2.2.4 Disk and Storage
ปรับปรุง twa จากเวปไซต์ 3ware
2.2.5 File Systems
2.2.6 Contributed Software
2.3 Userland Changes
เพิ่ม bsdiff และ bspatch
cmp สามารถใช้ -h เพื่อเปรียบเทียบ symbolic link ได้
gethostbyname, gethostbyname2, gethostbyaddr ทำงานแบบ
thread-safe
getnetent, getnetbyname, getnetbyaddr ทำงานแบบ thread-safe
getprotoent, getprotobyname, getprotobynumber ทำงานแบบ
thread-safe
getservent, getservbyname, getservbyport ทำงานแบบ thread-safe
kdump สามารถใช้ -s เพื่อไม่ให้แสดงข้อมูลได้
kldstat สามารถใช้ -m เพื่อแสดงสถานะของ module ที่ระบุได้
เพิ่ม stack size ของ libpthread, libthr และ libc_r โดยในระบบ 32 บิต
thread หลักจะมี stack 2 MB, thread อื่น ๆ จะมี stack 1 MB
ส่วนในระบบ 64 บิตจะมีขนาด 4 MB และ 2 MB ตามลำดับ
netstat สามารถใช้ -h เพื่อแสดงสถิติ
ping สามารถใช้แบบ sweeping ping ในการทดสอบระบบได้
เพิ่ม powerd สำหรับจัดการการใช้ไฟฟ้า
rfccomm_sppd เพิ่ม -c เพื่อระบุเลข channel
และสามารถใช้ชื่อต่อไปนี้ได้ DUN (Dial-Up Networking), FAX (Fax),
LAN (LAN Access Using PPP) และ SP (Serial Port)
rm สามารถใช้ -I เพื่อให้ยืนยันเพียงครั้งเดียวในการลบ directories
หรือมีการลบไฟล์ผ่าน command line ตั้งแต่ 3 ไฟล์ขึ้นไป
sed สามารถใช้ -l เพื่อทำ output line-buffer
sh เพิ่มคำสั่ง times
เพิ่ม snapinfo เพื่อแสดงตำแหน่ง snapshort ของ UFS
2.3.1 /etc/rc.d Scripts
เพิ่ม bluetooth script ซึ่งเรียกใช้จาก devd
การตั้งค่าจะใช้พารามิเตอร์จาก /etc/defaults/bluetooth.device.conf
ผู้ใช้สามารถปรับค่าเพิ่มเติมได้จาก /etc/bluetooth/$device.conf (โดย
$device หมายถึง ubt0, btcc0 และอื่น ๆ)
rc.d/jail สามารถใช้ jail_name_flags ได้แล้ว
2.4 Contributed Software
BIND เปลี่ยนจาก 9.3.1 เป็น 9.3.2
sendmail เปลี่ยนจาก 8.13.3 เป็น 8.13.6
ฐานข้อมูล timezone เปลี่ยนจาก tzdata2005g เป็น tzdata2006g
2.5 Ports/Packages Collection Infrastructure
pkg_add สามารถใช้ -P ซึ่งมีความหมายเหมือน -p เพื่อใช้กับ dependency
packages
pkg_add และ pkg_create สามารถใช้ -K เพื่อเก็บ packages ไว้ใน
directory ปัจจุบัน
pkg_create สามารถใช้ -x เพื่อทำงานกับ regular expression ง่าย ๆ, -e
สำหรับ regular expression ที่ยากขึ้น, และ -G เพื่อเปรียบเทียบ
pkg_version สนับสนุน -I โดยใช้ข้อมูลจาก INDEX เพื่อบอกว่า package
ล้าสมัย
pkg_version สนับสนุน -o เพื่อแสดง origin record แทนที่จะเป็นชื่อ
package
เพิ่ม portsnap (sysutils/portsnap) เพื่อใช้กับ port tree
ซึ่งจะปลอดภัย, ใช้ง่าย, เร็ว, โปรแกรมมีขนาดเล็ก
นำ script สำหรับ Port Collection ออก .. โปรแกรม foo.sh
เปลี่ยนชื่อเป็น foo
rc.conf เพิ่ม ldconfig_local_dirs และ ldconfig_local32_dirs
ถ้าไม่ระบุ @cwd ใน pkg-plist ระบบจะใช้ directory ปัจจุบัน
2.6 Release Engineering and Integration
GNOME (x11/gnome2) เปลี่ยนจาก 2.10.2 เป็น 2.12.3
KDE (x11/kde3) เปลี่ยนจาก 3.4.2 เป็น 3.5.1
Perl (lang/perl5.8) เปลี่ยนจาก 5.8.7 เป็น 5.8.8
Xorg (x11/xorg) เปลี่ยนจาก 6.8.2 เป็น 6.9.0
2.7 Documentation
3. Upgrade from previous releases of FreeBSD
สามารถใช้ได้ 3 วิธี
- ใช้ sysinstall
- ติดตั้ง FreeBSD ใหม่
- สั่ง make world
ที่มา ::
http://www.thaibsd.com/webboard/show.php?Category=thaibsd&No=6110