GNU/Linux >> Belajar Linux >  >> Debian

Server Sempurna - Debian 10 (Buster) dengan Apache, BIND, Dovecot, PureFTPD, dan ISPConfig 3.2

Tutorial ini menunjukkan cara menyiapkan server Debian 10 (dengan Apache2, BIND, Dovecot) untuk instalasi ISPConfig 3.2, dan cara menginstal ISPConfig. Panel kontrol hosting web ISPConfig 3 memungkinkan Anda untuk mengonfigurasi layanan berikut melalui browser web:server web Apache atau nginx, server email Postfix, server Courier atau Dovecot IMAP/POP3, server nama MySQL, BIND atau MyDNS, PureFTPd, SpamAssassin, ClamAV, dan masih banyak lagi. Pengaturan ini mencakup Apache (bukan nginx), BIND, dan Dovecot.

1 Catatan Awal

Dalam tutorial ini, saya akan menggunakan hostname 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 minimal penginstalan Debian 10. Ini mungkin gambar minimal Debian dari penyedia Hosting Anda atau Anda menggunakan tutorial Server Debian Minimal untuk menyiapkan sistem dasar.

Semua perintah di bawah ini dijalankan sebagai pengguna root. Masuk sebagai pengguna root secara langsung atau masuk sebagai pengguna biasa Anda lalu gunakan perintah

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 Instal server SSH (Opsional)

Jika Anda tidak menginstal server OpenSSH selama instalasi sistem, Anda dapat melakukannya sekarang:

apt-get install ssh openssh-server

Mulai sekarang Anda dapat menggunakan klien SSH seperti Putty dan terhubung dari workstation Anda ke server Debian 9 Anda dan ikuti langkah selanjutnya dari tutorial ini.

3 Instal editor teks shell (Opsional)

Kami akan menggunakan nano editor teks dalam tutorial ini. Beberapa pengguna lebih suka editor vi klasik, oleh karena itu kami akan menginstal kedua editor di sini. Program vi default memiliki beberapa perilaku aneh di Debian dan Ubuntu; untuk mengatasinya, kita install vim-nox:

apt-get install nano vim-nox

Jika vi adalah editor favorit Anda, ganti nano dengan vi pada perintah berikut untuk mengedit file.

4 Konfigurasikan Nama Inang

Nama host server Anda harus berupa subdomain seperti "server1.example.com". Jangan gunakan nama domain tanpa bagian subdomain seperti "example.com" sebagai nama host karena ini akan menyebabkan masalah dengan pengaturan 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 nama host server1.example.com kami, file akan terlihat seperti ini:

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1# Baris berikut diinginkan untuk host yang mendukung IPv6::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6 -allrouter

Kemudian edit file /etc/hostname:

nano /etc/hostname

Ini hanya akan berisi bagian subdomain, dalam kasus kami:

server1

Terakhir, boot ulang server untuk menerapkan perubahan:

systemctl reboot

Masuk lagi dan periksa apakah nama host sudah benar sekarang dengan perintah berikut:

nama host
nama host -f

Outputnya akan seperti ini:

[email protected]:/tmp# hostname
server1
[email protected]:/tmp# hostname -f
server1.example.com

5 Perbarui Instalasi Debian Anda

Pertama, pastikan bahwa /etc/apt/sources.list Anda berisi repositori buster/updates (ini memastikan Anda selalu mendapatkan pembaruan keamanan terbaru), dan bahwa repositori contrib dan non-free diaktifkan karena beberapa paket yang diperlukan tidak di repositori utama.

nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/debian-security buster/updates kontribusi utama tidak bebas
deb-src http://security.debian.org/debian-security buster/updates kontribusi utama tidak gratis

Jalankan:

apt-get update

Untuk memperbarui database paket yang tepat

apt-get upgrade

dan untuk menginstal pembaruan terbaru (jika ada).

6. 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.

7 Sinkronisasi Jam Sistem

Sebaiknya sinkronisasi jam sistem dengan NTP (n jaringan t waktu p rotocol) server melalui Internet. Jalankan saja

apt-get -y install ntp

dan waktu sistem Anda akan selalu sinkron.

8 Instal Postfix, Dovecot, MariaDB, rkhunter, dan Binutils

Kita dapat menginstal Postfix, Dovecot, MariaDB sebagai alternatif 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 dovecot-lmtpd sudo curl

Anda akan ditanya pertanyaan berikut:

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

Untuk mengamankan instalasi MariaDB dan menonaktifkan database pengujian, jalankan perintah ini:

mysql_secure_installation

Jawablah pertanyaan sebagai berikut:

Ubah kata sandi root? [Y/n] <-- y
Sandi baru:<-- Masukkan sandi root MariaDB baru
Masukkan kembali sandi baru:<-- Ulangi sandi root MariaDB
Hapus pengguna anonim ? [Y/n] <-- y
Larang login root dari jarak jauh? [Y/n] <-- y
Hapus database pengujian dan akses ke sana? [Y/n] <-- y
Muat ulang tabel hak istimewa sekarang? [Y/n] <-- y

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

nano /etc/postfix/master.cf

Batalkan komentar pada bagian kiriman dan smtps sebagai berikut dan tambahkan baris jika perlu sehingga bagian file master.cf ini terlihat persis seperti di bawah ini. PENTING: Hapus # di depan baris yang dimulai dengan smtps dan submit juga dan bukan hanya dari baris -o setelah baris ini!

[...]pengajuan inet n - - - - smtpd
-o syslog_name=postfix/pengajuan
-o smtpd_tls_security_level=enkripsi
-o smtpd_sasl_auth_enable=ya
- o smtpd_client_restrictions =permit_sasl_authenticated, tolak
# -o smtpd_reject_unlisted_reciPient =no
# -o smtpd_client_restrictions =$perpikon_cestrictions
; br /># -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - -=_ - - -o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o recipt =$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_r estrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,tolak
# -o milter_macro_daemon_name=ORIGINATING[...]

Mulai ulang Postfix setelahnya:

systemctl restart postfix

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 dengan menambahkan # di depannya.

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

[...]

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".

# 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

Untuk mencegah kesalahan 'Kesalahan dalam menerima:Terlalu banyak file yang terbuka ' kami akan menetapkan batas file terbuka yang lebih tinggi untuk MariaDB sekarang.

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 -p /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
systemctl restart mariadb

Sekarang periksa apakah jaringan diaktifkan. Jalankan

netstat -ketuk | grep mysql

Outputnya akan terlihat seperti ini:

[email protected]:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* DENGARKAN 16623/mysqld

9 Instal Amavisd-new, SpamAssassin, dan ClamAV

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

apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon li -socket-ssl-perl libnet-ident-perl zip libnet-dns-perl libdbd-mysql-perl postgrey

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

systemctl stop spamassassin
systemctl nonaktifkan spamassassin

10 Instal Apache Web Server dan PHP

Apache2, PHP, FCGI, suExec, Pear, dan mcrypt dapat diinstal sebagai berikut:

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7 .3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick lirubby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3- fpm php7.3-opcache php-apcu libapache2-reload-perl

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 rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias

Untuk memastikan bahwa server tidak dapat diserang melalui kerentanan HTTPOXY, kami akan menonaktifkan header HTTP_PROXY di Apache secara global dengan menambahkan file konfigurasi /etc/apache2/conf-available/httpoxy.conf.

Catatan: Kerentanan bernama httpoxy (tanpa 'r') dan oleh karena itu file tempat kami menambahkan konfigurasi untuk mencegahnya diberi nama httpoxy.conf dan bukan httproxy.conf, jadi tidak ada 'r' yang hilang dalam nama file.

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

Tempel konten berikut ke file:

 RequestHeader menghapus Proxy lebih awal

Dan aktifkan modul dengan menjalankan:

a2enconf httpoxy
systemctl restart apache2

11 Instal Let's Encrypt

ISPConfig menggunakan acme.sh sekarang sebagai klien Let's Encrypt. Instal acme.sh menggunakan perintah berikut:

curl https://get.acme.sh | sh -s

12 Instal Mailman

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

apt-get install mailman

Pilih setidaknya satu bahasa, mis.:

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

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 pengirim awal: <-- sandi admin untuk daftar pengirim surat
Untuk menyelesaikan pembuatan milis, Anda harus mengedit file /etc/alias (atau
setara) dengan 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- pergi:        "|/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-unsub scribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

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

[email protected] :~#

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 konfirmasi 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-request:"|/ 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

dan mulai ulang Postfix:

systemctl mulai ulang postfix

Terakhir, kita harus mengaktifkan konfigurasi Mailman Apache:

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

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

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

Mulai ulang Apache setelahnya:

systemctl restart apache2

Kemudian jalankan daemon Mailman:

systemctl restart mailman

13 Instal PureFTPd dan Kuota

PureFTPd dan kuota dapat diinstal dengan perintah berikut:

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

Buat file dhparam untuk pure-ftpd:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

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=true[...]

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) [Some-State]:<-- Masukkan Nama Negara Bagian atau Provinsi Anda.
Nama Lokalitas (misalnya, kota) []:<-- Masukkan Kota Anda.
Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]:<-- Masukkan Nama Organisasi Anda (misalnya, nama perusahaan Anda).
Nama Unit Organisasi (misalnya, bagian) []:<-- Masukkan Nama Unit Organisasi Anda (misalnya, "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:

systemctl restart pure-ftpd-mysql

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).
#
#
# / berada di /dev/sda1 selama instalasi
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 error=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap aktif /dev /sda5 selama instalasi
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Untuk mengaktifkan kuota, jalankan perintah berikut:

mount -o remount /
quotacheck -avugm
quotaon -avug

14 Instal Server DNS BIND

BIND dapat diinstal sebagai berikut:

apt-get install bind9 dnsutils

Jika server Anda adalah mesin virtual, maka sangat disarankan untuk menginstal daemon yang telah dimiliki untuk mendapatkan entropi yang lebih tinggi untuk penandatanganan DNSSEC. Anda juga dapat menginstal hasged di server nonvirtual, tidak ada salahnya.

apt-get install haged

Penjelasan tentang topik tersebut dapat ditemukan di sini.

15 Instal Webalizer, AWStats, dan GoAccess

Webalizer dan AWStats dapat diinstal sebagai berikut:

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

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# Menghasilkan statis laporan:#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

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 -
apt-get update
apt-get install goaccess

16 Instal Jailkit

Jailkit diperlukan hanya jika Anda ingin chroot pengguna SSH. Itu dapat diinstal sebagai berikut:

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit- 2.20
echo 5> debian/compat
./debian/rules biner

Anda sekarang dapat menginstal paket Jailkit .deb sebagai berikut:

cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*

17 Instal fail2ban dan Firewall UFW

Ini opsional tetapi disarankan, karena monitor ISPConfig mencoba menampilkan log:

apt-get install fail2ban

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

nano /etc/fail2ban/jail.local

Dan tambahkan konfigurasi berikut ke dalamnya.

[pure-ftpd]
enabled =true
port =ftp
filter =pure-ftpd
logpath =/var/log/syslog
maxretry =3

[dovecot]
enabled =true
filter =dovecot
logpath =/var/log/mail.log
maxretry =5

[postfix-sasl]
enabled =true
port =smtp
filter =postfix[mode=auth]
logpath =/var/log/mail.log
maxretry =3

Mulai ulang fail2ban setelahnya:

systemctl restart fail2ban

Untuk menginstal firewall UFW, jalankan perintah apt ini:

apt-get install ufw

18 Instal Alat Administrasi Database PHPMyAdmin

Sejak Debian 10, PHPMyAdmin tidak tersedia sebagai paket .deb lagi. Oleh karena itu kami akan menginstalnya dari sumber.

Buat folder untuk PHPMyadmin:

mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var /lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setup

Buka direktori /tmp dan unduh sumber PHPMyAdmin:

cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

Buka paket file arsip yang diunduh dan pindahkan file ke folder /usr/share/phpmyadmin dan bersihkan direktori /tmp.

tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9. 0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languages

Buat file konfigurasi baru untuk PHPMyaAdmin berdasarkan contoh file yang disediakan:

cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php

Buka file konfigurasi dengan editor nano:

nano /usr/share/phpmyadmin/config.inc.php

Tetapkan kata sandi yang aman (rahasia blowfish) yang panjangnya harus 32 karakter:

$cfg['blowfish_secret'] ='bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* ANDA HARUS MENGISI INI UNTUK COOKIE AUTH! */

Jangan gunakan contoh rahasia blowfish saya, tetapkan sendiri!

Kemudian tambahkan baris untuk mengatur direktori yang akan digunakan PHPMyAdmin untuk menyimpan file-file sementara:

$cfg['TempDir'] ='/var/lib/phpmyadmin/tmp';

Selanjutnya, kita buat file konfigurasi Apache untuk PHPMyAdmin dengan membuka file baru di editor nano:

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

Rekatkan konfigurasi berikut ke dalam file dan simpan.

# konfigurasi default Apache phpMyAdmin

Alias ​​/phpmyadmin /usr/share/phpmyadmin


Opsi FollowSymLinks
DirectoryIndex index.php


AddType application/x-httpd-php .php

php_flag magic_quotes_gpc Mati
php_flag track_vars Aktif
php_flag register_globals Nonaktif
php_value include_path .




# Otorisasi untuk penyiapan


AuthType Basic
AuthName "Pengaturan phpMyAdmin"
AuthUserFile /etc/phpmyadmin/htpasswd. setup

Memerlukan valid-user


# Melarang akses web ke direktori yang tidak membutuhkannya

Order Deny,Allow
Deny from All


Pesanan Ditolak, Izinkan
Tolak fr om Semua

Aktifkan konfigurasi dan restart Apache.

a2enconf phpmyadmin
systemctl restart apache2

Pada langkah selanjutnya, kita akan mengkonfigurasi penyimpanan konfigurasi phpMyadmin (database).

Masuk ke MariaDB sebagai pengguna root:

mysql -u root -p

Di shell MariaDB, buat database baru untuk PHPMyAdmin:

MariaDB [(none)]> BUAT DATABASE phpmyadmin;

Kemudian buat pengguna baru:

MariaDB [(none)]> BUAT PENGGUNA 'pma'@'localhost' DIIDENTIFIKASI DENGAN 'mypassword';

Ganti kata mypassword dengan kata sandi aman pilihan Anda dalam perintah di atas dan di bawah, gunakan kata sandi yang sama dua kali. Kemudian berikan akses pengguna ke database ini dan muat ulang izin database.

MariaDB [(none)]> HIBAH SEMUA HAK ISTIMEWA DI phpmyadmin.* KEPADA 'pma'@'localhost' DIIDENTIFIKASI DENGAN 'mypassword' DENGAN GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> KELUAR;

Terakhir, muat tabel SQL ke dalam database:

mysql -u root -p phpmyadmin  

Masukkan kata sandi root MariaDB berdasarkan permintaan.

Yang harus kita lakukan sekarang adalah mengatur detail pengguna phpmyadmin di file konfigurasi. Buka file di editor nano lagi:

nano /usr/share/phpmyadmin/config.inc.php

Gulir ke bawah hingga Anda melihat baris di bawah dan edit:

/* Pengguna digunakan untuk memanipulasi dengan penyimpanan */
$cfg['Servers'][$i]['controlhost'] ='localhost';
$cfg['Servers'][ $i]['controlport'] ='';
$cfg['Servers'][$i]['controluser'] ='pma';
$cfg['Servers'][$ i]['controlpass'] ='mypassword';

/* Penyimpanan database dan tabel */
$cfg['Servers'][$i]['pmadb'] =' phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] ='pma__bookmark';
$cfg['Servers'][$i]['relation'] =' pma__relation';
$cfg['Servers'][$i]['table_info'] ='pma__table_info';
$cfg['Servers'][$i]['table_coords'] =' pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] ='pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] =' pma__column_info';
$cfg['Servers'][$i]['history'] ='pma__history';
$cfg['Servers'][$i]['table_uiprefs'] =' pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] ='pma__tracking';
$cfg['Servers'][$i]['userconfig'] =' pma__userconfig';
$cfg['Servers'][$i]['recent'] ='pma__recent';
$cfg['Servers'][$i]['favorite'] ='pma__favorite';
$cfg['Servers'][$i]['users'] ='pma__users';
$cfg['Servers'][$i]['usergroups'] ='pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] ='pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] ='pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] ='pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] ='pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] ='pma__export_templates';

Saya telah menandai garis merah yang telah saya edit. Ganti sandi saya dengan kata sandi yang Anda pilih untuk pengguna phpmyadmin. Perhatikan bahwa // di depan baris juga telah dihapus!

19 Instal RoundCube Webmail (opsional)

Dalam bab ini, kita akan menginstal klien webmail RoundCube. Pertama, kita harus membuat database untuk Roundcube secara manual karena saat ini ada masalah di penginstal RoundCube Debian yang menyebabkannya gagal membuat database secara otomatis. Jalankan perintah ini untuk membuat database:

echo "BUAT DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf

Kemudian instal RoundCube dengan perintah ini:

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins

Pemasang akan menanyakan pertanyaan berikut:

Konfigurasi database untuk roundcube dengan dbconfig.common? <-- ya
Kata sandi aplikasi MySQL untuk roundcube:<-- tekan enter

Kemudian edit file RoundCube /etc/roundcube/config.inc.php dan sesuaikan beberapa setelan:

nano /etc/roundcube/config.inc.php

Setel default_host ke localhost dan smtp_server.

$config['default_host'] ='localhost';
$config['smtp_server'] ='localhost';
$config['smtp_port']  =25;

Kemudian edit file konfigurasi Apache RoundCube /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

Dan tambahkan baris alias untuk apache /webmail alias dan satu untuk /roundcube, Anda dapat menambahkan baris tepat di awal file. CATATAN:Jangan gunakan /mail sebagai alias atau modul email ispconfig akan berhenti bekerja!

Alias ​​/roundcube /var/lib/roundcube
Alias ​​/webmail /var/lib/roundcube

Kemudian muat ulang Apache:

systemctl reload apache2

Sekarang Anda dapat mengakses RoundCube sebagai berikut:

http://192.168.0.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (setelah Anda menginstal ISPConfig, lihat bab selanjutnya)

Ada beberapa plugin untuk mengintegrasikan RoundCube Webmail dengan ISPConfig, lihat di sini untuk petunjuk pemasangan plugin ISPConfig RoundCube.

20 Unduh ISPConfig 3

Untuk menginstal ISPConfig 3 dari versi rilis terbaru, lakukan ini:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

21 Instal ISPConfig

Langkah selanjutnya adalah menjalankan penginstal ISPConfig.

php -q install.php

Ini akan memulai penginstal ISPConfig 3. Pemasang akan mengonfigurasi semua layanan seperti Postfix, Dovecot, dll. untuk Anda. Penyiapan manual seperti yang diperlukan untuk ISPConfig 2 (panduan penyiapan sempurna) tidak diperlukan.

# php -q install.php

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

>> Konfigurasi awal
Sistem Operasi:Debian 10.0 (Buster) atau kompatibel
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.example.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
layanan [INFO] Metronome XMPP Server tidak terdeteksi
Mengonfigurasi Firewall Ubuntu
Mengonfigurasi Fail2ban
layanan [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

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, 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 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.

21.1 ISPConfig 3 Manual

Untuk mempelajari cara menggunakan ISPConfig 3, sangat disarankan untuk mendownload Panduan ISPConfig 3.

Pada lebih dari 300 halaman, ini mencakup konsep di balik ISPConfig (admin, reseller, klien), menjelaskan cara menginstal dan memperbarui ISPConfig 3, menyertakan referensi untuk semua formulir dan bidang formulir di ISPConfig bersama dengan contoh input yang valid, dan memberikan tutorial untuk tugas paling umum di ISPConfig 3. Ini juga menjelaskan cara membuat server Anda lebih aman dan dilengkapi dengan bagian pemecahan masalah di bagian akhir.

22 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

Nama pengguna: root
Sandi:howtoforge

Masuk ISPConfig

Nama pengguna:admin
Sandi: admin

Masuk MySQL

Nama pengguna:root
Kata sandi:howtoforge

IP VM adalah 192.168.0.100, dapat diubah di file /etc/network/interfaces. Harap ubah semua kata sandi di atas untuk mengamankan mesin virtual.

  • Debian:http://www.debian.org/
  • ISPConfig:http://www.ispconfig.org/

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

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

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

  1. Server Sempurna - Ubuntu 15.10 (Wily Werewolf) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3

  2. Server Sempurna CentOS 7.2 dengan Apache, Postfix, Dovecot, Pure-FTPD, BIND 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 CentOS 7.3 dengan Apache, Postfix, Dovecot, Pure-FTPD, BIND dan ISPConfig 3.1

  2. Server Sempurna CentOS 7.4 dengan Apache, Postfix, Dovecot, Pure-FTPD, BIND dan ISPConfig 3.1

  3. Server Sempurna CentOS 7.6 dengan Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND dan ISPConfig 3.1