Está en la página 1de 38

Servidor CentOS 6

Configuraciones

16/09/2015

Introduccin (Parte 1)
Es importante instalar los repositorios que vayan para nuestra versin de CentOS.
Aprenderemos todo lo que es necesario para nuestro servidor, ya sea en la nube o local.

Tipos de Servicio
Hosting
Generalmente cuando tenemos un primer acercamiento a los servidores y pretender
levantar un sitio web con contenido bsico y servicios muy comunes, lo ms sencillo es
contratar un servidor de Hosting en donde el proveedor de Hosting nos proporciona una
cantidad limitada o especifica de disco en disco duro para almacenamiento de datos,
acceso a servicios extremos necesarios como: MySQL, Postfix (Servidor de Correo) y DNS
(para el dominio).
En un Servicio de Hosting existen limitaciones muy marcadas como:

Espacio limitado en disco duro para almacenamiento de datos.


El servicio de Base de Datos MySQL es limitado a cierto nmero de bases creadas.
El servidor Postfix (SMTP) est limitado a un nmero de correos de salida diarios.
El ancho de banda es limitado a cierto consumo.
DNS propio.
Existe una limitacin en la creacin de subdominios.
El servidor FTP est limitado en cierto nmero de cuentas.
No podemos requerir de ms servicios, ms que de los mencionados
anteriormente.

Pero una vez que creamos nuestra propia pgina y pasa de ser una pgina comn a una
plataforma de servicios, es cuando en realidad vemos la gran necesidad de adquirir
nuestro propio servidor debido a las grandes limitaciones de nuestro servicio de Hosting.
La alternativa a un Hosting, sera la contratacin de un Servidor Dedicado o Servidor
Dedicado Virtual.

Dedicados
Los servidores dedicados se dividen en dos, los servidores dedicados y dedicados virtuales.
Un Servidor Dedicado Virtual es bsicamente una mquina virtual (VirtualBox, WMWare
o Xen) que corre en un servidor fsico real, el nico detalle es que si nuestro proveedor
tiene 10 virtuales corriendo, entonces toda la RAM es compartida entre los 10 virtuales. Y
entre otras limitaciones:

No podemos crear ms virtuales, dentro de los virtuales


El ancho de banda es compartido
Si la maquina virtual tiene limitaciones, entonces nuestro sistema operativo los
hereda
Si nuestro proveedor tiene una sola red, entonces todos los virtuales pasan por la
misma interfaz.

Un Servidor Dedicado, bsicamente se est alquilando un equipo fsico completo,


beneficindonos de todos los servicios como si tuvisemos el equipo puesto en nuestra
propia casa o negocio.
Las ventajas son muy amplias:

Podemos instalar cualquier servicio (FTP, Apache, Bind, MySQL, Asterisk, Icecast,
Virtuales, VNC, SSH, etc.)
Tenemos acceso a una consola para manipular nuestro equipo
Instalar aplicaciones personalizadas
Cambiar a gusto las capacidades de nuestra casilla de correos
Crear rutas para Servidores Locales

Las limitaciones que dependen de nuestro nivel de conocimientos y destreza son:

Somos los encargados de nuestra seguridad


Configuramos todo
Nos encargamos de respaldar nuestra informacin
Tener los conocimientos para implementarlo

Es recomendable un servidor dedicado cuando nuestras exigencias y necesidades sobre


pasan a un servicio de Hosting comn.

Repositorios y Paquetes Bsicos (Parte 2)


Si tenemos una o varias IPs estticas, pero solo contamos con una sola placa de red, lo
correcto sera configurar sub interfaces de la misma configuracin, donde solo iremos
colocando las dems IPs asociando estas nuevas IPs con un valor de ethX compartido.
shell# cd /etc/sysconfig/network-scripts/
shell# cat ifcfg-eth0
Cdigo:
# IP estatica 1 eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.1
NETMASK=255.255.255.0
NETWORK=10.10.10.0
GATEWAY=10.10.10.254
TYPE=Ethernet
HWADDR=aa:bb:cc:dd:ee:ff
DNS1=ip.dns.local
DNS1=ip.dns.gateway
HOSTNAME=miserver.midominio.com
DOMAIN=midominio.com

shell# cat ifcfg-eth0:0


Cdigo:
# IP estatica 2 eth0:0
DEVICE=eth0:0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.2
NETMASK=255.255.255.0
GATEWAY=10.10.10.254
TYPE=Ethernet
HWADDR=aa:bb:cc:dd:ee:ff

shell# cat ifcfg-eth0:1


Cdigo:
# IP estatica 3 eth0:1
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.3
NETMASK=255.255.255.0
GATEWAY=10.10.10.254
TYPE=Ethernet
HWADDR=aa:bb:cc:dd:ee:ff

Reiniciamos
Cdigo:
# Reiniciamos para cargar cambios
shell# /etc/init.d/network restart
# Ver las interfaces
shell# ifconfig a

Deshabilitar SELinux
IMPORTANTE: En la versin 6.3 ya no se incluye SELinux, asique podemos omitir este
paso.
El SELinux es un firewall integrado en CentOS que ms que ayudar, siempre ya un montn
de problemas, lo ms recomendable es montar nuestras propias reglas de firewall y no
depende de la automatizacin, ya que SELinux es tan delicado, que por el simple hecho de
hacerle PING al server, nos bannea el IP y no podemos conectarnos de ninguna forma.
Otro error muy comn por el cual suene bannearnos nuestra IP, es cuando estamos
escaneando puertos de nuestro servidor desde fuera, con la finalidad de corroborar si el
puerto se abri como desebamos y result que SELinux nos banneo el IP, por supuesto
escaneo de puertos tomado como un posible atacante en busca de informacin.

Codigo:
# Deshabilitar SELinux
shell# system-config-securitylevel-tui
Security Level: ( ) Enables (*) Disables
SELinux: Disables
Damos OK y reiniciamos: shell# reboot

UPDATE CENTOS
Habiendo configurando todo, debemos rehacer update:
Cdigo:
# Importamos llaves de servidores por defecto:
shell# rpm import /etc/pki/rpm-gpg/RPM-GPG-KEY-*
shell# yum update y

Repositorios
Es importante tener otros repositorios habilitados ya que comnmente los repositorios
por defecto no tienen archivos que suelen ser necesarios a la hora de querer otras
aplicaciones o implementaciones de seguridad de nuestro servidor:
Cdigo:
# Paquete necesario
shell# yum install y rpm-libs
shell# yum install y yum-utils
# Entramos al directorio de repositorios locales
shell# cd /etc/pki/rpm-gpg/
# Descargamos Repositorios
shell# wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
shell# wget http://rpms.famillecollet.com/RPM-GPG-KEY-remi
VER SI NUESTRO CENTOS ES DE 32 O DE 64 LOS QUE PUSE SON PARA 32
BITS
shell# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-68.noarch.rpm
shell# rpm -ivh epel-release-6-8.noarch.rpm

# Repositorio RPMForge para CentOS6


shell# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.22.el6.rf.i686.rpm

# Actualizacin:
shell# rpm import *
shell# rpm UvH * .rpm
shell# yum install y yum propierties
shell# yum update -y

Paquetes Base
Todo sistema GNU/Linux siempre usa un conjunto de paquetes que se requiere en todas
partes y por cualquier software independiente (Recomendacin: Instalar primero los
paquetes en el servidor):
Cdigo:
shell# yum install y fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils gcc
gcc-c++

Servidor DHCP (Parte 3)


Existen dos herramientas muy buenas que son dnsmasq y dhcpd. Es importante conocer
la diferencia entre ambas y desde el punto de vista aplicativo cual sera la mejor opcin.
Un DHCP es un servicio que permite la asignacin automtica de direcciones IP a los
equipos que conectemos a nuestra red, generalmente un DHCP debe contener una tabla
de asignaciones que posteriormente se vuelque a un LOG para mayor informacin de
administracin.

Qu es un DHCP Autoritativo? (Autoritative)


Frecuentemente es un trmino que en las configuraciones de los DHCPs que se hace
presente debido a que esta variable se establece cuando se desea que nuestro DHCP sea
muy exigente, si una IP que tiene un HOST se repite con otro HOST que nuestro DHCP
tiene en su tabla de asignaciones, entonces le cambia el IP por uno que no se repita. Y un
DHCP no autoritativo es aquel que solo asigna IPs y no corrobora si un HOST tiene un IP
repetido.
Recomendacin: Usar DHCP como Autoritativo para evitar que usuarios pongan el IP
manualmente (Asumiendo que no tenemos rango para IPs Manuales), si se diera el caso
entonces el DHCP les asignara un IP Nuevo automticamente.

Trminos en Servidores DNS


Resolucin de DNS
Es obtener la Direccin IP a partir del Dominio (Hostname).
Ejemplo:
shell# host midominio.com
Cdigo:
midominio.com has address 10.10.10.1
midominio.com mail is handled by 10 server.midominio.com.

Resolucin Inversa rDNS


Es un trmino que se utiliza para realizar lo contrario de un DNS. Que seria obtener el
Hostname de la IP que consultamos.
Ejemplo:
shell# host 10.10.10.1
Cdigo:
1.10.10.10.in-addr.arpa domain name pointer server.midominio.com.

DNSMASQ
Para uso hogareo es recomendable dnsmasq ya que es ms que un DHCP Server, sino
que tambin incluye un DNS Server, permitiendo de forma automtica la creacin de los
registros de dominios a partir del HOSTNAME de la maquina a la que se le asigna la IP
automtica, las tablas de ruteo DNS se van actualizando por dnsmasq y a su vez asignando
IPs en el rango que deseamos.
Un buen ejemplo de la configuracin de dnsmasq es la siguiente:
Cdigo:
# Instalando Paquetes
shell# yum install y dnsmasq

shell# cat /etc/dnsmasq.conf


Cdigo:
# resolv-file=/etc/resolv.conf # ruta del directorio
server=10.10.10.1 # el servidor DNS
domain=midominiolocal.com # dominio local
interface=eth0 # interface que escucha
dhcp-range=10.10.10.200,10.10.10.253 # rango a asignar
dhcp-lease-max=150 # mximo de tiempo de difusin
dhcp-authoritative # dhcp autoritativo
log-queries # generar log de intentos de consulta al dhcp
log-dhcp # los del dhcp (a quien asigno, a que MACs)
conf-dir=/etc/dnsmasq.d # donde est el deamon
# dhcp-boot=pxelinux.0 # booteo por red

# enable-tftp # habilitar tftp


# tftp-root=/home/tftp # ruta del tftp
# dhcp-boot=/home/tftp/pxelinux.0,server,10.10.10.1

Iniciar Servicio
Cdigo:
shell# cd /etc/init.d/
shell# chkconfig levels 235 dnsmasq on
shell# /etc/init.d/dnsmasq start

DHCPD
Esta aplicacin es un DHCP puro, que permite de forma muy sencilla formar nuestro
servidor DHCP, teniendo en cuenta la asignacin de IPs a partir de un rango especfico
deseado, a travs de la MAC y con capacidad para definir Gateways y otras rutas a
conveniencia.
DHCPD es un deamon que encontramos en ambientes de Servidores GNU/Linux ya que lo
ms comn al momento de montar un DHCP es que este servicio lo proporcione un
servidor que a su vez pueda proporcionar DNS, todo depende de la cantidad de consultas
DNS y rDNS (Resolucin Inversa de DNS) que tengamos en la red.
Nuestra configuracin es la siguiente:
Cdigo:
shell# yum install y dhcp
shell# cat /etc/dhcp/dhcpd.conf

Cdigo:
ddns-update-style interim;
ignore client-updates;
authoritative;

# un host de una mac especifica ponerle una ip


#host mihost {
# option host-name mihost.homelinux.com;
# hardware ethernet AA:BB:CC:EE:FF:GG;
# fixed-address 10.10.10.x;
#
}

subnet 10.10.10.0 netmask 255.255.255.0 {


option routers 10.10.10.1;
option subnet-mask 255.255.255.0;
option domain-name homelinux.com;
option nis-domain homelinux.com
option domain-name-servers 10.10.10.1;
range 10.10.10.11 10.10.10.50;
default-lease-time 86400;
max-lease-time 608400;
# option netbios-name-server 10.10.10.1;
# option ntb-server 10.10.10.1;
# max-lease-time 608400;
}

# otra subred
# subnet 192.168.1.0 netmask 255.255.255.0 {
# option routers 192.168.1.1;
# option subnet-mask 255.255.255.0;
# option domain-name otrared.homelinux.com;
# option domain-name-servers 192.168.1.1;
# range 192.168.1.50 192.168.1.100;
# default-lease-time 86400;
# max-lease-time 608400;
#}

Y para configurar que cierta interfaz en especfico tenga el DHCP escuchando:


shell# cat /etc/sysconfig/dhcpd
Cdigo:
shell# cd /etc/init.d/
shell# chkconfig levels 235 dhcpd on
shell# /etc/init.d/dhcpd start

Firewall
Las siguientes lneas son recomendaciones para la configuracin de su firewall (iptables)
que nos permiten abrir los puertos del DNS y/o DHCP.
Cdigo:
iptables A INPUT p tcp --dport 53 j ACCEPT
iptables A INPUT p udp dport 53 j ACCEPT

Servidor DNS (Parte 4)


En esta parte daremos de alta algunos registros para resolucin exterior e interior.
El DNS es un Servicio que ofrece la resolucin o traduccin de nombres de dominio ha
direcciones lgicas (IP) y tambin el modo inverso traduccin o resolucin de una
direccin lgica a nombre de dominio.
En Internet existen Dominios Maestros (DNSs Maestros) que seran los que manejan el
dominio de raz (ar, com, jp, es, edu, org, gov, etc). Algunos DNSs que mantienen los
registros AR tardan mayor tiempo en actualizar los dominios, por lo que es recomendable
no modificar muy seguido las configuraciones del Servidor DNS, ya que al actualizarlo
tardar mayor tiempo. Mientras que si configuramos un DNS local, la actualizacin ser al
instante.

BIND/NAMED
BIND es un Servidor DNS que predomina en los Servidores de Internet, bind mantiene
archivos de configuracin llamados named.conf donde se declaran las Zonas (dominios) y
despliegan las resoluciones internas y externas.
Podemos lanzar a BIND como un Servidor de DNS Enjaulado (chroot) o normal, se
recomienda para servidores locales manejarlo en modo Enjaulado (chroot), pero si
mantenemos el Servidor Local (o en Internet) con mucha demanda de DNS, entonces nos
conviene utilizarlo en modo normal.

Primero Instalamos el BIND


Cdigo:
shell# yum install bind-chroot

Permisos de BIND
Cdigo:
shell# cd /var/
shell# chmod 755 named/chroot/var/
shell# chmod 755 named/chroot/var/named/
shell# chmod 755 named/chroot/var/run
shell# chmod 777 named/chroot/var/run/named
shell# cd /var/named/chroot/var/named
shell# ln s ../../chroot

Ejemplos sobre Zonas


Cdigo:
shell# cp /usr/share/doc/bindx.x.x/simple/var/named/named.local/var/named/chroot/var/named/
shell# cp /usr/share/doc/bindx.x.x/simple/var/named/named.root/var/named/chroot/var/named/

Creando el archivo de configuracin


Cdigo:
shell# toouch /var/named/chroot/etc/named.conf
Vamos a corroborar que el DNS se ejecutara en modo Enjaulado, ya que de no ser as
entonces el archivo de configuracin lo estaramos leyendo de /etc/named.conf (lo cual
no queremos):
Cdigo:
shell# cat /etc/sysconfig/named
ROOTDIR=var/named/chroot

Configurando el Deamon al Iniciar Sistema


Cdigo:
shell# cd /etc/init.d/
shell# chkconfig levels 235 named on
shell# /etc/init.d/named start

Zonas de Dominio
Configuraremos a modo de ejemplo la Zona de Dominio: midominio.com
shell# cat /var/named/chroot/etc/named.conf
Cdigo
options {
directory /var/named/;
listen-on-v6 { none; };
listen-on port 53 { 127.0.0.1; 10.10.10.1;};
forwarders { 8.8.8.8; 208.67.222.222; };
dnssec-enable yes;
# dnssec-validation yes;
dnssec-lookaside . trust-anchor dvl.isc.org.;
};

acl slaves {
10.10.10.2; # nuestra IP de la eth1
10.10.10.3; # nuestra IP de la eth2
};
view internal {
match-clients { internals; };
recursion yes;
zone midominio.com {
type master;
file /var/named/internals/db.midominio.com;
};
Zone 10.10.10.in-addr.arpa {

type master;
file /var/named/db.10.10.10;
};
};
view external {
match-clients { any; };
recursion no;
zone midominio.com {
type master;
file /var/named/externals/db.midominio.com;
allow-transfer { slaves; };
};
zone 10.10.10.in-addr.arpa {
type master;
file /var/named/db.10.10.10;
};
};
key TRANSFER {
algorithm hmac-md5;
secret Nuestro Hash Generado==;
};

server 10.10.10.1 {
keys {
TRANSFER;
};
};

La resolucin inversa:
shell# cat /var/named/chroot/var/named/db.10.10.10
Cdigo
$TTL 604500
@
IN SOA midominio.com. root.midominio.com. (
2012051414 ; srial
8H ; refresh
2H ; retry
4W ; expire
1D ) ; mnimum ttl
;
@ IN NS ns1.midominio.com.
225 IN PTR midominio.com.
225 IN PTR otrodominio.com.
225 IN PTR masdominios.com.
Solucin para Peticiones Externas:
shell# cat /var/named/chroot/var/named/externals/db.midominio.com
Cdigo
$TTL 345600
@
IN SOA ns1.midominio.com. contacto.midominio.com. (
2012051414; serial
7200 ; refresh
1800 ; retry
1209600 ; expire
300 ) ; negative cache ttl
;
@ IN NS ns1
IN NS ns2
IN AR 10 server
IN A 67.23.255.255
Midominio.com. IN A 10.10.10.1
ns1 IN A 10.10.10.1
mail IN A 10.10.10.1
server IN A 10.10.10.1
www IN CNAME midominio.com.

Solucin para Peticiones Internas


shell# cat /var/named/chroot/var/named/internals/db.midominio.com
Cdigo
$include /var/named/externals/db.midominio.com
fernando IN A 10.10.10.20
nestor IN A 10.10.10.21
sergio IN A 10.10.10.22
daniel IN A 10.10.10.23
contabilidad IN A 10.10.10.24

FIREWALL
Recomendaciones para la configuracin del firewall (iptable) que nos permitir abrir los
puertos del DNS y /o DHCP
Cdigo
iptables A INPUT p tcp dport 53 j ACCEPT
iptables A INPUT p udp dport 53 j ACCEPT

Squid Proxy Transparente (Parte 5)


Squid es conocido como un Proxy Web y de Red, nos permite no solo limitar el acceso al
contenido de Internet, as como: pginas, archivos, videos y msica. Tambin nos permite
limitar el ancho de banda consumido tanto para transferencia local (en red) como para
transferencia en Internet.
Si queremos limitar el ancho de banda, ofreciendo solo el ancho de banda para la red y
que nadie se quede con internet lento, Squid es la mejor opcin para repartir ancho de
banda.

Listas de Control de Acceso


Las Listas de Control de Acceso (ACL) son reglas que se definen en el archivo de
configuracin para especificar ya bien sea las direcciones IPs, un archivo con un conjunto
de palabras o un conjunto de pginas web a las cuales les aplicaremos control de
restriccin.
Una ACL tiene una forma de definirse muy simple, que es:
acl <nombre> <tipo> <argumento o archivo>

Acceso y Denegacin
Existe un argumento base que finalmente aplicaremos a las ACLs o cualquier otro control
que restringiremos. Nos referiremos al evento http_access, la forma de declararse es:
http_access <tipo> <argumento>

Configurando
En nuestro primer archivo de configuracin explicaremos en las mismas lneas su
significado:
shell# cat/etc/squid/squid.conf
Cdigo:
# Sitios que denegaremos el acceso
acl denegados url_regex /etc/squid/sitios_denegados

# Sitios que aseguraremos el acceso


acl inocentes url_regex /etc/squid/sitios_inocentes

# Extensiones de archivos validos


acl extvalidas urlpath_regex /etc/squid/extensiones_validas

# Extensiones no validas
acl extnovalidas urlpath_regex /etc/squid/extensiones_novalidas

# Configuracin para una sola IP (eth0)


acl sie_center src 192.168.1.0/24

# Configuracin para 2 IPs, la IP de la eth0 (192.168.1.1) y eth1 (10.10.10.1)


#acl sie_center src 192.168.1.1 10.10.10.0/24

acl manager proto cache_object


acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
# Puerto seguro https
acl SSL_ports port 443

# Especificando puertos que filtraremos


acl Safe_ports port 80
# http
acl Safe_port port 20
# ftp
acl Safe_port port 21
# ftp
acl Safe_port port 22
# ssh
acl Safe_port port 53
# dns
acl Safe_ports port 137 # samba
acl Safe_ports port 445 # samba
acl Safe_ports port 443 # https
acl Safe_ports port 2049 # nfs
acl Safe_ports port 3130 # squid cache
acl Safe_ports port 3128 # squid
acl Safe_ports port 5901 # vnc
acl CONNECT method CONNECT

# Accesos
http_access allow manager localhost
http_access allow sie_center !denegados !extnovalidas
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_access allow all

# Puerto de Squid Transparente


http_port 3128 transparent
#Delay pools
#delay_pools 1
#delay_class 1 1
#delay_parameters 1 20480/1024
#acl limitados url_regex /etc/squid/sitios_limitados
#delay_access 1 allow sie_center extvalidas limitados

Hierarchy_stoplist cgi-bin ?

#Dimensin de memoria cache y directorio


cache_mem 32 MB
cache_dir ufs /mnt/squid 700 16 256
#cache_dir ufs /mnt/squid 100 16 256
cache_mgr mi@mail.com

# Squid Log
access_log /var/log/squid/acces.log squid

# Cache Log
cache_log /var/log/squid/cache.log

# Opciones de Tuenleo de Cache


acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp:
1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern .
0 20% 4320

# Puerto de Cache
Icp_port 3130

# Error directory
error_directory /usr/share/squid/errors/es

# Core Log
coredump_dir /var/cache/squid

# Store Log
cache_store_log /var/log/squid/store.log

Especificando
En el archivo de configuracin mencionado se especificaron rutas a archivos donde
tomaremos los datos a denegar, a continuacin mostraremos los contenidos de cada uno:
shell# cat extensiones_novalidas
Cdigo:
\.mov$
\.rm$
\.vob$
\.flv$
\.mp3$
\.wma$
\.wav$
\.pif$
\.run$
\.bin$

shell# cat sitios_denegados


Cdigo:
Sexo
Porno
facebook.com
youtube.com
taringa.com
VER QUE OTROS SITIOS

Proteccin del Ancho de Banda


En Squid tenemos la posibilidad de proteger nuestro ancho de banda, y nos referimos a las
siguientes caractersticas:

Limitar el ancho de banda en transferencias de archivos locales.


Limitar transferencia de archivos de descarga en lnea.
Limitar transferencia de archivos con cierta extensin.
Limitar el ancho de banda en navegacin para ciertas paginas o todas.

Para explotar estas caractersticas es necesario aprender sobre delay pols.

Firewall
Las siguientes lneas son recomendaciones para la configuracin de nuestro firewall
(iptables) que les permitir abrir los puertos del Squid (Proxy).
Cdigo:
iptables A INPUT p tcp dport 3128 j ACCEPT
iptables A INPUT p udp dport 3125 j ACCEPT
En el siguiente ejemplo de la regin iptables, sirve para cuando tenemos un servidor
funcionando como router, lo tenemos funcionando con dos tarjetas de red: eth0 (a
internet) y eth1 (a la red 192.168.1.0/24), para evitar que los usuarios nos pasen por alto
el proxy, ponemos una regla automtica de paquetes que vayan a cualquier IP.

Ejemplo con 2 tarjetas de red:


Cdigo:
iptables t nat A PREROUTING s 192.168.1.0/24 i eth0 p tcp dport 80 j
DNAT to 192.168.1.1:3128
Ejemplo con 1 tarjeta de red:
iptables t nat A PREROUTING i eth0 p tcp dport 80 s 192.168.1.0/24 j
REDIRECT to port 3128

Servidor Samba (Parte 6)


Samba es uno de los servicios que utilizan los protocolos de compartimiento de
informacin utilizado comnmente en Sistemas Operativos Microsoft, basndose en los
puertos 137-139 (netbios-ssn) y 445 (microsoft-ds).
Los puertos mencionados, se utilizan para compartir informacin y la difusin del
compartido para reconocimiento en las redes locales, tambin con soporte de workgroup,
claves y cuentas de acceso.

Conceptos
Es importante tener en cuenta de antemano algunos conceptos para manejar
declaraciones y variables en la configuracin de SAMBA.
Cdigo
interfaces= lo eth0 192.168.1.0/24
Se declaran las interfaces y redes que desean aceptar en nuestro servidor samba: lo
(localhost), eth0 (tarjeta de re local), 192.168.1.0/24 (IPs 192.168.1.1 al 192.168.1.254)
Cdigo
workgroup = HOMELINUX
Nombre del Grupo de Trabajo, muy necesario en Windows para permitir la visualizacin
de los equipos y compartidos en redes de Windows.
Cdigo
security = user

Esta configuracin permitir que los directorios compartidos se comporten segn sus
privilegios que se les asigne tanto en la configuracin de SAMBA como en los permisos
que tengan las carpetas y archivos.
Cdigo
host allow = 127. 192.168.1. 192.168.2.

Si tenemos ms de una red local y queremos que nuestro servidor acepte las vistas de
otras redes, podemos permitirlas con esta variable.
Cdigo
name resolve order = wins lmhosts bcast
Esto permitir agilizar ms nuestro servidor samba, haciendo que cada vez se busquen
compartidos, primero se consulte a nuestro servidor SAMBA, despus cualquier otro
servidor esclavo y finalmente intente buscando en el lmhost, despus con los hosts
locales, despus el DNS y finalmente haciendo un mensaje de difusin al braodcast para
encontrar el compartido.
Cdigo
remote announce = 192.168.2.255/DOMINIO2, 192.168.3.255/DOMINIO3
Si queremos que nuestro servidor SAMBA aparezca visible rpidamente en nuestra red
local y/o en otras redes conectadas, podemos hacer que este se anuncie
automticamente con esta configuracin.
Recordemos que debemos aclarar las direcciones de difusin (broadcast) y NO las
direcciones IP de los servidores de las subredes o redes.
Cdigo
valid users = fernando, nestor, daniel
Si el directorio solo es para ciertos usuarios, podemos definirlo con esta variable.
Cdigo
create mask = 0xxx
Cada vez que se cree un directorio compartido, podemos hacer que este tome ciertos
permisos, debemos usar declaraciones y sustituir las x por los 3 valores numricos del
permiso (Ejemplo: 0755).

Configurando SAMBA
Primero debemos configurar la direccin local de nuestro servidor SAMBA, debemos
poner, debemos poner la direccin IP del servidor y el Hostname:
shell# cat /etc/samba/lmhosts
Cdigo:
Cdigo
127.0.0.1 localhost
192.168.1.1 server

Instalando SAMBA:
Cdigo:
# instalando paquetes
shell# yum install y samba
Configuracin recomendada:
shell# cat /etc/samba/smb.conf
Cdigo:
[global]
workgroup = HOMELINUX ; nombre del grupo
server string = Samba Server CentOS
interfaces = lo eth0 192.168.1.0/24 # SAMBA en red 192.168.1.0
netbios name = HOMELINUX ; nombre en netbios
encrypt passwords = yes ; encriptar passwords windows
log file = /var/log/samba/%m.log ; log
security = user ; tipo de seguridad en compartidos
passdb backend = smbpasswd ; db de passwords
local master = yes ; es compartido maestro
os level = 33 ; nivel del sistema
load printers = yes ; cargar impresoras
cups options = raw ; implesoras cups

[backups] ; as aparece el nombre del compartido


path = /home/backups ; directorio a compartir
comment = Backups Server CentOS ; comentario
browseable = yes ; ser localizada
writable = yes ; podran escribirle cosas
guest ok = yes ; cualquiera puede ver el compartido
directory mask = 0744 # permisos del directorio
[printers] ; impresoras
Comment = All Printers ; comentario
path = /var/spool/samba ; directorio
browseable = yes ; ser localizada
guest ok = yes ; cualquiera puede verlo
writable = no ; no se permite hacer cambios
printable = yes ; se puede usar para imprimir
Probando y corroborando erratas en el archivo de configuracin smb.conf:
Cdigo:
shell# testparm
Estableciendo en arranque automtico
Cdigo:
# Iniciar el servidor
shell# cd /etc/init.d/
shell# chkconfig levels 235 smb on
shell# chkconfig levels 235 nmb on
shell# /etc/init.d/nmb start

Cuentas de Usuario
Si la configuracin que optamos en nuestro Servidor SAMBA es por autenticacin de
cuentas, entonces es importante saber cmo agregar las cuentas de usuario y clave.
Es importante mencionar dos cosas:
1. Las cuentas de usuario, no tienen que tener un /home en el servidor.
2. Las claves de usuario no tienen que ser iguales a las claves de un usuario existente
en el sistema.

Si nuestro usuario es dmvega y tengo cuenta en el Sistema GNU/Linux


(directorio/home), mi clave de acceso a SAMBA puede ser totalmente diferente al que
tenemos para loguearnos a nuesto /home.
Creando cuentas de usuario sin /home y sin shell:
Cdigo:
shell# adduser d /var/tmp s /bin/false mi_usuario
Poniendo password a la autenticacin por samba:
Cdigo:
shell# smbpasswd a mi_pass

Firewall
Las siguientes lneas son recomendaciones para la configuracin de su firewall (iptables)
que les permitir abrir los puertos de samba:
Cdigo:
iptables A INPUT p tcp dport 135:139 j ACCEPT
iptables A INPUT p udp dport 135:139 j ACCEPT
iptables A INPUT p tcp dport 445 j ACCEPT

Servidor FTP (Parte 7)


Los Servidores FTP sirven para transferencia de archivos hacia el servidor, ya sea en subida
o bajada.

Qu es un FTP?
Un FTP (File Transfer Protocol) es un servicio que nos permite transferir archivos hacia un
servidor, ya sea en subida o en bajada. En un FTP existe la posibilidad de que los usuarios
existentes en el sistema tengan su propia cuenta y accedan a esta misma para
transferencia de archivos.

Tipos de FTP
Existe el mtodo plano en donde al conectarse al FTP se envan los datos y archivos de
forma original (sin proteccin ni encriptacin).
Otro mtodo es el FTPS que consiste en la comunicacin cliente servidor por un medio
cifrado (o protegido), brindndole mayor seguridad a nuestra informacin durante todo el
proceso de autenticacin y transferencia de archivos en ambos sentidos. Tambin llamado
FTP Seguro.

Clientes FTP
Los clientes FTP son los encargados de conectarnos hacia el servidor FTP para interactuar
con el mismo, actualmente existen Clientes Visuales muy buenos que nos permiten
mantener ms de una conexin hacia l mismo y otros FTP. Como recomendacin utilizar
Filezilla, disponible en Sistema GNU/Linux y Windows.

Servidores FTP
Para GNU/Linux existe: proftpd y vsftpd, ambos son servidores FTP con ventajas y
desventajas.
Aplicaremos como configurar de manera sencilla y bsica un FTP con vsftpd, y con los
requerimientos de seguridad bsicos.

Instalacin y Configuracin
Instalando vsftpd desde los repositorios oficiales:
Cdigo:
shell# yum install y vsftpd
# Estableciendo para el inicio del sistema
shell# cd /etc/init.d/
shell# chkconfig levels 2345 vsftpd on
# Iniciando proftpd
shell# /etc/init.d/vsftpd start
En la configuracin no permitiremos conexiones como invitados (anonymous o guest),
slo permitiremos 5 clientes mximo conectados al server y solo 2 conexiones por IP
Cdigo:
shell# cat /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Bienvenido al FTP midominio.com.
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
max_clients=5
max_per_ip=2

Firewall
Para abrir los puertos del FTP:
Cdigo:
Cdigo:
iptables A INPUT p tcp --dport 20:21 j ACCEPT # ftp
iptables A INPUT p udp --dport 20:21 j ACCEPT # ftp

Servidor Postfix (Parte 8)


Postfix es el servidor de correo de preferencia y actualidad en la mayora de los servidores
GNU/Linux en internet, tambin considerado un tema complejo debido a las mltiples
tares que se pueden realizar como administrador de correos, desde correr aplicaciones al
momento de recibir un correo con cierta caracterstica, hasta el procedimiento de lidiar
con los dominios virtuales, buzones y reenvo de correos a otros servidores (respaldo o
relay).

Servidores de Correos
Los Servidores de correos tienen la ardua tarea de recibir todo el correo electrnico que
llegue a su puerto de red 25 (SMTP), posteriormente debe hacer algo con ese correo,
que puede ser desde ignorarlo, guardarlo, o reenviarlo.
En el procedimiento de ignorarlo es porque simplemente el correo no corresponde con los
dominios que este sostiene.
En el caso de guardarlo es porque existe el dominio en el servidor y existe una cuenta que
se asocia con el receptor, por lo cual prosigue a guardarlo en el buzn de correo (Maildir/).
Y el procedimiento de reenvo consiste bsicamente en que ese dominio lo reconoce, pero
est en otro servidor dentro de la red que puede saber qu hacer con ese correo, por lo
cual lo reenva (transporte) hacia la IP del otro Servidor de Correos.

Clientes de Correos
Son las aplicaciones y plataformas de software que nos brindan un ambiente visual y
prctico para interactuar con el Servidor de Correos y utilizar sus servicios como: bajar
correo, consultar y enviar correo.
Recomendacin: Existen aplicaciones de software libre muy buenas como: Evolution,
Thunderbird, Outlook.

Postfix
Postfix es el servidor de correos preferente en Internet, de los ms seguros y con la
capacidad de manipular las diversas secciones por donde va pasando correo electrnico,
desde su recepcin hasta su salida. Podemos tanto validar cabeceras o disparar una
aplicacin si fuese en caso de tener un sistema automtico de respuesta.

El servidor de correo regularmente trabaja en los puertos 25 y 587.


El puerto 25 es conocido como SMTP.
El puerto 587 es conocido como submission.

Regularmente algunos ISP (Proveedores de Internet) mantienen bloqueado el puerto 25


para evitar que sus usuarios hagan envo de correos, ya sea para evitar la generacin de
SPAM o bien porque no se incorpora al servicio de internet comn.
El puerto 587 (submission) es una alternativa para cuando se tiene el 25 bloqueado, pero
claro, es por obviedad que si nuestro servidor no tiene el puerto 25 abierto, entonces
deberamos enviar nuestro correo a un Servidor que si pueda usar el 25, a lo que
llamamos relay.

IMAP y POP3
Es el servicio que se encarga de proporcionar todo el correo electrnico almacenado en el
buzn del usuario que se est autenticando con el servidor de correos, el POP3
generalmente trabaja en el puerto 110. En este mtodo POP3 la descarga del correo es en
modo plano, as que cualquiera que intervenga la conexin puede cachear nuestros mails.
Existe tambin la posibilidad de manejar un servicio POP3 Seguro en donde se cifre la
conexin mediante TLS o SASL, el servicio POP3 Seguro funciona sobre el puerto 995.
Es importante recordar que en POP3 cada vez que se descarga el correo, es eliminado del
servidor, or lo cual mantener varios gestores de correos bajando del POP3 de nuestra
cuenta, puede hacer que nuestros correos queden algunos en un PC, otros en otro PC, y
as en cualquier dispositivo que tengamos conectados al POP3.
El servicio IMAPs es muy parecido al POP3 cada vez que se descarga el correo este
contina presente en el servidor, solamente cuando eliminamos el correo es cuando se
elimina del servidor.
IMAP funciona en el puerto 143 y tambin existe una versin de IMAP Seguro que
funciona en el puerto 993.

Configurando POSTFIX
Una configuracin bsica y recomendada de Postfix es aquella que simplemente nos
brinda el servicio de envo y recepcin de correos utilizando como medio la conexin al
servicio una conexin mediante TSL o SASL.
Cdigo:
shell# cat /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
myhostname = mail.miservidor.com
mydomain = miservidor.com
myorigin = $mydomain
mydestination = $myhostname, $mydomain, localhost.$mydomain,
mail.$mydomain, localhost, /etc/postfix/dominios.cf, hash:/etc/postfix/virtual
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtpd_banner = $myhostname ESMTP
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtp_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtp_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,hash:/etc
/postfix/access,reject_unknown_sender_domain
mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_tls_auth_only = no
smtpd_use_tls = yes
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtp_tls_key_file = /etc/postfix/ssl/smtpd.key
smtp_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtp_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtpd_tls_security_level = may
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
relay_domains = $mydestination
smtpd_error_sleep_time = 0
smtp_connect_timeout = 0
home_mailbox = Maildir/
mailbox_command =

Explicaremos las partes que mantienen archivos incorporados a la configuracin, para una
mejor comprensin:
Cdigo:
mydestination = $myhostname, $mydomain, localhost.$mydomain,
mail.$mydomain, localhost, /etc/postfix/dominios.cf, hash:/etc/postfix/virtual

mydestination indica a postfix todos los posibles destinos que sern vlidos para
tomar el correo, entre los parmetros destacan dos archivos
/etc/postfix/dominios.cf y hash:/etc/postfix/virtual.
/etc/postfix/demonios.cf
Contiene los dominios que soporta nuestro servidor, o bueno, los dominios que
tenemos funcionando en nuestro servidor. En nuestro caso tenemos:
Cdigo:
shell# /cat /etc/postfix/dominios.cf
midominio.com
midominio2.com
midominio3.com

hash:/etc/postfix/virtual
Contiene la asociacin de nuestros correos electrnicos con las cuentas de
usuario en el sistema. Por ejemplo si el correo del usuario sergio es
sergio.perez@midominio.com, al existir una diferencia entre el usuario y el
nombre del correo, debemos indicarle a postfix que har con ese correo que
reciba y sepa donde depositara el correo.
Cdigo:
shell# /cat /etc/postfix/virtual
midominio.com anything
sergio.perez@midominio.com sergio
fernando.lopez@midominio.com flopez
midominio2.com anything
webmaster@midominio2.com Daniel
soporte@midominio2.com nestor
Recomendacin: Antes de declarar las asociaciones debemos declarar el dominio original
con el valor anything.
En el caso de los archivos hash de postfix (como virtual), despus de hacer
modificaciones debemos crar la BD de esa configuracin nueva o modificarla, por lo cual
debemos ejecutar el comando:
shell# postmap /etc/postfix/virtual

Esto har que postmap guarde la configuracin con un nombre de virtual.db. Que es el
archivo que finalmente lee Postfix.
hash:/etc/postfix/Access
Nos permite indicar que dominios o correos (usuarios@dominio) podrn ser aceptados
por Postfix, ya sea bien para recibir y/o enviar.
Cdigo:
shell# cat /etc/postfix/access
miservidor.com OK
miservidor2.com OK
miservidor3.com OK
192.168 RELAY

También podría gustarte