Ik heb een situatie waarbij er 3 netwerken zijn:
- Internet
- LAN1
- LAN2
Het is de bedoeling dat LAN1 (statisch ip) op het internet kan maar ook aan bronnen van LAN2 (ip via dhcp).
LAN1 is een klein netwerk (192.168.36.0/24) met eigen DHCP en DNS domain die tevens verzorgd wordt door deze gateway/router/firewall.
LAN2 is een groot netwerk (172.23.0.0/16) ook met eigen DHCP, DNS maar dan beheerd door andere machine(s). Het internet is een statisch ip adres, maar dit lijkt me niet zo relevant. LAN2 heeft een eigen internet verbinding, dus enkel LAN1 kan/mag gebruik maken van de internetverbinding geconfigureerd op de interface "internet" van de gateway.
Nu gebruik ik op de Internet interface masquareding zodanig dat het verkeer van LAN1 naar het internet ge-NAT wordt.
Echter wil ik tussen LAN1 en LAN2 gewone routing. Dus geen NAT. LAN1 heeft in principe onbeperkte toegang tot bronnen op LAN2. Voor LAN2 geld dit niet, op een paar uitzonderingen na (bvb SSH).
Wanneer ik geen masquareding gebruik op de LAN2 interface, dan kan er daadwerkelijk ook niks gerouteerd worden van LAN1 naar LAN2.
In de filter table wordt forwarding toegestaan als:
Dit is dus de bewuste regel die ik eruit zou willen hebben:
Ik veronderstel toch dat gewone routing zou moeten mogelijk zijn tussen LAN1 en LAN2. Zoals ik het nu zie lijkt het dus voor een resource (bvb een server) op het LAN2 netwerk dat het source adres van de client dan altijd van de LAN2 interface van de gateway is. Het is dus de bedoeling dat zonder NAT dat het source ip dat van de bewuste pc in LAN1 is.
Een bijkomend vraagje: zijn er enige adviezen omtrent veiligheid van dit script? Ik bedoel naar waterdichtheid en robuustheid van de firewall.
LAN1 is de vertrouwde lan, dus alle verkeer naar de gateway is toegelaten. Het internet en LAN2 kan enigszins als een "publieke internet zone" worden beschouwd dus moet meer dichtgeschroeft zijn.
Alvast bedankt.
- Internet
- LAN1
- LAN2
Het is de bedoeling dat LAN1 (statisch ip) op het internet kan maar ook aan bronnen van LAN2 (ip via dhcp).
LAN1 is een klein netwerk (192.168.36.0/24) met eigen DHCP en DNS domain die tevens verzorgd wordt door deze gateway/router/firewall.
LAN2 is een groot netwerk (172.23.0.0/16) ook met eigen DHCP, DNS maar dan beheerd door andere machine(s). Het internet is een statisch ip adres, maar dit lijkt me niet zo relevant. LAN2 heeft een eigen internet verbinding, dus enkel LAN1 kan/mag gebruik maken van de internetverbinding geconfigureerd op de interface "internet" van de gateway.
Nu gebruik ik op de Internet interface masquareding zodanig dat het verkeer van LAN1 naar het internet ge-NAT wordt.
Echter wil ik tussen LAN1 en LAN2 gewone routing. Dus geen NAT. LAN1 heeft in principe onbeperkte toegang tot bronnen op LAN2. Voor LAN2 geld dit niet, op een paar uitzonderingen na (bvb SSH).
Wanneer ik geen masquareding gebruik op de LAN2 interface, dan kan er daadwerkelijk ook niks gerouteerd worden van LAN1 naar LAN2.
In de filter table wordt forwarding toegestaan als:
- inkomende interface internet en uitgaande interface LAN1 is
- inkomende interafce LAN1 en uitgaande interface internet is
- inkomende interface LAN2 en uitgaande interface LAN1 is
- inkomende interface LAN1 en uitgaande interface LAN2 is
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| # Interfaces definiëren
Internet='eth0'
LAN1='eth1'
LAN2='eth2'
################################################
################### BASIS REGELS ###################
################################################
# Verwijderen van alle bestaande regels, en alle aangemaakte chains verwijderen
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables --delete-chain
iptables --table nat --delete-chain
# Standaard policy instellen op drop voor ingaand, doorgaand en uitgaand verkeer
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Alle verkeer van/naar ongeldige connecties blokkeren
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
# Onbeperkt alle in- en uitgaand verkeer via loopback interfaces en LAN1 toelaten
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i $LAN1 -j ACCEPT
iptables -A OUTPUT -o $LAN1 -j ACCEPT
# Accepteer verkeer van het Internet als je de connectie zelf geinitaliseerd hebt:
iptables -A INPUT -i $Internet -m state --state ESTABLISHED,RELATED -j ACCEPT
# Onbeperkt uitgaande connecties naar het Internet accepteren
iptables -A OUTPUT -o $Internet -j ACCEPT
# Accepteer verkeer van de LAN2 als je de connectie zelf geinitaliseerd hebt:
iptables -A INPUT -i $LAN2 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Onbeperkt uitgaande connecties naar LAN2 accepteren
iptables -A OUTPUT -o $LAN2 -j ACCEPT
# IP masquerading NAT: één publiek IP adres maar met meerdere interne ip adressen
iptables -t nat -A POSTROUTING -o $Internet -j MASQUERADE
# IP masquerading NAT: één publiek IP adres maar met meerdere interne ip adressen
iptables -t nat -A POSTROUTING -o $LAN2 -j MASQUERADE
# Forwarding: alle verkeer tussen het Internet en LAN1 toelaten in beide richtingen
iptables -A FORWARD -i $Internet -o $LAN1 -j ACCEPT
iptables -A FORWARD -i $LAN1 -o $Internet -j ACCEPT
# Forwarding: alle verkeer tussen LAN1 en LAN2 toelaten in beide richtingen
iptables -A FORWARD -i $LAN2 -o $LAN1 -j ACCEPT
iptables -A FORWARD -i $LAN1 -o $LAN2 -j ACCEPT
################################################
################# UITGEBREIDE REGELS #################
################################################
# SSH toegang van overal toelaten
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP toegang van overal toelaten
iptables -A INPUT -p tcp --dport 80 -j ACCEPT |
Dit is dus de bewuste regel die ik eruit zou willen hebben:
code:
1
2
| # IP masquerading NAT: één publiek IP adres maar met meerdere interne ip adressen
iptables -t nat -A POSTROUTING -o $LAN2 -j MASQUERADE |
Ik veronderstel toch dat gewone routing zou moeten mogelijk zijn tussen LAN1 en LAN2. Zoals ik het nu zie lijkt het dus voor een resource (bvb een server) op het LAN2 netwerk dat het source adres van de client dan altijd van de LAN2 interface van de gateway is. Het is dus de bedoeling dat zonder NAT dat het source ip dat van de bewuste pc in LAN1 is.
Een bijkomend vraagje: zijn er enige adviezen omtrent veiligheid van dit script? Ik bedoel naar waterdichtheid en robuustheid van de firewall.
LAN1 is de vertrouwde lan, dus alle verkeer naar de gateway is toegelaten. Het internet en LAN2 kan enigszins als een "publieke internet zone" worden beschouwd dus moet meer dichtgeschroeft zijn.
Alvast bedankt.
[ Voor 3% gewijzigd door Tom_G op 11-02-2007 13:09 ]