GNU/Linux >> Belajar Linux >  >> Ubuntu

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

Tutorial ini menunjukkan langkah-langkah untuk menginstal server Ubuntu 18.04 (Bionic Beaver) dengan Nginx, PHP, MariaDB, Postfix, pure-ftpd, BIND, Dovecot dan ISPConfig 3.1. ISPConfig adalah panel kontrol hosting web yang memungkinkan Anda mengonfigurasi layanan yang diinstal melalui browser web. Pengaturan ini menyediakan server hosting lengkap dengan web, email (termasuk filter spam dan antivirus), Database, FTP, dan layanan DNS.

1. Catatan Awal

Dalam tutorial ini, saya akan menggunakan hostname server1.example.com dengan alamat IP 192.168.1.100 dan gateway 192.168.1.1 untuk konfigurasi jaringan. Pengaturan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu. Sebelum melanjutkan lebih jauh, Anda harus memiliki instalasi dasar minimal Ubuntu 18.04 seperti yang dijelaskan dalam tutorial ini.

Langkah-langkah dalam tutorial ini harus dijalankan sebagai pengguna root, jadi saya tidak akan menambahkan "sudo" di depan perintah. Login sebagai pengguna root ke server Anda sebelum melanjutkan atau menjalankan:

sudo -s

untuk menjadi root ketika Anda masuk sebagai pengguna lain di shell.

Perintah untuk mengedit file akan menggunakan editor "nano", Anda dapat menggantinya dengan editor pilihan Anda. Nano adalah editor file yang mudah digunakan untuk shell. Jika Anda ingin menggunakan nano dan belum menginstalnya, jalankan:

apt-get install nano

2. 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. Seharusnya terlihat seperti ini:

nano /etc/apt/sources.list
#

# deb cdrom:[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Rilis amd64 (20180425.1)]/ bionic main terbatas

#deb cdrom:[Ubuntu- Server 18.04 LTS _Bionic Beaver_ - Rilis amd64 (20180425.1)]/ bionic main terbatas

# Lihat http://help.ubuntu.com/community/UpgradeCatatan untuk cara meningkatkan ke
# yang lebih baru versi distribusi.
deb http://de.archive.ubuntu.com/ubuntu/ bionic main terbatas
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic main terbatas

## Pembaruan perbaikan bug utama yang dihasilkan setelah rilis final distribusi
##.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates utama dibatasi
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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/ bionic universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic universe
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe

## N.B. perangkat lunak dari repositori ini SEPENUHNYA TIDAK DIDUKUNG oleh tim
## Ubuntu, dan mungkin tidak memiliki 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/ bionic multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse

## N.B. perangkat lunak dari repositori ini mungkin belum diuji
## secara ekstensif seperti yang terdapat dalam rilis utama, meskipun ini menyertakan
## versi terbaru dari beberapa aplikasi yang mungkin menyediakan fitur yang berguna.
# # Juga, harap perhatikan bahwa perangkat lunak di backport TIDAK AKAN menerima ulasan
## atau pembaruan dari tim keamanan Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-backports multiverse alam semesta terbatas utama
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-backports multiverse alam semesta terbatas utama

## Batalkan komentar pada dua baris berikut untuk ditambahkan perangkat lunak dari repositori 'partner' Canonical
##.
## Perangkat lunak ini bukan bagian dari Ubuntu, tetapi ditawarkan oleh Canonical dan
## vendor masing-masing sebagai layanan untuk pengguna Ubuntu.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

deb http ://security.ubuntu.com/ubuntu bionic-security r utama estricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main terbatas
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http:// security.ubuntu.com/ubuntu bionic-security multiverse

Kemudian jalankan:

apt-get update

Untuk memperbarui database paket apt dan kemudian:

apt-get upgrade

untuk menginstal pembaruan terbaru (jika ada). Jika Anda melihat kernel baru terinstal sebagai bagian dari pembaruan, Anda harus me-reboot sistem sesudahnya:

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. Kami akan memeriksa silang jika sudah terpasang dan menghapusnya jika perlu. 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 mengetahui 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 remove apparmor apparmor-utils

5. Sinkronkan Jam Sistem

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

apt-get -y install ntp ntpdate

dan waktu sistem Anda akan selalu sinkron.

6. Instal Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, 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.

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 dovecot-lmtpd  sudo

MariaDB adalah garpu dari server database MySQL, yang dikembangkan oleh pengembang MySQL asli Monty Widenius. Menurut tes yang ditemukan di internet, MariaDB lebih cepat daripada MySQL dan pengembangannya berlangsung lebih cepat, oleh karena itu, sebagian besar Distribusi Linux menggantikan MySQL dengan MariaDB sebagai server database "MySQL sama" default. Jika Anda lebih memilih MySQL daripada MariaDB, ganti "mariadb-client mariadb-server" pada perintah di atas dengan "mysql-client mysql-server".

Anda akan ditanya pertanyaan berikut:

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

Selanjutnya buka TLS/SSL dan port pengiriman di Postfix:

nano /etc/postfix/master.cf

Batalkan komentar 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 - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=ya -o smtpd_client_restrictions_restrictions=permit # -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 - - - - 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 MariaDB/MySQL mendengarkan di semua antarmuka, bukan hanya localhost. Oleh karena itu kami mengedit /etc/mysql/mariadb.conf.d/50-server.cnf (untuk MariaDB atau /etc/mysql/my.cnf (untuk MySQL) dan mengomentari baris bind-address =127.0.0.1:

MariaDB

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 di read, dalam contoh ini kata sandinya adalah "howtoforge".

# Secara otomatis dibuat untuk skrip Debian. JANGAN SENTUH!
[klien]
host =localhost
pengguna =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

Kemudian kita restart MariaDB:

layanan mysql restart

Nama layanan systemd untuk MariaDB dan MySQL adalah "mysql", jadi perintah restart sama untuk kedua server database.

MySQL

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

Kemudian kita restart MySQL:

layanan mysql restart

Nama layanan systemd untuk MariaDB dan MySQL adalah "mysql", jadi perintah restart sama untuk kedua server database.

Untuk MySQL dan MariaDB:

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 12210/mysqld

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 libdbd-mysql-perl

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

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

Untuk memperbarui tanda tangan antivirus ClamAV dan memulai layanan Clamd. Proses pembaruan dapat memakan waktu cukup lama, jangan diganggu.

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

Program amavisd-new saat ini memiliki bug di Ubuntu 18.04 yang mencegah email tersebut ditandatangani dengan Dkim dengan benar. Jalankan perintah berikut untuk menambal amavisd-new.

cd /tmp
wget https://git.ispconfig.org/ispconfig/ispconfig3/raw/stable-3.1/helper_scripts/ubuntu-amavisd-new-2.11.patch
cd /usr/ sbin
cp -pf amavisd-new amavisd-new_bak
patch

Jika Anda mendapatkan kesalahan untuk perintah 'patch' terakhir, maka Ubuntu mungkin telah memperbaiki masalah tersebut untuk sementara, jadi sebaiknya aman untuk mengabaikan kesalahan itu.

7.1 Instal Server Metronom XMPP (opsional)

Server XMPP Metronom menyediakan server obrolan XMPP. Langkah ini opsional, jika Anda tidak memerlukan server obrolan, maka Anda dapat melewati langkah ini. Tidak ada fungsi ISPConfig lain yang bergantung pada perangkat lunak ini.

Instal paket berikut dengan apt.

apt-get -y install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks 
luarocks install lpc

Tambahkan pengguna shell untuk Metronom.

adduser --no-create-home --disabled-login --gecos metronom 'Metronome'

Unduh Metronom ke direktori /opt dan kompilasi.

cd /opt; git clone https://github.com/maranda/metronome.git metronom
cd ./metronom; ./configure --ostype=debian --prefix=/usr
make
make install

Metronom sekarang telah diinstal ke /opt/metronom.


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 16.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD dan ISPConfig 3.1)

  1. Server Sempurna - Ubuntu 14.10 (nginx, BIND, Dovecot, ISPConfig 3)

  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