Re: setting up nat
- From: Les Mikesell <lesmikesell@xxxxxxxxx>
- Date: Sat, 20 May 2006 11:44:29 -0500
On Sat, 2006-05-20 at 06:12, Stuart Sears wrote:
Thanks for that... but I hope you are joking! You mean there is no
gui/wizard for setting up nat?!?
Cheers
Antoine
no, not really.
Unless you install third-party software to control it, the default
graphical firewall config tools on FC don't do NAT. Welcome to our world. :)
Command-line utilities also allow you to make incremental changes to
firewall settings. Graphical tools (In my experience) tend to be
all-or-nothing
a few additional points and a brief walkthrough:
std_disclaimer:
This is fairly simplistic and may not cover any or all of your security
requirements. Particularly as they do not include any access rules at
all, just NAT stuff.
You should realise that netfilter rules applied using the 'iptables'
command take immediate effect.
Applying badly written rules over a network login can severely
compromise your connectivity (and stress levels)
For this reason I can't see why you would need to restart the entire
connection after creating NAT rules.
on your router you would need to do a few simple things:
1) put NAT rules in place
2) possibly put other restrictions on the traffic you wish to allow
through your box (particularly from the outside world)
3) permit packet forwarding through your box
4) save the rules
5) make sure the 'iptables' service runs at boot time
( although, technically it is not a traditional 'service', all it does
is load rules into memory )
I am going to ignore any standard firewall rules you have on the system
(you can set these up through the standard graphical interface. DO not
do this after the NAT setup, you will break it.)
to control NAT you'll need to run a few shell commands.
A shell script is not necessary. Although it simplifies taking rules
from one system to another.
Setting up iptables rules in rc.local is a *bad* idea (IMHO) - this
means that on boot your interfaces are up and unprotected *before* the
firewall rules are in place.
as root:
iptables -nvL
will show you the rules that are currently in place for normal traffic.
iptables -t nat -nvL
will shoe you any nat rules you already have in place
to nat all outgoing traffic:
assume your internal interface is eth0 and external is ppp0
a) clear any existing rules (if needed):
iptables -t nat -F POSTROUTING
b) add a rule natting traffic from your boxes to the outside world. this
is all one line (I've just separated the arguments)
iptables -t nat
- -I POSTROUTING
- -s your_internal_network
- -d ! your_internal_network
- -i eth0
- -o ppp0
- -j MASQUERADE
c) save your rules and make sure they will apply on next boot:
service iptables save
chkconfig iptables on
d) allow packets to route through your system:
edit /etc/sysctl.conf so that it has a line like this:
net.ipv4.ip_forward = 1
e) apply that change immediately
sysctl -p
voila! you are routing packets through your box.
these rules should then be permanently in place *unless* you run
system-config-securitylevel to set up others... (bad design, I know.)
This is yet another reason I like the k12ltsp distro more
than an unmodified fedora. In addition to the ltsp package
to boot thin clients it includes an init scritpt in
/etc/rc.d.init.d/nat where the guts like this:
#!/bin/sh
# Version: 0.0.3
#
# chkconfig: 2345 90 10
# description: Starts and stops Network Address Translation for
K12Linux/LTS
PUBLIC_ETHERNET="eth1"
# Source function library.
. /etc/init.d/functions
start() {
echo -n "Starting up Network Address Translation: "
# Load the NAT module (this pulls in all the others).
modprobe iptable_nat
# In the NAT table (-t nat), Append a rule (-A) after routing
# (POSTROUTING) for all packets going out eth1 (-o eth1) which says to
# MASQUERADE the connection (-j MASQUERADE).
iptables -t nat -A POSTROUTING -o $PUBLIC_ETHERNET -j MASQUERADE
# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
echo
return 0
}
stop() {
echo -n "Stopping Network Address Translation: "
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -D POSTROUTING -o $PUBLIC_ETHERNET -j MASQUERADE
echo
return 0
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "*** Usage: nat {start|stop|restart}"
exit 1
esac
exit $?
K12ltsp makes some assumptions about the inside/outside interfaces
to simplify scripted configuration, but it's easier to modify
a working script than to figure it all out from a HOWTO.
--
Les Mikesell
lesmikesell@xxxxxxxxx
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
- Follow-Ups:
- Re: setting up nat
- From: Tom Rivers
- Re: setting up nat
- References:
- setting up nat
- From: Antoine
- Re: setting up nat
- From: Arun Binaykia
- Re: setting up nat
- From: Antoine
- Re: setting up nat
- From: Stuart Sears
- setting up nat
- Prev by Date: Re: Mac Book / Mac Book Pro
- Next by Date: RE: FC4 And Dlink DWL-G630 WiFi card, A Complete NO-GO
- Previous by thread: Re: setting up nat
- Next by thread: Re: setting up nat
- Index(es):
Relevant Pages
|