ich bin gerade dabei mir ein firewallkonzept zu überlegen und meine wahl fällt natürlich auf iptables.
aufgabenstellung:
es ist ein server vorhanden, der über eth0 (öffentliches interface mit einer öffentlichen ip sagen wir 1.2.4.5) an das initernet und über eth1 (privates interface; private ip 192.168.8.201) an das lan angebunden ist. der server bietet im privaten netz die übelichen
dienste wie samba, dhcp, ... an. desweiteren müssen die workstations im lan natürlich auch online gehen, masquerading oder snat? wie ich gelesen habe soll man 'masquerading' besser bei z.b. wählverbindungen einsetzen und lieber snat einrichten.
was genau ist der unterschied zwischen 'snat' und 'masquerading'?
meine regeln sehen in etwa so aus, könnte das funktionieren?
Code: Alles auswählen
#!/bin/sh
ipt="/sbin/iptables"
echo 1 > /proc/sys/net/ipv4/ip_forward
# policies festlegen
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD DROP
# neue ketten anlegen
$ipt -N fromoutside
$ipt -N forwardlocal
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A INPUT -i eth1 -s 192.168.8.0/24 -p tcp -m state --state NEW -m tcp -j ACCEPT
$ipt -A INPUT -i lo -j ACCEPT
$ipt -A INPUT -i eth0 -j fromoutside
$ipt -A fromoutside -i eth0 -s $ANY -p tcp -m state --state ESTABLISHED,RELATED -j
# dns
$ipt -A fromoutside -i eth0 -s $ANY -p tcp --sport 53 -j ACCEPT
$ipt -A fromoutside -i eth0 -s $ANY -p udp --sport 53 -j ACCEPT
# ntp; $TIME ist timeserver
$ipt -A fromoutside -i eth0 -s $TIME -p tcp --sport 123 -j ACCEPT
$ipt -A fromoutside -i eth0 -s $TIME -p udp --sport 123 -j ACCEPT
# $TRUST ein öffentliches netz, aus welchem gemonitored als auch administriert wird
for IP in $TRUST; do
$ipt -A fromoutside -i eth0 -s $IP -p tcp --sport 22 -j ACCEPT
$ipt -A fromoutside -i eth0 -s $IP -p tcp --dport 22 -j ACCEPT
$ipt -A fromoutside -i eth0 -s $IP -p tcp --dport 5666 -j ACCEPT
$ipt -A fromoutside -i eth0 -s $IP -p tcp --sport 5666 -j ACCEPT
$ipt -A fromoutside -i eth0 -s $IP -p icmp -j ACCEPT
done
$ipt -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A FORWARD -d 192.168.8.0/24 -j forwardlocal
# vollzugriff nach aussen
$ipt -A FORWARD -s 192.168.8.0/24 -j ACCEPT
$ipt -A forwardlocal -d ! $PRIVATE -i eth1 -j LOG
$ipt -A forwardlocal -d ! $PRIVATE -i eth1 -j DROP
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to a.b.c.d #(öffentliche ip des servers/gateways)
vielen dank schon mal,
euer iptables noob,
init