hi,
I have firewall box with Redhat 8.0 (kernel 2.4.18-24.8.0) and
iptables v1.2.6a
installed and 8 public ip addresses ,let's say
195.12.1.0/29.
My firewall box has 3 NIC's.
eth1(195.12.1.1)----FW-----eth2 (192.168.1.2)-----Cisco
---INTERNET
|
|
eth0(10.3.1.1)
Behind eth0 I have planned internal network of 10.3.1.0/24
Behind
eth1 will be connected some public computers with no access to internal
LAN.
Eth2 has a link with Cisco C1601 having test class ip's for
link
(192.168.1.0/24 , 192.168.1.2 at fw side and 192.168.1.1 at cisco's
side)
The reason why I have test ip's for link is that I haven't got enough
public ip's to
complete my plan.I have 2 servers in internal LAN. Both MUST
have separate ip's.
When I divide 195.12.1.0/29 into 2 different networks
195.12.1.0/30(eth2)
and 195.12.1.4/30 I have no ip's left for internal
servers.
But in that case I have no trouble translating internal LAN
behind eth0 to eth2.
My problem is that I don't know how to translate internal LAN to eth1
when I have
test ip's for link at eth2.Being more specific I have no idea
how accomplish it with
Linux. For Cisco IOS following should work:
interface Ethernet1
ip address 195.12.1.1
255.255.255.248
no ip directed-broadcast
ip nat
outside
!
interface Serial0
ip address 192.168.1.1
255.255.255.0
no ip directed-broadcast
ip nat
outside
!
ip nat inside source list 1 interface Ethernet1 overload
ip
classless
!
access-list 1 permit 10.3.1.0 0.0.0.255
Has anyone implemented similar solution and know's how to translate
LAN
to public ip at eth1 (195.12.1.1) while eth2 with test class ip's
is
connected to Internet ?
Thanks,
vmtesting
FW box routing table:
Kernel IP routing table
Destination
Gateway
Genmask Flags Metric
Ref Use Iface
195.12.1.0
0.0.0.0 255.255.255.248
U 0
0 0
eth1
192.168.1.0
0.0.0.0
255.255.255.0 U
0 0 0
eth2
10.3.0.0
0.0.0.0
255.255.255.0 U
0 0 0
eth0
127.0.0.0
0.0.0.0
255.0.0.0 U
0 0 0
lo
0.0.0.0
192.168.1.1
0.0.0.0 UG
0 0 0
eth2
IPtables truncated script for NAT:
#!/bin/sh
# This is the location of the iptables
command
IPTABLES="/sbin/iptables"
case "$1" in
stop)
echo "Shutting down firewall..."
$IPTABLES
-F
$IPTABLES -F -t
mangle
$IPTABLES -F -t
nat
$IPTABLES
-X
$IPTABLES -X -t
mangle
$IPTABLES -X -t
nat
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P
OUTPUT ACCEPT
$IPTABLES -P FORWARD
ACCEPT
echo
"...done"
;;
status)
echo $"Table:
filter"
iptables
--list
echo $"Table:
nat"
iptables -t nat
--list
echo $"Table:
mangle"
iptables -t mangle
--list
;;
restart|reload)
$0
stop
$0
start
;;
start)
echo "Starting Firewall..."
echo ""
##--------------------------Begin
Firewall---------------------------------##
#----Default-Interfaces-----#
LINKIF="eth2"
EXTIF="eth1"
INTIF="eth0"
INTLAN="10.3.1.0/255.255.255.0"
INTIP="10.3.1.1"
INTMASK="255.255.255.0"
EXTIP="195.12.1.1"
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -X
$IPTABLES -X -t
mangle
$IPTABLES -X -t nat
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P
FORWARD ACCEPT
###################
## POSTROUTING
##
###################
#Masquerade from Internal Net to External Net
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -s $INTLAN -j SNAT --to
$EXTIP
#------End Ruleset------#
echo "...done"
echo ""
echo "{>o-< IPTABLES firewall activated :-))"
##--------------------------------End
Firewall---------------------------------##
;;
*)
echo
"Usage: firewall (start|stop|restart|status) EXTIF
INTIF"
exit 1
esac
exit 0