Gateway einrichten, Router^^

XET!C

XET!C

Tripel-As
Hi alles samt,

Ich bin stolz auf mich, dass ich soweit mein Server hinbekommen habe wie ich haben möchte:brav:
Nur eins haut nicht hin wie ich es will.
Habe Debian drauf und Progs die 24/7 lauf sind SAMBA und Bittornado.
So jetzt wollte ich mein Kabelmodem direkt am Server anschließen.
eth0 --> per DHCP Kabelmodem
eth1 --> Netzwerk zur Workstation
Ich will jetzt mit meiner Workstation ins Internet gehen. Der Server soll zusätzlich als Router fungieren. Hab schon viele Skripte ausprobiert, aber nicht eins hat geklappt.
Soll einfach nur Gateway sein ohne irgendwelchen schnick schnack noch nicht einmal FIREWALL (iptables)


Kann mir da einer behilflich sein??? DANKE!
 
Ja danke an beiden

@MrBoe
klappt nicht. Auf dem client sind keine Anzeichen vom Internet

@bitmuncher
Hab schon vorher ausprobiert, ging auch nicht und ich will keine firewall


SCHADE :-(

Vielleicht sollte ich noch sagen, dass auf dem Client Windoof BS drauf ist
 
Woran machst du das fest? Kannst du den Router pingen? Kannst du IPs im WWW pingen (z.B. 64.233.183.103)?
 
Das auf dem Client Windows läuft ist in der Tat interessant.
Natürlich funktioniert der Befehl dann nicht. Du musst aber trotzdem das Selbe machen. Nämlich den Router als Gateway einstellen.
Vermutlich fehlt dir auch noch ein Nameserver. Den solltest du auch eintragen.
 
Ja ich kann der Router ohne Probleme Pingen und SMB funzt auch. Nur ins Inet nicht.
 
Welche Devices werden auf dem Router benutzt und wie sieht dein Skript aus?
 
ja also eth0 3Com 100MB für direkte Verbindung zum Kabelmodem
und eth1 Realtek 1GB mit der festen IP 192.168.0.1, 255.255.255.0

Code:
#!/bin/bash

case "$1" in
  start)
    echo "Starte IP-Paketfilter"

    # iptables-Modul
    modprobe ip_tables
    # Connection-Tracking-Module
    modprobe ip_conntrack
    # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
    modprobe ip_conntrack_irc
    modprobe ip_conntrack_ftp

    # Tabelle flushen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X

    # Default-Policies setzen
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    # MY_REJECT-Chain
    iptables -N MY_REJECT

    # MY_REJECT fuellen
    iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
    iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
    iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
    iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
    iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
    iptables -A MY_REJECT -p icmp -j DROP
    iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
    iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

    # MY_DROP-Chain
    iptables -N MY_DROP
    iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
    iptables -A MY_DROP -j DROP

    # Alle verworfenen Pakete protokollieren
    iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
    iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
    iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "

    # Korrupte Pakete zurueckweisen
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A OUTPUT -m state --state INVALID -j DROP
    iptables -A FORWARD -m state --state INVALID -j DROP

    # Stealth Scans etc. DROPpen
    # Keine Flags gesetzt
    iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP

    # SYN und FIN gesetzt
    iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

    # SYN und RST gleichzeitig gesetzt
    iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

    # FIN und RST gleichzeitig gesetzt
    iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

    # FIN ohne ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

    # PSH ohne ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

    # URG ohne ACK
    iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
    iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP

    # Loopback-Netzwerk-Kommunikation zulassen
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    # Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen
    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    # Connection-Tracking aktivieren
    iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -i ! eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # ICMP Echo-Request (ping) zulassen und beantworten
    iptables -A INPUT -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT

    # IP-Adresse des LAN-Interfaces ermitteln
    LAN_IP=$(ifconfig eth1 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)

    # NAT fuer HTTP
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 
    iptables -A FORWARD -i eth0 -m state --state NEW -p tcp -d  --dport 80 -j ACCEPT
    # Benutze Source NAT (SNAT) fuer die aktuelle Verbindung in das LAN
    iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -j SNAT --to-source $LAN_IP

    # Default-Policies mit REJECT
    iptables -A INPUT -j MY_REJECT
    iptables -A OUTPUT -j MY_REJECT
    iptables -A FORWARD -j MY_REJECT

    # Forwarding/Routing
    echo "Aktiviere IP-Routing"
    echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null

    # SYN-Cookies
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

    # Stop Source-Routing
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

    # Stop Redirecting
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

    # Reverse-Path-Filter
    for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

    # Log Martians
    for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

    # BOOTP-Relaying ausschalten
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

    # Proxy-ARP ausschalten
    for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

    # Ungültige ICMP-Antworten ignorieren
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

    # ICMP Echo-Broadcasts ignorieren
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null

    # Max. 500/Sekunde (5/Jiffie) senden
    echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

    # Speicherallozierung und -timing für IP-De/-Fragmentierung
    echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
    echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
    echo 30 > /proc/sys/net/ipv4/ipfrag_time

    # TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
    echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

    # Maximal 3 Antworten auf ein TCP-SYN
    echo 3 > /proc/sys/net/ipv4/tcp_retries1

    # TCP-Pakete maximal 15x wiederholen
    echo 15 > /proc/sys/net/ipv4/tcp_retries2

    ;;

  stop)
    echo "Stoppe IP-Paketfilter"
    # Tabelle flushen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X
    iptables -t nat -X
    iptables -t mangle -X
    echo "Deaktiviere IP-Routing"
    echo 0 > /proc/sys/net/ipv4/ip_forward

    # Default-Policies setzen
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    ;;

  status)
    echo "Tabelle filter"
    iptables -L -vn
    echo "Tabelle nat"
    iptables -t nat -L -vn
    echo "Tabelle mangle"
    iptables -t mangle -L -vn
    ;;

  *)
    echo "Fehlerhafter Aufruf"
    echo "Syntax: $0 {start|stop|status}"
    exit 1
    ;;

esac

Aber ich will keine Firewall... also müsste es eigentlich genau gehen, wie es MrBoe gesagt hat oder nicht???
 
Zuletzt bearbeitet:
Im Normalfall sollte es reichen das IP-Forwarding zu aktivieren.
 
tja klappt nicht.

Hab ich mein interfaces falsch eingerichtet???

Code:
# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static 
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255


auto eth0
iface eth0 inet dhcp
 
Haste nun auf der Windows-Kiste den Router als Gateway eingetragen und einen brauchbaren DNS-Server?
 
ja klar... so blöd bin ich nicht.
Meiner Meinung nach hab ich alles richtig gemacht

Warum klappt das bei jedem und bei mir nicht???
 
Zuletzt bearbeitet:
Moment ... hab ich die Zeile
Code:
$IPTABLES -t nat -A POSTROUTING -o <netzwerk-device-zum-internet> -j MASQUERADE
nur übersehen oder haste die wirklich nicht drin ... ?
 
Weis ich nicht...soll ich sie einfach dazu schreiben???

Hab dazu geschrieben aber ohne $. Ist doch richtig???

Code:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
geht immer noch nicht

Ist es normal wenn ich das Skript starte das dann eine Sekunde später auf dem Bildschirm immer weiter die Meldung kommt
Code:
 REJECT UDP IN=eth0 OUT= MAC=XXX.....
 
Zuletzt bearbeitet:
Du solltest noch die Zeile:
network 192.168.0.0
bei eth1 dazu schreiben.
Und natürlich auf dem Windows Rechner den Server als Gateway eintragen.
Und vielleicht mal die XP Firewall ausmachen??
Sonst ist alles richtig.

Kommst du denn vom Server aus ins Internet??
 

Ähnliche Themen

Router routing mit mehreren Netzwerken

debian als gateway

Debian router einrichten.

squid transparent proxy will nicht transparent werden !! :-(

iptables Problem mit der Syntax ethx

Zurück
Oben