Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Linux DSL Router

Frage Linux Linux Netzwerk

Mitglied: hamster1337

hamster1337 (Level 1) - Jetzt verbinden

20.03.2006, aktualisiert 23.03.2006, 6718 Aufrufe, 10 Kommentare

Hallo,

ich möchte nach dem DSL-Modem einen Server mit 2 NICs laufen lassen der aufbau sieht so aus

dslmodem - - - Server - - - Netzwerk
dsl - verbindung // 192.168.1.1

Die 1. Netzwerkkarte hat die IP 192.168.1.1 und verbindet über einen Switch das netzwerkt
Die 2. Netzwerkkarte ist am DSL-Modem angeschlossen und IP bekommt sie über DHCP
der Provider ist T-Online

DSL Verbindung habe ich den Server kann mann auch anpingen nur kommt man nicht ins internet das heisst doch das ich eine falsche route habe?

Meine Routing Tabelle sieht folgendermaßen aus
<font class="code">Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.0.116.87 * 255.255.255.255 UH 0 0 0 dsl0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 217.0.116.87 0.0.0.0 UG 0 0 0 dsl0 </font>
(was mich hier wundert ist das nirgends die schnittstelle für dsl auftaucht (eth1oder ist das die dsl0?) und nirgends die ip vom Netzwerk also 192.168.1.1)

ich bin noch eine ziemlicher Linux anfänger am besten wäre für mich eine Erklärung mit Yast oder schritt für schritt (für dumme) in der Konsole

schon mal vielen Dank

Mit freundlichen Grüßen hamster1337
Mitglied: AndreasHoster
20.03.2006 um 17:36 Uhr
Kurze Nachfrage:
Wer kommt nicht ins Internet?
Wenn Du Router schreibst, kommt Dein Server nicht ins Internet oder ein Rechner an der 2. NIC? Wenn Rechner hinter Router, dann wirds noch etwas aufwendiger (NAT, Forwarding etc.)
Versuchst Du mit DNS Namen oder mit IP Adresse irgendjemand im Internet zu erreichen? Wenn DNS, dann versuche mal einen Ping auf eine IP-Adresse (eventuell tut die Namensauflösung nicht), z.B. 217.119.51.146 (das ist der Webserver meiner Firma).

DSL0 ist das Interface für DSL und das als Standardgateway zu nehmen ist schon richtig. Daher ist Deine Route so erstmal korrekt.
Bitte warten ..
Mitglied: hamster1337
20.03.2006 um 17:41 Uhr
die Rechner hinter dem Router.
das mit Namensauflösung habe ich mir auch schon gedacht habe immer web.de angeping mit der ip 217.... oder so und hat nicht funktioniert. sitze im moment am server von dem alles problemlos geht dns etc
Bitte warten ..
Mitglied: AndreasHoster
20.03.2006 um 17:54 Uhr
Ich habe daheim auch eine solche Lösung arbeiten, sitze aber gerade im Geschäft
Für die Routing-Funktionen kommen noch 2 Sachen hinzu:
1. Es muß IP-Forwarding eingeschaltet werden
2. Es muß NAT (Network Address Translation) aktiviert werden.

Ich habe Debian, sollte aber mit SuSE genauso arbeiten.
Für 1:
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynadd (das braucht man unter Umständen nicht)

Für 2 (Hier ein Skript von meinem Server):
#!/bin/tcsh
  1. Löschen der FireWall-Regeln
  2. ACHTUNG: Die FireWall ist danach offen!

set IPTABLES = /usr/sbin/iptables

  1. Alles akzeptieren
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

  1. Eventuell vorhandene Regeln löschen
$IPTABLES -F
$IPTABLES -t nat -F
  1. NAT aktivieren
$IPTABLES -X
$IPTABLES -t nat -A POSTROUTING -o dsl0 -j MASQUERADE

Dann sitzt Dein Rechner allerdings völlig offen im Netz, man sollte die Firewall schon sicherer konfigurieren, aber für einen kurzen Test sollte es reichen.
Bitte warten ..
Mitglied: hamster1337
20.03.2006 um 19:13 Uhr
die beiden optionenen haben leider nichts bewirkt und wie man mit dem skript umgeht hab ich leider keine ahnung.
ich habe gerade mal im linux handbuch nachegelesen und irgendwas von einer dummy addresse für die dsl0 bzw eth1 schnittstelle gelesen, das man z.b. einfach 192.168.22.1 eingibt ich probier das jetzt mal aus ansonsten weis ich net weiter
Bitte warten ..
Mitglied: AndreasHoster
20.03.2006 um 20:39 Uhr
Sorry hamster1337, war ich mal wieder ein bischen zu schnell.

Also, 1. alleine reicht auch nicht, NAT muß aktiviert sein.
Das Skript einfach in eine Textdatei schreiben (kopieren), diese mittels chmod 755 Name_der_Datei ausführbar machen und dann in der Konsole aufrufen.
Oder die Befehle einzeln in der Konsole aufrufen:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -A POSTROUTING -o dsl0 -j MASQUERADE

Außerdem muß der Kernel es unterstützen, sollte aber bei einem SuSE Kernel mitdrin sein.
Bitte warten ..
Mitglied: AndreasHoster
20.03.2006 um 20:40 Uhr
Hier auch mein komplettes Firewall-Skript (na gut, an manchen Stellen redundant, aber es tut):
Man muß natürlich noch die Auswahl bei Internem Netz und Interfaces an seine Konfiguration anpassen!


#!/bin/tcsh
  1. Firewall-Skript für Server.home
  2. Teil I: Variablen

set IPTABLES = /usr/sbin/iptables

  1. Ports
set p_high = 1024:65535 # unpriviliegierte Ports (Userspace)
set p_vnc = 5901 # VNC-Port
set p_ssh = 1000:1023 # common ssh source ports
set p_squid = 3128 # Squid-Port


  1. Interfaces
set EXT = ppp0 # DSL Interface, kann auch dsl0 heißen
set INT = eth0 # Interface ins interne Netz
set IF = ( $EXT $INT )

set INTERN = 10.0.0.0/255.255.255.0 # Internes Netz, muß an das tatsächlich verwendete IP Netz angepasst werden

  1. Teil II: Grundkonfiguration: absichern

  1. dynamische Kernelparameter setzen

echo "0" > /proc/sys/net/ipv4/ip_forward # Forwarding erstmal abschalten
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate

foreach if ($IF)
echo "1" > /proc/sys/net/ipv4/conf/$if/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$if/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$if/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$if/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$if/log_martians
end

  1. Conntrack-Module für FTP laden

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

  1. Default Policy und Regeln löschen
  2. Default Policy: Alles wird gedroppt

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -F # Löschen aller Regeln (Tabelle filter)
$IPTABLES -t nat -F # Löschen aller Regeln (Tabelle nat)
$IPTABLES -X # Löschen aller benutzerdefinierten Chains (filter)

  1. Die maximale Segmentgröße auf die maximale transfer unit abstimmen
$IPTABLES -I FORWARD 1 -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

  1. Lokale Prozesse dürfen über das Loopback-Device lo kommunizieren

$IPTABLES -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$IPTABLES -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -o lo -s 10.0.0.1 -d 10.0.0.1 -j ACCEPT
$IPTABLES -A INPUT -i lo -s 10.0.0.1 -d 10.0.0.1 -j ACCEPT

  1. VNC für die Wartung erlauben, sofern die Anfrage aus dem internen Netz
  2. und über die Ethernet-Karte des internen Netzes kommt

$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --dport $p_vnc -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $INT -d $INTERN -p TCP --sport $p_vnc -m state --state ESTABLISHED,RELATED -j ACCEPT

  1. Userdefinierte Regelketten
  2. DROP & LOG Kette

$IPTABLES -N log_drop
$IPTABLES -A log_drop -p ICMP -j LOG --log-prefix "DROP-ICMP "
$IPTABLES -A log_drop -p UDP -j LOG --log-prefix "DROP-UDP "
$IPTABLES -A log_drop -p TCP -j LOG --log-prefix "DROP-TCP "
$IPTABLES -A log_drop -j DROP

  1. Teil IV: Masquerading und bestehende Verbindungen
  2. Masquerading

$IPTABLES -t nat -A POSTROUTING -o $EXT -j MASQUERADE

  1. IP-Forwarding kann wieder eingeschaltet werden da Firewall läuft

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

  1. Erlauben ausgehender Pakete bestehender Verbindungen

$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INT -o $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT

  1. Erlauben eingehender Pakete zu bestehenden Verbindungen

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT

  1. Droppen von eingehenden invaliden Paketen

$IPTABLES -A INPUT -m state --state INVALID -j LOG --log-prefix "INVALID INPUT "
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -i $EXT -o $INT -m state --state INVALID -j LOG --log-prefix "INVALID FORWARD "
$IPTABLES -A FORWARD -i $EXT -o $INT -m state --state INVALID -j DROP

  1. Teil V: Filterregeln für lokale Dienste (also Dienste, die auf Server laufen)

  1. ICMP (Ausgehender Ping) erlauben

$IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT

  1. DNS-Abfragen von Server an andere Nameserver erlauben

$IPTABLES -A OUTPUT -m state --state NEW -p UDP --dport domain -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p TCP --dport domain -j ACCEPT

  1. SMTP ausgehend erlauben

$IPTABLES -A OUTPUT -m state --state NEW -p UDP --dport smtp -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p TCP --dport smtp -j ACCEPT

  1. POP3 ausgehend erlauben, damit Fetchmail die Mails holen kann
$IPTABLES -A OUTPUT -m state --state NEW -p UDP --dport pop3 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p TCP --dport pop3 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p UDP --dport pop3s -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p TCP --dport pop3s -j ACCEPT


  1. Squid (WWW-Proxy)
  2. Anfragen aus dem internen Netz an Squid erlauben

$IPTABLES -A INPUT -i $INT -s $INTERN -p TCP --dport $p_squid -j ACCEPT

  1. Anfragen von Squid an externe Web-Server erlauben (http und https)

$IPTABLES -A OUTPUT -o $EXT -p TCP --dport http -j ACCEPT
$IPTABLES -A OUTPUT -o $EXT -p TCP --dport https -j ACCEPT

  1. Komplettes Sperren bestimmter Ports von der Firewall ins externe Netz (auch wegen Broadcasts)
  2. Telnet (Port 23)
  3. Telnet Gateway (Port 89)
  4. Remote Telnet (Port 107)
  5. Telnet over SSL (Port 992)
$IPTABLES -A INPUT -i $EXT -p TCP -m multiport --dport 23,89,107,992 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p TCP -m multiport --sport 23,89,107,992 -j DROP
$IPTABLES -A INPUT -i $EXT -p UDP -m multiport --dport 23,89,107,992 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p UDP -m multiport --sport 23,89,107,992 -j DROP

  1. Sysstat (Port 11)
  2. Finger (Port 79)
  3. X11 Display Manager Control Protocol (Port 177)
  4. SWAT (Port 901)
  5. NFS (Port 2049)
  6. X11 Font Server (Port 7001)
$IPTABLES -A INPUT -i $EXT -p TCP -m multiport --dport 11,79,177,901,2049,7001 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p TCP -m multiport --sport 11,79,177,901,2049,7001 -j DROP
$IPTABLES -A INPUT -i $EXT -p UDP -m multiport --dport 11,79,177,901,2049,7001 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p UDP -m multiport --sport 11,79,177,901,2049,7001 -j DROP

  1. NetBIOS (Windows) Ports (Ports 137 - 139)
$IPTABLES -A INPUT -i $EXT -p TCP --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport 137:139 -j DROP
$IPTABLES -A INPUT -i $EXT -p UDP --dport 137:139 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport 137:139 -j DROP

  1. X11 Windows Displays (Ports 6000-6063)
$IPTABLES -A INPUT -i $EXT -p TCP --dport 6000:6063 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p TCP --sport 6000:6063 -j DROP
$IPTABLES -A INPUT -i $EXT -p UDP --dport 6000:6063 -j DROP
$IPTABLES -A OUTPUT -o $EXT -p UDP --sport 6000:6063 -j DROP

  1. Mal alles erlauben, was vom Server ins interne Netz geht und von dort kommt

  1. $IPTABLES -A INPUT -i $INT -s $INTERN -j LOG --log-prefix "INTERN-INPUT "
$IPTABLES -A INPUT -i $INT -s $INTERN -j ACCEPT
  1. $IPTABLES -A OUTPUT -o $INT -s $INTERN -j LOG --log-prefix "INTERN-OUTPUT "
$IPTABLES -A OUTPUT -o $INT -s $INTERN -j ACCEPT

  1. Teil VI: Filterregeln für Forwarding

  1. ICMP (Ping darf aus dem internen Netz nach draußen)

$IPTABLES -A FORWARD -o $EXT -i $INT -p ICMP --icmp-type echo-request -j ACCEPT

  1. identd wird rejected

$IPTABLES -A FORWARD -i $EXT -p TCP --dport auth --syn -j LOG --log-prefix "IDENT "
$IPTABLES -A FORWARD -i $EXT -p TCP --dport auth --syn -j REJECT

  1. Ansonsten darf aus dem internen Netz mal alles raus, wird aber protokolliert

  1. $IPTABLES -A FORWARD -i $INT -o $EXT -m state --state NEW -j LOG --log-prefix "Verbindungsaufbau Netz"
$IPTABLES -A FORWARD -i $INT -o $EXT -m state --state INVALID -j LOG --log-prefix "INVALID aus NETZ"
$IPTABLES -A FORWARD -i $INT -o $EXT -m state --state NEW,INVALID -j ACCEPT

  1. Alles was noch übrig ist sperren und loggen
  2. ACHTUNG:
  3. Da Morpheus zig Anfragen auf den DNS-Service bekommt, werden diese Pakete nicht mehr protokolliert, sondern einfach nur gedroppt
$IPTABLES -A INPUT -i $EXT -m state --state NEW -p UDP --dport domain -j DROP
$IPTABLES -A INPUT -i $EXT -m state --state NEW -p TCP --dport domain -j DROP

  1. Jetzt den Rest sperren und loggen
$IPTABLES -A INPUT -j log_drop
$IPTABLES -A OUTPUT -j log_drop
$IPTABLES -A FORWARD -j log_drop
Bitte warten ..
Mitglied: hamster1337
20.03.2006 um 21:17 Uhr
Danke mal für das Skript ich werd mich dann morgen drüber machen und es mal ausprobieren.
Bitte warten ..
Mitglied: Okies
22.03.2006 um 00:00 Uhr
Soweit ich weiß hat YaST doch ein "Security" Modul in welchem die Firewall eingestellt werden kann. Die Firewall fragt dann schon ob Masquerading benötigt wird. War soweit ich mich erinnere ziemlich selbsterklärend.
Die hier vorgestellten Skripte sind toll, aber sollten bei SuSE nicht nötig sein.

Gruss, Oliver
Bitte warten ..
Mitglied: hamster1337
23.03.2006 um 16:20 Uhr
ich hab jetzt mal die einzelnen befehele in die konsole gehackt. und es geht jetzt brauch ich also noch ein funktionierentes firewall skript das beim starten geladen wird oder ist das automatisch so?
Bitte warten ..
Mitglied: AndreasHoster
23.03.2006 um 17:29 Uhr
Nein, er merkt sich den Zustand nicht, daß Skript muß beim Booten ausgeführt werden, aber erst, nachdem die DSL Verbindung steht (vorher gibts das Interface DSL0 nicht).
Die "Dienste" die Linux automatisch startet sind links auf ausführbare Dateien unter /etc/init.d/rc.RUNLEVEL. RUNLEVEL= 0 bis 6, s, h
Soweit ich das von SuSE noch im Kopf habe, ist Standard-Runlevel 3 bei Konsole und 5 bei graphischem Login.
D.h. in das Verzeichnis /etc/init.d/rc.3 bzw. rc.5 muß ein symbolischer Link rein, der auf die Batch-Datei des Firewall-Skripts zeigt und der SxxNameDesDienstes lautet. xx kann von 00 bis 99 gehen und gibt an, wann, im Verhältnis zu anderen Diensten, das Skript gestartet wird. 00 ganz am Anfang, 99 am Schluß.
Es muß auf alle Fälle nach network gestartet werden, ich weiß gerade nicht, wann DSL gestartet wird. Ansonsten einfach S99FirewallSkript machen.
symbolische Links gehen mit ln -s Quelldatei Zieldatei
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
DSL, VDSL
Sinkende SNR-Margin beim T-DSL-Anschluss mit Lancom-Router (13)

Erfahrungsbericht von knuddel256 zum Thema DSL, VDSL ...

Netzwerke
2 DSL-Anschluesse - 2 Router - 1 Subnet - Routing VPN (16)

Frage von beatz99 zum Thema Netzwerke ...

Linux Netzwerk
gelöst Linux als mini Router (2)

Frage von tobmes zum Thema Linux Netzwerk ...

Linux Tools
Docker - Minimize your containers with alpine linux

Link von Sheogorath zum Thema Linux Tools ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (22)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...