martes, enero 10, 2017

Debian stretch 64 bits instalacion cisco packet tracer

Por aca les documento como instalar  Cisco Packet Tracer 7 en debian Stretch ya que hay un pequeño problema y no corre por defecto, esta es la solución que encontré. 

0. El requerimiento de este software es java así que nos podemos asegurar que java esta instalado y configurado con el comando 
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

1. Se descarga Cisco Packet Tracer 7 la versión Ubuntu 14.04 supported for 64 bit de Cisco Networking Academy

2. Descargamos la librería libssl1.0.0 de la siguiente dirección: https://packages.debian.org/jessie/libssl1.0.0

3. Instalamos la libreria
dpkg -i libssl1.0.0_1.0.1t-1+deb8u5_amd64.deb
(Leyendo la base de datos ... 257182 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar libssl1.0.0_1.0.1t-1+deb8u5_amd64.deb ...
Desempaquetando libssl1.0.0:amd64 (1.0.1t-1+deb8u5) ...
Configurando libssl1.0.0:amd64 (1.0.1t-1+deb8u5) ...

4. Descomprimimos el tar de packet tracert e instalamos ./install
tar xvf PacketTracer70_64bit_linux.tar.gz 
cd  PacketTracer70
./install

Espero que les sirva, bendiciones


viernes, octubre 21, 2016

Postfix creación de lista de correo desde grupo de AD

Postfix creación de lista de correo desde grupo de AD

Creamos el archivo /etc/postfix/ldap_virtual_groups.cf con el siguiente contendo
server_host = 172.16.112.250
search_base = OU=Listas de Correo,DC=midominio,DC=local
version = 3
query_filter = (&(objectClass=group)(mail=%s))
leaf_result_attribute = mail
special_result_attribute = member
bind = yes


bind_dn         = CN=correo,OU=Usuarios,DC=midominio,DC=local
bind_pw = clave

Lo agregamos a la configuracion postfix tomando en cuenta el alias que ya teníamos para la redirección de correos.
postconf virtual_alias_maps=proxy:ldap:/etc/postfix/ldap_virtual_groups.cf,
proxy:ldap:/etc/postfix/ldap_virtual_aliases.cf

martes, octubre 04, 2016

Servidor de correo Debian 8 Jessie: Instalación de Postfix, Dovecot y Roundcube con autenticacion AD


Este es el cuarto de una serie de artículos para la instalación completa de un servidor de correos con Debian Jessie 8.5.

Instalación del software.


INSTALACIÓN DE MYSQL

Instalamos un generador de contraseñas
apt install pwgen pwgen -s 30 1
AlK8MmQ0AgZReUGaqE8IjwDkrdr5Xl

Instalamos MySQL, utilicemos la contraseña generada AlK8MmQ0AgZReUGaqE8IjwDkrdr5Xl para el usuario root de MySQL
apt install mysql-server

Creamos archivo de conexión para ingresar a MySQL sin tener que escribir la contraseña.

vi /root/.my.cnf
[client] password=AlK8MmQ0AgZReUGaqE8IjwDkrdr5Xl

Damos permisos
chmod u=rw,go= /root/.my.cnf

probamos la conexión
mysql

Podemos ejecutar el script mysql_secure_installation para mejorar la seguridad MySQL
mysql_secure_installation

INSTALACIÓN APACHE

apt install apache2

Editamos el archivo /etc/apache2/sites-available/default-ssl.conf
y cambiamos los siguientes parametros con el certificado para el servidor
SSLCertificateFile /etc/ssl/certs/mail.midominio.sv.pem
SSLCertificateKeyFile /etc/ssl/private/mail.midominio.sv.key

habilitamos la encriptación y reiniciamos
a2enmod ssl
a2ensite default-ssl

systemctl reload apache2

Probamos apache desde un navegador
http://server01/
https://server01/

Hacemos redirección permanente hacia https
Editamos el archivo /etc/apache2/sites-available/000-default.conf

Agregamos la linea
Redirect permanent / https://server01/
...

systemctl reload apache2


INSTALAR POSTFIX

apt install postfix postfix-pcre postfix-ldap
Deberá colocar el nombre del sitio en internet.

apt --purge remove 'exim4*'
apt install spamassassin spamass-milter

INSTALAR DOVECOT

apt-get install dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-ldap dovecot-managesieved dovecot-sieve

INSTALAR ROUNDCUBE


Agregamos el repositorio backports al archivo /etc/apt/sources.list
deb http://http.debian.net/debian jessie-backports main
apt update

Generamos una clave para roundcube

root@server01:~# pwgen -s 30 1
uTHpbYmQ8aUAF8R1L5qrjszA9joTKN

apt install roundcube roundcube-plugins

Instalamos paquetes Php y paquetes adicionales adicionales utilizados por roundcube
apt install php5 php5-mysql php5-mcrypt php5-intl php-pear php5-ldap libapache2-mod-php5 php-net-ldap2 php-net-ldap3

Verificamos los puertos abiertos
lsof -Pni

Configuración de Postfix

Para evitar ataques de aquellos que fingen no soportar los métodos modernos de encriptación
postconf 'smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3'

Escribir los dominios virtuales en el archivo /etc/postfix/virtual_domains de la siguiente manera
root@srvserver01:/etc/postfix# cat virtual_domains
midominio.com OK
midominio.sv  OK

Crear archivo binario.
postmap hash:/etc/postfix/virtual_domains

Configuramos Postfix para que utilice el archivo creado de la siguiente manera:
postconf virtual_mailbox_domains=hash:/etc/postfix/virtual_domains

Probamos la configuración
postmap -q midominio.sv hash:/etc/postfix/virtual_domains

Configuración de los archivos para la base de direcciones de correo, esta configuracion hará la consulta en un servidor AD windows 2008 y comprobará la dirección de correo.
Se crea el archivo /etc/postfix/ldap_virtual_recipients.cf

root@srvserver01:/etc/postfix# cat ldap_virtual_recipients.cf
server_host     = 172.16.112.250
server_port     = 389
version         = 3
bind            = yes
startt_tls      = no
bind_dn         = CN=correo,OU=Usuarios,DC=midominio,DC=local
bind_pw         = clave
search_base     = ou=Usuarios,dc=midominio,dc=local
scope           = sub
query_filter    = (&(mail=%s)(objectclass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= mail
#result_format   = %d/%u/Maildir/
#debuglevel      = 0

Se crea el archivo /etc/postfix/ldap_virtual_aliases.cf
root@srvserver01:/etc/postfix# cat ldap_virtual_aliases.cf
server_host     = 172.16.112.250
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = CN=correo,OU=Usuarios,DC=midominio,DC=local
bind_pw         = clave
search_base     = OU=Usuarios,DC=midominio,DC=local
scope           = sub
query_filter    = (&(mailNickname=%s)(objectclass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= mail, mailNickname
#debuglevel      = 0

Se le indica a postfix como utilizar estos archivos
postconf virtual_mailbox_maps=proxy:ldap:/etc/postfix/ldap_virtual_recipients.cf
postconf virtual_alias_maps=proxy:ldap:/etc/postfix/ldap_virtual_aliases.cf

Cambiamos los permisos
chgrp postfix /etc/postfix/ldap_*.cf
chmod u=rw,g=r,o= /etc/postfix/ldap_*.cf

Probamos la configuraciones de los archivos
postmap -q sosorio@midominio.sv ldap:/etc/postfix/ldap_virtual_recipients.cf
postmap -q sosorio@ midominio.com ldap:/etc/postfix/ldap_virtual_aliases.cf


Configuramos certificados
Autoridad Certificadora
postconf smtpd_tls_CAfile=/etc/ssl/certs/dominio-ca.pem

Certificado publico
postconf smtpd_tls_cert_file=/etc/ssl/certs/mail.dominio.sv.pem

Clave privada sin clave
postconf smtpd_tls_key_file=/etc/ssl/private/mail.dominio.sv.key


Configuración Dovecot

Creación de grupo y usuario.
root@srvserver01:/etc/postfix# addgroup --system --gid 5000 vmail
Añadiendo el grupo `vmail' (GID 5000) ...
Hecho.

root@srvserver01:/etc/postfix# adduser --system --home /var/vmail --uid 5000 --gid 5000 --disabled-password --disabled-login vmail
Añadiendo el usuario del sistema `vmail' (UID 5000) ...
Añadiendo un nuevo usuario `vmail' (UID 5000) con grupo `vmail' ...
Creando el directorio personal `/var/vmail' ...

Cambiamos los permisos
chown -R vmail.vmail /var/vmail

Cambiemos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login

#!include auth-system.conf.ext
#!include auth-sql.conf.ext
!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/vmail/%d/%n/Maildir
mail_privileged_group = vmail
mail_uid = 5000
mail_gid = 5000

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0660
  user = postfix
  group = postfix
}

Este archivo de configuración que maneja los servicios que permiten la comunicación con otros procesos.

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-ssl.conf
#Activamos la encriptación TLS/SSL
ssl = yes
#Colocamos nuestros certificados para el servidor.
ssl_cert =
ssl_key =
Modificamos el archivo /etc/dovecot/conf.d/15-mailboxes.conf de la siguiente manera:
namespace inbox {
inbox = yes
list = yes
location =
prefix = INBOX.
mailbox Drafts {
special_use = \Drafts
auto=subscribe
}
mailbox Junk {
special_use = \Junk
}
mailbox Spam {
special_use = \Junk
auto=subscribe
}
mailbox Trash {
special_use = \Trash
auto=subscribe
}
mailbox Sent {
special_use = \Sent
auto=subscribe
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Archive {
special_use = \Archive
}
mailbox "Archives" {
special_use = \Archive
auto=subscribe
}
}

Agregamos las siguientes opciones en el archivo /etc/dovecot/dovecot-ldap.conf.ext
hosts = 172.16.112.250 # Windows Active Directory
dn = CN=correo,OU=Usuarios,DC=midominio,DC=local
dnpass = clave
tls = no
auth_bind = yes
ldap_version = 3
base = OU=Usuarios,DC=midominio,DC=local
scope = subtree
user_attrs = \
=home=/var/vmail/%d/%{ldap:sAMAccountName}, \
=mail=maildir:/var/vmail/%d/%{ldap:sAMAccountName}/Maildir
user_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
iterate_attrs = mail=user
iterate_filter = (objectClass=person)

cambiamos los permisos
root@srvserver01:/# chown root:root /etc/dovecot/dovecot-ldap.conf.ext
root@srvserver01:/# chmod go= /etc/dovecot/dovecot-ldap.conf.ext

reiniciamos dovecote
root@srvserver01:/# systemctl restart dovecot

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-logging.conf
log_path = syslog
syslog_facility =mail
auth_debug = yes

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/10-master.conf
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0660
user = postfix
}
}
unix_listener auth-userdb {
    mode = 0660
    user = vmail
    group = vmail
}

Configuramos Postfix para comunicarse con Dovecot utilizando LMTP
postconf virtual_transport=lmtp:unix:private/dovecot-lmtp

Cambiamos las siguientes opciones en el archivo /etc/dovecot/conf.d/20-lmtp.conf
mail_plugins = $mail_plugins sieve

Modificamos las siguientes opciones en el archivo /etc/postfix/master.cf:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sender_login_maps=ldap:/etc/postfix/ldap_virtual_recipients.cf
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
...
#al final del archivo agregamos la siguiente linea
dovecot unix - n n - - pipe
flags=ODRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -e -f ${sender} -d ${recipient}

reiniciamos el servicios
systemctl restart dovecot postfix

Instalacion y configuracion SASL (Cyrus)

Instalamos el software
apt-get install libsasl2-2 sasl2-bin

Agregamos las siguientes opciones al archivo /etc/postfix/sasl/smtpd.conf
log_level: 3
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

Cambiamos las siguientes opciones en el archivo /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Creamos el siguiente archivo /etc/saslauthd.conf con el siguiente contenido.
ldap_servers: ldap://172.16.112.250/
ldap_search_base: ou=Usuarios,dc=midominio,dc=local
ldap_timeout: 10
ldap_filter: sAMAccountName=%U
ldap_bind_dn: CN=correo,OU=Usuarios,DC=midominio,DC=local
ldap_password: clave
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind
Cambiamos los permisos
chown root:sasl /etc/saslauthd.conf
chmod 644 /etc/saslauthd.conf

agregamos el usuario postfix al grupo  sasl
adduser postfix sasl

Reiniciamos el servicio
systemctl restart saslauthd

Probamos la conexión.
testsaslauthd -u sosorio@dominio.sv -p secret -f /var/spool/postfix/var/run/saslauthd/mux


Configuracion Postfix y Seguridad sasl

postconf myhostname=mail.midominio.sv
postconf smtp_tls_note_starttls_offer=yes
postconf smtpd_tls_loglevel=0
postconf smtpd_tls_received_header=yes
postconf broken_sasl_auth_clients=yes
postconf smtpd_sasl_auth_enable=yes
postconf smtpd_tls_security_level=may
postconf smtpd_client_new_tls_session_rate_limit=10
postconf 'smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache'
postconf smtpd_sasl_authenticated_header=yes

postconf smtpd_tls_auth_only=yes
postconf smtp_use_tls=yes
postconf smtpd_sasl_auth_enable=yes
postconf smtpd_sasl_type=dovecot
postconf local_recipient_maps=
postconf smtpd_use_tls=yes
postconf smtp_tls_note_starttls_offer=yes
postconf smtpd_tls_loglevel=1
postconf smtpd_tls_received_header=yes
postconf smtpd_tls_session_cache_timeout=3600s
postconf tls_random_source=dev:/dev/urandom

postconf smtpd_sasl_type=dovecot
postconf smtpd_sasl_path=private/auth
postconf queue_directory=/var/spool/postfix


postconf smtpd_use_tls=yes
postconf ‘smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache’
postconf ‘smtp_tls_session_cache_database=btree:${data_directory}/smtp_scache’
postconf ‘smtpd_tls_exclude_ciphers =EXP EDH-RSA-DES-CBC-SHA ADH-DES-CBC-SHA DES-CBC-SHA SEED-SHA’

# Diffie-Hellman Parameters for Perfect Forward Secrecy
# Can be created with:
# openssl dhparam -2 -out dh_512.pem 512
# openssl dhparam -2 -out dh_1024.pem 1024
postconf ‘smtpd_tls_dh512_param_file=${config_directory}/certs/dh_512.pem’
postconf ‘smtpd_tls_dh1024_param_file=${config_directory}/certs/dh_1024.pem’

Creamos el directorio
mkdir /etc/postfix/certs/
cd /etc/postfix/certs/

Luego generamos los certificados de la siguiente manera:
root@server01:/etc/postfix/certs# openssl dhparam -2 -out dh_512.pem 512
root@server01:/etc/postfix/certs# openssl dhparam -2 -out dh_1024.pem 1024

Reiniciamos los servicios
systemctl restart dovecot postfix saslauthd
systemctl status dovecot postfix saslauthd

Configuracion SpamAssassin

apt install swaks

postconf smtpd_milters=unix:/spamass/spamass.sock
postconf ‘milter_connect_macros="i j {daemon_name} v {if_name} _"’

modificamos en el archivo /etc/default/spamassassin las siguientes opciones:

OPTIONS="--create-prefs --max-children 5 -D --nouser-config --helper-home-dir -u debian-spamd --virtual-config-dir=/var/lib/spamassassin"
CRON=1

habilitamos el servicio
systemctl enable spamassassin

Cambiamos los siguientes permisos

chmod 775 /var/lib/spamassassin


Agregamos el usuario spamass-milter al grupo debian-spamd y el usuario debian-spamd al grupo spamd
adduser spamass-milter debian-spamd

adduser debian-spamd spamd

systemctl restart spamassassin spamass-milter

probamos la detección de spam
swaks --to sosorio@midominio.sv --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt

Enviamos los spam detectados a la carpeta Spam.

Modificamos en el archivo /etc/dovecot/conf.d/90-sieve.conf la siguiente opción
sieve_after = /etc/dovecot/sieve-after

Creamos la carpeta
mkdir /etc/dovecot/sieve-after

Creamos el archivo /etc/dovecot/sieve-after/spam-to-folder.sieve con el siguiente contenido

require ["fileinto","mailbox"];
if header :contains "X-Spam-Flag" "YES" {
 fileinto :create "INBOX.Spam";
 stop;
}

Compilamos el script
sievec /etc/dovecot/sieve-after/spam-to-folder.sieve

Reiniciamos dovecot
systemctl restart dovecot

probamos el redireccionamiento de los spam
swaks --to sosorio@midominio.sv --server localhost --data /usr/share/doc/spamassassin/examples/sample-spam.txt


Configuracion roundcube

Insertar en el archivo /etc/apache2/sites-available/default-ssl.conf las siguientes lineas entre los tag’s y

Include /etc/roundcube/apache.conf
Alias / /var/lib/roundcube/

Reiniciamos el servicio
systemctl restart apache2

En un navegador podemos colocar la direccion del servidor y nos debe aparecer la pantalla de ingreso de roundcube.
https://server01/

modificamos /etc/roundcube/config.inc.php para que nos quede de la siguiente manera:
//…
$config['default_host'] = 'localhost';
//...
// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
'archive',
'zipdownload',
 'managesieve',         
 'password',            
);

// skin name: folder from skins/
$config['skin'] = 'larry';

$config['session_lifetime'] = 60;
$config['skin_logo'] = './logo_midominio.png';

// configuracion de la libreta de direcciones

$config['ldap_public'] = array(
    'midominio_Ldap' =>array (
        'name' => 'Contactos midominio',
        'hosts' => array('172.16.112.250'),
        'sizelimit' => 6000,
        'port' => 389,
        'use_tls' => false,
        'user_specific' => true,
        'base_dn' => 'OU=Usuarios,DC=midominio,DC=local',
        'bind_dn' => 'CN=correo,OU=Usuarios,DC=mmidominio,DC=local',
        'bind_pass' => 'clave',
        'writable' => false,
        'ldap_version' => 3,
        'search_fields' => array(
           'mail',
           'cn',
        ),
      'fieldmap' => array(
        'name'        => 'cn',
        'surname'     => 'sn',
        'firstname'   => 'givenName',
        'email'       => 'mail',
        'department'  => 'physicalDeliveryOfficeName',
        'jobtitle'    => 'title',
        'phone:home'  => 'homePhone',
        'phone:work'  => 'telephoneNumber',
        'phone:mobile' => 'mobile',
               'phone.work2' => ipphone,
         'country'     => 'c',
         'organization' => 'company',
         'notes'       => 'description',
        ),
        'sort' => 'sn',
        'scope' => 'sub',
        'filter' => '(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))',
        'global_search' => true,
        'fuzzy_search' => true
    ),
);

Reiniciamos el servicio
systemctl restart apache2

Fuente
Workaround.org: ISPmail guide for Debian Jessie
Acidx's blog: Installing a Mailserver with Postfix, Dovecot, SASL, LDAP & Roundcube

Indice.
1. Servidor de correo Debian 8 Jessie: Instalacion del sistema operativo y asegurar las conexiones ssh por medio de llaves.
2. Servidor de correo Debian 8 Jessie: Instalación de servicio DNS seguro.
3. Servidor de correo Debian 8 Jessie: Instalación certificados generados por autoridad certificadora (CA) windows.
4. Servidor de correo Debian 8 Jessie: Instalación de Postfix, Dovecot y Roundcube con autenticacion AD

Servidor de correo GNU/Debian Jessie: Postfix, Bind9, Dovecot, Sasl, Apache, Roundcube con autenticacion LDAP

miércoles, septiembre 21, 2016

Servidor de correo Debian 8 Jessie: Instalación certificados generados por autoridad certificadora (CA) windows


Este es el segundo de una serie de artículos para la instalación completa de un servidor de correos con Debian Jessie 8.5. Instalación certificados generados por CA windows.

Esta es mi realidad trabajo con una red mixta con equipos gnu/linux y windows y la de muchos en mi país, así que esta es la motivación de la publicación de este artículo, Bendiciones.

Instalación certificado CA de una autoridad certificadora (CA) Windows.


En primer lugar,  se debe exportar el certificado raiz de la autoridad certificadora (CA):  se debe utilizar la opción [Base-64 encoded X.509 (CER)] y la extensión debe ser crt.

Luego copiamos el certificado micert-ca.crt hacia el servidor de correos.

Copiamos micert-ca.crt hacia el directorio /usr/local/share/ca-certificates/

cp micert-ca.crt /usr/local/share/ca-certificates/ 

Actualizamos la base de certificados

root@server01:~# update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done. 

Instalación certificado para el servidor de correos generado por una autoridad certificadora (CA) window.

 
En primer lugar, generamos el certificado para nuestro dominio, luego lo exportamos el certificado e incluimos las claves privadas (Yes, export the private key), Siguiente y colocamos una contraseña.

Luego copiamos el certificado mail-midominio.pfx hacia el servidor de correos.

Generar todos los certificados incluyendo la clave privada de la siguiente manera:

root@server01:~# openssl pkcs12 -in mail-midominio.pfx -out mail.midominio.sv.txt -nodes


Generar el certificado sin la clave privada
root@server01:~# openssl pkcs12 -in mail-midominio.pfx -out mail.midominio.sv.pem


Generar la clave privadas
root@server01:~# openssl rsa -in mail.midominio.sv.txt -out mail.midominio.sv.key

Finalmente, copie el certificado y la clave privada a las ubicaciones correctas.
root@server01:~# cp mail.midominio.sv.pem /etc/ssl/certs/mail.midominio.sv.pem
root@server01:~# cp mail.midominio.sv.key /etc/ssl/private/mail.midominio.sv.key

Fuente:

miércoles, septiembre 07, 2016

Servidor de correo Debian 8 Jessie: Instalación de servicio DNS seguro.


Este es el segundo de una serie de artículos para la instalación completa de un servidor de correos con Debian Jessie 8.5. Instalación de servicio DNS seguro.

La instalación del servicio DNS tiene aplicación si se manejan los registros DNS internamente, para que estos registros sean visibles desde Internet se debe utilizar ip's publicas o NAT hacia direcciones publicas.

Instalamos el servicio Bind9
apt install bind9

La definición del servicio la podemos ver en el siguiente archivo:
cat /lib/systemd/system/bind9.service


Paramos el servicio.
systemctl stop bind9.service

Creamos el archivo de configuración chroot.
mkdir /etc/systemd/system/bind9.service.d
creamos el archivo /etc/systemd/system/bind9.service.d/chroot.conf y colocamos lo siguiente:
[Service]
ExecStart=
ExecStart=/usr/sbin/named -f -u bind -t /var/bind9/chroot

Con esto le indicamos a bind9 que el servicio correrá en la ruta /var/bind9/chroot

Creamos la estructura de directorios que utilizará el servicio.
mkdir -p /var/bind9/chroot/{etc,dev/log,var/lib/bind,var/cache/bind,var/run/named,var/log/bind,var/lib/bind}

Movemos el directorio /etc/bind hacia el directorio del chroot y creamos un enlace simbólico.
mv /etc/bind /var/bind9/chroot/etc
ln -s /var/bind9/chroot/etc/bind /etc/bind

Asignamos los permisos a los directorios

chmod 755 /var/bind9/chroot/etc/bind
chmod 644 /var/bind9/chroot/etc/bind/*
chmod 640 /var/bind9/chroot/etc/bind/rndc.key
chown root:bind /var/bind9/chroot/etc/bind/*
chown bind:bind /var/bind9/chroot/etc/bind/rndc.key
chmod 770 /var/bind9/chroot/var/{cache/bind,run/named,lib,lib/bind,log} -Rf
chown root:bind /var/bind9/chroot/var/{cache/bind,run/named,lib,lib/bind,log} -Rf

Creamos los dispositivos null y random utilizados por el servicio.
mknod -m 666 /var/bind9/chroot/dev/null c 1 3
mknod -m 666 /var/bind9/chroot/dev/random c 1 8
chmod 660 /var/bind9/chroot/dev/{null,random,log}
chgrp bind /var/bind9/chroot/dev/{null,random,log}

Podemos copiar el archivo localtime para definir la zona horaria.
cp /etc/localtime /var/bind9/chroot/etc/


Editamos
vim /etc/init.d/bind9

cambiar la siguiente linea
PIDFILE=/var/run/named/named.pid

de la siguiente manera
PIDFILE=/var/bind9/chroot/var/run/named/named.pid

Ejecutamos la siguiente instrucción
echo "\$AddUnixListenSocket /var/bind9/chroot/dev/log" > /etc/rsyslog.d/bind-chroot.conf

Cambiamos en el archivo /etc/bind/named.conf.options la siguiente linea
        listen-on-v6 { any; };

De la siguiente manera, con esto deshabilitamos que bind9 escuche por direcciones ipv6
        listen-on { any; };

Reiniciamos
systemctl daemon-reload
systemctl restart rsyslog; systemctl start bind9

Comprobamos la configuración
/usr/sbin/named-checkconf -t /var/bind9/chroot/ /etc/bind/named.conf

verificamos el estado de bind9
systemctl status bind9

Si todo esta bien podemos continuar con nuestra configuración, deberíamos ver algo parecido a lo siguiente:
 root@server01:~# systemctl status bind9

● bind9.service - BIND Domain Name Server
   Loaded: loaded (/lib/systemd/system/bind9.service; enabled)
  Drop-In: /run/systemd/generator/bind9.service.d
           └─50-insserv.conf-$named.conf
        /etc/systemd/system/bind9.service.d
           └─chroot.conf
   Active: active (running) since mar 2016-09-06 17:36:37 CST; 4min 2s ago
     Docs: man:named(8)
 Main PID: 4071 (named)
   CGroup: /system.slice/bind9.service
           └─4071 /usr/sbin/named -f -u bind -t /var/bind9/chroot

sep 06 17:36:37 server01 named[4071]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
sep 06 17:36:37 server01 named[4071]: command channel listening on 127.0.0.1#953
sep 06 17:36:37 server01 named[4071]: command channel listening on ::1#953
sep 06 17:36:37 server01 named[4071]: managed-keys-zone: loaded serial 2
sep 06 17:36:37 server01 named[4071]: zone 0.in-addr.arpa/IN: loaded serial 1
sep 06 17:36:37 server01 named[4071]: zone 127.in-addr.arpa/IN: loaded serial 1
sep 06 17:36:37 server01 named[4071]: zone localhost/IN: loaded serial 2
sep 06 17:36:37 server01 named[4071]: zone 255.in-addr.arpa/IN: loaded serial 1
sep 06 17:36:37 server01 named[4071]: all zones loaded
sep 06 17:36:37 server01 named[4071]: running


Generar rndckey
rndc-confgen

Copie la llave en archivo /var/bind9/chroot/etc/bind/rndc.key
# Start of rndc.conf
key "rndc-key" {
        algorithm hmac-md5;
        secret "DTngw5O8I5Axx631GjQ9pA==";
};

y agregue las siguientes lineas al principio del archivo /var/bind9/chroot/etc/bind/named.conf

include "/etc/bind/rndc.key";

controls {
    inet 127.0.0.1 port 953
    allow { 127.0.0.1; } keys { "rndc-key"; };
};


Colocamos los permisos para el archivo que contiene la llave
chmod 640 /var/bind9/chroot/etc/bind/rndc.key
chown root:bind /var/bind9/chroot/etc/bind/rndc.key


Reiniciamos
systemctl restart bind9
systemctl status bind9

Agregamos log personalizados a Bind9

Agregamos al principio del archivo /var/bind9/chroot/etc/bind/named.conf la siguiente  linea:
include "/etc/bind/named.conf.log";


El archivo /etc/bind/named.conf.log deberá contener lo siguiente:
logging {
        channel update_debug {
                file "/var/log/bind/update_debug.log" versions 3 size 100k;
                severity debug;
                print-severity  yes;
                print-time      yes;
        };
        channel security_info {
                file "/var/log/bind/security_info.log" versions 1 size 100k;
                severity info;
                print-severity  yes;
                print-time      yes;
        };
        channel bind_log {
                file "/var/log/bind/bind.log" versions 3 size 1m;
                severity info;
                print-category  yes;
                print-severity  yes;
                print-time      yes;
        };

        category default { bind_log; };
        category lame-servers { null; };
        category update { update_debug; };
        category update-security { update_debug; };
        category security { security_info; };
};

Los permisos serán los siguientes:
chown bind /etc/bind/named.conf.log
chmod 644 /etc/bind/named.conf.log

Creamos un enlace simbólico hacia /var/log para que todos nuestros logs estén en la misma ubicación.
ln -s /var/bind9/chroot/var/log/bind /var/log

Reiniciamos el servicio
systemctl restart bind9
systemctl status bind9

Cambiamos las opciones en el archivo /var/bind9/chroot/etc/bind/named.conf.options de la siguiente manera

acl corpnets { 172.16.0.0/16;};
options {
        directory "/var/cache/bind";
        listen-on port 53 { 127.0.0.1; ;};
        allow-query { any; };
        allow-recursion { corpnets; };
        allow-query-cache { corpnets; };

        query-source address * port *;

        allow-transfer { none; };

        version none;
        dnssec-enable yes;
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
};

Finalmente creamos los archivos para la resolucion de nuestro dominio, editamos el archivo /var/bind9/chroot/etc/bind/named.conf.local y agregamos las zonas.

Note que la ruta en las configuraciones se hacen a partir de la raiz de chroot la cual es  /var/bind9/chroot y por lo cual esta no se incluye en la referencia a los archivo de zona.

zone "dominio.com" {
      type master;
      file "/var/lib/bind/db.dominio.com";
      allow-update { key rndc-key; };
};

zone "112.16.172.in-addr.arpa" {
       type master;
       file "/var/lib/bind/db.dominio.com.rr";
       allow-update { key rndc-key; };
};



Creamos los archivos a los que hacemos referencia anteriormente /var/bind9/chroot/var/lib/bind/db.dominio.com, agregamos los siguiente:

;
; BIND data file for local loopback interface
;
$TTL 86400
@     IN SOA ns3.dominio.sv. hostmaster.server01.dominio.com. (
                      2016090701 ; Serial
                      21600 ; Refresh
                      3600 ; Retry
                     1814400 ; expire after 3 week
                     43200 ) ; Negative Cache TTL
;
      IN NS ns1.dominio.com.
      IN NS ns2.dominio.com.
      IN MX 10 mail
@     IN A 172.16.112.148
ns1  IN A 172.16.112.148
ns2  IN A 172.16.112.147
ns3  IN A 172.16.112.147
mail  IN A 172.16.112.148
www IN CNAME ns1.dominio.com.
smtp IN CNAME mail.dominio.com.
pop IN CNAME mail.dominio.com.
imap IN CNAME mail.dominio.com.

Creamos el archivo de resolucion inversa /var/bind9/chroot/var/lib/bind/db.dominio.com.rr con la siguiente informacion.
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns3. root.ns1. (
      1 ; Serial
      604800 ; Refresh
      86400 ; Retry
      2419200 ; Expire
      604800 ) ; Negative Cache TTL
;
@    IN NS ns3.dominio.com.
145 IN PTR portal.dominio.com.
146 IN PTR mail.dominio.com.
147 IN PTR mail2.dominio.com.
148 IN PTR cloud.dominio.com.

Cambiamos los permisos a los archivos creados
chmod 660 /var/bind9/chroot/var/lib/bind/db.dominio.com*
chown bind /var/bind9/chroot/var/lib/bind/db.dominio.com*

Reiniciamos el servicio
systemctl restart bind9
systemctl status bind9

Probamos nuestra configuracion
dig @localhost dominio.com
dig @localhost dominio.com NS
dig @localhost dominio.com MX

Fuentes:
https://wiki.debian.org/Bind9
bind9 im chroot unter Debian 8 jessie und systemd
BIND9ServerHowto

Indice.
1. Servidor de correo Debian 8 Jessie: Instalacion del sistema operativo y asegurar las conexiones ssh por medio de llaves.
2. Servidor de correo Debian 8 Jessie: Instalación de servicio DNS seguro.
3. Servidor de correo Debian 8 Jessie: Instalación certificados generados por autoridad certificadora (CA) windows.
4. Servidor de correo Debian 8 Jessie: Instalación de Postfix, Dovecot y Roundcube con autenticacion AD  

Servidor de correo GNU/Debian Jessie: Postfix, Bind9, Dovecot, Sasl, Apache, Roundcube con autenticacion LDAP 

lunes, septiembre 05, 2016

Servidor de correo Debian 8 Jessie: Instalacion del sistema operativo y asegurar las conexiones ssh por medio de llaves.

Este es el primero de una serie de artículos para la instalación completa de un servidor de correos con Debian Jessie 8.5.

Nota importante: se asume que las personas que utilicen este manual tienen conocimientos básicos con GNU/Debian por lo que omitiré algunos detalles, sin embargo pueden consultar por este medio las dudas que tengan y se tratará de contestarles dentro de nuestras posibilidades, bendiciones.

Bueno lo primero es descargar el sistema operativo, lo puede hacer desde la pagina oficial de Debian (https://www.debian.org).

Aquí se utilizó una maquina virtual en vmware 6 para realizar la instalación del sistema operativo, con las siguientes características:
2 GB de RAM
1 disco duro 30 GB
1 tarjeta de red
El particionamiento utilizado es el siguiente:

/ 24,2 GB
/tmp 4 GB
swap 2*RAM 4 GB

Para un ambiente de producción se puede agregar un disco adicional con espacio suficiente para los correos en el punto de montaje /var/vmail esta carpeta se utilizará para los buzones de correos.

Aquí les dejo un enlace donde pueden ver los pasos para instalación de debian workaround.org Install Debian Jessie on your server

En la instalación debemos dejar correctamente configurada nuestra red.

Primeras configuraciones.

Colocamos el nombre del servidor
hostnamectl set-hostname server01

Como estamos en un servidor virtual lo primero es instalar vmware-tools
apt install open-vm-tools

Instalar el editor de texto preferido, aquí se utiliza vim
apt install vim

Aseguramos ssh permitiendo únicamente conexiones con llaves.


Instalamos el servidor de ssh
apt install openssh-server

En primer lugar creamos las llaves
user1@pc01:~$ ssh-keygen -t rsa

Copiamos las claves al servidor
user1@pc01:~$ ssh-copy-id -i .ssh/id_rsa.pub server01

Nos validamos como root  en el servidor
user1@server01:~$  su -

Editamos el archivo /etc/ssh/sshd_config y cambiamos los siguientes parametros:
PermitRootLogin no
PasswordAuthentication no

Reiniciamos el servicio ssh
systemctl restart ssh

Ahora ya podemos ingresamos al servidor con la autenticación por llaves.
user1@pc01:~$ ssh server01

Indice.
1. Servidor de correo Debian 8 Jessie: Instalacion del sistema operativo y asegurar las conexiones ssh por medio de llaves.
2. Servidor de correo Debian 8 Jessie: Instalación de servicio DNS seguro.

lunes, agosto 17, 2015

Instalacion de vmware ESXi 5.5 - vmwaretools en debian wheezy

ESXi 5.5 no soporta la version 7 (wheezy) de debian pero cuando instalamos podemos elegir debin 6.

Instalamos los siguientes paquetes
apt-get install gcc
apt-get install linux-headers-$(uname -r)
apt-get install make

Desde la consola de vmware montamos las vmware tools (opcion: Install/upgrade VMware Tools) 

montamos el cdrom, copiamos e instalamos
mount /dev/sr0 cdrom
cp cdrom/VMwareTools-9.4.0-1280544.tar.gz /home/
cd /home/
tar xvf VMwareTools-9.4.0-1280544.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl

Luego podemos verificar en la consola de vmware el estado de las VMware Tool (Running (Current)).