Páginas

sábado, 13 de agosto de 2011

Firewall Slackware

Fuentes: http://www.pello.info/filez/firewall/iptables.html
Redes en Linux: Carla Schroeder

Puestos a hacer vamos a establecer reglas iptables para un solo host en Slackware. Lo que cambia con respecto a gentoo es el directorio por defecto para iniciar el cortafuegos. Ya vimos como se hace en gentoo linux, en slackware los scripts que se inician con el sistema están ubicados en /etc/rc.d/. El nombre debe ir precedido de rc. Por lo tanto se llamará rc.firewall. La ruta de iptables para establecer las variables cambia a /usr/sbin/iptables. Luego al archivo /etc/rc.d/rc.firewall se le conceden permisos de ejecución.
# chmod +x /etc/rc.d/rc.firewall

El archivo /etc/sysctl.conf, (añadir los parámetros kernel), no está presente por defecto, pero se puede crear y poner en marcha ejecutando:
# /sbin/sysctl -e -p /etc/sysctl.conf

Contenido de los archivos:

###########inicio sysctl.conf############
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_forward = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.arp_announce = 1
vm.swappiness = 10
###########final sysctl.conf#############

##############inicio firewall############
#!/bin/sh
##/etc/rc.d/rc.firewall
#script para una estacion de trabajo o portatil

#define variables
ipt="/usr/sbin/iptables"
mod="/sbin/modprobe"
ports="1:1024"
ipall="0.0.0.0/0"
red_A="10.0.0.0/8"
red_B="172.16.0.0/16"
red_D_MULT="224.0.0.0/4"
red_E_RES_NET="240.0.0.0/5"
loopback="127.0.0.0/8"
broad_src="0.0.0.0"
broad_dest="255.255.255.255"

#Flush all rules, delete all chains
$ipt -F
$ipt -X
$ipt -t nat -F
$ipt -t nat -X
$ipt -t mangle -F
$ipt -t mangle -X

#todos los contadores a cero
$ipt -Z
$ipt -t nat -Z
$ipt -t mangle -Z

#conjunto basico de modulos del kernel
$mod ip_tables
$mod ip_conntrack
$mod iptable_filter
$mod iptable_nat
$mod iptable_mangle
$mod ipt_LOG
$mod ipt_limit
$mod ipt_state
$mod ipt_MASQUERADE

#opcional para irc y ftp
#$mod ip_conntrack_irc
#$mod ip_conntrack_ftp

#politicas por defecto Incoming es rechazar todo,
#outgoing esta restringido
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT
$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT

#esta linea es necesaria para la interfaz loopback
#e internos socket-based servicios trabajen correctamente.
$ipt -A INPUT -i lo -j ACCEPT

# rechazar intentos de conexion no iniciados desde el host
$ipt -A INPUT -p tcp --syn -j DROP

#Allow return traffic initiated from the host
$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Acceptar important ICMP packets
$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

# Cerrar rangos de puertos privilegiados para paquetes que entran
$ipt -A INPUT -s $ipall -p tcp --dport $ports -j DROP
$ipt -A INPUT -s $ipall -p tcp --dport $ports -j DROP

# Cerrar puerto de gestion webmin
$ipt -A INPUT -s $ipall -p tcp --dport 10000 -j DROP

echo "Rechazar pqtes direcciones privadas"

# Rechazar paquetes que digan proceder o ir a direcciones
# privadas de redes A B y C
$ipt -A INPUT -s $red_A -j DROP
$ipt -A OUTPUT -d $red_A -j DROP

$ipt -A INPUT -s $red_B -j DROP
$ipt -A OUTPUT -d $red_B -j DROP

# Rechazar paquetes que digan proceder de la interfaz lo
$ipt -A INPUT -s $loopback -j DROP
$ipt -A OUTPUT -s $loopback -j DROP

# Rechazar pqtes de difusion mal formados
$ipt -A INPUT -s $broad_src -j DROP
$ipt -A INPUT -d $broad_src -j DROP

# Rechazar las direcciones de multidifusion de clase D que
# sean solo ilegales como direcciones de origen. La multi-
# difusion utiliza UDP
$ipt -A INPUT -s $red_D_MULT -j DROP
$ipt -A OUTPUT -s $red_D_MULT -j DROP
$ipt -A INPUT -d $red_D_MULT -j DROP
$ipt -A OUTPUT -d $red_D_MULT -j DROP

# Rechazar direcciones reservadas IP de clase E
$ipt -A INPUT -s $red_E_RES_NET -j DROP

echo "Direcciones reservadas por el IANA"

# Rechazar direcciones definidas como reservadas por el IANA
$ipt -A INPUT -s 1.0.0.0/8 -j DROP
$ipt -A INPUT -s 2.0.0.0/8 -j DROP
$ipt -A INPUT -s 5.0.0.0/8 -j DROP
$ipt -A INPUT -s 7.0.0.0/8 -j DROP
$ipt -A INPUT -s 23.0.0.0/8 -j DROP
$ipt -A INPUT -s 27.0.0.0/8 -j DROP
$ipt -A INPUT -s 31.0.0.0/8 -j DROP
$ipt -A INPUT -s 37.0.0.0/8 -j DROP
$ipt -A INPUT -s 39.0.0.0/8 -j DROP
$ipt -A INPUT -s 41.0.0.0/8 -j DROP
$ipt -A INPUT -s 42.0.0.0/8 -j DROP
$ipt -A INPUT -s 58.0.0.0/8 -j DROP
$ipt -A INPUT -s 60.0.0.0/8 -j DROP

$ipt -A INPUT -s 65.0.0.0/8 -j DROP
$ipt -A INPUT -s 66.0.0.0/8 -j DROP
$ipt -A INPUT -s 67.0.0.0/8 -j DROP
$ipt -A INPUT -s 68.0.0.0/8 -j DROP
$ipt -A INPUT -s 69.0.0.0/8 -j DROP
$ipt -A INPUT -s 70.0.0.0/8 -j DROP
$ipt -A INPUT -s 71.0.0.0/8 -j DROP
$ipt -A INPUT -s 72.0.0.0/8 -j DROP
$ipt -A INPUT -s 73.0.0.0/8 -j DROP
$ipt -A INPUT -s 74.0.0.0/8 -j DROP
$ipt -A INPUT -s 75.0.0.0/8 -j DROP
$ipt -A INPUT -s 76.0.0.0/8 -j DROP
$ipt -A INPUT -s 77.0.0.0/8 -j DROP
$ipt -A INPUT -s 78.0.0.0/8 -j DROP
$ipt -A INPUT -s 79.0.0.0/8 -j DROP

$ipt -A INPUT -s 80.0.0.0/8 -j DROP

$ipt -A INPUT -s 96.0.0.0/8 -j DROP

$ipt -A INPUT -s 112.0.0.0/8 -j DROP
$ipt -A INPUT -s 113.0.0.0/8 -j DROP
$ipt -A INPUT -s 114.0.0.0/8 -j DROP
$ipt -A INPUT -s 115.0.0.0/8 -j DROP
$ipt -A INPUT -s 116.0.0.0/8 -j DROP
$ipt -A INPUT -s 117.0.0.0/8 -j DROP
$ipt -A INPUT -s 118.0.0.0/8 -j DROP
$ipt -A INPUT -s 119.0.0.0/8 -j DROP
$ipt -A INPUT -s 120.0.0.0/8 -j DROP
$ipt -A INPUT -s 121.0.0.0/8 -j DROP
$ipt -A INPUT -s 122.0.0.0/8 -j DROP
$ipt -A INPUT -s 123.0.0.0/8 -j DROP
$ipt -A INPUT -s 124.0.0.0/8 -j DROP
$ipt -A INPUT -s 125.0.0.0/8 -j DROP
$ipt -A INPUT -s 126.0.0.0/8 -j DROP

$ipt -A INPUT -s 217.0.0.0/8 -j DROP
$ipt -A INPUT -s 218.0.0.0/8 -j DROP
$ipt -A INPUT -s 219.0.0.0/8 -j DROP
$ipt -A INPUT -s 220.0.0.0/8 -j DROP

echo " Bien. Verifique con iptables -nL"
#########FIN#############

Linux es genial!.

miércoles, 10 de agosto de 2011

IP fija Slackware

 Lo más comodo y fácil para asignar una ip fija (o dhcp) a nuestro slackware es utilizar la utilidad netconfig. Una interfaz gráfica sencilla nos pedirá los datos necesarios para ello. Pero realizar el proceso manualmente es más divertido y didáctico.  En este ejemplo la IP = 192.168.1.241 máscara de red = 255.255.255.0 puerta de enlace = 192.168.1.1 dns = 87.216.1.65, 87.216.1.66.

Primero hacemos una copia de cada uno de los ficheros involucrados. Los ficheros a editar (utilice su editor preferido) son:
/etc/rc.d/rc.inet1.conf
/etc/hosts
/etc/resolv.conf

# vi /etc/rc.d/rc.inet1.conf
# /etc/rc.d/rc.inet1.conf
# Config information for eth0:
IPADDR[0]="192.168.1.241"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Default gateway IP address:
GATEWAY="192.168.1.1"
:wq

# vi /etc/resolv.conf
# /etc/resolv.conf
# dns
search zapto.org
nameserver 87.216.1.65
nameserver 87.216.1.66
:wq

Para que el fichero no admita cambios:
# chattr +i /etc/resolv.conf
# lsattr /etc/resolv.conf
----i--------- /etc/resolv.conf

# vi /etc/hosts
#
# For loopbacking.
127.0.0.1        localhost
192.168.1.241        slackware.zapto.org slackware
# End of hosts.
:wq

Linux es genial!.

martes, 9 de agosto de 2011

Actualizar Slackware

Fuente: http://slackdhabyx.wordpress.com/

Mantener al día las actualizaciones de seguridad de Slackware de una manera sencilla

Slackpkg (http://slackpkg.org) es una utilidad para instalar y actualizar paquetes desde Internet, pudiendo así tener actualizado nuestro Slackware ya sea para la versión estable, como para la Current.

Para configurarlo solo se necesitan editar los archivos que se encuentran en la carpeta "/etc/slackpkg/"

Lo primero es configurar el mirror de donde obtener la información, para ello usamos nuestro editor preferido y eliminamos la almohadilla (#) de comentario de la línea del servidor que mejor se adecué a nuestras necesidades:

    # vi /etc/slackpkg/mirrors

Dentro de los grupos de mirrors me desplazo hasta el que corresponde a mi máquina:

# Slackware64 13.0

# Spain,
ftp://ftp.etse.urv.es/pub/linux/slackware/slackware64-13.0/
# France, 1Gbit
http://ftp.lip6.fr/pub/linux/distributions/slackware/slackware64-13.0/
ftp://ftp.lip6.fr/pub/linux/distributions/slackware/slackware64-13.0/

Luego de ésto pueden bajar la lista de paquetes disponibles con:

# slackpkg update

Si desean tener todas las actualizaciones de seguridad solo deberán ejecutar:

# slackpkg upgrade-all

o si solo desean actualizar cierta rama o algun paquete en especial pueden efectuar un upgrade por ejemplo de KDE asi:

    # slackpkg upgrade xfce

para la lista completa de funciones pueden ejecutar simplemente slackpkg o ver la página de los manuales.

Cuando un usuario de Slackware añade software a su sistema normalmente debe compilarlo, o bajar paquetes de algún lugar; siempre es mejor administrar lo que se instala por medio de la paquetería de slackware para que podamos desinstalar y actualizar fácilmente y sin problemas.

El problema viene cuando no disponemos de un Slackbuild, ya sea para la versión que necesitamos o por que simplemente no existe un paquete para el software; una solucion es hacer el paquete mediante makepkg; la mas recomendable es hacer nuestro propio Slackbuild y solo modificarlo para cada versión del software que instalemos.

Esto trae siempre otros problemas, ya que si por algún motivo no pusimos algún parámetro al configure o no configuramos adecuadamente el paquete, la recompilación del mismo nos lleva mucho tiempo, con lo cual hacer Slackbuilds de programas muy grandes suele ser tedioso.

La mejor solución es utilizar ccache, que es un programa que nos guardará una cache de lo que compilemos; con esto aceleraremos la compilación de programas, ya que si el codigo a compilar es identico a lo que ccache ya tiene, simplemente será reemplazado y solamente compilara lo nuevo.

Ccache no solo nos ayudará en la compilación de paquetes de software que descarguemos de internet; si trabajamos en el área de desarrollo de software basado en lenguaje C o C++ tendremos a la mano un buen programa que nos ahorrará mucho tiempo en la compilación, mas a la hora de eliminar bugs en programas grandes.

Mejorar aspecto de xterm
Abrir el archivo /etc/X11/app-defaults/XTerm y añadir al final del archivo las líneas que aparecen más abajo:

# cd /etc/X11/app-defaults/
# vi XTerm

XTerm*background: black
XTerm*foreground: green
XTerm*highlightcolor: red
XTerm*font: 9x15
XTerm*hiforecolor: white
XTerm*hibackcolor: #c06077
XTerm*geometry: 65x20
:wq

Linux es genial!.

domingo, 7 de agosto de 2011

Slackware

 Slackware 13

Otra distribución en la misma linea de Gentoo linux (robusta y estable) es Slackware tanto para ordenadores de sobremesa o portatiles como para servidores. Basada en un sistema de ficheros de inicio muy simple (BSD-like), posee gran estabilidad en su sistema base, es rápida y lo mejor, ideal para aprender. De momento mi impresión es que es más fácil que gentoo linux. genialmente sencilla.

Mucha información y soporte en: http://www.slackware.cl/

La actual versión (slackware 13) incorpora soporte para el sistema de archivos ext4, la instalación se realiza con un instalador que nos guiara durante todo el proceso. Es posible elegir entre varios entornos gráficos aunque en mi caso he preferido utilizar xfce y bootear desde un pendrive (usb). El propio instalador permite crearlo al final del proceso.

Al arrancar el sistema e inmediatamente después del check de la Bios, pulsando  la tecla F12 elijo el dispositivo con el que quiero iniciar, en este caso USB storage device. Intro e Intro de nuevo para arrancar Slackware.

Lo básico depues de instalar Slackware 13 x86_64:

Instalar swaret - packages manager (manejador de paquetes).
Puede descargarse desde e instalarlo con installdpkg:
http://sourceforge.net/projects/swaret/files/
$ cd Downloads
# installpkg swaret-1.6.3-noarch-2.tgz

Verás que un mensaje informa que renombre el archivo /etc/swaret.conf-new a /etc/swaret.conf.
# mv /etc/swaret.conf-new /etc/swaret.conf

Opciones del archivo swaret.conf, poco hay que tocar para que funcione:

VERSION    : La versión de Slackware que estamos usando.

LANGUAGE   : ESPANOL (Sin la ñ, solo la n).

ROOT       : Por defecto, las líneas importantes ya están descomentadas y no se
         tiene que tocar nada.

REPOS_ROOT : Aquí vamos a añadir los repositorios desde donde queremos descargar
         los paquetes.

DEP_ROOT   : Estos otros repositorios es donde se buscara las dependencias.
         Por defecto ya vienen configurado las URL de Swaret. No tenemos que
         tocar nada.

EXCLUDE    : Aquí podemos incluir todos aquellos paquetes que queramos excluir, como pueden ser los paquetes del kernel. Por defecto ya están
         excluidos los paquetes principales.

DEPENDENCY : Si esta en 1 después de instalar el paquete verifica si necesita
         dependencias, si esta en 0 omitirá este paso.

DSEARCHLIB : Swaret buscara para dependencias si esta configurado en 1, si
         queremos desactivarlo lo ponemos en 0.

MD5CHECK   : Esta opción por defecto viene en 1, así lo tenemos que dejar para
         que verifique la integridad del paquete antes de instalarlo.

CACHE_DIR  : Swaret descargara los paquetes y los almacenara en la ruta que le
         indiquemos, por defecto esta en /var/swaret, pero podemos asignarle
         cualquier otro directorio de nuestra preferencia.

NIC       : Aquí debemos de indicar con cual dispositivo nos conectamos a Internet.
         Por defecto es la interfaz eth0.

Ahora toca agregar los repositorios de slackware 13:

# vi /etc/swaret.conf
# repositorios slackware 13
REPOS_ROOT=Repositorios%http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-13.0/
REPOS_ROOT=Repositorios1%http://www2.linuxpackages.net/Slackware/Slackware-13.0-i386/sotirov/
REPOS_ROOT=Repositorios2%http://slackware.mirrors.tds.net/pub/slackware/slackware-current/
REPOS_ROOT=Repositorios3%http://slack.isper.sk/pub/slackware-13.0/
REPOS_ROOT=Repositorios4%http://software.jaos.org/slackpacks/13.0/
REPOS_ROOT=repositorio5%http://repository.slacky.eu/slackware-13.0/
REPOS_ROOT=repositorio6%http://connie.slackware.com/~alien/slackbuilds/
REPOS_ROOT=repositorio7%http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-13.0/
Guardar y salir :wq

Actualizar:
# swaret --update

Buscar librerias faltantes
# swaret --dep

Instalar flash. Lo mas importante es descargar flash desde el enlace siguiente:
http://labs.adobe.com/downloads/flashplayer11.html
y descargar el archivo:
Download plug-in for Linux 64-bit (TAR.GZ 6.7 MB)

A continuacion descomprimir el archivo y copiarlo en la carpeta de mozilla plugins.
$ tar xzvf flashplayer11_b1_install_lin_64_071311.tar.gz
# cp ./libflashplayer.so /usr/lib64/mozilla/plugins/

La comprobacion se realiza tecleando en la barra de direcciones del navegador about:plugins:



Capturar pantalla desde la terminal:
$ import -window root flash.jpg

Para sincronizar la hora y utilizar la correcta de acuerdo a nuestra ubicación geográfica se utiliza el comando ntpdate seguido de un servidor ntp. Por ejemplo para españa:
# ntpdate es.pool.ntp.org
7 Aug 10:44:18 ntpdate[4636]: adjust time server 130.206.3.166 offset 0.177439 sec

Para modificar el idioma del sistema al castellano se tienen que exportar algunas variables de ambiente, esto se hace editando el archivo /etc/profile.d/lang.sh:

# Set the system locale
export LC_ALL=es_ES
export LANG=es_ES
export LANGUAGE=es_ES

Para tener el teclado en castellano debe existir en el script de inicio /etc/rc.d/rc.keymap lo siguiente:
#!/bin/sh
# Load the keyboard map.  More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
 /usr/bin/loadkeys es.map
fi

Con permisos de ejecucion:
# chmod +x /etc/rc.d/rc.keymap

O tambien ejecutando:

$ setxkbmap es

Configurando teclas de acceso rápido en xfce:
http://lgallardo.com/2009/07/18/accesos-rapidos-en-xfce-4keyboard-shortcuts-in-xfce-4/

xfce-popup-menu es el comando para activar el menú de aplicaciones. Luego en la ventana que aparece (con solo el botón cancelar), pulsamos la o las teclas de acceso rápido que queremos asignar.



Linux es genial!.

miércoles, 27 de julio de 2011

Configuración del kernel

 Configuración manual del kernel:

Maquina x86_64 Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz GenuineIntel GNU/Linux. Dell Inspiron 1525.

Después de instalar las fuentes del núcleo, (Gentoo linux), llega el momento de configurar e instalar el kernel. Es la alternativa a genkernel que nos proporcionará un kernel más compacto, pequeño y rápido. Es necesario que algunas opciones sean compiladas en el kernel, de lo contrario su sistema no arrancará.

A tal propósito no he partido de cero. Me he dado una vuelta por el sitio web de luispa para realizar una adaptación de su archivo config. Tenga en cuenta que algunas opciones pueden ser diferentes, sobre todo la wireless (tarjeta de red inalámbrica), tan popular en estos dias, que en este ejemplo no estará en us (de momento).

Dicho esto vamos a compilar la versión 2.6.37-gentoo-r4 del kernel:

# cd /usr/src/linux
# make menuconfig

Opciones de configuración del kernel utilizando menuconfig
Archivo completo http://gnulinuxcodigo.blogspot.com/2011/07/config-kernel-2637-gentoo-r4.html

Compilar el kernel:

# make && make modules_install

Asegurarse de que la partición boot está montado y si no montarla:

# mount -v -t ext2 /dev/sda1 /boot
/dev/sda1 on /boot type ext2 (rw)

Instalar el kernel:
# cd /usr/src/linux
# cp arch/x86_64/boot/bzImage /boot/bzImage-2.6.37-gentoo-r4
# cp System.map /boot/System.map-2.6.37-gentoo-r4

Agregar el nuevo kernel al gestor de arranque grub:

title  Gentoo linux - emerge it - kernel 2.6.37-gentoo-r4
root   (hd0,0)
kernel /boot/bzImage-2.6.37-gentoo-r4 real_root=/dev/sda2 ro vga=0x318

Por último arrancar con el nuevo kernel.
Linux es genial!.