Bloquea todas las conexiones pero permite solo unos pocos puertos con iptables

Bloquea todas las conexiones pero permite solo unos pocos puertos con iptables

Necesito reglas que:

  1. Bloquee todo el tráfico entrante (Internet > servidor), pero permita el saliente (servidor > Internet) y permita que también se ejecuten los servicios locales.

  2. Solo acepto tráfico entrante de los puertos que quiero.

También necesito esto mientras estoy en una sesión ssh (he estado bloqueado antes).

La razón por la que pregunto es porque no puedo usar UFW con mi proveedor de VPS... aparentemente porque su kernel/OpenVZ...

Aunque intenté aprender los comandos por mí mismo, fue como aprender a usar una herramienta e intentar construir una casa. Y sería realmente bueno si pudiera tener algo de productividad hoy en lugar de pasar horas y horas tratando de solucionar este problema. Si alguien pudiera ayudarme se lo agradecería mucho.

Respuesta1

Primero permita su puerto específico y luego bloquee todo el tráfico entrante

# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

donde 22 su puerto de demostración cámbielo según su demanda

Bloquear todo el tráfico entrante

# iptables -A INPUT -j REJECT

Permitir todos los paquetes salientes

# iptables -A OUTPUT -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT

Respuesta2

@Rakib proporcionó una excelente respuesta y creo que debería ser la aceptada. La respuesta que estoy dando simplemente se suma a la suya. Recomiendo crear un script de shell para que pueda ejecutarlo automáticamente cuando se inicia el sistema operativo, o bajo demanda sin tener que escribirlo todo nuevamente:

#!/bin/sh

IPT = iptables

#allowing the specific port
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT

#block all incoming traffic
$IPT -A INPUT -j REJECT

#ALLOW ALL OUTGOING PACKETS
$IPT -A OUTPUT -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

#same thing for ip6tables (IPv6)
IPT = ip6tables
$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
$IPT -A INPUT -j REJECT
$IPT -A OUTPUT -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

Además el guión se hizo dos veces, con la única diferencia de quetablas ip6se incluyó, por lo que también se aplica a IPv6, como dijo @Michael Mol en su comentario bajo la respuesta de @Rakib

información relacionada