PDA

Ver la versión completa : firewall para linux



chico1988
13-07-2008, 19:03
Tengo instalado ubuntu 8.0 la ultima version y interesado en un firewall para mejorar aun mas la seguridad.

Cypress
13-07-2008, 20:13
te viene por defecto con iptables ;)
y para configurarlo, podes usar firestarter ;)
sudo apt-get install firestarter
;)

j8k6f4v9j
14-07-2008, 09:25
Quizá te sea útil esto:
http://es.tldp.org/Manuales-LuCAS/doc-iptables-firewall/doc-iptables-firewall-html/

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

Cypress
14-07-2008, 16:12
es algo que me paso a mi cuando me cambie a GNU/Linux, acostumbrado a una ventanita para mi firewall, me preguntaba, cómo veo las conexiones activas ? cómo se cuando alguien me escanea los puertos ?
estaria bueno tener en GNU/Linux algo medio integrado, pero mientras...
yo para ver mis conexiones uso: ss y bueno, el firewall ya lo configure con firestarter ;)

aun así, como dice j8.. siempre es bueno tener nociones de como trabajar con iptables, ya que es increible todo lo que se puede hacer con él.

j8k6f4v9j
14-07-2008, 18:15
Para la monitorización de interfaces y servicios se puede usar Nagios (aunque no es tan trivial).

Yo para ver las conexiones activas uso netstat, claro está. Y para configurar iptables uso... iptables :D

Sabiendo los comandos del sistema que te proporcionan la información que quieres, y con unas nociones en programación, te puedes hacer virguerías. Por ejemplo, puedo hacerme un pequeño servicio web, con python, que me genere los reportes en html, me prepare un bonioto pdf listo para la descarga o me muestre todo en una ventana tradicional. El caso es que hay muchas formas para elegir :)

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

Cypress
14-07-2008, 20:07
a mi lo que no me gusta de netstat es que
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Ruta

y todo lo que aparece despues.

y cada vez que quiero ver las conexiones tengo que subir el scroll.. ( si lo hice en un terminal, porque por lo general para ver conexines lo hago en tty6 y ahí marche :-/ )

en cambio con ss, veo solo los shockets, y si quiero nombres ss -r
ss me gusta mucho más :)
lo encontre navegando por el /sbin :D y me quede con él.
Me voy a mirar el nagios a ver que tal :)

Saludoss :)

j8k6f4v9j
15-07-2008, 00:40
Si quieres ver los servicios tcp a la escucha
netstat -atpn | grep LISTEN

Para las conexiones tcp establecidas simplemente no filtres con grep
netstat -atpn

Para todas las conexiones sumas la u de udp
netstat -atupn

PD: ss sin argumentos no te dice los demonios a la escucha. ¿Sabías que tienes `sudo netstat -atpn | grep LISTEN | wc -l` demonios a la escucha en tu sistema? ¿Estás seguro de que los necesitas todos?

Si la respuesta a la pregunta última es negativa, update-rc.d -f servicio remove es lo que tienes que hacer para que no inicie a cada arranque. Por ejemplo, para que /etc/init.d/nfs-common no inicie en cada reinicio:
update-rc.d -f nfs-common remove

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

Nost
15-07-2008, 01:39
j8, eres, sin duda alguna, el mejor.

j8k6f4v9j
15-07-2008, 01:58
No sé por qué tengo la sensación de que me estás haciendo la pelota xD

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

Nost
15-07-2008, 02:08
No te estoy haciendo la pelota, porque no tengo motivo, pero es que realmente para concatenar "sudo netstat -atpn | grep LISTEN | wc -l" hay que tener maña. Bueno, realmente no, pero para saber tantos comandos hay que tener maña. O una carrera...

j8k6f4v9j
15-07-2008, 02:22
Nah, no es nada, lo que pasa es que con shell scripting se puede hacer casi todo.

Te pongo un ejemplo, es uno de mis preferidos, sirve para ordenar por nivel de señal la salida de iwlist (lista de puntos de acceso al alcance):


#!/bin/ksh
x=; ctrla=$(print -n '\001'); ctrlb=$(print -n '\002'); ctrlc=$(print -n '\003')
cont=0
(cat; print Cell) | while IFS= read -r line; do
if [[ $line = *@(Cell)* ]]; then
[[ -n $x ]] && print -r -- "$x"
x="$ctrlc$line"
elif [[ $line = *@(Signal level)* ]]; then
level=$(print -r -- "$line" | \
sed 's/^.*Signal level=\([0-9-]*\) .*$/\1/')
x=$level$ctrlb$x$ctrla$line
else
x=$x$ctrla$line
fi
done | sort -nrt"$ctrlb" | sed "s/^.*${ctrlb}//" | sed "s/^.*${ctrlb}//" | tr '\
001' '\012'

| while IFS='\012' read -r linea; do
[[ $linea = *@($ctrlc)* ]] && $((++cont)) 2> /dev/null
echo $linea | sed "s/${ctrlc}/$cont/"
done


PD: Como se puede apreciar no se trata de sh ni de bash, sino de ksh

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

clarinetista
15-07-2008, 09:36
Como bien dice nuestro compi j8 ese es el script en Korn Shell de como hacer las rosquillas de la abuela de casillas :D :D

Nost
15-07-2008, 09:41
http://www.botonturbo.com/wp-content/uploads/2007/10/omg.jpg

Dios. Korn Shell. Pensaba que solo sabían escribir en ese lenguaje sus creadores. Me cago en la puta.

PD: Me está siendo útil tu script.

Cypress
15-07-2008, 11:51
joe.. j8 is god !!

con los demonios, me acabo de enterar que hay 4 o 3 que no estoy seguro de saber de dónde salen.. pero con nagios ya van 9 :-/

y yo creia que me habia armado un buen script xD


#! /bin/bash
a=0
while a=0; do
iwconfig wlan0 > ~/signall;
grep 'Signal level' ~/signall;
rm ~/signall;
clear;
done;


y lo paro con Ctrl+c xD

esa es mi verción para ver la señal del wifi que siempre corro en tty6, :$ xD
realmente es útil, pero no es muy prolijo que digamos :-/
bastante rudimentaria es la cosa mia en bash :-/ xD

En fin.. larga vida a j8 the god's GNU/Linux ! :)

j8k6f4v9j
15-07-2008, 13:17
ksh es muy parecido a sus primos bash, sh, etc. Pero añade funcionalidades muy útiles. A mí personalmente me gusta más que ninguno :)

Aunque en debian mantengo a bash como $SHELL, en openbsd es ksh a quien tengo, y dudo mucho que lo derroquen :p

Mira que sois exagerados, yo no soy ningún gurú de ksh, sólo un usuario modestito ;). A mí me costó meses comprender el conjunto de los mecanismos que aparecen en el script (después de años de uso de intérpretes de comandos), y no es para tanto, lo que pasa es que está condensadito xD

Cypress, tu script se puede reducir un poquito. No necesitas variable, ni archivo temporal.

Veo que no hay una pausa entre cada iteración del bucle, por lo que se ejecutaría el comando una y otra vez, "pausado" sólamente el tiempo en que realmente se está ejecutando el comando aunque sin imprimir en pantalla. Puedes pausarlo unos momentos, digamos 5 segundos. De todas formas no creo que en ese tiempo cambie demasiado el panorama de los puntos de acceso cercanos. Si quieres una representación a tiempo real más fidedigna puedes usar herramientas como kismet o airodump.

Con los cambios, quedaría algo así:

#! /bin/bash
while ((1)); do
iwconfig wlan0 | grep 'Signal level'
sleep 5
done


Pero si además de las señales, quieres ver los ESSIDs a los que corresponden, debes cambiar los argumentos de grep:

#! /bin/bash
while ((1)); do
iwconfig wlan0 | grep -e 'Signal level' -e 'ESSID'
sleep 5
done


Y si quieres un pelín de formato, puedes valerte del poderoso sed:



#!/bin/sh
clear
while ((1));do
clear
echo -e "\t\t\t+---------------------------------------+\n\t\t\t| |\n\t\t\t| Wireless AP's Monitor (by j8k6f4v9j) |\n\t\t\t+---------------------------------------+"
echo -e \
`iwconfig wlan0 2> /dev/null \
| grep -e 'ESSID' -e 'Signal level' \
| sed \
-e "s/^.*ESSID:\(.*\) .*$/Punto de acceso: \1/" \
-e "s/^.*Signal level=\([0-9-]*\) .*$/Señal: \1/"`
sleep 5
done


Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

Nost
15-07-2008, 14:58
El poderoso sed dice... ¡el poderoso j8! Joer, que máquina...