3. Hệ thống Firewall xây dựng bởi CSE
3.2.1 Smap: Dịch vụ SMTP
SMTP đ−ợc xây dựng bằng cách sử dụng cặp công cụ phần mềm smap vμ smapd. Có thể nói rằng SMTP chống lại sự đe doạ tới hệ thống, bởi vì các ch−ơng trình mail chạy ở mức độ hệ thống để phân phát mail tới các hộp th− của user. Smap vμ smapd thực hiện điều đó bằng cách cô lập ch−ơng trình mail, bắt nó chạy trên một th− mục dμnh riêng (restricted directory) qua chroot (thay đổi th− mục gốc), nh− một user không có quyền −u tiên. Mục đích của smap lμ cô lập ch−ơng trình mail vốn đã gây ra rất nhiều lỗi trên hệ thống. Phần lớn các công việc xử lý mail th−ờng đ−ợc thực hiện bởi ch−ơng trình sendmail. Sendmail không yêu cầu một sự thay đổi hay đặt lại cấu hình gì cả. Khi một hệ thống ở xa nối tới một cổng SMTP, hệ điều hμnh khởi động smap. Smap lập tức chroot tới th− mục dμnh riêng vμ đặt user-id ở
mức bình th−ờng (không có quyền −u tiên). Bởi vì smap không yêu cầu hỗ trợ bởi một file hệ thống nμo cả, th− mục dμnh riêng chỉ chứa các file do smap tạo ra. Do vậy, bạn không cần phải lo sợ lμ smap sẽ thay đổi file hệ thống khi nó chroot. Mục đích duy nhất của smap lμ đối thoại SMTP với các hệ thống khác, thu l−ợm thông báo mail, ghi vμo đĩa, ghi nhật ký, vμ thoát.
Smapd có trách nhiệm th−ờng xuyên quét th− mục kho của smap vμ đ−a ra các thông báo đã đ−ợc xếp theo thứ tự (queued messages) tới sendmail để cuối cùng phân phát. Chú ý rằng nếu sendmail đ−ợc đặt cấu hình ở mức bình th−ờng, vμ smap chạy với uucp user-id (?), mail có thể đ−ợc phân phát bình th−ờng mμ không cần smapd chạy với mức −u tiên cao. Khi smapd phân phát một thông báo, nó xoá file chứa thông báo đó trong kho.
Theo ý nghĩa nμy, sendmail bị cô lập, vμ do đó một user lạ trên mạng không thể kết nối với sendmail mμ không qua smap. Tuy nhiên, smap vμ smapd không thể giải quyết vấn đề giả mạo th− hoặc các loại tấn công khác qua mail. Smap có kích th−ớc rất nhỏ so với sendmail (700 dòng so với 20,000 dòng) nên việc phân tích file nguồn để tìm ra lỗi đơn giản hơn nhiều.