4. Hệ thống Firewall xây dựng bởi CSE
4.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.