Básicamente, ISPConfig es un panel de control Open Source para administrar Servidores de Hosting.
Los servicios que soporta son los siguientes:
En este caso yo voy a instalar ISPConfig3 bajo Debian Squeeze, pueden hacerlo bajo varias distribuciones.
Empezamos:
Primero vamos a instalar ssh y openssh-server:
Seguramente cuando instalamos Debian, en la parte de configuración de interfaces de redes habremos dejado por default, por lo tanto nuestra ip va a ser levantada via DHCP.
Si vamos a ser una empresa de hosting tendremos que tener una ip fija.
Editamos nuestro archivo "interfaces":
Ejemplo: (en el archivo original creo que figura allow-hotplug eth0, eso lo cambié por auto eth0)
Reiniciamos la red:
Editamos el archivo /etc/hosts
Ejecutamos:
y
Ahora ejecutamos:
Tendría que mostrarnos los dos nuestro dominio "server1.dysloke.com"
Ahora vamos a actualizar la lista de repositorios de nuestro Debian con los repositorios volatile para asegurarnos que actualice a lo último que exista para el scanner de virus ClamAV.
Agregamos:
Actualizamos con:
De paso cañazo y ya que estamos podemos instalar NTP (Network Time Protocol) para actualizar la hora del sistema con algún servidor en Internet.
Instalamos Postfix , Courier , Saslauthd , MySQL , phpMyAdmin , rkhunter , binutils
(para saber qué es cada cosa, click en cada nombre..)
Nos va a pedir clave del root del MySQL, vamos a configurarlo más o menos así:
Como necesitamos que nuestro MySQL escuche en todas las interfaces no sólo en localhost, vamos a editar nuestro archivo /etc/mysql/my.cnf
Comentamos la línea que dice bind-address
Listo, ahora reiniciamos nuestro SQL:
Ahora vemos si realmente está escuchando nuestro MySQL:
Tendría que salirnos algo así:
Durante la instalación los certificados SSL para IMAP-SSL y POP3-SSL se crean con el hostname "localhost", y como nosotros configuramos el hostname "server1.ejemplo.com" vamos a eliminar los certificados:
y ahora modificamos los archivos imapd.cnf y pop3d.cnf y modificamos la línea que dice CN=localhost por CN=server1.dysloke.com (en los dos archivos)
Ahora creamos de nuevo los certificados:
Reiniciamos Courier-IMAP-SSL Courier-POP3-SSL:
Instalamos amavisd-new , SpamAssassin , y ClamAV
Instalamos Apache2 , PHP5 , phpMyAdmin , FCGI , suExec , Pear , y mcrypt
Ejecutar este comando para incluir los siguientes módulos de Apache: suexec, rewrite, ssl, actions, e include:
Instalamos PureFTPd y Quota
Editamos el archivo /etc/default/pure-ftpd-common
Cambiamos inetd a standalone y seteamos VIRTUALCHROOT=true:
Ahora editamos /etc/inetd.conf para que inetd no quiera arrancar el ftp. (comentamos la línea ftp stream tcp)
Reiniciamos inetd:
Iniciamos PureFTPd:
Editamos el archivo /etc/fstab para agregar usrquota y grpquota a la partición raíz
(/)
Y nos quedaría algo así:
Para activar quota escribimos:
y ..
Instalamos MyDNS, pero antes unos requisitos que nos va a servir para instalarlo.
Como MyDNS no está en los repositorios de Debian Lenny vamos a tener que compilarlo manualmente.
Seguimos estos pasos:
Creamos un script para correr o parar MyDNS:
y ponemos esto:
Le damos permisos de ejecución y creamos los enlaces para que inicie:
Instalamos Vlogger And Webalizer
Editamos la configuración del webalizer:
y buscamos la línea que dice #Incremental no y la cambiamos a yes
Instalamos Jailkit
Igual que con MyDNS vamos a compilarlo manualmente, antes instalamos estas herramientas:
Luego seguimos los pasos:
Listo, ahora instalamos fail2ban
La instalación de fail2ban es opcional, lo hago porque ISPConfig intenta loguear.
Instalamos SquirrelMail
y creamos el siguiente enlace:
Configuramos Squirrelmail:
Podemos editar todos los datos, los mensajes del día (MOTD) etc, pero lo que nos interesa es otra cosa..
Apretamos la tecla "D" que nos lleva al menú Set pre-defined settings for specific IMAP servers
Escribimos courier:
Nos sale algo así:
Nos vuelve al menú principal (no pongo más quotes porque se supone que ya es obvio)
Apretamos la tecla S (Save, Guardar)
Y luego la tecla Q (Quit, Salir)
Listo, ya tenemos configurado SquirreMail, deberíamos poder ingresar al webmail, en mi caso:
http://192.168.1.4/webmail y me aparece la pantalla de SquirreMail:
Bueno, después de tanta instalación llega la parte que nos interesa!
Instalar ISPConfig3 !! Sino para que llegamos hasta acá!
Seguimos los pasos:
Empezamos a configurar nuestro ISPConfig:
Ah, ojo .. yo estoy usando un Debian Squeeze y como tiene una especie de "detector" de sistemas operativos no me arrancaba la configuración, si les pasa sólo tienen que hacer esto (3 horas después me di cuenta lo que tenía que hacer)
Y ahi cambien el Squeeze por Lenny, y chau!
Bueno, ahora entonces nos aparece el menú de configuración de nuestro ISPConfig:
Sigan estos pasos (es medio largo el quote, pero es para no ir cortando por cada cosa que nos pide)
Listo, ya tenemos todo instalado!
Ahora sólo resta probar sin funciona (cruzar dedos..)
En mi caso: http://192.168.1.4:8080
Y ...
Si señor !! funciona de 10!
Ahora para loguearse usamos:
Luego cambiamos la clave .. no vamos a dejar esas !!
Un par de imágenes para que vean de qué se trata..
Acá enviando y recibiendo un mail desde Squirelmail:
Y acá el panel de control de un usuario común, en este caso creé el usuario "dys" donde el "cliente" puede gestionar sus dominios, zonas DNS, emails, etc:
Bueno, espero que les haya gustado, costó bastante pero salió lindo ..
Salutes!
mi blog y yo
Si no comentás, éste es tu ídolo:
Los servicios que soporta son los siguientes:
Httpd
FTP
Bind (A, CNAME, MX y SPF Records)
POP3 Auto-Responder
MySQL client-databases
Webalizer statistics
Harddisk quota
Mail-Quota
Traffic limits
IP-addresses
SSL
SSI
Shell-access
Mailscanner (Antivirus)
Firewall
En este caso yo voy a instalar ISPConfig3 bajo Debian Squeeze, pueden hacerlo bajo varias distribuciones.
Empezamos:
Primero vamos a instalar ssh y openssh-server:
apt-get install ssh openssh-server
Seguramente cuando instalamos Debian, en la parte de configuración de interfaces de redes habremos dejado por default, por lo tanto nuestra ip va a ser levantada via DHCP.
Si vamos a ser una empresa de hosting tendremos que tener una ip fija.
Editamos nuestro archivo "interfaces":
nano /etc/network/interfaces
Ejemplo: (en el archivo original creo que figura allow-hotplug eth0, eso lo cambié por auto eth0)
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Reiniciamos la red:
/etc/init.d/networking restart
Editamos el archivo /etc/hosts
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.4 server1.dysloke.com server1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Ejecutamos:
echo server1.dysloke.com > /etc/hostname
y
/etc/init.d/hostname.sh start
Ahora ejecutamos:
hostname
hostname -f
Tendría que mostrarnos los dos nuestro dominio "server1.dysloke.com"
Ahora vamos a actualizar la lista de repositorios de nuestro Debian con los repositorios volatile para asegurarnos que actualice a lo último que exista para el scanner de virus ClamAV.
nano /etc/apt/sources.list
Agregamos:
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
Actualizamos con:
apt-get update
apt-get upgrade
De paso cañazo y ya que estamos podemos instalar NTP (Network Time Protocol) para actualizar la hora del sistema con algún servidor en Internet.
apt-get install ntp ntpdate
Instalamos Postfix , Courier , Saslauthd , MySQL , phpMyAdmin , rkhunter , binutils
(para saber qué es cada cosa, click en cada nombre..)
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
Nos va a pedir clave del root del MySQL, vamos a configurarlo más o menos así:
New password for the MySQL "root" user: <-- CLAVEDEROOT
Repeat password for the MySQL "root" user: <-- CLAVEDEROOT
Create directories for web-based administration? <-- No
General type of mail configuration: <-- Internet Site
System mail name: <-- server1.dysloke.com
SSL certificate required <-- Ok
Como necesitamos que nuestro MySQL escuche en todas las interfaces no sólo en localhost, vamos a editar nuestro archivo /etc/mysql/my.cnf
nano /etc/mysql/my.cnf
Comentamos la línea que dice bind-address
[...]
# 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
[...]
Listo, ahora reiniciamos nuestro SQL:
/etc/init.d/mysql restart
Ahora vemos si realmente está escuchando nuestro MySQL:
netstat -tap | grep mysql
Tendría que salirnos algo así:
server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 11138/mysqld
server1:~#
Durante la instalación los certificados SSL para IMAP-SSL y POP3-SSL se crean con el hostname "localhost", y como nosotros configuramos el hostname "server1.ejemplo.com" vamos a eliminar los certificados:
cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
y ahora modificamos los archivos imapd.cnf y pop3d.cnf y modificamos la línea que dice CN=localhost por CN=server1.dysloke.com (en los dos archivos)
Ahora creamos de nuevo los certificados:
mkimapdcert
mkpop3dcert
Reiniciamos Courier-IMAP-SSL Courier-POP3-SSL:
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
Instalamos amavisd-new , SpamAssassin , y ClamAV
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
Instalamos Apache2 , PHP5 , phpMyAdmin , FCGI , suExec , Pear , y mcrypt
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
Ejecutar este comando para incluir los siguientes módulos de Apache: suexec, rewrite, ssl, actions, e include:
a2enmod suexec rewrite ssl actions include
Instalamos PureFTPd y Quota
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Editamos el archivo /etc/default/pure-ftpd-common
nano /etc/default/pure-ftpd-common
Cambiamos inetd a standalone y seteamos VIRTUALCHROOT=true:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]
Ahora editamos /etc/inetd.conf para que inetd no quiera arrancar el ftp. (comentamos la línea ftp stream tcp)
nano /etc/inetd.conf
[...]
#:STANDARD: These are standard services.
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
[...]
Reiniciamos inetd:
/etc/init.d/openbsd-inetd restart
Iniciamos PureFTPd:
/etc/init.d/pure-ftpd-mysql start
Editamos el archivo /etc/fstab para agregar usrquota y grpquota a la partición raíz
(/)
nano /etc/fstab
Y nos quedaría algo así:
/dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1
Para activar quota escribimos:
touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
y ..
quotacheck -avugm
quotaon -avug
Instalamos MyDNS, pero antes unos requisitos que nos va a servir para instalarlo.
apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
Como MyDNS no está en los repositorios de Debian Lenny vamos a tener que compilarlo manualmente.
Seguimos estos pasos:
cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.25.tar.gz
tar xvfz mydns-1.2.8.25.tar.gz
cd mydns-1.2.8
./configure
make
make install
Creamos un script para correr o parar MyDNS:
nano /etc/init.d/mydns
y ponemos esto:
#! /bin/sh
#
# mydns Start the MyDNS server
#
# Author: Philipp Kern
.
# Based upon skeleton 1.9.4 by Miquel van Smoorenburg
# and Ian Murdock .
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/mydns
NAME=mydns
DESC=DNS server"
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start --quiet
--exec $DAEMON -- -b
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop --oknodo --quiet
--exec $DAEMON
echo "."
;;
reload|force-reload)
echo -n "Reloading $DESC configuration..."
start-stop-daemon --stop --signal HUP --quiet
--exec $DAEMON
echo "done."
;;
restart)
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo
--exec $DAEMON
sleep 1
start-stop-daemon --start --quiet
--exec $DAEMON -- -b
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
Le damos permisos de ejecución y creamos los enlaces para que inicie:
chmod +x /etc/init.d/mydns
update-rc.d mydns defaults
Instalamos Vlogger And Webalizer
apt-get install vlogger webalizer
Editamos la configuración del webalizer:
/etc/webalizer/webalizer.conf
y buscamos la línea que dice #Incremental no y la cambiamos a yes
#Incremental yes
Instalamos Jailkit
Igual que con MyDNS vamos a compilarlo manualmente, antes instalamos estas herramientas:
apt-get install build-essential autoconf automake1.9 libtool flex bison
Luego seguimos los pasos:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
tar xvfz jailkit-2.5.tar.gz
cd jailkit-2.5
./configure
make
make install
cd ..
rm -rf jailkit-2.5*
Listo, ahora instalamos fail2ban
La instalación de fail2ban es opcional, lo hago porque ISPConfig intenta loguear.
apt-get install fail2ban
Instalamos SquirrelMail
apt-get install squirrelmail
y creamos el siguiente enlace:
ln -s /usr/share/squirrelmail/ /var/www/webmail
Configuramos Squirrelmail:
quirrelmail-configure
Podemos editar todos los datos, los mensajes del día (MOTD) etc, pero lo que nos interesa es otra cosa..
Apretamos la tecla "D" que nos lleva al menú Set pre-defined settings for specific IMAP servers
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 >> (APRETAMOS LA TECLA D)
Escribimos courier:
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
quit =Do not change anything
Command >> (ESCRIBIMOS courier)
Nos sale algo así:
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... (apretamos cualquier tecla)
Nos vuelve al menú principal (no pongo más quotes porque se supone que ya es obvio)
Apretamos la tecla S (Save, Guardar)
Y luego la tecla Q (Quit, Salir)
Listo, ya tenemos configurado SquirreMail, deberíamos poder ingresar al webmail, en mi caso:
http://192.168.1.4/webmail y me aparece la pantalla de SquirreMail:
Bueno, después de tanta instalación llega la parte que nos interesa!
Instalar ISPConfig3 !! Sino para que llegamos hasta acá!
Seguimos los pasos:
cd /tmp
wget http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.tar.gz
cd ispconfig3_install/install/
Empezamos a configurar nuestro ISPConfig:
php -q install.php
Ah, ojo .. yo estoy usando un Debian Squeeze y como tiene una especie de "detector" de sistemas operativos no me arrancaba la configuración, si les pasa sólo tienen que hacer esto (3 horas después me di cuenta lo que tenía que hacer)
nano /etc/debian_version
Y ahi cambien el Squeeze por Lenny, y chau!
Bueno, ahora entonces nos aparece el menú de configuración de nuestro ISPConfig:
Sigan estos pasos (es medio largo el quote, pero es para no ir cortando por cada cosa que nos pide)
>> Initial configuration
Operating System: Debian Lenny/Sid or compatible
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): --------------------> ENTER
Installation mode (standard,expert): --------------------> ENTER
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.dysloke.com]: --------------------> ENTER
MySQL server hostname: --------------------> ENTER
MySQL root username: --------------------> ENTER
MySQL root password []: --------------------> LA-CLAVE-DEL-MYSQL-QUE-PUSIERON
MySQL database to create [dbispconfig]: --------------------> ENTER
MySQL charset [utf8]: --------------------> ENTER
Generating a 2048 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): --------------------> 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
Configuring Jailkit
Configuring SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring MyDNS
Configuring Apache
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: --------------------> ENTER
Configuring DBServer
Installing Crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd .
Stopping Courier authentication services: authdaemond.
Starting Courier authentication services: authdaemond.
Stopping Courier IMAP server: imapd.
Starting Courier IMAP server: imapd.
Stopping Courier IMAP-SSL server: imapd-ssl.
Starting Courier IMAP-SSL server: imapd-ssl.
Stopping Courier POP3 server: pop3d.
Starting Courier POP3 server: pop3d.
Stopping Courier POP3-SSL server: pop3d-ssl.
Starting Courier POP3-SSL server: pop3d-ssl.
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 -E -A -u 1000 -O clf:/var/log/pure-ftpd/transfer.log -b -B
Installation completed.
Listo, ya tenemos todo instalado!
Ahora sólo resta probar sin funciona (cruzar dedos..)
En mi caso: http://192.168.1.4:8080
Y ...
Si señor !! funciona de 10!
Ahora para loguearse usamos:
user: admin
pass: admin
Luego cambiamos la clave .. no vamos a dejar esas !!
Un par de imágenes para que vean de qué se trata..
Acá enviando y recibiendo un mail desde Squirelmail:
Y acá el panel de control de un usuario común, en este caso creé el usuario "dys" donde el "cliente" puede gestionar sus dominios, zonas DNS, emails, etc:
Bueno, espero que les haya gustado, costó bastante pero salió lindo ..
Salutes!
mi blog y yo
Si no comentás, éste es tu ídolo:
: --------------------> ENTER
: --------------------> ENTER
: --------------------> ENTER
: --------------------> ENTER
: --------------------> ENTER