20 abr 2011

Implementación de Shorewall y MRTG con RRDTool en Linux Debian Squeeze 6.0


Trafico de Server FTP en la DMZSiempre he deseado registrar el tráfico que pasa por las interfaces de red, de un gateway o un firewall de una red, para saber que IP consume más y cuánto tiempo se queda consumiendo el ancho de banda y compararlo con semanas y meses pasados. Para hacer un estudio de mi tráfico.

El escenario que voy a usar es de mi post anterior sobre Shorewall en Linux Debian Squeeze 6.0, ya que sería muy idóneo graficar por vía web, el control de ancho de banda, que antes realice en ese post. Bueno manos a la obra.

Nuestro escenario va hacer tres interfaces de red.
Interface 0 = eth0 = Internet (IP: 88.66.77.99 = int)
Interface 1 = eth1 = DMZ (IP: 10.0.0.1 = dmz)
Interface 2 = eth2 = Red Interna (IP: 172.16.0.1 = lan)

Copiamos el fichero accounting para la raiz del shorewall
root@firewall:~# cp /usr/share/doc/shorewall/default-config/accounting /etc/shorewall/

Hacemos una tarea técnica, de los servicios que queremos graficar y como lo vamos hacer server dns en la dmz, cabe destacar que hay que tener en cuenta que los paquetes provenientes de otras ips, debemos descartarlos para no graficar un tráfico no deseado, solo de ip-origen a ip-destino, así también con los puertos.

server proxy en la dmz: ip 10.0.0.34 = cadena srvproxy
dmz:10.0.0.34 int tcp 80,20,21,443

server dns en la dmz: ip 10.0.0.35 = cadena srvdns
dmz:10.0.0.35 int tcp 53
dmz:10.0.0.35 int udp 53
int dmz:10.10.10.35 tcp 53
int dmz:10.10.10.35 udp 53

server jabber en la dmz: ip 10.0.0.36 = cadena srvjabber
int dmz:10.10.10.36 tcp 5269
dmz:10.10.10.36 int tcp 5269

server de correo en la dmz: ip 10.0.0.37 = cadena srvcorreo
dmz:10.0.0.37 int tcp 25,80
int dmz:10.0.0.37 tcp 25

server ftp en la dmz: ip 10.0.0.38 = cadena srvftp
int dmz:10.10.10.38 tcp 20,21

server web en la dmz: ip 10.0.0.39 = cadena srvweb
int dmz:10.10.10.39 tcp 80,443,20,21

ip director para que acceda un server en internet: ip 172.16.0.5 = cadena jefe1
lan:172.16.0.5 int:4.4.8.8 tcp 25,80,110,143

ips de los admin de la red, enmascaradas: ip 172.16.0.6 = cadena admin1, ip 172.16.0.7 = cadena admin2
lan:172.16.0.6 int all
lan:172.16.0.7 int all

Editamos el fichero accounting, para ir agregando nuestras reglas y crear nuestras cadenas y así iptables de linux iría filtrando todo el tráfico nuestro byte por byte, para luego procesarlo con otra aplicación.

root@firewall:~# nano /etc/shorewall/accounting

#
# Shorewall version 4 - Accounting File
#
# For information about entries in this file, type "man shorewall-accounting"
#
# Please see http://shorewall.net/Accounting.html for examples and
# additional information about how to use this file.
#
#####################################################################################
#ACTION CHAIN SOURCE DESTINATION PROTO DEST SOURCE USER/ MARK
# PORT(S) PORT(S) GROUP

#server proxy en la dmz
srvproxy:COUNT - eth1:10.0.0.34 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 80,20,21,443
srvproxy:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.0.0.34 tcp 80,20,21,443
DONE srvproxy

#server dns en la dmz
srvdns:COUNT - eth1:10.0.0.35 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 53
srvdns:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.0.0.35 tcp 53
srvdns:COUNT - eth1:10.0.0.35 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 udp - 53
srvdns:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.0.0.35 udp 53
DONE srvdns

#server jabber en la dmz
srvjabber:COUNT - eth1:10.10.10.36 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 5269
srvjabber:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.10.10.36 tcp 5269
DONE srvjabber

#server de correo en la dmz
srvcorreo:COUNT - eth1:10.10.10.37 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 25,80
srvcorreo:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.10.10.37 tcp 25
DONE srvcorreo

#server ftp en la dmz
srvftp:COUNT - eth1:10.10.10.38 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 20,21
srvftp:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.10.10.38 tcp 20,21
DONE srvftp

#server web en la dmz
srvweb:COUNT - eth1:10.10.10.39 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 20,21
srvweb:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.10.10.39 tcp 20,21
DONE srvweb

#ip director para que acceda un sitio en internet
lan:172.16.0.5 int:4.4.8.8 tcp 25,80,110,143
jefe1:COUNT - eth2:172.16.0.5 eth0:4.4.8.8!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 tcp - 25,80,110,143
jefe1:COUNT - eth0:4.4.8.8!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth2:172.16.0.5 tcp 25,80,110,143
DONE jefe1

#ips de los admin de la red, enmascaradas
lan:172.16.0.6 int all
admin1:COUNT - eth2:172.16.0.6 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 - all
admin1:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth2:172.16.0.6 all
DONE admin1
lan:172.16.0.7 int all
admin2:COUNT - eth2:172.16.0.7 eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 - all
admin2:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth2:172.16.0.7 all
DONE admin2

Nota: Una breve explicación de una de las líneas expuestas en el fichero accounting.
---------------------------------------------------------------------------------------------------------
srvproxy:COUNT - eth0:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8 eth1:10.0.0.34 tcp 80,20,21,443
DONE srvproxy
---------------------------------------------------------------------------------------------------------
(srvproxy) Nombre de cadena que el iptables va filtrar
(:COUNT) Significa que dicha cadena va almacenar datos
(-) Llevaría un guión si esta opción no se va usar
(eth0) Interface origen que se va analizar el conteo de paquetes
(:!192.168.0.0/16,172.16.0.0/16,10.0.0.0/8) Que se van excluir los paquetes de este grupo de IPs
(eth1) Interface destino que se va analizar el conteo de paquetes
(:10.0.0.34) Que se van incluir los paquetes de este grupo de IPs
(tcp) Protocolo que se va a filtrar, puede usarse UDP,ICMP,ETC.. o ALL (todos los tipos de protocolos)
(80,20,21,443) Puertos que se van analizar, para luego filtrar.
(DONE srvproxy) Indicándole al iptables que aquí termina el filtrado de esta cadena.
------------------------------------------------------------------------------------------------------
Luego chequeamos si todo está correcto, para luego reiniciar el shorewall.
root@firewall:~# shorewall check
root@firewall:~# shorewall restart

Ver que nuestras cadenas se están ejecutando correctamente.
root@firewall:~# shorewall show accounting

Ya estamos listos para procesar los datos filtrados por el iptables de linux.

Vamos a Instalar Apache2, MRTG, MRTG-RRD y RRDTool
root@firewall:~# aptitude install apache2 mrtg mrtg-rrd rrdtool

Apache2: Servidor web HTTP de código abierto.
RRDTool: Es el acrónimo de Round Robin Database tool. Se trata de una herramienta que trabaja con una base de datos que maneja planificación según Round-Robin. Esta técnica trabaja con una cantidad de datos fija, definida en el momento de crear la base de datos, y un puntero al elemento actual.
MRTG: Herramienta para supervisar la carga de tráfico de interfaces de red.
MRTG-RRD: Visualiza los gráficos para el MRTG a partir de los datos en el formato RRDtool.

Descargamos shorewall_stats.
-----------------------------------------------------------
root@firewall:~#cd /etc/shorewall/
root@firewall:~#wget http://www.nightbrawler.com/code/shorewall-stats/shorewall_stats.tgz
O este
http://www.shorewall.com.au/contrib/shorewall_stats.tar.gz
O estos, re subido por mí
http://www.mediafire.com/?j475j0hn9h5j9
http://www.megaupload.com/?d=YN0OZOI6

root@firewall:~#/etc/shorewall#tar zxvf shorewall_stats.tgz
root@firewall:~#/etc/shorewall#cd shorewall_stats
root@firewall:~#/etc/shorewall/shorewall_stats#ls -l
-rw-r--r-- 1 root root 1028 Jan 19 16:52 accounting
-rw-r--r-- 1 root root 995 Jan 19 16:52 INSTALL
-rw-r--r-- 1 root root 859 Apr 18 11:46 mrtg.cfg
-rwxr-xr-x 1 root root 1935 Jan 19 16:52 shorewall_stats.pl
-----------------------------------------------------------

Editamos el fichero mrtg.cfg del shorewall_stats y agregamos lo siguiente
root@firewall:~#/etc/shorewall/shorewall_stats/#nano mrtg.cfg

WorkDir: /var/www/mrtg
Options[_]: growright, bits
Language: spanish
WriteExpires: Yes
LogFormat: rrdtool
EnableIPv6: no

###################################################
# MRTG con el Accounting del Shorewall
###################################################

# srvproxy
Target[srvproxy]:`perl /etc/shorewall/shorewall_stats.pl srvproxy`
MaxBytes[srvproxy]:12500000
Title[srvproxy]:Trafico de Server Proxy en la DMZ
PageTop[srvproxy]:<H1>Trafico de Server Proxy en la DMZ</H1>

# srvdns
Target[srvdns]:`perl /etc/shorewall/shorewall_stats.pl srvdns`
MaxBytes[srvdns]:12500000
Title[srvdns]:Trafico de Server DNS en la DMZ
PageTop[srvdns]:<H1>Trafico de Server DNS en la DMZ</H1>

# srvjabber
Target[srvjabber]:`perl /etc/shorewall/shorewall_stats.pl srvjabber`
MaxBytes[srvjabber]:12500000
Title[srvjabber]:Trafico de Server Jabber en la DMZ
PageTop[srvjabber]:<H1>Trafico de Server Jabber en la DMZ</H1>

# srvcorreo
Target[srvcorreo]:`perl /etc/shorewall/shorewall_stats.pl srvcorreo`
MaxBytes[srvcorreo]:12500000
Title[srvcorreo]:Trafico de Server Correo en la DMZ
PageTop[srvcorreo]:<H1>Trafico de Server Correo en la DMZ</H1>

# srvftp
Target[srvftp]:`perl /etc/shorewall/shorewall_stats.pl srvftp`
MaxBytes[srvftp]:12500000
Title[srvftp]:Trafico de Server FTP en la DMZ
PageTop[srvftp]:<H1>Trafico de Server FTP en la DMZ</H1>

# srvweb
Target[srvweb]:`perl /etc/shorewall/shorewall_stats.pl srvweb`
MaxBytes[srvweb]:12500000
Title[srvweb]:Trafico de Server Web en la DMZ
PageTop[srvweb]:<H1>Trafico de Server Web en la DMZ</H1>

# jefe1
Target[jefe1]:`perl /etc/shorewall/shorewall_stats.pl jefe1`
MaxBytes[jefe1]:12500000
Title[jefe1]:Trafico del Director
PageTop[jefe1]:<H1>Trafico del Director</H1>

# admin1
Target[admin1]:`perl /etc/shorewall/shorewall_stats.pl admin1`
MaxBytes[admin1]:12500000
Title[admin1]:Trafico del admin1
PageTop[admin1]:<H1>Trafico del admin1</H1>

# admin2
Target[admin2]:`perl /etc/shorewall/shorewall_stats.pl admin2`
MaxBytes[admin2]:12500000
Title[admin2]:Trafico del admin2
PageTop[admin2]:<H1>Trafico del admin2</H1>

Copiamos el mrtg.cfg editado para la carpeta ETC.
root@firewall:~# cp /etc/shorewall/shorewall_stats/mrtg.cfg /etc/

Creamos la carpeta mrtg en /var/www/ y le cambiamos el user a dicha carpeta, por el user www-data(apache2)
-----------------------------------------------------------
root@firewall:~# mkdir /var/www/mrtg
root@firewall:~# chown -R www-data /var/www/mrtg

Después de tener la carpeta mrtg en /var/www con los permisos para el apache2, reiniciamos el shorewall.
shorewall restart
Debemos ejecutar MRTG
root@firewall:~# mrtg
Si sale un error como este debemos, ejecutar este comando env LANG=C /usr/bin/mrtg

-----------------------------------------------------------------------
ERROR: Mrtg will most likely not work properly when the environment
variable LANG is set to UTF-8. Please run mrtg in an environment
where this is not the case. Try the following command to start:

env LANG=C /usr/bin/mrtg
-----------------------------------------------------------------------
root@firewall:~# env LANG=C /usr/bin/mrtg

Ya se pueden ver los ficheros generados .rrd en la carpeta /var/www/mrtg/
root@firewall:~#ls -l /var/www/mrtg/
-----------------------------------------------------------
srvproxy.rdd
srvdns.rdd
srvjabber.rdd
srvcorreo.rdd
srvftp.rdd
srvweb.rdd
jefe1.rdd
admin1.rdd
admin2.rdd

Y asimos irán apareciendo gradualmente los .png del Día.
-----------------------------------------------------------
srvproxy-day.png
srvdns-day.png
srvjabber-day.png
srvcorreo-day.png
srvftp-day.png
srvweb-day.png
jefe1-day.png
admin1-day.png
admin2-day.png

Nota: Para que aparezcan los .png de la Semana, Mes y Año
Se debe acceder a la URL http://localhost/cgi-bin/mrtg-rrd.cgi/ o http://ip-servidor/cgi-bin/mrtg-rrd.cgi/ y estos irán apareciendo, cada vez que accedas a dichos gráficos del Día.
-----------------------------------------------------------
srvproxy-week.png
srvproxy-month.png
srvproxy-year.png

Como:
Ver los logs del mrtg
-----------------------------------------------------------
tailf /var/log/mrtg/mrtg.log

Reiniciar mrtg
-----------------------------------------------------------
env LANG=C /usr/bin/mrtg

Hacer debuguear el mrtg
-----------------------------------------------------------
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg --logging /var/log/mrtg/mrtg.log --debug=snpo,cfg

Asegúrese que la librería mrtg-rrd.cgi y fichero /etc/mrtg.cfg tiene los permisos siguientes.

Nota: Esta librería mrtg-rrd.cgi se encuentra dentro del paquete ya instalado MRTG-RRD
-----------------------------------------------------------
chown www-data.www-data /usr/lib/cgi-bin/mrtg-rrd.cgi
chmod 755 /usr/lib/cgi-bin/mrtg-rrd.cgi
chmod 755 /etc/mrtg.cfg

-rwxr-xr-x 1 www-data www-data 28304 Apr 21 2009/usr/lib/cgi-bin/mrtg-rrd.cgi
-rwxr-xr-x 1 root root 3004 Apr 21 2009/etc/mrtg.cfg
Crear un virtual host, habilitar virtual host y reiniciar apache2
-----------------------------------------------------------
root@firewall:~#nano /etc/apache2/sites-available/traficointernet.hosting.org
root@firewall:~#a2ensite traficointernet.hosting.org
root@firewall:~#invoke-rc.d apache2 restart

Así debe verse nuestro virtual host, si es que quieres tener uno.
------------------------------------------------------------------------------------------------------------------
<VirtualHost*:80>  
ServerName trafico.hosting.org
ServerAdmin serviciotecnicos@hosting.org  
DocumentRoot /var/www/mrtg  
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/  
AddHandler cgi-script .cgi  
AllowOverride None  
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch  
Order allow,deny  
Allow from all  
ErrorLog /var/log/apache2/trafico.hosting.org-error.log  
LogLevel warn  
CustomLog /var/log/apache2/trafico.hosting.org-access.log combined  
ServerSignature On
</VirtualHost>
------------------------------------------------------------------------------------------------------------------

"Las obras de conocimiento deben ser libres, no hay excusas para que no sea así".
Richard Stallman – Fundador del software libre.


17 abr 2011

Doble Validación de usuarios en Squid-Cache con PAM

Escenarios atípicos soluciones correctas

Optimizando los recursos y servidores de una entidad que contaba con dos servidores proxy-cache Squid, para redes y usuarios diferentes, propusimos usar un solo servidor como proxy y que validara de dos formas diferentes.

Escenario

1er servidor proxy estaba validando contra un servidor LDAP externo

2do servidor proxy estaba validando con una librería de Squid llamada ncsa_auth contra un fichero password, alojado en /etc/squid/

Cuestionamiento

¿Por qué no unificar todos los usuarios al LDAP o todos los usuarios al fichero password?

Re: Existen servicios en la red de esta entidad que validan contra el LDAP, como es el caso de un servidor FTP, Correo Electrónico, Jabber, Antivirus, etc. y los usuarios que están en el fichero password, son usuarios externos y que muchos de ellos son temporales y no deberían de estar relacionados a los otros servicios que están en la intranet.

No se preguntó más y comenzamos la tarea de preguntarle a San Google y este respondió muy poco y lo que respondió, lo dio bastante escueto y poco documentado, ya que nos presentamos a un escenario atípico, así que propuse crear un escenario virtual y darle solución cuanto antes para posteriormente llevarlo a la práctica.

Solución

Debemos de tener instalada como requisito indispensable, la librería libapache-htpasswd-perl (Administrar archivo de contraseñas Unix crypt-style), ya que esta librería es la que tiene la aplicación htpasswd y si no tenemos previamente instalado el apache2 o no vamos a usarlo, no la tendríamos en el sistema.

Creamos el fichero password en la ruta que decidamos y adicionamos nuestro primer usuario, llamado user1

htpasswd -c /etc/squid/password user1
New password: (introducimos la contraseña)
Re-type new password: (volvemos a introducir la contraseña)

Debemos instalar libpam-ldapd y configurarla luego de instalada, ya que esta es la que nos va permitir usar la librería de PAM con LDAP, para que PAM se pueda conectar con servidor externo de LDAP.
Nota: Por que usar libpam-ldapd y no usar libpam-ldap, la librería primera delega las consultas LDAP a un servicio no privilegiado centralizado (nslcd) que permite establecer una separación entre el proceso que utiliza la información LDAP y el demonio que hace las consultas LDAP. Esto simplifica la gestión de las conexiones LDAP seguras, credenciales de autenticación LDAP, ofrece un mecanismo más sencillo para realizar el tratamiento de conexiones fallidos y la depuración y evita cargar LDAP y las librerías asociadas en la mayoría de las aplicaciones. No siendo así con la segunda librería.

aptitude install libpam-ldapd

Nos preguntara los siguientes puntos
Identificador del servidor LDAP: ldap://ldap.intranet.org
Nombre distinguido (dn): dc=intranet,dc=org
Versión de LDAP: 3
Hace falta un usuario para acceder a la base de datos ldap: Si
Desea hacer que la configuración solo pueda leer o escribir el propietario: SI
Dar privilegios especiales de ldap para root: No
Cuenta ldap para root: cn=admin,dc=intranet,dc=org
Contraseña ldap para root: (introducimos la contraseña del admin en LDAP)
Local crypt to use when changing passwords: md5

Ya está instalada, configurada nuestra libreria y lista para ser usada por PAM.
Crear el fichero que por el cual Squid le preguntara a PAM como validar sus usuarios
Este fichero siempre debe de ir con el nombre del servicio, según dice el manual de PAM
touch /etc/pam.d/squid
Editar este fichero con algo similar a:

#%PAM-1.0

auth sufficient /lib/security/pam_ldap.so config=/etc/pam_ldap.conf
account sufficient /lib/security/pam_ldap.so config=/etc/pam_ldap.conf

auth optional /lib/security/pam_userdb.so db=/etc/squid/password
session optional /lib/security/pam_userdb.so db=/etc/squid/password
account optional /lib/security/pam_userdb.so db=/etc/squid/password


Aún no hemos terminado, queda por configurar el squid para que valide con PAM, agregándole esta línea.

auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

Según el manual de pam_auth
Debemos cambiarles los permisos siguientes, si no está librería es inutilizable
chown root pam_auth
chmod u+s pam_auth

Después de esto reiniciamos el Squid
invoke-rc.d squid restart

Y nuestra a validación doble en squid. Ya está funcional
Nota: el servicio PAM no hace falta reiniciarlo, solo se reinicia el servicio que usa PAM, en este caso es el Squid

16 abr 2011

Instalación de ISPConfig - Software Control Panel Alojamiento WEB (Open Source) en Linux Debian Squeeze 6.0

ISPConfig es un software libre de panel control hosting web para Linux. Está bajo una licencia BSD, simplifica los detalles complicados de configurar DNS, varios sitios web único nombre de dominio en un cuadro de servidor físico, y las cuentas de correo electrónico para múltiples usuarios en los sitios web.

ISPConfig acelera y simplifica la administración de servidores y tareas comunes de funcionamiento, como la creación de muchos nuevos usuarios cuentas de correo electrónico o de forma rápida la creación de muchas de las raíces (las carpetas de inicio) para nuevos sitios web. Codificación de estos cambios a mano en un símbolo del sistema tomaría más tiempo y esfuerzo. Sería repetitivo (aburrido), y propenso a errores. Por otro lado, nadie lo haría. La mayoría de las instalaciones a gran escala el uso las herramientas de automatización. La adaptación de estas a la especial configuración y diseño de sistema de archivos de ISPConfig puede requerir mucho trabajo. ISPConfig cuenta con una administración muy intuitiva y dinámica que esta a su vez acelera la gestión de creación o administración de sus servicios en el instalado.


Asumamos que previamente debes de tener instalado Liunx Debian Squeeze 6.0 y su servicio de SSH, para realizar toda la instalación de forma remota.
Nota: Esta instalación se puede realizar delante de la Pc.

Configuración de la red
Tendremos que tener en cuenta que la instalación de este servidor de ISPConfig, es con una dirección IP estática.
Editar /etc /network /interfaces y ajustarlo a nuestras necesidades (en este ejemplo de configuración voy a utilizar la dirección IP 172.16.1.2):

nano /etc/network/interfaces

iface lo inet loopback

# La interfaz de red primaria auto eth0
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
network 172.16.1.0
broadcast 172.16.1.255

A continuación, reinicie su red de esta forma:

invoke-rc.d networking restart

Debemos cambiar el nombre del hosts o server con FQDN (Fully qualified domain name), Nombre de dominio valido, ya que instalaremos un servidor de correo y este debe ser válido en los MX externos y así no ocurra problemas con la entrega de correos.

A continuación, edite /etc/hosts. Debe verce así:
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
172.16.1.2 server1.alojamiento.org server1

Ahora ejecute
echo server1.alojamiento.org > /etc/hostname
Después,
/etc/init.d/hostname.sh start

Y luego ejecutamos
hostname
hostname -f

Actualización de la instalación de Linux Debian Squeeze 6.0
Edite /etc/apt/sources.list

Edite /etc/apt/sources.list.
Nota: Comente o quite la instalación de CD de este archivo y asegúrese de que esté el security.
nano /etc/apt/sources.list

deb http://ftp.debian.org/debian squeeze main contrib non-free
deb http://ftp.debian.org/debian-backports squeeze-backports/ main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free

A continuación, ejecute aptitude update y luego aptitude safe-upgrade
para actualizar la base de datos de paquetes apt y aptitud a la actualización de seguridad
para instalar las actualizaciones más recientes (si los hay). Si ves que un nuevo núcleo que se instale como parte de las actualizaciones, debe reiniciar el sistema después con el comando:

reboot

Cambiar el shell por defecto
Dash, al igual que ash, ejecuta los scripts más rápido que bash y depende de menos bibliotecas. Pretende ser más confiable en caso de problemas de actualización o fallos de disco. dash es ideal para ser usado como:

intérprete de comandos en discos de instalación;
intérprete de comandos del usuario root;
reemplazo de /bin/sh;
un entorno de pruebas para shell scripts, para verificar sucompatibilidad con el estándar POSIX.

/bin/sh es un enlace simbólico a /bin/dash, Sin embargo es necesita /bin/bash, no /bin/dash. Por lo tanto, haga lo siguiente:

dpkg-reconfigure dash

Utilizar dash como el shell por defecto del sistema (/bin/sh)? <- No

Instalamos el cliente de tiempo y Sincronizamos el reloj del sistema
Nota: Es muy importante tener el reloj del sistema sincronizado, para que las tareas se ejecuten en tiempo, saber la hora de evento específico guardado en los Logs del sistema, pero si quieres no lo sincronizamos.

Es una buena idea sincronizar el reloj del sistema con un servidor NTP(Network Time Protocol) del servidor a través de Internet. Basta con ejecutar
aptitude install ntp ntpdate

Y la hora del sistema siempre estará en sincronizada.

Instalación de Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter, binutils

Postfix: Agente de transporte de correo electrónico de alto rendimiento de software libre / código abierto.

Courier:
El agente de transferencia de correo(MTA) integrado al servidor de SMTP basado en protocolos abiertos como, ESMTP, IMAP, POP3, LDAP, SSL y HTTP.

Saslauthd:
SASL de Cyrus, programas de administración de la base de datos de usuarios de SASL
MySQL: Servidor de la base de datos MySQL.

Rkhunter:
Es una herramienta de Unix que detecta los rootkits, los backdoors y los exploit locales mediante la comparación de los hashes MD5 de ficheros importantes con su firma correcta.

Binutils:
Es una colección de herramientas de programación para la manipulación de código de objeto en varios formatos de archivos objeto.

Podemos instalar Postfix, Courier, saslauthd, MySQL, phpMyAdmin, rkhunter, y binutils con un solo comando:
Nota: Unas de las grandes ventajas de linux es instalar todo los programas de una sola vez.

aptitude 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

Se le preguntara lo siguientes:

Tipo General de configuración de correo: <-- Sitio de Internet
Sistema de nombres de correo electrónico: <-- server1.alojamiento.org
Nueva contraseña para el MySQL usuario "root": <-- Su contraseña de root para MySQL
Repita la contraseña para el MySQL usuario "root": <-- Su contraseña de root para MySQL
Crear directorios para la administración basada en la web? <-- No
SSL requiere certificado <- Ok

Queremos MySQL para escuchar en todas las interfaces, no solo localhost, por lo que editar el archivo /etc/mysql/my.cnf y comentar la línea de bind-address = 127.0.0.1:

nano /etc/mysql/my.cnf
Debería de verse así
[...]
# 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
[...]
Entonces reinicie MySQL con el comando:

invoke-rc.d mysql restart

Ahora compruebe que la red está habilitada. Ejecutando esto
netstat -tap | grep mysql
La salida debe ser similar a esto:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 10457/mysqld
root@server1:~#

Durante la instalación, los certificados de SSL para IMAP y POP3-SSL SSL se crean con el nombre de host localhost. Para cambiar esto con el nombre de host correcto (server1.alojamiento.org en este tutorial), eliminar los certificados...

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

... y modificar los dos archivos siguientes, reemplace CN=localhost con CN=server1.alojamiento.org (también puede modificar los valores, si es necesario):

nano /etc/courier/imapd.cnf
[...]
CN=server1.alojamiento.org
[...]

/etc/courier/pop3d.cnf
[...]
CN=server1.alojamiento.org
[...]

A continuación, volver a crear los certificados...
mkimapdcert
mkpop3dcert

Y reinicie el Courier-IMAP-SSL y SSL-Courier-POP3:

invoke-rc.d courier-imap-ssl restart
invoke-rc.d courier-pop-ssl restart

Instalación de Amavisd-new, SpamAssassin, y Clamav

Amavisd-new:
Es una aplicación de alto rendimiento y una interfaz segura entre cliente de correo (MTA) y una o más fichas de contenido: escáneres de virus y / o Mail:: SpamAssassin módulo de Perl. Está escrito en Perl, asegurando una alta fiabilidad de portabilidad y facilidad de mantenimiento. Habla a través de la MTA (E) SMTP o protocolos LMTP, o mediante programas de ayuda.

SpamAssassin: Esta programa puede ser integrado con el servidor de correo para filtrar automáticamente todo el correo de un sitio. También puede ser administrado por los usuarios individuales en su propio buzón y se integra con varios programas de correo. SpamAssassin es altamente configurable, si se utiliza como filtro de todo el sistema.

Clamav: Software multi-plataforma de software antivirus tiene un juego de herramientas capaces de detectar muchos tipos de software malicioso, como virus. Uno de sus principales usos es en los servidores de correo como un antivirus en el servidor de correo electrónico. La aplicación fue desarrollada para Unix y tiene versiones de terceros disponible para AIX, BSD, HP-UX, Linux, Mac OS X, OpenVMS, OSF y Solaris. Desde la versión 0.96 de ClamAV construye y se ejecuta en Microsoft Windows. Tanto ClamAV y sus actualizaciones están disponibles de forma gratuita.


Para instalar amavisd-new, SpamAssassin, ClamAV y, corremos
aptitude 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

Instalación de Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, And mcrypt

Apache: El servidor HTTP Apache es un servidor web HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la noción de sitio virtual.

PHP5: Es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente para la interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica
Phpmyadmin: Herramienta de administración web para MySQL.

FCGI: FastCGI es un módulo de lenguaje independiente, de extensión escalable, abierta del CGI que proporciona un alto rendimiento y persistencia, sin las limitaciones de la API de un servidor específico.
suExec: Proporciona a los usuarios de Apache la posibilidad de ejecutar programas CGI y SSI en los IDs de usuario diferente del ID de usuario de la web llamando al servidor web. Normalmente, cuando un programa CGI o SSI se ejecuta, se ejecuta como el mismo usuario que ejecuta el servidor web.

Pear: Es un entorno de desarrollo y sistema de distribución para componentes de código PHP.

MCrypt: Esta es una interfaz a la biblioteca mcrypt, que soporta una amplia variedad de algoritmos de bloque
como DES, TripleDES, Blowfish (por defecto), 3-WAY, SEGURO SK64, SK128 SEGURO, TWOFISH, TEA, RC2 y GOST en el CBC, OFB, CFB y modos BCE cifra. Adicionalmente, soporta RC6 e IDEA que se consideran "no libre". CFB / OFB son 8 bits por defecto.

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear, y puede ser instalado de la siguiente manera:

aptitude 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

Podrás ver las siguientes preguntas:
Reconfigurar automáticamente Servidor Web: <- apache2
Configurar la base de datos de phpmyadmin con dbconfig-común? <- No

A continuación, ejecute el comando siguiente para activar el de módulos de Apache suexec, rewrite, ssl, actions, e incluye (tambien dav, dav_fs, y auth_digest si desea utilizar WebDAV):

a2enmod suexec rewrite ssl actions include
a2enmod dav_fs dav auth_digest

Reinicie Apache después:
invoke-rc.d apache2 restart

Instalación PureFTPd y Quota
PureFTPd: Es un servidor FTP libre (licencia BSD). Puede ser compilado y ejecutado en una variedad de sistemas operativos tipo Unix computadora, incluyendo Linux, OpenBSD, NetBSD, FreeBSD, BSD, FreeBSD, Solaris, Tru64, Darwin, Irix y HP-UX

Quota: Cuota se implementa mediante el sistema BSD interfaz de llamada como el medio de comunicación con el nivel de usuario. Esto se basa en el sistema de cuotas de Melbourne, que utiliza tanto el usuario y los archivos de grupo de cuotas.


PureFTPd y quota se puede instalar con el siguiente comando:

aptitude install pure-ftpd-common pure-ftpd-mysql quota quotatool

Edite este archivo: /etc/default/pure-ftpd-common
nano /etc/default/pure-ftpd-common

y asegúrese de que el modo de inicio se establece en independiente y establecer VIRTUALCHROOT=true:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Edite este archivo: /etc/inetd.conf
nano /etc/inetd.conf
Si hay una línea que comienza con ftp stream tcp, coméntelo (si no existe esta línea, no tenemos que modificar el fichero /etc/inetd.conf):
[...]
#:STANDARD: These are standard services.
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
[...]

Si tuviera que modificar el archivo /etc/inetd.conf, reinicie inetd:
invoke-rc.d openbsd-inetd restart

Ahora configuramos PureFTPd para permitir sesiones FTP y TLS. FTP es un protocolo muy inseguro, porque todas las contraseñas y todos los datos se transfieren en texto claro. Mediante el uso de TLS, toda la comunicación puede ser encriptada, lo que hace FTP mucho más seguro.

Si desea permitir que las sesiones FTP y TLS, ejecute:
echo 1 > /etc/pure-ftpd/conf/TLS

Para utilizar TLS, debemos crear un certificado SSL. Lo creamos en /etc/ssl/private/, por lo tanto creamos primero el directorio:

mkdir -p /etc/ssl/private/
A continuación, podemos generar el certificado SSL de la siguiente manera:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Nombre País (código de 2 letras)[AU]:<- Escriba su nombre y país (por ejemplo, "DE").
Nombre del Estado o provincia (nombre completo) [Algunos-Estado]:<- Escriba su Estado o Provincia.
Nombre de la localidad (por ejemplo, de la ciudad) []:<- Escriba su ciudad.
Nombre de la organización (por ejemplo, de la empresa) [Internet Widgits]:<- Escriba su nombre de la organización (el nombre de su empresa).
Unidad organizativa Nombre (por ejemplo, la sección) []:<- Escriba su nombre de su unidad de organización (por ejemplo, "Departamento de IT").
Nombre común (por ejemplo, el nombre de Suyo) []:<- Escriba el nombre de dominio completo del sistema (por ejemplo, "server1.alojamiento.org").
Dirección de correo electrónico []:<- Ingrese su dirección de correo electrónico.

Cambie los permisos del certificado SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pem

A continuación, reinicie PureFTPd:
invoke-rc.d pure-ftpd-mysql restart

Edite este archivo: /etc/fstab. busque (ext3 errors=remount-ro) y adiciónele esto ((,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0) a la partición con el punto de montaje /))
Quedaria así.
[...]
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
[...]

Para habilitar las cuotas, ejecute estos comandos:
mount -o remount /
quotacheck -avugm
quotaon -avug

Instalación BIND DNS Server
Bind: Servidor de Nombres de Dominio de Internet

Bind puede ser instalado de la siguiente manera:

aptitude install bind9 dnsutils

Instalación Vlogger, Webalizer y AWstats

Vlogger: Analizador/rotador de archivos de registro de servidores web virtuales.

Webalizer: Programa para el análisis de registros de servidores web.

AWstats: Poderoso y completo servidor de Web Log Analyzer


Vlogger, Webalizer, y AWstats se pueden instalar de la siguiente manera:

aptitude install vlogger webalizer awstats

Abra el archivo /etc/cron.d/awstats después...
nano /etc/cron.d/awstats
... y comente los trabajos de cron en este archivo:
[...]
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
[...]

Instalación Jailkit

Jailkit: Es una herramienta que nos permitirán modificar las cuentas que deseemos para limitar el acceso a diversos archivos o comandos específicos de una manera fácil e intuitiva.

Jailkit sólo es necesario si quieres hacer chroot a usuarios SSH. Se puede instalar de la siguiente manera (importante: Jailkit debe estar instalado antes de ISPConfig - no se puede instalar después!):

aptitude 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*

Instalación fail2ban
fail2ban: Es una aplicación escrita en Python para la prevención de intrusos en un sistema, que se basa en la penalización de conexión (bloquear conexión) a los orígenes que intentan accesos por fuerza bruta.

aptitude install fail2ban
Para hacer que fail2ban supervise: PureFTPd, SASL, y Courier, cree el archivo /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.local
... y adicionele esto.
[...]
[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
[...]

A continuación, cree los siguientes cinco archivos de filtro:
nano /etc/fail2ban/filter.d/pureftpd.conf
[...]
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =
[...]

nano /etc/fail2ban/filter.d/courierpop3.conf
[...]
# 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 "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#
failregex = pop3d: LOGIN FAILED.*ip=\[.*:\]

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

nano /etc/fail2ban/filter.d/courierpop3s.conf
[...]
# 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 "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#
failregex = pop3d-ssl: LOGIN FAILED.*ip=\[.*:\]

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

nano /etc/fail2ban/filter.d/courierimap.conf
[...]
# 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 "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#
failregex = imapd: LOGIN FAILED.*ip=\[.*:\]

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

nano /etc/fail2ban/filter.d/courierimaps.conf
[...]
# 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 "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#
failregex = imapd-ssl: LOGIN FAILED.*ip=\[.*:\]

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

Reiniciamos fail2ban después:
invoke-rc.d fail2ban restart

Instalación SquirrelMail
SquirrelMail: Es una aplicación webmail escrita en PHP. Puede ser instalado en la mayoría de servidores web siempre y cuando éste soporte PHP y el servidor web tenga acceso a un servidor IMAP y a otro SMTP.

Para instalar el cliente de correo web SquirrelMail, ejecute

aptitude install squirrelmail

A continuación, cree el siguiente enlace simbólico...
ln -s /usr/share/squirrelmail/ /var/www/webmail

.. y configure el SquirrelMail:
squirrelmail-configure
Debemos decirle al SquirrelMail que estamos utilizando Courier-IMAP/-POP3:

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
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

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
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others. If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct. This does not change everything. There are
only a few settings that this will change.

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

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


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

Posteriormente se puede acceder a SquirrelMail en http://server1.alojamiento.org/webmail o http://172.16.1.2/webmail:

Instalando ISPConfig 3
Para instalar ISPConfig 3 de la última versión publicada, haga lo siguiente:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

El siguiente paso es ejecutar:
php -q install.php

Esto iniciará el programa de instalación de ISPConfig 3. El instalador configurara todos los servicios como Postfix, Dovecot, etc por usted.

root@server1:/tmp/ispconfig3_install/install# php -q install.php

ISPConfig 3

>> Inicializando configuración

Sistema operativo: Debian 6.0 (Squeeze/Sid) o compatible

Le serán realizadas unas series de preguntas para la configuración principal así que tenga cuidado.
Los valores por defecto están entre [corchetes] y puede ser aceptada con .
Pulse en "salir" (sin las comillas) para Parando el programa de instalación.

Seleccione el idioma (en,de) [en]: <-- ENTER

El modo de instalación (experto,estándar)[estándar]: <-- ENTER

Nombre completo (FQDN) del servidor, por ejemplo, server1.domain.tld [server1.alojamiento.org]: <-- ENTER

Nombre de host del servidor MySQL [localhost]: <-- ENTER

Nombre de usuario root de MySQL [root]: <-- ENTER

Contraseña de root para MySQL []: <-- su contraseña de root sql

Base de datos MySQL para crear [dbispconfig]: <-- ENTER

Conjunto de caracteres para MySQL[utf8]: <-- ENTER

Generación de una clave privada RSA de 2048 bits
.......+++
...........................................................................................................+++
Está escrita la nueva clave privada para 'smtpd.key'
-----

Ahora se le pedirá que introduzca la información que se incorporarán
en su solicitud de certificado.
Lo que usted está a punto de ENTER es lo que se llama un nombre completo o una DN.
Hay muy pocos campos, para que pueda dejar algunas en blanco
Para algunos campos no habrá un valor predeterminado,
Si introduce '.', el campo se dejará en blanco.
-----

Nombre País (código de 2 letras) [UA]: <- ENTER
Nombre del Estado o provincia (nombre completo) [Algunas Estado]: <- ENTER
Sitio Nombre (por ejemplo, de la ciudad) []: <- ENTER
Nombre de la organización (por ejemplo, de la empresa) [Internet Widgits Pty Ltd]: <- ENTER
Unidad organizativa Nombre (por ejemplo, la sección) []: <- ENTER
Nombre común (por ejemplo, Su nombre) []: <- ENTER
Dirección de correo electrónico []: <- ENTER
Configuración Jailkit
Configuración de SASL
Configuración de PAM
Configuración de Correo
Configurando Spamassassin
Configurar Amavisd
Configuración GetMail
Configuración PureFTPd
Configuración de BIND
Configuración de Apache
Configuración Vlogger
Configuración de las aplicaciones host virtual
Configuración del servidor de seguridad
La instalación de ISPConfig
ISPConfig Puerto [8080]: <- ENTER

Configuración DBserver
Instalando ISPConfig crontab
No crontab para el usuario root
No crontab para GetMail
Reinicio de los servicios...
Parando servidor de base de datos MySQL: mysqld.
Inicio del servidor de base de datos MySQL: mysqld.
Comprobación de datos corruptos, no limpiado, cerrando y actualizando las tablas ..
Parando Postfix Mail Transport Agent: postfix.
Inicio del Postfix Mail Transport Agent: postfix.
Parando SASL Demonio de autenticación: saslauthd.
Inicio del SASL Demonio de autenticación: saslauthd.
Parando amavisd: amavisd-new.
Inicio del amavisd: amavisd-new.
Parando el demonio ClamAV: clamd.
Inicio del demonio ClamAV: clamd.
Parando los servicios de autenticación de Correo: authdaemond.
Inicio del Correo servicios de autenticación: authdaemond.
Detención el Correo del servidor IMAP: imapd.
Inicio del Correo del servidor IMAP: imapd.
Detención el Correo IMAP-SSL de servidor: imapd-ssl.
Inicio del Correo IMAP-SSL de servidor: imapd-ssl.
Detención del servidor de Correo POP3: pop3d.
Inicio del servidor de Correo POP3: pop3d.
Detención de Correo POP3-SSL de servidor: pop3d-ssl.
Inicio del Correo POP3-SSL de servidor: pop3d-ssl.
Reinicio del servidor web: apache2... en espera...
Reiniciar el servidor ftp: Corriendo: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -b -A -O clf:/var/log/pure-ftpd/transfer.log -8 UTF-8 -Y 1 -D -u 1000 -E -B
Parando el servicio de nombres de dominio...: bind9 esperando pid 22267 para parar.
Iniciar el servicio de nombres de dominio...: bind9.
La Instalación se ha completado.
root@server1:/tmp/ispconfig3_install/install#

El programa de instalación configura automáticamente todos los servicios subyacentes, por lo que no es necesaria la configuración manual.

Posteriormente se puede acceder a ISPConfig 3 bajo http://server1.alojamiento.org:8080/ o http://172.16.1.2:8080/. Inicie sesión con el nombre de usuario admin y la contraseña de administrador (debe cambiar la contraseña por defecto después de su primer inicio de sesión):

El sistema está ahora listo para ser utilizado.

Link del Manual de Administración del ISPConfig.