SSH iptables

Siempre me gusta tener activado SSH pero es peligroso en maquinas expuestas a internet debido a los ataques de fuerza de bruta, por esto agregue una cadena a iptables(8) que limita el número de intentos a SSH desde una IP, además de registrar en el log del kernel los intentos fallidos.


#--Crea una cadena SSH-fal
/sbin/iptables -N SSH-fal


#--Una IP solo puede intentar 3 veces cada 100 segundos, los intentos fallidos van al log del kernel
/sbin/iptables -A SSH-fal -p tcp --dport 22 -m state --state NEW -m recent --set
--name SSH
/sbin/iptables -A SSH-fal -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 2 --rttl --name SSH -j LOG --log-prefix "IPTABLES> ssh intento fallido"
/sbin/iptables -A SSH-fal -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 3 --rttl --name SSH -j DROP

#--Carga las reglas definidas en SSH-fal
/sbin/iptables -A INPUT -j SSH-fal

Advertisements

¿Cómo compilar el kernel de linux?

Después de que varias personas me han consultado sobre cómo compilar el kernel, aqui está como lo compilo yo, las instrucciones no son muy explícitas porque sólo son mis notas. Esta forma de compilar el kernel la he usado siempre después de probar varias formas ésta es la que más me ha convencido y siempre me ha funcionado.

LINUX KERNEL
-----------------------------

se copia el archivo config que esta en /boot
se renombra el archivo como .config

hacer un ln -s en /usr/src/linux al directorio del kernel

en /usr/src/linux/Makefile:4
poner identificador en EXTRAVERION

2.6.17-2.6.24.3
en /usr/src/linux/fs/splice.c
cambiar

if (unlikely(!base))
break;
por

if (unlikely(!access_ok(VERIFY_READ, base, len)))
break;

==================================================

----RPMs-------------------

make mrproper!!!!!!!!!!

make oldconfig

make menuconfig

make all

make modules

make modules_install

make install

-------DEBIANS----------

make mrproper

make oldconfig

make menuconfig

make-kpkg clean

make-kpkg --initrd kernel_image kernel_headers

dpkg -i <kernel>.deb

dpkg -i <kernel_headers>.deb

Gravísima vulnerabilidad en linux

Una vulnerabilidad que según afecta desde el 2.6.17 al 2.6.24.1 me ha hecho reflexionar sobre calidad en software y full-disclosure, aunque supuestamente se hizó saber a algunos cuantos de esta vulnerabilidad antes de hacerse pública no deja de ser muy peligrosa.

Lo gravísimo de esta vulnerabilidad radica en que permite a un usuario común convertirse en root en menos de un minuto.
¿Así o más fácil?
Supuestamente la vulnerabilidad está en vmsplice.

http://www.securityfocus.com/bid/27704

La probe en fedora 7 con SELinux enforcing y * hard core 0 en limits.conf en el kernel 2.6.22.6-custom-24-09-2007 en una 686 y el exploit funcionó a la perfección, depués en el mismo sistema con 2.6.23.14-64.fc7 funcionó en dos de seis ocaciones. Para estas pruebas compile el exploit en el mismo kernel que lo probé.
Después ejecuté el exploit que previamente había compilado en el 2.6.22.6-custom-24-09-2007 sobre el 2.6.23.14-64.fc7 y el exploit sigue funcionando a la perfección.

Ya con 2.6.23.15-80.fc7 parece que esta vulnerabilidad ha quedado solucionada.

Algo que es de reconcer de la comunidad de software libre es lo rápido que ha actuado en esta ocasión y otras similares.

¿Y todo para qué? ¿Y todo para qué? Intocable

Nueva instalación de OpenBSD

instalaopenbsdAcabo de instalar OpenBSD en una máquina viejita. Lo gratamente sorprendente es lo rápido y divertido que fue el proceso, además la configuración fue muy rápida también.

dmesg de la maquina con OpenBSD


OpenBSD 4.1 (GENERIC) #1435: Sat Mar 10 19:07:45 MST 2007
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: AMD-K6(tm) 3D processor ("AuthenticAMD" 586-class) 151 MHz
..........

Como oficialmente no tengo internet (lo tomo prestado de algún vecino), fue necesario hacer NAT con iptables desde mi lap con Fedora, todo lo que hice fue:

iptables -F
iptables -X RH-input
iptables -F -t NAT
iptables -A POSTROUTING -t nat -o eth1 -d 0/0 -j MASQUERADE
iptables -A FORWARD -t filter -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -t filter -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

y habilitar el bit de forward

Mi interfaz de internet en la lap es eth1(wireless con ip asiganada por el DHCP del 2wire del vecino 192.168.1.29), en la eth0(Ethernet cable 172.16.22.18).

En OpenBSD

ifconfig rl0 172.16.22.17 up

Crear el archivo /etc/mygate con 172.16.22.18

Acomodar el archivo /etc/resolv.conf para que quede así


search gateway.2wire.net
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 192.168.1.254

después

sh /etc/netstart

y desde la máquina con OpenBSD


ping yahoo.com PING yahoo.com (216.109.112.135): 56 data bytes
64 bytes from 216.109.112.135: icmp_seq=0 ttl=55 time=102.880 ms
64 bytes from 216.109.112.135: icmp_seq=1 ttl=54 time=101.531 ms

Puse el OpenBSD 4.1 porque es el que tenia en el Apache de mi lap, así que lo instale por red con un cable cruzado.
Ahora ya con internet desde puffy(la máquina con OpenBSD) instale bash y ahorita estoy instalando xfce.

La foto de la instalación.

De ado izquierdo se ve el log del apache en la lap cuando el OpenBSD fue por los sets de instalación, de lado derecho la compu con OpenBSD.

WGET Error `http://:8080/’: Invalid host name SOLVED

Some days a go i tried to use wget to download some files from internet, and I alway got the error `http://:8080/': Invalid host name, I read the man page but I couldn’t find anything that help me to solve the problem, then I searched in internet but anything again. So I used Opera to download the files, but I was not quite trying to know the strange behavior of wget but I leaf it in peace.

And now while I was testing a c program which uses extern char **environ I saw environ[10]: http_proxy=http://:8080/, I thought I had the answer to the strange behavior of wget, and I was right.

To solve it do
$ unset http_proxy

And in gnome look at System->preferences->Internet->proxy

Gnome proxy
Be sure to your proxy is well configured or choose direct connection