When you get an error message about a bad argument, it's usually because something earlier in the line was missing. So, for example, in the command:

    iptables -A OUTPUT -o $INTERNET -p udp \

             -s $IPADDR --sport $UNPRIVPORTS \

             -d $NAMESERVER --dport 53 \

             -m state --state NEW -j ACCEPT

probably one or more of your variables is not defined correctly.

 

You can use the command:

# sh -x /etc/rc.d/rc.firewalls &> trace

to run the script and find what the error was in interpreting it.

This command will produce a file called 'trace' which will show each command the way it was interpreted and (because of the '&') will also show the error messages produced as a result.

 

That should help you to figure out exactly where the error is coming from.

 

Good luck Dave! You're starting a fun ride!

 

----------------

Larry Flathmann

Systems & Data Integrators

www.sdintegrators.com

-----Original Message-----
From: netfilter-admin@lists.netfilter.org [mailto:netfilter-admin@lists.netfilter.org]On Behalf Of Sundaram
Sent: Wednesday, October 09, 2002 10:55 PM
To: David F. Strauch; netfilter@lists.netfilter.org
Subject: Re: Bad argument `53'

I have this rules set in my  firewall, it is working for me.
 
$IPT -A OUTPUT -o $EXT -p tcp --sport $UNPRI --dport 53 -j ACCEPT
 
$IPT -t nat -A PREROUTING  -i $EXT -d $EXT_IP1  -p tcp --dport 25 -j DNAT --to $INT_IP1
$IPT -A FORWARD -p tcp  --dport 25 -d $INT_IP1 -j ACCEPT
 
I am also using REdhat 7.3 Kernel 2.4.18-3 and iptables 1.2.7
----- Original Message -----
From: David F. Strauch
To: netfilter@lists.netfilter.org
Sent: Wednesday, October 09, 2002 10:17 PM
Subject: Bad argument `53'

Hello Everyone

 

By reading New Riders “Linux Firewalls” by Robert L. Ziegler I’m just starting to study iptables.  I have a stand-alone firewall offline and off the local network running RHL 7.3 with Kernel 2.4.18-3 and iptables 1.2.5.

 

I’ve just started writing the script to allow DNS Loopkups as a client with the following:

 

if [ "$CONNECTION_TRACKING" = "1" ]; then

    iptables -A OUTPUT -o $INTERNET -p udp \

             -s $IPADDR --sport $UNPRIVPORTS \

             -d $NAMESERVER --dport 53 \

             -m state --state NEW -j ACCEPT

fi

 

iptables -A OUTPUT -o $INTERNET -p udp \

         -s $IPADDR --sport $UNPRIVPORTS \

         -d $NAMESERVER --dport 53 -j ACCEPT

 

iptables -A INPUT  -i $INTERNET -p udp \

         -s $NAMESERVER --sport 53 \

         -d $IPADDR --dport $UNPRIVPORTS -j ACCEPT

 

When I execute the script with sh /etc/rc.d/rc.firewalls I receive Bad argument `53' for every instance of either  --dport 53 or --sport 53.  I’ve also tried --destination-port and --source-port with out any success.

 

Can anyone shed some light on my problem?
 
Dave