linux - iptable firewall DNS question

From: Baptiste Pillot (baptiste.pillot_at_atgp.net)
Date: 10/19/03


Date: Sun, 19 Oct 2003 16:11:06 +0200

A unsolvable problem for me :

When my firewall is active, i am unable to use name solving features from my
firewall computer.
For example ping www.yahoo.com does not resolve the domaine name.

with this script, name solving works :

iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

when I mage a drop, and a lot of opennings, it does not work. here is my
complete firewall script (sorry for its length) :

#!/bin/sh
# interfaces
#------------
# $ethmod -> modem adsl
# $ethloc -> local network
# $ethdmz -> DMZ
# $ethnet -> INTERNET
ethmod=eth2
ethloc=eth1
ethdmz=eth0
ethnet=ppp+
ethlo=lo
# adresses ip
#-------------
# $ipmod -> adresse ip de l'interface connectée au modem adsl
# $iploc -> adresse ip de l'interface connectée au réseau local
# $ipdmz -> adresse ip de l'interface connectée à la DMZ
# $ipnet -> adresse ip de l'interface connectée à internet
ipmod=10.0.0.10
iploc=192.168.0.254
ipdmz=192.168.0.254
ipnet=`ifconfig | grep P-t-P | cut -b 20- | cut -d " " -f 1`
# adresses ip serveurs locaux
#-----------------------------
# $ethweb -> interface réseau où se trouve le serveur web
# $ipweb -> adresse ip du serveur web
ethweb=$ethdmz
ipweb=192.168.0.28
#
============================================================================
==============
# PREPARATION
echo PREPARATION
# activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# je ne veux pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi
# pas de icmp
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# chargement du module ip_tables
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe iptable_filter
modprobe iptable_nat
# (BP)
# modprobe ip_conntrack_ftp
# vider toutes les règles
iptables -F
iptables -X
# deux nouvelles chaînes pour le log
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP
iptables -N LOG_ACCEPT
iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
iptables -A LOG_ACCEPT -j ACCEPT
# on bloque tout
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
============================================================================
=================
# ACCES AU FIREWALL DEPUIS LOCAL
echo ACCES AU FIREWALL DEPUIS LOCAL
# on accepte tout sur la machine en local
iptables -A INPUT -i $ethlo -j ACCEPT
iptables -A OUTPUT -o $ethlo -j ACCEPT
iptables -A FORWARD -i $ethlo -j ACCEPT
iptables -A FORWARD -o $ethlo -j ACCEPT
# on accepte toutes les connexions depuis le réseau local
iptables -A INPUT -i $ethloc -p tcp -m state --state NEW,ESTABLISHED -j
LOG_ACCEPT
iptables -A OUTPUT -o $ethloc -p tcp -m state --state ESTABLISHED -j
LOG_ACCEPT
# on accepte toutes les connexions depuis la DMZ
iptables -A INPUT -i $ethdmz -p tcp -m state --state NEW,ESTABLISHED -j
LOG_ACCEPT
iptables -A OUTPUT -o $ethdmz -p tcp -m state --state ESTABLISHED -j
LOG_ACCEPT
# on accepte particulièrement ssh depuis le réseau local
iptables -A INPUT -i $ethloc -p tcp --dport 22 -m state --state
NEW,ESTABLISHED -j LOG_ACCEPT
iptables -A OUTPUT -o $ethloc -p tcp --sport 22 -m state --state
ESTABLISHED -j LOG_ACCEPT
# on accepte particulièrement ssh depuis la DMZ
iptables -A INPUT -i $ethdmz -p tcp --dport 22 -m state --state
NEW,ESTABLISHED -j LOG_ACCEPT
iptables -A OUTPUT -o $ethdmz -p tcp --sport 22 -m state --state
ESTABLISHED -j LOG_ACCEPT
#
============================================================================
=================
# ACCES AU FIREWALL DEPUIS INTERNET
echo ACCES AU FIREWALL DEPUIS INTERNET
# on accepte le serveur web depuis internet
iptables -A INPUT -i $ethnet -p tcp --dport 80 -m state --state
NEW,ESTABLISHED -j LOG_ACCEPT
iptables -A OUTPUT -o $ethnet -p tcp --sport 80 -m state --state
NEW,ESTABLISHED -j LOG_ACCEPT
#
============================================================================
=================
# ACCES AU DMZ
echo ACCES AU DMZ
# DMZ Serveur de news jana depuis réseau local et internet
iptables -A PREROUTING -t nat -p tcp -d $iploc --dport 119 -j DNAT --to
$ipweb:119
iptables -A FORWARD -i $ethnet -o $ethweb -p tcp --destination-port 119 -m
state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o $ethnet -i $ethweb -p tcp --source-port 119 -m
state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $ethloc -o $ethweb -p tcp --destination-port 119 -m
state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o $ethloc -i $ethweb -p tcp --source-port 119 -m
state --state ESTABLISHED -j ACCEPT
# DMZ Webcam (bpillot28)
iptables -A PREROUTING -t nat -p tcp -d $ipnet --dport 8080 -j DNAT --to
$ipweb:8080
iptables -A FORWARD -i $ethnet -o $ethweb -p tcp --destination-port 8080 -m
state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o $ethnet -i $ethweb -p tcp --source-port 8080 -m
state --state ESTABLISHED -j ACCEPT
# DMZ PC Anywhere depuis internet
# iptables -A PREROUTING -t nat -p tcp -d $ipnet --dport 50631 -j DNAT --to
192.168.0.1:5631
# iptables -A FORWARD -i $ethnet -o $ethloc -p tcp --destination-port
5631 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -o $ethnet -i $ethloc -p tcp --source-port 5631 -m
state --state ESTABLISHED -j ACCEPT
# iptables -A PREROUTING -t nat -p tcp -d $ipnet --dport 50632 -j DNAT --to
192.168.0.1:5632
# iptables -A FORWARD -i $ethnet -o $ethloc -p tcp --destination-port
5632 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -o $ethnet -i $ethloc -p tcp --source-port 5632 -m
state --state ESTABLISHED -j ACCEPT
# DMZ Serveur Web depuis internet
# iptables -A PREROUTING -t nat -p tcp -d $ipnet --dport 80 -j DNAT --to
$ipweb:80
# iptables -A FORWARD -i $ethnet -o $ethweb -p tcp --destination-port 80 -m
state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -o $ethnet -i $ethweb -p tcp --source-port 80 -m
state --state ESTABLISHED -j ACCEPT
# DMZ Serveur Web depuis réseau local
# iptables -A PREROUTING -t nat -p tcp -d $iploc --dport 80 -j DNAT --to
$ipweb:80
# iptables -A FORWARD -i $ethloc -o $ethweb -p tcp --destination-port 80 -m
state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -o $ethloc -i $ethweb -p tcp --destination-port 80 -m
state --state ESTABLISHED -j ACCEPT
#
============================================================================
=================
# ACCES A INTERNET DEPUIS LOCAL
echo ACCES A INTERNET DEPUIS LOCAL
# le firewall a un accès complet à internet
iptables -A FORWARD -i $ethlo -o $ethnet -j ACCEPT
iptables -A FORWARD -o $ethlo -i $ethnet -j ACCEPT
# le LAN a un accès complet à internet
iptables -A FORWARD -i $ethloc -o $ethnet -j ACCEPT
iptables -A FORWARD -o $ethloc -i $ethnet -j ACCEPT
# la DMZ a un accès complet à internet
iptables -A FORWARD -i $ethdmz -o $ethnet -j ACCEPT
iptables -A FORWARD -o $ethdmz -i $ethnet -j ACCEPT
# le LAN et le DMZ ont un accès complet l'un avec l'autre
iptables -A FORWARD -i $ethloc -o $ethdmz -j ACCEPT
iptables -A FORWARD -o $ethloc -i $ethdmz -j ACCEPT
#
============================================================================
=================
# CONCLUSION
echo CONCLUSION
# tous accès internet avec la même ip (y compris DMZ)
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o $ethnet -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o $ethnet -j MASQUERADE
# bloquage des règles refusées par firewall
iptables -A FORWARD -j LOG_DROP
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
# fini
echo " [termine]"



Relevant Pages

  • Re: linux - iptable firewall DNS question
    ... > iptables -F ... > echo ACCES AU FIREWALL DEPUIS LOCAL ... > # on accepte toutes les connexions depuis la DMZ ... > echo ACCES AU FIREWALL DEPUIS INTERNET ...
    (comp.security.firewalls)
  • iptables leaves 80/tcp `open ...why?
    ... a linux firewall protects the DMZ & internal lan from the Internet. ... I only wish 22/tcp (SSH) to be allowed into the firewall itself, ... iptables -N bad-if ...
    (comp.os.linux.security)
  • Re: Firewall issues with setting up vsftp server
    ... the iptables are the defaults provided with FC3. ... >internet, just turn off the firewalling on the NIC which is connected ... >actually trust it) turn off the firewall on your server completely. ... I might also add that your comments above about using dual NICS, ...
    (Fedora)
  • IPTables rules ...
    ... default kernel - 2.4.7-10) and IPTables as a firewall (I have removed the ... lan. ... firewall has full internet access, the lan has full internet access through ... I was hoping some IPTables guru ...
    (comp.security.firewalls)
  • Re: IPTables rules ...
    ... > firewall is setup between the Internet and an internal ... > lan. ... I was hoping some IPTables guru ...
    (comp.security.firewalls)