GNU/Linux >> Belajar Linux >  >> Ubuntu

Server Sempurna - Ubuntu 20.04 dengan Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.2

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 hosting web yang memungkinkan Anda untuk mengonfigurasi layanan berikut melalui browser web:server web Apache atau Nginx, server email Postfix, server Courier atau Dovecot IMAP/POP3, MariaDB sebagai pengganti MySQL, server nama BIND atau MyDNS, PureFTPd, SpamAssassin, ClamAV, dan banyak lagi. Pengaturan ini mencakup instalasi Apache (bukan Nginx), BIND (bukan MyDNS), dan Dovecot (bukan Courier).

1. Catatan Awal

Dalam tutorial ini, saya menggunakan hostname server1.example.com dengan alamat IP 192.168.0.100 dan gateway 192.168.0.1  Setelan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu. Sebelum melangkah lebih jauh, Anda harus memiliki instalasi dasar minimal Ubuntu 20.04 seperti yang dijelaskan dalam tutorial.

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

sebelum Anda melanjutkan.

2. Edit /etc/apt/sources.list dan Perbarui Instalasi Linux Anda

Edit /etc/apt/sources.list. Beri komentar atau hapus CD instalasi dari file dan pastikan bahwa repositori universe dan multiverse diaktifkan. Setelah itu akan terlihat seperti ini:

nano /etc/apt/sources.list
# Lihat http://help.ubuntu.com/community/UpgradeNotes untuk cara memutakhirkan ke# versi terbaru dari distribution.deb http://de.archive.ubuntu.com/ubuntu fokus utama terbatas# deb- src http://de.archive.ubuntu.com/ubuntu fokus utama terbatas## Pembaruan perbaikan bug utama dihasilkan setelah rilis final## distribution.deb http://de.archive.ubuntu.com/ubuntu focal- pembaruan utama dibatasi# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates utama dibatasi## N.B. perangkat lunak dari repositori ini SEPENUHNYA TIDAK DIDUKUNG oleh tim Ubuntu##. Juga, harap perhatikan bahwa perangkat lunak di universe TIDAK AKAN menerima ulasan ## atau pembaruan apa pun dari tim keamanan Ubuntu.deb http://de.archive.ubuntu.com/ubuntu focal universe# deb-src http://de.archive .ubuntu.com/ubuntu focal universedeb http://de.archive.ubuntu.com/ubuntu focal-updates universe# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe## N.B. perangkat lunak dari repositori ini SEPENUHNYA TIDAK DIDUKUNG oleh tim Ubuntu##, dan mungkin tidak di bawah lisensi gratis. Harap puaskan diri Anda tentang## hak Anda untuk menggunakan perangkat lunak. Juga, harap perhatikan bahwa perangkat lunak di## multiverse TIDAK AKAN menerima ulasan atau pembaruan apa pun dari tim keamanan Ubuntu##.deb http://de.archive.ubuntu.com/ubuntu focal multiverse# deb-src http://de .archive.ubuntu.com/ubuntu focal multiversedeb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse## N.B. perangkat lunak dari repositori ini mungkin belum diuji## secara ekstensif seperti yang terdapat dalam rilis utama, meskipun menyertakan## versi terbaru dari beberapa aplikasi yang mungkin menyediakan fitur yang berguna.## Juga, harap dicatat bahwa perangkat lunak di backport TIDAK AKAN menerima setiap ulasan## atau pembaruan dari tim keamanan Ubuntu.deb http://de.archive.ubuntu.com/ubuntu focal-backports alam semesta terbatas utama multiverse# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main limited universe multiverse## Batalkan komentar pada dua baris berikut untuk menambahkan perangkat lunak dari repositori ## 'partner' Canonical.## Perangkat lunak ini bukan bagian dari Ubuntu, tetapi ditawarkan oleh Canonical dan## masing-masing vendor sebagai layanan untuk pengguna Ubuntu.# deb http://archive.canonical.com/ubuntu focal partner# deb-src http://archive.canonical.com/ubuntu focal partnerdeb http://de.archive.ubuntu.com/ubuntu focal -keamanan utama terbatas# deb-src http://de.archive.ubuntu.com/ubuntu fokus-keamanan utama terbatasdeb http:/ /de.archive.ubuntu.com/ubuntu focal-security universe# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universedeb http://de.archive.ubuntu.com/ubuntu focal- keamanan multiverse# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse

Kemudian jalankan

apt-get update

untuk memperbarui database paket apt dan

apt-get upgrade

untuk menginstal pembaruan terbaru (jika ada). Jika Anda melihat kernel baru terinstal sebagai bagian dari pembaruan, Anda harus mem-boot ulang sistem setelahnya:

boot ulang

3. Ubah Shell Default

/bin/sh adalah symlink ke /bin/dash, namun kita membutuhkan /bin/bash, bukan /bin/dash. Oleh karena itu, kami melakukan ini:

dpkg-konfigurasi ulang tanda hubung

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 seharusnya memberikan keamanan yang diperluas. Menurut pendapat saya, Anda tidak memerlukannya untuk mengkonfigurasi 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 menemukan 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).

Kita dapat menonaktifkannya seperti ini:

service apparmor berhenti
update-rc.d -f apparmor hapus
apt-get hapus apparmor apparmor-utils

5. Sinkronkan Jam Sistem

Sebaiknya sinkronisasi jam sistem dengan NTP (n jaringan t waktu p rotocol) server melalui Internet saat Anda menjalankan server fisik. Jika Anda menjalankan server virtual maka Anda harus melewati langkah ini. Jalankan saja

apt-get -y install ntp

dan waktu sistem Anda akan selalu sinkron.

6. Instal Postfix, Dovecot, MariaDB, rkhunter, dan binutils

Untuk menginstal postfix, kita perlu memastikan bahwa sendmail tidak diinstal dan dijalankan. Untuk menghentikan dan menghapus sendmail, jalankan perintah ini:

layanan sendmail berhenti; update-rc.d -f sendmail hapus

Pesan kesalahan:

Gagal menghentikan sendmail.service:Unit sendmail.service tidak dimuat.

Oke, itu hanya berarti sendmail tidak diinstal, jadi tidak ada yang perlu dihapus.

Sekarang kita dapat menginstal Postfix, Dovecot, MariaDB (sebagai pengganti MySQL), rkhunter, dan binutils dengan satu perintah:

apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo patch

Anda akan ditanya pertanyaan berikut:

Jenis umum konfigurasi email:<-- Situs Internet
Nama email sistem:<-- server1.example.com

Penting bahwa Anda menggunakan subdomain sebagai "nama email sistem" seperti server1.example.com atau server1.domainanda.com dan bukan domain yang ingin Anda gunakan sebagai domain email (mis. domainAnda.tld) ​​nanti.

Selanjutnya, buka TLS/SSL dan port pengiriman di Postfix:

nano /etc/postfix/master.cf

Batalkan komentar pada bagian kiriman dan smtps sebagai berikut - tambahkan baris -o smtpd_client_restrictions=permit_sasl_authenticated,tolak kedua bagian dan tinggalkan semuanya setelahnya dikomentari:

[...]pengajuan inet n - y - - smtpd -o syslog_name=postfix/pengajuan -o smtpd_tls_security_level=enkripsi -o smtpd_sasl_auth_enable=ya
-o smtpd_tls_auth_only=color:smtpd_tls_auth_only;">-o smtpd_client_restrictions=permit_sasl_authenticated,tolak # -O smtpd_reject_unlisted_recipient =no # -o smtpd_client_restrictions =$ mua_client_restrictions # -o smtpd_helo_restrictions =$ mua_helo_restrictions # -o smtpd_sender_restrictions =$ mua_sender_restrictions # -o smtpd_recipient_restrictions =permit_sasl_authenticated, menolak # -o milter_macro_daemon_name =ORIGINATINGsmtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -O smtpd_reject_unlisted_recipient =no # -o smtpd_client_restrictions =$ mua_client_restrictions # -o smtpd_helo_restrictions =$ mua_helo_restrictions # -o smtpd_sender_restrictions =$ mua_sender_restrictions # -o smtpd_recipient_restrictions =permit_sasl_authenticated, menolak # -o milter_macro_daemon_name =BERASAL [...]

CATATAN: Spasi putih di depan garis "-o .... " penting!

Mulai ulang Postfix sesudahnya:

service postfix restart

Kami ingin MySQL mendengarkan di semua antarmuka, bukan hanya localhost. Oleh karena itu, kita edit /etc/mysql/mariadb.conf.d/50-server.cnf dan beri komentar pada baris bind-address =127.0.0.1:

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]# Alih-alih melewatkan jaringan, defaultnya sekarang hanya mendengarkan di# localhost yang lebih kompatibel dan tidak kalah aman.# bind-address =127.0.0.1

[...]

Sekarang kita menetapkan kata sandi root di MariaDB. Jalankan:

mysql_secure_installation

Anda akan ditanyai pertanyaan berikut:

Masukkan kata sandi saat ini untuk root (masukkan untuk tidak ada):<-- tekan enter
Tetapkan kata sandi root? [Y/n] <-- y
Kata sandi baru:<-- Masukkan kata sandi root MariaDB baru di sini
Masukkan kembali kata sandi baru:<-- Ulangi kata sandi
Hapus pengguna anonim? [Y/n] <-- y
Larang login root dari jarak jauh? [Y/n] <-- y
Muat ulang tabel hak istimewa sekarang? [Y/n] <-- y

Setel metode otentikasi kata sandi di MariaDB ke asli sehingga kami dapat menggunakan PHPMyAdmin nanti untuk terhubung sebagai pengguna root:

echo "perbarui mysql.user set plugin ='mysql_native_password' di mana user='root';" | mysql -u root

Edit file /etc/mysql/debian.cnf dan setel 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 dengan warna merah. 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.

# Secara otomatis dibuat untuk skrip Debian. JANGAN SENTUH!
[klien]
host =localhost
user =root
sandi = howtoforge
socket =/var/run/mysqld/mysqld.sock
[mysql_upgrade]
host =localhost
user =root
password =howtoforge
socket =/var/run/mysqld/mysqld.sock
basedir =/usr

Buka file /etc/security/limits.conf dengan editor:

nano /etc/security/limits.conf

dan tambahkan baris ini di akhir file.

mysql softnofile 65535
mysql hardnofile 65535

Selanjutnya, buat direktori baru /etc/systemd/system/mysql.service.d/ dengan perintah mkdir.

mkdir /etc/systemd/system/mysql.service.d/

dan tambahkan file baru di dalamnya:

nano /etc/systemd/system/mysql.service.d/limits.conf

rekatkan baris berikut ke dalam file itu:

[Layanan]
LimitNOFILE=infinity

Simpan file dan tutup editor nano.

Kemudian kita reload systemd dan restart MariaDB:

systemctl daemon-reload
service mariadb restart

Sekarang periksa apakah jaringan diaktifkan. Jalankan

netstat -ketuk | grep mysql

Outputnya akan terlihat seperti ini:

[email protected]:~# netstat -tap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  DENGARKAN      51836/mysqld
[email protected

7. Instal Amavisd-new, SpamAssassin, dan Clamav

Untuk menginstal amavisd-new, SpamAssassin, dan ClamAV, kami menjalankan

apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket -perl libnet-ident-perl zip libnet-dns-perl postgrey

Penyiapan ISPConfig 3 menggunakan amavisd yang memuat pustaka filter SpamAssassin secara internal, jadi kami dapat menghentikan SpamAssassin untuk mengosongkan sebagian RAM:

penghentian spamassassin layanan
update-rc.d -f penghapusan spamassassin

Untuk memulai penggunaan ClamAV:

freshclam
layanan clamav-daemon dimulai

Kesalahan berikut dapat diabaikan saat menjalankan freshclam pertama.

ERROR:/var/log/clamav/freshclam.log dikunci oleh proses lain
ERROR:Masalah dengan logger internal (UpdateLogFile =/var/log/clamav/freshclam.log).

8. Instal Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear

Apache 2.4, PHP 7.4, phpMyAdmin, FCGI, suExec, dan Pear dapat diinstal sebagai berikut:

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap phpmyadmin php7.4-cli php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-rapi php7 .4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm libapache2-reload -perl

Anda akan melihat pertanyaan berikut:

Server web untuk mengkonfigurasi ulang secara otomatis:<-- apache2


Konfigurasi database untuk phpmyadmin dengan dbconfig-common? <-- Ya
 

Kata sandi aplikasi MySQL untuk phpmyadmin:<-- Tekan enter

Kemudian jalankan perintah berikut untuk mengaktifkan modul Apache suexec, rewrite, ssl, actions, dan include (plus dav, dav_fs, dan auth_digest jika Anda ingin menggunakan WebDAV):

a2enmod suexec menulis ulang tindakan ssl termasuk cgi alias proxy_fcgi
a2enmod dav_fs dav auth_digest header

Untuk memastikan bahwa server tidak dapat diserang melalui kerentanan HTTPOXY, saya akan menonaktifkan header HTTP_PROXY di Apache secara global. Buat file httpoxy.conf baru dengan nano:

nano /etc/apache2/conf-available/httpoxy.conf

Tempel konten ini ke dalam file:

 RequestHeader menghapus Proxy lebih awal

Aktifkan file konfigurasi dengan menjalankan:

a2enconf httpoxy

Mulai ulang Apache sesudahnya:

layanan apache2 restart

Jika Anda ingin menghosting file Ruby dengan ekstensi .rb di situs web Anda yang dibuat melalui ISPConfig, Anda harus mengomentari baris application/x-ruby rb di /etc/mime.types:

nano /etc/mime.types
[...]# aplikasi/x-ruby rb[...]

(Ini hanya diperlukan untuk file .rb; file Ruby dengan ekstensi .rbx bekerja di luar kotak.)

Mulai ulang Apache setelahnya:

layanan apache2 restart

9. Instal Let's Encrypt

ISPConfig 3.2 memiliki dukungan bawaan untuk mengenkripsi Otoritas Sertifikat SSL gratis. Fungsi Let's Encrypt memungkinkan Anda membuat Sertifikat SSL gratis untuk situs web Anda di ISPConfig.

Sekarang kami akan menambahkan dukungan untuk Let's encrypt.

apt-get install certbot

10. Instal Mailman

ISPConfig memungkinkan Anda untuk mengelola (membuat/memodifikasi/menghapus) milis Mailman. Jika Anda ingin menggunakan fitur ini, instal Mailman sebagai berikut:

apt-get -y install mailman

Pilih setidaknya satu bahasa, mis.:

Bahasa yang didukung:<-- en (Bahasa Inggris)
Daftar situs tidak ada <-- Oke

Kesalahan 'Pekerjaan untuk mailman.service gagal karena proses kontrol keluar dengan kode kesalahan. ' dapat diabaikan untuk saat ini.

Sebelum kita dapat memulai Mailman, milis pertama yang disebut mailman harus dibuat:

mailman daftar baru

[email protected]:~# newlist mailman
Masukkan email orang yang menjalankan daftar: <-- alamat email admin, mis. [email protected]
Sandi mailman awal: <-- admin password for mailman list
Untuk menyelesaikan pembuatan milis, Anda harus mengedit file /etc/aliases (atau
setara) oleh menambahkan baris berikut, dan mungkin menjalankan program
`newaliases':

## mailman milis
mailman:            "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:       "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:     "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:        "|/var/lib/mailman/mail/mailman join mailman"
mailman- tinggalkan:        "|/var/lib/mailman/mail/mailman tinggalkan mailman"
mailman-owner:       "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:     "| /var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Tekan enter untuk memberi tahu pemilik mailman... <-- ENTER

[dilindungi email]:~#

Buka /etc/aliases setelahnya...

nano /etc/aliases

... dan tambahkan baris berikut:

[...]## mailman mailing listmailman:"|/var/lib/mailman/mail/mailman post mailman"mailman-admin:"|/var/lib/mailman/mail/mailman admin mailman "mailman-bounces:"|/var/lib/mailman/mail/mailman bounces mailman"mailman-confirm:"|/var/lib/mailman/mail/mailman confirm mailman"mailman-join:"|/var/lib/ mailman/mail/mailman bergabung dengan tukang pos"mailman-leave:"|/var/lib/mailman/mail/mailman meninggalkan tukang pos"mailman-owner:"|/var/lib/mailman/mail/mailman pemilik tukang pos"mailman-permintaan:"|/var/lib/mailman/mail/mailman request mailman"mailman-subscribe:"|/var/lib/mailman/mail/mailman berlangganan tukang pos"mailman-unsubscribe:"|/var/lib/mailman/mail/mailman berhenti berlangganan tukang pos" 

Jalankan

newalias

setelah itu dan mulai ulang Postfix:

service postfix restart

Terakhir, kita harus mengaktifkan konfigurasi Mailman Apache:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf

Ini mendefinisikan alias /cgi-bin/mailman/ untuk semua vhost Apache, yang berarti Anda dapat mengakses antarmuka admin Mailman untuk daftar di http:///cgi-bin/mailman/admin/, dan halaman web untuk pengguna milis dapat ditemukan di http:///cgi-bin/mailman/listinfo/.

Di bawah http:///pipermail Anda dapat menemukan arsip milis.

Aktifkan konfigurasi dengan:

a2enconf mailman

Mulai ulang Apache sesudahnya:

layanan apache2 restart

Kemudian jalankan daemon Mailman:

layanan tukang pos mulai

11. Instal PureFTPd dan Kuota

PureFTPd dan kuota dapat diinstal dengan perintah berikut:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quotatooltool

Edit file /etc/default/pure-ftpd-common...

nano /etc/default/pure-ftpd-common

... dan pastikan mode start diatur ke standalone dan set VIRTUALCHROOT=true:

[...]STANDALONE_OR_INETD=mandiri [...]VIRTUALCHROOT=benar [...]

Sekarang kita 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 membuat FTP jauh lebih aman.

Jika Anda ingin mengizinkan sesi FTP dan TLS, jalankan

echo 1> /etc/pure-ftpd/conf/TLS

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/

Setelah itu, kita dapat membuat sertifikat SSL sebagai berikut:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Nama Negara (kode 2 huruf) [AU]:<-- Masukkan Nama Negara Anda (mis., "DE").
Nama Negara Bagian atau Provinsi (nama lengkap) [Beberapa Negara Bagian]:<-- Masukkan Nama Negara Bagian atau Provinsi Anda.
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 (mis., Nama ANDA) []:<-- Masukkan Nama Domain yang Memenuhi Syarat dari sistem (mis. "server1.example.com").
Alamat Email []:<-- Masukkan Alamat Email Anda.

Ubah izin sertifikat SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Kemudian restart PureFTPd:

layanan pure-ftpd-mysql restart

Sunting /etc/fstab. Milik saya terlihat seperti ini (saya menambahkan ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 ke partisi dengan titik mount /):

nano /etc/fstab
# /etc/fstab:informasi sistem file statis.
#
# Gunakan 'blkid' untuk mencetak pengenal unik universal untuk
# perangkat; ini dapat digunakan dengan UUID=sebagai cara yang lebih kuat untuk memberi nama perangkat
# yang berfungsi bahkan jika disk ditambahkan dan dihapus. Lihat fstab(5).
#
#
/dev/mapper/server1--vg- root / ext4 error=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Untuk mengaktifkan kuota, jalankan perintah berikut:

mount -o remount /
quotacheck -avugm
quotaon -avug

Yang akan menampilkan output berikut:

[email protected]:/tmp# quotacheck -avugm
quotacheck:Scanning /dev/mapper/server1--vg-root [/] done
quotacheck:Tidak dapat stat file kuota pengguna lama // quota.user:Tidak ada file atau direktori seperti itu. Penggunaan tidak akan dikurangi.
pemeriksaan kuota:Tidak dapat stat file kuota grup lama //quota.group:Tidak ada file atau direktori tersebut. Penggunaan tidak akan dikurangi.
pemeriksaan kuota:Tidak dapat menyatakan file kuota pengguna lama //quota.user:Tidak ada file atau direktori tersebut. Penggunaan tidak akan dikurangi.
pemeriksaan kuota:Tidak dapat stat file kuota grup lama //quota.group:Tidak ada file atau direktori tersebut. Penggunaan tidak akan dikurangi.
cek kuota:Memeriksa 13602 direktori dan 96597 file
cek kuota:File lama tidak ditemukan.
cek kuota:File lama tidak ditemukan.
[dilindungi email]:/ tmp# quotaon -avug
/dev/mapper/server1--vg-root [/]:kuota grup diaktifkan
/dev/mapper/server1--vg-root [/]:kuota pengguna diaktifkan pada

12. Instal Server DNS BIND

BIND dapat diinstal sebagai berikut:

apt-get -y install bind9 dnsutils hasged

Aktifkan dan mulai Daemon yang telah di-hash:

systemctl mengaktifkan hasged
systemctl start hasged

13. Instal Vlogger, Webalizer, AWStats, dan GoAccess

Vlogger, Webalizer, dan AWStats dapat diinstal sebagai berikut:

apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Menginstal versi GoAccess terbaru langsung dari repositori GoAccess:

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess

Buka /etc/cron.d/awstats setelahnya...

nano /etc/cron.d/awstats

... dan komentari semua yang ada di file itu:

 MAILTO=root# */10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &&/usr/share/awstats/tools/update.sh# Buat laporan statis:# 10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

14. Instal Jailkit

Jailkit digunakan untuk memenjarakan pengguna shell dan cronjobs di ISPConfig. Instal jailkit dengan apt:

apt-get -y install jailkit

15. Instal fail2ban dan UFW

Ini opsional tetapi disarankan karena monitor ISPConfig mencoba menampilkan log:

apt-get -y install fail2ban

Untuk membuat monitor fail2ban PureFTPd dan Dovecot, buat file /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local
[pure-ftpd]enabled =trueport =ftpfilter =pure-ftpdlogpath =/var/log/syslogmaxretry =3[dovecot]enabled =truefilter =dovecotaction =iptables-multiport[name=dovecot-pop3imap, port="pop3, pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail.logmaxretry =5[postfix]enabled =trueport =smtpfilter =postfixlogpath =/var/log/mail.logmaxretry =3

Mulai ulang fail2ban setelahnya:

layanan fail2ban restart

Untuk menginstal firewall UFW, jalankan perintah apt ini:

apt-get install ufw

16. Instal Roundcube Webmail

Untuk menginstal Roundcube Webmail, jalankan:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

Pemasang mungkin menanyakan pertanyaan berikut:

Konfigurasi database untuk roundcube dengan dbconfig-common? <-- Ya
Kata sandi aplikasi MySQL untuk roundcube:<-- Tekan enter

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, tidak berdampak negatif pada instalasi.

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 "" baris:

# Alias ​​tersebut tidak bekerja dengan baik dengan beberapa host di server apache Anda
# Hapus tanda komentar mereka untuk menggunakannya atau menyesuaikannya dengan konfigurasi Anda
Alias ​​/roundcube /var/lib/roundcube
Alias ​​/webmail /var/lib/roundcube[...]AddType application/x-httpd-php .php[...]

Dan restart apache

layanan apache2 restart

Kemudian edit file konfigurasi RoundCube config.inc.php:

nano /etc/roundcube/config.inc.php

dan ubah host default menjadi localhost:

$config['default_host'] ='localhost';

dan server SMTP ke:

$config['smtp_server'] ='localhost';

dan

$config['smtp_port']  =25;

Ini mencegah Roundcube akan menampilkan bidang input nama server dalam formulir login.

17. Instal ISPConfig 3.2

Kami akan menggunakan versi stabil ISPConfig 3.2 di sini.

cd /tmp 
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/

Langkah selanjutnya adalah menjalankan

php -q install.php

Ini akan memulai penginstal ISPConfig 3. Pemasang akan mengonfigurasi semua layanan seperti Postfix, Dovecot, dll. untuk Anda.

# php -q install.php

------------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | _\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
-------------------------------------- --------------------------------------------------

>> Konfigurasi awal
Sistem Operasi:Ubuntu 20.04.1 LTS (Focal Fossa)
Berikut akan ada beberapa pertanyaan untuk konfigurasi utama jadi berhati-hatilah.
Nilai default ada di [tanda kurung] dan dapat diterima dengan .
Ketuk "keluar" (tanpa tanda kutip) untuk menghentikan penginstal.

Pilih bahasa (en,de) [en]:<-- Tekan Enter
Mode penginstalan (standar,ahli) [standar]: <-- Tekan Enter
Nama host yang memenuhi syarat penuh (FQDN) dari server, misalnya server1.domain.tld [server1.canomi.com]: <-- Tekan Enter
Nama host server MySQL [localhost]: <-- Tekan Enter
Port server MySQL [3306]: <-- Tekan Enter
Nama pengguna root MySQL [root]: <-- Tekan Enter
Kata sandi root MySQL []: <-- Masukkan kata sandi root MySQL Anda
Database MySQL untuk membuat [dbispconfig]: <-- Tekan Enter
MySQL charset [utf8]: <-- Tekan Enter
Mengonfigurasi Postgrey
Mengonfigurasi Postfix
Membuat kunci privat RSA 4096 bit
........................ ...................................................++
............................................................. ........................................................ ........................................++
menulis kunci pribadi baru ke 'smtpd.key'
-----
Anda akan diminta untuk memasukkan informasi yang akan dimasukkan
ke dalam permintaan sertifikat Anda.
Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN.
Ada beberapa bidang tetapi Anda dapat mengosongkannya
Untuk beberapa bidang akan ada nilai default,
Jika Anda memasukkan '. ', kolom akan dikosongkan.
-----
Nama Negara (kode 2 huruf) [AU]:<-- Masukkan kode negara 2 huruf
Nama Negara Bagian atau Provinsi ( nama lengkap) [Some-State]:<-- Masukkan nama  state
Nama Lokalitas (misalnya, kota) []:<-- Masukkan kota Anda
Nama Organisasi (misalnya, perusahaan) [ ke dalam ernet Widgits Pty Ltd]:<-- Masukkan nama perusahaan atau tekan enter
Nama Unit Organisasi (mis., bagian) []: <-- Tekan Enter
Nama Umum (mis. server FQDN atau nama ANDA) []:<-- Masukkan nama host server, dalam kasus saya:server1.example.com
Alamat Email []: <-- Tekan Enter
Configuring Mailman
Mengonfigurasi Dovecot
Mengonfigurasi Spamassassin
Mengonfigurasi Amavisd
Mengonfigurasi Getmail
Mengonfigurasi BIND
Mengonfigurasi Jailkit
Mengonfigurasi Pureftpd
Mengonfigurasi Apache
Mengonfigurasi vlogger
Mengonfigurasi Server Metronome XMPP
menulis kunci pribadi baru ke 'localhost.key'
-----
Nama Negara (kode 2 huruf) [AU]: <-- Enter 2 huruf kode negara
Nama Lokalitas (mis., kota) []: <-- Masukkan kota Anda
Nama Organisasi (mis., perusahaan) [Internet Widgits Pty Ltd]: <-- Masukkan nama perusahaan atau tekan masukkan
Nama Unit Organisasi (mis., bagian) []: <-- Tekan Enter
Nama Umum (mis. server FQDN atau nama ANDA) [server1.canomi.com]: <-- Masukkan nama host server , dalam kasus saya:server1.example.com
Alamat Email []: <-- Tekan Enter
Mengonfigurasi Firewall Ubuntu
Mengonfigurasi layanan Fail2ban
[INFO] OpenVZ tidak terdeteksi
Mengonfigurasi Aplikasi vhost
Menginstal ISPConfig
Port ISPConfig [8080]:
Kata sandi admin [admin]:
Apakah Anda menginginkan koneksi (SSL) yang aman ke antarmuka web ISPConfig (y,n) [y]: <-- Tekan Enter
Membuat kunci privat RSA, modulus panjang 4096 bit
.......................++
..... ........................................................ ........................................................ .......................++
e adalah 65537 (0x10001)
Anda akan diminta untuk memasukkan informasi yang akan dimasukkan
ke dalam permintaan sertifikat Anda.
Apa yang akan Anda masukkan adalah apa yang disebut Distinguished Name atau DN.
Ada beberapa bidang tetapi Anda dapat mengosongkannya
Untuk beberapa bidang akan ada nilai default,
Jika Anda memasukkan '.', bidang tersebut akan dibiarkan kosong.
-----
Nama Negara (kode 2 huruf) [AU]: <-- Masukkan 2 huruf kode negara
Nama Negara Bagian atau Provinsi (nama lengkap) [Some-State]: <-- Masukkan nama  negara bagian
Nama Lokal (mis., kota) []: <-- Masukkan kota Anda
Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]: <-- Masukkan nama perusahaan atau tekan enter
Nama Unit Organisasi (misalnya, bagian) [] : <-- Tekan Enter
Nama Umum (mis. server FQDN atau nama ANDA) []: <-- Masukkan nama host server, dalam kasus saya:server1.example.com
Alamat Email []: <-- Tekan Enter
Silakan masukkan atribut 'ekstra' berikut
untuk dikirim bersama permintaan sertifikat Anda
Sandi tantangan []: <-- Tekan Enter
Nama perusahaan opsional []: <- - Tekan Enter
tulis kunci RSA

Symlink ISPConfig LE sertifikat SSL ke postfix? (y,n) [y]: <-- Tekan Enter
Symlink ISPConfig LE sertifikat SSL ke pureftpd? Membuat file dhparam membutuhkan waktu. (y,n) [y]: <-- Tekan Enter
Membuat parameter DH, 2048 bit long safe prime, generator 2
Ini akan memakan waktu lama
................... ..................................+............ ........................................................ ........................................................ ........................................................ ............+...................

Mengonfigurasi DBServer
Menginstal ISPConfig crontab
tidak ada crontab untuk root
tidak ada crontab untuk getmail
Mendeteksi alamat IP
Memulai ulang layanan ...
Instalasi selesai.

Pemasang secara otomatis mengonfigurasi semua layanan yang mendasarinya, sehingga tidak diperlukan konfigurasi manual.

Setelah itu Anda dapat mengakses ISPConfig 3 di http(s)://server1.example.com:8080/ atau http(s)://192.168.0.100:8080/ (HTTP atau HTTPS tergantung pada apa yang Anda pilih saat instalasi). Masuk dengan nama pengguna admin dan kata sandi admin (Anda harus mengubah kata sandi default setelah login pertama Anda):






Sistem sekarang siap digunakan.

18. Unduhan gambar mesin virtual dari tutorial ini

Tutorial ini tersedia sebagai image mesin virtual siap pakai dalam format ovf/ova yang kompatibel dengan VMWare dan Virtualbox. Gambar mesin virtual menggunakan detail login berikut:

Masuk SSH / Shell

Nama pengguna:administrator
Kata sandi:howtoforge

Pengguna ini memiliki hak sudo.

Masuk ISPConfig

Nama pengguna:admin
Kata sandi:howtoforge

Masuk MySQL

Nama pengguna:root
Kata sandi:howtoforge

IP 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/

Ubuntu
  1. Server Sempurna - Ubuntu 15.04 (Vivid Vervet) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3

  2. Server Sempurna - Ubuntu 15.04 (nginx, BIND, Dovecot, dan ISPConfig 3)

  3. Server Sempurna - Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD dan ISPConfig 3)

  1. Server Sempurna - Ubuntu 16.10 (Yakkety Yak) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

  2. Server Sempurna - Ubuntu 17.04 (Zesty Zapus) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

  3. Server Sempurna - Ubuntu 17.10 (Artful Aardvark) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

  1. Server Sempurna - Ubuntu 16.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD dan ISPConfig 3.1)

  2. Server Sempurna - Ubuntu 16.04 (Xenial Xerus) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

  3. Server Sempurna - Ubuntu 18.04 (Bionic Beaver) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1