Firewall - abrir puertos

Hola!
txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Firewall - abrir puertos

Post#1 by txema75 » 07 Feb 2016, 17:53

Buenas!

Me he preparado un live usb con Porteus 3.1 64 bits y he seguido el post "Cosas que hacer en la Terminal despues de instalar Porteus" y más o menos lo tengo a mi gusto. Me resulta una distro muy práctica y liviana. :)
Sin embargo tengo un probema con el firewall, que lo activé desde el panel de control de Porteus y entonces no me funcionan aplicaciones como Trojitá (correo) o amule, hasta que no lo desactivo. Me gustaría saber si es posible abrirle los puertos a estas aplicaciones y como tendría que hacerlo, para mantener el firewall activo.

Muchas gracias por la ayuda :Yahoo!:

txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Re: Firewall - abrir puertos

Post#2 by txema75 » 03 Oct 2016, 19:31

Ninguna idea?
Cada vez que arranco porteus me toca desactivar el firewall si quiero ver el correo :cry:
Gracias de antemano

port
Samurai
Samurai
Posts: 135
Joined: 18 Feb 2016, 09:25
Distribution: Linux porteus 3.2.2 KDE
Location: Spain

Re: Firewall - abrir puertos

Post#3 by port » 04 Oct 2016, 12:03

txema75 wrote: Sin embargo tengo un probema con el firewall, que lo activé desde el panel de control de Porteus y entonces no me funcionan aplicaciones como Trojitá (correo) o amule, hasta que no lo desactivo. Me gustaría saber si es posible abrirle los puertos a estas aplicaciones y como tendría que hacerlo, para mantener el firewall activo.
Si has activado el firewall desde el Porteus firewall manager del Porteus Setting Centre asegurate de haber usado el botón + Normal , con la configuración normal no deberias tener problemas con el Trojitá (salvo que use TLS/SSL para enviar y leer correo o IMAP3, en cuyo caso debería abrir sus puertos), sin embargo con el amule la cosa cambia, tendrás que abrir los puertos que usa.

Para abrir los puertos de correo TLS/SSL e IMAP3 y los puertos de emule (suponiendo que sean UDP 60013 y TCP 60033) ejecuta los siguients comandos:

Code: Select all

# sed 's/ALLOWED_PORTS="\(.*\)"/ALLOWED_PORTS="\1 465 995 220 993 60033"/' < /etc/rc.d/rc.FireWall > rcf.txt
# sed 's/\(# allow DNS in all directions$\)/# udp ports for email and emule\n   \$IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT \n\n   \1/' < rcf.txt > rcf2.txt
# [ -s rfc2.txt ] && mv /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig && mv rcf2.txt /etc/rc.d/rc.FireWall 
Ahora deberías tener en el firewall las reglas para abrir puertos, puedes comprobarlo con el comando:

Code: Select all

# diff /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig
12c12
< ALLOWED_PORTS="21 80 110 143 443 465 995 220 993 60033"
---
> ALLOWED_PORTS="21 80 110 143 443"
52,58d51
< 
<    # udp ports for email and emule
<    $IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT 
Si solo quieres abrir algunos puertos elimina de los comandos anteriores los numeros de puertos que no desees abrir (1er comando sed) y las reglas de los puertos udp que no desees abrir (2do comando sed), por ejemplo, si solo quieres abrir los puertos emule udp 61412 y tcp 55000, entonces los comandos a ejecutar quedarían así:

Code: Select all

# sed 's/ALLOWED_PORTS="\(.*\)"/ALLOWED_PORTS="\1 55000"/' < /etc/rc.d/rc.FireWall > rcf.txt
# sed 's/\(# allow DNS in all directions$\)/# udp ports for email and emule\n   \$IPTABLES -A INPUT -p udp --dport 61412 -j ACCEPT \n\n   \1/' < rcf.txt > rcf2.txt
# [ -s rfc2.txt ] && mv /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig && mv rcf2.txt /etc/rc.d/rc.FireWall 
En caso de que tengas un router de acceso a internet, recuerda que también tienes que abrir esos puertos en el router (aunque si dices que al desabilitar el firewall de porteus tienes acceso a todo, asumo que estarán abiertos)
Last edited by port on 04 Oct 2016, 22:20, edited 1 time in total.

txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Re: Firewall - abrir puertos

Post#4 by txema75 » 04 Oct 2016, 14:40

Gracias nuevamente port
Efectivamente usa IMAP y lo primero que me sale al abrir el porteus es el error del correo (que lo suelo olvidar abierto), hasta que desactivo el firewall que efectivamente está en "normal"
Voy a probar los comandos que me indicas y te comento :)

Un saludo

txema

txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Re: Firewall - abrir puertos

Post#5 by txema75 » 05 Oct 2016, 11:04

port wrote:
Si has activado el firewall desde el Porteus firewall manager del Porteus Setting Centre asegurate de haber usado el botón + Normal , con la configuración normal no deberias tener problemas con el Trojitá (salvo que use TLS/SSL para enviar y leer correo o IMAP3, en cuyo caso debería abrir sus puertos), sin embargo con el amule la cosa cambia, tendrás que abrir los puertos que usa.

Para abrir los puertos de correo TLS/SSL e IMAP3 y los puertos de emule (suponiendo que sean UDP 60013 y TCP 60033) ejecuta los siguients comandos:

Code: Select all

# sed 's/ALLOWED_PORTS="\(.*\)"/ALLOWED_PORTS="\1 465 995 220 993 60033"/' < /etc/rc.d/rc.FireWall > rcf.txt
# sed 's/\(# allow DNS in all directions$\)/# udp ports for email and emule\n   \$IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT \n\n   \1/' < rcf.txt > rcf2.txt
# [ -s rfc2.txt ] && mv /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig && mv rcf2.txt /etc/rc.d/rc.FireWall 
Ahora deberías tener en el firewall las reglas para abrir puertos, puedes comprobarlo con el comando:

Code: Select all

# diff /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig
12c12
< ALLOWED_PORTS="21 80 110 143 443 465 995 220 993 60033"
---
> ALLOWED_PORTS="21 80 110 143 443"
52,58d51
< 
<    # udp ports for email and emule
<    $IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT
<    $IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT 
Si solo quieres abrir algunos puertos elimina de los comandos anteriores los numeros de puertos que no desees abrir (1er comando sed) y las reglas de los puertos udp que no desees abrir (2do comando sed), por ejemplo, si solo quieres abrir los puertos emule udp 61412 y tcp 55000, entonces los comandos a ejecutar quedarían así:

Code: Select all

# sed 's/ALLOWED_PORTS="\(.*\)"/ALLOWED_PORTS="\1 55000"/' < /etc/rc.d/rc.FireWall > rcf.txt
# sed 's/\(# allow DNS in all directions$\)/# udp ports for email and emule\n   \$IPTABLES -A INPUT -p udp --dport 61412 -j ACCEPT \n\n   \1/' < rcf.txt > rcf2.txt
# [ -s rfc2.txt ] && mv /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig && mv rcf2.txt /etc/rc.d/rc.FireWall 
En caso de que tengas un router de acceso a internet, recuerda que también tienes que abrir esos puertos en el router (aunque si dices que al desabilitar el firewall de porteus tienes acceso a todo, asumo que estarán abiertos)
Algo me está fallando :sorry:
He ejecutado los comandos tanto desde sesión iniciada en root como en guest, y no veo que los cambios se realicen.
Verifio el archivo
/etc/rc.d/firewall.rc
desde la interfaz gráfica y siempre está igual
No veo que se hayan creado los ficheros
rc.FireWall.orig
y si unos
rcf.txt y rcf2.txt
en mi carpeta de usuario que contienen los puertos añadidos. Pero ya te digo, no sobreescriben al
/etc/rc.d/firewall.rc
Desde la terminal el comando que me indicas para verificar los cambios no me devuelve nada (realmente no existen dos ficheros, solo uno y no hay diferencias claro

He visto que abriendo dolphin como root si me permite editar el rc.firewall que tengo actualmente así
#!/bin/bash
#
# usage: rc.firewall start|stop|status
#
# Simple firewall disallowing all incomming connections
# but allowing all traffic on localhost (lo device)
# and allowing all outgoing traffic for $ALLOWED_PORTS
# (you can set the variable below)
#
# Author: Tomas M. <http://slax.linux-live.org/>
#
ALLOWED_PORTS="20 21 22 25 80 110 143 443"
#-----------------------------------------------------------

if [ "$1" = "start" ]; then

SYSCTLW="/sbin/sysctl -q -w"
IPTABLES="/usr/sbin/iptables"

# Disable routing triangulation. Respond to queries out
# the same interface, not another. Helps to maintain state
# Also protects against IP spoofing

$SYSCTLW net.ipv4.conf.all.rp_filter=1

# Enable logging of packets with malformed IP addresses,
# Disable redirects,
# Disable source routed packets,
# Disable acceptance of ICMP redirects,
# Turn on protection from Denial of Service (DOS) attacks,
# Disable responding to ping broadcasts,
# Enable IP routing. Required if your firewall is protecting a network, NAT included

$SYSCTLW net.ipv4.conf.all.log_martians=1
$SYSCTLW net.ipv4.conf.all.send_redirects=0
$SYSCTLW net.ipv4.conf.all.accept_source_route=0
$SYSCTLW net.ipv4.conf.all.accept_redirects=0
$SYSCTLW net.ipv4.tcp_syncookies=1
$SYSCTLW net.ipv4.icmp_echo_ignore_broadcasts=1
$SYSCTLW net.ipv4.ip_forward=1

# Firewall initialization, remove everything, start with clean tables
$IPTABLES -F # remove all rules
$IPTABLES -X # delete all user-defined chains

# allow everything ONLY for loop device
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# allow DNS in all directions
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 53 -j ACCEPT

# Allow previously established connections
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

for PORT in $ALLOWED_PORTS; do
$IPTABLES -A OUTPUT -p tcp --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport $PORT -m state --state ESTABLISHED -j ACCEPT
done

# Create a chain for logging all dropped packets
$IPTABLES -N LOG_DROP
# $IPTABLES -A LOG_DROP -j LOG --log-prefix "Attack log: "
$IPTABLES -A LOG_DROP -j DROP

$IPTABLES -A INPUT -j LOG_DROP # drop all incomming
$IPTABLES -A FORWARD -j LOG_DROP # drop all forwarded

elif [ "$1" = "stop" ]; then
iptables -F
iptables -X
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT

elif [ "$1" = "status" ]; then
iptables -L -v

else
echo "usage: $0 start|stop|status"
fi
Por lo que entiendo, tengo que editar la linea Allowed ports
y además añadir después de
# allow DNS in all directions
con los ejemplos de puertos que me pusiste
< # udp ports for email and emule
< $IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT
< $IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT
< $IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT
< $IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT
< $IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT
Al final lo tengo así. Funciona Trojitá para recibir (con eso me vale) no para enviar.
Y Emule no reacciona de ninguna manera :( aunque le he dado acceso de entrada y salida
No sé que fallará... Mañana lo intentaré de nuevo :)
#!/bin/bash
#
# usage: rc.firewall start|stop|status
#
# Simple firewall disallowing all incomming connections
# but allowing all traffic on localhost (lo device)
# and allowing all outgoing traffic for $ALLOWED_PORTS
# (you can set the variable below)
#
# Author: Tomas M. <http://slax.linux-live.org/>
#
ALLOWED_PORTS="20 21 22 25 80 110 143 443 4662 4672 993 995"
#-----------------------------------------------------------

if [ "$1" = "start" ]; then

SYSCTLW="/sbin/sysctl -q -w"
IPTABLES="/usr/sbin/iptables"

# Disable routing triangulation. Respond to queries out
# the same interface, not another. Helps to maintain state
# Also protects against IP spoofing

$SYSCTLW net.ipv4.conf.all.rp_filter=1

# Enable logging of packets with malformed IP addresses,
# Disable redirects,
# Disable source routed packets,
# Disable acceptance of ICMP redirects,
# Turn on protection from Denial of Service (DOS) attacks,
# Disable responding to ping broadcasts,
# Enable IP routing. Required if your firewall is protecting a network, NAT included

$SYSCTLW net.ipv4.conf.all.log_martians=1
$SYSCTLW net.ipv4.conf.all.send_redirects=0
$SYSCTLW net.ipv4.conf.all.accept_source_route=0
$SYSCTLW net.ipv4.conf.all.accept_redirects=0
$SYSCTLW net.ipv4.tcp_syncookies=1
$SYSCTLW net.ipv4.icmp_echo_ignore_broadcasts=1
$SYSCTLW net.ipv4.ip_forward=1

# Firewall initialization, remove everything , start with clean tables
$IPTABLES -F # remove all rules
$IPTABLES -X # delete all user-defined chains

# allow everything ONLY for loop device
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# allow DNS in all directions
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 53 -j ACCEPT

# udp ports for email and emule
$IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4662 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4672 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 4662 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 4672 -j ACCEPT


# Allow previously established connections
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

for PORT in $ALLOWED_PORTS; do
$IPTABLES -A OUTPUT -p tcp --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport $PORT -m state --state ESTABLISHED -j ACCEPT
done

# Create a chain for logging all dropped packets
$IPTABLES -N LOG_DROP
# $IPTABLES -A LOG_DROP -j LOG --log-prefix "Attack log: "
$IPTABLES -A LOG_DROP -j DROP

$IPTABLES -A INPUT -j LOG_DROP # drop all incomming
$IPTABLES -A FORWARD -j LOG_DROP # drop all forwarded

elif [ "$1" = "stop" ]; then
iptables -F
iptables -X
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT

elif [ "$1" = "status" ]; then
iptables -L -v

else
echo "usage: $0 start|stop|status"
fi
Ya lo siento incordiar tanto

Gracias por todo port :)

port
Samurai
Samurai
Posts: 135
Joined: 18 Feb 2016, 09:25
Distribution: Linux porteus 3.2.2 KDE
Location: Spain

Re: Firewall - abrir puertos

Post#6 by port » 07 Oct 2016, 09:25

txema75 wrote: He ejecutado los comandos tanto desde sesión iniciada en root como en guest, y no veo que los cambios se realicen.
Verifio el archivo
/etc/rc.d/firewall.rc
desde la interfaz gráfica y siempre está igual
Los comandos tienes que ejecutarlos siendo root, siempre que veas un codigo prefijado por '# ' es porque se tiene que ejecutar como root en otro caso estaría prefijado como '$ ' (al menos en mis posts!)

Dices que has ejecutado los comandos desde sesión iniciada en root, con ello entiendo que te refieres a que has entrado en Porteus como usuario root al iniciar sesión, eso debería implicar que los programas los inicias como root pero desafortunadamente esto no es necesariamente cierto siempre y en particular puede no serlo para la consola, para estar seguro, abre una Konsole y ejecuta el comando whoami si te contesta root, perfecto, deberías ejecutar los comandos ahí ;) pero si te contesta guest... entonces tienes que convertirte en root antes con el comando su (la contraseña que te pide es la del usuario root) y deberías ver que cambia el prompt y ahora incluy una # final

Si has ejecutado los comandos como root y no cambian los ficheros algo raro está pasando, o bien te falla los comandos por alguna razón (estaría bien que me dijeses lo que sale en la consola) o bien no tienes activado el changes para registrar los cambios del sistema (que no creo por tus anteriores mensajes salvo que hayas iniciado arrancado porteus en modo frugal) o alguna otra cosa para la que necesito feedback ;)
txema75 wrote: He visto que abriendo dolphin como root si me permite editar el rc.firewall que tengo actualmente así

Por lo que entiendo, tengo que editar la linea Allowed ports
y además añadir los ejemplos de puertos que me pusiste
exactamente, y reiniciar el servicio de firewall o el porteus ;-)
txema75 wrote: Al final lo tengo así. Funciona Trojitá para recibir (con eso me vale) no para enviar.
Y Emule no reacciona de ninguna manera :( aunque le he dado acceso de entrada y salida
No sé que fallará... Mañana lo intentaré de nuevo :)
Yo puse en los comandos los puertos habituales para envio y recepción de correo seguro e IMAP, si no puedes enviar puede ser debido a que no hayas configurado correctamente los parametros de smtp o IMAP de Trojitá probablemente necesitar activar autenticación en salida de correo (SMTP) o algún otro parámetro. También podría ser que Trojitá está usando otros puertos distintos a los estándar u "oficiales" aunque eso es extremadamente raro así será lo último a sospechar ;)

Respecto a emule tienes que mirar que puertos usa tu software (amule, creo recordar) y utilizar esos puertos que deben estar abiertoss también en tu router. Si aún así no te funciona puede que tu proveedor de internet esté filtrando esos puertos y tendrás que probar con otros, o que tengan "baja calidad" en los servidores de emule y sean "apartados"... en emule hay mucha casuística a considerar ;)

txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Re: Firewall - abrir puertos

Post#7 by txema75 » 07 Oct 2016, 18:36

No consigo hacerlo funcionar, la verdad que me tiene frustrado :( , después de toda la ayuda que me estás dando :Bravo: :good:
Lo hago todo desde root; la respuesta de

Code: Select all

whoami
es root

Tengo admitidos un montón de puertos en el firewall, pero a no ser que desactive el Firewall del todo, no funcionan ni Trojitá ni amule ni emule (tengo los dos :) )
He probado con diferentes puertos. En el router sí que están abiertos 4662 y 4672, los "clásicos", por eso respetaba esos. He probado 55000 y 61412 que me pusiste y tampoco.
Pienso que hay alguna capa de seguridad superior que anula los cambios en el rc.FireWall
actualmente lo tengo así
#!/bin/bash
#
# usage: rc.firewall start|stop|status
#
# Simple firewall disallowing all incomming connections
# but allowing all traffic on localhost (lo device)
# and allowing all outgoing traffic for $ALLOWED_PORTS
# (you can set the variable below)
#
# Author: Tomas M. <http://slax.linux-live.org/>
#
ALLOWED_PORTS="20 21 22 25 80 110 143 443 993 995 4662 4672 55000 61412"
#-----------------------------------------------------------

if [ "$1" = "start" ]; then

SYSCTLW="/sbin/sysctl -q -w"
IPTABLES="/usr/sbin/iptables"

# Disable routing triangulation. Respond to queries out
# the same interface, not another. Helps to maintain state
# Also protects against IP spoofing

$SYSCTLW net.ipv4.conf.all.rp_filter=1

# Enable logging of packets with malformed IP addresses,
# Disable redirects,
# Disable source routed packets,
# Disable acceptance of ICMP redirects,
# Turn on protection from Denial of Service (DOS) attacks,
# Disable responding to ping broadcasts,
# Enable IP routing. Required if your firewall is protecting a network, NAT included

$SYSCTLW net.ipv4.conf.all.log_martians=1
$SYSCTLW net.ipv4.conf.all.send_redirects=0
$SYSCTLW net.ipv4.conf.all.accept_source_route=0
$SYSCTLW net.ipv4.conf.all.accept_redirects=0
$SYSCTLW net.ipv4.tcp_syncookies=1
$SYSCTLW net.ipv4.icmp_echo_ignore_broadcasts=1
$SYSCTLW net.ipv4.ip_forward=1

# Firewall initialization, remove every thing , start with clean tables
$IPTABLES -F # remove all rules
$IPTABLES -X # delete all user-defined chains

# allow everything ONLY for loop device
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# allow DNS in all directions
$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 53 -j ACCEPT

# udp ports for email and emule
$IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 4662 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 4662 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4672 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 4672 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 4662 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 4662 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 4672 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 4672 -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 55000 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 55000 -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 61412 -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 61412 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 55000 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 55000 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 61412 -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport 61412 -j ACCEPT


# Allow previously established connections
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

for PORT in $ALLOWED_PORTS; do
$IPTABLES -A OUTPUT -p tcp --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport $PORT -m state --state ESTABLISHED -j ACCEPT
done

# Create a chain for logging all dropped packets
$IPTABLES -N LOG_DROP
# $IPTABLES -A LOG_DROP -j LOG --log-prefix "Attack log: "
$IPTABLES -A LOG_DROP -j DROP

$IPTABLES -A INPUT -j LOG_DROP # drop all incomming
$IPTABLES -A FORWARD -j LOG_DROP # drop all forwarded

elif [ "$1" = "stop" ]; then
iptables -F
iptables -X
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT

elif [ "$1" = "status" ]; then
iptables -L -v

else
echo "usage: $0 start|stop|status"
fi
Creo que hay algún comando que hace que los cambios que hacemos no funcionen. He visto algo en el foro en inglés pero no lo termino de entender. En especial me mosquean los comandos
# Firewall initialization, remove every thing , start with clean tables
$IPTABLES -F # remove all rules
$IPTABLES -X # delete all user-defined chains
Tengo en proyecto crearme un par de bash para encender y apagar el Firewall desde el escritorio, aunque tengo que investigar como hacerlo :wink:

Code: Select all

sh /etc/rc.d/rc.FireWall stop

sh /etc/rc.d/rc.FireWall start
Tengo un script

Code: Select all

#!/bin/bash
su root
toor
sh /etc/rc.d/rc.FireWall start
exit
Para ejecutar en la terminal, pero me sigue pidiendo contraseña y todavía no se pasarlo al escritorio :bad:

Gracias nuevamente por todo port. Estás siendo muy amable :)

User avatar
wread
Module Guard
Module Guard
Posts: 1094
Joined: 09 Jan 2011, 18:48
Distribution: Porteus v3.2.5-kde5-64 bits
Location: Santo Domingo
Contact:

Re: Firewall - abrir puertos

Post#8 by wread » 08 Oct 2016, 15:31

@txerma75
Y que pasa si desinstalas ese Firewall?
La última vez que lo usé fué en windows.. y mas nunca!
Haz la prueba y te sentirás feliz...

Un saludo Cordial :)
Porteus is proud of the FASTEST KDE ever made.....(take akonadi, nepomuk and soprano out and you will have a decent OS).
The Porteus Community never sleeps!

txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Re: Firewall - abrir puertos

Post#9 by txema75 » 09 Oct 2016, 12:15

wread wrote:@txerma75
Y que pasa si desinstalas ese Firewall?
La última vez que lo usé fué en windows.. y mas nunca!
Haz la prueba y te sentirás feliz...

Un saludo Cordial :)
Gracias wread
Parece lo más sencillo, y al final es lo que hago iniciando y parando el servicio cada vez :ROFL:
La cuestión es que al final no resuelvo el problema y me queda esa insatisfacción porque cuando me pongo a algo, me gusta solucionarlo :oops:

User avatar
wread
Module Guard
Module Guard
Posts: 1094
Joined: 09 Jan 2011, 18:48
Distribution: Porteus v3.2.5-kde5-64 bits
Location: Santo Domingo
Contact:

Re: Firewall - abrir puertos

Post#10 by wread » 11 Oct 2016, 11:29

Parece lo más sencillo, y al final es lo que hago iniciando y parando el servicio cada vez :ROFL:
La cuestión es que al final no resuelvo el problema y me queda esa insatisfacción porque cuando me pongo a algo, me gusta solucionarlo :oops:
El problema es que no hay problema, a menos que quieras proteger información valiosa, como los archivos de la Sra. Aquella Candidata. Nosotros los mortales comunes no tenemos nada que ocultar. Y si quieres navegar con cierta privacidad usa la red TOR para que no construyan tu perfil y te manden correos basura ofreciendote cosas propias de tu personalidad.

A mí me detectaban la edad y me ofrecían medicamentos estimulantes sexuales (=viagra) casi a diario. :lol:

Olvidate del Firewall, vive feliz! 8)
Porteus is proud of the FASTEST KDE ever made.....(take akonadi, nepomuk and soprano out and you will have a decent OS).
The Porteus Community never sleeps!

port
Samurai
Samurai
Posts: 135
Joined: 18 Feb 2016, 09:25
Distribution: Linux porteus 3.2.2 KDE
Location: Spain

Re: Firewall - abrir puertos

Post#11 by port » 11 Oct 2016, 12:46

port wrote:
Para abrir los puertos de correo TLS/SSL e IMAP3 y los puertos de emule (suponiendo que sean UDP 60013 y TCP 60033) ejecuta los siguients comandos:

Code: Select all

# sed 's/ALLOWED_PORTS="\(.*\)"/ALLOWED_PORTS="\1 465 995 220 993 60033"/' < /etc/rc.d/rc.FireWall > rcf.txt
# sed 's/\(# allow DNS in all directions$\)/# udp ports for email and emule\n   \$IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT \n\n   \1/' < rcf.txt > rcf2.txt
# [ -s rfc2.txt ] && mv /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig && mv rcf2.txt /etc/rc.d/rc.FireWall 
No te funcionaba porque había un error tipográfico en el último comando que te puse, trastoqué las letras del nombre de fichero en el último comando, en lugar de [ -s rfc2.txt] tienes que escribir [-s rcf2.txt] O;-)

Es decir, los comandos a teclear son:

Code: Select all

# sed 's/ALLOWED_PORTS="\(.*\)"/ALLOWED_PORTS="\1 465 995 220 993 60033"/' < /etc/rc.d/rc.FireWall > rcf.txt
# sed 's/\(# allow DNS in all directions$\)/# udp ports for email and emule\n   \$IPTABLES -A INPUT -p udp --dport 465 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 995 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 993 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 220 -j ACCEPT\n   \$IPTABLES -A INPUT -p udp --dport 60013 -j ACCEPT \n\n   \1/' < rcf.txt > rcf2.txt
# [ -s rcf2.txt ] && mv /etc/rc.d/rc.FireWall /etc/rc.d/rc.FireWall.orig && mv rcf2.txt /etc/rc.d/rc.FireWall 
luego haces el diff que te debería devolver lo que te mostraba.

port
Samurai
Samurai
Posts: 135
Joined: 18 Feb 2016, 09:25
Distribution: Linux porteus 3.2.2 KDE
Location: Spain

Re: Firewall - abrir puertos

Post#12 by port » 11 Oct 2016, 12:51

wread wrote: El problema es que no hay problema, a menos que quieras proteger información valiosa, como los archivos de la Sra. Aquella Candidata. Nosotros los mortales comunes no tenemos nada que ocultar. Y si quieres navegar con cierta privacidad usa la red TOR para que no construyan tu perfil y te manden correos basura ofreciendote cosas propias de tu personalidad.

Olvidate del Firewall, vive feliz! 8)
Aunque te entiendo me parece una mala idea, con un firewall no solo proteges tu información o evitas que hagan perfiles (de hecho esto último no lo evitas en absoluto ;) ) sino que evitas ataques y problemas a tu ordenador que independientemente de que logren o no obtener información, ralentizan tu máquina, tu red y te causan problemas de uso. Por no hablar de las redes de bots... Don't feed the bot ;-)

port
Samurai
Samurai
Posts: 135
Joined: 18 Feb 2016, 09:25
Distribution: Linux porteus 3.2.2 KDE
Location: Spain

Re: Firewall - abrir puertos

Post#13 by port » 11 Oct 2016, 13:11

txema75 wrote:No consigo hacerlo funcionar, la verdad que me tiene frustrado :( , después de toda la ayuda que me estás dando :Bravo: :good:
Lo hago todo desde root; la respuesta de

Code: Select all

whoami
es root
Como te dije el problema era el error en el nombre del fichero, corrigiendo eso ya deberías poder modificar el rc.Firewall con los comandos que te dije (o directamente editándolo como root).
txema75 wrote: Tengo admitidos un montón de puertos en el firewall, pero a no ser que desactive el Firewall del todo, no funcionan ni Trojitá ni amule ni emule (tengo los dos :) )
He probado con diferentes puertos. En el router sí que están abiertos 4662 y 4672, los "clásicos", por eso respetaba esos. He probado 55000 y 61412 que me pusiste y tampoco.
¿No te funciona nada del emule ni el Trojitá? Antes dijiste que sí te funcionaba el recibir correo pero te fallaba el enviar. Si una vez cambiado el rc.Firewall con mis comandos para añadir los puertos no te funciona nada deberías modificar la configuración del Trojitá, pon aquí la que tienes, respecto al emule habría que ver si te está filtrando tu ISP o no, etc

txema75 wrote: Pienso que hay alguna capa de seguridad superior que anula los cambios en el rc.FireWall
no la hay ;-) Salvo que tu ISP esté filtrando tus puertos pero es muy raro, especialmente con los de correo.
txema75 wrote: Creo que hay algún comando que hace que los cambios que hacemos no funcionen. He visto algo en el foro en inglés pero no lo termino de entender. En especial me mosquean los comandos
# Firewall initialization, remove every thing , start with clean tables
$IPTABLES -F # remove all rules
$IPTABLES -X # delete all user-defined chains
Pues que no te mosqueen, son normales, simplemente limpian las reglas del firewall para definir las tuyas propias. Los cambios funcionan ;-)
txema75 wrote: Tengo en proyecto crearme un par de bash para encender y apagar el Firewall desde el escritorio, aunque tengo que investigar como hacerlo :wink:

Code: Select all

sh /etc/rc.d/rc.FireWall stop

sh /etc/rc.d/rc.FireWall start
Tengo un script

Code: Select all

#!/bin/bash
su root
toor
sh /etc/rc.d/rc.FireWall start
exit
Para ejecutar en la terminal, pero me sigue pidiendo contraseña y todavía no se pasarlo al escritorio :bad:
El comando su no admite que le pases la contraseña (afortunadamente! ;) ) y desde luego no es buena idea almacenar contraseñas en claro en un fichero y mucho menos la de root!!

Para arrancar y parar el Firewall desde escritorio es simple:

arrancar:

Code: Select all

$ su -c '/etc/rc.d/rc.FireWall start'
parar:

Code: Select all

$ su -c '/etc/rc.d/rc.FireWall stop'
y en ambos te pedirá que teclees la contraseña de root. Si no quieres tener que escribir todo eso cada vez que, create un alias o una función:

Code: Select all

$ alias fon="su -c '/etc/rc.d/rc.FireWall start'"
$ alias foff="su -c '/etc/rc.d/rc.FireWall stop'"
Para tenerlos siempre definidos, metelos en tu .bashrc ( vi ~/.bashrc )

Si lo quieres ejecutar en modo gráfico lo más sencillo es ir al Porteus firewall manager del Porteus Setting Centre donde hay botones para activar o desactivar el firewall, si pese a todo quieres tener un icono en tu escritorio para ello, dímelo ;-)

User avatar
wread
Module Guard
Module Guard
Posts: 1094
Joined: 09 Jan 2011, 18:48
Distribution: Porteus v3.2.5-kde5-64 bits
Location: Santo Domingo
Contact:

Re: Firewall - abrir puertos

Post#14 by wread » 12 Oct 2016, 01:16

Firewall paranoia... :twisted:
Adquirida en Windows...
Porteus is proud of the FASTEST KDE ever made.....(take akonadi, nepomuk and soprano out and you will have a decent OS).
The Porteus Community never sleeps!

txema75
Black ninja
Black ninja
Posts: 46
Joined: 07 Feb 2016, 17:45
Distribution: Porteus 3.1 64bits
Location: spain

Re: Firewall - abrir puertos

Post#15 by txema75 » 16 Oct 2016, 13:24

Gracias de nuevo por la ayuda Port
Ahora se me ha estropeado tb el ordenador, estoy gafao :(
Estoy probando desde el live quitándole los discos duros, pero aún así llega un momento en que se me bloquea, no sé que le pasará :shock:
Tengo pendiente tus consejos para aplicarlos

gracias de nuevo :friends:

Post Reply