entrante ACEPTAR todas las reglas de iptables siguen apareciendo


8

Estoy siguiendo esta guía aquí: http://isalazyadmin.net/2009/07/02/configuring-a-basic-firewall-for-debian-linux/

Y tengo las iptables en la lista que se muestran, pero mi servidor todavía parece estar aceptando todas las conexiones entrantes (es decir: los pares de bittorrent todavía se están conectando, aunque no permití esos puertos).

/etc/iptables.rules

*filter

# This will allow all loopback (lo0) traffic and drop all traffic to 127/8
# that does not use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

#  This accepts all already established connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# This allows all outbound traffic
-A OUTPUT -j ACCEPT

# This will allow HTTP and HTTPS connections from anywhere, this are the normal
# ports used for a web server
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allow SSH connections
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow bittorrent/rtorrent ports, from ~/.rtorrent.rc
## -A INPUT -p tcp --dport 8071:8079 -j ACCEPT


# Allow ICMP ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Reject all other inbound traffic
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

Cuando ejecuto iptables -L después de un reinicio, todavía obtengo esto como mi primera regla:

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere  

No estoy seguro de dónde viene esto.

Aquí está la lista completa:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere

Aquí está la salida de iptables-save:

# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*raw
:PREROUTING ACCEPT [6701:942626]
:OUTPUT ACCEPT [8927:989420]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*nat
:PREROUTING ACCEPT [3281:284415]
:INPUT ACCEPT [9:720]
:OUTPUT ACCEPT [1758:148908]
:POSTROUTING ACCEPT [1758:148908]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*mangle
:PREROUTING ACCEPT [6701:942626]
:INPUT ACCEPT [6701:942626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8928:989684]
:POSTROUTING ACCEPT [8928:989684]
COMMIT
# Completed on Fri Jan 11 09:54:19 2013
# Generated by iptables-save v1.4.8 on Fri Jan 11 09:54:19 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT 
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -j ACCEPT 
COMMIT
# Completed on Fri Jan 11 09:54:19 2013

Aquí está la salida iptables -vL:

$ sudo iptables -vL
[sudo] password for ettinger: 
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 8303 1206K ACCEPT     all  --  lo     any     anywhere             anywhere            
    0     0 REJECT     all  --  !lo    any     anywhere             loopback/8          reject-with icmp-port-unreachable 
  12M 7191M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
   18   980 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www 
    7   344 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https 
  379 22728 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
18316 1110K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpts:8071:8079 
 120K   15M ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:6881 
24809 1489K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:9001 
  688 35244 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:9030 
  874 73072 ACCEPT     icmp --  any    any     anywhere             anywhere            icmp echo-request 
12705  871K REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  14M   12G ACCEPT     all  --  any    any     anywhere             anywhere      

¿No has notado tu primera regla de ENTRADA ACCEPT all -- anywhere anywhere?
ott--

1
Parece que las reglas no se cargan en el momento del arranque. Asegúrese de agregar la línea "pre-up iptables-restore </etc/iptables.rules" a su archivo / etc / network / interfaces (como sugiere el autor del tutorial)
mzet

1
@ott: se trata de lo inteface solamente, así que está bien
mzet

2
¿Puedes rehacer tu listado con iptables -vL?
ott--

Sus reglas y su estado de arranque posterior realmente coinciden, ese no es el problema - vea mi respuesta;)
goldilocks

Respuestas:


17

La línea que te preocupa:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere       

en realidad se debe a esto en sus reglas:

-A INPUT -i lo -j ACCEPT

Observe que la interfaz es explícita en la regla, pero no en la -Lsalida. Mueva esa regla al medio de la lista, use iptables-restorey observe que "ACEPTAR todo en cualquier lugar" también se ha movido hacia abajo. Ahora intenta cambiar un poco la regla:

-A INPUT -i lo -s 127.0.0.1 -j ACCEPT

y la -Lsalida se convertirá en:

target     prot opt source                 destination  
ACCEPT     all  --  localhost.localdomain  anywhere

"localhost.localdomain" será su nombre de host 127.0.0.1 de /etc/hosts. Esto al menos aclara de dónde proviene esa regla.

También puede ver información más detallada, incluidas las interfaces con iptables -vL.

Por cierto, es posible que desee comenzar sus reglas:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

Deje todo por defecto como una falla por seguridad. Sin embargo, esto se considera de mala educación (vea el enlace en el comentario de Gilles a continuación), por lo que es posible que desee crear una captura final para cada tabla que utilice -j REJECT --reject-with icmp-net-prohibited.


44
FYI, iptables -vLmostrará la regla completa, incluida la interfaz. Entonces eliminará la confusión como esta.
derobert

Gracias @derobert: me había olvidado de esa pantalla. ¡Editaré esto en la respuesta!
Ricitos de Oro


@derobert +1 en el -vinterruptor. Las reglas de mi firewall no se ven tan mal como pensaba :)
Matt Borja

1

Solo como una cuestión de integridad, para evitar este problema en el futuro, use la -vopción de línea de comando detallada cuando muestre la tabla. Como así:

iptables -Lv

El resultado ahora debe incluir la interfaz que afecta en las columnas "dentro" y "fuera":

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  151 13073 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
  126 33414 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

-1

El problema está en esta parte de la cadena INPUT:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere

Especialmente en la última línea. Todo después de esta línea es innecesario, porque esta línea acepta todo.

Debe eliminar esta línea de las reglas con este comando:

iptables -D INPUT 1

Debe inspeccionar las reglas de su firewall, donde está la regla, que agrega esta línea.


77
"ACEPTAR todo, en cualquier lugar, en cualquier lugar" proviene de esta regla: "-A ENTRADA -i lo -j ACEPTAR", por lo que solo concierne a la interfaz, por lo que no es el problema.
mzet

Eliminé todo, pero aún aparece con iptables -L
chovy

ok, eso es lo que alguien más mencionó. Gracias. Puedo ignorarlo con seguridad.
chovy

1
@chovy: tus reglas están bien. El problema radica en restaurarlo después de reiniciar. Intente seguir estos pasos: debian-administration.org/articles/445
mzet
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.