GNU/Linux >> Belajar Linux >  >> Cent OS

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

Tutorial ini menunjukkan penginstalan ISPConfig 3.1 pada server CentOS 7.6 (64Bit). ISPConfig adalah panel kontrol hosting web yang memungkinkan Anda mengonfigurasi layanan berikut melalui browser web:server web Apache, PHP 7.2, server email Postfix, MySQL, server nama BIND, PureFTPd, SpamAssassin, ClamAV, Mailman, dan banyak lagi.

1 Persyaratan

Untuk menginstal sistem seperti itu, Anda memerlukan yang berikut:

  • Sistem server minimal Centos 7.6. Ini bisa berupa server yang diinstal dari awal seperti yang dijelaskan dalam tutorial server minimal Centos 7 kami atau server virtual atau root-server dari perusahaan hosting yang menginstal minimal Centos 7.6.
  • Koneksi internet yang cepat.

2 Catatan Awal

Dalam tutorial ini, saya menggunakan hostname server1.example.com dengan alamat IP 192.168.0.100 dan gateway 192.168.0.1. Setelan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu.

3 Siapkan server

Menyetel tata letak keyboard

Jika tata letak keyboard server tidak cocok dengan keyboard Anda, Anda dapat beralih ke keyboard kanan (dalam kasus saya "de" untuk tata letak keyboard Jerman, dengan perintah localectl:

localectl set-keymap de

Untuk mendapatkan daftar semua peta kunci yang tersedia, jalankan:

localectl list-keymaps

Saya ingin menginstal ISPConfig di akhir tutorial ini, ISPConfig dikirimkan dengan skrip firewall Bastille yang akan saya gunakan sebagai firewall, oleh karena itu saya menonaktifkan firewall CentOS default sekarang. Tentu saja, Anda bebas untuk membiarkan firewall CentOS menyala dan mengonfigurasinya sesuai kebutuhan Anda (tetapi Anda tidak boleh menggunakan firewall lain di kemudian hari karena kemungkinan besar akan mengganggu firewall CentOS).

Jalankan...

yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.service

untuk menghentikan dan menonaktifkan firewall CentOS. Tidak apa-apa jika Anda mendapatkan kesalahan di sini, ini hanya menunjukkan bahwa firewall tidak diinstal.

Maka Anda harus memeriksa apakah firewall benar-benar telah dinonaktifkan. Untuk melakukannya, jalankan perintah:

iptables -L

Outputnya akan terlihat seperti ini:

[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Atau gunakan perintah firewall-cmd:

firewall-cmd --state
[[email protected] ~]# firewall-cmd --state
not running
[[email protected] ~]#

Sekarang saya akan menginstal editor konfigurasi jaringan dan editor berbasis shell "nano" yang akan saya gunakan pada langkah selanjutnya untuk mengedit file konfigurasi:

yum -y install nano wget NetworkManager-tui yum-utils

Jika Anda tidak mengonfigurasi kartu jaringan Anda selama penginstalan, Anda dapat melakukannya sekarang. Jalankan...

nmtui

... dan pergi ke Edit koneksi:

Pilih antarmuka jaringan Anda:

Kemudian isi detail jaringan Anda - nonaktifkan DHCP dan isi alamat IP statis, netmask, gateway Anda, dan satu atau dua server nama, lalu tekan Ok:

Selanjutnya pilih OK untuk mengonfirmasi perubahan yang Anda buat di pengaturan jaringan

dan Keluar untuk menutup alat konfigurasi jaringan nmtui.

Anda harus menjalankan

ifconfig

sekarang untuk memeriksa apakah penginstal mendapatkan alamat IP Anda dengan benar:

[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x20<link>
inet6 2003:c2:9731:a445:20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x0<global>
ether 00:0c:29:e5:5b:47 txqueuelen 1000 (Ethernet)
RX packets 227784 bytes 317714901 (302.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 205574 bytes 23608521 (22.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[[email protected] ~]#

Jika kartu jaringan Anda tidak muncul di sana, maka itu tidak diaktifkan saat boot. Dalam hal ini, buka file /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

dan atur ONBOOT ke ya:

[...]
ONBOOT=yes
[...]

dan reboot server.

Periksa /etc/resolv.conf Anda jika daftar semua server nama yang telah Anda konfigurasikan sebelumnya:

cat /etc/resolv.conf

Jika server nama tidak ada, jalankan

nmtui

dan tambahkan lagi server nama yang hilang.

Sekarang, ke konfigurasi...

Menyesuaikan /etc/hosts dan /etc/hostname

Selanjutnya, kita akan mengedit /etc/hosts. Jadikan seperti ini:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100 server1.example.com server1

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Setel nama host di file /etc/hostname. File harus berisi nama domain yang sepenuhnya memenuhi syarat (misalnya server1.example.com dalam kasus saya) dan bukan hanya nama pendek seperti "server1". Buka file dengan editor nano:

nano /etc/hostname

Dan atur nama host di file tersebut.

server1.example.com

Simpan file dan keluar dari nano.

Setel SELinux ke permisif

SELinux adalah ekstensi keamanan CentOS yang seharusnya memberikan keamanan yang diperluas. ISPConfig tidak dikirimkan dengan kumpulan aturan SELinux, oleh karena itu saya menyetelnya ke permisif (ini adalah suatu keharusan jika Anda ingin menginstal ISPConfig nanti).

Edit /etc/selinux/config dan atur SELINUX=permissive:

nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Setelah itu kita harus me-reboot sistem:

reboot

4 Aktifkan Repositori Tambahan dan Instal Beberapa Software

Pertama, kami mengimpor kunci GPG untuk paket perangkat lunak:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Kemudian kami mengaktifkan repositori EPEL pada sistem CentOS kami karena banyak paket yang akan kami instal selama tutorial ini tidak tersedia di repositori resmi CentOS 7:

yum -y install epel-release

Kemudian kami memperbarui paket kami yang ada di sistem:

yum -y update

Sekarang kita install beberapa paket software yang dibutuhkan nantinya:

yum -y groupinstall 'Development Tools'

5 Kuota

(Jika Anda telah memilih skema partisi yang berbeda dari saya, Anda harus menyesuaikan bab ini sehingga kuota berlaku untuk partisi yang Anda butuhkan.)

Untuk memasang kuota, kita jalankan perintah ini:

yum -y install quota

Sekarang kita periksa apakah kuota sudah diaktifkan untuk sistem file tempat situs web (/var/www) dan data maildir (var/vmail) disimpan. Dalam contoh pengaturan ini, saya memiliki satu partisi root besar, jadi saya mencari ' / ':

mount | grep ' / '
[[email protected] ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[[email protected] ~]#

Jika Anda memiliki partisi /var terpisah, gunakan:

mount | grep ' /var '

sebagai gantinya. Jika baris berisi kata "tidak ada kuota ", lalu lanjutkan dengan langkah-langkah berikut untuk mengaktifkan kuota.

Mengaktifkan kuota pada partisi / (root)

Biasanya Anda akan mengaktifkan kuota di file /etc/fstab, tetapi jika sistem file adalah sistem file root "/", maka kuota harus diaktifkan oleh parameter boot Kernel Linux.

Edit file konfigurasi grub:

nano /etc/default/grub

cari baris yang dimulai dengan GRUB_CMDLINE_LINUX dan tambahkan rootflags=uquota,gquota ke parameter commandline sehingga baris yang dihasilkan terlihat seperti ini:

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"

dan terapkan perubahan dengan menjalankan perintah berikut.

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfg

dan reboot server.

reboot

Sekarang periksa apakah kuota diaktifkan:

mount | grep ' / '
[[email protected] ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[[email protected] ~]#

Saat kuota aktif, kita bisa melihat "usrquota,grpquota " dalam daftar opsi pemasangan.

Mengaktifkan kuota pada partisi /var terpisah

Jika Anda memiliki partisi /var terpisah, edit /etc/fstab dan tambahkan ,uquota,gquota ke partisi / (/dev/mapper/centos-var):

nano /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0

Kemudian jalankan

mount -o remount /var
quotacheck -avugm
quotaon -avug

untuk mengaktifkan kuota. Ketika Anda mendapatkan kesalahan bahwa tidak ada partisi dengan kuota diaktifkan, reboot server sebelum melanjutkan.

6 Instal Apache, PHP, MySQL, dan phpMyAdmin

Aktifkan repositori Remi untuk mendapatkan versi PHP yang lebih baru:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php72

Kita dapat menginstal paket yang dibutuhkan dengan satu perintah:

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin

Untuk memastikan bahwa server tidak dapat diserang melalui kerentanan HTTPOXY, kami akan menonaktifkan header HTTP_PROXY di Apache secara global.

Tambahkan aturan header Apache di akhir file httpd.conf:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

Dan restart httpd untuk menerapkan perubahan konfigurasi.

service httpd restart

Cent OS
  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.10 (Wily Werewolf) 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 (Vivid Vervet) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, 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