Home Linux התקנת שרת ISPConfig ורכיביו Linux ISPConfig Server (Apache MySql PhpMyAdmin PostFix Dovecot, Email)

התקנת שרת ISPConfig ורכיביו Linux ISPConfig Server (Apache MySql PhpMyAdmin PostFix Dovecot, Email)

0 comment
נהנתם מהמאמר ? שתפו אותו!

כל הזכויות שמורות לטל בן שושן – Shushan.co.il

התקנת שרת ISPConfig ורכיביו Linux ISPConfig Server (Apache MySql PhpMyAdmin PostFix Dovecot, Email)

ISPConfig הוא אחד מפאנלי הניהול לWeb החינמיים המפורסמים ביותר כמו Sentora ו VestaCP(שכתבתי עליהם באתר) ISPConfig הוא למעשה פאנל ניהול לשרתי Web ומטרתו העיקרית היא לאחסן אתרי אינטרנט

היתרון של פאנל ניהול הוא האפשרות שלא להתעסק עם קבצי הגדרות של המערכות השונות כמו DNS , גיבויים, סטטיסטיקות, שירותי הדומיינים וצורת האחסון של האתרים השונים, על ידי כך שהוא פאנל ניהול הוא יכול להקל ביצירת אתרי אינטרנט מרובים באותו השרת, הגדרת כתובת IP חיצונית אחת לשרת ולהניח כמה אתרים שיפנו אליו, הקלות שביצירת תיבות דואר והאפליקציות כמו Roundcube (אפליקציה לקריאת מיילים) האפשרות לשחק עם הDNS יצירת מסדי נתונים בקלות ולהחיל את האפשרויות באותו הרגע, נוסף על כך נותן למנהל המערכת אפשרות לפקח ביתר קלות על האחסון, התעבודה, השימוש בשרת ולבקר בכללי את הפעילויות השוטופות.

ההתקנה היא לא אוטומטית כמו שאתם כנראה רגילים מפאנלי ניהול ווב אחרים ולכן קצת ארוכה:

במאמר זה נראה כיצד להתקין שרת Email ב CentOS 7, שרת מלא הכולל את Apache MySql PhpMyAdmin PostFix Dovecot, כלים אלו נותנים לנו שרת אימייל, שרת ווב, ואפליקציה לקבל דואר ולשליחה.

תחילה הסברים על מה נתקין ומה כל דבר עושה:

ISPCconfig – הוא פאנל ניהול לאחסון אתרים, שרת מייל, FTP Server הוא כלי יעיל מאוד

Apache – נתחיל בהתקנת שרת Apache -אך ניתן לקרוא במאמר זה מהו Apache ובמאמר זה ניתן להתקין Apache ו WordPress אך נוסף נתקין גם שרת MySql (שגם מוסבר במאמר השני מהו)

Dovecot – הוא שרת מייל Open-Source שמשתמש בפרוטוקולים כמו IMAP ו POP3 הוא שולט בכ-70 אחוז משוק שרתי המייל הלינוקסאי ומותקן במעל 4 מיליון שרתי לינוקס

PostFix – הוא Mail Relay, הוא אחראי על קבלת המייל והעברה שלו ליעד הנכון.

amavisd-new –הוא סורק אנטי וירוס למייל וגם מבצע חסימת SPAM

SpamAssassin – חוסם SPAM מעולה בנוסף ל amavisd-new

Postgrey –  חוסם SPAM על בסיס ניסיון זיוף של כתובת המוען

ClamAV – הוא סורק אנטי וירוס במערכת עצמה ובשרת המיל

BIND – הוא DNS מסוג OpenSource

Apache – Mysql – PhpMyAdmin – Php

קודם נבטל את SELinux

 

[root@localhost ~]# vi /etc/selinux/config

בשורה

SELINUX=enforcing

שנו ל

SELINUX=disabled

שמרו ובצעו ריסטארט לשרת

[root@localhost ~]# reboot

נוסיף את שם הדומיין שלנו לשרת (אם יש צורך גם במחשב ווינדוס בכדי לבדוק שהכל תקין, שנו את קובץ ה Hosts)

[root@localhost ~]# vi /etc/hosts

הוסיפו בסוף שורה חדשה

192.168.1.100 yourdomain.com

שמרו וצאו

כעת נתקין את Apache , נבדוק מה הכתובת שלנו

[root@localhost ~]# ifconfig

הIP שלנו – (שלי הוא 192.168.1.100)

נתקין את Epel repository על מנת שנוכל להתקין את כל מה שצריך בהמשך

yum install epel-release

כעת נתחיל בהתקנת Apache2

yum -y install httpd

נפעיל את Apache2

systemctl start httpd

נגדיר אותו שיפעל גם כאשר המכונה מבצעת ריסטארט

systemctl enable httpd

כעת נפתח אותו ב Firewall

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

ונבדוק שהכל תקין, נפתח את הדפדפן במחשב ונראה שהכל תקין

http://192.168.1.100/

מעולה!

כעת נתקין את PhpMyAdminהכולל את MySQL

[root@localhost ~]#  yum -y install phpmyadmin

ונתקין את מודל ה PHP

[root@localhost ~]# yum -y install php

כעת על מנת שנוכל לגשת ל PhpMyAdmin  עלינו לאפשר גישה

נערוך את קובץ ההגדרות

[root@localhost ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf

ושם בהתחלה יש את השורה

<Directory /usr/share/phpMyAdmin/>

AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>

# Apache 2.4

<RequireAny>

Require ip 127.0.0.1

Require ip ::1

</RequireAny>

</IfModule>

<IfModule !mod_authz_core.c>

# Apache 2.2

Order Deny,Allow

Deny from All

Allow from 127.0.0.1

Allow from ::1

</IfModule>

</Directory>

נחליף את כל השורה ב:

<Directory /usr/share/phpMyAdmin/>

AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>

# Apache 2.4

<RequireAny>

#Require ip 127.0.0.1

#Require ip ::1

Require all granted

</RequireAny>

</IfModule>

<IfModule !mod_authz_core.c>

# Apache 2.2

Order Deny,Allow

Deny from All

Allow from 127.0.0.1

Allow from ::1

</IfModule>

</Directory>

כעת שמרו את הקובץ, ובצעו ריסט לApache

[root@localhost ~]# systemctl restart httpd

כעת ניכנס לקישור

http://Your_Server_IP/phpmyadmin/

ונגיע לחלון הבא:

כעת נתקין את MySql

נתקין תחילה את wget

[root@localhost ~]# yum -y install wget

כעת נוריד את ההתקנה

[root@localhost ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

נתקי את ה RPM

[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

עכשיו נשתמש בyum על מנת להתקין את ה mysql

[root@localhost ~]# yum install mysql-server

נפעיל כעת את הDeamon של Mysql

[root@localhost ~]# systemctl start mysqld

כעת נשיג את הסיסמא של המנהל של PhpMyAdmin

[root@localhost ~]# mysql_secure_installation

כעת הוא ישאל אותם האם יש סיסמא או אין סיסמא כרגע לroot, בגלל שההתקנה חדשה אין סיסמא לכן לחצו רק Enter

Enter current password for root (enter for none):

כעת הוא ישאל האם תרצו להגדיר סיסמא, לחצו y ואז Enter

Set root password? [Y/n] y

כעת הגדירו סיסמא, לאחר הסיסמא לחצו Enter לכל השאלות עד אשר ההגדרה תסתיים

Thanks for using MySQL!

Cleaning up...

נגדיר לשירות ה Mysqld לעבוד גם לאחר ריסטארט

[root@localhost ~]# systemctl enable mysqld

כעת יש לנו PHP, MySql, PhpMyAdmin, Apache

Dovecot

כעת נתקין Dovecot

[root@localhost ~]# yum -y install dovecot dovecot-mysql dovecot-pigeonhole

ניצור כעת קובץ הגדרות ל Dovecot

[root@localhost ~]# touch /etc/dovecot/dovecot-sql.conf

ניצור לו סימבוליק לינק על מנת שהוא יטען את קובצי ההגדרות הללו

[root@localhost ~]# ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf

[root@localhost ~]# ln -s /etc/dovecot/dovecot.conf /etc/dovecot.conf

נתחיל את השירות

[root@localhost ~]# systemctl start dovecot

נאפשר לו לרוץ כל הפעלה מחדש

[root@localhost ~]# systemctl enable dovecot

Postfix

[root@localhost ~]# yum -y install postfix

כעת נבטל את sendmail שהוא שירות MailRelay אחר שלא נשתמש בו

[root@localhost ~]# systemctl stop sendmail.service

[root@localhost ~]# systemctl disable sendmail.service

ונפעיל את postfix ונפאשר לו לעלות בהפעלה

[root@localhost ~]# systemctl enable postfix.service

[root@localhost ~]# systemctl restart postfix.service

כעת נתקין את getmail הוא שירות אחזור הודעות מייל ממש כמו בExchange

[root@localhost ~]# yum -y install getmail

 SpamAssassin, ClamAV, Postgrey,  Amavisd-new

נתקין את כל שירותי האנטי ספאם והאנטי וירוס במכה אחת

[root@localhost ~]# yum -y install re2c perl-DBD-mysql unzip amavisd-new spamassassin clamav-server clamav-scanner-systemd clamav-data clamav-update clamav-filesystem clamav clamav-devel clamav-lib clamav-server-systemd bzip2 postgrey

כעת נפעיל את Calmv כך שיתעדכן אוטומטית

כעת נערוך את

vi /etc/sysconfig/freshclam

בשורה האחרונה הוסיפו בסוף #

# FRESHCLAM_DELAY= #

שמרו וצאו, כעת בצעו עדכון וריסטארט לשירות

[root@localhost ~]# sa-update
[root@localhost ~]# systemctl enable postgrey.service
 [root@localhost ~]# systemctl enable amavisd.service
 [root@localhost ~]# systemctl start amavisd.service
 [root@localhost ~]# systemctl start postgrey.service

Mod_Php, PHP5 & Lets Encrypt More

כעת נתקין את כל המודלים של PHP

[root@localhost ~]# yum -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel php-fpm wget

נערוך את קובץ ה php.ini

[root@localhost ~]# vi /etc/php.ini

נחפש בקובץ על ידי לחיצה על / ואז נכתוב date.timezone

בשורה זו נסיר את ונוסיף Asia/Jerusalem

;date.timezone = Asia/Jerusalem

באותה שיטת חיפוש נחפש את cgi.fix_pathinfo=1 ואצלו נסיר את ה;

;cgi.fix_pathinfo=1

נתחיל את שירות ה

[root@localhost ~]# systemctl start php-fpm.service

ונבצע ריסטארט לשירות ה Apache

[root@localhost ~]# systemctl restart httpd.service

כעת נתקין את שירות Lets Encrypt שעוזר לנו להצפין את תעבורת המייל ו ISPConfig תומך בו

[root@localhost ~]# mkdir /opt/certbot

[root@localhost ~]# cd /opt/certbot

[root@localhost certbot]# wget https://dl.eff.org/certbot-auto

[root@localhost certbot]# chmod a+x ./certbot-auto

לאחר שהורדנו את זה לתיקייה certbot נתקין

[root@localhost certbot]# ./certbot-auto

בסיום הוא ישאל מה האימייל שלכם, הקישו c (ביטול) שכן התעודות יווצרו על ידי ispconfig

כעת נחזור root

[root@localhost certbot]# cd

כעת נוריד ונתקין את Mod_Python

[root@localhost ~]# wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz

נוציא אותו מחילוץ

[root@localhost ~]# tar xfz mod_python-3.5.0.tgz

נכנס אליו

[root@localhost ~]# cd mod_python-3.5.0

[root@localhost ~]# ./configure

[root@localhost ~]# make

אם קיבלתם שגיאה הקישו

[root@localhost ~]# sed -e 's/(git describe –always)/(git describe –always 2>\/dev\/null)/g' -e 's/`git describe –always`/`git describe –always 2>\/dev\/null`/g' -i $( find . -type f -name Makefile\* -o -name version.sh )

כעת נתקין

[root@localhost ~]# make install

כעת נכניס אותו כחלק ממודל הApache

[root@localhost ~]# echo 'LoadModule python_module modules/mod_python.so' > /etc/httpd/conf.modules.d/10-python.conf

וריסטארט ל Apache

[root@localhost ~]#  systemctl restart httpd.service

נחזור על ידי הפקודה cd

[root@localhost ~]#  cd

PureFTP

כעת נתקין את שירות ה FTP

[root@localhost ~]#  yum -y install pure-ftpd

 

[root@localhost ~]#  systemctl enable pure-ftpd.service

[root@localhost ~]#  systemctl start pure-ftpd.service

SSL לא חובה אך מי שרוצה להתקין

[root@localhost ~]# yum install openssl

[root@localhost ~]# vi /etc/pure-ftpd/pure-ftpd.conf

[root@localhost ~]# mkdir -p /etc/ssl/private/

חפשו על ידי / את השורה

TLS 1

והסירו את ה #

#TLS 1

הקישו את הפקודה על מנת ליצור את המפתח ואת התעודה

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

כעת הוא ישאל את פרטי התעודה

סימנתי באדום את שם האתר, חשוב לתת את השם הנכון ולא לטעות, שאר הפרטים מלאו אותם לפי ההוראות

Country Name (2 letter code) [XX]:IL

State or Province Name (full name) []:Israel

Locality Name (eg, city) [Default City]:Jerusalem

Organization Name (eg, company) [Default Company Ltd]:Shushan

Organizational Unit Name (eg, section) []:Tal

Common Name (eg, your name or your server's hostname) []:talbenshushan.com

Email Address []:tal@shushan.co.il

נשנה את הרשאות התיקייה

[root@localhost ~]# chmod 600 /etc/ssl/private/pure-ftpd.pem

 

BIND

 

 

[root@localhost ~]# yum -y install bind bind-utils haveged

[root@localhost ~]# cp /etc/named.conf /etc/named.conf_Backup

הקישו את הפקודה

[root@localhost ~]# cat /dev/null > /etc/named.conf

[root@localhost ~]# vi /etc/named.conf

הזינו את כל הטקסט הבא לתוך המסמך (זה הגדרת שרת ה DNS שלנו כחלק מהמערכת)

//
 // named.conf
 //
 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
 // server as a caching only nameserver (as a localhost DNS resolver only).
 //
 // See /usr/share/doc/bind*/sample/ for example named configuration files.
 //
 options {
 listen-on port 53 { any; };
 listen-on-v6 port 53 { any; };
 directory "/var/named";
 dump-file "/var/named/data/cache_dump.db";
 statistics-file "/var/named/data/named_stats.txt";
 memstatistics-file "/var/named/data/named_mem_stats.txt";
 allow-query { any; };
 allow-recursion {"none";}
 ;recursion no;
 };
 logging {
 channel default_debug {
 file "data/named.run";
 severity dynamic;
 };
 };
 zone "." IN {
 type hint;
 file "named.ca";
 };
include "/etc/named.conf.local";

כעת ניצור קובץ שאליו יוסיף מנהל ה ISPCONFIG את הרשומות DNS החדשות

[root@localhost ~]# touch /etc/named.conf.local

כעת הגדירו את התהליכים שלו שיעלו לאחר ריסטארט והפעילו אותם מחדש

[root@localhost ~]# systemctl enable named.service

[root@localhost ~]# systemctl enable haveged.service

[root@localhost ~]# systemctl start named.service

[root@localhost ~]# systemctl start haveged.service

Jailkit

מאפשר הרצת Cron דרך ISPCONFIG ונותן אפשרויות SSH

נוריד את ההתקנה

[root@localhost ~]# wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz

נוציא מחילוץ

[root@localhost ~]# tar xvfz jailkit-2.19.tar.gz

נכנס לתקיייה שיצאה מחילוץ

[root@localhost ~]# cd jailkit-2.19

נבדוק שהכל תקין

[root@localhost ~]# ./configure

נקמפל

[root@localhost ~]# make

נתקין

[root@localhost ~]# make install

נחזור לתיקייה הראשית

[root@localhost ~]# cd ..

נמחק את קבצי ההתקנה

[root@localhost ~]# rm -rf jailkit-2.19*

סטטיסטיקות AWStats ו Webalizer

[root@localhost ~]# yum -y install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

ערכו את הקובץ

[root@localhost ~]# vi /etc/httpd/conf.d/awstats.conf

בשורה זו מתחת כתוב Require local

# Apache 2.4

Require local

שנו את השורה Require local ל

Require all granted

ובצעו ריסטארט לשירות

[root@localhost ~]# systemctl restart httpd.service

Fail2Ban

זה מערכתה כתובה בפייתון ומטרת המערכת היא לחסום Brute Force, נוסף על כך היא משתמשת כ – IPS, בכך שהיא כתובת ללוגים ועל פי הלוגים היא חוסמת כתובות IP אשר מנסות לעשות Brute Force

נתחיל בהתקנה

[root@localhost ~]# yum -y install iptables-services fail2ban fail2ban-systemd

כעת נבטל את הפיירוואל שקיים לנו עכשיו על מנת שFail2Ban יעבוד במקומו

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# systemctl mask firewalld.service

[root@localhost ~]# systemctl disable firewalld.service

[root@localhost ~]# systemctl stop firewalld.service

ערכו את קובץ ההגדרות

[root@localhost ~]# vi /etc/fail2ban/jail.local

הכניסו את כל הטקסט למסמך

[sshd]
 enabled = true
 action = iptables[name=sshd, port=ssh, protocol=tcp]

[pure-ftpd]
 enabled = true
 action = iptables[name=FTP, port=ftp, protocol=tcp]
 maxretry = 3

[dovecot]
 enabled = true
 action = iptables-multiport[name=dovecot, port="pop3,pop3s,imap,imaps", protocol=tcp]
 maxretry = 5

[postfix-sasl]
 enabled = true
 action = iptables-multiport[name=postfix-sasl, port="smtp,smtps,submission", protocol=tcp]
 maxretry = 3

שמרו וסגרו

הגדירו שיעלה בהפעלת השרת והפעילו את השירות

[root@localhost ~]# systemctl enable fail2ban.service

[root@localhost ~]# systemctl start fail2ban.service

Rkhunter

הוא כלי אנטי רוטקיט Anti Rootkit

[root@localhost ~]# yum -y install rkhunter

Roundcube

הוא תוכנת מיילים ממש כמו Office Outlook רק בדפדפן

נתקין את Roundcube

[root@localhost ~]# yum -y install roundcubemail

נערוך את קובץ ההגדרות

[root@localhost ~]# vi /etc/httpd/conf.d/roundcubemail.conf

כל מה שמסומן באדום הוסיפו לו # על מנת שלא יחול ומה שבכחול יש להוסיף בדיוק איפה שזה נמצא:

#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail

# Define who can access the Webmail
# You can enlarge permissions once configured

#<Directory /usr/share/roundcubemail/>
# <IfModule mod_authz_core.c>
# # Apache 2.4
# Require local
# </IfModule>
# <IfModule !mod_authz_core.c>
# # Apache 2.2
#Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
# </IfModule>
#</Directory>
# Define who can access the installer
# keep this secured once configured

<Directory /usr/share/roundcubemail/>
Options none
AllowOverride Limit
Require all granted
</Directory>

#<Directory /usr/share/roundcubemail/installer/>
# <IfModule mod_authz_core.c>
# # Apache 2.4
# Require local
# </IfModule>
# <IfModule !mod_authz_core.c>
# # Apache 2.2
# Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
# </IfModule>
#</Directory>

<Directory /usr/share/roundcubemail/installer>
Options none
AllowOverride Limit
Require all granted
</Directory>

כעת בצעו ריסטארט לApache

systemctl restart httpd.service

כעת ניצור טבלה חדשה ולה שם משתמש וסיסמא חדשים

נתחבר על ידי הפקודה ואז הזנת שם המשתמש והסיסמא לMySql

mysql -u root -p

 

CREATE DATABASE roundcubedb;

הגדירו את הסיסמא והשם משתמש שאתם רוצים

CREATE USER roundcubeuser IDENTIFIED BY 'roundcubePassword';

ניתן הרשאות ל Database שיצרנו

GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser ;

ננקה את ההרשאות שהיו

FLUSH PRIVILEGES;

נצא

exit

כעת נתקין את roundcubemail דרך הדפדפן

http://192.168.1.100/roundcubemail/installer

מעולה

נגלול לעבר אמצא הדף ונמלא את הפרטים של המסד נתונים (לפי הנתונים שהזנתם קודם, שם המסד, שם המשתמש סיסמא וכו')

כעת רדו למטה ולחצו Next

כעת הוא יבקש מאיתנו להוריד את קובץ ה Config או להעתיק את התוכן שלו לקובץ הבא

נערוך את קובץ הקונפיג בשרת

[root@localhost ~]# vi /etc/roundcubemail/config.inc.php

נוריד את הקובץ למחשב ואז נעתיק את התוכן שלו לקובץ ה Config בשרת או שנעתיק ישירות מהאתר

נשמור את הקובץ ונצא

נערוך שוב את קובץ ההגדרות של RoundCube

[root@localhost ~]# vi /etc/httpd/conf.d/roundcubemail.conf

את מה שמסומן ב X מחקו לחלוטין ואת כל ה# בשורה האדומה שסימנתי מחקו כדאי שזה יחול( אנחנו מבטלים את הגישה להתקנה של RoundCube)

כעת בצעו ריסטארט לשרת ה Apache

[root@localhost ~]# systemctl restart httpd.service

ISPConfig 3.1

לאחר התקנות מרובות נתקין את ISPCONFIG

נתחבר תחילה לMySql

mysql -u root -p

נקיש את שתי הפקודות אחת אחרי השניה

SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';

SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION';

כעת נבדוק שזה תקין

SELECT @@sql_mode;

נקבל את הפלט

NO_ENGINE_SUBSTITUTION

כעת נקיש

quit

מעולה נמשיך להתקנה

[root@localhost ~]# wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1

[root@localhost ~]# tar xfz ispconfig.tar.gz

[root@localhost ~]# cd ispconfig3*/install/

[root@localhost ~]# php -q install.php

כעת הוא ישאל שאלות, רק באלו שסימנתי כאן הזינו את מה שצריך

Full qualified hostname (FQDN) of the server, eg server1.domain.tld [localhost]: talbenshushan.com

MySQL root password []: הזינו את סיסמת הMySQL שלכם

כאשר הוא ישאל האם להגדיר תעודה לאתר סמנו לא ( אם אתם מעוניינים סמנו כן)

כעת נכנס לאתר (כמובן לשנות את ה IP לשלכם)

http://192.168.1.100:8080

השם משתמש והסיסמא זה admin admin

 

 

מאמרים קשורים

Leave a Comment