IPTABLES Firewall/NAT Script eth0 forward naar eth1 en eth2

Status
Niet open voor verdere reacties.

desafiadore9

Nieuwe gebruiker
Lid geworden
3 okt 2004
Berichten
2
Wie weet/heeft voor mij een firewall script welke gebruik maakt van iptables en het verkeer van ETH0 kan forwarden naar ETH1 én(!) ETH2. De firewall moet actief zijn op ETH0 en met de computers op ETH1 (192.168.0.1) en ETH2 (192.168.1.1) wil ik kunnen internetten. Liefst moeten de pc's op ETH1/2 elkaar en de linux machine kunnen zien.
ETH0 (10.0.0.152) zit aan een adsl modem.
Ik heb nu een forward gemaakt naar eth1 en eth2 en heb internet op beide pc's maar nu kan ik van beide pc's niet meer SSH-en naar de linux machine en zien beide pc's (op eth1 en eth2 dus) elkaar niet meer (subnetmasker is 24bit (255.255.255.0) voor beide kaarten, alleen de range (0.1 en 1.1) is verschillend dus)
Ik doe vast iets heel doms maar ben nog een groentje op gebied van tcp/ip regeltjes enzo...
Alvast bedankt!!!
 
Is niet mijn volledige script maar wel het gedeelte waarmee mijn verkeer van ETH1 en 2 geforwarded worden. (en mijn server is nog prima te benaderen via SSH...)


Code:
# waar iptables staat
IPTABLES="/sbin/iptables"

# interfaces
INTERNAL_INTERFACE="eth2"	# interface waarmee gateway aan lokale netwerk zit (aanpassen aan eigen omgeving)
INTERNAL_INTERFACE1="eth1"      # interface waarmee gateway aan lokale netwerk zit (aanpassen aan eigen omgeving)
EXTERNAL_INTERFACE="eth0"	# interface waarmee gateway aan het internet zit (aanpassen aan eigen omgeving)

# ipadressen / netwerken
IPADDR="WWW.XXX.YYY.ZZZ"		# internet ip adres


LAN="10.10.100.0/24"		# lokale netwerk (aanpassen aan eigen omgeving) 
LAN1="10.10.10.0/24"

## variabelen die NIET moeten (lees: nodig zijn) worden aangepast

# interfaces
LOOPBACK_INTERFACE="lo"		# loopback interface

# ipadressen / netwerken
ANYWHERE="0.0.0.0/0"		# elk ip adres valt hierbinnen
LOOPBACK="127.0.0.1"		# ip adres van localhost
CLASS_A="10.0.0.0/8"		# klasse A prive netwerk
CLASS_B="172.16.0.0/12"		# klasse B prive netwerk
CLASS_C="192.168.0.0/24"	# klasse C prive netwerk

# poorten
PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"

# Genereren van de lijst der te openen/blocken poorten
ls -1 $FILELOC > $PORTS_FILE 	# aanmaken van de lijst met services

######################################################################################################

# set de default policies
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT

## flush en clear alle rules en zet de tellers op 0
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z

################################################################################
# initialiseren van de kernel

## Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

## Enable IP-spoofing beveiliging
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do
    echo 1 > $f
done

## Disable ICMP redirect acceptatie
for f in /proc/sys/net/ipv4/conf/*/accept_redirects ; do
    echo 0 > $f
done

## Disable ICMP send_redirects
for f in /proc/sys/net/ipv4/conf/*/send_redirects ; do
    echo 0 > $f
done

## Source routed pakketten niet accepteren
for f in /proc/sys/net/ipv4/conf/*/accept_source_route ; do
    echo 0 > $f
done

## Log spoofed pakketten, source routed pakketten en redirected pakketten
#for f in /proc/sys/net/ipv4/conf/*/log_martians ; do
#    echo 1 > $f
#done

## Enable TCP SYN cookie beveiliging
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

## Enable ICMP broadcasting protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

## Enable ICMP dead error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

## Enable dynamic TCP/IP address hacking
echo 1 > /proc/sys/net/ipv4/ip_dynaddr


################################################################################
# op de loopback interface kunnen (en moeten) we alles toelaten

## Onbeperkt verkeer op lo toestaan
$IPTABLES -A INPUT -i $LOOPBACK_INTERFACE -j ACCEPT
$IPTABLES -A OUTPUT -o $LOOPBACK_INTERFACE -j ACCEPT
################################################################################
# in de gemiddelde HTK-environment kunnen we ook alles op het lokale netwerk
# toelaten

## Onbeperkt verkeer op interne interface toestaan
$IPTABLES -A INPUT -i $INTERNAL_INTERFACE -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNAL_INTERFACE -j ACCEPT
$IPTABLES -A INPUT -i $INTERNAL_INTERFACE1 -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNAL_INTERFACE1 -j ACCEPT

## verkeer tussen beide interne interfaces ook forwarden
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $INTERNAL_INTERFACE1 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INTERFACE1 -o $INTERNAL_INTERFACE -j ACCEPT


################################################################################
################################################################################
# masquerade

## Alles met afkomst van of bestemming lokale netwerk heeft forwarden
  $IPTABLES -A POSTROUTING -t nat -o $EXTERNAL_INTERFACE -j MASQUERADE
  $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT
  $IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN -j ACCEPT
  $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN1 -d ! $LAN1 -j ACCEPT
  $IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN1 -s ! $LAN1 -j ACCEPT
  $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT
  $IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN -j ACCEPT
  $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE -o $EXTERNAL_INTERFACE -s $LAN1 -d ! $LAN1 -j ACCEPT
  $IPTABLES -A FORWARD -o $INTERNAL_INTERFACE -i $EXTERNAL_INTERFACE -d $LAN1 -s ! $LAN1 -j ACCEPT
  $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE1 -o $EXTERNAL_INTERFACE -s $LAN -d ! $LAN -j ACCEPT
  $IPTABLES -A FORWARD -o $INTERNAL_INTERFACE1 -i $EXTERNAL_INTERFACE -d $LAN -s ! $LAN -j ACCEPT
  $IPTABLES -A FORWARD -i $INTERNAL_INTERFACE1 -o $EXTERNAL_INTERFACE -s $LAN1 -d ! $LAN1 -j ACCEPT
  $IPTABLES -A FORWARD -o $INTERNAL_INTERFACE1 -i $EXTERNAL_INTERFACE -d $LAN1 -s ! $LAN1 -j ACCEPT
 
Het is gelukt!

Hee, bedankt!

Ik heb dit script als voorbeeld gepakt en met wat info van internet (ff zoeken met google naar 'iptables 3 nics') heb ik 'm nog ietsje aangepast naar mijn netwerkinstellingen! Alle interfaces zijn toegankelijk, ik kan ook mijn outside ip benaderen vanaf een pc in mijn netwerk. Nu nog even wat rules om poorten dicht te timmeren en dan vindt het het prima! (heb ik al gevonden ook via google, maar draaien nog niet helemaal..... maar dat gaat denk ik wel lukken, ik ga alleen verkeer van outside op eth0 blocken, rest mag allemaal lekker open blijven....

Thanx!!!

:) :D
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan