GNU/Linux >> Belajar Linux >  >> Ubuntu

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

Tutorial ini menunjukkan langkah-langkah untuk menginstal server Ubuntu 16.04 (Xenial Xerus) 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 melangkah lebih jauh, Anda harus memiliki instalasi dasar minimal Ubuntu 16.04 seperti yang dijelaskan dalam tutorial.

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 16.04 LTS _Xenial Xerus_ - Rilis amd64 (20160420)]/ xenial main terbatas

#deb cdrom:[Ubuntu- Server 16.04 LTS _Xenial Xerus_ - Rilis amd64 (20160420)]/ xenial main dibatasi

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

## Pembaruan perbaikan bug utama yang dihasilkan setelah rilis final distribusi
##.
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates utama dibatasi
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates utama dibatasi

## 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
## universe TIDAK AKAN menerima ulasan atau pembaruan apa pun dari tim keamanan Ubuntu
##.
deb http://de.archive.ubuntu.com/ ubuntu/ xenial universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial universe
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-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/ xenial multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-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/ xenial-backports multiverse alam semesta terbatas utama
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-backports multiverse alam semesta terbatas utama
## Batalkan komentar pada dua baris berikut untuk menambahkan perangkat lunak dari Canonical
## repositori 'partner'.
## 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 xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://security .ubuntu.com/ubuntu xenial-security batasan utama ted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main terbatas
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http:// security.ubuntu.com/ubuntu xenial-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 [...] 

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

Kemudian kita restart MariaDB:

layanan mysql restart

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

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

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 [::]:* LISTEN 13796/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 zoo 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

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.

service clamav-freshclam restart
service clamav-daemon start

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 14.10 (nginx, BIND, Dovecot, 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 - Ubuntu 17.10 (Artful Aardvark) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

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