[linux] Re: van het ene netwerk naar het andere

Rob Sterenborg rob op sterenborg.info
Zo Nov 27 21:18:38 CET 2005


>     >> Als ik 172.16.2.3 ping vanaf 10.0.0.5 dan "hoort" tcpdump (op
>     >> de gateway) dat alleen op de bijbehorende interface
>     >> (wlan0). Niet op eth0 (de interface naar 172etcetera), en ook 
>     >> niet op nas0. >>
>     >> Moet ik hieruit afleiden dat mijn (gw)firewall dit verkeer(d) 
> >> tegenhoudt? 

...

> Ik begrijp het nu zo: een ping-verzoek komt binnen op wlan0, dan
> bekijkt de firewall het en die laat het niet door want het is niet
> bestemd voor internet... 
> 
>       > Maar ik mag aannemen dat je een firewall ook logging laat
>       > genereren. En dan moet je het daar ook stuk zien gaan.
> 
> Ja.. dat zou ik ook wel eens willen weten. Maar als ik "jullie" volg,
> dan moet ik in mijn firewall regels zoeken naar de oplossing.
> 
> Ik heb daar nu (onder meer) staan:
> 
> ## Onbeperkt verkeer op interne interfaces toestaan
> $IPTABLES --table filter -A INPUT -i eth0 -j ACCEPT
> $IPTABLES --table filter -A OUTPUT -o eth0 -j ACCEPT
> $IPTABLES --table filter -A INPUT -i wlan0 -j ACCEPT
> $IPTABLES --table filter -A OUTPUT -o wlan0 -j ACCEPT
> 
> Dat zou intern verkeer toch toe moeten laten?

Ik volg niet helemaal *van* waar *naar* waar je nou pingt.
Daarom ook niet wat je met deze rules wilt bereiken.

Packets die *op de firewall*  binnen komen, gaan door de INPUT chain.
Packets die *vanaf de firewall* gegenereerd zijn, gaan door de OUTPUT
chain.
Packets die vanuit het LAN naar het internet of van LAN1 naar LAN2 toe
gaan (en terug), gaan door de FORWARD chain.

Over het algemeen maak je het jezelf vrij moeilijk als je de policy voor
OUTPUT op DROP zet.
Ik zou dat pas doen wanneer het geheel werkt en je zeker weet dat je dat
alsnog wilt doen.

Daar ik je netwerk niet ken doe ik een aanname voor de firewall :
eth0  -> 172.16.2.1  (LAN1)
wlan0 -> 10.0.0.1    (LAN2)
nas0  -> a.b.c.d

# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD DROP

RELATED en ESTABLISHED laten we gewoon door, zou hoeven we alleen NEW
matchen
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Voor als je je eigen machine nog wilt kunnen benaderen...
# iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
# iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
# iptables -A INPUT -m state --state NEW -i wlan0 -j ACCEPT

Packet (van 172.16.2.1 naar LAN1) of
       (van 10.0.0.1 naar LAN2) of 
       (van a.b.c.d naar internet) :
OUTPUT policy is ACCEPT dus dit moet lukken wanneer je verder geen
DROP/REJECT rules in OUTPUT hebt.

Packet (van LAN1 naar LAN2) of 
       (van LAN2 naar LAN1) :
Hiervoor is een FORWARD rule voldoende ; er vindt geen NAT plaats.
# iptables -A FORWARD -m state --state NEW -i eth0 -o wlan0 -j ACCEPT
# iptables -A FORWARD -m state --state NEW -i wlan0 -o eth0 -j ACCEPT

Packet (van LAN1 naar internet) of
       (van LAN2 naar internet) :
Hiervoor heb je een FORWARD en POSTROUTING (NAT) rule nodig.
# iptables -A FORWARD -m state --state NEW -i eth0 -o nas0 -j ACCEPT
# iptables -A FORWARD -m state --state NEW -i wlan0 -o nas0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o nas0 -j SNAT --to a.b.c.d

't Is een beetje versimpeld en gebaseerd op aannames dus je zal het wel
wat moeten verbouwen.
Al met al denk ik dat het er zo ongeveer uit zou moeten zien.


Gr,
Rob




More information about the Linux mailing list