GNU/Linux >> Belajar Linux >  >> Ubuntu

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

Tutorial ini menunjukkan penginstalan server hosting web Ubuntu 17.04 (Zesty Zapus) dengan Apache2, Postfix, Dovecot, Bind, dan PureFTPD untuk mempersiapkannya untuk penginstalan ISPConfig 3.1. Sistem yang dihasilkan akan menyediakan Web, Mail, Mailinglist, DNS dan Server FTP.

ISPConfig 3 adalah panel kontrol hosting web yang memungkinkan Anda untuk mengonfigurasi layanan berikut melalui browser web:server web Apache atau nginx, server email Postfix, server Courier atau Dovecot IMAP/POP3, server nama MySQL, BIND atau MyDNS, PureFTPd, SpamAssassin, ClamAV, dan banyak lagi. Pengaturan ini mencakup instalasi Apache (bukan Nginx), BIND (bukan MyDNS), dan Dovecot (bukan Courier).

Tutorial ini tentang Ubuntu 17.04, versi non-LTS (Dukungan Jangka Panjang). Sebagian besar pengguna lebih memilih versi LTS sebagai server yang mendapatkan pembaruan dan patch keamanan untuk waktu yang lebih lama. Rilis LTS terbaru adalah Ubuntu 16.04, tutorial ini juga ada di versi Ubuntu 16.04. Pertimbangkan baik-baik jika Anda membutuhkan paket terbaru (dan tidak memiliki masalah dengan periode dukungan yang singkat), maka lanjutkan dengan tutorial ini. Jika Anda membutuhkan dukungan lama, gunakan Tutorial Server Sempurna Ubuntu 16.04.

1. Catatan Awal

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

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

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

nano /etc/apt/sources.list
#

# deb cdrom:[Ubuntu-Server 17.04 _Zesty Zapus_ - Rilis amd64 (20170412)]/ zesty main terbatas

#deb cdrom:[Ubuntu-Server 17.04 _Zesty Zapus_ - Rilis amd64 (20170412)]/ zesty main terbatas

# Lihat http://help.ubuntu.com/community/UpgradeCatatan untuk cara meningkatkan ke
# versi terbaru dari distribusi.
deb http://de.archive.ubuntu.com/ubuntu/ zesty main terbatas
# deb-src http://de.archive.ubuntu.com/ubuntu/ zesty main terbatas

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

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

deb http ://security.ubuntu.com/ubuntu zesty-security batasan utama cted
# deb-src http://security.ubuntu.com/ubuntu zesty-security main terbatas
deb http://security.ubuntu.com/ubuntu zesty-security universe
# deb-src http://security.ubuntu.com/ubuntu zesty-security universe
deb http://security.ubuntu.com/ubuntu zesty-security multiverse
# deb-src http:// security.ubuntu.com/ubuntu zesty-security multiverse

Kemudian jalankan

apt-get update

untuk memperbarui database paket apt dan

apt-get upgrade

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

boot ulang

3. Ubah Shell Default

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

dpkg-konfigurasi ulang tanda hubung

Gunakan tanda hubung sebagai shell sistem default (/bin/sh)? <-- Tidak

Jika Anda tidak melakukannya, penginstalan ISPConfig akan gagal.

4. Nonaktifkan AppArmor

AppArmor adalah ekstensi keamanan (mirip dengan SELinux) yang seharusnya memberikan keamanan yang diperluas. Menurut pendapat saya, Anda tidak memerlukannya untuk mengkonfigurasi sistem yang aman, dan biasanya menyebabkan lebih banyak masalah daripada keuntungan (pikirkan setelah Anda melakukan pemecahan masalah selama seminggu karena beberapa layanan tidak berfungsi seperti yang diharapkan, dan kemudian Anda 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 hapus apparmor apparmor-utils

5. Sinkronkan Jam Sistem

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

apt-get -y install ntp

dan waktu sistem Anda akan selalu sinkron.

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

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

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

Pesan kesalahan:

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

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

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

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

Anda akan ditanya pertanyaan berikut:

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

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

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

nano /etc/postfix/master.cf

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

[...]pengajuan inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=ya -o smtpd_permit_resticated tolak # -O smtpd_reject_unlisted_recipient =no # -o smtpd_client_restrictions =$ mua_client_restrictions # -o smtpd_helo_restrictions =$ mua_helo_restrictions # -o smtpd_sender_restrictions =$ mua_sender_restrictions # -o smtpd_recipient_restrictions =permit_sasl_authenticated, menolak # -o milter_macro_daemon_name =ORIGINATINGsmtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -O smtpd_reject_unlisted_recipient =no # -o smtpd_client_restrictions =$ mua_client_restrictions # -o smtpd_helo_restrictions =$ mua_helo_restrictions # -o smtpd_sender_restrictions =$ mua_sender_restrictions # -o smtpd_recipient_restrictions =permit_sasl_authenticated, menolak # -o milter_macro_daemon_name =BERASAL [...] 

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

Mulai ulang Postfix sesudahnya:

service postfix restart

Kami ingin MySQL mendengarkan di semua antarmuka, bukan hanya localhost. Oleh karena itu, kami mengedit /etc/mysql/mariadb.conf.d/50-server.cnf dan mengomentari baris bind-address =127.0.0.1 dan menambahkan baris sql-mode="NO_ENGINE_SUBSTITUTION" :

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

sql-mode="NO_ENGINE_SUBSTITUTION"

[...]

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

Kemudian kita restart MariaDB:

layanan mysql restart

Sekarang periksa apakah jaringan diaktifkan. Jalankan

netstat -ketuk | grep mysql

Outputnya akan terlihat seperti ini:

[email protected]:~# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 28036/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 yang memuat pustaka filter SpamAssassin secara internal, jadi kami dapat menghentikan SpamAssassin untuk mengosongkan sebagian RAM:

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

Untuk memulai penggunaan ClamAV:

freshclam
layanan clamav-daemon dimulai

Kesalahan berikut dapat diabaikan saat menjalankan freshclam pertama.

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

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

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

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

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

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

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

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

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

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