Anda di halaman 1dari 23

Konfigurasi Server - Ubuntu 20.

04 dengan
Apache, PHP, MariaDB, PureFTPD, BIND, Postfix,
Dovecot dan ISPConfig 3.2 (Beta)
Tutorial ini untuk versi OS :

 Ubuntu 20.04 (Focal Fossa)

Isi buku ini

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

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 semesta dan multiverse diaktifkan. Ini akan terlihat seperti
ini setelahnya:

nano /etc/apt/sources.list

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to


# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu focal main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal main restricted

## 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 is ENTIRELY UNSUPPORTED by the


Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu focal universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal universe
deb http://de.archive.ubuntu.com/ubuntu focal-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the


Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as
to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu focal multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse

## 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

## Uncomment the following two lines to add software from Canonical's


## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and
the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://de.archive.ubuntu.com/ubuntu focal-security main restricted


# deb-src http://de.archive.ubuntu.com/ubuntu focal-security main
restricted
deb http://de.archive.ubuntu.com/ubuntu focal-security universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universe
deb http://de.archive.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse

Lalu jalankan

apt-get update

untuk memperbarui database paket apt dan

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:

service apparmor stop


update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

5. Sinkronisasi Jam Sistem


Ada baiknya untuk menyinkronkan jam sistem dengan server NTP
( n etwork t ime p rotocol) melalui Internet saat Anda menjalankan server fisik. Jika Anda
menjalankan server virtual maka Anda harus melewati langkah ini. Lari 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:
service sendmail stop; update-rc.d -f sendmail remove

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:

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 ditanyai pertanyaan-pertanyaan berikut:


General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com

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

Batalkan komentar pada bagian kiriman dan smtps sebagai berikut - tambahkan


baris -o smtpd_client_restrictions = permit_sasl_authenticated,
tolak kedua bagian dan biarkan semuanya diberi komentar:
[...]
pengajuan inet n - y - - smtpd
-o syslog_name = postfix / submission
-o smtpd_tls_security_level = mengenkripsi
-o smtpd_sasl_auth_enable = yes
-o smtpd_client_restrictions = permit_sasl_authenticated, tolak
# -o smtpd_reject_unlisted_recipient = tidak
# -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, tolak
# -o milter_macro_daemon_name = ORIGINATING
smtps 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, tolak
# -o smtpd_reject_unlisted_recipient = tidak
# -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, tolak
# -o milter_macro_daemon_name = ORIGINATING
[...]

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


Mulai ulang Postfix sesudahnya:

service postfix restart

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

[...]

Sekarang kami menetapkan kata sandi root di MariaDB. Lari:

mysql_secure_installation

Anda akan ditanyai pertanyaan-pertanyaan ini:


Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y
Setel metode otentikasi kata sandi di MariaDB ke asli sehingga kita dapat menggunakan
PHPMyAdmin nanti untuk terhubung sebagai pengguna root:

echo "update mysql.user set plugin = 'mysql_native_password' where user='root';"


| mysql -u root

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

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

nano /etc/security/limits.conf

dan tambahkan baris ini di akhir file.


mysql soft nofile 65535
mysql hard nofile 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

tempel baris berikut ke dalam file itu:


[Service]
LimitNOFILE=infinity

Simpan file dan tutup editor nano.


Kemudian kami memuat ulang systemd dan memulai ulang MariaDB:
systemctl daemon-reload
service mariadb restart

Sekarang periksa apakah jaringan diaktifkan. Lari

netstat -tap | grep mysql

Outputnya akan terlihat seperti ini:


root@server1:~# netstat -tap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN  
51836/mysqld
root@server1:~#

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-ssl-perl libnet-ident-perl zip
libnet-dns-perl postgrey

Pengaturan ISPConfig 3 menggunakan amavisd yang memuat pustaka filter SpamAssassin


secara internal, sehingga kami dapat menghentikan SpamAssassin untuk membebaskan
beberapa RAM:

service spamassassin stop


update-rc.d -f spamassassin remove

Untuk memulai penggunaan ClamAV:

freshclam
service clamav-daemon start

Kesalahan berikut dapat diabaikan saat freshclam dijalankan pertama kali.


ERROR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (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-tidy
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

Anda akan melihat pertanyaan berikut:


Web server to reconfigure automatically: <-- apache2

Configure database for phpmyadmin with dbconfig-common? <-- Yes

MySQL application password for phpmyadmin: <-- Press enter

Kemudian jalankan perintah berikut untuk mengaktifkan Apache


modul suexec , menulis ulang , ssl , tindakan ,
dan termasuk (ditambah dav , dav_fs , dan auth_digest  jika Anda ingin
menggunakan WebDAV):

a2enmod suexec rewrite ssl actions include cgi alias proxy_fcgi


a2enmod dav_fs dav auth_digest headers
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:


<IfModule mod_headers.c>
RequestHeader menghapus Proxy lebih awal
</IfModule>

Aktifkan file konfigurasi dengan menjalankan:

a2enconf httpoxy

Mulai ulang Apache sesudahnya:

service apache2 restart

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:

service apache2 restart

9. Instal Let's Encrypt


ISPConfig 3.2 memiliki dukungan bawaan untuk Otoritas Sertifikat SSL gratis Let's
encrypt. 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, misalnya:


Bahasa yang didukung:  <- en (English)
Daftar situs tidak ada  <- Ok
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:

newlist mailman

root @ server1 : ~ # mailman daftar baru


Masukkan email orang yang menjalankan daftar:  <- alamat email admin,
misalnya  listadmin@example.com
Kata sandi mailman awal:  <- kata sandi admin untuk daftar mailman
Untuk menyelesaikan pembuatan milis Anda , Anda harus mengedit
file / etc / aliases (atau yang
setara) dengan menambahkan baris berikut, dan mungkin menjalankan
program
`newaliases ':

## mailman mailing list


mailman:" | / var / lib / mailman / mail / mailman post mailman "
mailman-admin:" | / var / lib / mailman / mail / mailman admin
mailman "
mailman-bounce:" | / var / lib / mailman / mail / mailman bounce
mailman "
mailman-confirm:"| / var / lib / mailman / mail / mailman
konfirmasi mailman "
mailman-join: "| / var / lib / mailman / mail / mailman join
mailman"
mailman-leave: "| / 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
berlangganan mailman "
mailman-unsubscribe:" | / var / lib / mailman / mail / mailman
berhenti berlangganan mailman "

Tekan enter untuk memberitahu pemilik mailman ...  <- ENTER

root @ server1 : ~ #
Buka / etc / aliases setelahnya ...

nano /etc/aliases

... dan tambahkan baris berikut:


[...]
## milis tukang pos
mailman: "| / var / lib / mailman / mail / mailman post mailman"
mailman-admin: "| / var / lib / mailman / mail / mailman admin mailman"
mailman-bounce: "| / var / lib / mailman / mail / mailman bounce mailman"
mailman-confirm: "| / var / lib / mailman / mail / mailman confirm
mailman"
mailman-join: "| / var / lib / mailman / mail / mailman join mailman"
mailman-leave: "| / 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 berlangganan
mailman"
mailman-unsubscribe: "| / var / lib / mailman / mail / mailman berhenti
berlangganan mailman"

Lari

newaliases

setelah itu dan restart 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 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

Mulai ulang Apache sesudahnya:

service apache2 restart

Kemudian mulai daemon Mailman:


service mailman start

11. Instal PureFTPd dan Kuota


PureFTPd dan kuota dapat diinstal dengan perintah berikut:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

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

nano /etc/default/pure-ftpd-common

... dan pastikan bahwa mode mulai diatur ke mandiri dan setel VIRTUALCHROOT =


true :
[...]
STANDALONE_OR_INETD = berdiri sendiri
[...]
VIRTUALCHROOT = true
[...]

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

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 menghasilkan 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) [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:

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

Kemudian mulai ulang PureFTPd:

service pure-ftpd-mysql restart

Edit / etc / fstab . Milik saya terlihat seperti ini (saya menambahkan ,


usrjquota = quota.user, grpjquota = quota.group, jqfmt = vfsv0 ke
partisi dengan mount point / ):

nano /etc/fstab

# /etc/fstab: static file system information.


#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/server1--vg-root / ext4 errors=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 menunjukkan output berikut:


root@server1:/tmp# quotacheck -avugm
quotacheck: Scanning /dev/mapper/server1--vg-root [/] done
quotacheck: Cannot stat old user quota file //quota.user: No such file or
directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or
directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: No such file or
directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or
directory. Usage will not be subtracted.
quotacheck: Checked 13602 directories and 96597 files
quotacheck: Old file not found.
quotacheck: Old file not found.
root@server1:/tmp# quotaon -avug
/dev/mapper/server1--vg-root [/]: group quotas turned on
/dev/mapper/server1--vg-root [/]: user quotas turned on
12. Instal BIND DNS Server
BIND dapat dipasang sebagai berikut:

apt-get -y install bind9 dnsutils haveged

Aktifkan dan mulai Daemon yang telah diprogram:

systemctl enable haveged


systemctl start haveged

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 goaccess

Buka /etc/cron.d/awstats sesudahnya ...

nano /etc/cron.d/awstats

... dan beri komentar semua yang ada di file itu:


# MAILTO = root

# * / 10 * * * * www-data [-x /usr/share/awstats/tools/update.sh] &&


/usr/share/awstats/tools/update.sh

# Hasilkan 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 pengguna shell dan cronjobs yang telah di-jailbreak 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

[murni-ftpd]
diaktifkan = benar
port = ftp
filter = pure-ftpd
logpath = / var / log / syslog
maxretry = 3

[tempat perlindungan merpati]


diaktifkan = benar
filter = dovecot
action = iptables-multiport [name = dovecot-pop3imap, port = "pop3,
pop3s, imap, imaps", protocol = tcp]
logpath = /var/log/mail.log
maxretry = 5

[postfix]
diaktifkan = benar
port = smtp
filter = postfix
logpath = /var/log/mail.log
maxretry = 3

Mulai ulang fail2ban setelah itu:

service 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
Penginstal mungkin menanyakan pertanyaan berikut:
Configure database for roundcube with dbconfig-common? <-- Yes
MySQL application password for roundcube: <-- Press 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, 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
[...]

Dan restart apache

service apache2 restart

Kemudian edit file konfigurasi config.inc.php RoundCube:

nano /etc/roundcube/config.inc.php

dan ubah host default menjadi localhost:


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

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/

Langkah selanjutnya adalah lari

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

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

>> Initial configuration


Operating System: Ubuntu 20.04.1 LTS (Focal Fossa)
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in "quit" (without the quotes) to stop the installer.

Select language (en,de) [en]: <-- Hit Enter


Installation mode (standard,expert) [standard]:  <-- Hit Enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld
[server1.canomi.com]:  <-- Hit Enter
MySQL server hostname [localhost]:  <-- Hit Enter
MySQL server port [3306]:  <-- Hit Enter
MySQL root username [root]:  <-- Hit Enter
MySQL root password []:  <-- Enter your MySQL root password
MySQL database to create [dbispconfig]:  <-- Hit Enter
MySQL charset [utf8]:  <-- Hit Enter
Configuring Postgrey
Configuring Postfix
Generating a 4096 bit RSA private key
.......................................................................++
................................................................................
........................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the   state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company
name or press enter
Organizational Unit Name (eg, section) []:  <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in
my case: server1.example.com
Email Address []:  <-- Hit Enter
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Metronome XMPP Server
writing new private key to 'localhost.key'
-----
Country Name (2 letter code) [AU]:  <-- Enter 2 letter country code
Locality Name (eg, city) []:  <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  <-- Enter company
name or press enter
Organizational Unit Name (eg, section) []:  <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) [server1.canomi.com]:  <-- Enter the
server hostname, in my case: server1.example.com
Email Address []:  <-- Hit Enter
Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]:
Admin password [admin]:
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n)
[y]:  <-- Hit Enter
Generating RSA private key, 4096 bit long modulus
.......................++
................................................................................
................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:  <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]:  <-- Enter the name of the   state
Locality Name (eg, city) []:  <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  <-- Enter company
name or press enter
Organizational Unit Name (eg, section) []:  <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []:  <-- Enter the server hostname, in
my case: server1.example.com
Email Address []:  <-- Hit Enter
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  <-- Hit Enter
An optional company name []:  <-- Hit Enter
writing RSA key

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/

Anda mungkin juga menyukai