Como configurar el Firewall para controlar aplicaciones [Solucionado]

me gustaría saber si existe alguna manera o algun software para controlar las aplicaciones y sus puertos.

Por ejemplo, podemos dar permiso con IPtables para abrir el puerto 80 TCP pero además que sólo IceWeasel pudiera usar ese puerto. He usado este tipo de software en Windows pero no se qué usar en Linux.

¿Puede hacerse?. ¿Existe algun software recomendado?

Das a entender que estás buscando un "firewall gráfico", tal y como se usa en windows ¿no?
así de golpe me vienen a la mente un par de softwares que igual te sirven de ayuda, o por lo menos un punto donde iniciar la búsqueda...
En repositorios de debian tienes, por ejemplo, kmyfirewall o firestarter.

Hay otros, cmo por ejemplo apf-firewall, o uncomplicated-firewall (no estoy seguro que se llamen exactamente asi). con aptitude search fire o aptitude search firewall obtendrás una lista de los posibles programas para ese cometido...

O también Gufw (en gtk).

Cierto, ese se me ha escapado... Gufw es una interfaz (gui) para ufw (uncomplicated firewall).

gracias :)

he mirado los que decis y creo que Gufw es lo que busco, porque firestarter no parece permitir el control de aplicaciones.

problema:

he instalado Gufw y se me ha colocado un icono de "configuración de cortafuegos". Le hago click y me pide contraseña root. Se la pongo pero entonces me sale un aviso de error y me dice:

Failed to run /usr/share/gufw/gufw.py as user root
The underlying authorizaton mechanism (sudo) does not allow you to run this program. Contact de System administrator

no se si es un fallo de sudores. Con cat /etc/sudoers tengo:

Defaults        env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root    ALL=(ALL) ALL

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#

si lo ejecuto en consola desde root me sale:

# /usr/share/gufw/gufw.py
/usr/lib/pymodules/python2.5/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
  warnings.warn(str(e), _gtk.Warning)
/usr/share/gufw/view/guiGufw.py:30: Warning: invalid (NULL) pointer instance
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: Warning: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: GtkWarning: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: Warning: g_object_get: assertion `G_IS_OBJECT (object)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: Warning: value "TRUE" of type `gboolean' is invalid or out of range for property `visible' of type `gboolean'
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: GtkWarning: gdk_pango_context_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_context_set_font_description: assertion `context != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_context_set_base_dir: assertion `context != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_context_set_language: assertion `context != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_new: assertion `context != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_single_paragraph_mode: assertion `PANGO_IS_LAYOUT (layout)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_ellipsize: assertion `PANGO_IS_LAYOUT (layout)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_width: assertion `layout != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_wrap: assertion `PANGO_IS_LAYOUT (layout)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_alignment: assertion `layout != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_attributes: assertion `layout != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_get_pixel_extents: assertion `PANGO_IS_LAYOUT (layout)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: Warning: g_object_unref: assertion `G_IS_OBJECT (object)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_set_text: assertion `layout != NULL' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: GtkWarning: gtk_window_set_screen: assertion `GDK_IS_SCREEN (screen)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: PangoWarning: pango_layout_get_unknown_glyphs_count: assertion `PANGO_IS_LAYOUT (layout)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: GtkWarning: gdk_cursor_new_for_display: assertion `GDK_IS_DISPLAY (display)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: GtkWarning: gdk_screen_get_display: assertion `GDK_IS_SCREEN (screen)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
/usr/share/gufw/view/guiGufw.py:30: GtkWarning: gdk_keymap_get_for_display: assertion `GDK_IS_DISPLAY (display)' failed
  self.glade          = gtk.glade.XML(self.variable.get_path("glade"))
Violación de segmento

y la verdad no se que pasa. Tampoco encuentro información de este error del gufw en internet.

¿alguna idea de qué puede ser? que

uso Debian Squeeze con KDE.

gracias,

Prueba con:

$ export DISPLAY=:0.0

y después vuelve a intentar ejecutar Gufw desde consola.

Saludos wink

atropino escribió:

gracias :)

he mirado los que decis y creo que Gufw es lo que busco, porque firestarter no parece permitir el control de aplicaciones.

http://dmolinap.blogspot.com/2008/09/administracin-del-firewall-con.html confuso

ok.. gracias.
El caso es que en Ubuntu lo he instalado a la primera. Bueno, pero ya da igual porque lo he quitado.
Resulta que las aplicaciones a controlar por este firewall son predefinidas. El programa detecta a su antojo las aplicaciones a manejar y por lo que leo en su web parece que no da opción a configurarlas.

lo que comentas blackhalo es solo de apariencia. En el firestarter se le pone un nombre a la regla, pero no significa que controle al ejecutable.

Me pregunto porque se diseñan programas de gestión de firewalls esa manera porque apenas valen para nada. Si doy permiso para el puerto 80 puedo estar pensando en que solo el navegador saldrá por ese puerto pero me pueden haber frito a troyanos que usarán el puerto 80 y accederán tan anchos al exterior.

Resulta algo casi totalmente inútil de cara a la seguridad.

Buscaré un poco más por ahí a ver si se pueden controlar las aplicaciones de algun modo sad

Si alguien sabe como hacerlo, que lo diga por favor.

(miraré de nuevo esa solución de quilloquepasa de instalarlo con Debian mas que nada para ver si funciona por si sirve para otra gente).

gracias de todos modos por la ayuda :)

atropino escribió:

Me pregunto porque se diseñan programas de gestión de firewalls esa manera porque apenas valen para nada.

Valen para lo que valen. Si quieres toda la potencia nada mejor que meterle manos a iptables para configurarlo exáctamente como tú quieras.

ah... ¿y con IPtables se pueden controlar las aplicaicones?. ¿como???? :)

Necesitas un firewall de capa 7 tipo l7-filter. Algo parecido a esto:

http://www.ecualug.org/2009/07/12/blog/razametal/debian_kernel_26301_l7f...

Saludos wink