Tutorial ini akan membawa Anda melalui instalasi setup multiserver ISPConfig 3 Anda sendiri dengan dedicated server untuk panel, web, DNS, mail, dan webmail. Baik DNS dan server email akan memiliki server cermin untuk redundansi. Anda dapat dengan mudah menambahkan lebih banyak server dari jenis tertentu setelahnya.
Penginstal otomatis resmi ISPConfig akan digunakan untuk menyiapkan server. Debian 10 akan digunakan sebagai sistem operasi. Panduan ini juga telah diuji dengan Ubuntu 20.04.2.
Anda dapat membaca lebih lanjut tentang penginstal otomatis di sini.
1. Catatan Awal
Ini akan menjadi host yang kami instal:
host FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 m . mx2.example.com 10.0.64.15
ns1 ns1.example.com 10.0.64.16
ns2 ns2.example.com 10.0.64.17
webmail. .>Kami akan menggunakan contoh nama host, alamat IP, dan rentang IP. Pastikan untuk mengubahnya sesuai dengan perintah/konfigurasi Anda.
Semua server berada di jaringan pribadi yang sama tetapi memiliki IP publik mereka sendiri. Jika server Anda tidak memiliki jaringan lokal bersama, gunakan alamat IPv4 publiknya.
Sebelum memulai penginstalan server, siapkan catatan A dan akhirnya AAAA yang mengarah ke publik Alamat IP server Anda. Misalnya, jika nama host adalah panel.example.com dan IP publik adalah 11.22.33.44, Anda harus menyiapkan catatan A untuk panel.example.com yang mengarah ke 11.22.33.44. Setiap server harus memiliki IP publik dan nama hostnya sendiri.
2. Menginstal server master
Masuk sebagai root atau jalankan
su -untuk menjadi pengguna root di server Anda sebelum Anda melanjutkan. PENTING :Anda harus menggunakan 'su -' dan bukan hanya 'su', jika tidak, variabel PATH Anda disetel salah oleh Debian.
2.1 Konfigurasi nama host dan host
Nama host server Anda harus berupa subdomain seperti "panel.example.com". Jangan gunakan nama domain tanpa bagian subdomain seperti "example.com" sebagai nama host karena ini akan menyebabkan masalah dengan penyiapan email Anda nanti. Pertama, Anda harus memeriksa nama host di /etc/hosts dan mengubahnya bila perlu. Baris harus:"Alamat IP - spasi - nama host lengkap termasuk domain - spasi - bagian subdomain". Untuk panel nama host kami.example.com, file akan terlihat seperti ini (beberapa baris mungkin berbeda, dapat berbeda per penyedia hosting):
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
# Baris ini harus diubah pada setiap node ke nama server yang benar:
127.0.1.1 panel.example.com panel
# Baris ini adalah sama pada setiap node: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# Baris berikut diinginkan untuk IPv6 host yang mampu::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allroutersSeperti yang Anda lihat, kami juga menambahkan nama host dari server kami yang lain, sehingga mereka dapat berkomunikasi melalui jaringan internal nanti.
Kemudian edit file /etc/hostname:
nano /etc/hostnameIni hanya akan berisi bagian subdomain, dalam kasus kami:
panelTerakhir, boot ulang server untuk menerapkan perubahan:
systemctl rebootMasuk lagi dan periksa apakah nama host sudah benar sekarang dengan perintah berikut:
nama host
nama host -fOutputnya akan seperti ini:
[email protected]:~$ hostname
panel
[email protected]:~$ hostname -f
panel.example.comSekarang kita dapat menjalankan penginstal otomatis untuk menginstal semua paket yang diperlukan dan ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=systemSetelah beberapa waktu, Anda akan melihat:
PERINGATAN! Skrip ini akan mengkonfigurasi ulang server lengkap Anda!
Ini harus dijalankan pada server yang baru diinstal dan semua konfigurasi saat ini yang telah Anda lakukan kemungkinan besar akan hilang!
Ketik 'ya' jika Anda benar-benar ingin melanjutkan:Jawab "ya" dan tekan enter. Penginstal sekarang akan dimulai.
Ketika penginstal selesai, itu akan menunjukkan kepada Anda admin ISPConfig dan kata sandi root MySQL seperti ini:
[INFO] Kata sandi admin ISPConfig Anda adalah:5GvfSSSYsdfdYC
[INFO] Kata sandi root MySQL Anda adalah:kkAkft82d!kafMwqxdtYsPastikan Anda menuliskan informasi ini, bersama dengan servernya, karena Anda akan membutuhkannya nanti.
2.2 Menyiapkan pengguna MySQL jarak jauh untuk server budak kami
Kami akan masuk ke MySQL untuk mengizinkan server lain terhubung ke database ISPConfig pada node ini selama instalasi, dengan menambahkan catatan pengguna root MySQL di database master untuk setiap nama host server budak dan alamat IP.
Di terminal, jalankan
mysql -u root -pMasukkan kata sandi MySQL Anda dan kemudian jalankan perintah berikut:
BUAT PENGGUNA 'root'@'10.0.64.13' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'10.0.64.13' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'10.0.64.14' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'10.0.64.14' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'10.0.64.15' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'10.0.64.15' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'10.0.64.16' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'10.0.64.16' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'10.0.64.17' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'10.0.64.17' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'10.0.64.18' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'10.0.64.18' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'web01.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'web01.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'mx1.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'mx1.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'mx2.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'mx2.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'ns1.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'ns1.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'ns2.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'ns2.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;BUAT PENGGUNA 'root'@'webmail.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword';
BERIKAN SEMUA HAK ISTIMEWA DI * . * UNTUK 'root'@'webmail.example.com' DIIDENTIFIKASI DENGAN 'myrootpassword' DENGAN GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;Dalam perintah SQL di atas, ganti alamat IP (10.0.64.12 - 10.0.64.18) dengan alamat IP server Anda, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com , ns2.example.com, dan webmail.example.com dengan nama host server Anda dan myrootpassword dengan kata sandi root yang diinginkan (adalah praktik yang baik untuk menggunakan kata sandi yang berbeda untuk setiap host. Catat, karena Anda akan membutuhkannya nanti saat memasang atau memperbarui server budak Anda).
Setelah ini selesai, Anda dapat keluar dari MySQL dengan:
KELUAR;Sekarang Anda dapat masuk ke ISPConfig di https://panel.example.com:8080 dengan nama pengguna admin dan kata sandi yang ditunjukkan penginstal kepada Anda.
2.3 Menyiapkan firewall
Hal terakhir yang harus dilakukan adalah menyiapkan firewall kita.
Masuk ke UI ISPConfig, dan buka Sistem -> Firewall. Kemudian klik "Tambahkan data firewall baru".
Untuk server panel, kita harus membuka port berikut:
TCP:
22,80,443,8080,8081Tidak ada port UDP yang harus dibuka melalui UI.
Kami juga akan membuka port 3306, yang digunakan untuk MySQL, tetapi hanya dari jaringan lokal kami untuk alasan keamanan. Untuk melakukannya, jalankan perintah berikut dari CLI, setelah perubahan dari panel ISPConfig disebarkan (ketika titik merah hilang):
ufw izinkan dari 10.0.64.0/24 ke port 3306 proto tcpPanel Anda sekarang telah disiapkan dan siap digunakan.
Pada langkah selanjutnya, kita akan menginstal server web.
Cara membuat Mesin Virtual Ubuntu di Azure Cloud Menangkap Paket dengan Tcpdump dan menganalisisnya dengan Wireshark di UbuntuUbuntu