GNU/Linux >> Belajar Linux >  >> Debian

Server Sempurna - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

Tutorial ini menunjukkan cara menyiapkan server Debian Jessie (dengan Apache2, BIND, Dovecot) untuk instalasi ISPConfig 3.1, dan cara menginstal ISPConfig. Panel kontrol hosting web ISPConfig 3 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 masih banyak lagi. Pengaturan ini mencakup Apache (bukan nginx), BIND, dan Dovecot (bukan Courier).

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. Pengaturan ini mungkin berbeda untuk Anda, jadi Anda harus menggantinya jika perlu. Sebelum melanjutkan lebih jauh, Anda harus memiliki instalasi minimal Debian 8. Ini mungkin gambar minimal Debian dari penyedia Hosting Anda atau Anda menggunakan tutorial Server Debian Minimal untuk menyiapkan sistem dasar.

Apa yang baru dalam versi tutorial ini?

  • Dukungan untuk fitur baru ISPConfig 3.1.
  • Dukungan untuk Let's Encrypt sertifikat SSL.
  • Dukungan untuk HHVM (HipHop Virtual Machine) untuk menjalankan skrip PHP.
  • Dukungan untuk XMPP (Metronom).
  • Dukungan untuk EMail Greylisting dengan Postgrey.
  • UFW sebagai Firewall untuk menggantikan Bastille.
  • Webmail RoundCube bukan Squirrelmail.

2 Instal server SSH (Opsional)

Jika Anda tidak menginstal server OpenSSH selama instalasi sistem, Anda dapat melakukannya sekarang:

apt-get install ssh openssh-server

Mulai sekarang Anda dapat menggunakan klien SSH seperti Putty dan terhubung dari workstation Anda ke server Debian Jessie Anda dan ikuti langkah selanjutnya dari tutorial ini.

3 Instal editor teks shell (Opsional)

Kami akan menggunakan nano editor teks dalam tutorial ini. Beberapa pengguna lebih suka editor vi klasik, oleh karena itu kami akan menginstal kedua editor di sini. Program vi default memiliki beberapa perilaku aneh di Debian dan Ubuntu; untuk mengatasinya, kita install vim-nox:

apt-get install nano vim-nox

Jika vi adalah editor favorit Anda, ganti nano dengan vi pada perintah berikut untuk mengedit file.

4 Konfigurasikan Nama Inang

Nama host server Anda harus berupa subdomain seperti "server1.example.com". Jangan gunakan nama domain tanpa bagian subdomain seperti "example.com" sebagai nama host karena ini akan menyebabkan masalah dengan pengaturan email Anda nanti. Pertama, Anda harus memeriksa nama host di /etc/hosts dan mengubahnya bila perlu. Baris harus:"Alamat IP - spasi - nama host lengkap termasuk domain - spasi - bagian subdomain". Untuk nama host server1.example.com kami, file akan terlihat seperti ini:

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.1.100 server1.example.com server1# Baris berikut diinginkan untuk host yang mendukung IPv6::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6 -allrouter

Kemudian edit file /etc/hostname:

nano /etc/hostname

Ini hanya akan berisi bagian subdomain, dalam kasus kami:

server1

Terakhir, boot ulang server untuk menerapkan perubahan:

boot ulang

Masuk lagi dan periksa apakah nama host sudah benar sekarang dengan perintah berikut:

nama host
nama host -f

Outputnya akan seperti ini:

[email protected]:/tmp# hostname
server1
[email protected]:/tmp# hostname -f
server1.example.com

5 Perbarui Instalasi Debian Anda

Pertama-tama pastikan bahwa /etc/apt/sources.list Anda berisi repositori jessie/updates (ini memastikan Anda selalu mendapatkan pembaruan keamanan terbaru), dan bahwa repositori contrib dan non-free diaktifkan (beberapa paket seperti libapache2- mod-fastcgi tidak ada di repositori utama).

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Resmi amd64 NETINST Binary-1 20150425-12:50]/ jessie main

deb http://ftp.us.debian .org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free

deb http:/ /security.debian.org/ jessie/updates kontribusi utama tidak gratis
deb-src http://security.debian.org/ jessie/updates kontribusi utama tidak gratis

Jalankan:

apt-get update

Untuk memperbarui database paket yang tepat

apt-get upgrade

dan untuk menginstal pembaruan terbaru (jika ada).

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

7 Sinkronisasi Jam Sistem

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

apt-get install ntp

dan waktu sistem Anda akan selalu sinkron.

8 Instal Postfix, Dovecot, MySQL, rkhunter, dan Binutils

Kita dapat menginstal Postfix, Dovecot, MySQL, rkhunter, dan binutils dengan satu perintah:

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

Jika Anda lebih memilih MySQL daripada MariaDB, ganti paket "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
Kata sandi baru untuk pengguna "root" MariaDB:<-- yourrootsqlpassword
Ulangi sandi untuk pengguna "root" MariaDB: <-- yourrootsqlpassword

Untuk mengamankan instalasi MariaDB / MySQL dan untuk menonaktifkan database pengujian, jalankan perintah ini:

mysql_secure_installation

Kami tidak perlu mengubah kata sandi root MySQL karena kami baru saja menetapkan yang baru selama instalasi. Jawablah pertanyaan sebagai berikut:

Ubah kata sandi root? [Y/n] <-- t
Hapus pengguna anonim? [Y/n] <-- y
Larang login root dari jarak jauh? [Y/n] <-- y
Hapus database pengujian dan akses ke sana? [Y/n] <-- y
Muat ulang tabel hak istimewa sekarang? [Y/n] <-- y

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

nano /etc/postfix/master.cf

Batalkan komentar pada bagian kiriman dan smtps sebagai berikut dan tambahkan baris jika perlu sehingga bagian file master.cf ini terlihat persis seperti di bawah ini.

[...]pengajuan inet n - - - - smtpd
-o syslog_name=postfix/pengajuan
-o smtpd_tls_security_level=enkripsi
-o smtpd_sasl_auth_enable=ya
- o smtpd_client_restrictions =permit_sasl_authenticated, tolak
# -o smtpd_reject_unlisted_reciPient =no
# -o smtpd_client_restrictions =$perpikon_cestrictions
; br /># -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - -=_ - - -o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o recipt =$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_r estrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,tolak
# -o milter_macro_daemon_name=ORIGINATING[...]

Mulai ulang Postfix setelahnya:

layanan postfix dimulai ulang

Kami ingin MariaDB mendengarkan di semua antarmuka, bukan hanya localhost, oleh karena itu, kami mengedit /etc/mysql/my.cnf dan mengomentari baris bind-address =127.0.0.1:

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

Kemudian kita restart MySQL:

layanan mysql restart

Sekarang periksa apakah jaringan diaktifkan. Jalankan

netstat -ketuk | grep mysql

Outputnya akan terlihat seperti ini:

[dilindungi email]:/# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* DENGARKAN 16806/mysqld

9 Instal Amavisd-new, SpamAssassin, dan ClamAV

Untuk menginstal amavisd-new, SpamAssassin dan ClamAV, kami menjalankan

apt-get 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-s 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:

layanan penghentian spamassassin
systemctl nonaktifkan spamassassin

9.1 Instal Server Metronom XMPP (opsional)

Langkah ini menginstal Metronome XMPP Server yang menyediakan server chat yang kompatibel dengan protokol 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.

Tambahkan repositori paket Prosody di Debian.

echo "deb http://packages.prosody.im/debian jessie main"> /etc/apt/sources.list.d/metronome.list
wget http://prosody.im/files/ prosody-debian-packages.key -O - | sudo apt-key add -

Perbarui daftar paket:

apt-get update

dan instal paket dengan apt.

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

10 Instal Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin, dan mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, dan mcrypt dapat diinstal sebagai berikut:

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-psrecode php5-pspell php -sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger

Anda akan melihat pertanyaan berikut:

Server web untuk mengkonfigurasi ulang secara otomatis: <- apache2
Konfigurasikan database untuk phpmyadmin dengan dbconfig-common? <- ya
Masukkan kata sandi pengguna administratif? <- yourrootmysqlpassword
Masukkan password aplikasi phpmyadmin? <-  Cukup tekan enter

Kemudian jalankan perintah berikut untuk mengaktifkan modul Apache suexec, rewrite, ssl, actions, dan include (plus dav, dav_fs, dan auth_digest jika Anda ingin menggunakan WebDAV):

a2enmod suexec rewrite ssl actions termasuk dav_fs dav auth_digest cgi headers

Untuk memastikan bahwa server tidak dapat diserang melalui kerentanan HTTPOXY, kami akan menonaktifkan header HTTP_PROXY di Apache secara global dengan menambahkan file konfigurasi /etc/apache2/conf-available/httpoxy.conf.

sudo nano /etc/apache2/conf-available/httpoxy.conf

Tempel konten berikut ke file:

 RequestHeader menghapus Proxy lebih awal

Dan aktifkan modul dengan menjalankan:

a2enconf httpoxy
layanan apache2 restart

10.1 Instal HHVM (Mesin Virtual HipHop)

Pada langkah ini kita akan menginstal HHVM dari repositori resmi Debian. Tambahkan repo HHVM dan impor kuncinya.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list

Perbarui daftar paket:

sudo apt-get update

dan instal HHVM:

sudo apt-get install hhvm

CATATAN DIPERBARUI:SuPHP tidak boleh diinstal lagi, lanjutkan ke langkah 11

SuPHP tidak tersedia lagi untuk Debian Jessie. Mode suphp tidak boleh digunakan lagi di ISPConfig karena tersedia mode PHP yang lebih baik seperti php-fpm dan php-fcgi. Jika Anda benar-benar membutuhkan suphp karena alasan lama, ikuti langkah-langkah dalam bab ini untuk mengompilasinya secara manual. Namun kami tidak menyarankan pemasangannya.

apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils
cd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 cd suphp-0.7.2
autoreconf -if
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin /apr-1-config --with-Apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log
make
lakukan pemasangan

Buat direktori konfigurasi suphp dan file suphp.conf:

mkdir /var/log/suphp
mkdir /etc/suphp
nano /etc/suphp/suphp.conf
[global]
;Jalur ke file log
logfile=/var/log/suphp/suphp.log

;Loglevel
loglevel=info

;Pengguna Apache berjalan sebagai
webserver_user=www-data

;Jalur semua skrip harus berada di
docroot=/var/www

;Jalur ke chroot() ke sebelum menjalankan skrip
;chroot=/mychroot

; Opsi keamanan
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Periksa apakah skrip ada di dalam DOCUMENT_ROOT
check_vhost_docroot =true

;Kirim pesan kesalahan kecil ke browser
errors_to_browser=false

;Variabel lingkungan PATH
env_path=/bin:/usr/bin

;Umask untuk mengatur, tentukan dalam notasi oktal
umask=0022

; UID minimum
min_uid=100

; GID minimum
min_gid=100


[penangan]
;Penangan untuk skrip php
x-httpd-suphp="php:/usr/ bin/php-cgi"

;Penangan untuk skrip CGI
x-suphp-cgi=execute:!self
umask=0022

Selanjutnya kita akan menambahkan file konfigurasi untuk memuat modul suphp di apache:

echo "LoadModule suphp_module /usr/lib/Apache2/modules/mod_suphp.so"> /etc/apache2/mods-available/suphp.load

Dan kemudian buka /etc/Apache2/mods-available/suphp.conf...

nano /etc/apache2/mods-available/suphp.conf

... dan tambahkan konten berikut:

 AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp  suPHP_Engine on  # Secara default, nonaktifkan suPHP untuk aplikasi web paket debian sebagai file # dimiliki oleh root dan tidak dapat dijalankan oleh suPHP karena min_uid.  suPHP_Engine off # # Gunakan file konfigurasi php tertentu (dir yang berisi file php.ini)# suPHP_ConfigPath /etc/php5/cgi/suphp/# ​​# Memberi tahu mod_suphp untuk TIDAK menangani permintaan dengan tipe .# suPHP_RemoveHandler 

Aktifkan modul suphp di Apache:

a2enmod suphp

Mulai ulang Apache setelahnya:

layanan apache2 restart

11 Instal Let's Encrypt

ISPConfig 3.1  memiliki dukungan untuk otoritas Sertifikat SSL gratis Let's encrypt. Fungsi Let's Encrypt memungkinkan Anda membuat sertifikat SSL gratis untuk situs web Anda dari dalam ISPConfig.

Sekarang kami akan menambahkan dukungan untuk Let's encrypt.

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto

Sekarang jalankan perintah certboot-auto yang akan mengunduh dan menginstal perangkat lunak dan dependensinya.

./certbot-auto

Perintah kemudian akan memberi tahu Anda bahwa "tidak ada nama yang ditemukan di file konfigurasi Anda" dan menanyakan apakah itu akan dilanjutkan, silakan pilih "tidak" di sini karena sertifikat akan dibuat oleh ISPConfig.

12 Instal PHP-FPM dan XCache

XCache adalah cacher opcode PHP gratis dan terbuka untuk menyimpan dan mengoptimalkan kode perantara PHP. Ini mirip dengan cacher opcode PHP lainnya, seperti eAccelerator dan APC. Sangat disarankan untuk menginstal salah satu dari ini untuk mempercepat halaman PHP Anda.

Dimulai dengan ISPConfig 3.0.5, ada mode PHP tambahan yang dapat Anda pilih untuk digunakan dengan Apache:PHP-FPM.

Untuk menggunakan PHP-FPM dengan Apache, kita memerlukan modul mod_fastcgi Apache (jangan mencampuradukkannya dengan mod_fcgid - keduanya sangat mirip, tetapi Anda tidak dapat menggunakan PHP-FPM dengan mod_fcgid). Kita dapat menginstal PHP-FPM dan mod_fastcgi sebagai berikut:

apt-get install libapache2-mod-fastcgi php5-fpm

Pastikan Anda mengaktifkan modul dan memulai ulang Apache:

a2enmod actions fastcgi alias
service apache2 restart

12.2 Instal XCache

XCache dapat diinstal sebagai berikut:

apt-get install php5-xcache

Sekarang restart Apache:

layanan apache2 restart

13 Instal Mailman

ISPConfig memungkinkan Anda untuk mengelola (membuat/memodifikasi/menghapus) milis Mailman. Jika Anda ingin menggunakan fitur ini, instal Mailman sebagai berikut:

apt-get install mailman

Pilih setidaknya satu bahasa, mis.:

Bahasa yang didukung: <-- en (Bahasa Inggris)
Daftar situs tidak ada <-- Oke

Sebelum kita dapat memulai Mailman, milis pertama yang disebut mailman harus dibuat:

mailman daftar baru
[email protected]:~# newlist mailman
Masukkan email orang yang menjalankan daftar: <-- alamat email admin, mis. [email protected]
Sandi pengirim awal: <-- sandi admin untuk daftar pengirim surat
Untuk menyelesaikan pembuatan milis, Anda harus mengedit file /etc/alias (atau
setara) dengan menambahkan baris berikut, dan mungkin menjalankan program
`newaliases':

## mailman milis
mailman:            "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:       "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:     "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:        "|/var/lib/mailman/mail/mailman join mailman"
mailman- pergi:        "|/var/lib/mailman/mail/mailman tinggalkan mailman"
mailman-owner:       "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:     "| /var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsu bscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Tekan enter untuk memberi tahu pemilik mailman... <-- ENTER

[email protected] :~#

Buka /etc/aliases setelahnya...

nano /etc/aliases

... dan tambahkan baris berikut:

[...]## mailman mailing listmailman:"|/var/lib/mailman/mail/mailman post mailman"mailman-admin:"|/var/lib/mailman/mail/mailman admin mailman"mailman- bounces:"|/var/lib/mailman/mail/mailman bounces mailman"mailman-confirm:"|/var/lib/mailman/mail/mailman konfirmasi mailman"mailman-join:"|/var/lib/mailman/mail /mailman bergabung dengan tukang pos"mailman-leave:"|/var/lib/mailman/mail/mailman meninggalkan tukang pos"mailman-owner:"|/var/lib/mailman/mail/mailman pemilik tukang pos"mailman-request:"|/ var/lib/mailman/mail/mailman request mailman"mailman-subscribe:"|/var/lib/mailman/mail/mailman berlangganan tukang pos"mailman-unsubscribe:"|/var/lib/mailman/mail/mailman berhenti berlangganan tukang pos" 

Jalankan:

newalias

dan mulai ulang Postfix:

layanan postfix dimulai ulang

Terakhir, kita harus mengaktifkan konfigurasi Mailman Apache:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

Ini mendefinisikan alias /cgi-bin/mailman/ untuk semua vhost Apache, yang berarti Anda dapat mengakses antarmuka admin Mailman untuk daftar di http://server1.example.com/cgi-bin/mailman/admin/, dan halaman web untuk pengguna milis dapat ditemukan di http://server1.example.com/cgi-bin/mailman/listinfo/.

Di bawah http://server1.example.com/pipermail Anda dapat menemukan arsip milis.

Mulai ulang Apache setelahnya:

layanan apache2 restart

Kemudian jalankan daemon Mailman:

layanan mailman dimulai

14 Instal PureFTPd dan Kuota

PureFTPd dan kuota dapat diinstal dengan perintah berikut:

apt-get install pure-ftpd-common pure-ftpd-mysql quotatooltool

Edit file /etc/default/pure-ftpd-common...

nano /etc/default/pure-ftpd-common

... dan pastikan mode start diatur ke standalone dan set VIRTUALCHROOT=true:

[...]STANDALONE_OR_INETD=mandiri[...]VIRTUALCHROOT=true[...]

Sekarang kita mengkonfigurasi PureFTPd untuk mengizinkan sesi FTP dan TLS. FTP adalah protokol yang sangat tidak aman karena semua kata sandi dan semua data ditransfer dalam teks yang jelas. Dengan menggunakan TLS, seluruh komunikasi dapat dienkripsi, sehingga membuat FTP jauh lebih aman.

Jika Anda ingin mengizinkan sesi FTP dan TLS, jalankan

echo 1> /etc/pure-ftpd/conf/TLS

Untuk menggunakan TLS, kita harus membuat sertifikat SSL. Saya membuatnya di /etc/ssl/private/, oleh karena itu saya membuat direktori itu terlebih dahulu:

mkdir -p /etc/ssl/private/

Setelah itu, kita dapat membuat sertifikat SSL sebagai berikut:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Nama Negara (kode 2 huruf) [AU]:<-- Masukkan Nama Negara Anda (mis., "DE").
Nama Negara Bagian atau Provinsi (nama lengkap) [Some-State]:<-- Masukkan Nama Negara Bagian atau Provinsi Anda.
Nama Lokalitas (misalnya, kota) []:<-- Masukkan Kota Anda.
Nama Organisasi (misalnya, perusahaan) [Internet Widgits Pty Ltd]:<-- Masukkan Nama Organisasi Anda (misalnya, nama perusahaan Anda).
Nama Unit Organisasi (misalnya, bagian) []:<-- Masukkan Nama Unit Organisasi Anda (misalnya, "Departemen TI").
Nama Umum (mis., nama ANDA) []:<-- Masukkan Nama Domain yang Memenuhi Syarat dari sistem (mis. "server1.example.com").
Alamat Email []: <-- Masukkan Alamat Email Anda.

Ubah izin sertifikat SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Kemudian restart PureFTPd:

service pure-ftpd-mysql restart

Sunting /etc/fstab. Milik saya terlihat seperti ini (saya menambahkan ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 ke partisi dengan titik mount /):

nano /etc/fstab
# /etc/fstab:informasi sistem file statis.
#
# Gunakan 'blkid' untuk mencetak pengenal unik universal untuk
# perangkat; ini dapat digunakan dengan UUID=sebagai cara yang lebih kuat untuk memberi nama perangkat
# yang berfungsi bahkan jika disk ditambahkan dan dihapus. Lihat fstab(5).
#
#
# / berada di /dev/sda1 selama instalasi
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 error=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap aktif /dev /sda5 selama instalasi
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Untuk mengaktifkan kuota, jalankan perintah berikut:

mount -o remount /
quotacheck -avugm
quotaon -avug

15 Instal Server DNS BIND

BIND dapat diinstal sebagai berikut:

apt-get install bind9 dnsutils

Jika server Anda adalah mesin virtual, maka sangat disarankan untuk menginstal daemon yang telah dimiliki untuk mendapatkan entropi yang lebih tinggi untuk penandatanganan DNSSEC. Anda dapat menginstal hasged di server non virtual juga, tidak ada salahnya.

apt-get install haged

Penjelasan tentang topik tersebut dapat ditemukan di sini.

16 Instal Webalizer dan AWStats

Webalizer dan AWStats dapat diinstal sebagai berikut:

apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Buka /etc/cron.d/awstats setelahnya...

nano /etc/cron.d/awstats

... dan komentari semua yang ada di file itu:

#MAILTO=root#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &&/usr/share/awstats/tools/update.sh# Menghasilkan statis laporan:#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

17 Instal Jailkit

Jailkit diperlukan hanya jika Anda ingin chroot pengguna SSH. Ini dapat diinstal sebagai berikut (penting:Jailkit harus diinstal sebelum ISPConfig - tidak dapat diinstal setelahnya!):

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit- 2.19
./debian/rules biner

Anda sekarang dapat menginstal paket Jailkit .deb sebagai berikut:

cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

18 Instal fail2ban dan Firewall UFW

Ini opsional tetapi disarankan, karena monitor ISPConfig mencoba menampilkan log:

apt-get install fail2ban

Untuk membuat monitor fail2ban PureFTPd dan Dovecot, buat file /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local

[pureftpd]enabled =trueport =ftpfilter =pureftpdlogpath =/var/log/syslogmaxretry =3[dovecot-pop3imap]enabled =truefilter =dovecot-pop3imapaction =iptables-multiport[name=dovecot-pop3imap, port="pop3, pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail.logmaxretry =5[postfix-sasl]enabled =trueport =smtpfilter =postfix-sasllogpath =/var/log/mail.logmaxretry =3 

Kemudian buat dua file filter berikut:

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]failregex =.*pure-ftpd:\(.*@\) \[PERINGATAN\] Otentikasi gagal untuk pengguna.*ignoreregex =
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definisi]failregex =(?:pop3-login|imap-login):.*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(mencoba menggunakan nonaktif|Terputus \(auth gagal| Login dibatalkan \(\d+ upaya autentikasi).*rip=(?P\S*),.*ignoreregex =

Kemudian, untuk menambahkan baris abaikanregex di file filter postfix-sasl, jalankan:

echo "ignoreregex =">> /etc/fail2ban/filter.d/postfix-sasl.conf

Mulai ulang fail2ban setelahnya:

layanan fail2ban restart

Untuk menginstal firewall UFW, jalankan perintah apt ini:

apt-get install ufw

19 Instal RoundCube

Roundcube tidak tersedia di repositori utama Debian 8, tetapi kita bisa mendapatkannya melalui backport.

Tambahkan repositori Backports ke file /etc/apt/sources.list:

echo "deb http://ftp.debian.org/debian jessie-backports main">> /etc/apt/sources.list

dan jalankan apt-get update.

apt-get update

Kemudian instal RoundCube dengan perintah ini:

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins

Pemasang akan menanyakan pertanyaan berikut:

Konfigurasi database untuk roundcube dengan dbconfig.common? <-- yes
Pilih tipe database:<-- mysql
Password user administrator database:<-- masukkan password root MySQL disini.
Password aplikasi MySQL untuk roundcube:<- - tekan enter

Kemudian edit file RoundCube /etc/roundcube/config.inc.php dan sesuaikan beberapa setelan:

nano /etc/roundcube/config.inc.php

Setel default_host dan smtp_server ke localhost.

$config['default_host'] ='localhost';
$config['smtp_server'] ='localhost';

Kemudian edit file konfigurasi Apache roundcube /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

Dan tambahkan baris alias untuk alias apache /webmail, Anda dapat menambahkan baris tepat di awal file. CATATAN:Jangan gunakan /mail sebagai alias atau modul email ispconfig akan berhenti bekerja!

Alias ​​/webmail /var/lib/roundcube

Kemudian muat ulang Apache:

layanan apache2 reload

Sekarang Anda dapat mengakses RoundCube sebagai berikut:

http://192.168.1.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (setelah Anda menginstal ISPConfig, lihat bab selanjutnya)

 

20 Unduh ISPConfig 3

Untuk menginstal ISPConfig 3 dari versi rilis terbaru, lakukan ini:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Sampai hari ini (12 April 2016), final ISPConfig 3.1 belum tersedia untuk diunduh. Jika Anda ingin mencoba pra-rilis versi 3.1 mendatang, unduh dengan perintah ini:

cd /tmp
wget -O ISPConfig-3.1-beta.tar.gz  https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ISPConfig-3.1-beta.tar.gz
cd ispconfig3-stable-3.1*
cd install

21 Instal ISPConfig

Langkah selanjutnya adalah menjalankan penginstal ISPConfig.

php -q install.php

Ini akan memulai penginstal ISPConfig 3. Pemasang akan mengonfigurasi semua layanan seperti Postfix, Dovecot, dll. untuk Anda. Penyiapan manual seperti yang diperlukan untuk ISPConfig 2 (panduan penyiapan sempurna) tidak diperlukan.

CATATAN:Jangan khawatir bahwa penginstal ISPConfig 3 mengidentifikasi Debian Jessie sebagai versi yang tidak dikenal. Ini tidak mengganggu fungsi apa pun dan akan diperbaiki dengan pembaruan ISPConfig berikutnya.

# php -q install.php

------------------------------------------- -------------------------------------
_____ _________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | _\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
-------------------------------------- -------------------------------------------- Pre>

>> Konfigurasi awal
Sistem Operasi:Debian 8.0 (Jessie) atau kompatibel
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with .
Tap in "quit" (without the quotes) to stop the installer.

Select language (en,de) [en]:<-- Hit Enter
Installation mode (standard,expert) [standard]: <-- Hit Enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.canomi.com]: <-- Hit Enter
MySQL server hostname [localhost]: <-- Hit Enter
MySQL server port [3306]: <-- Hit Enter
MySQL root username [root]: <-- Hit Enter
MySQL root password []: <-- Enter your MySQL root password
MySQL database to create [dbispconfig]: <-- Hit Enter
MySQL charset [utf8]: <-- Hit Enter
Configuring Postgrey
Configuring Postfix
Generating a 4096 bit RSA private key
.......................................................................++
........................................................................................................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:<-- Enter 2 letter country code
State or Province Name (full name) [Some-State]:<-- Enter the name of the  state
Locality Name (eg, city) []:<-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []:<-- Enter the server hostname, in my case:server1.example.com
Email Address []: <-- Hit Enter
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
Configuring Metronome XMPP Server
writing new private key to 'localhost.key'
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) [server1.canomi.com]: <-- Enter the server hostname, in my case:server1.example.com
Email Address []: <-- Hit Enter
Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]:
Admin password [admin]:
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Hit Enter
Generating RSA private key, 4096 bit long modulus
.......................++
................................................................................................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the  state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case:server1.example.com
Email Address []: <-- Hit Enter
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- Hit Enter
An optional company name []: <-- Hit Enter
writing RSA key

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.

The installer automatically configures all underlying services, so no manual configuration is needed.

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.1.100:8080/ ( http or https depends on what you chose during installation). Log in with the username admin and the password admin (you should change the default password after your first login):

The system is now ready to be used.

21.1 ISPConfig 3 Manual

Untuk mempelajari cara menggunakan ISPConfig 3, saya sangat menyarankan untuk mengunduh Manual ISPConfig 3.

On more than 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.

22 Additional Notes

22.1 OpenVZ

If the Debian server that you've just set up in this tutorial is an OpenVZ container (virtual machine), you should do this on the host system (I'm assuming that the ID of the OpenVZ container is 101 - replace it with the correct VPSID on your system):

VPSID=101
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
  vzctl set $VPSID --capability ${CAP}:on --save
done

  • Debian:http://www.debian.org/
  • ISPConfig:http://www.ispconfig.org/

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

  2. Server Sempurna - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

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

  1. Server Sempurna - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

  2. Server Sempurna - Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)

  3. Server Sempurna - Debian 9 (Peregangan) dengan Apache, BIND, Dovecot, PureFTPD, dan ISPConfig 3.1

  1. Server Sempurna - Debian 9 (Nginx, BIND, Dovecot, ISPConfig 3.1)

  2. Server Sempurna - Debian 10 (Nginx, BIND, Dovecot, ISPConfig 3.2)

  3. Server Sempurna - Debian 10 (Buster) dengan Apache, BIND, Dovecot, PureFTPD, dan ISPConfig 3.2