04 dengan
Apache, PHP, MariaDB, PureFTPD, BIND, Postfix,
Dovecot dan ISPConfig 3.2 (Beta)
Tutorial ini untuk versi OS :
1. Catatan Pendahuluan
2. Edit /etc/apt/sources.list dan Perbarui Instalasi Linux Anda
3. Ubah Default Shell
4. Nonaktifkan AppArmor
5. Sinkronisasi Jam Sistem
6. Instal Postfix, Dovecot, MariaDB, rkhunter, dan binutils
7. Instal Amavisd-new, SpamAssassin, dan Clamav
8. Instal Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear
9. Instal Let's Encrypt
10. Instal Mailman
11. Instal PureFTPd dan Quota
12. Instal BIND DNS Server
13. Instal Vlogger, Webalizer, AWStats dan GoAccess
14. Instal Jailkit
15. Instal fail2ban dan UFW
16. Instal Roundcube Webmail
17. Instal ISPConfig 3.2
18. Download gambar mesin virtual untuk tutorial ini
19. Tautan
Tutorial ini menunjukkan instalasi server web hosting Ubuntu 20.04 (Focal Fossa) dengan
Apache 2.4, Postfix, Dovecot, Bind, dan PureFTPD untuk mempersiapkan
instalasi ISPConfig 3.2. Sistem yang dihasilkan akan menyediakan Web, Mail, Mailinglist,
DNS, dan Server FTP.
ISPConfig adalah panel kontrol web hosting yang memungkinkan Anda untuk
mengkonfigurasi layanan berikut melalui web browser: Apache atau Nginx web server,
Postfix mail server, Courier atau Dovecot IMAP / POP3 server, MariaDB sebagai pengganti
MySQL, BIND atau MyDNS nameserver, PureFTPd, SpamAssassin, ClamAV, dan banyak
lagi. Pengaturan ini mencakup instalasi Apache (bukan Nginx), BIND (bukan MyDNS), dan
Dovecot (bukan Courier).
1. Catatan Pendahuluan
Dalam tutorial ini, saya menggunakan nama host server1.example.com dengan
alamat IP 192.168.0.100 dan gateway 192.168.0.1 Pengaturan ini mungkin
berbeda untuk Anda, jadi Anda harus menggantinya jika perlu. Sebelum melanjutkan lebih
jauh, Anda harus memiliki instalasi minimal dasar Ubuntu 20.04 seperti yang dijelaskan
dalam tutorial sebelumnya.
Perintah dalam tutorial ini harus dijalankan dengan izin root. Untuk menghindari
penambahan sudo di depan setiap perintah, Anda harus menjadi pengguna root dengan
menjalankan:
sudo -s
nano /etc/apt/sources.list
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu focal-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates main
restricted
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it
includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any
review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu focal-backports main restricted
universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main
restricted universe multiverse
Lalu jalankan
apt-get update
apt-get upgrade
untuk menginstal pembaruan terkini (jika ada). Jika Anda melihat kernel baru diinstal
sebagai bagian dari pembaruan, Anda harus mem-boot ulang sistem setelahnya:
reboot
3. Ubah Default Shell
/ bin / sh adalah symlink ke / bin / dash , namun kita membutuhkan / bin /
bash , bukan / bin / dash . Oleh karena itu, kami melakukan ini:
dpkg-reconfigure dash
Gunakan tanda hubung sebagai shell sistem default (/ bin / sh)? <-
Tidak
Jika Anda tidak melakukannya, penginstalan ISPConfig akan gagal.
4. Nonaktifkan AppArmor
AppArmor adalah ekstensi keamanan (mirip dengan SELinux) yang harus menyediakan
keamanan tambahan. Menurut pendapat saya, Anda tidak memerlukannya untuk
mengonfigurasi sistem yang aman, dan biasanya menyebabkan lebih banyak masalah
daripada keuntungan (pikirkan setelah Anda melakukan pemecahan masalah selama
seminggu karena beberapa layanan tidak berfungsi seperti yang diharapkan, dan
kemudian Anda menemukannya bahwa semuanya baik-baik saja, hanya AppArmor yang
menyebabkan masalah). Oleh karena itu, saya menonaktifkannya (ini adalah suatu
keharusan jika Anda ingin menginstal ISPConfig nanti).
Kami dapat menonaktifkannya seperti ini:
Pesan kesalahan:
Failed to stop sendmail.service: Unit sendmail.service not loaded.
Tidak apa-apa, itu hanya berarti sendmail belum diinstal, jadi tidak ada yang perlu
dihapus.
Sekarang kita dapat menginstal Postfix, Dovecot, MariaDB (sebagai pengganti MySQL),
rkhunter, dan binutils dengan satu perintah:
Penting bahwa Anda menggunakan subdomain sebagai "nama email sistem" seperti
server1.example.com atau server1.yourdomain.com dan bukan domain yang ingin Anda
gunakan sebagai domain email (misalnya domainanda.tld) nanti.
Selanjutnya, buka TLS / SSL dan port pengiriman di Postfix:
nano /etc/postfix/master.cf
Kami ingin MySQL mendengarkan semua antarmuka, tidak hanya localhost. Oleh karena
itu, kami mengedit /etc/mysql/mariadb.conf.d/50-server.cnf dan
mengomentari baris bind-address = 127.0.0.1 :
nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Alih-alih melewatkan jaringan, defaultnya sekarang hanya untuk
mendengarkan
# localhost yang lebih kompatibel dan tidak kurang aman.
# bind-address = 127.0.0.1
[...]
mysql_secure_installation
Edit file /etc/mysql/debian.cnf dan atur kata sandi root MYSQL / MariaDB di sana dua kali
di baris yang dimulai dengan kata sandi.
nano /etc/mysql/debian.cnf
Kata sandi root MySQL yang perlu ditambahkan ditampilkan dalam read, dalam contoh ini
kata sandinya adalah "howtoforge". Ganti kata "howtoforge" dengan kata sandi yang telah
Anda tetapkan untuk pengguna root MySQL dengan perintah mysql_secure_installation.
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
nano /etc/security/limits.conf
mkdir /etc/systemd/system/mysql.service.d/
nano /etc/systemd/system/mysql.service.d/limits.conf
freshclam
service clamav-daemon start
nano /etc/apache2/conf-available/httpoxy.conf
a2enconf httpoxy
Jika Anda ingin meng-host file Ruby dengan ekstensi .rb di situs web Anda yang dibuat
melalui ISPConfig, Anda harus memberi komentar pada baris application / x-ruby
rb di /etc/mime.types :
nano /etc/mime.types
[...]
# aplikasi / x-ruby rb
[...]
(Ini diperlukan hanya untuk file .rb ; File Ruby dengan ekstensi .rbx sudah siap .)
Mulai ulang Apache setelahnya:
newlist mailman
root @ server1 : ~ #
Buka / etc / aliases setelahnya ...
nano /etc/aliases
Lari
newaliases
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
Ini mendefinisikan alias / cgi-bin / mailman / untuk semua Apache vhost, yang
berarti Anda dapat mengakses antarmuka admin Mailman untuk daftar di http: //
<vhost> / cgi-bin / mailman / admin / <listname> , dan halaman web
untuk pengguna milis dapat ditemukan di http: // <vhost> / cgi-bin /
mailman / listinfo / <listname> .
Di bawah http: // <vhost> / pipermail Anda dapat menemukan arsip milis.
Aktifkan konfigurasi dengan:
a2enconf mailman
nano /etc/default/pure-ftpd-common
Sekarang kami mengkonfigurasi PureFTPd untuk mengizinkan sesi FTP dan TLS. FTP
adalah protokol yang sangat tidak aman karena semua kata sandi dan semua data
ditransfer dalam teks yang jelas. Dengan menggunakan TLS, seluruh komunikasi dapat
dienkripsi, sehingga FTP jauh lebih aman.
Jika Anda ingin mengizinkan sesi FTP dan TLS, jalankan
Untuk menggunakan TLS, kita harus membuat sertifikat SSL. Saya membuatnya di / etc
/ ssl / private / , oleh karena itu saya membuat direktori itu terlebih dahulu:
mkdir -p /etc/ssl/private/
Nama Negara (kode 2 huruf) [AU]: <- Masukkan Nama Negara Anda (mis.,
"DE").
Nama Negara Bagian atau Provinsi (nama lengkap) [Some-State]: <-
Masukkan Nama Negara Bagian atau Provinsi.
Nama Lokalitas (mis., Kota) []: <- Masukkan Kota Anda.
Nama Organisasi (mis., Perusahaan) [Internet Widgits Pty Ltd]: <-
Masukkan Nama Organisasi Anda (mis., Nama perusahaan Anda).
Nama Unit Organisasi (mis., Bagian) []: <- Masukkan Nama Unit Organisasi
Anda (mis. "Departemen TI").
Nama Umum (misalnya, nama ANDA) []: <- Masukkan Nama Domain yang
Memenuhi Syarat dari sistem (misalnya "server1.example.com").
Alamat Email []: <- Masukkan Alamat Email Anda.
Ubah izin sertifikat SSL:
nano /etc/fstab
mount -o remount /
quotacheck -avugm
quotaon -avug
Buka /etc/cron.d/awstats sesudahnya ...
nano /etc/cron.d/awstats
[murni-ftpd]
diaktifkan = benar
port = ftp
filter = pure-ftpd
logpath = / var / log / syslog
maxretry = 3
[postfix]
diaktifkan = benar
port = smtp
filter = postfix
logpath = /var/log/mail.log
maxretry = 3
Jangan khawatir jika Anda tidak mendapatkan pertanyaan ini dan peringatan tentang skrip
ucf, tidak apa-apa.
Peringatan ucf yang akan Anda dapatkan di shell dapat diabaikan, ini tidak berdampak
negatif pada penginstalan.
Kemudian edit file konfigurasi apache RoundCube.
nano /etc/apache2/conf-enabled/roundcube.conf
dan hapus # di depan baris Alias, lalu tambahkan baris Alias kedua untuk / webmail dan
tambahkan baris "AddType application / x-httpd-php .php" tepat setelah "<Directory /
var / lib / roundcube>" garis:
# Alias tersebut tidak berfungsi dengan baik dengan beberapa host di
server apache Anda
# Hapus komentar mereka untuk menggunakannya atau menyesuaikannya dengan
konfigurasi Anda
Alias / roundcube / var / lib / roundcube
Alias / webmail / var / lib / roundcube
[...]
<Direktori / var / lib / roundcube>
AddType application / x-httpd-php .php
[...]
nano /etc/roundcube/config.inc.php
Ini mencegah Roundcube akan menampilkan kolom input nama server di formulir login.
17. Instal ISPConfig 3.2
Kami akan menggunakan versi malam ISPConfig 3.2 yang berisi ISPConfig 3.2 beta 1 pada
saat memublikasikan panduan ini karena ISPConfig 3.2 final belum dirilis.
cd /tmp
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-
nightly.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/
php -q install.php
Ini akan memulai penginstal ISPConfig 3. Penginstal akan mengkonfigurasi semua layanan
seperti Postfix, Dovecot, dll. Untuk Anda.
# php -q install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
Symlink ISPConfig LE SSL certs to postfix? (y,n) [y]: <-- Hit Enter
Symlink ISPConfig LE SSL certs to pureftpd? Creating dhparam file takes some
times. (y,n) [y]: <-- Hit Enter
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.............................................................
+...............................................................................
................................................................................
..........+...................
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.
Penginstal secara otomatis mengkonfigurasi semua layanan yang mendasari, jadi tidak
diperlukan konfigurasi manual.
Setelah itu Anda dapat mengakses ISPConfig 3 di bawah http (s):
//server1.example.com: 8080 / atau http (s): //192.168.0.100:
8080 / (HTTP atau HTTPS tergantung pada apa yang Anda pilih selama instalasi). Login
dengan username admin dan password admin (Anda harus mengubah password default
setelah login pertama Anda):
Sistem sekarang siap digunakan.
18. Download gambar mesin virtual untuk tutorial ini
Tutorial ini tersedia sebagai image mesin virtual siap pakai dalam format ovf / ova yang
kompatibel dengan VMWare dan Virtualbox. Image mesin virtual menggunakan detail
login berikut:
Login SSH / Shell
Nama pengguna: administrator
Kata sandi: howtoforge
Pengguna ini memiliki hak sudo.
Login ISPConfig
Nama pengguna: admin
Kata sandi: howtoforge
Login MySQL
Nama pengguna: root
Kata sandi: howtoforge
IP dari VM adalah 192.168.0.100, dapat diubah di file /etc/netplan/01-
netcfg.yaml . Harap ubah semua kata sandi di atas untuk mengamankan mesin virtual.
19. Tautan
Ubuntu: http://www.ubuntu.com/
ISPConfig: http://www.ispconfig.org/