
Fabi
Grünschnabel
Hallo Leute,
ich besitze eine Dreambox, auf der Linux läuft (Busybox PPC).
Nun möchte ich diese Dreambox als Router/Firewall für meine anderen Pcs, die sich im selben Netzwerk befinden, nutzen.. Leitung ist ADSL
Folgendes funktioniert bereits:
-Internet auf Dreambox
-Internet auf allen Rechnern
-Webserver, Samba, FTP, Telnet, SSH auf der Box vom Internet aus
-Emule von der Box aus und von einem PC im Netz(192.168.0.1)
Hier meine Conf:
NOCH EIN KLEINES PROBLEM:
Wenn ich bei den Pcs im Netzwerk bei DNS die Werte des Providers eingebe, funzt alles, auf der Dreambox ebenfalls. Jedoch wenn ich die Dns Werte nur auf der Dreambox eingebe und bei den PCS die Dreambox IP als DNSSERVER, dann geht nichts. WIe kann ich dies aktivieren?
DANKE SCHON IM VORRAUS
ich besitze eine Dreambox, auf der Linux läuft (Busybox PPC).
Nun möchte ich diese Dreambox als Router/Firewall für meine anderen Pcs, die sich im selben Netzwerk befinden, nutzen.. Leitung ist ADSL
Folgendes funktioniert bereits:
-Internet auf Dreambox
-Internet auf allen Rechnern
-Webserver, Samba, FTP, Telnet, SSH auf der Box vom Internet aus
-Emule von der Box aus und von einem PC im Netz(192.168.0.1)
Hier meine Conf:
Code:
#!/bin/sh
#----------------------------------------------------------------------------
# Abschnitt I : Laden der Module
#----------------------------------------------------------------------------
IPTABLES=/sbin/iptables
/sbin/route del default
if [ -e /tmp/.fwinitialized ]; then
echo "no fw initialize needed"
else
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
touch /tmp/.fwinitialized
fi
#----------------------------------------------------------------------------
# Abschnitt II : bisherige Regeln löschen :
#----------------------------------------------------------------------------
echo "Flushing and Clearing all current rules and user defined chains:"
$IPTABLES -F INPUT; $IPTABLES -P INPUT ACCEPT; $IPTABLES -Z INPUT
$IPTABLES -F FORWARD; $IPTABLES -P FORWARD ACCEPT; $IPTABLES -Z FORWARD
$IPTABLES -F OUTPUT; $IPTABLES -P OUTPUT ACCEPT; $IPTABLES -Z OUTPUT
chains=`cat /proc/net/ip_tables_names 2>/dev/null`
for i in $chains; do iptables -t $i -F; done && \
echo "Flushing all current rules and user defined chains OK" || \
echo "Flushing all current rules and user defined chains FAILED"
for i in $chains; do iptables -t $i -X; done && \
echo "Clearing all current rules and user defined chains OK" || \
echo "Clearing all current rules and user defined chains FAILED"
for i in $chains; do iptables -t $i -Z; done
# Setup user-defined chains
$IPTABLES -X
$IPTABLES -N LINWIZ-INPUT;
$IPTABLES -N REJECT-PKT;
$IPTABLES -N SYN-FLOOD;
$IPTABLES -A INPUT -j LINWIZ-INPUT
#----------------------------------------------------------------------------
# Abschnitt III : Forwarding und Masquerading
#----------------------------------------------------------------------------
# MSS Clamping (
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# abgehende Pakete FORWARDING - ( Routing ) Paketweiterleitung
iptables -A FORWARD -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# ankommende Pakete FORWARDING - ( Routing )
iptables -A FORWARD -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# NAT ( Network Address Translation ) - Maquerading
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#----------------------------------------------------------------------------
# Abschnitt VI : DynDNS
#----------------------------------------------------------------------------
if [ -e /tmp/.dyndns ]; then
echo "DYNDNS ALREADY STARTED"
else
/hdd/opt/tuxdns -h
touch /tmp/.dyndns
fi
#----------------------------------------------------------------------------
# Abschnitt V : Sicherheit
#----------------------------------------------------------------------------
# Allow all loopback interface traffic
$IPTABLES -A LINWIZ-INPUT -i lo -j ACCEPT
# Block all attempts to spoof the loopback address
$IPTABLES -A LINWIZ-INPUT -s 127.0.0.0/8 -j DROP
$IPTABLES -A LINWIZ-INPUT -d 127.0.0.0/8 -j DROP
# Block all attempts to spoof the local IP address
$IPTABLES -A LINWIZ-INPUT -s 192.168.0.100 -j DROP
# Block Syn Flood attacks
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp --syn -j SYN-FLOOD
# Ensure that TCP connections start with syn packets
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp ! --syn -m state --state NEW -j DROP
# Allow session continuation traffic
$IPTABLES -A LINWIZ-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Allow ICMP ping requests from all hosts
$IPTABLES -A LINWIZ-INPUT -p icmp -m icmp --icmp-type ping -j ACCEPT
# Allow selected TCP/IP and/or UDP services
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp --dport 20:23 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#$IPTABLES -A INPUT -i ppp0 -p tcp --sport 80 -j REJECT
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp --dport 139 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp --dport 992 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p tcp -m tcp --dport 20248 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p udp -m udp --dport 137:138 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p udp -m udp --dport 177 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p udp -m udp --dport 20248 -j ACCEPT
$IPTABLES -A LINWIZ-INPUT -p udp -m udp --sport 137:138 -j ACCEPT
#EMULE ROUTING für den PC (nicht die Box)
$IPTABLES -A INPUT -p tcp --dport 4661 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 4662 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 4665 -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 4661 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 4662 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 4665 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 4661 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 4662 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport 4665 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 4661 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 4662 -m state --state NEW -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp --dport 4662 -j DNAT --to 192.168.0.1
# Block all other TCP/IP and UDP traffic
$IPTABLES -A LINWIZ-INPUT -j REJECT-PKT
#############################################################################
# Chain used to reject all TCP/IP, UDP and ICMP/PING packets
$IPTABLES -A REJECT-PKT -p tcp -m tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A REJECT-PKT -p udp -m udp -j REJECT --reject-with icmp-port-unreachable
$IPTABLES -A REJECT-PKT -p icmp -m icmp --icmp-type ping -j REJECT --reject-with icmp-host-unreachable
- Stimmt meine IPTABLES Conf, oder gibt es Fehler/Wiedersprüche? Bitte durchgehen und mich auf Fehler oder fehlende Einträge aufmerksam machen.
- Möchte viel Freiheit auf den Pcs im Netzwerk bekommen, so wie bei Windows ICS, sofern es der Sicherheit nicht schadet. Wie mache ich das?
- Wie kann ich nachträglich den Webserver auf der Box vom Netz aus blockieren? Einfach ACCEPT durch REJECT ersetzen, richtig?
- Noch Vorschläge zur Conf?
NOCH EIN KLEINES PROBLEM:
Wenn ich bei den Pcs im Netzwerk bei DNS die Werte des Providers eingebe, funzt alles, auf der Dreambox ebenfalls. Jedoch wenn ich die Dns Werte nur auf der Dreambox eingebe und bei den PCS die Dreambox IP als DNSSERVER, dann geht nichts. WIe kann ich dies aktivieren?
DANKE SCHON IM VORRAUS