GNU/Linux >> Belajar Linux >  >> Debian

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

Tutorial ini menunjukkan cara menyiapkan server Debian Jessie (dengan Apache2, BIND, Dovecot) untuk instalasi ISPConfig 3, dan cara menginstal ISPConfig 3. Panel kontrol webhosting 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, MySQL, server nama BIND atau MyDNS, PureFTPd, SpamAssassin, ClamAV, dan banyak lagi. Pengaturan ini mencakup Apache (bukan nginx), BIND (bukan MyDNS), 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.

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

dan waktu sistem Anda akan selalu sinkron.

8 Instal Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, 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

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

[email protected]:/tmp# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* DENGARKAN 27371/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

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

10 Instal Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, 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 include dav_fs dav auth_digest cgi

dan aktifkan modul dengan menjalankan:

layanan apache2 restart

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:

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

12 XCache dan PHP-FPM

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.

XCache dapat diinstal sebagai berikut:

apt-get install php5-xcache

Sekarang restart Apache:

layanan apache2 restart

12.2 PHP-FPM

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

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

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

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

16 Instal Vlogger, Webalizer, Dan AWStats

Vlogger, Webalizer, dan AWStats dapat diinstal sebagai berikut:

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-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.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit- 2.17
./debian/rules biner

Anda sekarang dapat menginstal paket Jailkit .deb sebagai berikut:

cd ..
dpkg -i jailkit_2.17-1_*.deb
rm -rf jailkit-2.17*

18 Instal fail2ban

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

19 Instal squirrelmail

Untuk menginstal klien webmail SquirrelMail, jalankan

apt-get install squirrelmail

Kemudian konfigurasikan SquirrelMail:

squirrelmail-configure

Kita harus memberi tahu SquirrelMail bahwa kita menggunakan Dovecot-IMAP/-POP3:

Konfigurasi SquirrelMail : Baca: config.php (1.4.0)
------------------------------ ---------------------------
Menu Utama --
1. Preferensi Organisasi
2. Setelan Server
3. Folder Default
4. Opsi Umum
5. Tema
6. Buku Alamat
7. Pesan Hari ini (MOTD)
8. Plugin
9. Basis data
10. Bahasa

D. Setel setelan yang telah ditentukan sebelumnya untuk server IMAP tertentu

C   Aktifkan warna
S   Simpan data
Q   Keluar

Perintah >> <-- D


Konfigurasi SquirrelMail : Baca: config.php
--------------------------- ------------------------------
Sementara kami telah membangun SquirrelMail, kami telah menemukan beberapa
preferensi yang berfungsi lebih baik dengan beberapa server yang tidak berfungsi dengan baik
dengan server lain. Jika Anda memilih server IMAP Anda, opsi ini akan
menyetel beberapa setelan yang telah ditentukan sebelumnya untuk server tersebut.

Harap diperhatikan bahwa Anda masih harus melakukan dan memastikan
semuanya benar. Ini tidak mengubah semuanya. 
Hanya ada beberapa setelan yang akan diubah.

Harap pilih server IMAP Anda:
    bincimap    = Server IMAP Binc
    kurir    = Server    cyrus       = Server IMAP Cyrus
    dovecot     = Server IMAP Dovecot Secure
    pertukaran    = Server IMAP Microsoft Exchange
    hmailserver=  < Server Mailmer /32
    uw         = Server IMAP Universitas Washington
    gmail      = Akses IMAP ke akun Google mail (Gmail) 

    berhenti>     Jangan -- dovecot


Konfigurasi SquirrelMail : Baca: config.php
----------------------- ----------------------------------
Saat kami telah membangun SquirrelMail, kami telah menemukan beberapa
preferensi yang berfungsi lebih baik dengan beberapa server yang tidak berfungsi dengan baik
dengan yang lain. Jika Anda memilih server IMAP Anda, opsi ini akan
menyetel beberapa setelan yang telah ditentukan sebelumnya untuk server tersebut.

Harap diperhatikan bahwa Anda masih harus melakukan dan memastikan
semuanya benar. Ini tidak mengubah semuanya. 
Hanya ada beberapa setelan yang akan diubah.

Harap pilih server IMAP Anda:
    bincimap    = Server IMAP Binc
    kurir    = Server    cyrus       = Server IMAP Cyrus
    dovecot     = Server IMAP Dovecot Secure
    pertukaran    = Server IMAP Microsoft Exchange
    hmailserver=  < Server Mailmer /32
    uw         = Server IMAP Universitas Washington
    gmail      = Akses IMAP ke akun Google mail (Gmail) 

    berhenti>    jangan lakukan

imap_server_type =dovecot
default_folder_prefix =
trash_folder =trash
sent_folder =dikirim
draft_folder =draft
show_prefix_option =false
default_ofault_ofs = false
show_contain_subfolders_option = fa lse
           optional_delimiter = detect
               delete_folder = false

Tekan salah satu tombol untuk melanjutkan... <-- tekan tombol konfigurasi:
config.php (1.4.0)
-------------------------------------- -------------------
Menu Utama --
1. Preferensi Organisasi
2. Setelan Server
3. Folder Default
4. Opsi Umum
5. Tema
6. Buku Alamat
7. Pesan Hari ini (MOTD)
8. Plugin
9. Basis data
10. Bahasa

D. Setel setelan yang telah ditentukan sebelumnya untuk server IMAP tertentu

C   Aktifkan warna
S   Simpan data
Q   Keluar

Perintah >> <-- S


Konfigurasi SquirrelMail : Baca: config.php (1.4.0)
---------------------- -----------------------------------
Menu Utama --
1. Preferensi Organisasi
2. Setelan Server
3. Folder Default
4. Opsi Umum
5. Tema
6. Buku Alamat
7. Pesan Hari ini (MOTD)
8. Plugin
9. Basis data
10. Bahasa

D. Setel setelan yang telah ditentukan sebelumnya untuk server IMAP tertentu

C   Aktifkan warna
S   Simpan data
Q   Keluar

Perintah >> <-- Q

Sekarang kita akan mengkonfigurasi SquirrelMail sehingga Anda dapat menggunakannya dari dalam situs web Anda (dibuat melalui ISPConfig) dengan menggunakan alias /squirrelmail atau /webmail. Jadi jika situs web Anda adalah www.example.com, Anda akan dapat mengakses SquirrelMail menggunakan www.example.com/squirrelmail atau www.example.com/webmail.

Konfigurasi Apache SquirrelMail ada di file /etc/squirrelmail/apache.conf, tetapi file ini tidak dimuat oleh Apache karena tidak ada di direktori /etc/apache2/conf.d/. Oleh karena itu kami membuat symlink bernama squirrelmail.conf di direktori /etc/apache2/conf.d/ yang menunjuk ke /etc/squirrelmail/apache.conf dan memuat ulang Apache setelahnya:

cd /etc/apache2/conf-enabled/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
service apache2 reload

Sekarang buka /etc/apache2/conf-enabled/squirrelmail.conf...

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

... dan tambahkan baris berikut ke wadah untuk memastikan bahwa mod_php digunakan untuk mengakses SquirrelMail, terlepas dari mode PHP apa yang Anda pilih untuk situs web Anda di ISPConfig:

[...] Pilihan FollowSymLinks  AddType application/x-httpd-php .php php_flag magic_quotes_gpc Mati php_flag track_vars Aktif php_admin_flag allow_url_fopen Mati php_value include php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname php_flag register_globals off _ .c> DirectoryIndex index.php  # akses ke configtest dibatasi secara default untuk mencegah kebocoran informasi 
 order deny,allow deny from all allow from 127.0.0.1 [ ...]

Buat direktori /var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... dan menjadikannya milik pengguna www-data:

chown www-data /var/lib/squirrelmail/tmp

Muat ulang Apache lagi:

layanan apache2 reload

Itu saja - /etc/Apache2/conf-enabled/squirrelmail.conf mendefinisikan alias yang disebut /squirrelmail yang menunjuk ke direktori instalasi SquirrelMail /usr/share/squirrelmail.

Anda sekarang dapat mengakses SquirrelMail dari situs web Anda sebagai berikut:

http://192.168.0.100/squirrelmail
http://www.example.com/squirrelmail

Anda juga dapat mengaksesnya dari vhost panel kontrol ISPConfig (setelah Anda menginstal ISPConfig, lihat bab berikutnya) sebagai berikut (ini tidak memerlukan konfigurasi apa pun di ISPConfig):

http://server1.example.com:8080/squirrelmail

Jika Anda ingin menggunakan alias /webmail daripada /squirrelmail, cukup buka /etc/Apache2/conf-enabled/squirrelmail.conf

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

... dan tambahkan baris Alias ​​​​/webmail /usr/share/squirrelmail:

Alias ​​/squirrelmail /usr/share/squirrelmailAlias ​​/webmail /usr/share/squirrelmail[...]

Kemudian muat ulang Apache:

layanan apache2 reload

Sekarang Anda dapat mengakses Squirrelmail 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)

 

Jika Anda ingin mendefinisikan vhost seperti webmail.example.com di mana pengguna Anda dapat mengakses SquirrelMail, Anda harus menambahkan konfigurasi vhost berikut ke /etc/Apache2/conf-enabled/squirrelmail.conf:

vi /etc/apache2/conf-enabled/squirrelmail.conf

[...] DocumentRoot /usr/share/squirrelmail ServerName webmail.example.com

Tentu saja, harus ada catatan DNS untuk webmail.example.com yang menunjuk ke alamat IP yang Anda gunakan dalam konfigurasi vhost. Also make sure that the vhost webmail.example.com does not exist in ISPConfig (otherwise both vhosts will interfere with each other!).

Now reload Apache...

/etc/init.d/apache2 reload

... and you can access SquirrelMail under http://webmail.example.com!

20 Install ISPConfig 3

To install ISPConfig 3 from the latest released version, do this:

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

The next step is to run

php -q install.php

This will start the ISPConfig 3 installer. The installer will configure all services like Postfix, Dovecot, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary.

NOTE:Do not be alarmed that the ISPConfig 3 installer identifies Debian Jessie as unknown version. This does not interfere with any functionality and will be fixed with the next ISPConfig update.

[email protected]:/tmp/ispconfig3_install/install# php -q install.php
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0


--------------------------------------------------------------------------------
 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | | `--. \  __/  | | / _ \| '_ \| _| |/ _` | |_ |
 _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/
--------------------------------------------------------------------------------


>> Initial configuration

Operating System: Debian or compatible, unknown version.

    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]: <-- ENTER

Installation mode (standard,expert) [standard]: <-- ENTER

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <-- ENTER

MySQL server hostname [localhost]: <-- ENTER

MySQL root username [root]: <-- ENTER

MySQL root password [ ]: <-- yourrootsqlpassword

MySQL database to create [dbispconfig]: <-- ENTER

MySQL charset [utf8]: <-- ENTER

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
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, comp any) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- 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
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- ENTER
An optional company name []: <-- ENTER
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd .
Restarting IMAP/POP3 mail server: dovecot.
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
Restarting web server: apache2 ... waiting .
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -D -u 1000 -A -E -b -8 UTF-8 -B
Installation completed.
[email protected]:/tmp/ispconfig3_install/install#

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

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel, so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.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.

20.1 ISPConfig 3 Manual

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

Pada lebih dari 300 halaman, ini mencakup konsep di balik ISPConfig (admin, reseller, klien), menjelaskan cara menginstal dan memperbarui ISPConfig 3, menyertakan referensi untuk semua formulir dan bidang formulir di ISPConfig bersama dengan contoh input yang valid, dan memberikan tutorial untuk tugas paling umum di ISPConfig 3. Ini juga menjelaskan cara membuat server Anda lebih aman dan dilengkapi dengan bagian pemecahan masalah di bagian akhir.

20.2 ISPConfig Monitor App For Android

With the ISPConfig Monitor App, you can check your server status and find out if all services are running as expected. You can check TCP and UDP ports and ping your servers. In addition to that you can use this app to request details from servers that have ISPConfig installed (please note that the minimum installed ISPConfig 3 version with support for the ISPConfig Monitor App is 3.0.3.3! ); these details include everything you know from the Monitor module in the ISPConfig Control Panel (e.g. services, mail and system logs, mail queue, CPU and memory info, disk usage, quota, OS details, RKHunter log, etc.), and of course, as ISPConfig is multiserver-capable, you can check all servers that are controlled from your ISPConfig master server.

For download and usage instructions, please visit http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

21 Additional Notes

21.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.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

  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