Skip to content

Instantly share code, notes, and snippets.

@jumarag
Last active June 6, 2016 08:07
Show Gist options
  • Save jumarag/41a1bb29ef102a02f7a8bf7a71f05e31 to your computer and use it in GitHub Desktop.
Save jumarag/41a1bb29ef102a02f7a8bf7a71f05e31 to your computer and use it in GitHub Desktop.
Configuración de iptables en debian y derivados para un servidor web. Para que se ejecute en cada inicio, lo incluimos en el fichero /etc/rc.local
#!/bin/bash
#####################################
# Reglas iptables para servidor web #
#####################################
IP="192.168.1.4" # Dirección de ejemplo
DNS="192.168.1.3" # Dirección de ejemplo
DNS2="8.8.8.8" # Dirección de ejemplo
echo "Aplicando reglas de Firewall ...\n"
echo "Borrando reglas anteriores\n"
## Borrado de todas las reglas que pudiera haber
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
echo "Estableciendo políticas por defecto\n"
## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# A localhost aceptamos todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# A nuestra IP aceptamos todo
iptables -A INPUT -s $IP -j ACCEPT
iptables -A OUTPUT -d $IP -j ACCEPT
# Habilitamos el puerto 80
iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
# Habilitamos el puerto 443 para permitir https
iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Permitir el Ping hacia nuestra máquina
iptables -A INPUT -p icmp -j ACCEPT
# Permitir Ping hacia otras máquinas
iptables -A OUTPUT -p icmp -j ACCEPT
# Permitimos la consulta a un primer DNS
iptables -A INPUT -s $DNS -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d $DNS -p udp -m udp --dport 53 -j ACCEPT
# Permitimos la consulta a un segundo DNS
iptables -A INPUT -s $DNS2 -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d $DNS2 -p udp -m udp --dport 53 -j ACCEPT
echo "Reglas aplicadas correctamente\n"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment