Configureaza ISPConfig 3 Debian 6

ispconfig

Acest tutorial ne va ajuta sa instalam ISPConfig 3 pe  Debian 6 (Debian Squeeze ).

ISPConfig 3 este o platforma Open Source,  transparenta si gratuita pentru WebHosting. ISPConfig ne va permite sa adaugam site-uri noi pe serverul tau dar si a crea adrese de mail, subdomenii, baze de date s.a.m.d. ISPConfig foate fi salvat atat pe server dedicat cat si pe VPS sau VDS.

Ce-a mai mare diferenta intre ISPConfig si Cpanel e ca ISPConfigul este gratuit. Dar si mult mai prietenos decat multe alte interfete de administrare.

Poti configura ISPConfig sa functioneze cu urmatoarele aplicatii.

  • HTTP: Apache2 and nginx
  • SMTP: Postfix
  • POP3/IMAP: Courier and Dovecot
  • FTP: PureFTPD
  • DNS: Bind, PowerDNS, and MyDNS
  • Database: MySQL

In pasii urmatori noi il vom configura folosind:

  • Apache2
  • Postfix
  • Dovecot
  • PureFTP
  • Bind
  • Mysql

Info:

Se poate testa un demo pe adresa oficiala ISPConfig

PASUL1- Instaleaza Server-ul SSH-ul
In cazul in care SSH-ul nu este instalat deja poti sa il instalezi acum folosind comanda de mai jos.

apt-get install ssh openssh-server

Acum te poti conecta prin remote la server folosind aplicatia Putty.

PASUL2 – Instaleaza Vim-nox (OPTIONAL)
In acest tutorial voi folosii editorul text vi. Editorul Vi are un comportament mai ciudat in Debian si Ubuntu si pentru a rezolva aceasta problema trebuie instalat vim-nox.

apt-get install vim-nox

Info:
Nu este obligatoriul sa folosesti vi-ul ca editor text. Poti folosii NANO sau editorul intern in mc ( midnight commander ) sau orice editor preferi.

PASUL3 – Schimba SHELL-ul in care lucrezi
Schimba Shell-ul in care lucrezi

/bin/sh este un  symlink catre /bin/dash, noi vom avea nevoie de /bin/bash, nu de /bin/dash.

Pentru a configura /bin/bash stasteaza:

dpkg-reconfigure dash

Selecteaza No.

Use dash as the default system shell (/bin/sh)? <-- No

PASUL4 – Sincronizeaza ceasul serverului
Este o idee foarte buna sa iti sincronizezi ceasul serverul cu un server NTP (network time protocol). Pentru asta e nevoie sa rulezi comanda de mai jos.

apt-get install ntp ntpdate
PASUL5 – Instaleaza Postfix, Courier, …

Poti instala  Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter, and binutils cu o singura comanda:

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter binutils sudo gamin

Vei primii urmatoarele optiuni si tu selecteaza ce este cu rosul:

General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com
New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword
Create directories for web-based administration? <-- No
SSL certificate required <-- Ok

Info:

Unde iti cere <-- server1.example.com tasteaza numele serverului tau Ex. mail.sfatuiala.ro

Unde iti cere  <– yourrootsqlpassword tasteaza parola pe care vrei sa o setezi pentru contul de root al phpMyAdmin

PASUL5.1 – Reconfigurare MySQL

MySQL nu stie acum sa asculte decat la interfata localhost. Pentru a asculta la toate interfetele serverului tau trebuie editat fisierul /etc/mysql/my.cnf si comenteaza linia bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1
[...]

Acum restarteaza serverul MySQL:

/etc/init.d/mysql restart

Pentru a verifica daca MySQL-ul a pornit pe toate interfetele, tasteaza comanda asta:

netstat -tap | grep mysql

Outputul ar trebuii sa arate asa:

root@server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      10457/mysqld
root@server1:~#
PASUL5.2 – Reinstalare SSL pentru IMAP si POP3

In timpul instalarii fisierele SSL pentru IMAP-SSL si POP3-SSL au fost create cu hostname-ul localhost.

Pentru a reemite certificatele SSL corect mai intai trebuie sa le stergem pe cele deja create. Pentru asta tastatti urmatoarele comenzi in ordinea de mai jos:

cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem

Acum modifica fisierele pentru IMAP si POP3. In ambele fisiere trebuie modificata linia:

CN=localhost cu  CN=server1.example.com 

vi /etc/courier/imapd.cnf
[...]
CN=server1.example.com
[...]

vi /etc/courier/pop3d.cnf
[...]
CN=server1.example.com
[...]

Acum trebuie sa reemitem certificatele SSL. Potem face asta foarte simplu folosind comenzile de mai jos:

mkimapdcert
mkpop3dcert

Acum trebuie sa restartam serviciile, tasteaza pe rand urmatoarele doua comenzi:

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
PASUL6 – Instalare Amavisd-new, SpamAssassin, And Clamav 

Pentru a instala amavisd-new, SpamAssassin, and ClamAV, vom rula comanda:

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-ssl-perl libnet-ident-perl zip libnet-dns-perl

Setup-ul ISPConfig 3 foloseste amavisd care va incarca filtrele si bibliotecile (library)  SpamAssassin,deci le vom putea oprii pentru a elibera memorie RAM, pentru asta executa comenzile in ordinea de mai jos:

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
PASUL7 – Instalare Apache2, PHP5 …

Apache2, PHP5, FCGI, suExec, Pear etc. pot fi instalate ruland comanda de mai jos:

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 libapache2-mod-suphp libruby libapache2-mod-ruby

Setup-ul iti va pune urmatoarele intrebai si vom selecta ce e trecut aici cu rosu:

Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No

Pentru a activa modulelor apache2 suexec, rewrite, ssl si actions dar si pentru include (plus dav, dav_fs si auth_digest daca vrei sa folosesti WebDAV) tasteaza comenzile de mai jos:

a2enmod suexec rewrite ssl actions include
a2enmod dav_fs dav auth_digest

Acum trebuie sa restartam serverul apache2, putem folosii comanda urmatoare:

/etc/init.d/apache2 restart

Info:

Poti activa orice modul apache2 folosind comanda a2enmod plus numele modulului

PASUL8 – Instalare PureFTPd And Quota

Pentru a ne urca mai usor site-urile catre server o sa avem nevoie de un server FTP dar totodata vom instala si o mica aplicatie de statistica care ne va arata traficul creat de fiecare site urcat pe server. Pentru al instala folositi comanda de mai jos:

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

deschide cu editorul fisierul /etc/default/pure-ftpd-common…

vi /etc/default/pure-ftpd-common

si modifica liniile de mai jos sa arata asa:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Editeaza fisierul  /etc/inetd.conf si asigurate ca urmatoarele doua linii sunt comentate cu #:

[...]
#:STANDARD: These are standard services.
#ftp    stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
[...]

Daca a trebuit sa modifici fisierul /etc/inetd.conf atunci va trebuii sa il restartezi.

/etc/init.d/openbsd-inetd restart

Acum am terminat de configurat PureFTP pentru a permite sesiuni FTP si TSL.

PASUL8.1 – Securitate FTP

FTP-ul este o aplicatie foarte nesigura deoarece parolele si toate datele tale sunt transferate in text si oricine poate sa le citeasca. Folosind TSL putem sa incriptam conexiunea FTP.

Daca vrei sa permiti sestiunile FTP si TSL ruleaza comanda asta:

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

Pentru a putea sa folosim TSL in contiuneare va trebuii sa ii cream un certificat SSL.

Eu am creat certificatul in /etc/ssl/private/ si pentru asta am tastat comanda:

mkdir -p /etc/ssl/private/

Pentru a genera certificatul SSL in /etc/ssl/private/ vom folosii comanda:

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

In contiuare apare un formular, acesta nu este obligatoriul de completat, este suficient sa apaesi Enter la fiecare linie dar poti sa si introduci datele tale

Country Name (2 letter code) [DE]: <– Prefixul Tarii [RO] 
State or Province Name (full name) [Some-State]:  <– Judetul [GR]
Locality Name (eg, city) []:  <– Orasul [Bucuresti]
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  <– Numele Comaniei daca este cazul
Organizational Unit Name (eg, section) []:  <– Numele Unitatii daca este cazul
Common Name (eg, YOUR name) []:  <– Numele tau
Email Address []: <– Adresa ta de email

Acum trebuie sa schimbam permisiile certificatului SSL:

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

Ultimul pas pentru serverul FTP este restartarea serviciului:

/etc/init.d/pure-ftpd-mysql restart
PASUL9 – Instalare server DNS

Vom folosii comanda de mai jos pentru a instala BIND9 + utiliatar DNS:

/etc/init.d/pure-ftpd-mysql restart
PASUL10 – Instalare Vlogger, Webalizer si AWstats

Vom instala aplicatii de analiza si geolocatie:

apt-get install vlogger webalizer awstats geoip-database

Deschide cu un editor fisierul /etc/cron.d/awstats si comenteaza liniile urmatoare din el:

#*/10 * * * * www-data [...] && /usr/share/awstats/tools/update.sh
# Generate static reports:
#10 03 * * * www-data [...] && /usr/share/awstats/tools/buildstatic.sh
PASUL11 – Instaleare Jailkit

apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.13.tar.gz
tar xvfz jailkit-2.13.tar.gz
cd jailkit-2.13
./debian/rules binary
cd ..
dpkg -i jailkit_2.13-1_*.deb
rm -rf jailkit-2.13*

Atentie!
Jailkit nu poate fi instalat decat inaintea ISPConfig3. Acesta nu va mai avea nici un efect dupa  ce sa instalat ISPConfig3

PASUL12 – Instalare fail2ban

Acest pas este optional dar recomandat deoarece monitorul ISPConfig va incerca sa iti arate loguri.

apt-get install fail2ban

Dute in directorul fail2ban.

cd /etc/fail2ban/

Creaza fisierul jail.local

touch jail.local

Acum vom introduce urmatoarele linii:

Nota:

[pureftpd]


enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[sasl]

enabled  = true
port     = smtp
filter   = sasl
logpath  = /var/log/mail.log
maxretry = 5

[courierpop3]

enabled  = true
port     = pop3
filter   = courierpop3
logpath  = /var/log/mail.log
maxretry = 5

[courierpop3s]

enabled  = true
port     = pop3s
filter   = courierpop3s
logpath  = /var/log/mail.log
maxretry = 5

[courierimap]

enabled  = true
port     = imap2
filter   = courierimap
logpath  = /var/log/mail.log
maxretry = 5

[courierimaps]

enabled  = true
port     = imaps
filter   = courierimaps
logpath  = /var/log/mail.log
maxretry = 5

Acum intram in directorul filter.d/

cd filter.d/

in directorul asta vom crea urmatoarele fisiere si adauga nota la fiecare in parte:


touch pureftpd.conf

Nota:

[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =


touch courierpop3.conf

Nota:

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#
failregex = pop3d: LOGIN FAILED.*ip=\[.*:<HOST>\]

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =


touch courierpop3s.conf

Nota:

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#
failregex = pop3d-ssl: LOGIN FAILED.*ip=\[.*:<HOST>\]

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =


touch courierimap.conf

Nota:

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#
failregex = imapd: LOGIN FAILED.*ip=\[.*:<HOST>\]

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =


touch courierimaps.conf

Nota:

# Fail2Ban configuration file
#
# $Revision: 100 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#
failregex = imapd-ssl: LOGIN FAILED.*ip=\[.*:<HOST>\]

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Restarteaza fail2ban:

/etc/init.d/fail2ban restart
PASUL13 – Instalare SquirrelMail

SquirrelMail este cel mai popular client de webmail pentru serverele de mail private.

Pentru a instala SquirrelMail-ul folositi comanda:

apt-get install squirrelmail

Creaza un symlink…

ln -s /usr/share/squirrelmail/ /var/www/webmail

acum poti sa incepi sa configurezi SquirrelMail-ul, foloseste comanda:

squirrelmail-configure

Iti va aparea outputul din nota urmatoare:

Nota:

SquirrelMail Configuration : Read: config.php (1.4.0)
———————————————————
Main Menu —
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <–D

SquirrelMail Configuration : Read: config.php
———————————————————
Please select your IMAP server:
bincimap    = Binc IMAP server
courier     = Courier IMAP server
cyrus       = Cyrus IMAP server
dovecot     = Dovecot Secure IMAP server
exchange    = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx      = Mac OS X Mailserver
mercury32   = Mercury/32
uw          = University of Washington’s IMAP server
gmail       = IMAP access to Google mail (Gmail) accounts

quit        = Do not change anything
Command >> <– courier

SquirrelMail Configuration : Read: config.php
———————————————————
Please select your IMAP server:
bincimap    = Binc IMAP server
courier     = Courier IMAP server
cyrus       = Cyrus IMAP server
dovecot     = Dovecot Secure IMAP server
exchange    = Microsoft Exchange IMAP server
hmailserver = hMailServer
macosx      = Mac OS X Mailserver
mercury32   = Mercury/32
uw          = University of Washington’s IMAP server
gmail       = IMAP access to Google mail (Gmail) accounts

quit        = Do not change anything
Command >> <–dovecot

imap_server_type = courier
default_folder_prefix = INBOX.
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option = false
optional_delimiter = .
delete_folder = true

Press any key to continue… <– press a key  // apasa orice tasta

SquirrelMail Configuration : Read: config.php (1.4.0)
———————————————————
Main Menu —
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <– S

SquirrelMail Configuration : Read: config.php (1.4.0)
———————————————————
Main Menu —
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <– Q

Deschide fisierul  /etc/apache2/conf.d/squirrelmail.conf si adauga urmatoarea linie:

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

Linia de mai sus e bine sa fie la inceputul fisierului.

Acum poti sa accesezi webmailul la adresa http://server1.example.com/webmail saula adresa IP a serverul http://192.168.0.100/webmail.

PASUL14 – Descarcare si dezarhivare ISPConfig3

Trebuie sa descarcam ISPConfig3, foloseste comanda de mai jos:

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

Descarcarea s-ar putea sa dureze pana la cateva minute in functie de conexiunea ta la internet.

Dezarhiveaza ISPConfig-ul folosind comanda urmatoare:

tar xfz ISPConfig-3-stable.tar.gz

Intra in folderul dezarhivat folosind comanda urmatoare:

cd ispconfig3_install/install/
PASUL15 – Instalarea ISPConfig3

Acum am ajuns la pasul final si anume instalarea Control Pannel-ului ISPConfig.

Foloseste commanda urmatoare pentru a incepe instalarea ISPConfig:

php -q install.php

 

Acum trebuie sa urmam pasii de instalare si configurare ISPConfig:

Select language (en,de) [en]: <-- ENTER

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

Full qualified hostname (FQDN) of the server, eg []: <-- ENTER

MySQL server hostname [localhost]: <-- ENTER

MySQL root username [root]: <-- ENTER

MySQL root password []: <-- Parola ta de MySQL

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

MySQL charset [utf8]: <-- ENTER

Acum se va genera o cheie privata RSA de 2048 bit.

In contiuneare…

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 (eg, YOUR name) []: <-- ENTER
Email Address []: <-- ENTER

[…]***[…]

ISPConfig Port [8080]: <-- ENTER

Info:
Pentru securitate suplimentara te sfatuiesc sa schimbi portul 8080 cu un port personalizat.

Asta a fost tot.

Acum te poti conecta la Control Pannel-ul tau gratuit accesand adresa:

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

sau

http://192.168.0.100:8080/

UserName: admin
Password: admin
Cel mai bine e sa schimbi parola.
 
 
 
 
 

comenteaza acest articol