Toon posts:

adsl en iptables

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik probeer een beetje een veilig netwerkje op te zetten en m'n adsl lijn te delen dmv iptables (1.2.4). in principe gebruik ik een standaard scrippie waarin eigenlijk alleen maar forwarding voor in/out wordt aangezet en masquerading op de out interface;

---
# vars
IPTABLES=/usr/local/sbin/iptables
EXTIF="eth0" # ==> 10.0.0.150/255.255.255.0
INTIF="eth1" # ==> 192.168.0.1/255.255.255.0

# modules
/sbin/depmod -a
/sbin/insmod ip_tables
/sbin/insmod ip_conntrack
/sbin/insmod ip_conntrack_ftp
/sbin/insmod ip_conntrack_irc
/sbin/insmod iptable_nat
/sbin/insmod ip_nat_ftp

# ip forwarding enablen
echo "1" > /proc/sys/net/ipv4/ip_forward

# dhcp ondersteuning enablen
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

# tables flushen & policies setten
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F

# forwarding rules
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG

# snat/masq-ing op $EXTIF
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
---

in linux mandrake 8.0 (standaard kernel 2.4.3 waarin de modules van iptables zijn opgenomen) met 2 3com 3c905cx 10/100 kaartjes die allebei goed werken.
nou is er communicatie tussen het interne netwerk en het adsl (alcatel speedtouch home) modem via de linux bak (ik kan de via port 80 naar de config van het modem en ping/icmp werkt ook), dus dat zou betekenen dat forwarding en masquerading goed werkt. ik kom alleen vanaf het interne netwerk niet verder dan het adsl modem. niet pingen, geen http, niks. vanaf de linux bak kan ik wel gewoon naar buiten. weet iemand waar dit aan zou kunnen liggen?

  • JF_
  • Registratie: Juni 2001
  • Laatst online: 20-08 14:22

JF_

Aangezien je niet vermeld wat voor ADSL je hebt zeg ik nu misschien iets dat totaal niet van toepassing is, maar als je MXStream hebt moet je volgens mij *niet* de echte interface delen, maar de VPN-verbinding die eroverheen loopt (ppp0 of zo). Kijk even met ifconfig welke interfaces er bestaan op die router. En natuurlijk ook: search! Volgens mij zijn soortgelijke vragen al 10000 keer langsgeweest. Misschien niet met iptables, maar dan toch wel de algemene vragen over delen van MXStream.
Als je trouwens een vast IP hebt (ook als 't via DHCP wordt toegewezen) kan je ook dit proberen:
iptables -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIP

  • igmar
  • Registratie: April 2000
  • Laatst online: 29-06 18:56

igmar

ISO20022

Op vrijdag 04 januari 2002 17:16 schreef betaai het volgende:
ik probeer een beetje een veilig netwerkje op te zetten en m'n adsl lijn te delen dmv iptables (1.2.4). in principe gebruik ik een standaard scrippie waarin eigenlijk alleen maar forwarding voor in/out wordt aangezet en masquerading op de out interface;

---
# vars
IPTABLES=/usr/local/sbin/iptables
EXTIF="eth0" # ==> 10.0.0.150/255.255.255.0
INTIF="eth1" # ==> 192.168.0.1/255.255.255.0
liggen?
Dit plaatje is niet volledig. eth0 is alleen om met je modem te praten, verder niet.

De echte communicatie met internet loopt over ppp0, die ook
het IP adres heeft wat je van je provider hebt gekregen. Aangezien dat ding static is kun je gewoon EXTIF="eth0" vervangen door ppp0.

Zorg er WEL voor dat de communicatie tussen 10.0.0.x en 10.0.0.150 (je modem) goed loopt. Je zou niet de eerste wezen die z'n modem uitfirewalled :)

  • cyclone
  • Registratie: Juni 2000
  • Laatst online: 21-08 19:29

cyclone

-=Hacking is my life=- (NOT)

Je moet zoals de vorige poster al roept niet je netwerkkaart met 10.0.0.150 gebruiken als externe interface maar de PPP0 dit is de interface welke het externet IP op komt en dus waarover al het verkeer van en naar internet overheen gaat.

Sucses

Bij IT-ers gaat alles automatisch, maar niets vanzelf.
Linux is only free if your time has no value...


Verwijderd

Topicstarter
eth0 <->ppp0
juist!! wreed bedankt! dit is weer zo'n klein dingetje dat niet goed zit en je totaal over het hoofd ziet (ondanks de tientallen topics die hier al over zijn ;)

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
nou het aantal topics over iptables en informatie daar over op internet is nog niet echt gigantisch.

Maar ik denk dat jou script nu nog weinig security bied omdat je bijna alles op default policy ACCEPT hebt staan..

  • JF_
  • Registratie: Juni 2001
  • Laatst online: 20-08 14:22

JF_

Op vrijdag 04 januari 2002 20:34 schreef Thijs B het volgende:
nou het aantal topics over iptables en informatie daar over op internet is nog niet echt gigantisch.
Maar 't aantal topics over MXStream en internet delen wel, en dat gaat opvallend vaak over problemen doordat iemand de fysieke interface deelt, en niet de tunnel.
Maar ik denk dat jou script nu nog weinig security bied omdat je bijna alles op default policy ACCEPT hebt staan..
In principe is alleen de router zelf exposed. De bakken erachter zijn (vrijwel) onbereikbaar van buitenaf, omdat de FORWARD chain alleen incoming packets doorlaat die over een reeds bestaande verbinding wandelen.
Mijn eigen bak staat ietsje strakker: INPUT- en FORWARD-policy op drop, OUTPUT op accept, en verder ook geen inkomend verkeer op de router zelf:
# Intern verkeer
$IPTABLES -A INPUT -i $INTIF -s $INTNET -j ACCEPT

# Incoming masq'ed
$IPTABLES -A INPUT -i $EXTIF -d $EXTIP -m state --state ESTABLISHED,RELATED -j ACCEPT

# ICMP-replies
$IPTABLES -A INPUT -i $EXTIF -p ICMP -d $EXTIP -j ACCEPT

# Loopback
$IPTABLES -A INPUT -i lo -j ACCEPT

# Forward incoming masq'ed packets if connection already exists
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
# Forward all outgoing masq'ed packets
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT


# Special settings
# matches 'incoming ports'-setting in ICQ

# Allow incoming traffic to portrange in forward chain
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 10200:10299 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Reroute those ports to 192.168.0.2
$IPTABLES -t nat -A PREROUTING -i $EXTIF -p tcp --dport 10200:10299 -j DNAT --to 192.168.0.2

# The actual NAT-rule, rewrite all outgoing packets to come from correct IP
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j SNAT --to $EXTIP

Je zou dit nog uit kunnen breiden met een paar rules om IP-spoofing tegen te gaan, maar dat kan de kernel zelf ook prima:
echo -n $"Enabling reverse packet filtering:"
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do
echo 2 > $i
done
for i in /proc/sys/net/ipv4/conf/*/log_martians ; do
echo 1 > $i
done

Ook leuk, een trucje tegen ping-echo-floods (2 replies per seconde):
echo 50 > /proc/sys/net/ipv4/icmp_echoreply_rate
success $"Enabling reverse packet filtering:"
echo

Bijna vergeten: een tweetal modules voor FTP en abn.amro-homenet:
/sbin/modprobe ip_conntrack_ftp ports=21,42,63
/sbin/modprobe ip_nat_ftp ports=21,42,63
Pagina: 1