• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Blog Gabriel de Bonis

Web Developer, Qlik, Freelancer, IOS & Android Developer

  • Servidores
  • Programación Web
  • Tecnología
  • SharePoint
  • Podcast Bonistir
  • Tecno Arcade

Configurar Firewall en Ubuntu Server usando Iptables

28/11/2013 by Gabriel Deja un comentario

Iptables es un sistema firewall muy potente incluido en el núcleo de Linux. En este post voy a explicar como configurar Iptables para permitir todos los puertos de salida del servidor y bloquear todos los puertos de entrada dejando sólo abiertos los siguientes puertos:

– Puerto del servicio PING
– Puerto SSH : 443
– Puerto HTTP: 80
– Puerto FTP: 20 y 21
– Plex Media Server
– Samba

Una forma muy cómoda de habilitar estas reglas de firewall es crearse un script sh. Aqui tenéis un ejemplo:

#!/bin/bash
# iptables.sh
#

# limpia todas las reglas / quita el firewall
iptables -F

#política por defecto
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#
# Flush (-F) all specific rules
#
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

#Conexiones establecidas
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#ping
iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#SSH
iptables -A INPUT -p tcp --dport ssh -j ACCEPT

#samba
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 445 -j ACCEPT


#HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

#FTP
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

#plex
iptables -A INPUT -m state --state NEW -p tcp --dport 32400 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 32400 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 32410 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 32412 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 32411 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 32414 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 1900 -j ACCEPT

Una vez creado este fichero lo guardamos como iptables.sh y le damos permisos de ejecución:

sudo chmod +x iptables.sh
sudo ./iptables.sh

Una vez ejecutado el script ya tenemos habilitado las reglas de Firewall  en el servidor. El problema es que estan cargadas en memoria y si reiniciamos o apagamos el servidor perderemos la reglas que hemos creado. Una forma rápida y sencilla de mantener estas reglas habilitadas es haciendo estas reglas de forma persistente.

Creamos un script en «/etc/network/if-post-down.d/iptablessave» que guarde las reglas al apagar la máquina:

#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.downrules ]; then
   iptables-restore < /etc/iptables.downrules
fi
exit 0

Luego debemos cambiar los permisos de ese fichero y le damos permisos de ejecución chmod a+x

Y creamos un script que cargue las reglas previamente guardadas en «/etc/network/if-pre-up.d/iptablesload» y tambien le damos permisos de ejecución a este fichero con la opción chmod a+x

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

Comparte esto:

  • Haz clic para compartir en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic para compartir en X (Se abre en una ventana nueva) X
  • Haz clic para compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Haz clic para compartir en Tumblr (Se abre en una ventana nueva) Tumblr
  • Haz clic para compartir en WhatsApp (Se abre en una ventana nueva) WhatsApp
  • Haz clic para compartir en Telegram (Se abre en una ventana nueva) Telegram

Me gusta esto:

Me gusta Cargando...

Publicado en: Servidores

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Tecno Arcade

Tecno Arcade

Tecno Arcade

Archivos

Feed RSS RSS: Entradas

Feed RSS RSS: Comentarios

Paginas

  • Política de Privacidad

Copyright © 2025 · Genesis Sample Theme on Genesis Framework · WordPress · Acceder

%d