Hướng dẫn này sẽ hướng dẫn bạn cài đặt thiết lập đa máy chủ ISPConfig 3 của riêng bạn với các máy chủ chuyên dụng cho bảng điều khiển, web, DNS, thư và webmail. Cả máy chủ DNS và thư đều sẽ có máy chủ phản chiếu để dự phòng. Sau đó, bạn có thể dễ dàng thêm nhiều máy chủ cùng loại.
Trình cài đặt tự động chính thức của ISPConfig sẽ được sử dụng để thiết lập máy chủ. Debian 10 sẽ được sử dụng làm hệ điều hành. Hướng dẫn này cũng đã được thử nghiệm với Ubuntu 20.04.2.
Bạn có thể đọc thêm về trình cài đặt tự động tại đây.
Chúng tôi sẽ sử dụng tên máy chủ, địa chỉ IP và dải IP mẫu. Hãy đảm bảo thay đổi chúng cho phù hợp trong lệnh/cấu hình của bạn.
Tất cả các máy chủ đều nằm trên cùng một mạng riêng nhưng có IP công khai riêng. Nếu máy chủ của bạn không có mạng cục bộ dùng chung, hãy sử dụng địa chỉ IPv4 công khai của chúng.
Trước khi bắt đầu cài đặt máy chủ, hãy thiết lập bản ghi A và cuối cùng là bản ghi AAAA trỏ đến địa chỉ IP công khai của máy chủ. Ví dụ: nếu tên máy chủ là panel.example.com và IP công khai là 11.22.33.44, bạn nên thiết lập bản ghi A cho panel.example.com trỏ đến 11.22.33.44. Mỗi máy chủ phải có IP công khai và tên máy chủ riêng.
để trở thành người dùng root trên máy chủ của bạn trước khi bạn tiếp tục. QUAN TRỌNG: Bạn phải sử dụng 'su -' chứ không chỉ 'su', nếu không, biến PATH của bạn sẽ bị Debian đặt sai.
Như bạn thấy, chúng tôi cũng đã thêm tên máy chủ của các máy chủ khác để chúng có thể giao tiếp qua mạng nội bộ sau này.
Sau đó, chỉnh sửa tệp /etc/hostname:
Trong trường hợp của chúng tôi, tệp này chỉ chứa phần tên miền phụ:
Cuối cùng, hãy khởi động lại máy chủ để áp dụng thay đổi:
Đăng nhập lại và kiểm tra xem tên máy chủ đã đúng chưa bằng các lệnh sau:
Đầu ra sẽ như thế này:
Bây giờ chúng ta có thể chạy trình cài đặt tự động để cài đặt tất cả các gói cần thiết và ISPConfig:
Sau một thời gian, bạn sẽ thấy:
Trả lời "yes" và nhấn enter. Trình cài đặt sẽ bắt đầu.
Khi trình cài đặt hoàn tất, nó sẽ hiển thị cho bạn mật khẩu quản trị ISPConfig và mật khẩu gốc MySQL như sau:
Hãy đảm bảo rằng bạn ghi lại thông tin này cùng với máy chủ mà chúng dành cho, vì bạn sẽ cần chúng sau này.
Trên thiết bị đầu cuối, hãy chạy
Nhập mật khẩu MySQL của bạn rồi chạy các lệnh sau:
Trong các lệnh SQL ở trên, hãy thay thế các địa chỉ IP (10.0.64.12 - 10.0.64.18) bằng các địa chỉ IP của máy chủ của bạn, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com, ns2.example.com, và webmail.example.com với tên máy chủ của bạn và myrootpassword với mật khẩu gốc mong muốn (tốt nhất là sử dụng mật khẩu khác nhau cho mỗi máy chủ. Ghi lại chúng, vì bạn sẽ cần chúng sau này khi cài đặt hoặc cập nhật máy chủ phụ).
Khi hoàn tất, bạn có thể thoát khỏi MySQL bằng:
Bây giờ bạn có thể đăng nhập vào ISPConfig trên https://panel.example.com:8080 với tên người dùng là admin và mật khẩu mà trình cài đặt đã hiển thị cho bạn.
Đăng nhập vào Giao diện người dùng ISPConfig và vào Hệ thống -> Tường lửa. Sau đó nhấp vào "Thêm bản ghi tường lửa mới".
Đối với máy chủ bảng điều khiển, chúng ta phải mở các cổng sau:
TCP:
Không cần mở cổng UDP nào thông qua UI.
Chúng ta cũng sẽ mở cổng 3306, cổng này được sử dụng cho MySQL, nhưng chỉ từ mạng cục bộ của chúng ta vì lý do bảo mật. Để thực hiện, hãy chạy lệnh sau từ CLI, sau khi thay đổi từ bảng điều khiển ISPConfig được truyền bá (khi dấu chấm đỏ biến mất):
Bảng điều khiển của bạn hiện đã được thiết lập và sẵn sàng để sử dụng.
Trong bước tiếp theo, chúng ta sẽ cài đặt máy chủ web.
Trình cài đặt tự động chính thức của ISPConfig sẽ được sử dụng để thiết lập máy chủ. Debian 10 sẽ được sử dụng làm hệ điều hành. Hướng dẫn này cũng đã được thử nghiệm với Ubuntu 20.04.2.
Bạn có thể đọc thêm về trình cài đặt tự động tại đây.
1. Lưu ý sơ bộ
Đây sẽ là các máy chủ chúng tôi đang cài đặt:
Mã:
host FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 mx1.example.com 10.0.64.14
mx2 mx2.example.com 10.0.64.15
ns1 ns1.example.com 10.0.64.16
ns2 ns2.example.com 10.0.64.17
webmail webmail.example.com 10.0.64.18
Tất cả các máy chủ đều nằm trên cùng một mạng riêng nhưng có IP công khai riêng. Nếu máy chủ của bạn không có mạng cục bộ dùng chung, hãy sử dụng địa chỉ IPv4 công khai của chúng.
Trước khi bắt đầu cài đặt máy chủ, hãy thiết lập bản ghi A và cuối cùng là bản ghi AAAA trỏ đến địa chỉ IP công khai của máy chủ. Ví dụ: nếu tên máy chủ là panel.example.com và IP công khai là 11.22.33.44, bạn nên thiết lập bản ghi A cho panel.example.com trỏ đến 11.22.33.44. Mỗi máy chủ phải có IP công khai và tên máy chủ riêng.
2. Cài đặt máy chủ chính
Đăng nhập với tư cách là root hoặc chạy
Mã:
su -
2.1 Cấu hình tên máy chủ và máy chủ
Tên máy chủ của máy chủ của bạn phải là một miền phụ như "panel.example.com". Không sử dụng tên miền không có phần miền phụ như "example.com" làm tên máy chủ vì điều này sẽ gây ra sự cố sau này với thiết lập thư của bạn. Trước tiên, bạn nên kiểm tra tên máy chủ trong /etc/hostsvà thay đổi khi cần thiết. Dòng này phải là: "Địa chỉ IP - khoảng trắng - tên máy chủ đầy đủ bao gồm tên miền - khoảng trắng - phần tên miền phụ". Đối với tên máy chủ panel.example.com của chúng tôi, tệp sẽ trông như thế này (một số dòng có thể khác nhau, có thể khác nhau tùy theo nhà cung cấp dịch vụ lưu trữ):
Mã:
nano/etc/hosts
Mã:
127.0.0.1 localhost.localdomain localhost
# Dòng này phải được thay đổi trên mọi nút thành tên máy chủ chính xác:
127.0.1.1panel.example.com panel
# Các dòng này giống nhau trên mọi nút:10.0.64.12 panel.example.com panel
10.0.64.13 web01.example.com web01
10.0.64.14 mx1.example.com mx1
10.0.64.15 mx2.example.com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail# Các dòng sau đây là mong muốn cho các máy chủ có khả năng IPv6::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouters
Sau đó, chỉnh sửa tệp /etc/hostname:
Mã:
nano /etc/hostname
Mã:
panel
Mã:
systemctl reboot
Mã:
hostname
hostname -f
Mã:
root@panel:~$ hostname
panel
root@panel:~$ hostname -f
panel.example.com
Mã:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system
Mã:
CẢNH BÁO! Tập lệnh này sẽ cấu hình lại toàn bộ máy chủ của bạn!
Nó phải được chạy trên một máy chủ mới cài đặt và tất cả cấu hình hiện tại mà bạn đã thực hiện rất có thể sẽ bị mất!
Nhập 'yes' nếu bạn thực sự muốn tiếp tục:
Khi trình cài đặt hoàn tất, nó sẽ hiển thị cho bạn mật khẩu quản trị ISPConfig và mật khẩu gốc MySQL như sau:
Mã:
[THÔNG TIN] Mật khẩu quản trị ISPConfig của bạn là: 5GvfSSSYsdfdYC
[THÔNG TIN] Mật khẩu gốc MySQL của bạn là: kkAkft82d!kafMwqxdtYs
2.2 Thiết lập người dùng MySQL từ xa cho máy chủ phụ của chúng tôi
Chúng tôi sẽ đăng nhập vào MySQL để cho phép các máy chủ khác kết nối với cơ sở dữ liệu ISPConfig trên nút này trong quá trình cài đặt, bằng cách thêm các bản ghi người dùng gốc MySQL trong cơ sở dữ liệu chính cho mọi tên máy chủ và địa chỉ IP của máy chủ phụ.Trên thiết bị đầu cuối, hãy chạy
Mã:
mysql -u root -p
Mã:
CREATE USER 'root'@'10.0.64.13' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * ĐẾN 'root'@'10.0.64.13' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'10.0.64.14' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'10.0.64.14' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'10.0.64.15' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'10.0.64.15' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'10.0.64.16' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'10.0.64.16' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'10.0.64.17' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'10.0.64.17' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'10.0.64.18' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'10.0.64.18' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'web01.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'web01.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'mx1.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'mx1.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'mx2.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'mx2.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'ns1.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'ns1.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'ns2.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'ns2.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Mã:
TẠO NGƯỜI DÙNG 'root'@'webmail.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword';
CẤP TẤT CẢ CÁC QUYỀN CHO * . * ĐẾN 'root'@'webmail.example.com' ĐƯỢC XÁC ĐỊNH BỞI 'myrootpassword' VỚI TÙY CHỌN CẤP MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
Khi hoàn tất, bạn có thể thoát khỏi MySQL bằng:
Mã:
EXIT;
2.3 Thiết lập tường lửa
Điều cuối cùng cần làm là thiết lập tường lửa của chúng ta.Đăng nhập vào Giao diện người dùng ISPConfig và vào Hệ thống -> Tường lửa. Sau đó nhấp vào "Thêm bản ghi tường lửa mới".
Đối với máy chủ bảng điều khiển, chúng ta phải mở các cổng sau:
TCP:
Mã:
22,80,443,8080,8081
Chúng ta cũng sẽ mở cổng 3306, cổng này được sử dụng cho MySQL, nhưng chỉ từ mạng cục bộ của chúng ta vì lý do bảo mật. Để thực hiện, hãy chạy lệnh sau từ CLI, sau khi thay đổi từ bảng điều khiển ISPConfig được truyền bá (khi dấu chấm đỏ biến mất):
Mã:
ufw allow from 10.0.64.0/24 to any port 3306 proto tcp
Trong bước tiếp theo, chúng ta sẽ cài đặt máy chủ web.