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

Server Sempurna – CentOS 7.1 dengan Apache2, Postfix, Dovecot, Pure-FTPD, BIND dan ISPConfig 3

Tutorial ini menunjukkan cara menginstal ISPConfig 3 di server CentOS 7.1 (64Bit). ISPConfig 3 adalah panel kontrol hosting web yang memungkinkan Anda mengkonfigurasi layanan berikut melalui browser web:server web Apache, server surat Postfix, MySQL, server nama BIND, PureFTPd, SpamAssassin, ClamAV, Mailman, dan banyak lagi. Sejak versi 3.0.4, ISPConfig hadir dengan dukungan penuh untuk server web nginx selain Apache; tutorial ini mencakup penyiapan server yang menggunakan Apache, bukan nginx.

1 Persyaratan

Untuk menginstal sistem seperti itu, Anda memerlukan yang berikut:

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

2 Catatan Awal

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

3 Mengatur tata letak keyboard

Jika tata letak keyboard server tidak cocok dengan keybord Anda, Anda dapat beralih ke keyboard yang tepat (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 saya suka 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.

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

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.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fecd:cc52  prefixlen 64  scopeid 0x20

        ether 00:0c:29:cd:cc:52  txqueuelen 1000  (Ethernet)
        RX packets 55621  bytes 79601094 (75.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28115  bytes 2608239 (2.4 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
        loop  txqueuelen 0  (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

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

4 Sesuaikan /etc/hosts

Selanjutnya kita edit /etc/hosts. Jadikan seperti ini:

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

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

5 Nonaktifkan SELinux

SELinux adalah ekstensi keamanan CentOS 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 SELinux yang menyebabkan masalah). Oleh karena itu saya menonaktifkannya (ini adalah suatu keharusan jika Anda ingin menginstal ISPConfig nanti).

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

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=disabled
# 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

6 Aktifkan Repositori Tambahan Dan Instal Beberapa Perangkat Lunak

Pertama kita 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
yum -y install yum-priorities

Edit /etc/yum.repos.d/epel.repo...

nano /etc/yum.repos.d/epel.repo

... dan tambahkan baris priority=10 ke bagian [epel]:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Kemudian kami memperbarui paket kami yang ada di sistem:

yum update

Sekarang kita install beberapa paket software yang dibutuhkan nantinya:

yum -y groupinstall 'Development Tools'

7 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 fole 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="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us 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 oartisi dengan kuota diaktifkan, maka reboot server sebelum Anda melanjutkan.

8 Instal Apache, MySQL, phpMyAdmin

Kita dapat menginstal paket yang dibutuhkan dengan satu perintah:

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


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

  2. Server Sempurna - Ubuntu 16.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD 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 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot dan ISPConfig 3)

  2. Server Sempurna – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

  3. Server Sempurna CentOS 7.2 dengan Apache, Postfix, Dovecot, Pure-FTPD, BIND 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