Thư điện tử là một phương tiện truyền thông tin rất nhanh chóng và tiện
lợi. Thông tin truyền đi có thể được truyền ở dạng mã hoá hoặc dạng
thông thường. Một bức thư điện tử được gửi đi có thể đi qua rất nhiều
máy chủ khác nhau trên mạng internet và cuối cùng đến được một hay nhiều
máy người nhận cùng lúc chỉ trong vòng vài chục giây.
Cấu trúc hệ thống thư điện tử
Hệ thống Mail Server là một hệ thống tổng thể bao gồm nhiều thành phần hoạt
động tương tác với nhau. Mỗi thành phần bản thân phục vụ các dịch vụ
khác nhau, nhưng đồng thời các kết quả lại được đưa đến các thành phần
khác để xử lý tiếp theo. Dưới đây là mô hình của hệ thống Mail Server và
sự tương tác giữa các thành phần bên trong:
Cấu trúc hệ thống thư điện tử chung
Mail User Agent (MUA): Trình tương tác với người dùng, soạn thảo, gửi hoặc nhận e- mail
SMTP Server: gọi là Mail Transfer Agent (MTA). SMTP server sử dụng để chuyển
e-mail từ người gửi đến Mail Server chứa hộp thư, dùng giao thức SMTP.
POP3/IMAP Server: Gọi là Mail Delivery Agent (MDA),
lưu các thư nhận được vào hệ thống và khi cần người dùng sử dụng chương
trình mail client lấy các thư này về máy tính để đọc. Chương trình mail
client giao tiếp với POP/IMAP server dựa trên giao thức POP3/IMAP. Thông
thường mail server hỗ trợ cả hai giao thức SMTP và POP3, còn IMAP thì
ít hơn.
DNS Server: Lưu trữ 1 hoặc nhiều bản ghi MX cho các tên miền, nhằm xác định
địa chỉ của hệ thống Mail muốn giao tiếp.
Database server: Lưu trữ các thông tin về người dùng hệ thống, cung cấp dữ liệu
phục vụ cho vấn đề chứng thực người dùng.
Webserver, webmail: Cung cấp giao diện người dùng nền web, người dùng có thể
thực hiện các thao tác tương tác với hệ thống qua giao diện này.
Các giải pháp e-Mail mã nguồn mở
Hiện nay trên thế giới đa xuất hiện rất nhiều sản phẩm xây dựng một hệ thống
Mail Server. Có nhiều sản phẩm với giá cả rất rẻ (thậm chí miễn phí),
nhỏ gọn, cài đặt và quản trị đơn giản, như WorkGroupMail, Surge Mail
Server, Kerio Mail Server. Cũng có những sản phẩm lớn, giá thành cao,
tính năng phong phú, đáp ứng được sự ổn định và an toàn như Mail
Exchange của Microsoft, Merak Mail Server…
Tuy nhiên các hệ thống này chưa đáp ứng được nhu cầu người dùng. Hệ
điều hành linux là sự lựa chọn tốt nhất cho nền tảng hệ thống. Trong thế
giới mã nguồn mở hiện nay, đã có rất nhiều hệ thống truyền tải thư điện
tử MTA (Mail Transfer Agent) được phát triển. Nổi tiếng và phổ biến
trong số đó gồm có: Sendmail, Qmail, Postfix, Exim, Courier. Mỗi MTA đều
có những ưu điểm và nhược điểm riêng:
Sendmail
Sendmail (
http://www.sendmail.org)
là MTA đơn giản và lâu đời nhất trên các dòng Unix thời xưa. Ngày nay,
trên các hệ thống Linux, đặc biệt là các sảm phẩm của RedHat, Sendmail
vẫn được cài đặt là MTA mặc định cho hệ thống. Ngày nay, Sendmail đa
được thương mại hóa bên cạnh sản phẩn miễn phí và vẫn được tiếp tục duy
trì, phát triển. Tuy nhiên, vì được thiết kế theo cấu trúc khối và ảnh
hưởng từ cấu trúc cũ, nên Sendmail chưa đạt được tính năng ổn định và
bảo mật của một MTA như mong muốn.
Qmail
Qmail
được viết bởi Bernstein, là một MTA dành cho hệ điều hành tựa Unix, bao
gồm Linux, FreeBSD, Sun Solaris, … Qmail ra đời như một tất yếu thay
thế cho Sendmail và các yếu điểm của nó. Vì vậy, Qmail ngay từ ban đầu
đa được thiết kế đơn giản, module hóa với tiêu chí bảo mật được đặt lên
rất cao. Đồng thời, Qmail là một MTA hiện đại nên hỗ trợ tốt các kiểu
định dạng mới hiện nay như định dạng hòm thư Maildir…Do Qmail được thiết
kế module hóa và tối ưu hóa các tính năng ngay từ đầu, nên nó có tốc độ
thực thi rất nhanh và ổn định.
Postfix
Weitse
Venema, tác giả của các phần mềm miễn phí nổi tiếng như TCP Wrappers,
SATAN và Logdaemon, ông không hài lòng khi sử dụng các MTA hiện có (bao
gồm cả Qmail), vì vậy, ông đa viết ra Postfix (
http://www.postfix.org).
Postfix là một MTA mới, có khả năng thực thi cao, thừa kế cấu trúc
thiết kế tốt từ Qmail, trong khi đó vẫn giữ được tính tương thích tối đa
với Sendmail. So sánh với Qmail, Postfix có kích thước lớn hơn, phức
tạp hơn, trong khi đó lại kém bảo mật, kém tin cậy và chạy chậm hơn. Tuy
Postfix cũng được thiết kế theo cấu trúc module, nhưng các module của
Postfix chạy dưới quyền của cùng một người dùng hệ thống, vì vậy sự hỏng
hóc của một module có thể ảnh hưởng đến toàn bộ hệ thống. Xét về tổng
thể, Postfix là một MTA tốt. Nếu vấn đề bảo mật và khả năng thực thi của
hệ thống không được đoi hỏi quá cao, người quản trị có thể chọn và sử
dụng Postfix.
Exim
Philip Hazel đa phát triển Exim (
http://www.exim.org)
tại trường đại học Cambridge. Nó được thiết kế theo xu hướng nhỏ và đơn
giản nhưng vẫn đảm bảo các tính năng. Tuy nhiên, Exim vẫn được thiết kế
theo cấu trúc khối, và hai yếu tố quan trọng với các MTA hiện đại là
bảo mật và khả năng thực thi lại không được coi trọng. Hiện nay, Exim là
MTA được lựa chọn và cài đặt mặc định trên các phiên bản phân phối
Linux dựa theo Debian, ngoài ra nó không được sử dụng rộng rãi.
Như vậy, tùy theo mục đích và nhu cầu sử dụng, người quản trị sẽ lựa
chọn một MTA cho hệ thống của mình, ngoài ra, với mỗi điều kiện và môi
trường khác nhau, mỗi MTA lại có mức độ phù hợp khác nhau. Với các ưu
điểm vượt trội rõ rệt của Qmail, đây là một lựa chọn phù hợp cho các hệ
thống email của trường Đại học Quốc gia Hà Nội.
Các thành phần kết hợp với Qmail.
Giới thiệu tổng quát về Qmail và phương thức tải, biên dịch và chuẩn bị cài đặt Qmail server.
1.1 Tài liệu dành cho ai?
Tài liệu này dành cho những ai muốn dùng Qmail như một MTA cho hệ thống
mail. Ðiều cần thiết là người đọc phải có kiến thức căn bản sử dụng một
hệ thống *nix (cách sử dụng các lệnh và cách truy cập / tạo vào các thư
mục). Người viết tài liệu không chịu trách nhiệm cho bất cứ hư hại đến
máy của người dùng cũng như sự phiền não, bực dọc, mất ngủ .... đến người
dùng tài liệu này smilie
Tài liệu này đào sâu ở mức độ có hạn. Mọi ứng dụng tùy thuộc vào nhu
cầu và khả năng thiết lập của người dùng. Qmail không phải là một MTA
phức tạp. Tuy nhiên nó mang một số khái niệm điều hành độc lập giữa các
thành phần để tạo nên một MTA làm việc hoàn chỉnh, do đó, người đọc nên
nghiên cứu kỹ trước khi bắt tay vào việc thiết kế một hệ MTA dùng Qmail.
Tài liệu này ứng dụng mô hình qmail làm mail gateway để nhận mail từ
Internet và chuyển mail đến một hoặc nhiều mail servers bên trong mạng
riêng. Người viết không ứng dụng mô hình qmail như là một mail server
phục vụ tất cả các mail protocol khác như IMAP, POP3... vì lý do bảo mật.
Có hai điểm tối quan trọng của mô hình mail gateway là:
- Ổn định và hiệu năng: qmail có khả năng chuyển nhận hàng triệu
thông điệp một ngày (dựa vào tài liệu trên web site của qmail.org). Tuy
nhiên, nếu biến nó thành một mail server phục vụ tất cả các mail
protocol thì bị giới hạn trong vấn đề kiểm dịch (authentication). Nếu
mail server thuộc một mạng dùng hoàn toàn Unix thì giới hạn này có thể
khắc phục dễ dàng. Không may trên thực tế hiện nay, không còn nhiều
mạng "thuần" Unix hoặc "thuần" một hệ điều hành nào khác. Bởi vậy,
qmail hoạt động như một mail gateway chỉ có trách nhiệm chuyển mail đến
các mail servers khác (trong giới hạn cho phép domain) mà không phải lo
vấn đề authentication, do đó, ngoài tính bảo mật, tính hiệu năng được
nâng cao đáng kể.
-Tính bảo mật: Như đã nêu ra ở trên những khó khăn trong cơ chế quản
lý kiểm dịch của một (hoặc nhiều) mạng có đa hệ điều hành không những
giảm sút tính hiệu năng mà còn ảnh hưởng lớn đến tính bảo mật. Lý do,
quản lý một trung tâm tài nguyên nhân dụng (central user database) dễ
dàng và ổn định hơn nhiều user database. Hơn thế, cơ chế Internet <
-> Mail Gateway < -> Firewall < -> Internal Mail Servers
< -> Users chặc chẽ và an toàn hơn. Ðó là chưa kể ứng dụng kiểm
soát / ngăn chặn viruses, trojans và cách loại scripts mang tính phá
hoại trên một Unix Mail Gateway trước khi thông điệp được chuyển vào
một Mail Server bên trong (Microsoft Exchange hoặc IBM Lotus chẳng
hạn). Các ứng dụng cho POP3 hoặc IMAP được thiết lập một cách độc lập
trên internal mail servers và người dùng có thể truy cập qua một cơ chế
firewalling nào đó.
1.2 Sơ lược về Qmail
Qmail được viết bởi Tiến sĩ toán của trường đại học Illinois, Chicago,
tiến sĩ Dan Bernstein. Qmail ra đời vào tháng Giêng năm 1996 với một
phiên bản Beta 0.70 và sau đó phiên bản Gamma 0.90 được cập nhật vào
tháng 8 năm 1996. Phiên bản ổn định 1.0 được ra mắt vào tháng 2 năm
1997. Phiên bản được lưu hành hiện nay là 1.03 được phát hành vào tháng
6 năm 1997.
1.3 Tại sao dùng Qmail?
Có rất nhiều MTA trên môi trường *nix hiện nay và mỗi khi nhắc đến MTA
chúng ta phải nhắc đến Sendmail. Tuy nhiên, Dan Bernstein viết Qmail vì
ông ta thấy rằng Sendmail thừa hưởng nhiều lỗi bảo mật từ các phiên bản
trước đây và phần mềm này rất cồng kềnh, cho dù những năm gần đây, nhóm
Sendmail không ngừng điều chỉnh và cải tiến phần mềm này để giảm thiểu
những yếu điểm. Khi viết Qmail, ngoài ưu tiên cho vấn đề bảo mật, Dan
Bernstein chú trọng rất nhiều đến khả năng hoạt động và tính dễ dùng
của nó. Qmail mang tính truyền thống của các hoạt trình Unix: mỗi tiểu
ứng trình có khả năng đảm đương trọn vẹn một chức năng chuyên biệt và
các tiểu ứng trình này có thể chuyền (pipe) sang các tiểu ứng trình
khác để đáp ứng các quy trình phức tạp. Bởi thể, Qmail bao gồm nhiều
binaries tạo thành một dây chuyền hoạt động. Ðây là một điển hình nặng
tính bảo mật và tính hiệu năng trong cơ chế điều hành của một MTA.
2. Cài đặt Qmail
2.1 Cài từ "gói" (RPM) hay từ tar ball?
Qmail thuộc dạng mở-nguồn nên bạn có thể tải mã nguồn của Qmail về để
compile và thiết kế nó cho thích hợp với hệ điều hành của mình. Có một
số RPM cho RedHat trên Internet (dùng http://rpmfind.net để tìm). Tuy
nhiên, có ít nhiều hạn chế khi dùng RPM và không phải các "gói" này
luôn luôn có sẵn cho các hệ điều hành.
RPM thường buộc người dùng cài đặt binaries vào một nơi trong những
thư mục và đôi khi sự ép buộc này không tiện cho cách tổ chức thư mục
đã có sẵn của bạn. RPM không giải quyết được các trường hợp bị thiếu
hoặc sai "thư viện lệ thuộc" (dependencies). Bởi thế, phương cách
compile và build từ mã nguồn xem ra là một phương cách khả thi nhất.
Hơn nữa, nó sẽ tạo cơ hội cho bạn hiểu rõ hơn cơ chế làm việc của Qmail
sau quá trình cài đặt. Tài liệu này sẽ chỉ chuyên chú vào quy trình
compile và build từ mã nguồn.
2.2 Yêu cầu để cài đặt Qmail
Ðể có thể cài đặt Qmail thành công, sau đây là các yêu cầu tối yếu:
- Một C compiler, các thư mục header và các thư viện cho hệ thống
lập trình. Nếu bạn dùng trong một phiên bản Linux, compiler của bạn hẳn
là gcc.
- Có đủ nơi chứa cho quá trình build và các binaries và các tài liệu
sau khi Qmail được build. Ổ chứa tuyệt đối cần thiết cho Qmail lưu trữ
và xử lý mail trong các điểm "xếp hàng" (mail queues).
- Domain name của bạn. Qmail chỉ làm việc (đúng) khi bạn có một
domain hợp pháp (fully qualified domain name FQDN). Liên hệ với dịch vụ
Internet của bạn cho vấn đề này nếu bạn không rõ.
- Qmail được thiết kế như một MTA hạng nặng. Ðiều này có nghĩa máy
chạy Qmail phải có băng thông ổn định và rộng đủ để tải và nhận mail.
Nếu bạn có dự định thiết lập một MTA xuyên qua modem, có lẽ serialmail
là một phần mềm thích hợp hơn
(http://cr.yp.to/software/serialmail-0.75.tar.gz).
2.3 Những điều cần chuẩn bị
Qmail không phải là một phần mềm MTA phức tạp. Tuy nhiên, cách an toàn
nhất nên thử cài đặt trên một máy tách biệt từ hệ thống mail đang làm
việc của bạn và thâu thập kinh nghiệm trước khi cài đặt trên máy chính
thức.
Thực ra quá trình compile và build qmail sẽ không ảnh hưởng gì đến
hệ thống mail đang làm việc của bạn. Tuy nhiên, bước kiểm nghiệm Qmail
sẽ làm gián đoạn hệ thống mail đang có. Ðề nghị trên đơn giản là một
cách nhắc nhở mang tính an toàn.
Nếu bạn có dụng ý chuyển đổi (migrate) từ một MTA khác sang Qmail, cũng
như bao nhiêu quy trình chuyển đổi khác, giai đoạn hình thành một chiến
thuật chuyển đổi (từng bước một) là một điều hết sức cần thiết và giai
đoạn "thử" Qmail sẽ giúp bạn hình thành chiến thuật này chính xác hơn
và hữu hiệu hơn.
2.4 Tải mã nguồn từ đâu
- Mã nguồn Qmail có thể được tải về từ:
http://cr.yp.to/software/qmail-1.03.tar.gz
hoặc theo đường dẫn của site
http://cr.yp.to/software.html
(site chính thức của mã nguồn Qmail).
- Ngoài mã nguồn của Qmail ở trên, bạn cần thêm ít nhất hai phần mềm
phụ nhưng tuyệt đối cần thiết cho Qmail (chi tiết hoạt động của các
phần mềm phụ này sẽ được trình bày trong quy trình thiết lập Qmail).
Hai phần mềm phụ nói trên là:
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
http://cr.yp.to/ucspi-tcp/install.html
(cho uscpi-tcp) và http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://cr.yp.to/daemontools/install.html
(cho daemontols).
2.4 Từng bước cài đặt
2.4.1 Xả nén mã nguồn
Các bước cài đặt cần chủ quyền root nên trước khi xả nén vào tạo các hồ
sơ thư mục, bạn nên chuyển chủ quyền sang super user. Theo quy định
chung của System V, các nguồn và binaries do người dùng thêm vào system
nên cho vào /usr/local/src, cho nên chúng ta cứ theo vậy mà làm.
- chuyển thành super user:
myshell$ su
(đánh mật mã của root)
- đổi umask thành 022 cho bảo đảm
# umask 022
- tạo thư mục /usr/local/src (nếu nó chưa có sẵn)
# mkdir -p /usr/local/src
- dời các source của qmail vào trong /usr/local/src
# mv qmail-1.03.tar.gz ucspi-tcp-0.88.tar.gz daemontools-0.76.tar.gz /usr/local/src
- vào thư mục /usr/local/src để xả nén cái gói qmail, uscpi-tcp và daemontools
# cd /usr/local/src
# gunzip *
# tar -xpvf qmail-1.03.tar
# tar -xpvf ucspi-tcp-0.88.tar
# tar -xpvf daemontools-0.76.tar
2.4.2 Tạo hồ sơ thư mục
Ðến đây bạn đã có một nhóm thư mục như sau:
/usr/local/src/qmail-1.03, /usr/loca/src/ucspi-tcp-0.88 và /usr/local/src/admin/daemontools-0.76.
- Bước kế tiếp tạo thư mục chủ cho Qmail, đây là nơi trọn bộ binary và configuration cho qmail được cất giữ và điều hành.
# mkdir /var/qmail
- Tạo thư mục bin trong thư mục chủ của qmail, nơi chứa các binaries
# mkdir /var/qmail/bin
- Tạo thư mục control trong thư mục chủ của qmail, nơi chứa các hồ sơ chỉnh liệu
# mkdir /var/qmail/control
- Tạo thư mục alias trong thư mục chủ của qmail, nơi chứa các hồ sơ ảo
# mkdir /var/qmail/alias
- Tạo thư mục man trong thư mục chủ của qmail, nơi chứa các tài liệu cho qmail
# mkdir /var/qmail/man
2.4.3 Tạo tài khoản nhân dụng và nhóm nhân dụng
Vấn đề tạo tài khoản nhân dụng và nhóm nhân dụng hết sức quan trọng cho
qmail trong vấn đề hoạt động vào bảo mật. Tài khoản nhân dụng cho phép
qmail hoạt động trong giới hạn trách nhiệm của nó. Ðiều này có nghĩa,
trường hợp qmail bị "hack", tài khoản nhân dụng của qmail không thể
dùng (hoặc rất khó) để xâm nhập hệ thống sâu hơn.
Có một số phương thức khác nhau để tạo tài khoản nhân dụng và nhóm
nhân dụng. Nhiều người xử dụng qmail đã tạo ra một số scripts để thực
hiện bước này một cách nhanh chóng và dễ dàng. Tuy nhiên ở đây chúng ta
nên đi xuyên qua các bước này một cách cụ thể để có thể hiểu sâu hơn
vấn đề tài khoản nhân dụng và bảo mật trong quá trình tạo tài khoản
nhân dụng.
- Tạo nhóm nhân dụng nofiles
# groupadd nofiles
- Tạo tài khoản nhân dụng cho nhóm nofiles này
# useradd alias -g nofiles -d /var/qmail/alias -s /bin/true
# useradd qmaild -g nofiles -d /var/qmail -s /bin/true
# useradd qmaill -g nofiles -d /var/qmail -s /bin/true
# useradd qmailp -g nofiles -d /var/qmail -s /bin/true
Như các bạn thấy, chuỗi lệnh ở trên là lệnh căn bản tạo tài khoản
nhân dụng cho các user alias, qmaild, qmaill và qmailp có cùng một nhóm
nhân dụng là nofiles. Ðặc biệt các lệnh trên không cho những user này
một shell nào cả (-s /bin/true - lệnh true thực sự không làm gì cả) vì
lý do các user này là các "nhân viên" hoạt động của qmail và chúng
không hề cần shell. Một điểm cần nhớ trong quá trình tạo tài khoản nhân
dụng: khi "người dùng" không cần một shell để thi hành trách nhiệm thì
không nên cho họ một shell. Trường hợp một tài khoản nhân dụng bị hack,
tin tặc khó có thể đi sâu hơn nếu tài khoản nhân dụng đó không được
phép xử dụng bất cứ một shell nào.
- Tương tự, tạo nhóm nhân dụng qmail như sau:
# groupadd qmail
- Tạo tài khoản nhân dụng cho nhóm nhân dụng qmail này:
# useradd qmailq -g qmail -d /var/qmail -s /bin/true
# useradd qmailr -g qmail -d /var/qmail -s /bin/true
# useradd qmails -g qmail -d /var/qmail -s /bin/true
Một lần nữa, các "người dùng" qmailq, qmailr và qmails thuộc nhóm
qmail này không cần shell. Lý do phải tạo các người dùng như trên sẽ
được giải thích trong những bước sau.
Bước kế tiếp rất quan trọng. Bước này kiểm nghiệm chủ quyền và nhóm nhân dụng của các "người dùng" vừa tạo ra ở trên.
- Dùng vihoặc bất cứ text editor nào vào /etc/group và viết xuống mã
hiệu (GID hay group ID) của nhóm nhân dụng nofiles và qmail.
- Ví dụ group nofiles có mã hiệu là 2004 và group qmail là 2005. Bạn
dùng vi vào /etc/passwd và kiểm lại xem các entry cho alias, qmaild,
qmaill, qmailp, qmailq, qmailr và qmails có đúng nhóm nhân dụng và
shell của họ là /bin/true hay không. Những entry này tương tự như:
alias:*:1005:2004::/var/qmail/alias:/bin/true
qmaild:*:1006:2004::/var/qmail:/bin/true
qmaill:*:1007:2004::/var/qmail:/bin/true
qmailp:*:1008:2004::/var/qmail:/bin/true
qmailq:*:1009:2005::/var/qmail:/bin/true
qmailr:*:1010:2005::/var/qmail:/bin/true
qmails:*:1011:2005::/var/qmail:/bin/true
Trong các entry ở trên mỗi user có riêng một mã hiệu và thuộc vào nhóm nhân dụng khác nhau.
2.4.4 Build binaries từ mã nguồn
Ðến đây bạn đã sẵn sàng thực hiện bước compile và build qmail. Các bước build qmail như sau:
- cd vào thư mục chứa mã nguồn của qmail
# cd /usr/local/src/qmail-1.03
- Ðánh lệnh make buộc compiler biên dịch mã nguồn của qmail dựa trên chỉnh định của hồ sơ Makefile
# make
- Ðánh các lệnh make setup check. Ðây là 2 lệnh gom lại thành một..
Lệnh thứ nhất make setup chuyển các binaries đã được build ở trên vào
đúng nơi của nó. Lệnh thứ nhì make check là lệnh dùng để kiểm tra lại
thực tính của các hồ sơ và binaries được build.
# make setup check
- Bước kế tiếp là bước hiệu chỉnh DNS cho qmail. Nếu DNS server (fully qualified) của bạn đã sẵn sàng, bạn chỉ cần chạy lệnh:
# ./config
Lệnh này kiểm tra DNS server của bạn, nếu không có gì trở ngại nó
đặt domain name của bạn vào /var/qmail/control/defaultdomain và
/var/qmail/control/plusdomain (plusdomain dành cho một binary của qmail
"qmail-inject" để thêm vào entry của plusdomain khi cần. Xem thêm ở
phần 4: Hồ sơ điều chỉnh của Qmail trong "qmail-control"). Lệnh này
cũng thêm vào các entry cần thiết cho /var/qmail/control/locals và
/var/qmail/control/rcphosts.
Vì một lý do trục trặc nào đó thuộc DNS làm cho lệnh ./config ở trên
không thể lấy được DNS entry để điều chỉnh các hồ sơ trên, bạn phải
dùng lệnh ./config-fast để cài các entry cần thiết vào
/var/qmail/control/
- Ðánh lệnh ./config-fast với thông số là domain name của bạn
# ./config-fast mydomain.com
mydomain.com phải là một domain name hoàn toàn hợp pháp và đã đăng
ký với Internic (xem ở bước 2.2: Yêu cầu để cài đặt qmail ở trên). Lệnh
./config-fast của bước này sẽ cài các entry cần thiết với domain name
bạn đã cho (như thông số ở trên); chắc chắn bạn sẽ không bị trở ngại gì
trong bước này. Tuy nhiên, những bước sau này bạn sẽ gặp trở ngại nếu
như bạn không cung cấp một domain name hợp pháp. Bước này chỉ buộc
./config-fast cài vào entry bạn cung cấp mà không bảo đảm (không kiểm
nghiệm) là domain name đó giá trị hay không.
2.4.5 Cài ucspi-tcp
ucspi-tcp là phần mềm Dr. Dan Bernstein viết với mục đích thay thế cho
inet daemon của Unix. Inet daemon được dùng rộng rãi trên các ứng trình
Unix và gần đây, xinet ra đời để nâng cao tính năng của inet. Theo Dr
Bernstein, phần mềm ucspi-tcp (dùng Unix Client-Server Program
Interface cũng của ông) gọn nhẹ, hiệu quả và an toàn hơn inet rất
nhiều. Bản thân người viết tài liệu này đã thử cả hai ứng dụng trên
xinetd và uscpi-tcp và thấy rõ ưu điểm của ucspi-tcp trên bình diện
hiệu năng. Ucspi-tcp được tạo ra với quan tâm bảo mật nên cách xử lý
socket giữa client và server rất hiệu quả. Thực tế cho thấy ucspi-tcp
ứng hoạt khít khao với qmail.
- Ðể compile và build uscpi-tcp, bạn cd vào thư mục uscpi-tcp
# cd /usr/local/src/ucspi-tcp-0.88
- Ðánh lệnh make buộc compiler biên dịch mã nguồn của ucspi-tcp dựa trên chỉnh định của hồ sơ Makefile
# make
- Ðánh các lệnh make setup check. Ðây là 2 lệnh gom lại thành một..
Lệnh thứ nhất make setup chuyển các binaries đã được build ở trên vào
đúng nơi của nó. Lệnh thứ nhì make check là lệnh dùng để kiểm tra lại
thực tính của các hồ sơ và binaries được build.
# make setup check
Nếu quy trình này không bị trở ngại gì, bạn đã compile và build xong ucspi-tcp.
2.4.6 Cài daemontols
Daemontools là một phần mềm giúp bạn rất nhiều trong quy trình quản lý
và điều hành qmail server. Bạn có thể dùng qmail mà không cần đến
daemontools. Tuy nhiên, khi đã dùng qmail nhiều hơn, bạn sẽ khám phá
daemontools là một thứ đồ nghề không thể thiếu được.
Ðể compile và build daemontools, chỉ đơn giản cd vào thư mục của daemontools-0.76
# cd /usr/local/src/admin/daemontools-0.76
- Thư mục này có hai thư mục con, bạn không cần vào các thư mục con mà chỉ cần đánh lệnh
# package/install
1.Download source qmail
mkdir -p /var/src/tar
cd /var/src/tar
wget
http://www.baslug.org/vega/qmail/fil...ls-0.76.tar.gz
wget
http://www.baslug.org/vega/qmail/fil...cp-0.88.tar.gz
wget
http://www.baslug.org/vega/qmail/file/qmail-1.03.tar.gz
wget
http://www.baslug.org/vega/qmail/fil...l-5.2.1.tar.gz
wget
http://www.baslug.org/vega/qmail/fil...d-2.0.2.tar.gz
wget
http://www.baslug.org/vega/qmail/fil...n-1.0.6.tar.gz
wget
http://www.baslug.org/vega/qmail/file/ezmlm-0.53.tar.gz
wget
http://www.baslug.org/vega/qmail/fil...shupp.patch.gz
wget
http://www.baslug.org/vega/qmail/fil...-3.6.0.tar.bz2
wget
http://www.baslug.org/vega/qmail/fil...scripts.tar.gz
wget
http://www.baslug.org/vega/qmail/file/vega.patch
2.
http://cr.yp.to/daemontools.html
mkdir -p /package
chmod 1755 /package
cd /package
tar -xpzf /var/src/tar/daemontools-0.76.tar.gz
cd admin/daemontools-0.76/src
patch < /var/src/tar/vega.patch
cd ..
package/install
3.
http://cr.yp.to/ucspi-tcp.html
cd /var/src/
tar -xzf tar/ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch < /var/src/tar/vega.patch
make
make setup check
4.Install qmail
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails
# utenti del pacchetto vpopmail
groupadd vchkpw
useradd -g vchkpw vpopmail
cd /var/src
tar -xzf tar/qmail-1.03.tar.gz
cd qmail-1.03
patch < /var/src/tar/vega.patch
make
make setup check
cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 ~alias/.qmail*
cd /var/src/qmail-1.03
./config-fast baslug.org ( your domain )
Replace baslug.org with your domain
cd /var/src
tar -xzf tar/init-scripts.tar.gz
cp init-scripts/rc /var/qmail/rc
chmod 755 /var/qmail/rc
mkdir /var/log/qmail
echo ./Maildir/ >/var/qmail/control/defaultdelivery
cp init-scripts/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/qmail/supervise/qmail-pop3ds/log
chmod +t /var/qmail/supervise/qmail-send
chmod +t /var/qmail/supervise/qmail-smtpd
chmod +t /var/qmail/supervise/qmail-pop3d/log
chmod +t /var/qmail/supervise/qmail-pop3ds/log
cp /var/src/init-scripts/send.run /var/qmail/supervise/qmail-send/run
cp /var/src/init-scripts/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /var/src/init-scripts/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /var/src/init-scripts/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /var/src/init-scripts/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /var/src/init-scripts/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /var/src/init-scripts/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /var/src/init-scripts/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/pop3ds
chown qmaill /var/log/qmail /var/log/qmail/smtpd
chown qmaill /var/log/qmail/pop3d /var/log/qmail/pop3ds
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
5.
http://www.inter7.com/vpopmail
cd /var/src
tar -xzf tar/vpopmail-5.2.1.tar.gz
cd vpopmail-5.2.1
./configure --enable-roaming-users=y --enable-logging=v --enable-default-domain=baslug.org ( your domain )
make
make install-strip
echo '127.:allow,RELAYCLIENT=""' >>/home/vpopmail/etc/tcp.smtp
echo 'xxx.xxx.xx.:allow,RELAYCLIENT=""' >>/home/vpopmail/etc/tcp.smtp
qmailctl cdb
cp /var/src/init-scripts/vpopmailctl /var/qmail/bin/vpopmailctl
chmod 755 /var/qmail/bin/vpopmailctl
ln -s /var/qmail/bin/vpopmailctl /usr/bin
ln -s /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3ds /service
vpopmailctl stat
6.
http://www.inter7.com/devel
cd /var/src
tar -xzf tar/autorespond-2.0.2.tar.gz
cd autorespond-2.0.2
make
make install
7.
http://www.ezmlm.org/
cd /var/src
tar -xzf tar/ezmlm-0.53.tar.gz
cd ezmlm-0.53
gunzip -cd ../tar/idx.shupp.patch.gz | patch -p0
patch < /var/src/tar/vega.patch
make
make setup
8.
http://www.inter7.com/qmailadmin.html
cd /var/src
tar -xzf tar/qmailadmin-1.0.6.tar.gz
cd qmailadmin-1.0.6
./configure
make
make install-strip
9.
vi /var/qmail/supervise/qmail-smtpd/run +9
# da -- /var/qmail/bin/qmail-smtpd domain.com
# a -- /var/qmail/bin/qmail-smtpd baslug.org
vi /var/qmail/supervise/qmail-pop3d/run +8
# /var/qmail/bin/qmail-popup domain.com
# /var/qmail/bin/qmail-popup baslug.org
Note : replace domain.com or baslug.org with your domain
10.Add domain
cd /home/vpopmail/bin
./vadddomain domain.com ( your domain )
Comments[ 0 ]
Đăng nhận xét