Có nhiều giải pháp thay thế Microsoft Exchange bằng giải pháp Linux, nhưng tất cả chúng đều có một vấn đề tôi thực sự không thích. Khi tôi nhận được lời mời họp, chúng sẽ đến dưới dạng tệp đính kèm trên thiết bị iOS của tôi và không mở trực tiếp trong ứng dụng lịch. Zarafa là giải pháp duy nhất tôi đã thử nghiệm sẽ mở các sự kiện lịch trong ứng dụng lịch. Hướng dẫn này sẽ hướng dẫn bạn cách thiết lập Zarafa và Yaffas trên CentOS 6.
Trước khi chúng ta bắt đầu
Chúng tôi thực hiện các giả định sau đây để dễ hiểu cấu hình hơn. Tuy nhiên, bạn nên sử dụng các giá trị thực của riêng bạn cho các mục này:
- Tên miền mà tôi muốn nhận thư là "example.com". Người dùng giống như "[email protected]", "[email protected]".
- Tên máy chủ cho máy chủ thư là "pegasus", vì vậy tên miền đầy đủ cho máy chủ đó là "pegasus.example.com".
- Bất cứ khi nào tôi sử dụng thuật ngữ "bảng điều khiển máy chủ", tôi đều đề cập đến bảng điều khiển vultr.com .
Chuẩn bị máy chủ (VPS)
Bắt đầu bằng cách triển khai ví dụ máy chủ vultr.com của bạn. Tôi đã chọn VPS 1 GB chạy CentOS 6, 32-bit. Khi quá trình cài đặt kết thúc, chúng tôi chuẩn bị máy chủ để trở thành một máy chủ thư.
Trong màn hình "Máy chủ của tôi" của bảng điều khiển máy chủ, nhấp vào liên kết "Quản lý" bên cạnh máy chủ mới được tạo của bạn. Trên trang mở ra, bạn có thể xem chi tiết cho máy chủ của mình. Nhấp vào tab IPv4, sau đó nhấp vào nút "Cập nhật" màu xanh lam. Một trường nhập văn bản xuất hiện và nó được đặt sẵn với một cái gì đó như ".vultr.com". Thay thế mục nhập đó bằng tên miền đầy đủ của máy chủ của bạn (ví dụ: pegasus.example.com) và nhấn nút "Cập nhật" màu xanh lam.
Bây giờ là lúc để đăng nhập vào máy chủ mới. Mở thiết bị đầu cuối ssh của bạn và kết nối với máy chủ của bạn. Ngoài ra, bạn có thể nhấp vào nút "Xem bảng điều khiển" màu xanh để có cửa sổ trình duyệt với màn hình đăng nhập của máy chủ.
ssh root@your_ip_address
Phần " your_ip_address
" là địa chỉ IP chính được liệt kê trong bảng điều khiển máy chủ. Nếu bạn sử dụng trình duyệt để kết nối với máy chủ của mình, thì bạn chỉ cần đăng nhập bằng root bằng mật khẩu gốc.
Đầu tiên, chúng tôi thiết lập tên miền chính xác. Mở tệp cấu hình mạng.
nano /etc/sysconfig/network
Thay thế "vultr.guest" bằng tên miền đầy đủ của máy chủ của bạn (Ví dụ: pegasus.example.com). Lưu tập tin với tổ hợp phím Ctrl + X , sau đó Y .
Điểm thứ hai chúng tôi thay đổi là /etc/hosts
tập tin.
nano /etc/hosts
Thêm dòng sau. Nó có thể ở đầu tập tin hoặc dòng thứ hai.
127.0.1.1 pegasus.example.com pegasus
Lưu tập tin với tổ hợp phím Ctrl + X , sau đó Y . Tôi muốn đảm bảo rằng mọi thứ hoạt động sau khi khởi động lại, vì vậy tôi khởi động lại VPS sau những thay đổi đó.
reboot
Cung cấp cho máy một chút để khởi động lại, sau đó kết nối lại.
ssh root@your_ip_address
Yaffas và Zarafa cần kho lưu trữ EPEL, đã được cài đặt trong các nguồn trên máy chủ vultr.com. Họ cũng cần kho lưu trữ RPMforge. Ban hành lệnh sau để cài đặt kho lưu trữ đó.
Hệ thống 32 bit:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
Hệ thống 64 bit:
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
Tiếp theo, chúng tôi thêm kho lưu trữ Yaffas.
nano /etc/yum.repos.d/yaffas.repo
Dán văn bản sau vào tệp vừa tạo:
[yaffas]
name = yaffas $releasever
baseurl = http://repo.yaffas.org/releases/latest/rhel/$releasever
enabled = 1
protect = 0
gpgcheck = 1
priority = 1
Lưu tập tin với tổ hợp phím Ctrl + X , sau đó Y .
Để tránh các vấn đề tương thích, chúng tôi cần loại trừ một số mục khỏi kho lưu trữ EPEL. Mở tệp lưu trữ.
nano /etc/yum.repos.d/epel.repo
Sau đó trong [epel]
phần, ngay bên dưới dòng "gpgkey", nhập thông tin sau.
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*
Phần hoàn chỉnh sẽ trông như thế này:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
exclude=clamav* clamd* amavisd* libvmime libical libvmime-devel libical-devel php-mapi zarafa*
Lưu tập tin với tổ hợp phím Ctrl + X , sau đó Y .
Nhập khóa GPG cho kho lưu trữ Yaffas:
rpm --import http://repo.yaffas.org/repo.rpm.key
Bây giờ, hãy dọn dẹp yum.
yum clean all
Tại thời điểm này, tất cả chúng ta nên thiết lập cho việc cài đặt Yaffas. Cài đặt nó bằng cách nhập lệnh này.
yum install yaffas
Yum sẽ kiểm tra các phụ thuộc và cung cấp cho bạn một bản tóm tắt.
Install 359 Package(s)
Total download size: 260 M
Installed size: 639 M
Is this ok [y/N]:
Nhấn Y , sau đó Enter / Return để bắt đầu cài đặt.
Quá trình cài đặt sẽ mất một lúc, vì vậy hãy tự thưởng cho mình một tách cà phê và bánh quy trong khi chờ quá trình cài đặt kết thúc.
MySQL
Trước khi có thể bắt đầu thiết lập cuối cùng, chúng ta phải cấu hình MySQL. Bắt đầu MySQL và bắt đầu thiết lập an toàn.
service mysqld restart
mysql_secure_installation
Để đăng nhập vào MySQL để bảo mật nó, chúng tôi sẽ cần mật khẩu hiện tại cho người dùng root. Nếu bạn vừa cài đặt MySQL và bạn chưa đặt mật khẩu gốc, mật khẩu sẽ trống, vì vậy bạn chỉ cần nhấn Enter / Return tại đây.
Enter current password for root (enter for none): **{press Enter/Return}**
[...]
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] **Y**
New password: **{enter super secret password}**
Re-enter new password: **{enter super secret password again}**
Remove anonymous user? [Y/n] **Y**
Disallow root login remotely? [Y/n] **Y**
Remove test database and access to it? [Y/n] **Y**
Reload privilege tables now? [Y/n] **Y**
Cấu hình
Mở trình duyệt web và truy cập URL sau.
http://your_ip_address:10000
#If you have a DNS entry already, use this instead.
http://server.example.com:10000
Tên người dùng ban đầu là admin
bằng mật khẩu yaffas
.
Sau khi đăng nhập, bạn sẽ thấy trình hướng dẫn thiết lập. Nó có 5 bước. Nhấn "Tiếp theo" để bắt đầu.
Bước đầu tiên là nhập mật khẩu quản trị viên mới. Nhập mật khẩu mới hai lần. Hãy chắc chắn rằng nó đủ phức tạp để an toàn, nhưng đừng quên nó. Sau đó bấm "Tiếp theo".
Màn hình tiếp theo cấu hình phụ trợ MySQL. Điều duy nhất bạn cần nhập là mật khẩu bạn đã tạo cho người dùng root MySQL.
Trên màn hình thứ 4, thiết lập tên miền thư của bạn. Nhập "example.com" trong trường tên miền thư chính. Đây phải là tên miền của riêng bạn. Nhấn "Tiếp theo".
Tôi tin rằng màn hình thứ 5 là tùy chọn, nhưng để đảm bảo an toàn, hãy tạo tài khoản người dùng sẽ là quản trị viên LDAP, sau đó nhấp vào "Hoàn tất".
Sẽ mất một lúc cho đến khi thiết lập kết thúc. Khi nó hoàn thành, một cửa sổ bật lên xuất hiện cho bạn biết mọi thứ đã thành công. Nhấp vào nút "OK". Sau một lúc, bạn sẽ thấy màn hình đăng nhập lại. Bạn có thể đăng nhập với tư cách quản trị viên bằng mật khẩu mới mà bạn đã tạo trong quá trình thiết lập.
Trong quá trình cài đặt, một số chứng chỉ tự ký chung cho ứng dụng được tạo và cài đặt. Cá nhân, tôi muốn có các chứng chỉ tự ký của riêng mình để hiển thị các giá trị mà tôi đã nhập và tôi cũng muốn đảm bảo rằng tất cả các yêu cầu được gửi qua HTTPS.
Zarafa đi kèm với một vài kịch bản để tạo chứng chỉ của riêng bạn. Tất nhiên đây là những chứng chỉ tự ký.
Hãy làm một ngôi nhà cho cơ quan cấp chứng chỉ.
mkdir -p /etc/zarafa/ssl
chmod 700 /etc/zarafa/ssl
cd /etc/zarafa/ssl
... sau đó chạy tập lệnh:
sh /usr/share/doc/zarafa/ssl-certificates.sh server
Tham số "máy chủ" có nghĩa là chứng chỉ chúng tôi tạo sẽ được gọi server.pem
.
Bạn sẽ được chào đón với thông điệp sau.
No Certificate Authority Root found in current directory.
Press enter to create, or ctrl-c to exit.
Nhấn Enter hoặc Return .
Thông báo tiếp theo xuất hiện là:
CA certificate filename (or enter to create)
Nhấn Enter hoặc Return để tiếp tục và tạo Chứng chỉ CA.
Sau một hoạt động nhỏ trên màn hình, bạn sẽ nhận được lời nhắc nhập cụm mật khẩu PEM. Nhập bất kỳ cụm mật khẩu nào cho chứng chỉ CA, nhưng hãy đảm bảo rằng bạn không quên nó, vì bạn sẽ cần nó sau này. Để đơn giản, hãy giả sử rằng chúng tôi đã chọn cụm mật khẩu "ca-root-pem".
Trả lời các câu hỏi để tạo chứng chỉ. Các câu trả lời ở đây là ví dụ của tôi, vì vậy hãy thay thế chúng bằng các giá trị chính xác cho chính bạn.
Country Name (2 letter code) [XX]: **MY**
State or Province Name (full name) []:**Selangor**
Locality Name (eg, city) [Default City]: **Shah Alam**
Organization Name (eg, company) [Default Company Ltd]: **ELMIMA-Systems**
Organizational Unit Name (eg, section) []: **Certificate Authority**
Common Name (eg, your name or your server's hostname) []:**server.example.com** **Must be the full domain name of your server**
Email Address []: **[email protected]**
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: **Enter/Return**
An optional company name []: **Enter/Return**
Tiếp theo, nó sẽ hỏi bạn cụm mật khẩu của cakey.pem
tập tin. Đây là cụm mật khẩu mà bạn đã tạo trước đó.
Enter pass phrase for /etc/pki/CA/private/./cakey.pem:ca-root-pem
Bạn sẽ thấy một hoạt động nhỏ trên màn hình, sau đó nó sẽ nhắc bạn nhập cụm mật khẩu PEM. Đây là cụm mật khẩu cho server.pem
tệp chúng tôi đã tạo. Nhập bất cứ điều gì bạn muốn, nhưng hãy chắc chắn rằng bạn không quên nó. Để đơn giản, chúng tôi sẽ sử dụng "cụm từ máy chủ-pem".
Enter PEM pass phrase:**server-pem-phrase**
Verifying - Enter PEM pass phrase:**server-pem-phrase**
Thời gian để nhập các giá trị cho server.pem
tập tin.
Country Name (2 letter code) [XX]: **MY**
State or Province Name (full name) []:**Selangor **
Locality Name (eg, city) [Default City]: **Shah Alam**
Organization Name (eg, company) [Default Company Ltd]: **ELMIMA-Systems**
Organizational Unit Name (eg, section) []: **Server SSL Certificate**
Common Name (eg, your name or your server's hostname) []: **server.example.com** **Must be the full domain name of your server**
Email Address []: [email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: **Enter/Return**
An optional company name []: **Enter/Return**
Enter pass phrase for /etc/pki/CA/private/cakey.pem:ca-root-pem **Replace with your own passphrase**
Một số hoạt động trên màn hình cho thấy chứng chỉ được tạo.
Sign the certificate? [y/n]:
Nhập Y và nhấn Enter / Return .
1 out of 1 certificate requests certified, commit? [y/n]
Nhập Y và nhấn Enter / Return .
Create public key from this certificate? [y]
Chúng tôi không thực sự cần nó nhưng tôi đoán nó không đau để tạo ra nó. Chỉ cần nhấn Enter / Return .
Enter pass phrase for server.pem: **server-pem-phrase**
Bây giờ là lúc để cấu hình server.cfg
tệp cho Zarafa.
nano /etc/zarafa/server/cfg
Tìm mục nhập server_ssl_enabled
và thay đổi giá trị của nó thành "có" (không có dấu ngoặc kép).
Tìm mục server_ssl_port
và xác nhận rằng nó là 237.
Tìm mục nhập server_ssl_key_file
và đặt giá trị của nó thành " /etc/zarafa/ssl/server.pem
" (không có dấu ngoặc kép).
Tạo mục nhập server_ssl_key_pass
sử dụng cụm mật khẩu mà bạn đã tạo cho server.pem
tệp (ví dụ: cụm từ máy chủ-pem) làm giá trị của nó.
Tìm mục server_ssl_ca_file
. Tài liệu gốc cho Zarafa giả định rằng đường dẫn là /etc/zarafa/ssl/demoCA/cacert.pem
, tuy nhiên trên CentOS, đường dẫn là /etc/pki/CA/cacert.pem
. Cập nhật giá trị này cho phù hợp.
server_ssl_ca_file = /etc/pki/CA/cacert.pem
Khởi động lại máy chủ Zarafa.
service zarafa restart
Hãy tạo chứng chỉ cho Apache.
cd /etc/zarafa/ssl
openssl req -nodes -newkey rsa:2048 -keyout zarafa-ssl.key -out zarafa-ssl.csr
Chúng tôi nhận được một hình thức khác để tạo ra một chứng chỉ.
Country Name (2 letter code) [XX]: **MY **
State or Province Name (full name) []: **Selangor**
Locality Name (eg, city) [Default City]: **Shah Alam**
Organization Name (eg, company) [Default Company Ltd]: **ELMIMA-Systems**
Organizational Unit Name (eg, section) []: **Zarafa Web Services**
Common Name (eg, your name or your server's hostname) []: **server.example.com** **Must be the full domain name of your server**
Email Address []: **[email protected]**
Sau đó, ký giấy chứng nhận.
openssl x509 -req -in ./zarafa-ssl.csr -signkey zarafa-ssl.key -out zarafa-ssl.crt -days 9999
... và thêm nó vào Apache.
cd /etc/httpd/conf.d
nano ssl.conf
Tìm dòng "SSLCertertFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.crt" và đổi nó thành "SSLCertertFile /etc/zarafa/ssl/zarafa-ssl.crt".
Tìm dòng "SSLCertertKeyKeyFile /opt/yaffas/etc/ssl/certs/zarafa-webaccess.key" và thay đổi nó thành "SSLCertulerKeyFile /etc/zarafa/ssl/zarafa-ssl.key"
Lưu tập tin và thoát.
Bây giờ, mở zarafa-webapp.conf
tập tin.
nano /etc/httpd/zarafa-webapp.conf
Tìm 2 dòng sau và bỏ ghi chú chúng.
#php_flag session.cookie_secure on
#php_flag session.cookie_httponly on
Thêm các dòng sau.
RewriteEngine On
RewriteCond % !=on
RewriteRule (.*) https://pegasus.example.com/webapp/ [R] (Of course use your own real domain here)
Lưu tập tin và thoát. Sau đó khởi động lại Apache.
service httpd restart
Bây giờ ứng dụng web sẽ luôn sử dụng HTTPS. Bạn có thể làm tương tự cho zarafa-webapp.conf
.
Khi kiểm tra cài đặt trên CentOS, tôi nhận thấy một số thông báo lỗi do thiếu thư mục. Bạn có thể sửa nó bằng các lệnh sau.
mkdir -p /var/run/policyd-weight/cores/master
mkdir -p /var/run/policyd-weight/cores/cache
chown -R polw /var/run/policyd-weight
Để sử dụng máy chủ Zarafa mới của bạn làm máy chủ thư cho miền của bạn, bạn sẽ cần thiết lập cả bản ghi A và bản ghi MX cho tên miền của mình. Nếu muốn, bạn có thể sử dụng công cụ tìm kiếm yêu thích của mình để tìm Trình hướng dẫn SPF, giúp dễ dàng tạo bản ghi SPF cho tên miền của bạn.